From: <Mit Microsoft Internet Explorer 7 gespeichert>
Subject: Beyond Salmon: Parasites in Fish, Part 2 -- Anisakis and Tapeworm
Date: Mon, 14 May 2007 18:50:06 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_004C_01C79658.B09287F0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028

This is a multi-part message in MIME format.

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.stylefeeder.com/xml/badge/static/icebox/helenskitchen.gif

R0lGODlhlgClAff/AAkDAxy02QCi0qvj8FVTU8K6uFcPE26JfcXae6zLPfvZyfHr8lMrKZRcScPj
2pq4rriDbB0iJNry+Oq2mHcrLunj3qPTx8NjaJwHGISenlLF4reKjvzl22prauHd2cXDyS0NDTMu
K6hCSZlhZXpTT+PBvwwQFNqljZi1waiDe3NCQLDUyUtAQ+3bxmoPF7FZY+Hc49TZ2unk6/7+/uN8
S8qTesHGp4sgKKWfnLiloDK63Lu7u+Xr8pA9QcrS1HLQ5zw8PO710n+ajvjAvrS7ldvf477p9aGr
fGcwMfyNmat3ZKBsWeXz9w+u13VzcyQrKpd1dhUYGm8fJE8gIB4GB/3089a1reLl1rrl2vzz6nle
XeaFWD4TE11cXMnFwWI5RJDZ7PRod+rr4nhKTa8FF9qXnoyFhPLt6rvUYeTm2dTiorJ8Z4crLMaI
jebp27OzstnV0+Lk6qurqoZxbqoWJxAOCpqbnLbJyZ3Jv0QlJsWllZWpweTIzL6Mf5RjWcM5R083
NPvg0pluZ6qziPPSxqiQkNvCyo9JTuz5+9TT0dva1YtXTyMPHe7Bpf3j5unt9C8UIdzc22g+Odi7
v38/QZyFgu7w5kG/3/v69fPr43t7fNbHwsTDwXMPF8Vvd+bwvtmqq2AcH9zm6qt2erp9f8y2tLLZ
1GQNFENCQolbXSorK2RjYn8hJzUpOSMjJWLK5KtSWIcyNp/e7qvIxKN2ea5nbPvXxCEdHr0EG8eY
mBgKJfb483/T6Fs0MaxyW7u3tOqZcuvx9vTg3Cq327+LcraWlsvu962zsWNKWaNyZ/Pz8+zs67N4
fCglJtOfgxMDBMenp+JkdMvMzMXq38NKVZWUk5ccJ7Dl9oNVTxsbGwCq1X5MQu7w7ZVXWJiotejT
0vLy67WrrfP34ExMTGVST+nPvBQUFImgsDQzNcvKxCwtMePj40IcHYNKTvvs5I2MjObt+ZUvNePq
7btnbtPNy8xeaZtjU2ZIRqSjpOjxwn0PF/7R1ae5xUQvPHgzNISEgyH+DGdpZjRqMTIxNCAgIAAh
+QQEyAD/ACwAAAAAlgClAQcI/gBnCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBD
ihxJsqTJkyhTqlzJsqXLlzBjypxZUsK1AWB4vXp1ScewJtd2IRhKtCgCcTSTUtQhoKnTp9fEJZhK
tWoCpEqzPmTaVFuApwKiWp2KBs1UrFrTKuQqgNcMXlCDWEWTb4bZq2rzIrzk1JRALNqaXvtUVc3A
u2j1Kp7BtymWgRICDyZb9/DZxZgbC3g80FhYwgkqC8SEGPNizWAKDjOiJgGCgvmoJh6YqIsqVQR2
QLQzTpnCN+OCC+eEsQMB3y81Byj46lrrTwURyDaYyJW52+bMIW/YwdwyhdWy/os39wajKu8wNQuQ
RRAMltbgCIK+XLCLOTsCd4z77tAJ+oThybHMgPxdhM5/LqknABhMCGTKe2jIZ9VsMwCh3UHVJLKQ
fwViaI5uHB3YIUuiyPIDTz81EYAOAWCBABpB5KPGXVVRaF8X2wlknxPV7CBHNQXu8I4yHA6ETwcd
gDhDeEoSlMg/HQxJECdQ4lPQk1Gq4gp/y7wTZSQD2VHeO04Q11EVwAAzwRCECHOGMsqI4oApiHyi
xp1ElaUnhdWZA4Q0A3UnXhfvmPOPQMq4osoMRc4gaHZWLmkOAU5U6oSGO4wHBH+FitebQOGZY52o
3yVyXnauEKeMOegQgKpH/lnQIOusNKS5ZptVzAAOOLs8lAgq2R06gzSu4iNNJIkCIZAd5sjBKHrM
DrmMfd+FOl556KgijTKZdjBDJOagkogyhb4zAyfX7aBMJFr6ZuEbynDiCgEzKHNeB4lU44RHHNBa
ayMcYDIDJoFMMIEiRKSTjg1EDELEwzaAl523jpqjoUCF6oaOK7755xuw/EljjpXhVSPNyduii5+7
rswgB3n1LuMKOhU7K9CBw5rTRb0V+6alSMLQ2shBhByczkDgEHHE0oMstIN1xHUHqEAyj/MyxR7P
YB06XB9oLpMF4cNq165wXGjXGy8K8kA4v6xK11quo7WyIREyqwIHYQLM/hBXbFKQ0kcMInBBHYZ3
qNQEdWoOmM/6VnYikCeyjm/hlUfQy/hEAnkk32UcOeczjIMgzm+Y04HmiUQid7IiDSHr0AdNQAMh
ihxNUBpLH5Gjjkr+c1/FFwsUiXUUP/udfVPPsIzclRcE7s60nWvOvtH7Xg3b2q3DaoHfsR6S7MAg
1IishFwRcUGDLB1fQRZ2UU13rsjtexdy4HuzxQMVKbIr/+DzjyvXa15BujMOO9iBAByz16TsUA1U
0GwZ53ECPvBRtu/4BwgG7AA6HEc3kExgC+4oSBYaAYxZCcMNg1jfQABnCYO8wULZUQWI1gGs7IAp
U9ATSKPeMKpwaUiA/gRZhujEI6xEwFBU15tBIoaIKv48ynT1ckUHP5ImBSiAEI2YADC24K9MuOEI
RCiIDZYmBoRIQw7qIgi33iC3Z5lJIOtI3gzW8QY5vHEZ0hjRQDghBzYWhI87GFEkUBY8JfYxeJAT
SQn9xUgaZAF3R7CBCsd4hDJSZB3zMs1IuNhIf1UBkoG7gkAAl4aKdKeQmvTIFjs5qy3MAJRLs4EY
AKcIiiQiXKkUCSayIIyipYmTrXxl7oaZu1pOJBHveGMuS5IFDmBRi+H7IjGHaZhl5jJXytjEwhj2
sIcNoprWDKc4x0nOcprznOhMpzrXyc52uvOd8IznORHBBAlIwBhG/riJLMCQkxO9QgOX6MkwAhCA
JjRBGwhNqEIXytCGOvShEI2oRCdKUYguhJ72xKc++ckLfwJUoAQ1aEVHStKSmvSkFlUIRu+ZzwHs
s587+ahPQnpQlNr0pjjF6UXrydKNwvSfAZ1pQWuaU4oG4BIBKKpSS7rTjLYUJz+V6UCHSlL2aCCh
TUDEDCbaBCMM5AcSZYxDvToQXph0Blc9aVN76lKOejSoUxXpSLVqVoSmZqsSHQAidKCNgEZUBzMg
6kIlMICAXkKwFRWrWlXKU422NapwpelINSAQIyB0OVqd6FsWqgPLNvQSeG3oZlEKWpuu1bFQ7WhM
I0vVisoCEalB/uhrY8sihDbhsIP1LEJ1IAsJ9ISvCEUqLzzbhB/wIqnaAGxaE3oJnSi0ua9YqAZ4
8VrTMtapPlUtUEHaWooiQhaUZdFb3KINMAwAoT+IjHRnIIuEGgEREjDCDxCx2xkEwLxe+S4YEJFU
0P4goEkFgwR4YQww2HXABd6tMYwxXN2e9bpsTe1buSvXiSp3OT94bRPI+wr6amPADX3FDIxQUyOY
dTl8lYVlTawNIxhYG7Jor1sGwhP+esW+l7DxcgoqgfbC+LwoPW1LX6pdqUqWorH9sFfNSt4ddxix
CRUxkBUrgVcs5xIftvIM8GmE+JbXw7JFhBHGzJjXjtmrl/iB/jHcW9fFJmSlqHXraikM5YcSFqED
mAEiDkpebSBCAwl+qFsIal8883PN2mAMaA3bkxY72AiyYHRXI23Yrra5ytZ9c2OHLOftCrXCf51B
dLXxgxmAVRt9HoBXkatQoi66tOg1BiKiC9ijBnawPkaoixe6a4X2OtFYDjKEHUvkCX+6zg1NTU0v
oV5U49UtuVaoLI7bBL1ueM0HBa16YS2BUzd6tAh9hQQO2oToipvc5t5rcm8tbE1j97FFZi2oIXrn
KCe0z6AF7kJ5oVU98xW070WoqRFK4N0iYsFrVu5CzfznML83rakxgjFC62aEwJnTkKXzUlUMUb8m
9KhJfXJD/m+rb4fqALcJPblgb+vxdlt80zeR8JyPrdQrnxTES835QoWcXWPHFdkm5UWzSQpaVutc
5zyHt8+PnNMBLJekvGjz0ZE+7Kd22sjdnbrWt65ZeXr962APu9jHTvay77IK7uDAPoawD0fkquwr
+UYxBIENJIQiFAZAAgkqAPeV8IESFJACBSgQix4cAgpv7ztKONCDWLCCDYXvASVSkHjFm0QY7YgF
BdjQg84fohCWT4kwFgF4zhd+EcUIPUocsQjHR/4Q7Ui96i/fesi/HhqDmz1IgrEORUyiG5p/fTug
oXuQLIMTyJdGKVrvD39QovPtKEUmPqKM5UEuHZzYwS/q/igHOUzw+91H4w44kbrJ5d6aynjDDqRB
DzjEoADY8AcFnP/8duTAA/SoiDLSkAgfVUMTxsECqDCAQDCABniABAgEBYiAqBAcBNAB/1ANaKQI
epQXnFANbwAHcFAEcUAPqSAJSIAElEAJKjAGOZAI4SBHDqEMZoAKCviCLviCMsiACsiANmiA4zCA
OTgOTaIXdSQNkhMHRQADhaAFkiAJYyAIhVAAm0AP6ycRaaAKITCFIXAbVqgKzVA2WlI2XNiFZdMM
VxiGVDiFQMA1QJBEi+EjnKA6j/AIkYADlQAFcjgHUFAMBfABcqCCDeEBrpANfviHfpgdf2gOgFiI
huiH/rdwC12oiNnAhVqChoqRfeSXCIqQCHBQAJUwB2ZgBoUAClbAB5vwhBFRAapwC+ZQB6iYiqq4
iqzYinUwHuKRDYLoh82AHx0BJ7iYizmyDpMTEXh0MokQAxpIDwVQAOlAD8WADZSwCBtQCmcgEZjw
P65wC65YjdZYjX/oCs3AAqhEEcrwCLxYBJEwjsE4jusgA+e4DI+wAHGED++wA5bEELwHB/QAhJZI
jOuHjGNAAawgBbRQeQ8BDr/wD10ABCHQDFl4C4OYHa94iq1IiIaoiIoSAiywCnOAgaWEEdW3DuI4
jpoTCTGQOuYYBySJjmfUAatgOQyxkZFQBJFDD8iH/nybUAzdoA+dkAoA+RAVUInY9wtygAPVYAZz
4ASr0AUEwAJlyDVjiA4FyAIEsApOoAlmUA048AbGqAhpkJVp4AEqpJGPsDwemQj2yH7S8AHAmAgG
tAMesDsJUX1CmAgwoDnScAxo9AGRIAy54AKnMAI56RBpEAkeEJgesJWKoAhwkAj0QA/HGDmQo4GW
qAiC+ZdaqZUVUAFiUJkVkAZdiRFxwItyKQ3ItwMFwAkF4AVAeCy9GBHVN4So8wE78Jo+UAQVAAp6
iZMTgQlZWZmTSZiGWZiQCZkeYJiUuJu7qZtpIAbIqZubuYLgsDy8uA4EsgzKsA5o2Uej+QvFmHyp
/hOPEMGOlggDMOABrrkDHyA5FWAFUnAKqVARf8mLlbkOxJmVkZkGlUgPiTCYgymfxVkBvHiZ8Lmc
CbEL4CAG6+CRBqo66Sid67ADlSIHxVia9qkI0Hl+D/GNRUCPMPmaH+AF9OAB0HAKLoB4FJGVz5kG
8Kmf+KmVwamYCgMHKpqiu9mfBJoGFRigG1mglWiJGggHhUmOmqAJ74CdpekFXpA6NDoRcPII3AAO
meAB9OgFgVkB7kCbIUoRmDCOJHqi+rmbgnmYkDOYwEmY82mix8mLRwoRu6AMYkCfYpkOXsAJXqAw
x1ifD1qnc6qZSLoMHpAIv/AL4bCEBZAD4QAN/puQly6QAlZqjlwaCZMZmJPpm1i5lVs5n46qlSVa
o6OBCZq6qXASCTyaCArzpnDqBZsABx5QAcRYjH1ajBwKB6mpmpEQqIUwq3NQq5Uwq9BACy7gAhuQ
qIwqqfJJqYE5jvlJrIJprMHZo8QJOgVRfWsaCT26DmKwpMqgCDjwDuGwCchHpERKD1h5BomgqgWA
nd3qot7oBTlQDMUwq1AwB1pwq4VQDLTQCaeQCxRRBcgqmL4pmMd6oP4KrZCqCFg6mcw6EJjAkoWp
gQI7mBWQCA3qpunAqulQqhVwBgXwBn4aDn7ap7+AD8oEEe6QrupKq1rwrrdaDCOwq6BAoStY/piB
+ZsB26MeKbAA65vjGLP76gG/+pfcORBVsAx/eX1yaomQU4lvWqekaqoewJQ1qJTT6ASYuhDCUAwp
kALqmgJzWAmVkAK00A2d0AlWwLINoQw8irNme7ZoK7PDqjp5A7SKoJhvGqemCg6e6qak+aCtWgFe
gIriUQeJiA52ELUJgQklIAjdkAzJIAiCMAKpQALYMAcksAFl4A/6wArJMAl9uRDgULa9mbYBq7Ce
a7M320bNuqZva7eckA4uKgY8ebTYSZrpwKjWkh23sAr4QLoS8Q0qEApSIAWU0A6HELwj2A1IALwu
0Aku4A8qAA2ZmxDgQImNuaPS+7kJGzmc/nuYXqqjZpuRpeukm0Cko+kFSisHHMuxGLt9aHQGy+CR
vdi8DVEMofC1bEABeGcA9nu/9nsKIEoBJLiyELEMjBnAAjzABDzAOwqp3EsQA+qk9ECkcKq6afAy
fwiGB5mFrjAOHvAR0CAF+tDBPSACsZCep3C/IOoCrDB4zacChPC/BdzCLkzAB8yjGVwQmHAGBSqW
XjCacCo5inOKsegKp/MRmAANPcAKrBAPrPC1yKuXpyDCLiAFzZfC//gQYlCPJ2OfL5zFLnyYxuQk
j0mk2Emu9FABVSAN+OAEDvQ2XWAH4wISmFAKhxAPNyACIhAPSqyX+BsKSKAC2+AH7UAJ/r0QCFQs
p4ScDihTj4mZyIqcmIyZmChzMkMbwF08EDQEBA9oKZWCkglcL884EppaCs+HxCIAC2zwtXhsAFOg
AqkABTiQrVYgCAzAvA5RAXJKpG4ap4WcuoW8y6EqDbusy5EjDZM8ENIQAn1bB9lwCyFQAC0xxIfQ
eGwgBXTMCvpwCpQwChsADaVQCvSwDh3qAaXAAFDwEOsQkw6MfIQcp7oMsdi3znIKp+j8zqCKMunQ
jXCEAx0ABLdBAO8wzCmBCXrwzLHABqV8AzeAvMWwCaVgmscCOURaCkggCe57O6Rpztt60aIakwoT
kxzd0RD7pgojDbishzSsDACqEkPc/nk9QNBJ/LWnUAzEiMgcSg+TAA2CkHfC0BCYoAjl+wuvOX4d
XacdjXwFIJpFnZ1DnbpE/bFqUQVEHA+xEA8EjbzIaw/QYAU5sM05gLUqYL8uQAHf4BCK8JP4EH7d
R5fH8AZqrdZ0adZu/dZrHddq3acknRZWEMoEzQYtPcLt4AepMAa9wA7sMAVTAKKdgAQlUHwU8Q1j
QAmxMNB6bcr6e7+EzQAkQAvMwLtSkNiKDY2TMAb+kNfUvKslvJdtAAqeaAVtEAqngAR80Nm3KQyC
ENoGbZO7erwu0AZWUAZtMAqUoL96nNOwDY3ukAv+YMRKrL+7igSEXb8GEApToAdi/jvcDeHUSCAF
pqyXu4q/qDwFULAJ003dCiEwmFAFJTACzs3dqbwBVuAIAyPeF1EFkwAF9/AFYwAFhVAKfOB28O0R
VfDfE93fAj7gBF7gBq4UnIC7B+6NFxNHHWCLFSENECgH9gzbywAlQLAKbxMpFSEH6qAlQPAPRdDf
ymCUqoAPq2A1FyEN6DAOXbAKBAAEHwDfyoCSL94B46CS3tgFLU4AXbDGNI6Sq7AKOK7jFMEJDggE
TmAHbFl8NT7kQ54bGvkP46AO3ucEcvAIShEMWUGUUN4FTD0RnMDjcWAHliwHjOMSiBAMohAD0sAP
/HAHIz4TmvDiRL4KYT4RmkAA/prQf6hQDWbJEjxQBD5Q6Hdw6PxwDufAD9Kg5TFBkF3QAU7QAXUt
EUakCU5wMjzYfykhD3fAD95w6LMA53HOD3twDt7gA6IQE9Vw4z9a4RNhB9kAlXJQBJogDXEQSCbh
6dLw6RmAArMg6igw7OeQAcXuDTBhB1CpCf/Q5xzRAdkwDk7wDmW+LTuQ5iNR6nB+DsDOD8POD3gw
7BlgCg7QIC4hB1H5D+/wD9iOEeswDqoABD+6oIDCCZXOET4Q53cw6sYO7LMwC6YQ8KZgAeS+6oji
G3BiEm/A7O9QDdWg4BjhA+NQNpN+mkrECU3OEZ7OD7PQ7ygg8FgQ8iJvCiuA/gXTwASIACcEAg7r
AA7KEN4YsQNAWg34YAcQH/OoUDZEzkYzHgdv4OghsfHj7gAOgAezUPLkTvRET/KmMA2i0CBcjost
LwaCWxEX+H0P/xE7wALqMC/THgecwOU7MOchwQT7jgdJnwFqbwcPEOx3sAJEvwJwPw39pkY88xFm
XNZyELggsQNAkA2qwAJQEgkfkH8f8AGPYAcwMANf2RFMsAL7DvcOcAwZwPYPcPmY/wAZ8ABELw8o
kQh6/wb4UPVWn/OqMA7/gOegHwfh0AWtUEANmOcVgQh30PazQPQdfwAHgCRCIASb/wB2kAFwXwR1
PxKR0EdqjQ8ZrxG14Qrq/jAOmmC7LonGQPDhqqAOIU765GwHByAEc6/0RH/5vX8AD4AknD8NDlD8
IEFHay0Hy68R6+AE2ogKq/CjXRCDQKAo6sCUq9DuFoEJAFGt2oMHK7A4mOYAyzSGCBWawhNxBUNE
MyxexJhR48aNy9583CFHGUeSJUkqe6cOHSpUBNBlU4lOZSuZQMZxMpkT47pdCO6sMMhw2kIsB4cy
LGphBUImOp12lLPjo8inVTe+6YIKyKpV2UxEUKkuJjp0QOxYzRnp5wpTCI8iJDq06Ao8C0VVROv0
49S8fWdE+tdhFToTJlzJDCuTLBAn6/xulLc2aMKiRYcqrIxnaZGmj0nu/n2Dz3PeHagKZ1OFTtVM
sWRVdvkwGiOTO2sXIk0ol2hSPAhFydYIWg7wqpGymTPn6slqxK5Tq0QlmjiiFWtNCYV7dDcWiKZm
/SZucaqc4eF1OjFnIpsrV6pWi4Ufn6ymZeEdzAK6FHdly/yVTivCvJDkwKc880paBwhzsmGQPfbc
eyK+1VpRaRxp7JsFv7aQ4o8/UyzA4wE8TAEPuJDwQfFAk9YhQBVXFkRuPeXci0+d1VIDAp8qdIok
hhjkCYakIu7AL6il+FsBRAtA5IUgEonbAUU7pFORpHTGceU45BZUrj11HlSnGbFSQ0cTGTZSpr4Z
lolEnkR8jGGdMyAj/hKo/pJUCsSIQiSot8eUGckiTqQ0sEqOIulAFS0ZNCeCLm100cYxySIgkYyK
SCSSTOMI9JE4iogh00jiCPIi2n6qa5oP9dxzFh+GkgivvAC9aId3NNGESkM5UqYaRRfNxtH2Zlzu
vdZQwemiTxORRppE3ixCHouCkSeOZ33w4Y4fZ6CuSO72jIhERMYVxQFTTCkVLUDTXNOODggYZxXH
di1JjhAYzKaOBdd74kH3/lWFwlZ0vSjNSJr14dkYorXo04N3IOiYcjM0aIVZHLgLEQkSMqW6OwL0
a5ll0uSkKwD0TZZeknYAIt9FHYTZQWPPKkkZaxGOwYcY4nhkzUiK/jjGjhhmKIJiB8ZlotyO8Ysh
3ZBFXmeHbE6uQ5ULVS4pkS5e1BffmNtTpVh1CC4pmIOlSTjTUn00lUgL2vL4485kS3OddRLJtw5X
gAgUa5LS6CDLGBv8mr1mVKHZqrvRJikYHyJytQiniVsnEk1VOdkcVdT0+6R3BMe3QRlhRtyvyTcS
RfJdl3mWE30XVGXezuv9FV9HR4c58dnDU+Zhc/StWvbdOUoHiCxDtz334Q9cRpodVIkRCM6X3ygS
Ao4PPQLcdad+NGUS2YEAvVUZp+/uNRLDidqRl5H78x9bJvzx0TH/fYxQchHfKJB33/6+tN7SOPz3
GXQcLwr7Wk///gZoFWW8YWquSNkCMyINLDEoCvtjkAIlWBxpCG+DO1lF7WKkwQ+W0DO90oQTnJBC
J7zBhC+EYQxlOEMa1tAimFAGJoBThSrsYx/u4KEN7QcoHOpwNI4AxQti0YMXtAEUQ3CEI3gYRCF2
bhlGtAg4HkOIF9wAAxiwhjW+SAcR1CMaSRjCPhwBxCqq7Bcj0yEnIuEXR3TDixggQx5xscc8gtEa
IoCFJ8qQRilaZEdtJI6zFNG7ajxmA5TQxxfzOEk+6nGSdMDkH+qBRkcgkjiJqMY45ACOQlnFHdig
wB2/iMdJkmGPr4QlJulgjRcM4ZCefMwb4NUFMZSyKhWgBCvC/mgNOqySla2MZRjC8AcyFNMaZbgl
LvOCD0104B+J4MT0qvINFbDiBsMk5iwlicw9/iEJ5wwDHXBBhmdGU5pPUYYdulCNVWTqamhxhAoo
4M0bfHOYsizmMclgznMmIZ15jMc+ZoDFd+pEGXIYBwG6kIb4+QUKSPAHGzTKT3CGc5IYoEMYCmrQ
PNIBFFXAxC4a6hRwvEET4/iHMkjpl0mQwB8U8EcsdKpTNsRin2EE6Bf/INIkRAOT1HhBGUqxCrKt
VCPLkAMn7BAJHFZDm08pBRQ2AIUxjIESX/2qP6SQ0xuwYZjGpMYf1EoNg3qiGOFoZBuVcbercsQj
mRpZPMVQ/tecVIAcm9gEHzYBjRSkAhthPUQ3DtGDHsQjHpE0Jh3+YI1+vgAa+KifDhl6EZENcK4H
62xOxPAGvALqLKG1Cj3CUYBvuAOI7iCEFsaQCsNioxvdgAUsenADfUD2j/G4ASsOUQxLZQSl4FBp
RuY6wHWIbGSRqN9G1vEGTnDCUuCIK2qt4oVKFCIHfIADPQBRiCpUwArFmMNsE8tYxoqAsZRAAhKg
kANFZAQT973vGdy5JkDlda4jGxnWvsffGQx4RXJIhBjAAai4FpivfS1ECuYACAKosAAVmCIHJrGB
VKjgq4c4BCW60YdcbKIUXtDhLfF7Xw/M6an+TVOMm5tX/kPdbQbrWNc9SQJVH6yDG2nSlUw365Rv
0FYSkkjFPXrRCy1MYkdVcEcWKgBYK1T5G6VIQSXMUI1fKAK/C11xOk4C3TUVuMD/hVp0ZVO5v7Ar
EWrGyC7k4IM0NHe5GMHEXtFSAA+rABtImMIY7gEIQHShEqVorTCi/I0cWIEPVoACOVhAgFVUgx6a
1ewM6AFni/y3b+tiF60OZLkZJGIZjjG1STAhh19Ewm7aLdiDOVIIFYAYCVy4x6AJvWtAkEAQG8hF
sGkhCEEDAghb6UAHpKFS/KY6J3PldJU01WbHSCPaBSZtGhTMro1gIsBOmUOtu0GJKdwjBCFYxThY
oGtJ/iBBEipQwZGP3AsWrOIf73jHP5xAVW/7QItPgXWnT60paVRXjjO+tl2tjeOR6ZgjibCDddMA
DmmQ8Mw5qYJsFUsJBuQhD+PoQBcIQI4u3MMJ5NDCHKAAhTnM4R7kcAK+ZW6HdIAjEmKYlastIrI0
McvgcnhHNaybCDuvqyrS4PnIilswDyxjF5iYuBi6YIaP4MqXGkl4FmTbh3HvmisiV6ETRL6KsK+C
0quwpszfkU0PooVZIwkU65yFzR3sIFN2ux+3c0J0Gc8RI89SRCLSwQkvy8EMTqgG0mX9lCxAoR21
GDcU7kHpsTvhXcY79rHHMY4udN4J9068qP3SOzXt/qA+n7Xcs+4e8N4lnE3ram5GsJmIwEvDy2/w
QSSWAQ5YD9kpKVjEbZFshkl3fhXVHIxqbEKAXXaeAP8QOhwi2JcdIF25p66c5Vz9aqyvI5t7j/HS
L0KPoQt+jr+Qxs3BIYZ1KML92q6AB9xPZp1UobDdWIQK7jEHLTDfDO9QoYgiACAgADuQBpdyglXo
gkoLB3x4I89gFmbJCDaprrp7gx3ghGbBsetbB6ooiTTQtlPTiMFTPS9IgxmoLldbhgrwAkUQA217
wQoQA/abPpKoAkFYhBEYAxJIObgyA3yYAxxwgjn4CAPcvoPJt0KoBhyghzP4N7/gBLvRPQcDnzcg
/g8UKRDy+IiD66+7WQfnUbX0oz+MGDx6eBYvmCNpSAc4YL91AIdnaQEPuAIPkD9mOUGdyALaWjnJ
kwRGgwM4KAUcwAEuaxbBC4lqCIdfKAAvYMMZzALPSD/vexapII9KtMRL3EJnKbhI4ISry4h0eBb7
WoZFpL1EaMEq4ESiW8EYBEE6BME0cEGncIRUEIRisAIV4IIp4AMcEIZMEAYPgINN+ENF8IAKMEYP
+IYKyIRlBIdMEIf9soplkCNpwAc7sMYpycLxsEICwUIUIRDrIpCcSINQtIgzSANgVARjfMHaSwdQ
DMEZFIMKeMV5PAPf04h9IAEoKIdbnIIpsIIc/qgA1/LFZSTIZRRI10JIccgEaLSKZ5muoBOIiLTG
LKxGgZC5f9CEdyCtHRC6Z3uDdNAhcICDSEgDGTwDJ6wARVDD6oKDddgrcEiDTJDHeXzBJzQJPhiD
YiAEUFABA+CCQiiAFuAA1+pFg0TIgoyyLGBGe7QKgotIgbjGArHCisy3f8BITfiHupsS1/sHF5oB
MfCCFnNCcDhJMfAAbPoFToCDNDhJmIzHkgRBGdxAnciFMciBb8gFSjAAA7iHAtiELHAHmezFwERI
wkTILFDKRwSOL6zGidRCqRAOqsS3atgBO3gDoyuJZegAr8SEX5CDAoADD1Cwk6wAOPDMLpNB/kxY
v0yIx5mUwUhgSOOiBRW4y2LQSwOYgkrIAcREysI8yCiLMnFQTODQFE7YxguETNAYDywkD6RLOItA
OiOSMjjwggJQREU0Ti8wxQS7oioQg2UsSXmcwTSIzYvABEL4qlzAy3YwgFPAtTlATMDMBN88TMCM
zyy4L+LonWZplrqTCgtUzgvkBAyMwsUrmKgyopNUypMsgBygh0xwwjOgh3QUA0zwzjOQSWOEwXVg
SovIghIYBQo4hD4gBGjAhlMIBS4ABHKoAMQEzsK8z/vMhOHUT04UUIPD0QHFwJCYkgJ9TuicF0xQ
ymVUSi8grfU7STggunrMMwx1ze+s0JJw/odcWAQpWCI/IIQSGIMpQAIeBIRScK0YFVPEFE6UOpD+
kgY5mMhulBI7mMw36KAfLbB1mLj8lMFl/M7qbEQIdT8FKzC2PIO3hFJZcwdaoAApYIUeSCxQIAQS
YIBe4MEu0IJvsM8xFdL4jDJDqRvwqUa1Czo7iCpVlNMbSwRw4CEtKk14zIJ0+IVEOMeSfBYZnAGY
xFBBZc0Hq4JiQAIpsFJFTaxcYIZFwAZczAMGIIESCNMxddEo61C66ULtsxyEG9WLSAR6SIPEnIEz
SAQ4CIfVUkQ5KIRCwIEWZEMtUoaJY011vFWSyEMk0ClfTax2oIRQmAIG4AJ2yAN26IVi/mgtZXUH
DiiFUsjPNqIHOKgAcMAEJv2Fw/sHHPiFX8CHw/vGRKiAHII6cFDIGWRNPeOILKgEr1osEHuvecXN
KbhXEACBRz20bxAGDuAAYeADwpKEQCsBT0qHTTjYZrTQhxWIcLBCgTCDcHCeiUPY3sHYZhSH9RMD
F+u2LLCCVBgDEAMxSvAHf0CCUMBan+QClGUHQMg1lCOBXLsHBlCBKQiFVKBRGwLFg1VKMQgHM5gS
OQiNJcQHQXyDiVuoKlAGRQCHZmTNpPVTk3AHaEiFdgCxqqWAQ5WCUzgF3Nzarr2HfiA0cqBcl6tS
F6CAb0Ckgo3JLDiDX2AqAqkGOxjE/m2shgII3DRxwe/sW3FQMJuUUsKd2sRlhU7oBBdoXJ+UhEjz
OK/NxxQQBLFiBUqo2TaShnKtgjO4khb6z+YSA/BpVZFBKb2VQQWbQd7r26pwBysYAcONhdqt3dtl
XANohxE4MhKgLWY4hH3qhFg4BM1to0wRA0BBqUiohs7LSBxgNSGsBlcTA70FFBgky72awWmdgSoA
UZFlBVboLX3A3VC4WrOF4ENd4FighGIY2JXaT8jEwGdJA5JcF3CogEhQhDr74LU0YEMihGJIhcXi
LREQgUOIBV5dYAqIhRjWKUrog7R1KulavzqlFWWogMpRBFdL4YxAohE41FNw30N4/oEnnocX0C0L
HoESMNMedijzpJceIqx2ECteDQUpoAAkSIUNKAEexuIN4iFH8KEhSCM14qFmTeM5puM6ph4LPYG0
UisYXitq8GNquIB6qIcLCGRBNuRDPuQkuGI7No866gFqqAdPkORJpuR5sORLvuRa0ORNfuIYPoRO
YuQDcYdi2ABQKIESMAQ+UOVVZuUS4ANDgGVDmARZnoRarmVQaANagAJ3CGUVEYZkXIc4EOZhJmZh
hoEiQOZkRmYYOOZI+MNX5oPy7OW+WAAZiANR4IFs5gF40GYeEGZvfoRu7uZvvmZmhgGSsEqrNIN1
/r9K0DIoCNdikOd5Dtdw1TJ2/jaDdNZnddZndpahcO5mbhbnRyBogBbnbpYACfDmOCAJAHDoh3bo
OgiBfqACKsgD2UJf2oLarvoCSWAASKCCZ4DokSbph46hRwgGJmCCglbpbA7ngh5oly5og5aHnuGI
kn7oOqhodpitwqWtEQBqwxoDFfgCQADpZ0DqpMZpk46hYHDqYCBolV5pbQbol+aBl55pgtZmabnp
pXZoKgCBe5itdliEVKCFUUDroG6HdriHKQjppBZpr5ahp4ZqlH5qJuABqV5pvBZnvIZpl25or3bo
Z2AHsV7rEThrZmAGUmCGEbittXbrtxbpOsDpZ5hrusbslH6Evd7szdZmqb5q/oG+6sAWbACgAkgY
g7XuhhEYBWbYgD7oA2YYhRFYBBCLbMmGaLi27Mtmgsyma7vO6qhmAnggaIG26Y3QbaQe6aSmAiRY
60MYgVpghjZoA9hug8ZOLGxggIrmbubm7oqeobvu7cwm6KcO7oKGh/Tm5uPWiOR2b6SmginQ6Oiu
BVLYANfOheu+rW5IhSlAWRD47gCngoJxNW6QIEDxbfI277126uJW7/UmCfgW8AlnBy3QZcSub8Wm
7vxOhtV2bJMFcO7+7/++H03ZFv9RBqeegQT3bb1eaQdX79HmiAmncSpghDmYBD7YKrRubVJogzIo
A66L7u4F8RE3cuWC1rns/p4UZ/EEF+4X3+yWzuYHq/EJnwNDMNhvMIRCOOtaGIUfB3L1BeoRYAAj
N3PpioEeiZP3aXInj+qCTmkp54EHM/M6R1lGeAcYWAcZkIGTNARaAOrpBvI22ORuuDU7R1legdZR
6Z42x2w4/+0o72b2zggusPRLv3R2YAdMh4RWCAc+nwE4WOOsGgNSOIEyuO4hB7Qp0PRW70ePQ5Cf
AZVEYOjlcXQWz2q+vmpKx4hWZ4d+1PR+BPZWbwVGEI1HSASQqQJ6KIQRyAVUJ4VugDxAY4BqZwBh
70cGMIlgQOZI8AFpiAFeJ7CdWyjiuHXyDm6qJmiSwPZ6tfZ29zhIuAVz/pAOHvgAHrCICiiEUQBy
TxiBxo6vR12yXrD2JdOJZUDmGEAbMusUcrebIcYxveuLc4/0rD5ocbcIa9f4gef4au+HVtAFJwiH
OXkEaZAWTBCGDSiDEyD0WhiB+IqvI4N5d5OEp5AHywmVItiBJ3gHhgY1IWMX7HOuvGjwcz/vvwZs
jiB4gV8ySeD4gQcEBugHRmCBYsgFUI6Bc56BUnj2IciFaad5eRN7FbAKeUhmTXAUxKl1Mysz2HMu
GnsKij96pE/6jdD4gn/6pa/2ZmgFKKAFWojmWzoDYDPlPkiFdxP7d4M3D1MXUZCGLMmSCACCy7yf
Mnt75xpVRy/vudfq/kknCRIAfRLAhtEX1tE3fRIQtC/oB10wBxYAtlzggIuogm8oBFMuBmw4MhUg
Ad0ngW0IfRLoCzswgcHJEgKYPjnOiaJ3c5TmfIPedZKgLT/wgxEQhOqv/mT4++qnLWRABpA3hzFo
bUGABmEwJHfgg0mABkC3/vVf//9hCXTgEgfpAofzDM1v/s4H6JomCdPHhrKWfj8ACEECB/pJNeYe
C0i6dH0ZVSbXhgpVZlCcUcUdLYG0aI3qOIpWsmQVR5IsWbKauWwRXLF84qSIyZgyKQarWfORTZuP
dvLs2ZMHUKDyHslUoYLStm3tsGFb5PSpU2wqJAFqdUuXuS8caRWq/jKR4hk+KVL5KbtE0JKyZWey
HfkmW8onK1lW49a2bc5gO3X69Bn0UdCgQ2Um3cb0aTc/9hYTXLQNCYtWrRhBYvflC7IKIw1BEzRi
xJLQaAcKuns3ERAT5iLIZQnkmGmZN3Hu7WubZ2DBREsykVC4qdPE9kIvCRlySbd2Xxj0kwzpeasP
IwsUG2FcCXbjyZTEbvvIiTkTUVhGyOZqVaLuI5XN5qn3tu3cQneTvHaNEn7DThuUXTyc+FmCjNEL
c8g4gQwQ6OxQ0RnQFCNISNhJOKF6bckBV0quRFCeK9UEUyF78In4k3yDlWSfWv79F9p2Eypx3CIq
9IJPAR98gI8c/hV5kEMKigG4hC9BBhlEEBXOVMQqJii5YXkRALFgdyGOGJ98gZlY3zVP8bcYcdit
8aUSa0CQQgprKLEENoCQE044BcBQET3QgBSmmBDYeScE+eRjJFtvpKbaStmo1EEksfE1JW5VWrmM
SfZpqdiKXtZpJzHE2LkGmr0AgkMB4bw5QynFzAGhL0qQiaedevLJljJ2RKBkFBsK6oodytx1KGA8
kKioUPL4+quvjV7z235cAhkmBJOimowgKgBSyCQFyLBAOKVAAeGdllZaaR+qrspWHHZko1qsTRIg
DV7v5QrUrrz26qsowZ447GH7NWBsqV/WaeayqfRSySaGdFqB/iPQpCCIhPze6e23bK1jR3gmCDqr
HWzNFthOuq7rLlAS8CCBBPJiuV83KgKZr76oQrBtHy0Lco8g0BhSSgGlfDNJIXMssS23NTDcsMP/
KGlOuaqkJ5MyPMHzV64bC8axPIzO20A3Jf8XJJ12tlwD11w78/UJzoTtMgnQcsZmAeVUIgkxLffB
9c9Ag6vJ0Nk8sc5MSSfKkzy68tA34MD6WqU8Mghrr3/E+fIlpZV2/TXYJ0h+gh65CDJHDqXkkIMw
LbSQAwmCtFxp3HKzlcg/cOHj3d659t3ru79WGYc8hzdwr7GhLU7p2zVA/nvkk59gORTFWNFCOeWU
AggD2PTx/nXpprO1jNQzqev661ALHgf3ccQr7O34Lk7Kyo57LXbYkoMt9gTtT9BII3oskULy5Wjx
HDuACKJH9NI3HEzsBscxHnRPHvHqnii+NzXcnUxI5Xsc5CbXvhO4r4Lvm8AJ0KQHPTynH88JASD6
579VAVAof6MdsIQSr18lUBTcS6D3WigK8DGwgXUy3+8kaMEdNgKDxMCGJEAACWRAghGUEeEIjQQY
X3EvKNxjogxfGEMEyjCBNBTf7spHDN8Fb4dehB/8QJGCIILAiEZEYhLV8wgDypAHLuxeDKtYhDnK
cY5FwNu8zAIgU5XPbRGUnBUsCMZBErIRVrCCIAABgntA/sIcaExjbGSwjkjQsYXrsCMmM2nHOGAy
BnD4BhyEVYwNkpKUpTgkKq0AvxKwsn6uTB4hYhnLFijAc4RAXjk2UQgzvMMMj4RkW6rwDT58wwNw
OCYy4RCJSCSzmcikBz0SIU16GGITfPjKSOwzA0xgIibc/CY4wynObm5znNwcyS+BORM+cCQXk3hn
Cd4pz3nSs57vtAIocvERd8xLnaZJpz9NQghKxEIEtTgoQhOq0IUu9AUiiAUlHNHPgLIFoBStCCbc
UYZ6cPQCHr3APD4q0pGONKQX4Gg9LlCGKpCzItq8aEnI+YlPwJQt9rkpTq8hgbYgwgg5/SlQg2of
RJhE/hx6OipSk6rUpS51pvkQR0tnko9PMJWp4lCPUK/BBNNIIKte/SlRS2LUqpK1rHqaKVRjEwSq
mvWoV60p0F4K11Wtta1unWvD5IrXCtXVrk/d66r0Cli1stWubx0sVq+BWPX01bCLTexjCevXv0bW
NIKtbEwa29bDYnYml+0sSTRrVs6CVlillclUJ0va02ZTsawtSWr9utrXzuCzrI2tY2mLJd1iFLeb
/ZYyqrcMW81gGesIbnD9Z9vSYsK3o22YcZVBXFtRb7h4o56tiBtY1/I2C06VLdCMO1xGSZe6tjru
cKX7reWCVhyFzS1016EIvCW3uPYdb3HXgccKsbez/u6dLGWBpox1iGG4JCGvdaW7X8jydgaifa7p
MLGMZVYvif3FrHMhLD1wKCIRFVYud2nbXAAHWHoDTgQnxGDhEL/2vwCeLdAwsY50JOK4IG7wgzWc
RONKYx0fXi+LTVLe4GJ3vMgNrhzekORjvEHJcniyHPCBoyQnQrttybCOkzjgSFAvEj6Ia4irS71J
SnOZ+vXxMncgZrwRwBUTYwmc3cySiUUBCDBpCya+q1p/BjcYy+iAOpwQAyDPIBLS4IQ0uDzmSUYi
EfiwAz6qsQM7vOPRb3jHOtBlBze/2RWq+LQq5jwrV3ThLi5+cUCVIY8dAEEVT1DHPxbcHfskQg6c
/kB0jbGr32XWOBL6lUY13sEJ8RYqEZw2B9EmJqgoIDsun74LlrOcxgETQB1PkMsT0CEHK1tWsYmo
Bj6kkWgfj3mZ5j5zdYc8A2W0ug4JcoU56gAAANTBHK4AAgHG4eYOtMW77wWvP3chB3W4+tquVgUB
7sDgGdS6GnbYAZeDy2hfoxu75aXIhd6wbuOaO+IUUcY/MN2WU6M6oDuwNmuu/QRXq6MDR7vLZddR
azs4XMpvuHWuxZxdinDi5ay6S3P/DXA+V6MDmliFyldubVW8o3ZtuXBwDb0DOVD6HdW4es2TjC7/
kbzkFOWGzO2AjoK/Wh3qAEKObBrkzkb7t3Bd/sYbUJF0laujC4OWiU9bLPQ9z/UR0liFhub+6orF
xBhrj2zQSYxUGAc0GJH4h4ZSfm1XPKEDP55BV1mbY77vFe4EYBJrIuBqAvwYEYdfLDj27vW9KiMS
YldJrAxejUYxt+1DH+wyfPAPdWxo5U9AhUmMUNrNrx6x8pCGJpK+iuC3V/UkZvxeXa8hVyi8JMbw
r54Vv3jQFkETToCS9TGbeuc/v7TqLXxl3Uv+8je4Ijt9rPq1X1Xon/b9iI2//K3afvcvdqrr1z79
ldb1Idb/yV8AgtYADlb+SZtuCR9iLWBZHWBnOaACQuD87d8MMMHpwZQFXuD+XVhAdaD+dQci/vSG
BBiDMRiBCn4VC7ZgToVVRTTVJ0SVSWACOIzVTBWgCG6f6ZQgyJygCq6gCw7hNcAgRcigOGSBEmbB
DYqDOATBUeWgDu5gUklgwyCCD55gCgohEeKUEc5AVUmhGEohFeafFQJTCZrgFvrUV31hGb4hA2JW
FqJgEA7VSIwYHOahUp1hZ33hDCghODShEw4ikRCJHkIgHypAIHAAB7hDFrAUBsYUOAGiIA7iExZi
HiaiAmwiJ27iIjbiI9JgJKpHOC1hJVoiJi6VJnYiK7JiICyiIz7iKMLUN1VIK94iLnLiJ8aiKM4i
YOUiMAajJzKiI0KiL8KVMCajMioiKIbi/jEC0zIqoy1MIzVWoy3c4is2IzY947dE4y1Soy5+IiOO
Iwe8IieCIzbCohKWhBi0oxhYQiDGo3TtQi1Gojdu4jR6YjH2Yg1WQRa4QyDg4zXmIg2mgUEeJEIm
pBsspDs25DvGYyDO4zn94jLmYyNu47f4Iwfg4y2WhBskJEiGpEiO5EIypEO2IzxCJDgowy7QI9Ak
o0VmAT/KzUUEJCt6pEhegU7uJE/q5Ej+JFCSJEMaSTBOYyC4w0wmURZ0YiDgpEKipEpCpCW0Yxr4
ZFBeJVC6AVHiolFmAV4xpVMeJLe1hTJMZVViJVoq5FayYlfuVRV0IgeEZRqoGJ9ggiW4/sEVpKVe
JmVMtOI1eiVgZcFAKkBcksRHGuQVWALQgANe6iVW8qVJdOI1FuZgccBgUmZFHGZVgoPpgINjXuUu
2CJHAiZiBcJg8pNhImRoRpgY5OVniuRYtgU+YuZgvWUnouZIiAFCJpEluOZrJmRsssVfVpY7DKYC
kGZF6KZBamUSgYNv/qZBcqZ6KABGlqZxIidFKOdcQpJzQudBSmd3QGZN2WYnYucMaCddplF3eid4
zmJxsmJ1oqc69SZ7PuMtxudBpicktSZ0tmckvicriqJ8qhMmeKdiziIm4KJJDKg6rednHugoWmYr
NiU75idFaadj6uf+LSU2LqiFBpSD/uqlhrafAhinLnrocl4UhqbliPKWhN4ibWbnblJUiKJli9IW
gMIoihpkcCaRZrIoBnJoLuJmbh7kFfgnMNXoVd7oaQnpkO7oFTDpCBVohrafk+aieZ4nQkrpCK3o
VTKnbl0plu6oQYqn3ChpVvKWOyxjlmLokV6UMjgmmLLWiyZjdWrplsLUj36pmeJVFZhmNN6pl/Zp
w3hpUBJqTa2piQpjL67om9Loc4ImaGUBoN5jo4LknKqTMkRqUPaon1bqPSpATHjpo/oTlaalp47n
Ri7qMlJohYIkl0rPngYlks4VpZZoqIIlmRpprSaRof5kr1JURgUkq96jq5LEr2bq/n7qZbCqUxas
arGGaozKaEiWKjDRJ1o265Q+a4lGa64S5qj+JKJWCJqOpLbSJEB267cKI5EW6UjGasOUq0hCqP/4
Y7qq67omY7sm509aa3Ny6k/S66r447PaJDrmK5uGK1CmKnAB7LuqB8G6AyPaZLd6K8IGY5bi6U8q
q/TsgohOpzVerMgep8L2K7waiccCaXeMLMty4p1qrMmmUcra6HS2LMu+7K+CZJQm0ali5clWhM2y
LD/mrM4KbIx97MoGrcjKBNEWrf/MrM/WrNLm67Eiq17urOlA7ZdK7dR+a9W6a1piLdDsgsOKJMfO
RNdSrUxYwmdG6biWxKbqJdem/u09TitFsO1vMixbyKtIEirdfqvdzgDevmZifgvfhuRqmsbf5mrg
Di7hisHbzsDhgmTi3sXihuq+VoTjEm4anKtJYCta6i3QXq43Zu7deqeRQq568CeqJi3pJmxMeCbq
ImbndkfThqTnju7rKmPGSu7sIuQVuEHu3i5I5i5F7C7smoTs/m7qMuys0qrrIm8wvqzgMm9IikHl
kkTPZmv0Sm8uUu/yWq+RzmVsxq1eGi3aem8wzmT4iu/4igG3TS5Ioq9MqG8wzkT7uq+RRil4sq7K
Kq794uLXjkT+6i/wuoEl7ALxwmr3BvCJykQBGzDw/ubPzoAD6ygES7ABV/AF5bdi4PquBrtvBVvE
P5bjBX9wBIcwdI5wTNmrCe+u6VJECqvwa7JwMCnhxNJtDIMwDf+uDZOiC1PsyPYuD/cw6p6tP0Xs
C38rEc+wEaclEsNVEHtjEz/x7EbxYGGCEkqsELci9RaxFf9m5M7VFLss/oYx6mZv+2kxEYMxGjum
GnMjAb8xdIruLCpwQy4kHWOlHcsxRWDCLihDPE5lHu+x8fqxaQCyIAciIbdjSRrwISOy3CjyIjey
Iz8v9EpyZynyIOfxrEayJj8WJ4MDPIayKZ8yKqeyKq8yK7eyK78yLMeyLENSQAAAO0dJRjg5YZYA
pQH3/wAJAwMctNkAotKr4/BVU1PCurhXDxNuiX3F2nusyz372cnx6/JTKymUXEnD49qauK64g2wd
IiTa8vjqtph3Ky7p496j08fDY2icBxiEnp5SxeK3io785dtqa2rh3dnFw8ktDQ0zLiuoQkmZYWV6
U0/jwb8MEBTapY2YtcGog3tzQkCw1MlLQEPt28ZqDxexWWPh3OPU2drp5Ov+/v7jfEvKk3rBxqeL
ICiln5y4paAyuty7u7vl6/KQPUHK0tRy0Oc8PDzu9dJ/mo74wL60u5Xb3+O+6fWhq3xnMDH8jZmr
d2SgbFnl8/cPrtd1c3MkKyqXdXYVGBpvHyRPICAeBgf99PPWta3i5da65dr88+p5Xl3mhVg+ExNd
XFzJxcFiOUSQ2ez0aHfq6+J4Sk2vBRfal56MhYTy7eq71GHk5tnU4qKyfGeHKyzGiI3m6duzs7LZ
1dPi5Oqrq6qGcW6qFicQDgqam5y2ycmdyb9EJSbFpZWVqcHkyMy+jH+UY1nDOUdPNzT74NKZbmeq
s4jz0saokJDbwsqPSU7s+fvU09Hb2tWLV08jDx3uwaX94+bp7fQvFCHc3NtoPjnYu79/P0GchYLu
8OZBv9/7+vXz6+N7e3zWx8LEw8FzDxfFb3fm8L7ZqqtgHB/c5uqrdnq6fX/MtrSy2dRkDRRDQkKJ
W10qKytkY2J/ISc1KTkjIyViyuSrUliHMjaf3u6ryMSjdnmuZ2z718QhHR69BBvHmJgYCiX2+PN/
0+hbNDGsclu7t7TqmXLr8fb04Nwqt9u/i3K2lpbL7vets7FjSlmjcmfz8/Ps7OuzeHwoJSbTn4MT
AwTHp6fiZHTLzMzF6t/DSlWVlJOXHCew5faDVU8bGxsAqtV+TELu8O2VV1iYqLXo09Ly8uu1q63z
9+BMTExlUk/pz7wUFBSJoLA0MzXLysQsLTHj4+NCHB2DSk777OSNjIzm7fmVLzXj6u27Z27TzcvM
XmmbY1NmSEako6To8cJ9Dxf+0dWnucVELzx4MzSEhIMh/gxnaWY0ajEyMTQgICAAIfkEBMgA/wAs
AAAAAJYApQEHCP4AZwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMo
U6pcybKly5cwY8qcWVLCtQFgeL16dUnHsCbXdiEYSrQoAnE0k1LUIaCp06fXxCWYSrVqAqRKsz5k
2lRbgKcColqdigbNVKxa0yrkKoDXDF5Qg1hFk2+G2atq8yK85NSUQCzaml77VFXNwLto9Sqewbcp
loESAg8mW/fw2cWYGwt4PNBYWMIJKgvEhBjzYs1gCg4zoiYBgoL5qCYemKiLKlUEdkC0M06Zwjfj
ggvnhLEDAd8vNQco+Opa608FEcg2mMiVudvmzCFv2MHcMoXVsv6LN/cGoyrvMDULkEUQDJbW4AiC
vlywizk7AneM++7QCfqE4cmxzID8XYTOfy6pJwAYTAhkyntoyGfVbDMAod1B1SSykH8FYmiObhwd
2CFLosjyA08/NRGADgFggQAaQeSjxl1VUWhfF9sJZJ8T1ewgRzUF7vCOMhwOhE8HHYA4Q3hKEpTI
Px0MSRAnUOJT0JNRquIKf8u8E2UkA9lR3jtOENdRFcAAM8EQhAhzhjLKiOKAKYh8osadRJWlJ4XV
mQOENAN1J14X75jzj0DKuKLKDEXOIGh2Vi5pDgFOVOqEhjuMBwR/hYrXm0DhmWOdqN8lcl52rhCn
jDnoEICqR/5Z0CDrrDSkuWabVcwADji7PJQIKtkdOoM0ruIjTSSJAiGQHebIwSh6zA65jH3fhTpe
eeioIo0ymXYwQyTmoJKIMoW+MwMn1+2gTCRa+mbhG8pw4goBMyhzXgeJVOOERxzQWmsjHGAyAyaB
TDCBIkSkk44NRAxCxMM2gJedt46ao6FAheqGjiu++ecbsPxJY46V4VUjzcnbooufu67MIAd59S7j
CjoVOyvQgcOa00W9FfumpUjC0NrIQYQcnM5A4BBxxNKDLLSDdcR1B6hAMo/zMsUez2AdOlwfaC6T
BeHDateucFxo1xsvCvJAOL+sStdarqO1siERMqsCB2ECzP4QV2xSkNJHDCJwQR2Gd6jUBHVqDpjP
+lZ2IpAnso5v4ZVH0Mv4RAJ5JN9lHDnnM4yDIM5vmNOB5olEIneyIg0h69AHTUADIYocTVAaSx+R
o45K/nNfxRcLFIl1FD/7nX1Tz7CM3JUXBO7OtJ1rzr7R+14N29qtw2qB37EekuzAINSIrIRcEXFB
gywdX0EWdlFNd67I7XsXcuB7s8UDFSmyK//g848r12teQbozDjvYgQAcs9ek7FANVNBsGedxAj7w
Ubbv+AcIBuwAOhxHN5BMYAvuKEgWGgGMWQnDDYNY30AAZwmDvMFC2VEFiNYBrOyAKVPQE0ij3jCq
cGlIgP4EWYboxCOsRMBQVNebQSKGiCr+PMp09XJFBz+SJgUogBCNmAAwtuCvTLjhCEQoiA2WJgaE
SEMO6iIIt94gt2eZSSDrSN4M1vEGObxxGdIY0UA4IQc2FoSPOxhRJFAWPCX2MXiQE0kJ/cVIGmQB
d0ewgQrHeIQyUmQd8zLNSLjYSH9VAZKBu4JAAJeGinSnkJr0yBY7OastzACUS7OBGACnCIokIlyp
FAkmsiCMoqWJk618Ze6GmbtaTiQR73hjLkuSBQ5gUYvh+yIxh2mYZeYyV8rYxMIY9rCHDaKa1gyn
OMdJznKa85zoTKc618nOdrrznfCM5zkRwQQJSMAYRv64iSzAkJMTvUIDl+jJMAIQgCY0QRsITahC
F8rQhjr0oRCNqEQnSlGILoSe9sSnPvnJC38CVKAENWhFR0rSkpr0pBZVCEbvmc8B7LOfO/moT0J6
UJTa9KY4xelF68nSjcL0nwGdaUFrmlOKBuASASiqUku604y2FCc/lelAh0pS9mggoU1AxAwm2gQj
DOQHEmWMQ706EF6YdAZXPWlTe+pSjno0qFMV6Ui1alaEpmarEh0AInSgjYBGVAczIOpCJTCAgF5C
sBUVq1pVylONtjWqcKXpSDUgECMgdDlanehbFqoDyzb0Enht6GZRClqbrtWxUO1oTCNL1YrKAhGp
Qf7oa2PLIoQ24bCD9SxCdSALCfSErwhFKi8824Qf8CKp2gBsWhN6CZ0otLmvWKgGePFa0zLWqT5V
LVBB2lqKIkIWlGXRW9yiDTAMAKE/iIx0ZyCLhBoBERIwwg8QsdsZBMC8XvkuGBCRVND+IKBJBYME
eGEMMNh1wAXerTGMMVzdnvW6bE3tW7kr14kqdzk/eG0TyPsK+mpjwA19xQyMUFMjmHU5fJWFZU2s
DSMYWBuyaK9bBsIT/nrFvpew8XIKKoH2wvi8KD1tS1+qXalKlqKx/bBXzUreHXcYsQkVMZAVK4FX
LOcSH7byDPBphPiW18OyRYQRxsyY147Zq5f4gf4x3FvXxSZkpah162opDOWHEhahA5gBIg5KXm0g
QgMJfqhbCGpfPPNzzdpgDGgN25MWO9gIsmB0VyNt2K62ucrWfXNjhyzn7Qq1wn+dQXS18YMZgFUb
fR6AV5GrUKIuurToNQYiogvYowZ2sD5GqIsXumuF9jrRWA4yhB1L5Al/us4NTU1NL6FeVOPVLblW
qCyO2wS9bnjNBwWtemEtgVM3erQIfYUEDtqE6Iqb3Obea3JvLWxNY/exRWYtqCF65ygntM+gBe5C
eaFVPfMVtO9FqKkRSuDdImLBa1buQs385zC/N62pMYIxQutmhMCZ05Cl81JVDFG/JvSoSX1yQ/5v
q2+H6gC3CT25YG/r8XZbfNM3kfCcj63UK58UxEvN+UKFnF1jxxXZJuVFs0kKWlbrXOc8h7fPj5zT
ASyXpLxo89GRPuyndtrI3Z261reuWXl6/etgD7vYx072su+yCu7gwD6GsA9H5KrsK/lGMQSBDSSE
IhQGQAIJKgD3lfCBEhSQAgUoEIseHAIKb+87SjjQg1iwgg2F7wElUpB4xZtEGO2IBQXY0IPOH6IQ
lk+JMBYBeM4XfhHFCD1KHLEIx0f+EO1Iveov33rIvx4ag5s9SIKxDkVMohuaf307oKF7kCyDE8iX
Rila7w9/UKLz7ShFJj6ijOVBLh2c2MEv6v4oBzlM8PvdR+MOOJG6yeXemsp4ww6kQQ84xKAA2PAH
BZz//HbkwAP0qIgy0pAIH1VDE8bBAqgwgEAwgAZ4gAQIBAWIgKgQHATQAf9QDWikCHqUF5xQDW8A
B3BQBHFAD6kgCUiABJRACSowBjmQCOEgRw6hDGaACgr4gi74gjLIgArIgDZogOMwgDk4Dk2iF3Uk
DZITB0UAA4WgBZIgCWMgCIVQAJtAD+snEWmgCiEwhSFwG1aoCs1QNlpSNlzYhWXTDFcYhlQ4hUDA
NUCQRIvhI5ygOo/wCJGAA5UABXI4B1BQDAXwAXKggg3hAa6QDX74h36YHX9oDoBYiIboh/63cAtd
qIjZwIVagoaKkX3klwiKkAhwUACVMAdmYAaFAApWwAeb8IQRUQGqcAvmUAeomIqquIqs2Ip1MB7i
kQ2C6IfNgB8dASe4mIs5sg6TExF4dDKJEAMaSA8FUADpQA/FgA2UsAgbUApnIBGY8D+ucAuuWI3W
WI1/6ArNwAKoRBHK8Ai8WASRMI7BOI7rIAPnuAyPsABxhA/vsAOWxBC8Bwf0AISWSIzrh4xjQAGs
IAW0UHkPAQ6/8A9dAAQh0AxZeAuDmB2veIqtSIiGqIiKEgIssApzgIGlhBHVtw7iOI6aEwkxkDrm
GAckiY5n1AGrYDkMsZGRUASRQw/Ih/58m1AM3aAPnZAKAPkQFVCJ2PcLcoAD1WAGc+AEq9AFBMAC
Zcg1Y4gOBcgCBLAKTqAJZlANOPAGxqgIaZCVaeABKqSRj7A8HpkI9sh+0vABwJgIBrQDHrA7CVF9
QpgIMKA50nAMaPQBkSAMueACpzACOekQaRAJHhCYHrCViqAIcJAI9EAPxxg5kKOBlqgIgvmXWqmV
FVABYlCZFZAGXYkRccCLcikNyLcDBcAJBeAFQHgsvRgR1TeEqPMBO/CaPlAEFQAKeomTE4EJWVmZ
k0mYhlmYkAmZHmCYlLibu6mbaSAGyKmbm7mC4LA8vLgOBLIMyrAOaNlHo/kLxZh8qf4TjxDBjpYI
AzDgAa65Ax8gORVgBVJwCqlQEX/Ji5W5DsSZlZGZBpVID4kwmIMpn8VZAbx4mfC5nAmxC+AgBuvg
kQaqOukoneuwA5UiB8VYmvapCNB5fg/xjUVAjzD5mh/gBfTgAdBwCi6AeBSRlc+ZBvCpn/iplcGp
mAoDByqaorvZnwSaBhUYoBtZoJVoiRoIB4VJjpqgCe+AnaXpBV6QOjQ6EXDyCNwADpngAfToBYFZ
Ae5AmyFKEZgwjiR6ovq5m4J5mJAzmMBJmPNposfJi0cKEbugDGJAn2KZDl7ACV6gMMdYnw9ap3Oq
mUi6DB6QCL/wC+GwhAWQA+EADf6bkJcukAJWao5cGgmTGZiT6ZtYuZVbOZ+OqpUlWqOjgQmauqlw
Egk8mggK86Zw6gWbAAceUAHEWIx9WowcCgepqZqREKiFMKtzUKuVMKvQQAsu4AIbkKiMKqnySamB
OY75SayCaazB2aPECToFUX1rGgk9ug5isKTKoAg48A7hsAnIR6RESg9YeQaJoKoFgJ3d6qLe6AU5
UAzFMKtQMAdacKuFUAy00AmnkAsUUQXIKpi+KZjHeqD+Cq2QqghYOpnMOhCYwJKFqYECO5gVkAgN
6qbpwKrpUKoVcAYF8AZ+Gg5+2qe/gA/KBBHukK7qSqta8K63WgwjsKugQKErWP6YgfmbAdujHimw
AOub4xiz++oBv/qX3DkQVbAMf3l9cmqJkFOJb1qnpGqqHsCUNaiU0+gEmLoQwlAMKZAC6poCc1gJ
lZACtNANndAJVsCyDaEMPIqzZnu2aCuzw6o6eQO0iqCYbxqnpgoOnuqmpPmgrVoBXoCK4lEHiYgO
dhC1CYEJJSAI3ZAMySAIgjACqUAC2DAHJLABZeAP+sAKyTAJfbkQ4FC2vZm2AauwnmuzN9tGzbqm
b2u3nJAOLioGPHm02Ema6cCo1pIdt7AK+EC6EvENKhAKUiAFlNAOhxC8I9gNSAC8LtAJLuAPKgAN
mZsQ4ECJjbmj0vu5CRs5nP57mF6qo2abkaXrpJtApKPpBUorBxzLsRi7fWh0Bsvgkb3YvA1RDKHw
tWxAAXhnAPZ7v/Z7CiBKASS4shCxDIwZwAI8wAQ8wDsKqdxLEAPqpPRApHCqumnwMn8IhgeZha4w
Dh7wEdAgBfrQwT0gArGQnqdwvyDqAqwweM2nAoTwvwXcwi5MwAfMoxlcEJhwBgUqll4wmnAqOYpz
irHoCqfzEZgADT3ACqwQD6zwtcirl6cgwi4gBc2Xwv/4EGJQjydjny+cxS58mMbkJI9JpNhJrvRQ
AVUgDfjgBA70Nl1gB+MCEphQCocQDzcgAiIQD0qsl/gbCkigAtvgB+1ACf69EAhULKeEnA4oU4+J
mciKnJiMmZgoczJDG8BdPBA0BAQPaCmVgpIJXC/POBKaWgrPh8QiAAts8LV4bABToAKpAAU4kK1W
IAgMwLwOUQFySqRuGqeFnLqFvMuhKg27rMuRIw2TPBDSEAJ9WwfZcAshUAAtMcSH0HhsIAV0zAr6
cAqUMAobAA2lUAr0sA4d6gGlwABQ8BDrEJMOjHyEHKe6DLHYt85yCqfo/M6gijLp0I1whAMdAAS3
QQDvMMwpgQl68MyxwAalfAM3gLzFsAmlYJrHAjlEWgpIIAnuezukac7betGiGpMKE5Mc3dEQ+6YK
Iw24rIc0rAwAqhJD3P55PUDQSfy1p1AMxIjIHEoPkwANgpB3wtAQmKAI5fsLrzl+HV2nHY18BSCa
RZ2dQ526RP2xalEFRBwPsRAPBI28yGsP0GAFObDNOYC1KmC/LkAB3+AQivCT+BB+3UeXx/AGaq3W
dGnWbv3Wax3Xat2nJJ0WVhDKBM0GLT3C7eAHqTAGvcAO7DAFUwCinYAEJVB8FPENY0AJsTDQem3K
+nu/hM0AJEALzMC7UpDYig2NkzAG/pDX1LyrJbyXbQAKnmgFbRAKp4AEfNDZtykMghDaBm2Tu3q8
LtAGVlAGbTAKlKC/epzTsA2N7pAL/mDESqy/u4oEhF2/BhAKU6AHYv473A3h1EggBaasl7uKv6g8
BVCwCdNN3QohMJhQBSUwAs7N3am8AVbgCAMj3hdRBZMABffwBWMABYVQCnzgdvDtEVXw3xPd3wI+
4ARe4AauFJyAuwfujRcTRx1gixUhDRAoB/YM28sAJUCwCm8TKRUhB+qgJUDwD0XQ38pglKqAD6tg
NRchDegwDl2wCgQABB8A38qAki/eAeOgkt7YBS1OAF2wxjSOkquwCjiu4xTBCQ4IBE5gB2xZfDU+
5EOeGxr5D+OgDt7nBHLwCEoRDFlBlFDeBUw9EZzA43FgB5YsB4zjEogQDKIQA9LAD/xwByM+E5rw
4kS+CmE+EZpAAP6a0H+oUA1myRI8UAQ+UOh3cOj8cA7nwA/SoOUxQZBd0AFO0AF1LRFGpAlOcDI8
2H8pIQ93wA/ecOizAOdxzg97cA7e4AOiEBPVcOM/WuETYQfZAJVyUASaIA1xEEgm4enS8OkZgAKz
IOooMOznkAHF7g0wYQdQqQn/0Occ0QHZMA5O8A5lvi07kOYjUepwfg7Azg/Dzg94MOwZYAoO0CAu
IQdR+Q/v8A/YjhHrMA6qAAQ/uqCAwgmVzhE+EOd3MOrGDuyzMAumEPCmYAHkvuqI4htwYhJvwOzv
UA3VoOAY4QPjUDaTfppKxAlNzhGezg+z0O8oIPBYEPIibworgP4F08AEiAAnBAIO6wAOyhDeGLED
QFoN+GAHEB/zqFA2RM5GMx4Hb+DoIbHx4+4ADoAHs1Dy5E70RE/ypjANotAgXI6LLS8GglsRF/h9
D/8RO8AC6jAv0x4HnMDlOzDnIcEE+44HSZ8Bam8HDxDsd7ACRL8CcD8N/aZGPPMRZlzWchC4ILED
QJANqsACUBIJH5B/H/ABj2AHMDADX9kRTLAC+w73DnAMGcD2D3D5mP8AGfAARC8PKJEIev8G+FD1
Vp/zqjAO/4DnoB8H4dAFrVBADZjnFYEId9D2s0D0HX8AB4AkQiAEm/8AdpABcF8EdT8SkdBHao0P
Ga8RteEK6v4wDppguy6JxkDw4aqgDiFO+uRsBwcgBHOv9ER/+b1/AA+AJJw/DQ5Q/CBBR2stB8uv
EevgBNqICqvwo10Qg0CgKOrAlKvQ7haBCQBRrdqDByuwOJjmAMs0hggVmsITcQVDRDMsXsSYUePG
jcvefNwhRxlHkiVJKnunDh0qVATQZVOJTmUrmUDGcTKZE+O6XQjurDDIcNpCLAeHMixqYQVCJjqd
dpSz46PIp1U3vumCCsiqVdlMRFCpLiY6dEDsWM0Z6ecKUwiPIiQ6tOgKPAtFVUTr9OPUvH1nRPrX
YRU6EyZcyQwrkywQJ+v8bpS3NmjCokWHKqyMZ2mRpo9J7v59g89z3h2oCmdThU7VTLFkVXb5MBoj
kztrFyJNKJdoUjwIRcnWCFoO8KqRspkz5+rJasSuU6tEJZo4ohVrTQmFe3Q3FoimZv0mbnGqnOHh
dToxZyKbK1eqVouFH5+spmXhHcwCuhR3Zcv8lU4rwryQ5MCnPPNKWgcIc7JhkD323HsivtVaUWkc
aeybBb+2kOKPP1MswOMBPEwBD7iQ8EHxQJPWIUAVVxZEbj3l3ItPndVSAwKfKnSKJIYY5AmGpCLu
wC+opfhbAUQLQOSFIBKJ2wFFO6RTkaR0xnHlOOQWVK49dR5UpxmxUkNHExk2Uqa+GZaJRJ5EfIxh
nTMgI/4SqP6SVArEiEIkqLfHlBnJIk6kNLBKjiLpQBUtGTQngi5tdNHGMckiIJGMikgkkkzjCPSR
OIqIIdNI4gjyItp+qmuaD/XccxYfhpIIr7wAvWiHdzTRhEpDOVKmGkUXzcbR9mZc7r3WUMHpok8T
kUaaRN4sQh6LgpEnjmd98OGOH2egrkju9oyIRETGFcUBU0wpFS1A01zTjg4IGGcVx3YtSY4QGMym
jgXXe+JB9/5VhcJWdL0ozUia9eHZGKK16NODdyDomHIzNGiFWRy4CxEJEjKlujsC9GuZZdLkpCsA
9E2WXpJ2ACLfRR2E2UFjzypJGWsRjsGHGOJ4ZM1Iiv44xo4YZiiCYgfGZaLcjvGLId2QRV5nh2xO
rkOVC1UuKZEuXtQX35jbU6VYdQguKZiDpUk401J9NJVIC9ry+OPOZEtznXUSybcOV4AIFGuS0ugg
yxgb/Jq9ZlSh2aq70SYpGB8icrUIp4lbJxJNVTnZHFXU9PukdwTHt0EZYUbcr8k3EkXyXZd5lhN9
F1Rl3s7r/RVfR0eHOfHZw1PmYXP0rVr23TlKB4gsQ7c99+EPXEaaHVSJEQjOl98oEgKODz0C3HWn
fjRlEtmBAL1VGafv7jUSw4nakZeR+/MfWyb88dEx/32MUHIR3yiQd9/+vrTe0jj89xl0HC8K+1pP
//4GaBVlvGFqrkjZAjMiDSwxKAr7Y5ACJVgcaQhvgztZRe1ipMEPltAzvdKEE5yQQie8wYQvhGEM
ZThDGtbQIphQBiaAU4Uq7GMf7uChDe0HKBzqcDSOAMULYtGDF7QBFENwhCN4GEQhdm4ZRrQIOB5D
iBfcAAMYsIY1vkgHEdQjGkkYwj4cAcQqquwXI9MhJyLhF0d0w4sYIEMecbHHPILRGiKAhSfKkEYp
WmRHbSSOsxTRu2o8ZgOU0McX8zhJPupxknTA5B/qgUZHIJI4iajGOOQAjkJZxR3YoMAdv4jHSZJh
j6+EJSbpYI0XDOGQnnzMG+DVBTGUsioVoAQrwv5oDTqskpWtjGUYwvAHMhTTGmW4JS7zgg9NdOAf
ieDE9KryDRWw4gbDJOYsJYnMPf4hCecMAx1wQYZnRlOaT1GGHbpQjVVk6mpocYQKKODNG3xzmLIs
5jHJYM5zJiGdeYzHPmaAxXfqRBlyGAcBupCG+PkFCkjwBxs0yk9whnOSGKBDGApq0DzSARRVwMQu
GuoUcLxBE+P4hzJI6ZdJkMAfFPBHLHSqUzbEYp9hBOgX/yDSJEQDk9R4QRlKsQqyrVQjy5ADJ+wQ
CRxWQ5tPKQUUNgCFMYyBEl/9qj+kkNMbsGGYxqTGH9RKDYN6ohjhaGQblXG3q3LEI5kaWTzFUP7X
nFSAHJvYBB82AY0UpAIbYT1ENw7Rgx7EIx6RNCYd/mCNfr4AGvionw4ZehGRDXCuB+tsTsTwBrwC
6iyhtQo9wlGAb7gDiO4ghBbGkArDYqMb3YAFLHpwA31A9o/xuAErDlEMS2UEpeBQaUbmOsB1iGxk
kajfRtbxBk5wwlLgiCtqreKFShQiB3yAAz0AUYgqVMAKxZjDbBPLWMaKgLGUQAISoJADRWQEE/e9
7xncuSZA5XWuIxsZ1r7H3xkMeEVySIQYwAGouBaYr30tRArmAAgCqLAAFZgiByaxgVSo4KuHOAQl
utGHXGyiFF7Q4S3xe18PzOmp/k1TjJubV/5D3W0G61jXPUkCVR+sgxtp0pVMN+uUb9BWEpJIxT16
0QstTGJHVXBHFioAWCtU+RulSEElzFCNXygCvwtdcTpOAt01FbjA/4VadGVTub+wKxFqxsgu5OCD
NDR3uRjBxF7RUgAPqwAbSJjCGO4BCEB0oRKlaK0wovyNHFiBD1aAAjlYQIBVVIMemtXsDOgBZ4v8
t2/rYhetDmS5GSRiGY4xtUkwIYdfRMJu2i3YgzlSCBWAGAlcuMegCb1rQJBAEBvIRbBpIQhBAwII
W+lAB6ShUvymOidz5XSVNNVmx0gj2gUmbRoUzK6NYCLATplDrbtBiSncIwQhWMU4WKBrSf4gQRIq
UMGRj9wLFqziH+94xz+cQFVv+0CLT4F1p0+tKWlUV44zvrZdrY3jkemYI4mwg3XTAA5pkPDMOamC
bBVLCQbkIQ/j6EAXCECOLtzDCeTQwhygAIU5zOEe5HACvmVuh3SAIxJimJWrLSKyNDHL4HJ4RzWs
mwg7r6sq0uD5yIpbMA8sYxeYmLgYumCGj+DKlxpJeBZk24dx75orIlehE0S+irCvgtKrsKbM35FN
D6KFWSMJFOuchc0d7CBTdrsft3NCdBnPESPPUkQi0sEJL8vBDE6oBtJl/ZQsQKEdtRg3FO5B6bE7
4V3GO/axxzGOLnTeCfdOvKj90js17f6gPp+13LPuHvDeJZxN62puRrCZiMBLw8tv8EEklgEOWA/Z
KSlYxG2RbIZJd34V1RyMamxCgF12ngD/EDocItiXHSBduaeunOVc/WqsryObe4/x0i9Cj6ELfo6/
kMbNwSGGdSjC/dqugAfcT2adVKGw3ViECu4xBy0w3wzvUKGIIgAgIAA7kAaXcoJV6IJKCwd8eCPP
YBZmyQg2qa66e4Md4IRmwbHrWweqKIk00LZT04jBUz0vSIMZqC5XW4YK8AJFEANte8EKEAP2mz6S
qAJBWIQRGAMSSDm4MgN8mAMccII5+AgD3L6DybdCqAYcoIcz+De/4AS70T0HA583IP4PFCkQ8viI
g+uvu1kH51G19KM/jBg8engWL5gjaUgHOGC/dQCHZ2kBD7gCD5A/ZjlBncgC2lo5yZMERoMDOCgF
HMABLmsWwQuJagiHXygAL2DDGcwCz0g/73sWqSCPSrTES9xCZym4SOCEq8uIdHgW+1qGRaS9RGjB
KuBEolvBGARBOgTBNHBBp3CEVBCEYrACFeCCKeADHBCGTBAGD4CDTfhDRfCACjBGD/iGCsiEZQSH
TBCH/bKKZZAjacAHO7DGKcnC8bBCAsFCFCEQ6yKQnEiDULSIM0gDYFQEY3zB2ksHUAzBGRSDCnjF
eTwD39OIfSABKCiHW5yCKbCCHP6oANfyxWUkyGUUSNdCSHHIBGi0imeZrqATiIi0xiysRoGQuX/Q
hHcgrR0Qumd7g3TQIXCAg0hIAxk8AyesAEVQw+qCg3XYK3BIg0yQx3l8wSc0CT4Yg2IgBFBQAQPg
gkIogBbgANfqRYNEyIKMsixgRnu0CoKLSIG4xgKxworMt3/ASE34h7qbEtf7BxeaATHwghZzQnA4
STHwAGz6BU6AgzQ4SZiMx5IEQRncQJ3IhTHIgW/IBUowAAO4hwLYhCxwB5nsxcBESMJEyCxQykcE
ji+sxonUQqkQDqrEt2rYATt4A6MriWXoAK/EhF+QgwKAAw9QsJOsADjwzC6TQf5MWL9MiMeZlMFI
YEjjogUVuMti0EsDmIJKyAHERMrCPMgoizJxUEzg0BRO2MYLhEzQGA8sJA+kSziLQDojkjI48IIC
UERFNE4vMMUEu6IqEINlLEl5nME0iM2LwARC+KpcwMt2MIBTwLU5QEzAzATfPEzAjM8suC/i6J1m
aZa6kwoLVM4L5AQMjMLFK5ioMqKTVMqTLIAcoIdMcMIzoId0FANM8M4zkEljhMF1YEqLyIISGAUK
OIQ+IARowIZTCAUuAARyqADEBM7CvM/7zITh1E9OFFCDw9EBxcCQmJICfU7onBdMUMplVEovIK31
O0k4ILp6zDMMdc3vrNCScP6HXFgEKVgiPyCEEhiDKUACHgSEUnCtGBVTxBROlDqQ/pIGOZjIbpQS
O5jMN+igHy2wdZi4/JTBZfzO6mxECHU/BSswtjyDt4RSWXMHWqAAKWCFHkgsUCAEEmCAXuDBLtCC
b7DPMRXS+IwyQ6kb8KlGtQs6O4gqVZTTG0sEcOAhLSpNeMyCdPiFRDjHknwWGZwBmMRQQWXNB6uC
YkACKbBSRU2sXGCGRcAGXMwDBiCBEgjTMXXRKOtQuulC7bMchBvVi0gEekiDxJyBM0gEOAiH1VJE
OSiEQsCBFmRDLVKGiWNNdbxVkshDJNApX02sdqCEUJgCBuACdsgDduiFYv5oLWV1Bw4ohVLIzzai
BzioAHDABCb9hcP7Bxz4hV/Ah8P7xkSogByCOnBQyBlkTT3jiCyoBK9aLBB7r3nFzSm4VxAAgUc9
tG8QBg7gAGHgA8KShEArAU9Kh0042Ga00IcViHCwQoEwg3BwnolD2N7B2GYUh/UTAxfrtiywglQY
AxADMUrwB39AglDAWp/kApRlB0DINZQjgVy7BwZQgSkIhVSgURsCxYNVSjEIBzOYEjkIjSXEB0F8
g4lbqCpQBkUAh2ZkzaT1U5NwB2hIhXYAsaqlgEOVglM4Bdzc2q69h34gNHKgXJerUheggG9ApIKN
ySw4g19gKgKpBjsYxP5trIYCCNw0ccHv7FtxUDCblFLCndrEZYVO6AQXaFyflIRI8zivzccUEASx
YgVKqNk2koZyrYIzuJIW+s/mEgPwaVWRQSm9lUEFm0He69uqcAcrGAHDjYXard3bZVwDaIcRODIS
oC1mOIR96oRYOATNbaNMEQNAQalIqIbOy0gcYDUhrAZXEwO9BRQYJMu9msFpnYEqAFGRZQVW6C19
wN1QuFqzheBDXeBYoIRiGNiV2k/IxMBnSQOSXBdwqIBIUIQ6++C1NGBDIoRiSIXF4i0REIFDiAVe
XWAKiIUY1ilK6IO0dSrpWr86pRVlqIDKUQRXS+GMQKIRONRTcN9DeP6BJ56HF9AtCx6BEjDTHnYo
86SXHiKsdhArXg0FKaAAJEiFDSgBHsbiDeIhR/ChIUgjNeKhZk3jOabjOqYeCz2BtFIrGF4ravBj
ariAeqiHCwhkQTbkQz7kJLhiOzaPOuoBaqgHT5DkSabkebDkS77kWtDkTX7iGD6ETmLkA3GHYtgA
UCiBEjAEPlDlVWblEuADQ4BlQ5gEWZ6EWq5lUGgDWoACdwhlFRGGZFyHOBDmYSZmYYaBIkDmZEZm
GDjmSPjDV+aD8uzlvlgAGYgDUeCBbOYBeNBmHhBmb36Ebu7mb75mZoYBkrBKqzSDdf6/StAyKAjX
YpDneQ7XcNUydv42g3TWZ3XWZ3aWoXDuZm4W50cgaIAW526WAAnw5jggCQBw6Id26DoIgX6gAirI
A9lCX9qC2q76AklgAEiggmeA6JEm6YeOoUcIBiZggoJW6WwO54IeaJcuaIOWh57hiJJ+6DqoaHaY
rcKlrREAasMaAxX4AkAA6WdA6qTGaZOOoWBw6mAgaJVeaW0G6JfmgZeeaYLWZmm56aV2aCoAgXuY
rXZYhFSghVFA66Buh3a4hykI6aQWaa+WoaeGapR+aibgAaleabwWZ7yGaZduaK926GdgB7Fe6xE4
a2ZgBlJghhG4rbV267cW6TrA6WeYa7rG7JR+hL3e7M3WZqm+av6BvurAFmwAoAJIGIO17oYRGAVm
2IA+6ANmGIURWAQQi2zJhmi4tuzLZoLMpmu7zuqoZgJ4IGiBtumN0G2kHumkpgIkWOtDGIFaYIY2
aAPYboPGTixsYICK5m7m5u6KnqG77u3MJuinDu6Chof05ubj1ojkdm+kpoIp0OjorgVS2ADXzoXr
vq1uSIUpQFkQ+O4Ap4KCcTVukCBA8W3yNu+9duriVu/1Jgn4FvAJZwct0GXErm/Fpu78TobVdmyT
BXDu/u//vh9N2Rb/UQannoEE9229XmkHV+/R5ogJp3EqYIQ5mAQ+2Cq0bm1SaIMyKAOui+7uBfER
N3Llgta57P6eFGfxBBfuF9/sls7mB6vxCZ8DQzDYbzCEQjjrWhiFHwdy9QXqEWAAIzdz6YqBHomT
92lyJ4/qgk5pKeeBBzPzOkdZRngHGFgHGZCBkzQEWgDq6QbyNtjkbrg1O0dZXoHWUemeNsdsOP/t
KO9m9s4ILrD0S790dmAHTIeEVggHPp8BOFjjrBoDUjiBMrjuIQe0KdD0Vu9Hj0OQnwGVRGDo5XF0
Fs9qvr5qSseIVmeHftT0fgT2Vm8FRhCNR0gEkKkCeiiEEcgFVCeFboA8QGOAamcAYe9HBjCJYEDm
SPABaYgBXiewnVso4rh18g5uqiZoksD2erX2dvc4SLgFc/6QDh74AB6wiAoohFEAck8YgcaOr0dd
sl6w9iXTiWVA5hhAGzLrFHK3myHGMb3ri3OP9Kw+aHG3CGvX+IHn+Grvh1bQBScIhzl5BGmQFkwQ
hg0ogxMg9FoYgfiKryODeXeThKeQB8sJlSLYgSd4B4YGNSFjF+xzrrxo8HM/778GbI4geIFfMkng
+IEHBAboB0ZggWLIBVCOgXOegVJ49iHIhWmneXkTexWwCnlIZk1wFMSpdTMrM9hzLhp7Coo/eqRP
+o3Q+IJ/+qWv9mZoBSigBVqI5ls6A2Az5T5IhXcT+3eDNw9TF1GQhizJkggAgsu8nzJ7e+caVUcv
77nX6v5JJwkSAH0SwIbRF9bRN30SELQv6AddMAcWALZc4ICLqIJvKARTLgZsODIVIAHdJ4FtCH0S
6As7MIHByRICmD45zomid3OU5nyD3nWSoC0/8IMREITqr/5k+Pvqpy1kQAaQN4cxaG1BgAZhMCR3
4INJgAZAt/71X///YQl04BIH6QKH8wzNb/7OB+iaJgnTx4ayln4/AAhBAgf6STXmHgtIunR9GVUm
14YKVWZQnFHFHS2BtGiN6jiKVrJkFUeSLFmymrlsEVyxfOKkiMmYMikGq1nzkU2bj3by7NmTB1Cg
8h7JVKGC0rZt7bBhW+T0qVNsKiQBanVLl7kvHGkVqv4ykeIZPilS+Sm7RNCSsmVnsh35JlvKJytZ
VuPWtm3OYDt1+vQZ9FHQoENlJt3G9Gk3P/YWE1y0DQmLVq0YQWL35QuyCiMNQRM0YsSS0GgHCrp7
NxEQE+YiyGUJ5JhpmTdx7u1rm2dgwURLMpFQuKnTxPZCLwkZckm3dl8Y9JMM6XmrDyMLFBthXAl2
48mUxG77yIk5E1FYRsjmalWi7iOVzeap97bt3EJ3k7x2jRJ+w04blF08nPhZgozRC3PIOIEMEOjs
UNEZ0BQjSEjYSTihem3JAVdKrkRQnivVBFMhe/CJ+JN8g5Vkn1r+/RfadhMqcdwiKvSCTwEffICP
HP4VeZBDCooBuIQvQQYZRBAVzlTEKiYouWF5EQCxYHchjhiffIGZWN81T/G3GHHYrfGlEmtAkEIK
ayixBDaAkBNOOAXAUBE90IAUppgQ2HknBPnkYyRbb6Sm2krZqNRBJLHxNSVuVVq5jEn2aanYil7W
aScxxNi5Bpq9AIJDAeG8OUMpxcwBoS9KkImnnXryyZYydkSgZBQbCuqKHcrcdShgPJCoqFDy+Pqr
r41e89t+XAIZJgSTopqMICoAUsgkBciwQDilQAHhnZZWWmkfqq7KVhx2ZKNarE0SIA1e7+UK1K68
9uqrKMGeOOxh+zVgbKlf1mnmsqn0UskmhnRagf4j0KQgiIT83untt2ytY0d4Jgg6qx1szRbYTrqu
6y5QEvAggQTyYrlfNyoCma++qEKwbR8tC3KPINAYUkoBpXwzSSFzLLEttzUw3LDD/yhpTrmqpCeT
MjzB81euGwvGsTyMzttANyX/FySddrZcA9dcO/P1Cc6E7TIJ0HLGZgHlVCIJMS33wfXPQIOrydDZ
PLHOTEknypM8uvLQN+DA+lqlPDIIa69/xPnyJaWVdv012CdIfoIeuQgyRw6l5JCDMC20kAMJgrRc
adxys5XIP3Dh493eufbd67u/VhmHPIc3cK+xoS1O6ds1QP575JOfYDkUxVjRQjnllAIIA9j08f51
6aaztYzUM6nr+utQCx4H93HEK+zt+C5OysqOey122JKDLfYE7U/QSCN6LJFC8uVo8Rw7gAiiR/TS
NxxM7AbHMR50Tx7x6p4ovjc13J1MSOV7HOQm174TuK+C75vACdCkBz08px/PCQEg+ue/VQFQKH+j
HbCEEq9fJVAU3Eug91ooCvAxsIF1Mt/vJGjBHTYCg8TAhiRAAAlkQIIRlBHhCI0EGF9xLyjcY6IM
XxhDBMowgTQU3+7KRwzfBW+HXoQf/ECRgiCCwIhGRGIS1fMIA8qQBy7sXgyrWIQ5ynGORcDbvMwC
IFOVz20RlJwVLAjGQRKyEVawgiAAAYJ7QP7CHGhMY2xksI5I0LGF67AjJjNpxzhgMgZw+AYchFWM
DZKSlKU4JCqtAL8SsLJ+rkweIWIZyxYowHOEQF45NlEIM7zDDI+EZFuq8A0+fMMDcDgmMuEQiUgk
s5nIpAc9EiFNehhiE3z4ykjsMwNMYCIm3PwmOMMpzm5uc5zcHMkvgTkTPnAkF5N4ZwneKc950rOe
77QCKHLxEXfMS52mSac/TUIISsRCBLU4KEITqtCFLvQFIogFJRzRz4CyBaAUrQgm3FGGenD0Ah69
wDw+KtKRjjSkF+BoPS5QhiqQsyLavGhJyPmJT8CULfa5KU6vIYG2IMIIOf0pUINqH0SYRP4cejoq
UpOq1KUudab5EEdLZ5KPTzCVqeJQj1CvwQTTSCCrXv0pUUti1KqStax6milUYxMEqpr1qFetKdBe
CtdVrbWtbp1rw+SK1wrV1a5P3euq9ApYtbLVrm8dLFavgVj19NWwi03sYwnr179G1jSCrWxMGtvW
w2J2JpftLEk0a1bOglZYpZXJVCdL2tNmU7GsLUlq/bra187gs6yNrWNpiyXdYhS3m/2WMqq3DFvN
YBnrCG5w/Wfb0mLCt6NtmHGVQVxbUW+4eKOerYgbWNfyNgtOlS3QjDtcRkmXurY67nCl+63lglYc
hc0tdNehCLwlt7j2HW9x14HHCrG3s/7unSxlgaaMdYhhuCQhr3Wlu1/I8nYGon2u6TCxjGVWL4n9
xaxzISw9cCgiERVWLndp21wAB1h6A04EJ8Rg4RC/9r8Ani3QMLGOdCTiuCBu8IM1nETjSmMdH14v
i01S3uBid7zIDa4c3pDkY7xByXJ4shzwgaMkJ0K7bcmwjpM44EhQLxI+iGuIq0u9SUpzmfr18TJ3
IGa8EcAVE2MJnN3MkolFAQgwaQsmvqtafwY3GMvogDqcEAMgzyAS0uCENLg85klGIhH4sAM+qrED
O7zj0W94xzrQZQc3v9kVqvi0KuY8K1d04S4ufnFAlSGPHQBBFU9Qxz8W3B37JEIOnP5AdI2xq99l
1jgS+pVGNd7BCfEWKhGcNgfRJiaoKCA7Lp++C5aznMYBE0AdT5DLE9AhBytbVrGJqAY+pJFoH495
meY+c3WHPANltLoOCXKFOeoAAADUwRyuAAIBxuHmDrTFu+8Frz93IQd1uPrarlYFAe7A4BnUuhp2
2AGXg8toX6Mbu+WlyIXesG7jmjviFFHGPzDdllOjOqA7sDZrrv0EV6ujA0e7y2XXUWs7OFzKb7h1
rsWcXYpw4uWsuktz/w1wPlejA5pYhcpXbm1VvKN2bblwcA29AzlQ+h3VuHrNk4wu/5G85BTlhszt
gI6Cv1od6gBCjmwa5M5G+7dwXf7GG1CRdJWrowuDlolPWyz0Pc/1EdJYhYbm/uqKxcQYa49s0EmM
VBgHNBiR+IeGUn5tVzyhAz+eQVdZm2O+7xXuBGASayLgagL8GBGHXyw49u71vSojEmJXSawMXo1G
MbftQx/sMnzwD3VsaOVPQIVJjFDaza8esfKQhiaSvorgt1f1JGb8Xl2vIVcovCTG8K+eFb940BZB
E06AkvUxm3rnP7+06i18Zd1L/vI3uCI7faz6tV9V6J/2/YiNv/yt2n73L3aq69c+/ZXW9SHW/8lf
AILWAA5W/kmbbgkfYi1gWR1gZzmgAkLg/O3fDDDB6cGUBV7g/l1YQHWg/nUHIv70hgQYgzEYgQp+
FQu2YE6FVUU01SdElUlgAjiM1UwVoAhun+mUIMicoAquoAsO4TXAIEXIoDhkgRJmwQ2KgzgEwVHl
oA7uYFJJYMMggg+eYAoKIRHilBHOQFVJoRhKIRXmnxUCUwma4Bb61Fd9YRm+IQNiVhaiYBAO1UiM
GBzmoVKdYWd94QwoITg0oRMOIpEQiR5CIB8qQCBwAAe4QxawFAbGFDgBoiAO4hMWYh4mogJsIidu
4iI24iPSYCSqRzgtYSVaIiYulSZ2IiuyYiAsoiM+4ijC1DdVSCveIi5y4ifGoijOImDlIjAGoycy
oiNCoi/ClTAmozIqIiiG4v4xAtMyKqMtTCM1VqMt3OIrNiM2PeO3ROMtUqMufiIjjiMHvCIngiM2
wqISloQYtKMYWEIgxqN07UItRqI3buI0emIx9mINVkEWuEMg4OM15iINpoFBHiRCJqQbLKQ7NuQ7
xmMgzuM5/eIy5mMjbuO3+CMH4OMtloQbJCRIhqRIjuRCMqRDtiM8QiQ4KMMu0CPQJKNFZgE/ys1F
BCQreqRIXoFO7iRP6uRI/iRQkiRDGkkwTmMguMNMJlEWdGIg4KRCoqRKQqQltGMa+GRQXiVQugFR
4qJRZgFeMaVTHiS3tYUyTGVVYiVaKuRWsmJX7lUVdCIHhGUaqBifYIIluP7BFaSlXiZlTLTiNXol
YGXBQCpAXJLERxrkFVgC0IADXuolVvKlSXTiNRbmYHHAYFJmRRxmVYKD6YCDY17lLtgiRwImYgXC
YPKTYSJkaEaYGOTlZ4rkWLYFPmLmYL1lJ6LmSIgBQiaRJbjmayZkbLLFX1aWOwymApBmReimQWpl
EoGDb/6mQXKmeigARpamcSInRSjnXEKSc0LnQUpnd0BmTdlmJ2LnDGgnXaZRd3oneM5icbJidaKn
OvUmez7jLcbnQaYnJLUmdLZnJL4nK4qifKoTJninYs4iJuCiSQyoOq3nZx7oKFpmKzYlO+YnRWmn
Y+rn/i0lNi6ohQaUg/7qpYa2nwIYpy566HJeFIam5YjyloTeIm1m525SVIiiZYvSFoDCKIoaZHAm
kWayKAZyaC7iZm4e5BX4JzDV6FXe6GkJ6ZDu6BUw6QgVaIa2n5PmonmeJ0JK6Qit6FUyp25dKZbu
qEGKp9woaVbyljssY5Zi6JFelDI4Jpiy1osmY3Vq6ZbC1I9+qZniVRWYZjTeqZf2acN4aVASak2t
qYkKYy+u6JvS6HOCJmhlAaDeY6OC5JyqkzJEalD2qJ9W6j0qQEx46aP6E5WmpaeO50Yu6jJSaIWC
JJdKz54GJZLOFaWWaKiCJZkaaa0mkaH+ZK9SVEYFJKveo6uSxK9m6v5+6mWwqlMWrGqxhmqMymhI
liow0SdaNuuUPmuJRmuuEuao/iSiVgiajqS20iRAduu3CiORFulIxmrDlKtIQqj/+GO6quu6JmO7
JudPWmtzcupP0uuq+OOz2iQ65iubhitQpipwAey7qgfBugMj2mS3eivCBmOW4ulPKqv07IKITqc1
XqzIHqfC9iu8GonHAml3jCzLcuKdaqzJplHK2uh0tizLvuyvgmSUJtGpYuXJVoTNsiw/5qzOCmyM
fezKBq3IygTRFq3/zKzP1qzS5uuxIqte7qzpQO2XSu3UfmvVumtaYi3Q7ILDiiTHzkTXUq1MWMJn
Rum4lsSm6iXXpv7tPU4rRbDtbzIsW8irSBIq3X6r3c4A3r5mYn4L34bkaprG3+Zq4A4u4YrB287A
4YJk4t7F4obqvlaE4xJuGpyrSWArWuot0F6uN2bu3XqnkUKuevAnqiYt6SZsTHgm6iJm53ZH04ak
547u6ypjxkru7CLkFbhB7t4uSOYuRewu7JqE7P5u6jLsrNKq6yJvML6s4DJvSIpB5ZJEz2Zr9Epv
LlLv8lqvkc5lbMatXhot2npvMM5k+Irv+IoBt00uSKKvTKhvMM5E+7qvkUYpeLKuyiqu/eLi145E
/uov8LqBJewC8cJq9wbwicpEARsw8P7mz86AA+soBEuwAVfwBeW3YuD6rga7bwVbxD+W4wV/cASH
MHSOcEzZqwnvrulSRAqr8GuycDAp4cTSbQyDMA3/rg2TogtT7Mj2Lg/3MOqerT9F7At/KxHPsBGn
JRLDVRB7YxM/8exG8WBhghJKrBC3IvUWsRX/ZuTO1RS7LP6GMepmb/tpMRGDMRo7phpzIwG/MXSK
7iwqcEMuJB1jpR3LMUVgwi4oQzxOZR7vsfH6sWkAsiAHIiG3Y0ka8CEjstwo8iI3siM/L/RKcmcp
8iDn8axGsiY/FieDAzyGsimfMiqnsiqvMiu3siu/MizHsixDUkAAADs=

