<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>AddThis utility frame</title></head><body style="background-color: transparent;"><script type="text/javascript">/* <![CDATA[ */
var p=window.location.hash,swf_p=false,d=document,ua=navigator.userAgent.toLowerCase(),ffx=/firefox/.test(ua),msi=(/msie/.test(ua))&&!(/opera/.test(ua)),ie7=/msie 7.0/.test(ua),_duc=decodeURIComponent,_ate={swf:"//bin.clearspring.com/at/v/1/button1.6.swf",asetup:function(u){tellParent("uid-"+u+(sshs?";ssh-"+sshs:""));}};if(p.length){if(p.toLowerCase().indexOf("http%3a")===0){p=_duc(p);}if(p.substr(0,1)=="#"){p=p.substr(1);}a=p.split("&");for(var k in a){p=a[k].split("=");if(p.length==2){var v=_duc(p[1]);switch(p[0]){case"wpl":window.addthis_wpl=v;break;case"swfp":window.swf_p=(v=="1");break;}}}}var rck=function(k){var d=document;if(d.cookie){var ck=d.cookie.split(";");for(var i=0;i<ck.length;i++){var c=ck[i],x=c.indexOf(k+"=");if(x>=0){return c.substring(x+(k.length+1));}}}return;},sshs=rck("sshs"),tellParent=function(m){if(window.parent&&window.postMessage){window.parent.postMessage(m,"*");}else{if(addthis_wpl){var a=(addthis_wpl.split("#"))[0];if(window.parent==window.top||!ie7){window.parent.location.href=a+"#at"+m;}}}};if(!swf_p){if(sshs){tellParent("ssh-"+sshs);}}else{var addparam=function(o,n,v){var c=d.createElement("param");c.name=n;c.value=v;o.appendChild(c);};window.onload=function(){var _e=d.createElement("div");var o=d.createElement("object");o.id="atff";if(msi){o.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";addparam(o,"movie",_ate.swf);}else{o.data=_ate.swf;o.width=o.height="1px";o.quality="high";o.type="application/x-shockwave-flash";}addparam(o,"wmode","transparent");addparam(o,"allowScriptAccess","always");_e.appendChild(o);d.body.insertBefore(_e,d.body.firstChild);if(msi){_e.innerHTML+=" ";}};}/* ]]> */</script></body></html>