------=_NextPart_000_004C_01C79658.B09287F0
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_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://s22.sitemeter.com/meter.asp?site=s22beyondsalmonstats

R0lGODlhyAAoAMQAAP//M///M8wAAAAAzN7v7///nJzOnM6czpxjzv/OnAAAAG1tbZqamr6+vtbW
1u3t7f/////AgP///////////////////////////////////////////////////////yH/C05F
VFNDQVBFMi4wAwEBAAAh+QQBFAAAACwAAAAAyAAoAAAFcCAgjmRpnmiqrmzrvnAsz3Rt33iu73zv
/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/
gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnSEAIfkEBQIAAAAsAAAQAMgAFgAABVAgII5k
aZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0
es1uu9/wuHxOr9vv+Lx+z+/3QgAh+QQFAgAAACwAABAAJwAWAAAFIiAgjmRpnmiqrmzrvnAsz3Rt
33iu73zv/8CgcEgsGo9IYwgAIfkEBQIAAAAsAAAQAE8AFgAABTIgII5kaZ5oqq5s675wLM90bd94
ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHYXAgAh+QQFAgAAACwAABAAdwAWAAAFPSAgjmRp
nmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP3hAA
IfkEBQIAAAAsAAAQAJ8AFgAABUggII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6
n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHzOCgEAIfkEBQIAAAAsAAAQAMcAFgAABVAg
II5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6b
z+i0es1uu9/wuHxOr9vv+Lx+z++fQgAh+QQFAQAAACwUAAEAoQAaAAAFTiAgjmRpnmiqrmzrvnAs
z3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v
2+/4vH4fAgAh+QQFAgAAACwUAAAAoQAaAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgs
Go8+hRKlXJqaUFfzCVVQq0znaTptdUVW5HdUHQPKYZYZnQaXs+0SV7v60olRUj7vjqvHe4B3cFtO
Zildh0BvenR2g3V8Z45aioV+k5gxlj1ocpRpnHCQjaGkV3GBbYx9mWuSmbF9glavq5WsiLWnrbOi
smS4pqxzfGzDqlhgwX6JwrmFwJfM0J+pwr29ztfD1KXf1pe0zCqGp8bY5ena5+a33NnxupjV4dPS
pZrk8/vsitvg9tnihU+WKEvr7KnT56phP08CQdk7BPGKwoL9GgXcyG8hPlrowowD96+eLY4oXXBV
dBiJYayTqES64whw3iCY/lIee3ZPXsw7nGqOjOiy4MBZSIEhBEpKlRdYBiVGhZcNp9GbK7M2BVVx
5UKsyEL6oqbsqsmtFGEtfaf118WMuR4xtUq2aCe7SPLqvUFwr9+/L/oCHkz4SeHDiBMr7hECACH5
BAUCAAAALBQAAAChABoAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj76FEqVcmppQ
V/MJXVCrTOdpOm11RVbkd1QdA8phlhmdBpez7RJXu/rSiVFSPu+Oq8d7gHdwW05mKV2HQG96dHaD
dXxnjlqKhX6TmDGWPWhylGmccJCNoaRXcYFtjH2Za5KZsX2CVq+rlayItaets6KyZLimrHN8bMOq
WGDBfonCuYXAl8zQn6nCvb3O18PUpd/Wl7TMKoanxtjl6drn5rfc2fG6mNXh09KlmuTz++yK2+D2
2eKFT5YoS+vsqdPnqmE/TwJB2TsE8YrCgv0aBdzIbyE+WujCjAP3r54tjihdcFV0GIlhrJOoRLrj
CHDeIJj+Uh57dk9ezDucao6M6LLgwFlIgSEESkqVF1gGJUaFlw2n0ZsrszYFVXHlQqzIQvqipuyq
ya0UYS19p/XXxYy5HjG1SrZoJ7tI8uq9QXCv378v+gIeTPhJ4cOIEyvuEQIAIfkEBQIAAAAsFAAA
AKEAGgAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPPoYSpVyamlBX8wllUKtM52k6
bXVFVuR3VB0DymGWGZ0Gl7PtEle7+tKJUVI+746rx3uAd3BbTmYpXYdAb3p0doN1fGeOWoqFfpOY
MZY9aHKUaZxwkI2hpFdxgW2MfZlrkpmxfYJWr6uVrIi1p62zorJkuKasc3xsw6pYYMF+icK5hcCX
zNCfqcK9vc7Xw9Sl39aXtMwqhqfG2OXp2ufmt9zZ8bqY1eHT0qWa5PP77Irb4PbZ4oVPlihL6+yp
0+eqYT9PAkHZOwTxisKC/RoF3MhvIT5a6MKMA/evni2OKF1wVXQYiWGsk6hEuuMIcN4gmP5SHnt2
T17MO5xqjozosuDAWUiBIQRKSpUXWAYlRoWXDafRmyuzNgVVceVCrMhC+qKm7KrJrRRhLX2n9dfF
jLkeMbVKtmgnu0jy6r1BcK/fvy/6Ah5M+Enhw4gTK+4RAgAh+QQFAgAAACwUAAAAoQAaAAAF/yAg
jmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo++hhKlXJqaUFfzCW1Qq0znaTptdUVW5HdUHQPK
YZYZnQaXs+0SV7v60olRUj7vjqvHe4B3cFtOZildh0BvenR2g3V8Z45aioV+k5gxlj1ocpRpnHCQ
jaGkV3GBbYx9mWuSmbF9glavq5WsiLWnrbOismS4pqxzfGzDqlhgwX6JwrmFwJfM0J+pwr29ztfD
1KXf1pe0zCqGp8bY5ena5+a33NnxupjV4dPSpZrk8/vsitvg9tnihU+WKEvr7KnT56phP08CQdk7
BPGKwoL9GgXcyG8hPlrowowD96+eLY4oXXBVdBiJYayTqES64whw3iCY/lIee3ZPXsw7nGqOjOiy
4MBZSIEhBEpKlRdYBiVGhZcNp9GbK7M2BVVx5UKsyEL6oqbsqsmtFGEtfaf118WMuR4xtUq2aCe7
SPLqvUFwr9+/L/oCHkz4SeHDiBMr7hECACH5BAUCAAAALBQAAAChABoAAAX/ICCOZGmeaKqubOu+
cCzPdG3feK7vfO//wKBwSCwajz6HEqVcmppQV/MJdVCrTOdpOm11RVbkd1QdA8phlhmdBpez7RJX
u/rSiVFSPu+Oq8d7gHdwW05mKV2HQG96dHaDdXxnjlqKhX6TmDGWPWhylGmccJCNoaRXcYFtjH2Z
a5KZsX2CVq+rlayItaets6KyZLimrHN8bMOqWGDBfonCuYXAl8zQn6nCvb3O18PUpd/Wl7TMKoan
xtjl6drn5rfc2fG6mNXh09KlmuTz++yK2+D22eKFT5YoS+vsqdPnqmE/TwJB2TsE8YrCgv0aBdzI
byE+WujCjAP3r54tjihdcFV0GIlhrJOoRLrjCHDeIJj+Uh57dk9ezDucao6M6LLgwFlIgSEESkqV
F1gGJUaFlw2n0ZsrszYFVXHlQqzIQvqipuyqya0UYS19p/XXxYy5HjG1SrZoJ7tI8uq9QXCv378v
+gIeTPhJ4cOIEyvuEQIAIfkEBQIAAAAsFAAAAKEAGgAABf8gII5kaZ5oqq5s675wLM90bd94ru98
7//AoHBILBqPvocSpVyamlBX8wl9UKtM52k6bXVFVuR3VB0DymGWGZ0Gl7PtEle7+tKJUVI+746r
x3uAd3BbTmYpXYdAb3p0doN1fGeOWoqFfpOYMZY9aHKUaZxwkI2hpFdxgW2MfZlrkpmxfYJWr6uV
rIi1p62zorJkuKasc3xsw6pYYMF+icK5hcCXzNCfqcK9vc7Xw9Sl39aXtMwqhqfG2OXp2ufmt9zZ
8bqY1eHT0qWa5PP77Irb4PbZ4oVPlihL6+yp0+eqYT9PAkHZOwTxisKC/RoF3MhvIT5a6MKMA/ev
ni2OKF1wVXQYiWGsk6hEuuMIcN4gmP5SHnt2T17MO5xqjozosuDAWUiBIQRKSpUXWAYlRoWXDafR
myuzNgVVceVCrMhC+qKm7KrJrRRhLX2n9dfFjLkeMbVKtmgnu0jy6r1BcK/fvy/6Ah5M+Enhw4gT
K+4RAgAh+QQFAgAAACwUAAAAoQAaAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo8+
iBKlXJqaUFfzCYVQq0znaTptdUVW5HdUHQPKYZYZnQaXs+0SV7v60olRUj7vjqvHe4B3cFtOZild
h0BvenR2g3V8Z45aioV+k5gxlj1ocpRpnHCQjaGkV3GBbYx9mWuSmbF9glavq5WsiLWnrbOismS4
pqxzfGzDqlhgwX6JwrmFwJfM0J+pwr29ztfD1KXf1pe0zCqGp8bY5ena5+a33NnxupjV4dPSpZrk
8/vsitvg9tnihU+WKEvr7KnT56phP08CQdk7BPGKwoL9GgXcyG8hPlrowowD96+eLY4oXXBVdBiJ
YayTqES64whw3iCY/lIee3ZPXsw7nGqOjOiy4MBZSIEhBEpKlRdYBiVGhZcNp9GbK7M2BVVx5UKs
yEL6oqbsqsmtFGEtfaf118WMuR4xtUq2aCe7SPLqvUFwr9+/L/oCHkz4SeHDiBMr7hECACH5BAUB
AAAALBQAAAChABoAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwajz6IEqVcmppQV/MJ
hVCrTOdpOm11RVbkd1QdA8phlhmdBpez7RJXu/rSiVFSPu+Oq8d7gHdwW05mKV2HQG96dHaDdXxn
jlqKhX6TmDGWPWhylGmccJCNoaRXcYFtjH2Za5KZsX2CVq+rlayItaets6KyZLimrHN8bMOqWGDB
fonCuYXAl8zQn6nCvb3O18PUpd/Wl7TMKoanxtjl6drn5rfc2fG6mNXh09KlmuTz++yK2+D22eKF
T5YoS+vsqdPnqmE/TwJB2TsE8YrCgv0aBdzIbyE+WujCjAP3r54tjihdcFV0GIlhrJOoRLrjCHDe
IJj+Uh57dk9ezDucao6M6LLgwFlIgSEESkqVF1gGJUaFlw2n0ZsrszYFVXHlQqzIQvqipuyqya0U
YS19p/XXxYy5HjG1SrZoJ7tI8uq9QXCv378v+gIeTPhJ4cOIEyvuEQIAIfkEBQEAAAAsKwAZAHQA
DgAABTAgII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq9YXggAIfkE
BQIAAAAsKgAYAHQADgAABbEgII5kCZVoqq5s675wLM90bd94ru+04isiH+/HAqqENuIRCVA2mT8g
krkTUklXrLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsqLo7rdXYaHL6/vVB+fG2DY30paoiCeGpweXlx
jWWGa4WWUZB6fIprjE2Vmo+UmyWBpISHqZqlo1+dgqF/qZ6osa+Ws4aZt3SAi7BwuXF6WU++k5GR
k7VassRzxNE809SI1dfYOl7Z3N3eKSEAIfkEBQIAAAAsKgAYAHQADgAABbEgII5kCZVoqq5s675w
LM90bd94ru/04i8iH+/HAqqENuIRCVA2mT8gkrkTUklXrLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsq
Lo7rdXYaHL6/vVB+fG2DY30paoiCeGpweXlxjWWGa4WWUZB6fIprjE2Vmo+UmyWBpISHqZqlo1+d
gqF/qZ6osa+Ws4aZt3SAi7BwuXF6WU++k5GRk7VassRzxNE809SI1dfYOl7Z3N3eKSEAIfkEBQIA
AAAsKgAYAHQADgAABbEgII5kCZVoqq5s675wLM90bd94ru804zMiH+/HAqqENuIRCVA2mT8gkrkT
UklXrLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsqLo7rdXYaHL6/vVB+fG2DY30paoiCeGpweXlxjWWG
a4WWUZB6fIprjE2Vmo+UmyWBpISHqZqlo1+dgqF/qZ6osa+Ws4aZt3SAi7BwuXF6WU++k5GRk7Va
ssRzxNE809SI1dfYOl7Z3N3eKSEAIfkEBQIAAAAsKgAYAHQADgAABbEgII5kCZVoqq5s675wLM90
bd94ru904zciH+/HAqqENuIRCVA2mT8gkrkTUklXrLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsqLo7r
dXYaHL6/vVB+fG2DY30paoiCeGpweXlxjWWGa4WWUZB6fIprjE2Vmo+UmyWBpISHqZqlo1+dgqF/
qZ6osa+Ws4aZt3SAi7BwuXF6WU++k5GRk7VassRzxNE809SI1dfYOl7Z3N3eKSEAIfkEBQIAAAAs
KgAYAHQADgAABbEgII5kCZVoqq5s675wLM90bd94ru+04zsiH+/HAqqENuIRCVA2mT8gkrkTUklX
rLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsqLo7rdXYaHL6/vVB+fG2DY30paoiCeGpweXlxjWWGa4WW
UZB6fIprjE2Vmo+UmyWBpISHqZqlo1+dgqF/qZ6osa+Ws4aZt3SAi7BwuXF6WU++k5GRk7VassRz
xNE809SI1dfYOl7Z3N3eKSEAIfkEBQIAAAAsKgAYAHQADgAABbEgII5kCZVoqq5s675wLM90bd94
ru/04z8iH+/HAqqENuIRCVA2mT8gkrkTUklXrLEn3WqfYGs3uL2KnWgneTQ9G6PkdJsqLo7rdXYa
HL6/vVB+fG2DY30paoiCeGpweXlxjWWGa4WWUZB6fIprjE2Vmo+UmyWBpISHqZqlo1+dgqF/qZ6o
sa+Ws4aZt3SAi7BwuXF6WU++k5GRk7VassRzxNE809SI1dfYOl7Z3N3eKSEAIfkEBQIAAAAsKgAY
AHQADgAABa8gII5kCZVoqq5s675wLM90bd94ru805J8AH+/HAqaENqJKGUQ2jb8T0rkTUklXrHFm
3Y66zTA4LLp2mWhmGQokRtfTN7ytHi+leHH+myaDx1ROf3txfoR7JlmJeoxyc4yQc4FsZGuWkGdu
XpEohYNBl3yYiJWLlpOXgKSlp5uhn6ieh410i7KGrbmcuaiisIe3hmyKdYJ0cWmFncqScHzDPNHS
S9PV1jqu19rb3CQhACH5BAUBAAAALCoAGAB0AA4AAAWvICCOZAmVaKqubOu+cCzPdG3feK7vNOSf
AB/vxwKmhDaiShlENo2/E9K5E1JJV6xxZt2Ous0wOCy6dploZhkKJEbX0ze8rR4vpXhx/psmg8dU
Tn97cX6EeyZZiXqMcnOMkHOBbGRrlpBnbl6RKIWDQZd8mIiVi5aTl4CkpaeboZ+onoeNdIuyhq25
nLmoorCHt4ZsinWCdHFphZ3KknB8wzzR0kvT1dY6rtfa29wkIQAh+QQFAEAAACwAAAAABAAEAAAF
BiAgjmQJhAA7

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/css/blog_controls.css

.item-control {
	DISPLAY: none
}
.item-control A {
	TEXT-DECORATION: none! important
}
.item-action A {
	TEXT-DECORATION: none! important
}
.widget-item-control {
	FLOAT: right
}
.quick-edit-icon {
	PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: =
url(/img/icon18_edit_allbkg.gif) no-repeat left 50%; PADDING-BOTTOM: =
9px; MARGIN: 0px 0px 0px 0.5em; PADDING-TOP: 9px
}
.widget-item-control .quick-edit-icon {
	BACKGROUND: url(/img/icon18_wrench_allbkg.gif) no-repeat left 50%
}
.delete-comment-icon {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; BACKGROUND: =
url(/img/icon_delete13.gif) no-repeat left 50%; PADDING-BOTTOM: 7px; =
PADDING-TOP: 7px
}
.email-post-icon {
	PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: =
url(/img/icon18_email.gif) no-repeat left 50%; PADDING-BOTTOM: 9px; =
MARGIN: 0px 0px 0px 0.5em; PADDING-TOP: 9px
}

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/css/navbar/classic.css

HTML BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
BODY #wrapper {
	MARGIN-TOP: 30px
}
BODY #header {
	MARGIN-TOP: 50px
}
#leftcontent {
	_margin-top: 30px
}
#rightcontent {
	MARGIN-TOP: 30px! important
}
#Main #Title {
	MARGIN-TOP: 30px! important
}
BODY #wrap #wrap2 #header {
	MARGIN-TOP: 0px
}
BODY #wrap {
	MARGIN-TOP: 34px
}
#blog-header {
	MARGIN-TOP: -4px
}
BODY #wrap4 {
	PADDING-RIGHT: 15px; MARGIN-TOP: -4px; PADDING-LEFT: 15px; =
PADDING-BOTTOM: 0px; PADDING-TOP: 15px
}
#space-for-ie {
	DISPLAY: none; _border: 0; _display: block
}
#navbar-iframe {
	Z-INDEX: 500; LEFT: 0px; POSITION: absolute; TOP: 0px
}

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.blogger.com/img/navbar/4/btn_search_this.gif

R0lGODlhYAAPAMQAALq6usfHx21tbY2NjZSUlHp6epubm62traenp6CgoMHBwcXFxXNzc4eHh6Ki
osjIyLW1taOjo7Ozs8bGxoCAgM3NzbS0tJqammZmZs7OzgAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAABgAA8AAAX/4GM5V2meaKqubOu+rhFJIrRkVabvfO//wKBwSAxWJhBLZFFpFp/QqJTY
XJCaual2yzU2S9gKQoBBZCyYtEVHwBB0aIzAnAEw3GeMDrPWXdIYFHl7a2oZY2U8cRgXOhSNOohv
kWQDOF8GWRkCBwEBgzwFFAVwegl6GQwJGQqgfD2vrmsXgpudnztoGQeojzucChgArMJ1ODhglwIF
fWgWfQFlGJ/OA6QA07l8zrDN26+0Ost92hbWjpC6Gb4JpD0VBgY7FXYYB3kUtbwZ9nkFAmvUlcoX
a0csNARn1ap3TxsFBpbWpevViFYcHTkuZLqko4EggRkICKAg4I0uAoKwqLUqRagbS34KeXhUpCfa
MF91shVYhYABqIzydiSw0MCSMwufKAww91FPsFYFlgZEVbClrAzWPg0tStPCqZtLWzG4wKuVAgEJ
Tl2Ct7EJygGfAOSjcHOY3Dq1CJgJMIDCqrvrhvGgqwMw4XzD3uIqPLchSgpmAHhsWMfjJBwGLoTp
wrnzFCcGHNw45rm0aSBVHFiw4eS0a9cVFkCgMQKG7du4c8PIPONBCAA7

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/css/navbar/navbar.css?v=1

#b-navbar {
	DISPLAY: block! important; Z-INDEX: 1; MIN-HEIGHT: 24px; LEFT: 0px; =
MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 4px; FONT: x-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: 80%; LINE-HEIGHT: 0.8em
}
#b-more {
	FLOAT: right
}
#b-searchbtn {
	MARGIN-RIGHT: 5px
}
#b-more {
	FLOAT: right
}
#b-search TABLE {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FLOAT: left; PADDING-BOTTOM: =
1px; PADDING-TOP: 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: 0.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_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/css/navbar/4.css?v=1

#b-navbar {
	COLOR: #666; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #ededed
}
#b-search TABLE {
	BACKGROUND: url(../../img/navbar/4/corner.gif) #ccc no-repeat left =
bottom
}
#b-query {
	BORDER-RIGHT: #c3c3c3 1px solid; BORDER-TOP: #c3c3c3 1px solid; =
BORDER-LEFT: #c3c3c3 1px solid; BORDER-BOTTOM: #c3c3c3 1px solid
}
#b-search A {
	COLOR: #333
}
#b-search A:hover {
	COLOR: #930
}
#b-search TD {
	COLOR: #000
}
#b-sms A {
	COLOR: #333
}
#b-sms A:hover {
	COLOR: #930
}
#navbar-logo {
	BACKGROUND-IMAGE: url(../../img/navbar/4/logobar.gif); WIDTH: 24px; =
HEIGHT: 24px
}
#b-search-this {
	BACKGROUND: #cccccc
}
.bt1 {
	BACKGROUND-COLOR: #c3c3c3
}
.bt2 {
	BORDER-RIGHT: #c3c3c3 1px solid; BORDER-LEFT: #c3c3c3 1px solid; COLOR: =
#333333; BACKGROUND-COLOR: #cccccc
}
DIV.bt2:hover {
	BACKGROUND-COLOR: #c3c3c3
}
#bt-flag {
	PADDING-LEFT: 8px; BACKGROUND: url(../../img/navbar/4/flag.gif) =
no-repeat left 50%
}

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/js/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_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/app/scripts/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 <wbr>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 "<iframe id=3D" + id + " name=3D" + id +=0A=
             " src=3D" + url + "></iframe>";=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=
var gt_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_, "&amp;").replace(lt_re_, "&lt;").=0A=
    replace(gt_re_, "&gt;").replace(quote_re_, "&quot;");=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 &nbsp; 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_, "&nbsp;&nbsp;");=0A=
  str =3D str.replace(ret_re_, "");=0A=
  str =3D str.replace(nl_re_, "<br>");=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_, "&quot;");=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_, "<br>");=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 <wbr>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 <wbr>s into.=0A=
//   n: The maximum number of consecutive non-space characters to allow =
before=0A=
//     adding a <wbr>. 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 <wbr> 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 <wbr> 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 <wbr>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)) + '<wbr>';=0A=
      strpos =3D i;=0A=
      spc =3D i;=0A=
    }=0A=
  }=0A=
  out +=3D HtmlEscape(str.substr(strpos));=0A=
  return out;=0A=
}=0A=
=0A=
// Converts a string to its canonicalized label form.=0A=
var illegal_chars_re_ =3D /[ \/(){}&|\\\"\000]/g;=0A=
function CanonicalizeLabel(str, lowercase) {=0A=
  var uppercase =3D str.replace(illegal_chars_re_, '-');=0A=
  return lowercase ? uppercase.toLowerCase() : uppercase;=0A=
}=0A=
=0A=
// Case-insensitive string comparator=0A=
function CompareStringsIgnoreCase(s1, s2) {=0A=
  s1 =3D s1.toLowerCase();=0A=
  s2 =3D s2.toLowerCase();=0A=
=0A=
  if (s1 < s2) {=0A=
    return -1;=0A=
  } else if (s1 =3D=3D s2) {=0A=
    return 0;=0A=
  } else {=0A=
    return 1;=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// TextArea utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
=0A=
// Gets the cursor pos in a text area. Returns -1 if the cursor pos =
cannot=0A=
// be determined or if the cursor out of the textfield.=0A=
function GetCursorPos(win, textfield) {=0A=
  try {=0A=
    if (IsDefined(textfield.selectionEnd)) {=0A=
      // Mozilla directly supports this=0A=
      return textfield.selectionEnd;=0A=
=0A=
    } else if (win.document.selection && =
win.document.selection.createRange) {=0A=
      // IE doesn't export an accessor for the endpoints of a selection.=0A=
      // Instead, it uses the TextRange object, which has an extremely =
obtuse=0A=
      // API. Here's what seems to work:=0A=
=0A=
      // (1) Obtain a textfield from the current selection (cursor)=0A=
      var tr =3D win.document.selection.createRange();=0A=
=0A=
      // Check if the current selection is in the textfield=0A=
      if (tr.parentElement() !=3D textfield) {=0A=
        return -1;=0A=
      }=0A=
=0A=
      // (2) Make a text range encompassing the textfield=0A=
      var tr2 =3D tr.duplicate();=0A=
      tr2.moveToElementText(textfield);=0A=
=0A=
      // (3) Move the end of the copy to the beginning of the selection=0A=
      tr2.setEndPoint("EndToStart", tr);=0A=
=0A=
      // (4) The span of the textrange copy is equivalent to the cursor =
pos=0A=
      var cursor =3D tr2.text.length;=0A=
=0A=
      // Finally, perform a sanity check to make sure the cursor is in =
the=0A=
      // textfield. IE sometimes screws this up when the window is =
activated=0A=
      if (cursor > textfield.value.length) {=0A=
        return -1;=0A=
      }=0A=
      return cursor;=0A=
    } else {=0A=
      Debug("Unable to get cursor position for: " + navigator.userAgent);=0A=
=0A=
      // Just return the size of the textfield=0A=
      // TODO: Investigate how to get cursor pos in Safari!=0A=
      return textfield.value.length;=0A=
    }=0A=
  } catch (e) {=0A=
    DumpException(e, "Cannot get cursor pos");=0A=
  }=0A=
  =0A=
  return -1;=0A=
}=0A=
=0A=
function SetCursorPos(win, textfield, pos) {=0A=
  if (IsDefined(textfield.selectionEnd) &&=0A=
      IsDefined(textfield.selectionStart)) {=0A=
    // Mozilla directly supports this=0A=
    textfield.selectionStart =3D pos;=0A=
    textfield.selectionEnd =3D pos;=0A=
=0A=
  } else if (win.document.selection && textfield.createTextRange) {=0A=
    // IE has textranges. A textfield's textrange encompasses the=0A=
    // entire textfield's text by default=0A=
    var sel =3D textfield.createTextRange();=0A=
=0A=
    sel.collapse(true);=0A=
    sel.move("character", pos);=0A=
    sel.select();=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Array utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// Find an item in an array, returns the key, or -1 if not found=0A=
function FindInArray(array, x) {=0A=
  for (var i =3D 0; i < array.length; i++) {=0A=
    if (array[i] =3D=3D x) {=0A=
      return i;=0A=
    }=0A=
  }=0A=
  return -1;=0A=
}=0A=
=0A=
// Inserts an item into an array, if it's not already in the array=0A=
function InsertArray(array, x) {=0A=
  if (FindInArray(array, x) =3D=3D -1) {=0A=
    array[array.length] =3D x;=0A=
  }=0A=
}=0A=
=0A=
// Delete an element from an array=0A=
function DeleteArrayElement(array, x) {=0A=
  var i =3D 0;=0A=
  while (i < array.length && array[i] !=3D x)=0A=
    i++;=0A=
  array.splice(i, 1);=0A=
}=0A=
=0A=
// Copies a flat array=0A=
function CopyArray(array) {=0A=
  var copy =3D [];=0A=
  for (var i =3D 0; i < array.length; i++) {=0A=
    copy[i] =3D array[i];=0A=
  }=0A=
  return copy;=0A=
}=0A=
=0A=
// Clone an object (recursively)=0A=
function CloneObject(x) {=0A=
  if ((typeof x) =3D=3D "object") {=0A=
    var y =3D [];=0A=
    for (var i in x) {=0A=
      y[i] =3D CloneObject(x[i]);=0A=
    }=0A=
    return y;=0A=
  }=0A=
  return x;=0A=
}=0A=
=0A=
/**=0A=
 * Clone an event; cannot use CloneObject(event)=0A=
 * because it suffers from infinite recursion.=0A=
 * Thus, only a subset of the event properties are=0A=
 * cloned -- if you need others, just add them=0A=
 * to this function (just don't remove any!)=0A=
 */=0A=
function CloneEvent(ev) {=0A=
  var clone =3D {};=0A=
  clone.clientX =3D ev.clientX;=0A=
  clone.clientY =3D ev.clientY;=0A=
  clone.pageX =3D ev.pageX;=0A=
  clone.pageY =3D ev.pageY;=0A=
  clone.type =3D ev.type;=0A=
  clone.srcElement =3D ev.srcElement;=0A=
  clone.target =3D ev.target;=0A=
  clone.cancelBubble =3D ev.cancelBubble;=0A=
  clone.explicitOriginalTarget =3D ev.explicitOriginalTarget;=0A=
  // add more properties here=0A=
=0A=
  return clone;=0A=
}=0A=
=0A=
function GetEventTarget(/*Event*/ ev) {=0A=
// Event is not a type in IE; IE uses Object for events=0A=
//  AssertType(ev, Event, 'arg passed to GetEventTarget not an Event');=0A=
  return ev.srcElement || ev.target;=0A=
}=0A=
=0A=
/** cancels the event */=0A=
// from http://www.quirksmode.org/js/events_order.html=0A=
function CancelEvent(/*Event*/ ev) {=0A=
  if (is_ie) {=0A=
    ev.cancelBubble =3D true;=0A=
  } else if (ev.stopPropagation) {=0A=
    ev.stopPropagation();=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Formatting utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// A simple printf type function that takes in a template array, and a =
data=0A=
// array. e.g. PrintArray(["a",,"b",,"c"], ["x", "y"]) =3D> axbyc=0A=
function PrintArray(array, data) {=0A=
  // Check that the argument count is correct.=0A=
  AssertEquals(array.length, data.length * 2 + 1);=0A=
=0A=
  for (var i =3D 0, idx =3D 1; i < data.length; i++, idx +=3D 2) {=0A=
    array[idx] =3D data[i];=0A=
  }=0A=
  return array.join("");=0A=
}=0A=
=0A=
function ImageHtml(url, attributes) {=0A=
  return "<img " + attributes + " src=3D" + url + ">";=0A=
}=0A=
=0A=
// Formats an object id that has two id numbers, eg, foo_3_7=0A=
function MakeId3(idprefix, m, n) {=0A=
  return idprefix + m + "_" + n;=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Email address parsing=0A=
//-----------------------------------------------------------------------=
-=0A=
// Parse an email address of the form "name" <address> into [name, =
address]=0A=
function ParseAddress(addr) {=0A=
  var name =3D "";=0A=
  var address =3D "";=0A=
  for (var i =3D 0; i < addr.length;) {=0A=
    var token =3D GetEmailToken(addr, i);=0A=
    if (token.charAt(0) =3D=3D '<') {=0A=
      var end =3D token.indexOf(">");=0A=
      address =3D token.substring(1, (end !=3D -1) ? end : token.length);=0A=
    } else if (address =3D=3D "") {=0A=
      name +=3D token;=0A=
    }=0A=
    i +=3D token.length;=0A=
  }=0A=
=0A=
  // Check if it's a simple email address of the form "jlim@google.com"=0A=
  if (address =3D=3D "" && name.indexOf("@") !=3D -1) {=0A=
    address =3D name;=0A=
    name =3D "";=0A=
  }=0A=
=0A=
  name =3D CollapseWhitespace(name);=0A=
  name =3D StripQuotes(name, "'");=0A=
  name =3D StripQuotes(name, "\"");=0A=
  address =3D CollapseWhitespace(address);=0A=
  return [name, address];=0A=
}=0A=
=0A=
// Given an email address, get the address part=0A=
function GetAddress(address) {=0A=
  return ParseAddress(address)[1];=0A=
}=0A=
=0A=
// Get the username part of an email address=0A=
function GetAddressUsername(address) {=0A=
  address =3D GetAddress(address);=0A=
  var at =3D address.indexOf("@");=0A=
  return (at =3D=3D -1) ? address : address.substr(0, at);=0A=
}=0A=
=0A=
// Given an email address, get the personal part=0A=
function GetPersonal(address) {=0A=
  return ParseAddress(address)[0];=0A=
}=0A=
=0A=
// Given an address, get a short name=0A=
function GetPersonalElseUsername(address) {=0A=
  var personal =3D GetPersonal(address);=0A=
  if (personal !=3D "") {=0A=
    return personal;=0A=
  } else {=0A=
    return GetAddressUsername(address);=0A=
  }=0A=
}=0A=
=0A=
// Strip ' or " chars around a string=0A=
function StripQuotes(str, quotechar) {=0A=
  var len =3D str.length;=0A=
  if (str.charAt(0) =3D=3D quotechar &&=0A=
      str.charAt(len - 1) =3D=3D quotechar) {=0A=
    return str.substring(1, len - 1);=0A=
  }=0A=
  return str;=0A=
}=0A=
=0A=
// Convert a string containing list of email addresses into an array=0A=
// of strings=0A=
function EmailsToArray(str) {=0A=
  var result =3D [];=0A=
  var email =3D "";=0A=
  var token;=0A=
=0A=
  for (var i =3D 0; i < str.length; ) {=0A=
    token =3D GetEmailToken(str, i);=0A=
    if (token =3D=3D ",") {=0A=
      AddEmailAddress(result, email);=0A=
      email =3D "";=0A=
      i++;=0A=
      continue;=0A=
    }=0A=
    email +=3D token;=0A=
    i +=3D token.length;=0A=
  }=0A=
=0A=
  // Add last=0A=
  if (email !=3D"" || token =3D=3D ",") {=0A=
    AddEmailAddress(result, email);=0A=
  }=0A=
  return result;=0A=
}=0A=
=0A=
// Get the next token from a position in an address string=0A=
var openers_ =3D "\"<([";=0A=
var closers_ =3D "\">)]";=0A=
function GetEmailToken(str, pos) {=0A=
  var ch =3D str.charAt(pos);=0A=
  var p =3D openers_.indexOf(ch);=0A=
  if (p =3D=3D -1)=0A=
    return ch;=0A=
  var end_pos =3D str.indexOf(closers_.charAt(p), pos + 1);=0A=
  var token =3D (end_pos >=3D 0) ? str.substring(pos, end_pos + 1) :=0A=
              str.substr(pos);=0A=
  return token;=0A=
}=0A=
=0A=
// Add an email address to the result array.=0A=
function AddEmailAddress(result, email) {=0A=
  email =3D CleanEmailAddress(email);=0A=
  result[result.length] =3D email;=0A=
}=0A=
=0A=
// Clean up email address:=0A=
// - remove extra spaces=0A=
// - Surround name with quotes if it contains special characters=0A=
// to check if we need " quotes=0A=
// Note: do not use /g in the regular expression, otherwise the=0A=
// regular expression cannot be reusable.=0A=
var specialchars_re_ =3D /[()<>@,;:\\\".\[\]]/;=0A=
=0A=
function CleanEmailAddress(str) {=0A=
  var name_address =3D ParseAddress(str);=0A=
  var name =3D name_address[0];=0A=
  var address =3D name_address[1];=0A=
=0A=
  if (name.indexOf("\"") =3D=3D -1) {  // If there's no "=0A=
    var quote_needed =3D specialchars_re_.test(name);=0A=
    if (quote_needed) {=0A=
      name =3D "\"" + name + "\"";=0A=
    }=0A=
  }=0A=
=0A=
  if (name =3D=3D "")=0A=
    return address;=0A=
  else if (address =3D=3D "")=0A=
    return name;=0A=
  else=0A=
    return name + " <" + address + ">";=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Misc=0A=
//-----------------------------------------------------------------------=
-=0A=
// Compare long hex strings=0A=
function CompareID(a, b) {=0A=
  if (a.length !=3D b.length) {=0A=
    return (a.length - b.length);=0A=
  } else {=0A=
    return (a < b) ? -1 : (a > b) ? 1 : 0;=0A=
  }=0A=
}=0A=
=0A=
// Check if a value is defined=0A=
function IsDefined(value) {=0A=
  return (typeof value) !=3D 'undefined';=0A=
}=0A=
=0A=
function GetKeyCode(event) {=0A=
  var code;=0A=
  if (event.keyCode) {=0A=
    code =3D event.keyCode;=0A=
  } else if (event.which) {=0A=
    code =3D event.which;=0A=
  }=0A=
  return code;=0A=
}=0A=
=0A=
// define a forid function to fetch a DOM node by id.=0A=
function forid_1(id) {=0A=
  return document.getElementById(id);=0A=
}=0A=
function forid_2(id) {=0A=
  return document.all[id];=0A=
}=0A=
=0A=
/**=0A=
 * Fetch an HtmlElement by id.=0A=
 * DEPRECATED: use $ in dom.js=0A=
 */=0A=
var forid =3D document.getElementById ? forid_1 : forid_2;=0A=
=0A=
=0A=
=0A=
function log(msg) {=0A=
  /* a top level window is its own parent.  Use !=3D or else fails on IE =
with=0A=
   * infinite loop.=0A=
   */=0A=
  try {=0A=
    if (window.parent !=3D window && window.parent.log) {=0A=
      window.parent.log(window.name + '::' + msg);=0A=
      return;=0A=
    }=0A=
  } catch (e) {=0A=
    // Error: uncaught exception: Permission denied to get property =
Window.log=0A=
  }=0A=
  var logPane =3D forid('log');=0A=
  if (logPane) {=0A=
    var logText =3D '<p class=3Dlogentry><span class=3Dlogdate>' + new =
Date() +=0A=
                  '</span><span class=3Dlogmsg>' + msg + '</span></p>';=0A=
    logPane.innerHTML =3D logText + logPane.innerHTML;=0A=
  } else {=0A=
    window.status =3D msg;=0A=
  }=0A=
}=0A=

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/app/scripts/dom.common.js

=0A=
// Commonly-used functions, reduced.=0A=
=0A=
function d(s) {return document.getElementById(s);}=0A=
function dE(o,s) {return o.getElementsByTagName(s);}=0A=
=0A=
/**=0A=
 * toggleDisplay()=0A=
 *=0A=
 * Will toggle the display property of the style object for any=0A=
 * DOM element or object that supports style as a property.=0A=
 *=0A=
 * Warning: This'll wreak havoc if applied to <TR> elements. Those=0A=
 * babies got different types "table-row" | "block" dependant on =0A=
 * what browser's being used.=0A=
 *=0A=
 * Warning: Written in Texas.  Yeehaw.=0A=
 *=0A=
 * Typical usage:=0A=
 * toggleDisplay(document.getElementById("foo"));=0A=
 */=0A=
function toggleDisplay(o)=0A=
{  =0A=
  var display =3D getStyle(o, "display"); =0A=
  =0A=
  if (o.style)=0A=
    o.style.display =3D=0A=
      (display !=3D "none") ? "none" : getDisplayStyleByTagName(o);=0A=
}=0A=
=0A=
=0A=
function getDisplayStyleByTagName(o)=0A=
{=0A=
  n =3D o.nodeName.toLowerCase(); =0A=
  return (=0A=
          n =3D=3D "span"=0A=
          || n =3D=3D "img"=0A=
          || n =3D=3D "a"=0A=
          ) ? "inline" : "block";=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * hideElement()=0A=
 *=0A=
 * Hides an element from view.=0A=
 *=0A=
 * Typical usage:=0A=
 * hideElement(getElement("the-id-of-the-element"));=0A=
 */=0A=
function hideElement(o)=0A=
{=0A=
  if (o && o.style) o.style.display =3D "none";=0A=
}=0A=
=0A=
=0A=
=0A=
/**=0A=
 * showElement()=0A=
 *=0A=
 * Shows an element that was hidden from view.=0A=
 *=0A=
 * Typical usage:=0A=
 * showElement(getElement("the-id-of-the-element"));=0A=
 */=0A=
function showElement(o)=0A=
{=0A=
  =0A=
  if (o && o.style) o.style.display =3D getDisplayStyleByTagName(o);=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * getElement()=0A=
 *=0A=
 * Returns an element by its ID or shows an alert if it can't be found.=0A=
 *=0A=
 * Typical usage:=0A=
 * getElement("the-id-of-the-element");=0A=
 */=0A=
function getElement(id) {=0A=
  var e =3D d(id);=0A=
  if (!e) {=0A=
    alert("Cannot get element: " + id);=0A=
  }=0A=
  return e;=0A=
}=0A=
=0A=
/**=0A=
 * setInnerHTML()=0A=
 *=0A=
 * Sets the innerHTML of an element or shows an alert if can't be set.=0A=
 *=0A=
 * Typical usage:=0A=
 * setInnerHTML("the-id-of-the-element");=0A=
 */=0A=
function setInnerHTML(id, html) {=0A=
  try {=0A=
    getElement(id).innerHTML =3D html;=0A=
  } catch (ex) {=0A=
    alert("Cannot set inner HTML: " + id);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * setCssStyle()=0A=
 *=0A=
 * Sets the style of an element by its id or shows an alert if can't be =
set.=0A=
 *=0A=
 * Typical usage:=0A=
 * setCssStyle("the-id-of-the-element", "display", "block");=0A=
 */=0A=
function setCssStyle(id, name, value) {=0A=
  try {=0A=
    getElement(id).style[name] =3D value;=0A=
  } catch (ex) {=0A=
    alert("Cannot set style: " + id);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * getStyle()=0A=
 *=0A=
 * Gets the computed style of any object.=0A=
 *=0A=
 * WARNING: Produces unexpected results in Safari.  To achieve best =0A=
 * results, explicitly set the style property for that browser when the =0A=
 * element is rendered.=0A=
 *=0A=
 * Typical usage:=0A=
 * getStyle(object, "display");=0A=
 */=0A=
function getStyle(el, style) {=0A=
  if (!document.getElementById || !el) return;=0A=
  =0A=
  if (document.defaultView=0A=
      && document.defaultView.getComputedStyle) {=0A=
      return document.defaultView.=0A=
        getComputedStyle(el, "").getPropertyValue(style);=0A=
  }  =0A=
  else if (el.currentStyle) {=0A=
    return el.currentStyle[style];=0A=
  }  =0A=
  else { =0A=
    return el.style.display;=0A=
  }=0A=
}=0A=
=0A=
/**=0A=
 * getStyleAttribute()=0A=
 *=0A=
 * Returns the style attribute of the specified node.=0A=
 */=0A=
function getStyleAttribute(node) {=0A=
  if (Detect.IE()) {=0A=
    return node.getAttribute('style').value;=0A=
  }else {=0A=
    return node.getAttribute('style');=0A=
  }=0A=
}=0A=
=0A=
=0A=
/*=0A=
 * showProps()=0A=
 *=0A=
 * Displays all the properties for a given element=0A=
 */=0A=
function showProps(o) {=0A=
	s=3D""; for (p in o) {=0A=
		s+=3Dp+": "+o[p]+"\n<br />";=0A=
	}=0A=
	document.write(s);=0A=
}=0A=
=0A=
=0A=
=0A=
function setIFrameEvent(iframe, eventName, func)=0A=
{=0A=
  if (document.all) {=0A=
    eval('getIFrameDocument(iframe).on' + eventName + ' =3D func;');=0A=
  } else {=0A=
    iframe.contentWindow.addEventListener(eventName, func, true);=0A=
  }=0A=
}=0A=
=0A=
function setIFrameBody(iframe, strStyle, innerHtml) =0A=
{=0A=
  if (!innerHtml) innerHtml =3D '';=0A=
  if (innerHtml =3D=3D '' && Detect.IE()) {=0A=
    innerHtml =3D '<div></div>';=0A=
  }=0A=
  var doc =3D getIFrameDocument(iframe);=0A=
  doc.open();=0A=
  doc.write('<body style=3D"' + strStyle + '">' =0A=
    + innerHtml + '</body>');=0A=
  doc.close();=0A=
}=0A=
=0A=
=0A=
function getIFrameDocument(iframe)=0A=
{=0A=
  if (Detect.IE()) {=0A=
    return iframe.document;=0A=
  } else {=0A=
    return iframe.contentDocument;=0A=
  }=0A=
}=0A=
=0A=
function getIFrame(strId)=0A=
{=0A=
  if (Detect.IE()) {=0A=
    return document.frames[strId];=0A=
  } else {=0A=
    return document.getElementById(strId);=0A=
  }=0A=
}=0A=
=0A=
=0A=
function createElementandAppend(nodeName, strId, appendTo) {=0A=
  var el =3D document.createElement(nodeName);=0A=
  el.setAttribute("id", strId);=0A=
  if (appendTo) {=0A=
    appendTo.appendChild(el); =0A=
  } else {=0A=
    document.body.appendChild(el); =0A=
  }=0A=
  return el; =0A=
}=0A=
=0A=
function createElementandInsertBefore(nodeName, strId, appendTo, =
sibling) {=0A=
  var el =3D document.createElement(nodeName);=0A=
  el.setAttribute("id", strId);=0A=
  if (appendTo) {=0A=
    appendTo.insertBefore(el, sibling); =0A=
  } else {=0A=
    document.body.insertBefore(el, sibling); =0A=
  }=0A=
  return el; =0A=
}=0A=
=0A=
=0A=
/**=0A=
* getXY()=0A=
 *=0A=
 * Returns the position of any element as an object.=0A=
 *=0A=
 * Typical usage:=0A=
 * var pos =3D getXY(object);=0A=
 * alert(pos.x + " " +pos.y);=0A=
 */=0A=
function getXY(el) {=0A=
  var x =3D el.offsetLeft;=0A=
  var y =3D el.offsetTop;=0A=
  if (el.offsetParent !=3D null) {=0A=
    var pos =3D getXY(el.offsetParent);=0A=
    x +=3D pos.x;=0A=
    y +=3D pos.y;=0A=
  }=0A=
  return {x: x, y: y}=0A=
}=0A=
=0A=
// The following 3 functions are taken from common.js=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=
function toggleClass(el, cl) {=0A=
  if (hasClass(el, cl)) {=0A=
    removeClass(el, cl);=0A=
  } else {=0A=
    addClass(el, cl);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/* Constants for node types, since IE doesn't support Node.TEXT_NODE */=0A=
var TEXT_NODE =3D 3;=0A=
var ELEMENT_NODE =3D 1;=0A=
=0A=
=0A=

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0063_01C79658.B0A59AC0"


------=_NextPart_001_0063_01C79658.B0A59AC0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2-anisakis-and.html

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Beyond Salmon: =
Parasites in Fish, Part 2 -- Anisakis and Tapeworm</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<META content=3Dtrue name=3DMSSmartTagsPreventParsing>
<META content=3D"MSHTML 6.00.6000.16441" name=3DGENERATOR><LINK=20
title=3D"Beyond Salmon - Atom"=20
href=3D"http://beyondsalmon.blogspot.com/feeds/posts/default"=20
type=3Dapplication/atom+xml rel=3Dalternate><LINK title=3D"Beyond Salmon =
- RSS"=20
href=3D"http://beyondsalmon.blogspot.com/feeds/posts/default?alt=3Drss"=20
type=3Dapplication/rss+xml rel=3Dalternate><LINK title=3D"Beyond Salmon =
- Atom"=20
href=3D"http://www.blogger.com/feeds/17422713/posts/default"=20
type=3Dapplication/atom+xml rel=3Dservice.post><LINK title=3DRSD=20
href=3D"http://www.blogger.com/rsd.g?blogID=3D17422713" =
type=3Dapplication/rsd+xml=20
rel=3DEditURI><LINK title=3D"Beyond Salmon - Atom"=20
href=3D"http://beyondsalmon.blogspot.com/feeds/116033962393212198/comment=
s/default"=20
type=3Dapplication/atom+xml rel=3Dalternate>
<STYLE type=3Dtext/css>@import url( =
http://www.blogger.com/css/blog_controls.css );
@import url( =
http://www.blogger.com/dyn-css/authorization.css?blogID=3D17422713 );
</STYLE>

<SCRIPT src=3D"http://www.blogger.com/js/backlink.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.blogger.com/js/backlink_control.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>var BL_backlinkURL =3D =
"http://www.blogger.com/dyn-js/backlink_count.js";var BL_blogId =3D =
"17422713";</SCRIPT>

<STYLE type=3Dtext/css>BODY {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: #ccc; =
PADDING-BOTTOM: 20px; MARGIN: 0px; FONT: small/1.5em "Trebuchet =
MS",Verdana,Arial,Sans-serif; COLOR: #333; PADDING-TOP: 20px; =
TEXT-ALIGN: center
}
#content {
	MARGIN: 0px auto; WIDTH: 740px; TEXT-ALIGN: left
}
#main {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 97%; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_main_bot.gif) #fff =
no-repeat left bottom; FLOAT: left; PADDING-BOTTOM: 10px; MARGIN: 15px =
0px 0px; WIDTH: 485px; COLOR: #000; LINE-HEIGHT: 1.5em; PADDING-TOP: 0px
}
#main2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_main_top.gif) no-repeat =
left top; FLOAT: left; PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: =
10px
}
#main3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/rails_main.gif) repeat-y; =
PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
#sidebar {
	FONT-SIZE: 97%; FLOAT: right; MARGIN: 15px 0px 0px; WIDTH: 240px; =
LINE-HEIGHT: 1.5em
}
A:link {
	COLOR: #b30
}
A:visited {
	COLOR: #666
}
A:hover {
	COLOR: #c63
}
A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
#header {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_cap_top.gif) #710 =
no-repeat left top; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #fff; =
PADDING-TOP: 8px
}
#header DIV {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_cap_bot.gif) no-repeat =
left bottom; PADDING-BOTTOM: 8px; PADDING-TOP: 0px
}
#blog-title {
	PADDING-RIGHT: 30px; PADDING-LEFT: 30px; FONT-SIZE: 200%; =
PADDING-BOTTOM: 5px; MARGIN: 0px; LINE-HEIGHT: 1.2em; PADDING-TOP: 10px
}
#blog-title A {
	COLOR: #fff; TEXT-DECORATION: none
}
#description {
	PADDING-RIGHT: 30px; PADDING-LEFT: 30px; FONT-SIZE: 94%; =
PADDING-BOTTOM: 10px; MARGIN: 0px; LINE-HEIGHT: 1.5em; PADDING-TOP: 5px
}
.date-header {
	FONT-SIZE: 85%; MARGIN: 0px 28px 0px 43px; TEXT-TRANSFORM: uppercase; =
COLOR: #810; LINE-HEIGHT: 2em; LETTER-SPACING: 0.2em
}
.post {
	BORDER-RIGHT: #bbb 0px dotted; PADDING-RIGHT: 13px; BORDER-TOP: #bbb =
1px dotted; PADDING-LEFT: 13px; PADDING-BOTTOM: 0px; MARGIN: 0.3em 0px =
10px; BORDER-LEFT: #bbb 0px dotted; PADDING-TOP: 0px; BORDER-BOTTOM: =
#bbb 1px dotted
}
.post-title {
	BORDER-RIGHT: #bbb 1px dotted; PADDING-RIGHT: 14px; BORDER-TOP: #bbb =
0px dotted; DISPLAY: block; PADDING-LEFT: 29px; FONT-SIZE: 135%; =
BACKGROUND: url(http://www.blogblog.com/rounders2/icon_arrow.gif) =
no-repeat 10px 0.5em; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: =
#bbb 1px dotted; COLOR: #333; LINE-HEIGHT: 1.5em; PADDING-TOP: 2px; =
BORDER-BOTTOM: #bbb 1px dotted
}
A.title-link {
	DISPLAY: block; TEXT-DECORATION: none
}
.post-title STRONG {
	DISPLAY: block; TEXT-DECORATION: none
}
A.title-link:hover {
	COLOR: #000; BACKGROUND-COLOR: #eee
}
.post-body {
	BORDER-RIGHT: #bbb 1px dotted; PADDING-RIGHT: 14px; BORDER-TOP: #bbb =
0px dotted; PADDING-LEFT: 29px; PADDING-BOTTOM: 1px; BORDER-LEFT: #bbb =
1px dotted; PADDING-TOP: 10px; BORDER-BOTTOM: #fff 1px dotted
}
HTML > BODY .post-body {
	BORDER-BOTTOM-WIDTH: 0px
}
.post P {
	MARGIN: 0px 0px 0.75em
}
P.post-footer {
	BORDER-RIGHT: #bbb 1px dotted; PADDING-RIGHT: 14px; BORDER-TOP: #bbb =
1px dotted; PADDING-LEFT: 29px; FONT-SIZE: 100%; BACKGROUND: #eee; =
PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #bbb 1px dotted; COLOR: =
#666; LINE-HEIGHT: 1.5em; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px =
solid; TEXT-ALIGN: right
}
HTML > BODY P.post-footer {
	BORDER-BOTTOM-COLOR: transparent
}
P.post-footer EM {
	DISPLAY: block; FLOAT: left; FONT-STYLE: normal; TEXT-ALIGN: left
}
A.comment-link {
	PADDING-LEFT: 14px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/icon_comment.gif) no-repeat 0px =
45%
}
HTML > BODY A.comment-link {
	PADDING-LEFT: 14px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/icon_comment.gif) no-repeat 0px =
45%
}
.post IMG {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px =
solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px 0px 5px; =
BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px =
solid
}
BLOCKQUOTE {
	BORDER-RIGHT: #ccc 0px dotted; PADDING-RIGHT: 15px; BORDER-TOP: #ccc =
1px dotted; PADDING-LEFT: 15px; PADDING-BOTTOM: 5px; MARGIN: 0.75em 0px; =
BORDER-LEFT: #ccc 0px dotted; COLOR: #666; PADDING-TOP: 5px; =
BORDER-BOTTOM: #ccc 1px dotted
}
.post BLOCKQUOTE P {
	MARGIN: 0.5em 0px
}
.ad {
	PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 0px
}
#comments {
	BORDER-RIGHT: #ccc 1px dotted; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 0px =
dotted; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; MARGIN: -25px 13px 0px; =
BORDER-LEFT: #ccc 1px dotted; PADDING-TOP: 20px; BORDER-BOTTOM: #ccc 1px =
dotted
}
#comments H4 {
	PADDING-RIGHT: 14px; PADDING-LEFT: 29px; FONT-SIZE: 120%; =
PADDING-BOTTOM: 2px; MARGIN: 0px 0px 10px; COLOR: #333; LINE-HEIGHT: =
1.4em; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px dotted
}
#comments-block {
	MARGIN: 0px 15px 0px 9px
}
.comment-data {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/icon_comment.gif) no-repeat 2px =
0.3em; PADDING-BOTTOM: 0px; MARGIN: 0.5em 0px; COLOR: #666; PADDING-TOP: =
0px
}
.comment-poster {
	FONT-WEIGHT: bold
}
.comment-body {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; PADDING-BOTTOM: 0px; MARGIN: =
0px 0px 1.25em; PADDING-TOP: 0px
}
.comment-body P {
	MARGIN: 0px 0px 0.5em
}
.comment-timestamp {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; PADDING-BOTTOM: 0.75em; MARGIN: =
0px 0px 0.5em; COLOR: #666; PADDING-TOP: 0px
}
.comment-timestamp A:link {
	COLOR: #666
}
.deleted-comment {
	COLOR: gray; FONT-STYLE: italic
}
#profile-container {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_prof_bot.gif) #999 =
no-repeat left bottom; PADDING-BOTTOM: 10px; MARGIN: 0px 0px 15px; =
COLOR: #fff; PADDING-TOP: 0px
}
#profile-container H2 {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 15px; PADDING-LEFT: 15px; =
BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 115%; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_prof_top.gif) no-repeat =
left top; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0.2em; MARGIN: 0px; =
COLOR: #fff; LINE-HEIGHT: 1.5em; PADDING-TOP: 10px; BORDER-RIGHT-WIDTH: =
0px
}
.profile-datablock {
	BORDER-TOP: #ccc 1px dotted; MARGIN: 0px 15px 0.5em; PADDING-TOP: 8px
}
.profile-img {
	DISPLAY: inline
}
.profile-img IMG {
	BORDER-RIGHT: #ccc 4px solid; BORDER-TOP: #ccc 4px solid; FLOAT: left; =
MARGIN: 0px 10px 5px 0px; BORDER-LEFT: #ccc 4px solid; BORDER-BOTTOM: =
#ccc 4px solid
}
.profile-data STRONG {
	DISPLAY: block
}
#profile-container P {
	MARGIN: 0px 15px 0.5em
}
#profile-container .profile-textblock {
	CLEAR: left
}
#profile-container A {
	COLOR: #fff
}
.profile-link A {
	PADDING-LEFT: 15px; FONT-WEIGHT: bold; BACKGROUND: =
url(http://www.blogblog.com/rounders2/icon_profile.gif) no-repeat 0px =
0.1em
}
UL.profile-datablock {
	LIST-STYLE-TYPE: none
}
.box {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_side_top.gif) #fff =
no-repeat left top; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 15px; COLOR: =
#666; PADDING-TOP: 10px
}
.box2 {
	PADDING-RIGHT: 13px; PADDING-LEFT: 13px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_side_bot.gif) no-repeat =
left bottom; PADDING-BOTTOM: 8px; PADDING-TOP: 0px
}
.sidebar-title {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 115%; PADDING-BOTTOM: =
0.2em; MARGIN: 0px; COLOR: #333; LINE-HEIGHT: 1.5em; PADDING-TOP: 0px; =
BORDER-BOTTOM: #fa0 1px dotted
}
.box UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0.5em 0px 1.25em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.box UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/icon_arrow_sm.gif) no-repeat 2px =
0.25em; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 3px; LINE-HEIGHT: 1.4em; =
PADDING-TOP: 0px; BORDER-BOTTOM: #eee 1px dotted
}
.box P {
	MARGIN: 0px 0px 0.6em
}
#footer {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 15px
}
#footer DIV {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_cap_top.gif) #710 =
no-repeat left top; PADDING-BOTTOM: 0px; COLOR: #fff; PADDING-TOP: 8px
}
#footer DIV DIV {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; BACKGROUND: =
url(http://www.blogblog.com/rounders2/corners_cap_bot.gif) no-repeat =
left bottom; PADDING-BOTTOM: 8px; PADDING-TOP: 0px
}
#footer HR {
	DISPLAY: none
}
#footer P {
	MARGIN: 0px
}
#footer A {
	COLOR: #fff
}
</STYLE>
<!-- -->
<STYLE type=3Dtext/css>@import url( =
http://www.blogger.com/css/navbar/classic.css );
DIV.b-mobile {
	DISPLAY: none
}
</STYLE>
</HEAD>
<BODY><IFRAME id=3Dnavbar-iframe marginWidth=3D0 marginHeight=3D0=20
src=3D"http://www.blogger.com/navbar.g?targetBlogID=3D17422713&amp;blogNa=
me=3DBeyond+Salmon&amp;publishMode=3DPUBLISH_MODE_BLOGSPOT&amp;navbarType=
=3DSILVER&amp;layoutType=3DCLASSIC&amp;homepageUrl=3Dhttp%3A%2F%2Fbeyonds=
almon.blogspot.com%2F&amp;searchRoot=3Dhttp%3A%2F%2Fbeyondsalmon.blogspot=
.com%2Fsearch"=20
frameBorder=3D0 width=3D"100%" scrolling=3Dno height=3D30></IFRAME>
<DIV id=3Dspace-for-ie></DIV><!-- Begin #content - Centers all content =
and provides edges for floated columns -->
<DIV id=3Dcontent><!-- Blog Header -->
<DIV id=3Dheader>
<DIV>
<H1 id=3Dblog-title><A href=3D"http://beyondsalmon.blogspot.com/">Beyond =
Salmon=20
</A></H1>
<P id=3Ddescription>Everything you ever wanted to know about buying and =
cooking=20
fish (and other musing on all things yummy): by Helen =
Rennie</P></DIV></DIV><!-- Begin #main - Contains main-column blog =
content -->
<DIV id=3Dmain>
<DIV id=3Dmain2>
<DIV id=3Dmain3>
<H2 class=3Ddate-header>Sunday, October 8</H2><!-- Begin .post --><!-- =
google_ad_section_start -->
<DIV class=3Dpost><A name=3D116033962393212198></A>
<H3 class=3Dpost-title>Parasites in Fish, Part 2 -- Anisakis and =
Tapeworm </H3>
<DIV class=3Dpost-body>
<P>
<DIV style=3D"CLEAR: both"></DIV>Now that we know all about <A=20
href=3D"http://beyondsalmon.blogspot.com/2006/09/parasites-in-fish-part-1=
-cod-worm.html">cod=20
worms</A>, we are going to venture in the world of the more dangerous =
parasites:=20
anisakis simplex and tapeworm. If you are cooking fish, you need not =
worry.=20
According to FDA, you are 100% safe if the fish reached an internal =
temperature=20
of 140F. Surviving the human intestinal track isn=E2=80=99t easy and =
requires that=20
anisakis and tapeworm be at full strength. So, if you =
=E2=80=9Conly=E2=80=9D raise the internal=20
temperature to 120F, a parasite might survive (if he=E2=80=99s =
positioned in the middle=20
of the fish fillet), but will be so weak that it will most likely die =
shortly=20
after reaching your stomach.<BR><BR>Anisakis simplex is most common in =
fresh=20
water and anadromous fish, like wild salmon, which are born in fresh =
water,=20
migrate to the ocean, then return to fresh water to reproduce. It is =
also common=20
in certain small salt water fish, such as herrings and sardines. =
However,=20
anisakis is rare in other salt water fish, such as tuna, swordfish and=20
farm-raised salmon. Just like cod worm, it originates in seals. Tapeworm =
is=20
mostly found in pacific wild salmon and fresh water fish. It originates =
in bears=20
and land mammals. They are fascinating organisms and you can read all =
about the=20
<A href=3D"http://en.wikipedia.org/wiki/Anisakis">anisakis life =
cycle</A> and the=20
<A href=3D"http://en.wikipedia.org/wiki/Diphyllobothrium">tapeworm life =
cycle</A>=20
on wikipedia.<BR><BR>Becoming a host to anisakis worms by eating them =
live can=20
make you very sick---this disease is known as anisakiasis. According to =
<A=20
href=3D"http://en.wikipedia.org/wiki/Anisakis">wikipedia</A>, its =
symptoms include=20
violent abdominal pain, nausea, and vomiting. "Occasionally the larvae =
are=20
coughed up. If the larvae pass into the bowel, a severe eosinophilic=20
granulomatous response may also occur 1 to 2 weeks following infection, =
causing=20
symptoms mimicking Crohn's disease." This isn't a life threatening =
disease=20
(unless you have a weakened immune system) and is quite common in Japan =
where=20
consumption of raw fish (that isn't previously frozen) is more wide =
spread.=20
Unlike anisakis, tapeworms don't always manifest themselves with clear =
symptoms=20
and can live in humans for decades if untreated, resulting in weight =
loss,=20
Vitamin B12 deficiency, and potential anemia.<BR><BR>What used to bother =
me is=20
the possibility of eating the eggs of these worms. Wouldn't they be too =
small=20
for me to see, and what would happen if I eat them? <A=20
href=3D"http://www.marineparasitology.com/HarryPalmNew.htm">Dr. =
Palm</A>, from the=20
Institute for Zoomorphology, Cell Biology and Parasitology in =
D=C3=BCsseldorf,=20
Germany, put my worries to rest by explaining the life cycle of these =
worms.=20
<SPAN class=3Dq>While anisakis and</SPAN> tapeworm are in fish, they are =
in larvae=20
form (not egg form). They can't reproduce until they find a mammal host =
(in the=20
case of anisakis and<SPAN class=3Dq> cod worm, it has to be a marine =
mammal like a=20
seal, so they can't</SPAN> reproduce in a human), and tapeworms rarely =
make it=20
into humans.<BR><BR>Are you ready to swear of sushi yet? Not so fast. If =
you are=20
a US resident, keep in mind that you live in a country that just threw =
away=20
every single bag of spinach because of E.Coli threat. You don't think =
FDA would=20
allow anything remotely dangerous to be served to the US public, do you? =
That's=20
why FDA requires all fish with a potential hazard of parasites that is =
intended=20
for raw consumption to be <A=20
href=3D"http://www.cfsan.fda.gov/~comm/haccp4e.html">previously =
frozen</A>.=20
Freezing fish to -20=C2=BAC [-4=C2=BAF] or below for 7 days or =
-35=C2=BAC [-31=C2=BAF] or below for=20
15 hours will kill the parasites. Since the restaurants don't want to =
take any=20
risk and want to avoid supply and demand price fluctuations, most go =
even=20
further and freeze all fish (not only the ones that could be infected) =
before=20
serving them raw. So, all that "fresh" sushi you've been eating is =
previously=20
frozen.<BR><BR>What's counter-intuitive to most cooks is that =
farm-raised salmon=20
is much safer to eat raw than wild salmon. Farm-raised salmon is served =
pellet=20
food, which is ground-up, processed fish meat. Any parasites in the fish =
meat=20
are killed in the processing and grinding stages. Since salmon only =
obtains=20
dangerous to humans parasites via food, farm-raised salmon simply isn't =
exposed=20
to them. So, next time you use salmon for gravlax, tartar, or sashimi, =
go for=20
the farm-raised stuff. When the Food and Agriculture Organization of the =
United=20
Nations tested various fish for parasites in 2003, no parasites were =
found in=20
any farm-raised salmon species , whereas parasites were frequently found =
in wild=20
salmon (section 5.1.4 of Huss et al., 2003).<BR><BR>Does salting fish =
like for=20
gravlax or curing it in acid like for ceviche kill the parasites? Maybe. =
The=20
salt or acid used for curing prevents bacteria from growing. It may also =
weaken=20
or kill parasites. However, it=E2=80=99s not a full-proof method. =
Opinions in the=20
scientific literature vary as to the degree to which salt/acid harms =
parasites.=20
Most sources say that salting is more effective than curing in acid. =
Also,=20
according to <A href=3D"http://hwml.unl.edu/gardner.html">Dr. =
Gardner</A> from=20
Harold W. Manter Laboratory of Parasitology at the University of =
Nebraska, the=20
acids in your stomach and intestines are at least as strong as =
lemon/lime juice.=20
So, if you are making ceviche, I would suggest taking the same =
precautions as=20
you would for eating the fish raw.<BR><BR>To put all this in =
perspective, the=20
risk you take downhill skiing is an order of magnitude greater than the =
risk of=20
eating raw, not previously frozen fish. Whether that risk is worth it is =
up to=20
you. I hate downhill skiing and I love raw fish, so you can guess which =
risks I=20
choose to take. In fact, the risk of driving or just walking down the =
street is=20
probably higher than the risk of eating raw fish. I know plenty of =
people who=20
were in life-threatening car accidents, and I am yet to meat a person =
who got=20
infected by anisakis simplex or tapeworm. And let me tell you, I get way =
more=20
pleasure from a bowl of sashimi than my morning commute.<BR><BR>Do=20
parasitologists eat sushi in spite of their intimate familiarity with =
parasites?=20
Both Dr. Palm and Dr. Gardner said =E2=80=9Cyes=E2=80=9D. In fact, Dr. =
Palm just got back from=20
Japan where he had really yummy not-previously-frozen =
sashimi.<BR><BR>What does=20
all this mean to the home cook who wants to make sushi and ceviche? Buy =
your=20
fish from a reputable source and use it that day if serving raw. =
Regardless of=20
the parasite issue, fish that was not stored properly, or for too long, =
will=20
grow bacteria and make you sick. Freezing fish that is not fresh will =
not help=20
with the bacteria issue, but it will kill parasites. If you are not =
planning to=20
freeze fish and want to eat it raw, I would limit your purchases to:<BR>
<UL>
  <LI>Large Tuna (Yellowfin/Ahi, Big-eye, Bluefin)<BR>
  <LI>Farm-raised Altantic salmon
  <LI>Scallops
  <LI><A href=3D"http://www.kona-kampachi.com/index.html">Kampachi</A>=20
  (farm-raised) </LI></UL>If I find out about other fish that have =
extremely low=20
occurance of parasites, I'll post them on Beyond Salmon.<BR><BR>What if =
you want=20
to freeze your fish to eliminate even the slightest chance of getting =
sick from=20
parasites? What=E2=80=99s the best way to freeze fish? Is all frozen =
fish equal? Can you=20
buy frozen tuna from Trader Joe's, defrost it, and voila -- $5/Lb =
sashimi is=20
served? In my next post, I'll answer all these questions and=20
more.<BR><BR>References:<BR><BR>H. H. Huss, L. Ababouch, L. Gram. <A=20
href=3D"http://www.fao.org/docrep/006/y4743e/y4743e0c.htm">Assessment =
and=20
Management of Seafood Safety and Quality</A>. 2003. Food and Agriculture =

Organization of the United Nations. FAO Fisheries Technical Paper 444.
<DIV style=3D"CLEAR: both; PADDING-BOTTOM: 0.25em"></DIV>
<P></P><!-- google_ad_section_end --></DIV>
<P class=3Dpost-footer><EM>posted by Helen @ <A title=3D"permanent link" =

href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html">4:15=20
PM</A></EM> &nbsp; <A class=3Dcomment-link=20
href=3D"http://www.blogger.com/comment.g?blogID=3D17422713&amp;postID=3D1=
16033962393212198"=20
location.href=3D"http://www.blogger.com/comment.g?blogID=3D17422713&amp;p=
ostID=3D116033962393212198;">8=20
comments</A> <SPAN class=3Ditem-action><A title=3D"Email Post"=20
href=3D"http://www.blogger.com/email-post.g?blogID=3D17422713&amp;postID=3D=
116033962393212198"><SPAN=20
class=3Demail-post-icon>&nbsp;</SPAN></A></SPAN><SPAN=20
class=3D"item-control blog-admin pid-1210181288"><A title=3D"Edit Post"=20
style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
href=3D"http://www.blogger.com/post-edit.g?blogID=3D17422713&amp;postID=3D=
116033962393212198"><SPAN=20
class=3Dquick-edit-icon>&nbsp;</SPAN></A></SPAN> </P></DIV>
<DIV class=3Dad>
<SCRIPT type=3Dtext/javascript><!--
google_ad_client =3D "pub-5071768964683358";
google_ad_width =3D 468;
google_ad_height =3D 60;
google_ad_format =3D "468x60_as";
google_ad_type =3D "text_image";
google_ad_channel =3D"7528686508";
google_color_border =3D "660000";
google_color_bg =3D "FFFFFF";
google_color_link =3D "3300CC";
google_color_url =3D "3300CC";
google_color_text =3D "000000";
//--></SCRIPT>

<SCRIPT src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js"=20
type=3Dtext/javascript>
</SCRIPT>
</DIV><!-- End .post --><!-- Begin #comments -->
<DIV id=3Dcomments><A name=3Dcomments></A>
<H4>8 Comments:</H4>
<DL id=3Dcomments-block>
  <DT class=3Dcomment-data id=3Dc116041076397821854><A=20
  name=3Dc116041076397821854></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116041076397821854">12:19=20
  PM</A>, <A =
href=3D"http://www.blogger.com/profile/08838744539992991309"=20
  rel=3Dnofollow>Joe</A> said...=20
  <DD class=3Dcomment-body>
  <P>What about the Monterey Bay Aquarium's <A=20
  =
href=3D"http://www.mbayaq.org/cr/SeafoodWatch/web/sfw_factsheet.aspx?fid=3D=
133"=20
  rel=3Dnofollow>recommendation</A> to avoid farmed salmon?</P><SPAN=20
  class=3D"item-control blog-admin pid-1017007692"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116041076397821854"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116050281900609246><A=20
  name=3Dc116050281900609246></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116050281900609246">1:53=20
  PM</A>, <A href=3D"http://people.csail.mit.edu/jrennie/" =
rel=3Dnofollow>Jason</A>=20
  said...=20
  <DD class=3Dcomment-body>
  <P>Hi Joe,<BR><BR>I'm Helen's husband. The trouble with the web page =
you cite=20
  is that it's lacking in details.<BR><BR>"Salmon farmers may use =
pesticides and=20
  antibiotics to control outbreaks of disease among the =
fish."<BR><BR>Note the=20
  use of the word "may." As written, this statement is basically =
vacuous. If=20
  you're worried about pesticides/antibiotics, ask your fishmonger. They =
should=20
  be able to tell you whether such chemicals were used in the raising of =

  Atlantic Salmon that you buy.<BR><BR>"The Environmental Defense has =
issued a=20
  health advisory for Farmed salmon due to high levels of PCBs and=20
  dioxins."<BR><BR>Anyone can issue a health advisory. The page that =
Monterey=20
  Bay links to doesn't provide any details. Where are the scientific =
studies=20
  showing that if you eat Atlantic Salmon regularly, something bad will =
happen=20
  to you? I don't see any. If you know of any, please send them along, =
I'd be=20
  very interested to read them.<BR><BR>"Waste from most farms is =
released=20
  directly into the ocean. Parasites and diseases from farmed salmon can =
spread=20
  to wild fish swimming near the farms."<BR><BR>Any fish or mammal that =
lives in=20
  the ocean releases waste into the ocean. This waste can pass along =
diseases=20
  and parasites. A valid concern is that a Salmon farm could create an=20
  unnaturally high concentration of waste. But, again, this depends on =
the=20
  farming company. Farmed Salmon are clearly better than wild Salmon in =
one=20
  respect: they don't transmit parasites that are dangerous to humans. =
Table=20
  5.21 from the Huss/Ababouch/Gram report shows that such parasites are =
not=20
  found in farmed salmon, whereas they are quite prevalent in wild =
salmon.=20
  <BR><BR>Btw, all fish &amp; mammals that live in and around the water =
have the=20
  potential to transmit parasites and diseases. It's misleading to say =
that=20
  farmed Salmon can infect wild fish, since if the Salmon had not been =
farmed,=20
  it would have also had the chance to infect (other) wild =
fish.<BR><BR>"And=20
  feeding farmed salmon actually uses more fish than it produces, which =
puts=20
  more pressure on wild populations."<BR><BR>This is also misleading. =
The same=20
  could be said about wild salmon---they eat more fish than they=20
  produce.<BR><BR>"In the market, there is currently no way to tell =
which salmon=20
  are coming from more-sustainable farms..."<BR><BR>I doubt this is =
true. I know=20
  that Whole Foods is quite particular about their farm-raised Salmon. =
While=20
  it's probably true that many fishmongers won't be able to tell you the =
details=20
  of how their fish was raised, that's largely because consumers don't=20
  ask.</P><SPAN class=3D"item-control blog-admin pid-1733971423"><A=20
  title=3D"Delete Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116050281900609246"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116050435276005178><A=20
  name=3Dc116050435276005178></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116050435276005178">2:19=20
  PM</A>, <A =
href=3D"http://www.blogger.com/profile/12271344371852988017"=20
  rel=3Dnofollow>Helen</A> said...=20
  <DD class=3Dcomment-body>
  <P>Hi Joe,<BR><BR>Thanks for your question about farm-raised salmon. =
It's an=20
  issue that comes up over and over, and you've inspired me to do some =
research=20
  on the subject. There are two big questions: 1) does farm-raised =
salmon pose=20
  health risks? and 2) is it bad for the environment? <BR><BR>I have =
some=20
  information about the first issue. Here is an <A=20
  href=3D"http://healthletter.tufts.edu/issues/2003-11/salmon.html"=20
  rel=3Dnofollow>article</A> from Tufts University School of Nutrition =
Science and=20
  Policy about PCBs in farm-raised salmon. At the moment, we have no =
data that=20
  PCBs in such small amounts are dangerous to your health. Here is my =
previous=20
  post on <A=20
  href=3D"http://beyondsalmon.blogspot.com/2006/02/mercury-in-fish.html" =

  rel=3Dnofollow>mercury in fish</A> -- another hot button issue. =
<BR><BR>As far=20
  as antibiotics go -- Whole Foods label their fish clearly so that you =
know=20
  what you are buying, and they are starting to carry salmon without=20
  antibiotics. But keep in mind that most of the meat that you eat was =
treated=20
  with antibiotics too. Is eating farm-raised salmon every day a good =
idea? I=20
  don't think eating anything in such access is a good idea. But there =
is no=20
  scientific evidence that eating farm-raised salmon is harmful to your=20
  health.<BR><BR>From Monterey Bay Aquarium site: "When consumers eat =
this fish,=20
  the residues from the chemicals may affect their health or interfere =
with=20
  medicines they=E2=80=99re taking."<BR><BR>Some people are allergic to =
seafood all=20
  together. Does this mean we should consider it generally dangerous? =
<BR><BR>I=20
  haven't researched environmental issues yet. It's on my to-do list and =
I'll=20
  post about it as soon as I have some=20
  information.<BR><BR>Cheers,<BR>-Helen</P><SPAN=20
  class=3D"item-control blog-admin pid-1210181288"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116050435276005178"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116183158795656820><A=20
  name=3Dc116183158795656820></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116183158795656820">10:59=20
  PM</A>, <SPAN class=3Danon-comment-author>Anonymous</SPAN> said...=20
  <DD class=3Dcomment-body>
  <P>Hi there,<BR><BR>Farmed Salmon have a VERY bad reputation =
environmentally,=20
  and farmed salmon may also possess significant health =
risks.<BR><BR>Here's=20
  some further information and some responses to your posts for further=20
  consideration.<BR><BR><B>Jason stated:</B><BR>&gt;As written, this =
statement=20
  is<BR>&gt;basically vacuous. If you're &gt;worried about pesticides=20
  /<BR>&gt;antibiotics, ask your fishmonger. <BR>&gt;They should be able =
to tell=20
  you<BR>&gt;whether such chemicals were used<BR>&gt;in the raising of =
Atlantic=20
  Salmon<BR>&gt;that you buy.<BR><BR>Remember that the aquarium page is =
not=20
  providing an in-depth analysis of aquaculture. It is attempting to =
provide a=20
  summary of information that is widely available.<BR><BR>As for the =
antibiotics=20
  issue - there is very little chance that the average fishmonger is =
going to=20
  know if their fish is farmed or not. It is primarily specialty stores =
that=20
  spend the time to pay attention to that kind of food =
issue.<BR><BR><B>Jason=20
  stated:</B><BR>&gt;"The Environmental Defense has<BR>&gt;issued a =
health=20
  advisory for<BR>&gt;Farmed salmon due to high levels<BR>&gt;of PCBs =
and=20
  dioxins."<BR>&gt;Anyone can issue a health<BR>&gt;advisory. The page =
that=20
  Monterey<BR>&gt;Bay links to doesn't provide any<BR>&gt;details. Where =
are the=20
  scientific<BR>&gt;studies showing that if you eat<BR>&gt;Atlantic =
Salmon=20
  regularly,<BR>&gt;something bad will happen to you?<BR>&gt;I don't see =
any. If=20
  you know of<BR>&gt;any, please send them along, I'd<BR>&gt;be very =
interested=20
  to read them.<BR><BR>Health advisories are usually put out by agencies =
that=20
  have a duty to protect the public, so I think the comment that =
"anyone" can=20
  put out a health advisory is a bit weird. I can put out a health =
advisory, but=20
  no one is going to trust it! I would call the Monterey Bay Aquarium a =
fairly=20
  knowledgeable and trustworthy source!<BR><BR>Their stance is firmly =
backed up=20
  by the science. Here are some studies (out of hundreds available) =
about=20
  dioxins in farmed=20
  =
salmon:<BR>http://www.albany.edu/ihe/salmonstudy/<BR>http://www.newscient=
ist.com/article.ns?id=3Ddn4547<BR>http://www.news.cornell.edu/Chronicle/0=
4/1.15.04/salmon_health_risks.html<BR>http://www.shns.com/shns/g_index2.c=
fm?action=3Ddetail&amp;pk=3DTOXICSALMON-01-08-04<BR>http://www.medicalnew=
stoday.com/medicalnews.php?newsid=3D24012<BR><BR>To=20
  summarize the story told in these studies for you, the high levels of =
dioxins=20
  in farmed Salmon are a result of a process similar to bioconcentration =

  resulting from the food that the farmed Salmon are fed. Pellets fed to =
farmed=20
  salmon are impregnated with fish oil made from small fish. The oil =
comes from=20
  the part of the small fish's body where contaminants are concentrated. =
Because=20
  a small amount of oil comes out of each fish, farmed salmon end up =
with a far=20
  greater amount of dioxin than wild salmon - and a disproportionate =
amount of=20
  fish are killed, taxing the environment that these fish come from. But =
because=20
  the small fish are not valuable for human consumption, we feed them to =
farmed=20
  salmon, which ARE valuable for human consumption - ignoring the =
environmental=20
  impacts.<BR><BR><B>Jason stated:</B><BR>&gt;"Waste from most farms=20
  is<BR>&gt;released directly into the ocean.<BR>&gt;Parasites and =
diseases=20
  from<BR>&gt;farmed salmon can spread to wild<BR>&gt;fish swimming near =
the=20
  farms."<BR>&gt;Any fish or mammal that lives in <BR>&gt;the ocean =
releases=20
  waste into the<BR>&gt;ocean. This waste can pass along<BR>&gt;diseases =
and=20
  parasites. A valid<BR>&gt;concern is that a Salmon farm<BR>&gt;could =
create an=20
  unnaturally high<BR>&gt;concentration of waste. But,<BR>&gt;again, =
this=20
  depends on the<BR>&gt;farming company. <BR><BR>Anti-aquaculture groups =
object=20
  to Salmon farming for many of the same reasons why factory farming is=20
  objectionable. In a farm situation, the animals or fish and held in =
large=20
  numbers within a comparatively small area. Because the fish/animals =
are so=20
  concentrated it is very hard to keep the space clean (so the =
fish/animals may=20
  be sitting in their own waste - but this is of less concern in the =
water) AND=20
  because they are so concentrated any parasite/disease will travel very =
quickly=20
  through the population.<BR><BR>Salmon farms put lots of food =
(overfeed) so=20
  that their fish get big. Extra food is also added because the pellets =
SINK -=20
  so there is a lot of wastage.<BR><BR>Remember that Salmon farms are an =

  unnaturally large &amp; dense population, so you get an exponentially =
higher=20
  level of parasites (captive breeding) and, bioconcentration, disease, =
et=20
  cetera.<BR><BR>This concentration of harmful factors would not be a =
big=20
  problem if it was dissipated by an ocean current, but most salmon =
farms are=20
  placed near streams and river mouths where salmon come to spawn. This =
means=20
  that more vulnerable members of the wild stock (like the baby salmon =
aka=20
  Salmon fry) are subjected to an unnaturally high concentration of =
parasites -=20
  so wild stocks become depleted. <BR><BR>This is why in factory farm=20
  situations, like Salmon farms, the fish/animals are often given =
antibiotics AS=20
  A MATTER OF COURSE. That is to say, they are given drugs even if they =
are not=20
  sick, as a preventative measure.<BR><BR>Wild salmon don't have access =
to the=20
  antibiotics that farmed salmon are fed, so they are far more=20
  vulnerable!<BR><BR><B>Jason stated:</B><BR>&gt;Farmed Salmon are =
clearly=20
  better &gt;than wild Salmon in one respect:<BR>&gt;they don't transmit =

  parasites<BR>&gt;that are dangerous to humans.<BR>&gt;Table 5.21 from =
the=20
  &gt;Huss/Ababouch/Gram report shows<BR>&gt;that such parasites are not =

  found<BR>&gt;in farmed salmon, whereas they<BR>&gt;are quite prevalent =
in=20
  wild<BR>&gt;salmon. <BR>&gt;Btw, all fish &amp; mammals that =
live<BR>&gt;in=20
  and around the water have the<BR>&gt;potential to transmit=20
  parasites<BR>&gt;and diseases. It's misleading to<BR>&gt;say that =
farmed=20
  Salmon can infect<BR>&gt;wild fish, since if the Salmon<BR>&gt;had not =
been=20
  farmed, it would<BR>&gt;have also had the chance to<BR>&gt;infect =
(other) wild=20
  fish.<BR><BR>Ask yourself this: why don=E2=80=99t the fish have =
parasites? If wild=20
  fish have the parasites, and the parasites occur naturally=E2=80=A6 =
this must be=20
  because the fish farms give their fish antibiotics. So you are trading =

  parasites for antibiotics in your food. Wild salmon have a lower =
population=20
  density, so they have less exposure to parasites... UNLESS they swim =
near a=20
  salmon farm.<BR><BR><B>Jason stated:</B><BR>&gt;"And feeding farmed=20
  salmon<BR>&gt;actually uses more fish than it<BR>&gt;produces, which =
puts=20
  more<BR>&gt;pressure on wild populations."<BR>&gt;This is also =
misleading. The=20
  same<BR>&gt;could be said about wild salmon<BR>&gt;- they eat more =
fish than=20
  they<BR>&gt;produce.<BR><BR>This all goes back to the essential =
problem with=20
  all forms of factory farming:<BR>- Farmed animals need to be fed=20
  something<BR>- The food that farmed animals are fed must be taken out =
of the=20
  environment, placing an additional stress that is not there=20
  naturally<BR><BR>In this particular case, as previously stated, farmed =
salmon=20
  are fed food pellets flavoured with fish oil (they will not eat the =
pellets=20
  without the fish oil). The fish used to make the pellets are not =
useful to=20
  human, but that does not mean they don=E2=80=99t have a role to play =
in the local=20
  environment. Suddenly humans become a new predator, which impacts the =
balance=20
  of the overall ecosystem. If the food for the salmon was farmed as =
well it=20
  would be ISOLATED (somewhat) from the environment =E2=80=93 but they =
are not, so there=20
  is a direct impact.<BR><BR>A secondary effect of a fish-farm: highly=20
  concentrated levels of decomposing matter in the local environment.=20
  Decomposing matter is eaten by bacteria, which use up oxygen. Lack of =
oxygen=20
  kills plants in the local area (not enough air to breathe), and you =
end up=20
  with =E2=80=9Cdead zones=E2=80=9D downstream from fish farms. =
<BR><BR><B>Jason=20
  stated:</B><BR>"In the market, there is currently no way to tell which =
salmon=20
  are coming from more-sustainable farms..."<BR>&gt;I doubt this is =
true. I know=20
  that<BR>&gt;Whole Foods is quite particular<BR>&gt;about their =
farm-raised=20
  Salmon.<BR>&gt;While it's probably true that<BR>&gt;many fishmongers =
won't be=20
  able to<BR>&gt;tell you the details of how their<BR>&gt;fish was =
raised,=20
  that's largely<BR>&gt;because consumers don't ask.<BR><BR>Totally =
true! But=20
  that's something people need to be educated about -they need to be =
told that=20
  they should ask. Or they can buy wild salmon and avoid the problem =
(not there=20
  are not problems with salmon fishing, there are environmental concerns =
there=20
  as well).<BR><BR><B>Helen stated:</B><BR>&gt;I have some information =
about=20
  the<BR>&gt;first issue. Here is an article<BR>&gt;from Tufts =
University School=20
  of<BR>&gt;Nutrition Science and Policy<BR>&gt;about PCBs in =
farm-raised=20
  salmon.<BR>&gt;At the moment, we have no data<BR>&gt;that PCBs in such =
small=20
  amounts<BR>&gt;are dangerous to your health.<BR>&gt;Here is my =
previous post=20
  on<BR>&gt;mercury in fish =E2=80=93 another hot &gt;button issue. =
<BR><BR>Again, a=20
  great point! However, this must be mitigated by the fact that PCBs are =

  bioaccumulative. That is to say, PBCs NEVER leave your body and build =
up over=20
  your lifetime. Anything you can do to avoid PCBs is a good idea! The =
higher=20
  the concentration of contaminants in your body with free-chlorine (as =
with=20
  PCBs) the greater risk of cancer and many other health problems. PCBs =
are an=20
  issue with ALL seafood (and not an insignificant amount of other =
food), but=20
  are 20-30% higher in farmed salmon than in wild salmon. So if you =
really like=20
  to eat fish, you are better off with wild salmon.<BR><BR><B>Helen=20
  stated:</B><BR>&gt;As far as antibiotics go -- Whole<BR>&gt;Foods =
label their=20
  fish clearly so<BR>&gt;that you know what you are<BR>&gt;buying, and =
they are=20
  starting to<BR>&gt;carry salmon without antibiotics.<BR>&gt;But keep =
in mind=20
  that most of the<BR>&gt;meat that you eat was treated<BR>&gt;with =
antibiotics=20
  too. Is eating<BR>&gt;farm-raised salmon every day a<BR>&gt;good idea? =
I don't=20
  think eating<BR>&gt;anything in such access is a good <BR>&gt;idea. =
But there=20
  is no scientific<BR>&gt;evidence that eating farm-raised<BR>&gt;salmon =
is=20
  harmful to your health.<BR><BR>There is real evidence that farm-raised =
salmon=20
  is harmful to your health (as has been shows above); however, it is a =
matter=20
  of long-term exposure and degree. The overall environmental impacts =
may also=20
  be a moral concern for some. <BR><BR>But you are right, aside from the =
PCBs,=20
  farmed salmon are no worse than any other farmed meat product in terms =
of=20
  antibiotics.<BR><BR><B>Helen stated:</B><BR>"When consumers eat this =
fish, the=20
  residues from the chemicals may affect their health or interfere with=20
  medicines they=E2=80=99re taking."<BR>&gt;Some people are allergic =
to<BR>&gt;seafood=20
  all together. Does this<BR>&gt;mean we should consider =
it<BR>&gt;generally=20
  dangerous?<BR><BR>No, but if something may contain nuts it has a =
warning label=20
  on it. Food with antibiotics which may interact with medications =
should have a=20
  warning label too, no? Just as products which "may contain fish" =
should=20
  probably have a warning label! :)<BR><BR>In any case, the point of all =
his is=20
  that there are real, significant, and important issues surrounding=20
  aquaculture, and suggesting farmed fish over wild fish is a very =
problematic=20
  recommendation. Joe=E2=80=99s criticism is certainly legitimate, as I =
have attempted=20
  to show. <BR><BR>Maybe this subject deserves for a blog post? Give the =

  information to the people and let the people decide for=20
  themselves!<BR><BR>Best of luck, your blog is =
great!<BR><BR>-Steve</P><SPAN=20
  class=3D"item-control blog-admin pid-1733971423"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116183158795656820"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116183233444579601><A=20
  name=3Dc116183233444579601></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116183233444579601">11:12=20
  PM</A>, <A =
href=3D"http://www.blogger.com/profile/12271344371852988017"=20
  rel=3Dnofollow>Helen</A> said...=20
  <DD class=3Dcomment-body>
  <P>Hi Steve,<BR><BR>Ok, you've inspired me. I will research this issue =
in=20
  greater detail and will publish a post on farm-raised salmon. Just =
give me a=20
  few weeks :)<BR><BR>Cheers,<BR>-Helen</P><SPAN=20
  class=3D"item-control blog-admin pid-1210181288"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116183233444579601"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116188453636682215><A=20
  name=3Dc116188453636682215></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116188453636682215">1:42=20
  PM</A>, <SPAN class=3Danon-comment-author>Anonymous</SPAN> said...=20
  <DD class=3Dcomment-body>
  <P>I shall wait with bated breath!</P><SPAN=20
  class=3D"item-control blog-admin pid-1733971423"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116188453636682215"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116196398443362874><A=20
  name=3Dc116196398443362874></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116196398443362874">11:46=20
  AM</A>, <A href=3D"http://people.csail.mit.edu/jrennie/" =
rel=3Dnofollow>Jason</A>=20
  said...=20
  <DD class=3Dcomment-body>
  <P>Hi Steve,<BR><BR>Thanks for the reply and thanks for the link to =
the Hites=20
  et al. study. I can see why you might be concerned---the headlines =
certainly=20
  make it sound like farm raised salmon is dangerous due to levels of =
toxins=20
  which are much higher than the levels found in wild salmon.<BR><BR>"As =
for the=20
  antibiotics issue - there is very little chance that the average =
fishmonger is=20
  going to know if their fish is farmed or not. It is primarily =
specialty stores=20
  that spend the time to pay attention to that kind of food =
issue."<BR><BR>I=20
  could be wrong, but I'm fairly certain that even mainstream grocery =
stores in=20
  the Boston area (where we live) specify farmed/wild. Though, I'd =
certainly=20
  agree with you that few fishmongers would know whether farmed fish =
they sell=20
  was exposed to antibiotics/pesticides/etc.<BR><BR>Concerning the =
study: it is=20
  clear from the study that farmed salmon have much higher levels of=20
  PCBs/Dioxins/etc. than wild salmon. What isn't clear is whether these =
levels=20
  are sufficiently high to pose a danger. Also, the wild salmon on =
average have=20
  lower levels of omega-3's, so even if the PCB/Dioxin/etc. levels are =
high=20
  enough to pose a danger, the advantage of lower levels of =
PCBs/Dioxins/etc.=20
  might not be sufficient to offset the disadvantage of lower levels of=20
  omega-3's.<BR><BR>Yes, researchers who published the original Jan 9, =
2004=20
  Science paper have done later nutritional studies, e.g. J. A. Foran et =
al.=20
  "Quantitiative Analysis of the Benefits and Risks of Consuming Farmed =
and Wild=20
  Salmon". However, they do not provide evidence that wild salmon is =
better for=20
  you than farmed salmon. In particular, they do not study the change in =

  expected lifetime (or other measure of healthfullness) from switching =
salmon=20
  consumption from farmed to wild. Yes, wild salmon provides more =
omega-3's "per=20
  unit risk" (Figure 1). However, consumers don't eat food "per unit =
risk." The=20
  amount of salmon a consumer eats is unlikely to change in switching =
from=20
  farmed to wild. Also, the "unit risk" discussed by the authors seems =
quite=20
  small. They define unit cancerous risk as a 0.001% increase in the =
risk of=20
  death from cancer. If a consumer eats enough farmed salmon (purchased =
from,=20
  say, Eastern US retail locations) to achieve the recommended omega-3 =
intake (1=20
  g/day), he/she would face merely a 0.0125% increased risk of cancer =
(due to=20
  the PCBs/Dioxins/etc.) according to their calculations. This might be =
more=20
  than offset by the decreased risk of early death from coronary heart =
disease=20
  (versus eating wild salmon instead). They define unit non-cancerous =
risk as=20
  the U.S. EPA Reference Dose (RfD). The U.S. EPA RfD is "a scientific =
estimate=20
  of a daily exposure level that is not expected to cause adverse health =
effects=20
  in humans." I.e. it is a level many times lower than the level at =
which=20
  adverse health effects have ever been observed. Consumption of =
sufficient=20
  (Eastern US retail) farmed salmon to provide 1 g/day of omega-3's does =
not=20
  exceed the RfD.<BR><BR>"Anti-aquaculture groups object to Salmon =
farming for=20
  many of the same reasons why factory farming is objectionable. In a =
farm=20
  situation, the animals or fish and held in large numbers within a=20
  comparatively small area. Because the fish/animals are so concentrated =
it is=20
  very hard to keep the space clean (so the fish/animals may be sitting =
in their=20
  own waste - but this is of less concern in the water) AND because they =
are so=20
  concentrated any parasite/disease will travel very quickly through the =

  population."<BR><BR>It sounds like this isn't so much a concern with =
the=20
  general idea of farming, but rather with farms which focus on lowering =
costs=20
  to the detriment of the environment and animal/fish health. =
Personally, I'd=20
  like to see designations for more environmentally-friendly fish =
farming. It=20
  seems that such designations on other products (e.g. "organic") have =
helped=20
  gradually improve the quality of farming in the U.S. via consumer=20
  choice.<BR><BR>"Salmon farms put lots of food (overfeed) so that their =
fish=20
  get big. Extra food is also added because the pellets SINK - so there =
is a lot=20
  of wastage."<BR><BR>Do you know what is the typical degree of=20
  wastage?<BR><BR>"This is why in factory farm situations, like Salmon =
farms,=20
  the fish/animals are often given antibiotics AS A MATTER OF COURSE. =
That is to=20
  say, they are given drugs even if they are not sick, as a preventative =

  measure."<BR><BR>Are you certain that all salmon farms use=20
  antibiotics?<BR><BR>"Ask yourself this: why don't the fish have =
parasites? If=20
  wild fish have the parasites, and the parasites occur naturally... =
this must=20
  be because the fish farms give their fish antibiotics."<BR><BR>I think =
you=20
  missed my point. The main parasites which are dangerous to humans =
(Table 5.21=20
  from Huss/Ababouch/Gram) are transmitted via food. The grinding =
process in=20
  producing pellets for farmed salmon kills any such parasites =
(antibiotics have=20
  nothing to do with it).<BR><BR>"Decomposing matter is eaten by =
bacteria, which=20
  use up oxygen. Lack of oxygen kills plants in the local area (not =
enough air=20
  to breathe), and you end up with "dead zones" downstream from fish=20
  farms."<BR><BR>Don't plants need CO2 to "breathe", not =
O2?<BR><BR>"That is to=20
  say, PBCs NEVER leave your body and build up over your lifetime. =
Anything you=20
  can do to avoid PCBs is a good idea!"<BR><BR>There is nothing you can =
do to=20
  completely eliminate exposure to PCBs. They can be found in most, if =
not all,=20
  foods. The important question isn't "how do I eliminate PCBs from my =
diet?",=20
  but rather "how do I avoid exposure to unsave levels of PCBs?" As far =
as I can=20
  tell, neither the original R. A. Hites (Science, 2004) study, nor =
follow-up=20
  studies indicate that farmed salmon have unsafe levels of =
PCBs.<BR><BR>"There=20
  is real evidence that farm-raised salmon is harmful to your health (as =
has=20
  been shows above); however, it is a matter of long-term exposure and=20
  degree."<BR><BR>Why do you think so?<BR><BR>Anyway, I hope my comments =
were=20
  constructive. My goal isn't to push one angle or the other, but rather =
to=20
  understand the real underlying =
concerns.<BR><BR>Cheers,<BR><BR>Jason</P><SPAN=20
  class=3D"item-control blog-admin pid-1733971423"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116196398443362874"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN>=20
  <DT class=3Dcomment-data id=3Dc116673407752080236><A=20
  name=3Dc116673407752080236></A>At <A title=3D"comment permalink"=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html#c116673407752080236">3:47=20
  PM</A>, <SPAN class=3Danon-comment-author>Anonymous</SPAN> said...=20
  <DD class=3Dcomment-body>
  <P>One concern that I think has not come up in this discussion is the=20
  ecological consequences of farm-fish escapees. In areas where Atlantic =
salmon=20
  are farmed and are native (e.g., east coast of Canada, Maine, Norway) =
there is=20
  concern that farmed fish could escape, interbreed, or out-compete wild =

  populations of Atl salmon. Interbreeding farmed and wild fish can kind =
of=20
  "dumb down" the genetic make-up of wild populations.<BR>However, on =
the west=20
  coast where Atl salmon are farmed (British Columbia and Washington), =
this is=20
  an introduced species. Our inland waters have been devasted by =
introductions=20
  of non-native fish. Many, many, many examples. There are all kinds of =
concerns=20
  when it comes to introduced species-- including passing diseases and=20
  parasites, i.e., those normally only found in Atlantic fish, to our =
native=20
  fish.<BR>There was also some talk about wastage/efficiency in food =
that is fed=20
  to farmed fish (with respect to lbs fed to lbs grown). I'm not sure if =
this=20
  was brought up, but one of the problems is that we're already =
over-fishing=20
  wild fish stocks. Catching even more fish to grind up for food only =
compounds=20
  the over-fishing problem.<BR>Oh yeah... and wild fish just taste =
better.=20
  :)<BR>Thanks for this forum.</P><SPAN=20
  class=3D"item-control blog-admin pid-1733971423"><A title=3D"Delete =
Comment"=20
  style=3D"BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"=20
  =
href=3D"http://www.blogger.com/delete-comment.g?blogID=3D17422713&amp;pos=
tID=3D116673407752080236"><SPAN=20
  class=3Ddelete-comment-icon>&nbsp;</SPAN></A></SPAN> </DD></DL>
<P class=3Dcomment-timestamp><A class=3Dcomment-link=20
href=3D"http://www.blogger.com/comment.g?blogID=3D17422713&amp;postID=3D1=
16033962393212198">Post=20
a Comment</A> </P>
<P style=3D"PADDING-LEFT: 20px"><A=20
href=3D"http://beyondsalmon.blogspot.com/">&lt;&lt; Home</A> =
</P></DIV><!-- End #comments --></DIV></DIV></DIV><!-- End #main --><!-- =
Begin #sidebar -->
<DIV id=3Dsidebar><!-- Begin .box -->
<DIV class=3Dbox>
<DIV class=3Dbox2>
<DIV class=3Dbox3>
<UL>
  <LI><A href=3D"http://beyondsalmon.blogspot.com/">Home</A>=20
  <LI><A =
href=3D"http://www.blogger.com/profile/12271344371852988017">About =
me</A>=20

  <LI><A href=3D"http://www.helenrennie.com/kitchen">Boston, MA Cooking=20
  Classes</A>=20
  <LI>
  <SCRIPT type=3Dtext/javascript>
<!--
vvar=3D('helen' + 'rennie')
vvar=3D(vvar + '&#64;' + 'gmail' + '&#46;' + 'com')
document.write('<a href=3D"mailto:' + vvar + '">E-mail</a>')
 //-->
</SCRIPT>
  <NOSCRIPT>Javascript required to view e-mail address.=20
</NOSCRIPT></LI></UL></DIV></DIV></DIV><!-- End .box --><!-- Begin .box =
-->
<DIV class=3Dbox>
<DIV class=3Dbox2>
<DIV class=3Dbox3>
<H2 class=3Dsidebar-title>Helen's School of Fish</H2>
<UL>
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/fish-personalities.html"=
>Fish=20
  Personalities</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/11/buying-and-storing-fish.=
html">Buying=20
  and Storing Fish</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2005/10/is-it-done.html">Is it=20
  Done?</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/02/mercury-in-fish.html">Me=
rcury=20
  in Fish</A>=20
  <LI><A href=3D"http://www.foodadventures.org/food/07_05.html">Fish and =
Other=20
  Markets in Boston</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/03/how-to-cook-whole-fish.h=
tml">How=20
  to Cook a Whole Fish</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/05/technique-of-week-how-to=
-grill-fish.html">How=20
  to Grill Fish</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/07/technique-of-week-how-to=
-skin-fish.html">How=20
  to Skin a Fillet</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/parasites-in-fish-part-1=
-cod-worm.html">Parasites=20
  in Fish Part 1</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/parasites-in-fish-part-2=
-anisakis-and.html">Parasites=20
  in Fish Part 2</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/branzino-tartar-with-app=
les-and-ginger.html">How=20
  to Serve Fish Raw</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/02/to-rinse-or-not-to-rinse=
-that-is.html">To=20
  Rinse or Not to Rinse</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/06/tale-of-two-tunas.html">=
A Tale=20
  of Two Tunas</A> </LI></UL>
<H2 class=3Dsidebar-title>Food for Thought</H2>
<UL>
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/technique-of-week.html">=
Technique=20
  of the week</A> - from sectioning an orange to making sushi rice=20
  <LI><A href=3D"http://www.culinate.com/read/front_burner">Front Burner =
Column on=20
  Culinate.com</A> - ingredients, equipment, and technique=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/food-writing_11510295290=
7055702.html">Food=20
  writing</A> - food philosophy, book reviews, and other ramblings =
</LI></UL>
<H2 class=3Dsidebar-title>Recipes</H2>
<UL>
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/fillets-and-steaks-recip=
es.html">Fish=20
  Fillets and Steaks</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/whole-fish-recipes.html"=
>Whole=20
  Fish</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/seafood-recipes.html">Se=
afood</A>=20

  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/vegetarian-recipes.html"=
>All=20
  Things Veggie</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/meats-and-occasional-chi=
cken.html">Meats=20
  and Occasional Chicken</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/appetizer-recipes.html">=
Appetizers</A>=20

  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/soups-and-stews.html">So=
ups and=20
  Stews</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/salad-recipes.html">Sala=
ds</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005/10/baking-and-desserts.html=
">Baking=20
  and Desserts</A> </LI></UL>
<H2 class=3Dsidebar-title>Syndication</H2>
<UL>
  <LI><A href=3D"http://feeds.feedburner.com/BeyondSalmon">RSS feed</A>=20
  <LI><A href=3D"http://beyondsalmon.blogspot.com/atom.xml">Atom =
feed</A> </LI></UL>
<H2 class=3Dsidebar-title>Previous Posts</H2>
<UL id=3Drecently>
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/questions-about-cod-worm=
s.html">Questions=20
  about cod worms</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/10/cafeteria-lunch-la-googl=
e.html">Cafeteria=20
  lunch a la Google</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/parasites-in-fish-part-1=
-cod-worm.html">Parasites=20
  in Fish, Part 1 -- Cod worm</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/bluefish-fajitas.html">B=
luefish=20
  Fajitas</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/eggplant-stuffed-with-ca=
rrots-garlic.html">Eggplant=20
  stuffed with carrots, garlic, and herbs</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/grilled-swordfish-with-t=
omatillo-salsa.html">Grilled=20
  Swordfish with Tomatillo Salsa Verde and W...</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/bread-and-lilies.html">B=
read=20
  and Lilies</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/honey-garlic-grilled-egg=
plant.html">Honey=20
  Garlic Grilled Eggplant</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/09/perfect-steak-at-last.ht=
ml">Perfect=20
  steak at last!</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006/08/battle-of-steaks-and-sex=
es.html">The=20
  battle of the steaks (and the sexes)</A> </LI></UL>
<H2 class=3Dsidebar-title>Links</H2>
<UL>
  <LI><A=20
  =
href=3D"http://www.helenrennie.com/restaurants/restaurants_boston.html">B=
oston=20
  Restaurants</A>=20
  <LI><A href=3D"http://www.helenrennie.com/recipes/">More Recipes</A>=20
  <LI><A =
href=3D"http://people.csail.mit.edu/jrennie/bread/journal.html">Jason's=20
  bread journal</A>=20
  <LI><A href=3D"http://www.dessertsauce.com/">Shootflying Hill Sauce =
Company</A>=20
  -- dessert sauces by Cory Clarke </LI></UL>
<H2 class=3Dsidebar-title>Food Blogs in Boston</H2>
<UL>
  <LI><A href=3D"http://countingsheep.typepad.com/amuse_bouche/">Amuse =
Bouche</A>=20
  <LI><A href=3D"http://bostonchef.blogspot.com/">Boston Chef</A>=20
  <LI><A href=3D"http://www.homeyturtleg.blogspot.com/">Bribe Me with a =
Muffin</A>=20

  <LI><A href=3D"http://iamglutenfree.blogspot.com/">I am Gluten =
Free</A>=20
  <LI><A href=3D"http://www.offthebone.net/">Off the Bone</A>=20
  <LI><A href=3D"http://www.raqueljournal.typepad.com/">Raquel's Box of=20
  Chocolate</A>=20
  <LI><A href=3D"http://www.seasonalcook.blogspot.com/">The Seasonal =
Cook</A>=20
  <LI><A href=3D"http://www.beaskitchen.com/blog/">La Tartine =
Gourmande</A>=20
</LI></UL>
<H2 class=3Dsidebar-title>Food Blogs around the World</H2>
<UL>
  <LI><A href=3D"http://bluekitchen.wordpress.com/">Blue Kitchen</A>=20
  <LI><A href=3D"http://www.chocolateandzucchini.com/">Chocolate and =
Zucchini</A>=20
  <LI><A href=3D"http://www.chezpim.typepad.com/">Chez Pim</A>=20
  <LI><A=20
  =
href=3D"http://creampuffsinvenice.typepad.com/cream_puffs_in_venice/">Cre=
am=20
  Puffs in Venice</A>=20
  <LI><A =
href=3D"http://thecookingadventuresofchefpaz.blogspot.com/">Cooking=20
  Adventures of Chef Paz</A>=20
  <LI><A href=3D"http://www.bourrezvisage.com/rss/index.php">Food Blog =
Central</A>=20

  <LI><A href=3D"http://glutenfreegirl.blogspot.com/">Gluten-free =
Girl</A>=20
  <LI><A href=3D"http://haverchuk.blogspot.com/">Haverchuk</A>=20
  <LI><A href=3D"http://www.ismyblogburning.com/">Is my blog burning</A> =

  <LI><A href=3D"http://kalynskitchen.blogspot.com/">Kalyn's Kitchen</A> =

  <LI><A href=3D"http://brandoesq.blogspot.com/">Kuidaore</A>=20
  <LI><A href=3D"http://lucullian.blogspot.com/">Lucullian delights</A>=20
  <LI><A href=3D"http://mollysmadeleine.blogspot.com/">My Madeleine</A>=20
  <LI><A href=3D"http://nonais.org/">No NAIS</A>=20
  <LI><A href=3D"http://notasgoodasporkcracklins.blogspot.com/">Not As =
Good As=20
  Pork Cracklins</A>=20
  <LI><A href=3D"http://andreayaya.typepad.com/rookie_cookery/">Rookie =
Cookery</A>=20

  <LI><A href=3D"http://www.stephencooks.com/">Stephen Cooks</A>=20
  <LI><A href=3D"http://sweetnapa.blogspot.com/">Sweet Napa</A>=20
  <LI><A href=3D"http://yulinkacooks.blogspot.com/">Yulinka Cooks</A> =
</LI></UL>
<H2 class=3Dsidebar-title>Archives</H2>
<UL class=3Darchive-list>
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2005_10_01_archive.html">October=
=20
  2005</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005_11_01_archive.html">Novembe=
r=20
  2005</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2005_12_01_archive.html">Decembe=
r=20
  2005</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_01_01_archive.html">January=
=20
  2006</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006_02_01_archive.html">Februar=
y=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_03_01_archive.html">March=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_04_01_archive.html">April=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_05_01_archive.html">May=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_06_01_archive.html">June=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_07_01_archive.html">July=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_08_01_archive.html">August =

  2006</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006_09_01_archive.html">Septemb=
er=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2006_10_01_archive.html">October=
=20
  2006</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006_11_01_archive.html">Novembe=
r=20
  2006</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2006_12_01_archive.html">Decembe=
r=20
  2006</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2007_01_01_archive.html">January=
=20
  2007</A>=20
  <LI><A=20
  =
href=3D"http://beyondsalmon.blogspot.com/2007_02_01_archive.html">Februar=
y=20
  2007</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2007_03_01_archive.html">March=20
  2007</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2007_04_01_archive.html">April=20
  2007</A>=20
  <LI><A =
href=3D"http://beyondsalmon.blogspot.com/2007_05_01_archive.html">May=20
  2007</A> </LI></UL>
<P><A=20
href=3D"http://www.stylefeeder.com/r.html?t=3Dhelenskitchen&amp;d=3D/styl=
efeed/helenskitchen"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
src=3D"http://www.stylefeeder.com/xml/badge/static/icebox/helenskitchen.g=
if"></A>=20
<P>
<P>
<P id=3Dpowered-by><A href=3D"http://www.blogger.com/"><IMG =
alt=3D"Powered by Blogger"=20
src=3D"http://buttons.blogger.com/bloggerbutton1.gif"></A></P>
<P>All writing and photography on Beyond Salmon is Copyright Helen =
Rennie =C2=A9 2005=20
unless indicated otherwise. All rights reserved. =
</P></DIV></DIV></DIV><!-- End .box --></DIV><!-- End #sidebar --><!-- =
Begin #footer -->
<DIV id=3Dfooter align=3Dcenter>
<DIV>
<DIV>
<HR>

<P><!-- This is an optional footer. If you want text here, place it =
inside these tags, and remove this comment. --><!--WEBBOT =
bot=3D"HTMLMarkup" startspan ALT=3D"Site Meter" -->
<SCRIPT language=3DJavaScript=20
type=3Dtext/javascript>var site=3D"s22beyondsalmonstats"</SCRIPT>

<SCRIPT language=3DJavaScript1.2=20
src=3D"http://s22.sitemeter.com/js/counter.js?site=3Ds22beyondsalmonstats=
"=20
type=3Dtext/javascript>
</SCRIPT>
<NOSCRIPT><A =
href=3D"http://s22.sitemeter.com/stats.asp?site=3Ds22beyondsalmonstats"=20
target=3D_top><IMG alt=3D"Site Meter"=20
src=3D"http://s22.sitemeter.com/meter.asp?site=3Ds22beyondsalmonstats" =
border=3D0></A>=20
</NOSCRIPT><!-- Copyright (c)2005 Site Meter --><!--WEBBOT =
bot=3D"HTMLMarkup" Endspan -->&nbsp;</P></DIV></DIV></DIV><!-- End =
#footer --></DIV><!-- End #content --></BODY></HTML>

------=_NextPart_001_0063_01C79658.B0A59AC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/navbar.g?targetBlogID=17422713&blogName=Beyond+Salmon&publishMode=PUBLISH_MODE_BLOGSPOT&navbarType=SILVER&layoutType=CLASSIC&homepageUrl=http%3A%2F%2Fbeyondsalmon.blogspot.com%2F&searchRoot=http%3A%2F%2Fbeyondsalmon.blogspot.com%2Fsearch

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"http://www.blogger.com/css/navbar/navbar.css?v=3D1" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK =
href=3D"http://www.blogger.com/css/navbar/4.css?v=3D1"=20
type=3Dtext/css rel=3Dstylesheet>
<META content=3D"MSHTML 6.00.6000.16441" name=3DGENERATOR></HEAD>
<BODY>
<SCRIPT src=3D"http://www.blogger.com/js/cookies.common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.blogger.com/app/scripts/common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.blogger.com/app/scripts/dom.common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript><!--=0A=
=0A=
=0A=
=0A=
 var ID =3D "17422713";=0A=
 var FLAG_COOKIE_NAME =3D 'flaggedBlog';=0A=
 var MAX_FLAGGED_BLOGS =3D 10;=0A=
 var FLAG_BLOG_URL =3D "http://www.blogger.com" +=0A=
                     "/flag-blog.g?nav=3D" +=0A=
                     "4" +=0A=
                     "&toFlag=3D" + ID;=0A=
 var UNFLAG_BLOG_URL =3D "http://www.blogger.com" +=0A=
                     "/unflag-blog.g?nav=3D" +=0A=
                     "4" +=0A=
                     "&toFlag=3D" + ID;=0A=
 var FLAG_IMAGE_URL =3D "http://www.blogger.com" + "/img/navbar/" +=0A=
                      "4" + "/flag.gif";=0A=
 var UNFLAG_IMAGE_URL =3D "http://www.blogger.com" + =0A=
                         "/img/navbar/1/unflag.gif";=0A=
   =0A=
 var ncHasFlagged =3D false;=0A=
 var servletTarget =3D new Image();=0A=
=0A=
=0A=
function hasFlagged() {=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    var bloglist =3D getCookie(FLAG_COOKIE_NAME);=0A=
    var blogarray =3D bloglist.split(",")=0A=
    if (FindInArray(blogarray, ID) > 0) {=0A=
      return true;=0A=
    }=0A=
  }=0A=
  return ncHasFlagged;=0A=
}=0A=
=0A=
=0A=
function toggleFlag() {=0A=
  var date =3D new Date();=0A=
  if (hasFlagged()) {=0A=
    removeBlogFromFlagCookie();=0A=
    servletTarget.src =3D UNFLAG_BLOG_URL + '&d=3D' + date.getTime();=0A=
    document.getElementById('bt-flag').style.background =3D =0A=
      'url(' + FLAG_IMAGE_URL + ') left no-repeat';=0A=
    ncHasFlagged =3D false;=0A=
    document.getElementById('bt-unflag-body').style.display =3D 'none';=0A=
    document.getElementById('bt-flag-body').style.display =3D 'inline'=0A=
    refreshDrop();=0A=
  } else { =0A=
    setBloggerFlagCookie();=0A=
    servletTarget.src =3D FLAG_BLOG_URL + '&d=3D' + date.getTime();=0A=
    document.getElementById('bt-flag').style.background =3D =0A=
      'url(' + UNFLAG_IMAGE_URL + ') left no-repeat';=0A=
    ncHasFlagged =3D true;=0A=
    document.getElementById('bt-flag-body').style.display =3D 'none'=0A=
    document.getElementById('bt-unflag-body').style.display =3D 'inline'=0A=
    refreshDrop();=0A=
  }=0A=
}=0A=
=0A=
=0A=
function showDrop() {=0A=
 var overlap =3D 5;=0A=
 var dropdown_position =3D =0A=
   GetPageOffsetRight(document.getElementById('b-flag-this')) - overlap =
+ "px";=0A=
=0A=
 document.getElementById('unflagi').style.display =3D 'none';=0A=
 document.getElementById('flagi').style.display =3D 'none';=0A=
=0A=
 if (!hasFlagged()) { =0A=
    document.getElementById('flagi').style.display =3D 'inline';=0A=
    document.getElementById('flagi').style.left =3D dropdown_position;=0A=
    showElement(document.getElementById('flagi'));     =0A=
  } else { =0A=
    document.getElementById('unflagi').style.display =3D 'inline';=0A=
    document.getElementById('unflagi').style.left =3D dropdown_position;=0A=
    showElement(document.getElementById('unflagi')); =0A=
  }   =0A=
}=0A=
=0A=
=0A=
function hideDrop() {=0A=
    hideElement(document.getElementById('flagi'));=0A=
    hideElement(document.getElementById('unflagi')); =0A=
}=0A=
=0A=
=0A=
function refreshDrop() {=0A=
  hideDrop();=0A=
  showDrop();=0A=
}=0A=
=0A=
=0A=
function setBloggerFlagCookie() {=0A=
  var bloglist =3D ""=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    bloglist =3D getCookie(FLAG_COOKIE_NAME)=0A=
    var blogarray =3D bloglist.split(",")=0A=
    if (blogarray.length >=3D MAX_FLAGGED_BLOGS) { =0A=
      blogarray.shift()  =0A=
    }=0A=
    InsertArray(blogarray, ID)=0A=
    bloglist =3D blogarray.toString(); =0A=
  } else {=0A=
    bloglist =3D ID=0A=
  } =0A=
  setCookie(FLAG_COOKIE_NAME, bloglist, null, null, '/', null)=0A=
 }   =0A=
=0A=
 =0A=
function removeBlogFromFlagCookie(){=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    var bloglist =3D getCookie(FLAG_COOKIE_NAME);=0A=
    var blogarray =3D bloglist.split(",") =0A=
    if (FindInArray(blogarray, ID) > 0) {=0A=
      DeleteArrayElement(blogarray, ID)=0A=
      bloglist =3D blogarray.toString();=0A=
    }=0A=
    setCookie(FLAG_COOKIE_NAME, bloglist, null, null, '/', null);=0A=
  } =0A=
}=0A=
=0A=
=0A=
//--> </SCRIPT>

<DIV id=3Dflagi onmouseover=3DshowDrop() style=3D"POSITION: absolute"=20
onmouseout=3DhideDrop();>
<DIV id=3Dflagi-body>Notify Blogger about <A=20
href=3D"http://help.blogger.com/bin/answer.py?answer=3D42517"=20
target=3D_blank>objectionable content</A> on this page. </DIV></DIV>
<DIV id=3Dunflagi onmouseover=3DshowDrop() style=3D"POSITION: absolute"=20
onmouseout=3DhideDrop()>
<DIV id=3Dunflagi-body>You flagged this blog as having <A=20
href=3D"http://help.blogger.com/bin/answer.py?answer=3D42517"=20
target=3D_blank>objectionable content</A>. </DIV></DIV>
<DIV id=3Db-navbar><A id=3Db-logo title=3D"Go to Blogger.com"=20
href=3D"http://www.blogger.com/">
<DIV id=3Dnavbar-logo></DIV></A>
<DIV class=3Db-mobile id=3Db-sms><A=20
href=3D"sms:?body=3DHi%2C%20check%20out%20Beyond%20Salmon%20at%20http%3A%=
2F%2Fbeyondsalmon.blogspot.com%2F">Send=20
As SMS </A></DIV>
<DIV id=3Db-search>
<TABLE cellSpacing=3D0 cellPadding=3D0>
  <TBODY>
  <TR>
    <TD class=3Dnavsearch vAlign=3Dcenter noWrap>
      <FORM id=3Dsearchthis style=3D"DISPLAY: inline"=20
      action=3Dhttp://beyondsalmon.blogspot.com/search method=3Dget>
      <TABLE cellSpacing=3D0 cellPadding=3D0>
        <TBODY>
        <TR>
          <TD vAlign=3Dcenter><INPUT id=3Db-query name=3Dq> </TD>
          <TD class=3Dnavbutton vAlign=3Dcenter><NOSCRIPT><INPUT =
id=3Db-searchbtn=20
            title=3D"Search this blog" type=3Dimage alt=3D"Search This =
Blog"=20
            =
src=3D"http://www.blogger.com/img/navbar/4/btn_search_this.gif">=20
            </NOSCRIPT>
            <SCRIPT type=3Dtext/javascript>document.write(" \u003cdiv =
id\u003d\"b-search-this\" =
onclick\u003d\"document.getElementById(\'searchthis\').submit()\"\> =
\u003cdiv class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003cdiv =
class\u003d\"bt2\"\> Search Blog \u003c/div\> \u003cdiv =
class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003c/div\> ");</SCRIPT>
          </TD>
          <TD class=3Dnavbutton vAlign=3Dcenter>
            <SCRIPT type=3Dtext/javascript>document.write(" \u003cdiv =
onclick\u003d\"toggleFlag();\" id\u003d\"b-flag-this\" =
onmouseout\u003d\"hideDrop()\" onmouseover\u003d\"showDrop()\"\> =
\u003cdiv class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003cdiv =
class\u003d\"bt2\"\>  \u003cdiv id\u003d\"bt-flag\"\> \u003cdiv =
id\u003d\"bt-flag-body\"\> Flag Blog \u003c/div\> \u003cdiv =
style\u003d\"display:none\" id\u003d\"bt-unflag-body\"\> Blog Flagged =
\u003c/div\> \u003c/div\>  \u003c/div\> \u003cdiv =
class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003c/div\> ");</SCRIPT>
          </TD></TR></TBODY></TABLE></FORM></TD>
    <TD vAlign=3Dcenter noWrap width=3D"100%"><A id=3Db-next=20
      href=3D"http://www.blogger.com/next-blog?navBar=3Dtrue">Next =
Blog=C2=BB </A></TD>
    <TD class=3Dnavbar-right vAlign=3Dcenter noWrap align=3Dright><A =
id=3Db-getorpost=20
      href=3D"http://www.blogger.com/signup.g">Create Blog </A>| <A=20
      href=3D"http://www.blogger.com/">Sign In=20
</A></TD></TR></TBODY></TABLE></DIV></DIV></BODY></HTML>

------=_NextPart_001_0063_01C79658.B0A59AC0--

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/js/backlink.js

// Global variable which is populated by the dynamic javascript =0A=
// retrieved from a request to the blogger server=0A=
var BL_Backlinks =3D new Array();=0A=
var BL_BacklinkCount =3D new Array();=0A=
=0A=
function BL_processBacklinkTemplate(templateHTML) {=0A=
  var finalHTML =3D "";=0A=
  for (i=3D0; i < BL_Backlinks.length; i++) {=0A=
    var html =3D templateHTML;=0A=
    html =3D =
html.replace(/(<|%3C)\$BlogBacklinkURL\$(>|%3E)/g,BL_Backlinks[i]["BlogBa=
cklinkURL"]);=0A=
    html =3D =
html.replace(/(<|%3C)\$BlogBacklinkURLEscaped\$(>|%3E)/g,escape(BL_Backli=
nks[i]["BlogBacklinkURL"]));=0A=
    html =3D =
html.replace(/&lt;\$BlogBacklinkTitle\$&gt;/g,BL_Backlinks[i]["BlogBackli=
nkTitle"]);=0A=
    html =3D =
html.replace(/&lt;\$BlogBacklinkSnippet\$&gt;/g,BL_Backlinks[i]["BlogBack=
linkSnippet"]);=0A=
    html =3D =
html.replace(/&lt;\$BlogBacklinkAuthor\$&gt;/g,BL_Backlinks[i]["BlogBackl=
inkAuthor"]);=0A=
    html =3D =
html.replace(/&lt;\$BlogBacklinkDateTime\$&gt;/g,BL_Backlinks[i]["BlogBac=
klinkDateTime"]);=0A=
    finalHTML +=3D html;=0A=
  }=0A=
  return finalHTML;=0A=
}=0A=
=0A=
function BL_writeBacklinks() {=0A=
  var dcomDiv =3D document.getElementById('blogger-dcom-block');=0A=
  if (dcomDiv !=3D null && dcomDiv.innerHTML) {=0A=
    var finalHTML =3D BL_processBacklinkTemplate(dcomDiv.innerHTML); =0A=
    // Add a div with a unique id to test if the subsequent write=0A=
    // succeeded=0A=
    if (finalHTML !=3D "") {=0A=
      finalHTML +=3D '<span id=3D"blogger-dcom-ihtest"></span>';=0A=
      dcomDiv.innerHTML =3D finalHTML;=0A=
      if (document.getElementById('blogger-dcom-ihtest')) {=0A=
        dcomDiv.style.display =3D "block";         	=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
function BL_addOnLoadEvent(func) {=0A=
  var oldonload =3D window.onload;=0A=
  if (typeof window.onload !=3D 'function') {=0A=
    window.onload =3D func;=0A=
  } else {=0A=
    window.onload =3D function() {=0A=
      oldonload();=0A=
      func();=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
function BL_loadScript (url) {=0A=
  if (document.getElementById) {=0A=
    var script =3D document.createElement('script');=0A=
    script.defer =3D true;=0A=
    script.src =3D url;=0A=
    document.getElementsByTagName('head')[0].appendChild(script);=0A=
  }=0A=
}=0A=
=0A=
function BL_populateBacklinksCount() {=0A=
  var linkSpans =3D document.getElementsByTagName("span");=0A=
  var postQuery =3D "";=0A=
  for (var i=3D0; i < linkSpans.length; i++) {=0A=
    if (linkSpans[i].className =3D=3D "backlinkcount") {         =0A=
      var postId =3D linkSpans[i].id;	=0A=
      if (postId) {=0A=
        BL_BacklinkCount[postId] =3D linkSpans[i];=0A=
        postQuery +=3D "&postID=3D" + postId;=0A=
      }=0A=
    }=0A=
  }=0A=
  if (postQuery !=3D "") {=0A=
    var url =3D window.BL_backlinkURL + "?blogID=3D" + window.BL_blogId =
+ postQuery; =0A=
    BL_loadScript(url);	=0A=
  }=0A=
}=0A=
=0A=
BL_addOnLoadEvent(function() { BL_populateBacklinksCount(); })=0A=

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blogger.com/js/backlink_control.js

if (document.getElementById) {=0A=
  var toggle_opened =3D new Image();=0A=
  var toggle_closed =3D new Image();=0A=
  // pre-loading the images=0A=
  toggle_opened.src =3D "http://www.blogger.com/img/triangle_open.gif";=0A=
  toggle_closed.src =3D "http://www.blogger.com/img/triangle.gif";=0A=
  document.write(['<style type=3D"text/css">',=0A=
                '.comment-toggler {',=0A=
                'background:url(',=0A=
	        toggle_closed.src,=0A=
		') no-repeat left center;',=0A=
	        'padding-right:11px;',=0A=
		'margin-right:0.1em;',=0A=
		'cursor:pointer;',=0A=
                'cursor:hand;',=0A=
	        '}',=0A=
	        '#blogger-dcom-block dd {',=0A=
		'display:none;',=0A=
		'margin-top:1em;',=0A=
		'padding-left:14px;',=0A=
		'margin-left:0.4em;',=0A=
		'}',=0A=
		'</style>'].join(""));=0A=
=0A=
  // Register old onmousedown function=0A=
  var BL_oldonmousedown =3D document.onmousedown; =0A=
=0A=
  document.onmousedown =3D function(e) {  =0A=
   =0A=
    var shouldPropagate =3D true;=0A=
=0A=
    var target =3D window.event ? window.event.srcElement : e.target;=0A=
	    =0A=
    if (target.className =3D=3D "comment-toggler") {=0A=
      var dt =3D target.parentNode;=0A=
      var dd =3D dt.nextSibling;=0A=
		=0A=
      while (dd.tagName !=3D "DD") {=0A=
        dd =3D dd.nextSibling; =0A=
      }=0A=
		=0A=
      if (dd.style.display =3D=3D "block") {=0A=
        dd.style.display =3D "none";=0A=
        target.style.backgroundImage =3D "url(" + toggle_closed.src + =
")";=0A=
      } else {=0A=
        dd.style.display =3D "block";=0A=
        target.style.backgroundImage =3D "url(" + toggle_opened.src + =
")";=0A=
      } =0A=
      shouldPropagate =3D false;	=0A=
    }	    =0A=
    // call old onmousedown function if registered 	=0A=
    if (typeof window.BL_oldonmousedown =3D=3D 'function') {=0A=
      return window.BL_oldonmousedown(e);=0A=
    }=0A=
    return shouldPropagate;    =0A=
  }=0A=
}=0A=
=0A=

------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js

(function(){=0A=
function n(b){return b!=3Dnull?'"'+b+'"':'""'}function I(b){if(typeof =
encodeURIComponent=3D=3D"function"){return =
encodeURIComponent(b)}else{return escape(b)}}function =
d(b,a){if(a){window.google_ad_url+=3D"&"+b+"=3D"+a}}function =
h(b,a){if(a){d(b,I(a))}}function m(b,a,c){if(a&&typeof =
a=3D=3D"object"){a=3Da[c%a.length]}d("color_"+b,a)}function N(b,a){var =
c=3Db.screen,e=3Dnavigator.javaEnabled(),f=3D-a.getTimezoneOffset();if(c)=
{d("u_h",c.height);d("u_w",c.width);d("u_ah",c.availHeight);d("u_aw",c.av=
ailWidth);d("u_cd",c.colorDepth)}d("u_tz",=0A=
f);d("u_his",history.length);d("u_java",e);if(navigator.plugins){d("u_npl=
ug",navigator.plugins.length)}if(navigator.mimeTypes){d("u_nmime",navigat=
or.mimeTypes.length)}}function =
E(b){b=3Db.toLowerCase();if(b.substring(0,3)!=3D"ca-"){b=3D"ca-"+b}return=
 b}function =
V(b,a,c){c=3Dc.substring(0,2000);c=3Dc.replace(/%\w?$/,"");if(b.google_ad=
_output=3D=3D"js"&&(b.google_ad_request_done||b.google_radlink_request_do=
ne)){a.write('<script language=3D"JavaScript1.1" =
src=3D'+n(c)+"><\/script>")}else =
if(b.google_ad_output=3D=3D"html"){if(b.name!=3D=0A=
"google_ads_frame"){a.write('<iframe name=3D"google_ads_frame" =
width=3D'+n(b.google_ad_width)+" height=3D"+n(b.google_ad_height)+" =
frameborder=3D"+n(b.google_ad_frameborder)+" src=3D"+n(c)+' =
marginwidth=3D"0" marginheight=3D"0" vspace=3D"0" hspace=3D"0" =
allowtransparency=3D"true" =
scrolling=3D"no">');a.write("</iframe>")}}else =
if(b.google_ad_output=3D=3D"textlink"){a.write('<script =
language=3D"JavaScript1.1" src=3D'+n(c)+"><\/script>")}}function =
T(b){var =
a=3Dnull;b.google_ad_frameborder=3Da;b.google_ad_format=3Da;b.google_page=
_url=3Da;=0A=
b.google_language=3Da;b.google_gl=3Da;b.google_country=3Da;b.google_regio=
n=3Da;b.google_city=3Da;b.google_hints=3Da;b.google_safe=3Da;b.google_enc=
oding=3Da;b.google_ad_output=3Da;b.google_max_num_ads=3Da;b.google_ad_cha=
nnel=3Da;b.google_contents=3Da;b.google_alternate_ad_url=3Da;b.google_alt=
ernate_color=3Da;b.google_color_bg=3Da;b.google_color_text=3Da;b.google_c=
olor_link=3Da;b.google_color_url=3Da;b.google_color_border=3Da;b.google_c=
olor_line=3Da;b.google_reuse_colors=3Da;b.google_adtest=3Da;b.google_kw_t=
ype=3Da;b.google_kw=3Da;b.google_num_radlinks=3D=0A=
a;b.google_max_radlink_len=3Da;b.google_rl_filtering=3Da;b.google_rl_mode=
=3Da;b.google_rt=3Da;b.google_ad_type=3Da;b.google_image_size=3Da;b.googl=
e_feedback=3Da;b.google_skip=3Da;b.google_page_location=3Da;b.google_refe=
rrer_url=3Da;b.google_ad_region=3Da;b.google_ad_section=3Da;b.google_bid=3D=
a;b.google_cpa_choice=3Da;b.google_cust_age=3Da;b.google_cust_gender=3Da;=
b.google_cust_interests=3Da;b.google_cust_id=3Da;b.google_cust_job=3Da;b.=
google_cust_u_url=3Da;b.google_cust_l=3Da;b.google_cust_lh=3Da;b.google_c=
ust_ch=3Da;b.google_ed=3Da;b.google_targeting=3D=0A=
a;b.google_ad_host=3Da;b.google_ad_slotname=3Da;b.google_ad_override=3Da;=
b.google_ui_features=3Da}function G(){var =
b=3Dnull,a=3Dwindow,c=3Ddocument,e=3Dnew =
Date,f=3De.getTime(),i=3Da.google_ad_format,g=3Dfalse;if(O(a.google_ad_ou=
tput,a.google_ad_client)&&!U()){g=3Dtrue}if(a.google_cpa_choice){a.google=
_ad_url=3D"http://pagead2.googlesyndication.com/cpa/ads?";a.google_ad_url=
+=3D"client=3D"+escape(E(a.google_ad_client));a.google_ad_region=3D"_goog=
le_cpa_region_";d("cpa_choice",a.google_cpa_choice);if(typeof =
c.characterSet!=3D"undefined"){h("oe",=0A=
c.characterSet)}else if(typeof =
c.charset!=3D"undefined"){h("oe",c.charset)}}else{a.google_ad_url=3D"http=
://pagead2.googlesyndication.com/pagead/ads?";a.google_ad_url+=3D"client=3D=
"+escape(E(a.google_ad_client))}d("host",a.google_ad_host);var =
j=3Da.google_num_slots_by_client,C=3Da.google_num_slots_by_channel,l=3Da.=
google_prev_ad_formats_by_region;a.onerror=3Da.google_org_error_handler;i=
f(a.google_ad_region=3D=3Db&&a.google_ad_section!=3Db){a.google_ad_region=
=3Da.google_ad_section}var =
k=3Da.google_ad_region=3D=3Db?"":a.google_ad_region,=0A=
w=3Dfalse;if(i){w=3Di.indexOf("_0ads")>0}if(w){if(a.google_num_0ad_slots)=
{a.google_num_0ad_slots=3Da.google_num_0ad_slots+1}else{a.google_num_0ad_=
slots=3D1}if(a.google_num_0ad_slots>3){return}}else =
if(!a.google_cpa_choice){if(a.google_num_ad_slots){a.google_num_ad_slots=3D=
a.google_num_ad_slots+1}else{a.google_num_ad_slots=3D1}if(a.google_num_sl=
ots_to_rotate){l[k]=3Db;if(a.google_num_slot_to_show=3D=3Db){a.google_num=
_slot_to_show=3Df%a.google_num_slots_to_rotate+1}if(a.google_num_slot_to_=
show!=3Da.google_num_ad_slots){return}}else if(a.google_num_ad_slots>=0A=
3&&k=3D=3D""){return}}d("dt",e.getTime());d("hl",a.google_language);if(a.=
google_country){d("gl",a.google_country)}else{d("gl",a.google_gl)}d("gr",=
a.google_region);h("gcs",a.google_city);h("hints",a.google_hints);d("adsa=
fe",a.google_safe);d("oe",a.google_encoding);d("lmt",a.google_last_modifi=
ed_time);h("alternate_ad_url",a.google_alternate_ad_url);d("alt_color",a.=
google_alternate_color);d("skip",a.google_skip);d("targeting",a.google_ta=
rgeting);var =
p=3Da.google_ad_client;if(!j[p]){j[p]=3D1;j.length+=3D1}else{j[p]+=3D=0A=
1}if(l[k]){h("prev_fmts",l[k].toLowerCase());if(j.length>1){d("slot",j[p]=
)}}if(i){h("format",i.toLowerCase());if(l[k]){l[k]=3Dl[k]+","+i}else{l[k]=
=3Di}}d("num_ads",a.google_max_num_ads);d("output",g?"json_html":a.google=
_ad_output);d("adtest",a.google_adtest);if(a.google_ad_channel){var =
x=3Da.google_ad_channel;h("channel",x);var =
y=3D"",z=3Dx.split("+");for(var s=3D0;s<z.length;s++){var =
t=3Dz[s];if(!C[t]){C[t]=3D1}else{y+=3Dt+"+"}}h("pv_ch",y)}h("url",a.googl=
e_page_url);m("bg",a.google_color_bg,f);m("text",a.google_color_text,=0A=
f);m("link",a.google_color_link,f);m("url",a.google_color_url,f);m("borde=
r",a.google_color_border,f);m("line",a.google_color_line,f);d("reuse_colo=
rs",a.google_reuse_colors);d("kw_type",a.google_kw_type);h("kw",a.google_=
kw);h("contents",a.google_contents);d("num_radlinks",a.google_num_radlink=
s);d("max_radlink_len",a.google_max_radlink_len);d("rl_filtering",a.googl=
e_rl_filtering);d("rl_mode",a.google_rl_mode);d("rt",a.google_rt);d("ad_t=
ype",a.google_ad_type);d("image_size",a.google_image_size);d("region",=0A=
a.google_ad_region);d("feedback_link",a.google_feedback);h("ref",a.google=
_referrer_url);h("loc",a.google_page_location);d("bid",a.google_bid);d("c=
ust_age",a.google_cust_age);d("cust_gender",a.google_cust_gender);d("cust=
_interests",a.google_cust_interests);d("cust_id",a.google_cust_id);d("cus=
t_job",a.google_cust_job);d("cust_u_url",a.google_cust_u_url);d("cust_l",=
a.google_cust_l);d("cust_lh",a.google_cust_lh);d("cust_ch",a.google_cust_=
ch);d("ed",a.google_ed);h("ui",a.google_ui_features);if(F(a,c)&&=0A=
c.body){var =
A=3Dc.body.scrollHeight,B=3Dc.body.clientHeight;if(B&&A){h("cc",Math.roun=
d(B*100/A))}}d("google_ad_override",a.google_ad_override);d("flash",a.goo=
gle_flash_version);N(a,e);if(!g){V(a,c,a.google_ad_url)}else{S()}T(a)}fun=
ction J(b,a,c){G();return true}function F(b,a){return =
b.top.location=3D=3Da.location}function D(b,a){var =
c=3Da.documentElement;if(F(b,a))return =
false;if(b.google_ad_width&&b.google_ad_height){var =
e=3D1,f=3D1;if(b.innerHeight){e=3Db.innerWidth;f=3Db.innerHeight}else =
if(c&&c.clientHeight){e=3D=0A=
c.clientWidth;f=3Dc.clientHeight}else =
if(a.body){e=3Da.body.clientWidth;f=3Da.body.clientHeight}if(f>2*b.google=
_ad_height||e>2*b.google_ad_width){return false}}return true}function =
P(){var =
b=3Dwindow,a=3Ddocument,c=3Da.location,e=3Da.referrer,f=3Dnull;b.google_o=
rg_error_handler=3Db.onerror;b.onerror=3DJ;if(b.google_ad_frameborder=3D=3D=
f){b.google_ad_frameborder=3D0}if(b.google_ad_output=3D=3Df){b.google_ad_=
output=3D"html"}if(b.google_ad_format=3D=3Df&&b.google_ad_output=3D=3D"ht=
ml"){b.google_ad_format=3Db.google_ad_width+"x"+b.google_ad_height}if(b.g=
oogle_page_url=3D=3D=0A=
f){b.google_page_url=3De;if(!D(b,a)){b.google_page_url=3Dc;b.google_last_=
modified_time=3DDate.parse(a.lastModified)/1000;b.google_referrer_url=3De=
}}else{b.google_page_location=3De;if(!D(b,a)){b.google_page_location=3Dc}=
}if(b.google_num_slots_by_channel=3D=3Df){b.google_num_slots_by_channel=3D=
[]}if(b.google_num_slots_by_client=3D=3Df){b.google_num_slots_by_client=3D=
[]}if(b.google_prev_ad_formats_by_region=3D=3Df){b.google_prev_ad_formats=
_by_region=3D[]}if(b.google_correlator=3D=3Df){b.google_correlator=3D(new=
 Date).getTime()}if(b.google_adslot_loaded=3D=3D=0A=
f){b.google_adslot_loaded=3D{}}if(b.google_adContentsBySlot=3D=3Df){b.goo=
gle_adContentsBySlot=3D{}}if(b.google_flash_version=3D=3Df){b.google_flas=
h_version=3DH().toString()}}function o(b){if(b in q){return q[b]}return =
q[b]=3Dnavigator.userAgent.toLowerCase().indexOf(b)!=3D-1}var =
q=3D{};function r(){return o("msie")&&!window.opera}function u(){return =
o("safari")}function L(){var b=3Dnavigator.userAgent,a=3Db.indexOf("MSIE =
");if(a=3D=3D-1){return 0}else{return =
parseFloat(b.substring(a+5,b.indexOf(";",a)))}}function U(){if(r()){var =
b=3D=0A=
L();return b<=3D5}else if(o("firefox")){var =
a=3Dnavigator.userAgent.indexOf("Firefox")+8,c=3DparseInt(navigator.userA=
gent.charAt(a)),e=3Dnavigator.userAgent.slice(a);return c<1}else =
if(u()){var =
a=3Dnavigator.userAgent.indexOf("Safari")+7,e=3Dnavigator.userAgent.slice=
(a),f=3DparseInt(e);return f<412}else if(window.opera!=3Dnull){var =
a=3Dnavigator.userAgent.indexOf("Opera")+6,e=3Dnavigator.userAgent.slice(=
a),c=3DparseInt(e);return c<9}else if(!r()&&!u()&&o("mozilla")){var =
a=3Dnavigator.userAgent.indexOf("Netscape")+9,e=3Dnavigator.userAgent.sli=
ce(a),=0A=
c=3DparseInt(e);return c<7}else{return true}}function =
O(b,a){if(b!=3D"html"){return false}var =
c=3D{};c["ca-pub-8954402009499768"]=3Dtrue;return c[a]!=3Dnull}function =
K(){var =
b=3Dwindow;b.google_ad_slotname=3D"_Slot"+b.google_num_ad_slots}function =
S(){var =
b=3Dwindow;h("correlator",b.google_correlatorn);d("impl","s");d("callback=
","_google_setAdContentsBySlotForSync");if(!b.google_ad_slotname){K()}d("=
slotname",b.google_ad_slotname);document.write("<script src =3D =
'"+b.google_ad_url+"'><\/script>")}window.google_createDivWithContent=3D=0A=
function(b){var a=3Dwindow,c=3D"google_ads_div_"+b,e=3D"<div =
id=3D"+c+">",f=3Da.google_adContentsBySlot[b];if(f=3D=3Dnull){return}e+=3D=
f._html_;e+=3D"\n</div>\n";document.write(e)};window.google_createDOMIfra=
me=3Dfunction(b,a,c,e){var =
f=3Ddocument.getElementsByTagName("script"),i=3Df[f.length-1],g=3Ddocumen=
t.createElement("iframe");g.id=3D"google_ads_iframe_"+b;g.width=3Da;g.hei=
ght=3Dc;g.vspace=3D0;g.hspace=3D0;g.allowTransparency=3D"true";g.scrollin=
g=3D"no";g.marginWidth=3D0;g.marginHeight=3D0;g.frameBorder=3D0;g.style.b=
order=3D0;i.parentNode.appendChild(g);=0A=
g.contentWindow.document.write(e);g.contentWindow.document.close()};windo=
w.google_createiframe=3Dfunction(b,a,c,e,f){var =
i=3D"google_ads_div_"+b,g=3D"google_ads_iframe_"+b,j=3D"<div =
id=3D"+i+">";j+=3D"<iframe id=3D"+g+' width=3D"'+e+'" height=3D"'+f+'" =
vspace=3D"0" hspace=3D"0" allowtransparency=3D"true" scrolling=3D"no" =
marginwidth=3D"0" marginheight=3D"0" frameborder=3D"0" =
style=3D"border:0px;" =
src=3D"'+a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"=
).replace(/\"/g,"&quot;")+'"';j+=3D' =
onload=3D"'+c+'"';j+=3D"></iframe></div>";=0A=
document.write(j)};var v=3D"google_ads_iframe_".length;function M(b){var =
a=3Db.getAttribute("id"),c=3Da.substr(v,a.length-v);return =
c}window._google_syncAdSlotLoaded=3Dfunction(b){var =
a=3DM(b);window.google_loadiframe(b)};window._google_setAdContentsBySlotF=
orSync=3Dfunction(b){var a=3Dwindow;for(var c in b){var =
e=3Db[c];a.google_adContentsBySlot[c]=3De;if(e=3D=3Dnull||e._empty_){}els=
e =
if(e._expandable_){a.google_createDivWithContent(c)}else{if(navigator.use=
rAgent.indexOf("MSIE ")>0){a.google_adslot_loaded[c]=3Dfalse;var f=3D=0A=
"window._google_syncAdSlotLoaded(this);";a.google_createiframe(c,"about:b=
lank",f,e._width_,e._height_)}else{a.google_createDOMIframe(c,e._width_,e=
._height_,e._html_)}}}};function R(b){var =
a=3D{},c=3Db.split("?"),e=3Dc[c.length-1].split("&");for(var =
f=3D0;f<e.length;f++){var =
i=3De[f].split("=3D");if(i[0]){try{a[i[0].toLowerCase()]=3Di.length>1?(wi=
ndow.decodeURIComponent?decodeURIComponent(i[1].replace(/\+/g," =
")):unescape(i[1])):""}catch(g){}}}return a}function Q(){var =
b=3Dwindow,a=3DR(document.URL);if(a["google_ad_override"]){b.google_ad_ov=
erride=3D=0A=
a["google_ad_override"]}}function H(){var =
b=3D0;if(navigator.plugins&&navigator.mimeTypes.length){var =
a=3Dnavigator.plugins["Shockwave =
Flash"];if(a&&a.description){b=3Da.description.replace(/([a-zA-Z]|\s)+/,"=
").split(".")[0]}}else =
if(navigator.userAgent&&navigator.userAgent.indexOf("Windows =
CE")>=3D0){b=3D3;var c=3D1;while(c){try{c=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+(b+1));b++}catch(e){c=3Dnu=
ll}}}else if(r()){try{var c=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{var =
c=3Dnew ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");=0A=
b=3D6;c.AllowScriptAccess=3D"always"}catch(e){if(b=3D=3D6){return =
b}}try{c=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}if(c!=3Dnull){b=
=3Dc.GetVariable("$version").split(" ")[1].split(",")[0]}}return =
b}Q();P();G();=0A=
})()
------=_NextPart_000_004C_01C79658.B09287F0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://s22.sitemeter.com/js/counter.js?site=s22beyondsalmonstats

// Copyright (c)2006 Site Meter, Inc.=20
// <![CDATA[
var SiteMeter =3D
{
	init:function( sCodeName, sServerName, sSecurityCode )
	{
		SiteMeter.CodeName =3D sCodeName;
		SiteMeter.ServerName =3D sServerName;	=09
		SiteMeter.SecurityCode =3D sSecurityCode;=09
		SiteMeter.IP =3D "137.99.47.52";=09
		SiteMeter.trackingImage =3D new Image();

		if (typeof(g_sLastCodeName) !=3D 'undefined')
			if (g_sLastCodeName =3D=3D sCodeName)
				return;
			=09
		SiteMeter.onPageLoad();
//		if (!SiteMeter.addEvent( window, "load", SiteMeter.displayCounter ))
//			SiteMeter.onPageLoad();

		SiteMeter.addEvent( window, "load", SiteMeter.trackOutClicks );
	},
=09
	aimInit:function(sCodeName)
	{
		var sSubDomain =3D sCodeName.substr(0,3);
		SiteMeter.init( sCodeName, sSubDomain + ".sitemeter.com", "");
	},

	trackOutClicks:function()
	{
		for(var i=3D0;i<document.links.length;i++)
		{
			SiteMeter.addEvent( document.links[i], "click", SiteMeter.onClick );
			SiteMeter.addEvent( document.links[i], "contextmenu", =
SiteMeter.onContextClick );		=09
		}
	=09
	},

	onPageLoad:function()
	{
		var newImage  =3D document.createElement("img");
		var newHref   =3D document.createElement("a")	=09
		var scriptRef =3D SiteMeter.getScriptElement();

		var newIFrame =3D document.createElement("iframe");
    newIFrame.frameBorder=3D0;
		newIFrame.width =3D 0;
		newIFrame.height =3D 0;
		newIFrame.src =3D "http://dg.specificclick.net/?u=3D" + =
escape(document.location) + "&r=3D" + SiteMeter.getReferral();

		var today=3Dnew Date();
		var sTZO=3D(typeof(today.getTimezoneOffset)!=3D'undefined') ? =
today.getTimezoneOffset() : '';
	=09
		newHref.target =3D "_top";
		newHref.href =3D "http://www.sitemeter.com/stats.asp?site=3D" + =
SiteMeter.CodeName;
		newHref.id =3D "idSiteMeterHREF";
	=09
		newImage.border =3D "0";
		newImage.alt =3D "Site Meter";
	=09
		var sImage =3D "http://" + SiteMeter.ServerName + "/meter.asp?site=3D" =
+ SiteMeter.CodeName;=20
		sImage +=3D "&refer=3D"+SiteMeter.getReferral();
		if (SiteMeter.IP !=3D "")
			sImage +=3D "&ip=3D"+SiteMeter.IP;
		sImage +=3D "&w=3D"+window.screen.width;=20
		sImage +=3D "&h=3D"+window.screen.height;
		sImage +=3D "&clr=3D"+window.screen.colorDepth;
		sImage +=3D "&tzo=3D" + sTZO;
		sImage +=3D "&lang=3D"+escape(navigator.language ? navigator.language =
: navigator.userLanguage);
		if (SiteMeter.SecurityCode !=3D "")
			sImage +=3D "&sc=3D"+escape(SiteMeter.SecurityCode);
		sImage +=3D "&pg=3D"+escape(document.location);
		sImage +=3D "&js=3D1&rnd=3D"+Math.random();
	=09
		newImage.src =3D sImage;
		newHref.appendChild(newImage);
		var parentOfScript =3D SiteMeter.getParent( scriptRef );
	=09
		if (parentOfScript){
			parentOfScript.insertBefore(newHref,scriptRef);
			parentOfScript.insertBefore(newIFrame,scriptRef);
		}
		else
			SiteMeter.trackingImage.src =3D sImage;
	},
=09
	logEvent:function(sEvent, sText, sURL )
	{
		if (document.images && !SiteMeter.isLocalURL(sURL))
		{
			var sImg =3D "http://" + SiteMeter.ServerName + "/meter.asp?site=3D" =
+ SiteMeter.CodeName;=20
			sImg +=3D "&e=3D" + sEvent;
			sImg +=3D "&l=3D" + escape(sURL);
			sImg +=3D "&t=3D" + escape(sText);
			sImg +=3D "&pg=3D"+ escape(document.location);
			if (SiteMeter.SecurityCode !=3D "") sImg +=3D =
"&sc=3D"+escape(SiteMeter.SecurityCode);
			if (SiteMeter.IP !=3D "")	sImg +=3D "&ip=3D"+SiteMeter.IP;
			sImg +=3D "&rnd=3D"+Math.random();
			if (SiteMeter.trackingImage)
				SiteMeter.trackingImage.src =3D sImg;
		}
	},
=09
	trimFragment:function(sString)
	{
		return sString.indexOf("#")>0?sString.substring(0, =
sString.indexOf("#")):sString;
	},
=09
	isLocalURL:function(sURL)
	{
		return (SiteMeter.trimFragment(document.location.href) =3D=3D =
SiteMeter.trimFragment(sURL));
	},
=09
	getReferral:function()
	{
	 	var sRef=3D"";
		var g_d =3D document;
		if (typeof(g_frames) !=3D "undefined")
		if (g_frames)
			sRef=3Dtop.document.referrer;
		if ((sRef =3D=3D "") || (sRef =3D=3D "[unknown origin]") || (sRef =
=3D=3D "unknown") || (sRef =3D=3D "undefined"))
		if (document["parent"] !=3D null)=20
			if (parent["document"] !=3D null) // ACCESS ERROR HERE!
				if (parent.document["referrer"] !=3D null)=20
					if (typeof(parent.document) =3D=3D "object")
						sRef=3Dparent.document.referrer;=20
		if ((sRef =3D=3D "") || (sRef =3D=3D "[unknown origin]") || (sRef =
=3D=3D "unknown") || (sRef =3D=3D "undefined"))
		if (g_d["referrer"] !=3D null)=20
			sRef =3D g_d["referrer"];
		if ((sRef =3D=3D "[unknown origin]") || (sRef =3D=3D "unknown") || =
(sRef =3D=3D "undefined"))
			sRef =3D "";
		=09
		return escape(sRef);
	},
=09
	getParent:function(e)
	{
		if (!e)
			return null;
		else
			if (e.parentElement)=20
				return e.parentElement;		=09
			else=09
				if (e.parentNode)
					return e.parentNode;
				else
					return null;
	},
=09
	getTarget:function(e)
	{
		var targ=3Dnull;
		if (!e) var e =3D window.event;
		if (e.target)=20
			targ =3D e.target;
		else if (e.srcElement)=20
			targ =3D e.srcElement;
		if (targ.nodeType)=20
			if (targ.nodeType =3D=3D 3) // Safari bug
				targ =3D targ.parentNode;
		return targ;
	},
=09
	getScriptElement:function()
	{
		var refScript=3Dnull;
		refScript =3D document.getElementById( "SiteMeterScript" );
		if (refScript)
			return refScript;
		=09
		var pageScripts =3D document.getElementsByTagName("script");
		for(var i=3D0;i<pageScripts.length;i++)
		{
			if (pageScripts[i].src)
			{
				var sSource =3D pageScripts[i].src.toLowerCase();
				if (sSource.indexOf("site=3D" + SiteMeter.CodeName) > 0)
					return pageScripts[i];
			}
		}

		return null;
	},
=09
	elementText:function(e)
	{
		do
		{
			var sText =3D (e.text)?e.text:e.innerText;
			if (sText) return sText.substr(0,100);
			if (e.alt) return e.alt;
			if (e.src) return e.src;
			e =3D SiteMeter.getParent(e);
		}
		while (e);
		return "";
	},
=09
	elementURL:function(e)
	{
		do
		{
			if ((e.href) && (e.nodeName.toUpperCase() =3D=3D 'A')) return e.href;
			e =3D SiteMeter.getParent(e);
		}
		while (e);
		return "";
	},
=09
	onClick:function(e)
	{
		var target =3D SiteMeter.getTarget(e);
		SiteMeter.logEvent( "click", SiteMeter.elementText(target), =
SiteMeter.elementURL(target) );
	},
=09
	onContextClick:function(e)
	{
		var target =3D SiteMeter.getTarget(e);
		SiteMeter.logEvent( "context", SiteMeter.elementText(target), =
SiteMeter.elementURL(target) );
	},

	addEvent:function( obj, sEvent, func )
	{
		if (obj.addEventListener)
		    obj.addEventListener(sEvent, func, false);
		else=20
			if (obj.attachEvent)=09
			   obj.attachEvent( "on"+sEvent, func );
			else
				return false;
		return true;
	}

}

SiteMeter.init('s22beyondsalmonstats', 's22.sitemeter.com', '');

var g_sLastCodeName =3D 's22beyondsalmonstats';
// ]]>

------=_NextPart_000_004C_01C79658.B09287F0--
