From: <Mit Windows Internet Explorer 8 gespeichert>
Subject: Packaging Europe - New product from APS: next generation of thermal inkjet printer apsolute
Date: Tue, 2 Aug 2011 16:20:22 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_007D_01CC5130.144666E0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6109

This is a multi-part message in MIME format.

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: =?utf-8?Q?mhtml:file://C:\Dokumente_und_Ei?=
	=?utf-8?Q?nstellungen\Administrator\Eigene?=
	=?utf-8?Q?_Dateien\Birgit\Presse\Ver=C3=B6ffent?=
	=?utf-8?Q?lichungen\Ausland\Packaging_Euro?=
	=?utf-8?Q?pe_-_New_product_from_APS_next_g?=
	=?utf-8?Q?eneration_of_thermal_inkjet_prin?=
	=?utf-8?Q?ter_apsolute.mht?=

=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 xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Packaging =
Europe - New product from APS: next generation of thermal inkjet printer =
apsolute</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META name=3Ddescription=20
content=3D"The World of European Packaging. Includes news, events, =
designs, branding and innovations.">
<META name=3Dkeywords=20
content=3D"Packaging machinery, Additives, Additives, Adhesive, =
Aerosols, Alcan, Alcoa, Ancilliaries, Aplix, Bags, Banding, Beverages, =
Board, Bottles, Boxes, Breaking News, Budelpack, Cans, Caps, Cartons, =
Ciba, Closures, Coatings, Coding, Collating, Composites, Consultancy, =
Contract Packing, Converted Packaging, Converting, Corrugated, Corus, =
Cosmetics packaging, Crates, Crown, Decorative Sleeves, Design, Devices, =
Dispensers, Display, Distribution, Drinks packaging, Drums, DS Smith, =
Eastern Europe, Elopack, Environment, EU, Europe, FBB, Filling, Films, =
Flexibles, Flow-wrap, FMCG, FMCG Packaging, Foils, Food packaging, =
France, Frozen Foods, Germany, Glass, Handling, HFFS, Hot Melt Glue, =
Hungary, Industrial packaging, Innovation, Jars, Labelling, Labels, =
Laminating, Leaflets, Linpac, Metal, Minerals, Mollins, Mondi, =
Packaging, Packaging automation, Packaging Conferences, Packaging =
Consultancy, Packaging design, Packaging development, Packaging Events, =
Packaging Information, Packaging Innovatoin, Packaging legislation, =
Packaging News, Packaging Organisations, Packaging statistics, Packaging =
testing, Packing, Packs, Palletising, Pallets, Paper, Pharmaceutical =
Packaging, Phials, Pira, Pira International, Plastics, Poland, Polimoon, =
Polyethylene, Polyolefins, Polypropylene, Polystyrene, POS, Pouches, =
Production, PVC, Raw materials, Retail packaging, Rexam, RPC, Russia, =
SCA, Shippers, shrinkwrap, Sigpack, Soild Board, Stanelco, Storaenso, =
Stretchwrap, Sweden, Testing, Tetrapak, Tins, Trays, UK, VFFS, Waste =
Management, Weidenhammer, Wood"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.packagingeurope.com/css/homepageFluid_optimisedNew.css=
"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.packagingeurope.com/css/changes.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.packagingeurope.com/css/skin.css"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.packagingeurope.com/css/searchResults.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.packagingeurope.com/css/reset.css"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.packagingeurope.com/css/directories.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.packagingeurope.com/css/profiles.css"><!--<link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/homepageFluid_optimise=
dNew.css" rel=3D"stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/changes.css" =
rel=3D"Stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/skin.css" =
rel=3D"Stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/searchResults.css" =
rel=3D"stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/reset.css" =
rel=3D"stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/directories.css" =
rel=3D"Stylesheet" type=3D"text/css" /><link =
href=3D"../../%3C%25=3D%20GetAplPath()%20%25%3Ecss/profiles.css" =
rel=3D"Stylesheet" type=3D"text/css" /><link =
href=3D"../../css/calendar.css" rel=3D"stylesheet" type=3D"text/css" />
    --><!--
  jQuery library
-->
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/Packaging-Europe-News/42010/js/jque=
ry-1.4.2.min.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
    var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
try{
    var pageTracker =3D _gat._getTracker("UA-4984572-3");
    pageTracker._initData();
    pageTracker._trackPageview();
    }
    catch
    {

    }
</SCRIPT>

<SCRIPT type=3Dtext/javascript =
src=3D"http://www.google-analytics.com/urchin.js">
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
    _uacct =3D "UA-4984572-3";
    urchinTracker();
</SCRIPT>
<!-- YAHOO Global Object source file -->
<SCRIPT type=3Dtext/javascript=20
src=3D"http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js"></SCRIPT>=


<SCRIPT type=3Dtext/javascript=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht"> </SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht"> </SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/yui/build/yahoo-dom-event/yahoo-dom=
-event.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/yui/build/animation/animation-min.j=
s"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/newsticker.js"></SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19088"></HEAD>
<BODY><!--// Packaging Europe Invisible Tags. //-->
<DIV style=3D"HEIGHT: 2px" id=3Dinfill></DIV><!--// End of Invisible =
Tags. //-->
<FORM id=3Dform1 method=3Dpost=20
action=3DNew-product-from-APS-next-generation-of-thermal-inkjet-printer-a=
psolute.html?nNewsID=3D42010>
<DIV class=3DaspNetHidden><INPUT id=3D__EVENTTARGET type=3Dhidden =
name=3D__EVENTTARGET>=20
<INPUT id=3D__EVENTARGUMENT type=3Dhidden name=3D__EVENTARGUMENT> <INPUT =

id=3D__VIEWSTATE=20
value=3D/wEPDwUKMTk2OTYwNzExNQ8WAh4XbGJsTW9zdFJlYWRTdG9yaWVzVGl0bGUFEU1PU=
1QgUkVBRCBTVE9SSUVTFgJmD2QWAmYPZBYCAgMPZBYGAgMPZBYKAgEPZBYMAgEPDxYGHg1BbH=
Rlcm5hdGVUZXh0BQZHZXJtYW4eB1Rvb2xUaXAFBmdlcm1hbh4ISW1hZ2VVcmwFFi9JbWFnZXM=
yMDExL3RvcF9kZS5wbmdkZAIDDw8WBh8BBQdJdGFsaWFuHwIFB2l0YWxpYW4fAwUWL0ltYWdl=
czIwMTEvdG9wX0lULnBuZ2RkAgUPDxYGHwEFBkZyZW5jaB8CBQZmcmVuY2gfAwUWL0ltYWdlc=
zIwMTEvdG9wX0ZSLnBuZ2RkAgcPDxYGHwEFB1NwYW5pc2gfAgUHc3BhbmlzaB8DBRYvSW1hZ2=
VzMjAxMS90b3BfRVMucG5nZGQCCQ8PFgYfAQUHUnVzc2lhbh8CBQdydXNzaWFuHwMFFi9JbWF=
nZXMyMDExL3RvcF9SVS5wbmdkZAILDw8WBh8BBQdFbmdsaXNoHwIFB2VuZ2xpc2gfAwUWL0lt=
YWdlczIwMTEvdG9wX1VLLnBuZ2RkAgMPZBYIAgEPDxYEHgRUZXh0BQRIb21lHgtOYXZpZ2F0Z=
VVybAUNL0RlZmF1bHQuYXNweGRkAgMPDxYEHwQFCEFib3V0IFVzHwUFDS9BYm91dFVzLmFzcH=
hkZAIFDw8WBB8EBQpDb250YWN0IFVzHwUFDy9Db250YWN0VXMuYXNweGRkAgcPDxYEHwQFCk1=
lZGlhIFBhY2sfBQUOL21lZGlhcGFjay5wZGZkZAIFD2QWAgIBD2QWAgIBDw9kFgIeB29uZm9j=
dXMFEHRoaXMudmFsdWUgPSAnJztkAgcPZBYEAgEPDxYCHwMFFC9pbWFnZXMyMDExL2xvZ28uc=
G5nZGQCAw9kFgJmD2QWAgIBDxYCHwQF2QE8YSBocmVmPSJodHRwOi8vd3d3LnBhY2thZ2luZ2=
V1cm9wZS5jb20vYWRjbGljay5hc2h4P2FkbGluaz1odHRwOi8vd3d3Lm1vbmRpZ3JvdXAuY29=
tL2dvZ3JlZW4vJmFkbG9jYXRpb249SG9tZVBhZ2VUb3BNT05ESUdSRUVOJmFkdHlwZT1Ib21l=
UGFnZVRvcE1PTkRJR1JFRU4iID48aW1nIHNyYz0iQWR2ZXJ0QXNzZXRzL2dvZ3JlZW5fNTAwe=
DcwX2ZhbGxiYWNrLmpwZyIgLz48L2E+ZAIJD2QWGgIBDw8WAh8FBQ0vZGVmYXVsdC5hc3B4ZB=
YCAgEPDxYCHwQFBGhvbWVkZAIDDw8WAh8FBRAvTmV3c1NlYXJjaC5hc3B4ZBYCAgEPDxYCHwQ=
FBG5ld3NkZAIFDw8WAh8EBQRqb2JzZGQCBw8PFgIfBQUjL1BhY2thZ2luZy1tYXJrZXQtaW50=
ZWxsaWdlbmNlLmFzcHhkFgICAQ8PFgIfBAUTbWFya2V0IGludGVsbGlnZW5jZWRkAgkPDxYCH=
wUFFC9NYWdhemluZS9pbmRleC5odG1sZBYCAgEPDxYCHwQFCG1hZ2F6aW5lZGQCCw8PFgIfAw=
UZL2ltYWdlczIwMTEvRWxpdGVTdXBwLnBuZ2RkAg0PDxYCHwUFFC9FbGl0ZVN1cHBsaWVycy5=
hc3B4ZBYCAgEPDxYCHwQFCWFkdmVydGlzZWRkAg8PDxYCHwUFDS9kZWZhdWx0LmFzcHhkFgJm=
Dw8WAh8DBTJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9ob21lL=
nBuZ2RkAhEPDxYCHwUFEC9OZXdzU2VhcmNoLmFzcHhkFgJmDw8WAh8DBTJodHRwOi8vd3d3Ln=
BhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9uZXdzLnBuZ2RkAhMPDxYCHwMFMmh0dHA=
6Ly93d3cucGFja2FnaW5nZXVyb3BlLmNvbS9pbWFnZXMyMDExL2pvYnMucG5nZGQCFQ8PFgIf=
BQUjL1BhY2thZ2luZy1tYXJrZXQtaW50ZWxsaWdlbmNlLmFzcHhkFgJmDw8WAh8DBTJodHRwO=
i8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9kYXRhLnBuZ2RkAhcPDxYCHw=
UFFC9NYWdhemluZS9pbmRleC5odG1sZBYCZg8PFgIfAwU2aHR0cDovL3d3dy5wYWNrYWdpbmd=
ldXJvcGUuY29tL2ltYWdlczIwMTEvbWFnYXppbmUucG5nZGQCGQ8PFgIfBQUgL01lZGlhcGFj=
azIwMTEvbWVkaWFwYWNrMjAxMS5wZGZkFgJmDw8WAh8DBTdodHRwOi8vd3d3LnBhY2thZ2luZ=
2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9hZHZlcnRpc2UucG5nZGQCCQ9kFh4CAQ9kFgJmD2QWAg=
IBDxYCHgdWaXNpYmxlaGQCAw9kFgICAw8PFgIfBAWuAzxIMz5QYWNrYWdpbmcgRXVyb3BlIEh=
hcyBvdGhlciBzdG9yaWVzIHJlbGF0ZWQgdG8gdGhlIG5ld3Mgc3Ryb3kgeW91IGFyZSB2aWV3=
aW5nOjwvSDM+PGRpdiBpZD0iZGF0YUJveCIgY2xhc3M9ImJveE5vSG92ZXIgd2hpdGVCRyBtY=
XJnaW5Cb3R0b20yNSIgc3R5bGU9Im1hcmdpbjo1cHg7cGFkZGluZzo1cHg7Ij48YnIvPjxzcG=
FuIHN0eWxlPSJjb2xvcjpyZWQ7Ij4xMTAzNzwvc3Bhbj4gU3RvcmllcyBSZWxhdGluZyB0byB=
0aGUgJ0Rlc2lnbiAmIEJyYW5kaW5nJyBEZXBhcnRtZW50IDxici8+fDxjZW50ZXI+PGEgaHJl=
Zj0iaHR0cDovL3d3dy5wYWNrYWdpbmdldXJvcGUuY29tL05ld3NTZWFyY2guYXNweD9zcmNoc=
3RyPSZkZXB0PTUiPlZpZXcgTm93PC9hPjwvY2VudGVyPjxici8+KHJlYWQgMzEyOTMwOCB0aW=
1lcyk8YnIvPjxici8+PC9kaXY+PGJyLz5kZAIFD2QWAgIBDw8WAh8FBQ8vQ29udGFjdFVzLmF=
zcHhkZAIHD2QWBAIBDw8WAh8EBRBDaG9vc2UgeW91ciBuZXdzZGQCAw9kFgJmD2QWCgIBDw8W=
Ah8EBVNVc2UgdGhlIGRyb3AgZG93biBtZW51IGJlbG93IHRvIGZpbHRlciBzdG9yaWVzIHRoZ=
SB3YXkgeW91IHdhbnQgLSB3aGVuIHlvdSB3YW50IGl0IWRkAgMPEA8WCB8CBRRGaWx0ZXIgYn=
kgZGVwYXJ0bWVudB4ORGF0YVZhbHVlRmllbGQFAklEHg1EYXRhVGV4dEZpZWxkBQlMaXN0X05=
hbWUeC18hRGF0YUJvdW5kZ2QQFQoURmlsdGVyIGJ5IGRlcGFydG1lbnQMQXBwb2ludG1lbnRz=
FUNvbW1lcmNlICYgUHVyY2hhc2luZxRDb25mZXJlbmNlcyAmIEV2ZW50cwlDb3Jwb3JhdGURR=
GVzaWduICYgQnJhbmRpbmcZRW52aXJvbm1lbnQgJiBMZWdpc2xhdGlvbhZSZXNlYXJjaCAmIE=
RldmVsb3BtZW50F1RlY2hub2xvZ3kgJiBJbm5vdmF0aW9uBU90aGVyFQoURmlsdGVyIGJ5IGR=
lcGFydG1lbnQBMQEyATMBNAE1ATYBNwE4ATkUKwMKZ2dnZ2dnZ2dnZ2RkAgUPEA8WCB8CBRBG=
aWx0ZXIgYnkgTWFya2V0HwgFAklEHwkFCUxpc3RfTmFtZR8KZ2QQFQ0QRmlsdGVyIGJ5IE1hc=
mtldAtESVkgJiBUcmFkZRJEcmlua3MgLSBhbGNvaG9saWMWRHJpbmtzIC0gbm9uLWFsY29ob2=
xpYwpFbGVjdHJpY2FsBEZNQ0cERm9vZBJIb3VzZWhvbGQgUHJvZHVjdHMTSW5kdXN0cmlhbCB=
Qcm9kdWN0cxVQZXQgJiBBbmltYWwgUHJvZHVjdHMOUGhhcm1hY2V1dGljYWwWVG9pbGV0cmll=
cyAmIENvc21ldGljcwVPdGhlchUNEEZpbHRlciBieSBNYXJrZXQBMQEyATMBNAE1ATYBNwE4A=
TkCMTACMTECMTIUKwMNZ2dnZ2dnZ2dnZ2dnZ2RkAgcPEA8WCB8CBRJGaWx0ZXIgYnkgSW5kdX=
N0cnkfCAUCSUQfCQUJTGlzdF9OYW1lHwpnZBAVCRJGaWx0ZXIgYnkgSW5kdXN0cnkIQ2VyYW1=
pY3MJRmxleGlibGVzBUdsYXNzBU1ldGFsDVBhcGVyICYgQm9hcmQIUGxhc3RpY3MEV29vZAVP=
dGhlchUJEkZpbHRlciBieSBJbmR1c3RyeQExATIBMwE0ATUBNgE3ATgUKwMJZ2dnZ2dnZ2dnZ=
GQCCQ8QDxYIHwIFEUZpbHRlciBieSBDb3VudHJ5HwgFAklEHwkFCUxpc3RfTmFtZR8KZ2QQFT=
oRRmlsdGVyIGJ5IENvdW50cnkGRXVyb3BlDVJlc3Qgb2YgV29ybGQHQWxiYW5pYQdBbmRvcnJ=
hB0FybWVuaWEHQXVzdHJpYQpBemVyYmFpamFuB0JlbGFydXMHQmVsZ2l1bRJCb3NuaWEtSGVy=
emVnb3ZpbmEGQnJhemlsCEJ1bGdhcmlhBkNhbmFkYQVDaGluYQNDSVMHQ3JvYXRpYQZDeXByd=
XMOQ3plY2ggUmVwdWJsaWMHRGVubWFyawdFc3RvbmlhB0ZpbmxhbmQGRnJhbmNlB0dlb3JnaW=
EHR2VybWFueQZHcmVlY2UHSHVuZ2FyeQdJY2VsYW5kBUluZGlhB0lyZWxhbmQFSXRhbHkFSmF=
wYW4GTGF0dmlhDUxpZWNodGVuc3RlaW4JTGl0aHVhbmlhCkx1eGVtYm91cmcJTWFjZWRvbmlh=
BU1hbHRhBk1leGljbwdNb2xkb3ZhBk1vbmFjbwpNb250ZW5lZ3JvC05ldGhlcmxhbmRzBk5vc=
ndheQZQb2xhbmQIUG9ydHVnYWwHUm9tYW5pYQZSdXNzaWEGU2VyYmlhCFNsb3Zha2lhCFNsb3=
ZlbmlhBVNwYWluBlN3ZWRlbgtTd2l0emVybGFuZAZUdXJrZXkHVWtyYWluZQ5Vbml0ZWQgS2l=
uZ2RvbQNVU0EVOhFGaWx0ZXIgYnkgQ291bnRyeQIzNQIzNgI0MgMxMDECNDkCMTICNTACNDMB=
MQIzOQMxMDkCMzEDMTA0AzEwNwMxMDICMzgCMTMCMTQBMgIxNQEzATQCNDgBNQIxNgIxNwI0N=
gMxMTACMTgBNgMxMDYCMTkDMTAzAjIwAjIxAjQxAjIyAzEwOAI0NQIzMAIyOQE3ATgCMjMCMj=
QCMzQCMzcCNDACMjUCMjYBOQIxMAIyOAI0NwI0NAIxMQMxMDUUKwM6Z2dnZ2dnZ2dnZ2dnZ2d=
nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2RkAgkPZBYCZg9k=
FgICAQ8WAh8HaGQCCw9kFgJmD2QWDAIBDw8WAh8EBQ1GZWF0dXJlZCBKb2JzZGQCAw8PFgIfB=
AUMU2VlIGFsbCBqb2JzZGQCBQ9kFgICAQ8PZBYCHwYFEHRoaXMudmFsdWUgPSAnJztkAgcPZB=
YEAgcPZBYCZg8PFgIfBAUHRGV0YWlsc2RkAgkPFgIeC18hSXRlbUNvdW50AgUWCmYPZBYCZg8=
VBC5QYWNrYWdpbmcgRGVzaWduIGFuZCBJbm5vdmF0aW9uIE1hbmFnZXIgLSBGb29kIlVuaXRl=
ZCBLaW5nZG9tLCBOb3J0aCBXZXN0IEVuZ2xhbmQcJiMxNjM7MzUwMDAgLSAmIzE2Mzs0NTAwM=
CBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29tL2pvYmJvYXJkL2NhbmRzL2pvYn=
ZpZXcuYXNwP3Y9NDY4ODI0ZAIBD2QWAmYPFQQZU2VuaW9yIFBhY2thZ2luZyBEZXNpZ25lcid=
Vbml0ZWQgS2luZ2RvbSwgTG9uZG9uICZhbXA7IFNvdXRoIEVhc3QcJiMxNjM7NDUwMDAgLSAm=
IzE2Mzs0NTAwMCBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29tL2pvYmJvYXJkL=
2NhbmRzL2pvYnZpZXcuYXNwP3Y9NDcwMjA1ZAICD2QWAmYPFQQZUGFja2FnaW5nIFByb2plY3=
QgTWFuYWdlcidVbml0ZWQgS2luZ2RvbSwgTG9uZG9uICZhbXA7IFNvdXRoIEVhc3QcJiMxNjM=
7MzMwMDAgLSAmIzE2Mzs0MDAwMCBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29t=
L2pvYmJvYXJkL2NhbmRzL2pvYnZpZXcuYXNwP3Y9NTIxMzAyZAIDD2QWAmYPFQQ1UGxhbnQgT=
WFuYWdlciDigJMgQmVsZ2l1bSDigJMgUmlnaWQgUGxhc3RpYyBQYWNrYWdpbmcaQmVsZ2l1bS=
wgVmFyaW91cyAtIEJlbGdpdW0tJiMxNjM7Q29tcGV0aXRpdmUgKyBQZXJmb3JtYW5jZSBSZWx=
hdGVkIEJvbnVzQ2h0dHA6Ly9qb2JzLnBhY2thZ2luZ2V1cm9wZS5jb20vam9iYm9hcmQvY2Fu=
ZHMvam9idmlldy5hc3A/dj00NjM0NjVkAgQPZBYCZg8VBBNXZWIgLyBBU1AgRGV2ZWxvcGVyH=
FVuaXRlZCBLaW5nZG9tLCBFYXN0IEVuZ2xhbmQDRE9FQ2h0dHA6Ly9qb2JzLnBhY2thZ2luZ2=
V1cm9wZS5jb20vam9iYm9hcmQvY2FuZHMvam9idmlldy5hc3A/dj01MzQ1NzZkAgkPDxYCHwQ=
FDFNlZSBhbGwgam9ic2RkAgsPDxYCHwQFD1NlYXJjaCBmb3Igam9ic2RkAg0PZBYCZg9kFgIC=
AQ8WAh8HaGQCEQ9kFgJmD2QWAgIBDxYCHwQFsQE8YSBocmVmPSJodHRwOi8vd3d3LnBhY2thZ=
2luZ2V1cm9wZS5jb20vYWRjbGljay5hc2h4P2FkbGluaz1odHRwOi8vd3d3Lndlbmdsb3IuY2=
9tJmFkbG9jYXRpb249TmV3c1dlbmdsb3ImYWR0eXBlPU5ld3NXZW5nbG9yIiA+PGltZyBzcmM=
9IkFkdmVydEFzc2V0cy8xNTJ4MTUyX1dlbmdsb3IuanBnIiAvPjwvYT5kAhMPZBYoAgEPDxYC=
HwQFCEludGVyYWN0ZGQCAw8PFgIfBQUNL0Fib3V0VXMuYXNweGQWAmYPDxYCHwQFCEFib3V0I=
HVzZGQCBQ8PFgIfBQUPL0NvbnRhY3RVcy5hc3B4ZBYCZg8PFgIfBAUKQ29udGFjdCB1c2RkAg=
cPZBYCZg8PFgIfBAULU3VibWl0IG5ld3NkZAIJDw8WAh8EBQROZXdzZGQCCw8PFgIfBQUQL05=
ld3NTZWFyY2guYXNweGQWAmYPDxYCHwQFC05ld3Mgc2VhcmNoZGQCDQ8PFgIfBQUQL05ld3NT=
ZWFyY2guYXNweGQWAmYPDxYCHwQFEFBvcHVsYXIgYXJ0aWNsZXNkZAIPDw8WAh8EBQRKb2JzZ=
GQCEQ9kFgJmDw8WAh8EBQtTZWFyY2ggam9ic2RkAhMPZBYCZg8PFgIfBAUKUmVjcnVpdGVyc2=
RkAhUPDxYCHwQFE01hcmtldCBpbnRlbGxpZ2VuY2VkZAIXD2QWAmYPDxYCHwQFB1JlcG9ydHN=
kZAIZDw8WAh8FBSYvUGFja2FnaW5nLURpcmVjdG9yaWVzLWFuZC1ndWlkZXMuYXNweGQWAmYP=
DxYCHwQFFERpcmVjdG9yaWVzICYgZ3VpZGVzZGQCGw8PFgIfBQUXL1BhY2thZ2luZ0J1eWVyc=
01JLmFzcHhkFgJmDw8WAh8EBQ9CdXllcnMgZGF0YWJhc2VkZAIdD2QWAmYPDxYCHwQFEVBhY2=
thZ2luZyBtYW5hZ2VyZGQCHw8PFgIfBQUQL05ld3NTZWFyY2guYXNweGQWAmYPDxYCHwQFCEF=
ydGljbGVzZGQCIQ8PFgIfBAUITWFnYXppbmVkZAIjDw8WAh8FBQkvTWFnYXppbmVkFgJmDw8W=
Ah8EBQ5MYXRlc3QgZWRpdGlvbmRkAiUPDxYCHwUFFS9NYWdhemluZUFyY2hpdmUuYXNweGQWA=
mYPDxYCHwQFC0JhY2sgaXNzdWVzZGQCJw9kFgJmD2QWAgIBDxYCHwQF4AE8YnIvPjxkaXYgc3=
R5bGU9IndpZHRoOjE1MHB4O2JvcmRlcjogc29saWQgMXB4ICNiYWQ2ZTI7Ij48b2JqZWN0IHd=
pZHRoPSIxNTAiIGhlaWdodD0iNjAwIj4gICA8ZW1iZWQgc3JjPSJBRFZFUlRBU1NFVFMvcHJp=
cGxha2Jhbm5lci5zd2YiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiB3a=
WR0aD0iMTUwIiBoZWlnaHQ9IjYwMCI+PC9lbWJlZD4gPC9vYmplY3Q+IDwvZGl2PmQCFQ9kFg=
JmD2QWAgIBDxYCHwdoZAIXD2QWAmYPZBYCAgEPFgIfB2hkAhkPZBYCZg9kFgICAQ8WAh8HaGQ=
CGw9kFgJmD2QWAgIBDxYCHwdoZAIdD2QWAmYPZBYCAgEPFgIfB2hkAh8PZBYYAgEPDxYCHwQF=
SE5ldyBwcm9kdWN0IGZyb20gQVBTOiBuZXh0IGdlbmVyYXRpb24gb2YgdGhlcm1hbCBpbmtqZ=
XQgcHJpbnRlciBhcHNvbHV0ZWRkAgMPDxYCHwMFHGltYWdlcy9uZXdzZmxhZ3MvZXVfZmxhZy=
5wbmdkZAIFDw8WAh8EBRMyMS8wNy8yMDExIDEzOjAyOjQ0ZGQCBw8WAh8LAgEWAmYPZBYCAgE=
PDxYEHwUFKk5ld3NEZXRhaWxzLmFzcHg/bk5ld3NJRD00MjAxMCZzd2l0Y2hsYW49MR8DBRwv=
SU1BR0VTTkVXL0ZMQUdTL1VLX2ZsYWcuUE5HZGQCCQ8PFgIfBAUMVHJhbnNsYXRpb25zZGQCC=
w8PFgIfBQWAAm1haWx0bzo/c3ViamVjdD1OZXdzIHN0b3J5IGZyb20gUGFja2FnaW5nIEV1cm=
9wZSZib2R5PUEgZnJpZW5kIHJlYWQgdGhpcyBuZXdzIHN0b3J5IG9uIFBhY2thZ2luZyBFdXJ=
vcGUgYW5kIHRob3VnaHQgaXQgbWF5IGJlIG9mIGludGVyZXN0IHRvIHlvdS4gUGxlYXNlIGNs=
aWNrIHRoaXMgbGluayB0byByZWFkIHRoZSBmdWxsIHN0b3J5LiAgIGh0dHA6Ly93d3cucGFja=
2FnaW5nZXVyb3BlLmNvbS9OZXdzRGV0YWlscy5hc3B4P25OZXdzSUQ9NDIwMTBkFgICAQ8PFg=
IfBAURRW1haWwgdG8gYSBmcmllbmRkZAINDw8WAh8FBSEvUHJpbnRGcmllbmRseS5hc3B4P25=
OZXdzSUQ9NDIwMTBkFgICAQ8PFgIfBAUPUHJpbnQgdGhpcyBwYWdlZGQCDw8PFggeBVdpZHRo=
GwAAAAAAAAAAAQAAAB4GSGVpZ2h0GwAAAAAAAAAAAQAAAB4EXyFTQgKAAx8HaGRkAhEPDxYCH=
wQFwANUaGFua3MgdG8gaXRzIG11bHRpcGxlIGhlYWQgY29uY2VwdCBhbmQgdGhlIGJpZyBjaG=
9pY2Ugb2YgaW5rcyBhcHNvbHV0ZSBjYW4gZnVsZmlsbCB3aXRoIG9ubHkgb25lIGNvbnRyb2x=
sZXIgdGhlIG1vc3QgZGlmZmVyZW50IG1hcmtpbmcgbmVlZHMgb2ZmZXJpbmcgYSBzb2x1dGlv=
biBmb3IgYWxtb3N0IGFueSBjdXN0b21lciBhbmQgaW5kdXN0cmlhbCBhcHBsaWNhdGlvbi4gU=
HJpbnRpbmcgd2l0aCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZmFzdC1kcnlpbmcgaW5rcywgYX=
Bzb2x1dGUgcGVybWl0cyBwcmludGluZyBvbiBwb3JvdXMgKGNhcnRvbiwgcGFwZXLigKYpIGF=
uZCBub24tcG9yb3VzIHN1YnN0cmF0ZXMgKGNvYXRlZCwgdmFybmlzaGVkIGNhcmRib2FyZCwg=
YWx1bWluaXVtLCBwbGFzdGljIGZpbG1z4oCmKSBkaXJlY3RseSBvbnRvIHRoZSBwcm9kdWN0I=
G9yIGl0cyBwcmltYXJ5ZGQCEw8PFgIfBAWwDzxicj5hbmQgc2Vjb25kYXJ5IHBhY2thZ2luZy=
48YnI+PGJyPlRoZSBuZXcgYXBzb2x1dGUgZ2VuZXJhdGlvbiwgd2hpY2ggd2FzIHByZXNlbnR=
lZCBmb3IgdGhlIGZpcnN0IHRpbWUgYXQgSW50ZXJwYWNrIDIwMTEsIGlzIGRpc3Rpbmd1aXNo=
ZWQgYnkgYWR2YW5jZWQgZnVuY3Rpb25zIGFuZCBhIHNpbXBsaWZpZWQgb3BlcmF0aW9uLiBJd=
CBwcm92aWRlcyBtYW55IHNvZnR3YXJlIGZlYXR1cmVzIHdoaWNoIGltcGxlbWVudCBjdXJyZW=
50IG1hcmtldCByZXF1aXJlbWVudHMgYW5kIG9mZmVyIGN1c3RvbWVycyBtb3JlIGNvbWZvcnQ=
gYW5kIHNhZmV0eSBzdWNoIGFzIGFuIGF1dG9tYXRpYyBpbmsgdHlwZSByZWNvZ25pdGlvbiwg=
YW4gYWNjdXJhdGUmbmJzcDs8YnI+bWVhc3VyZW1lbnQgb2YgaW5rIGxldmVsLCBhZHZhbmNlZ=
CBjb250cm9sIGFuZCBkYXRhIHRyYW5zZmVyIGZ1bmN0aW9ucyBldGMuPGJyPjxicj5UaGUgbm=
V3IGFwc29sdXRlIHByaW50ZXIgaXMgYXZhaWxhYmxlIHdpdGggYSBuZXcgY29tcGFjdCBwcml=
udGhlYWQgZm9yIHNwYWNlIHNhdmluZyBpbnN0YWxsYXRpb25zIG9uIHRoZSBwcm9kdWN0aW9u=
IGxpbmUgb3IgaW4gdGhlIHN5c3RlbS4gVGhlIG5ldyBwcmludGhlYWQgcHJvdmlkZXMgYWR2Y=
W5jZWQgY29tbXVuaWNhdGlvbiBmZWF0dXJlcyB3aGljaCBhbG1vc3QgZXhjbHVkZSBvcGVyYX=
Rpb25hbCBlcnJvcnMgYnkgdGhlIHVzZXIuIFRoZSBpbmsgcG9ydGZvbGlvIGZvciB0aGlzIHB=
yaW50ZXIgaGFzIGJlZW4gaW5jcmVhc2VkIGJ5IGZpdmUgbmV3IGlua3MuPGJyPjxicj5Zb3Vy=
IGJlbmVmaXRzIGF0IGEgZ2xhbmNlOjxicj48YnI+VGhlcm1hbCBJbmtqZXQgVGVjaG5vbG9ne=
SBmb3IgcG9yb3VzIGFuZCBub24gcG9yb3VzIHN1cmZhY2VzPGJyPjxicj7igKIgZmFzdCBkcn=
lpbmcgaW5rcyBmb3IgcGxhc3RpY3MsIG1ldGFsLCBjb2F0ZWQgYW5kIHZhcm5pc2hlZCBjYXJ=
0b24uLi48YnI+4oCiIGRyeWluZyB0aW1lICZsdDsgMiBzZWM8YnI+4oCiIGdvb2QgcnVubmlu=
ZyBhbmQgYWRoZXNpb24gY2hhcmFjdGVyaXN0aWNzIG9uIG5vbi1wb3JvdXMgYW5kIHBvcm91c=
yBzdXJmYWNlczxicj48YnI+T25lIGNvbnRyb2xsZXIgLSB1cCB0byA0IGRpZmZlcmVudCBhcH=
BsaWNhdGlvbnM8YnI+PGJyPuKAoiBzaW11bHRhbmVvdXMgcHJpbnRpbmcgb24gdXAgdG8gNCB=
wcm9kdWN0aW9uIGxpbmVzPGJyPuKAoiBkaWZmZXJlbnQgbWVzc2FnZXMsIGlua3MsIHByb2R1=
Y3Rpb24gc3BlZWQuLi48YnI+PGJyPk5vIHJlcGFpcnMsIHplcm8gbWFpbnRlbmFuY2U8YnI+P=
GJyPuKAoiBpbmsgY2FydHJpZGdlIHN5c3RlbSB3aXRob3V0IHdlYXJpbmcgcGFydHM8YnI+4o=
CiIG5vIGRvd250aW1lPGJyPuKAoiBubyByZXBhaXIgY29zdHM8YnI+PGJyPkNsZWFuIGFuZCB=
lYXN5IG9wZXJhdGlvbjxicj48YnI+4oCiIG9ubHkgZW52aXJvbm1lbnRhbGx5IHJlc3BvbnNh=
YmxlIGlua3M8YnI+4oCiIG5vIG5lZWQgZm9yIGRpc3Bvc2FsPGJyPuKAoiBpbmsgY2FydHJpZ=
GdlIGNoYW5nZSBpbiBhIGZldyBzZWNvbmRzPGJyPjxicj5Mb3cgcnVubmluZyBjb3N0czxicj=
48YnI+4oCiIHVzZXMgb25seSBpbmssIG5vIHNvbHZlbnQ8YnI+4oCiIG5vIHJlcGFpciBvciB=
wYXJ0IGNvc3RzPGJyPjxicj5VbmxpbWl0ZWQgcHJpbnQgcG9zc2liaWxpdGllczxicj48YnI+=
4oCiIGEgc3VwZXJpb3IgcHJpbnQgcXVhbGl0eTxicj7igKIgbG9nb3MsIDEgYW5kIDJEIGJhc=
mNvZGVzLCBzcGVjaWFsIGNoYXJhY3RlcnM8YnI+4oCiIHJlc29sdXRpb24gdXAgdG8gNjAwIG=
RwaTxicj7igKIgcHJpbnQgaGVpZ2h0IGZyb20gMC4yOCBiaXMgNTAuOCBtbTxicj7igKIgcHJ=
pbnRpbmcgc3BlZWQgdXAgdG8gMzAwIG0vbWluPGJyPjxicj5Nb3JlIGluZm9ybWF0aW9uOiZu=
YnNwOzxhIGhyZWY9Imh0dHA6Ly93d3cuYXBzLWRpcmVjdC5kZSIgdGFyZ2V0PSJfc2VsZiI+d=
3d3LmFwcy1kaXJlY3QuZGU8L2E+PGJyPmRkAhUPDxYEHwUFDS9kZWZhdWx0LmFzcHgfBAU/Q2=
xpY2sgaGVyZSBmb3IgdG9kYXnigJlzIG5ld3MgYW5kIHRvIGJyb3dzZSBmb3Igc2ltaWxhciB=
zdG9yaWVzZGQCFw9kFgICAw8PFgIfBAWuAzxIMz5QYWNrYWdpbmcgRXVyb3BlIEhhcyBvdGhl=
ciBzdG9yaWVzIHJlbGF0ZWQgdG8gdGhlIG5ld3Mgc3Ryb3kgeW91IGFyZSB2aWV3aW5nOjwvS=
DM+PGRpdiBpZD0iZGF0YUJveCIgY2xhc3M9ImJveE5vSG92ZXIgd2hpdGVCRyBtYXJnaW5Cb3=
R0b20yNSIgc3R5bGU9Im1hcmdpbjo1cHg7cGFkZGluZzo1cHg7Ij48YnIvPjxzcGFuIHN0eWx=
lPSJjb2xvcjpyZWQ7Ij4xMTAzNzwvc3Bhbj4gU3RvcmllcyBSZWxhdGluZyB0byB0aGUgJ0Rl=
c2lnbiAmIEJyYW5kaW5nJyBEZXBhcnRtZW50IDxici8+fDxjZW50ZXI+PGEgaHJlZj0iaHR0c=
DovL3d3dy5wYWNrYWdpbmdldXJvcGUuY29tL05ld3NTZWFyY2guYXNweD9zcmNoc3RyPSZkZX=
B0PTUiPlZpZXcgTm93PC9hPjwvY2VudGVyPjxici8+KHJlYWQgMzEyOTMwOSB0aW1lcyk8YnI=
vPjxici8+PC9kaXY+PGJyLz5kZAILD2QWCAIBDw8WBB8EBQRIb21lHwUFDS9EZWZhdWx0LmFz=
cHhkZAIDDw8WBB8EBQhBYm91dCBVcx8FBQ0vQWJvdXRVcy5hc3B4ZGQCBQ8PFgQfBAUKQ29ud=
GFjdCBVcx8FBQ8vQ29udGFjdFVzLmFzcHhkZAIHDw8WBB8EBQpNZWRpYSBQYWNrHwUFDi9tZW=
RpYXBhY2sucGRmZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgYFK2N0bDA=
wJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fREUFK2N0bDAwJGN0bDAwJFVj=
X0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fSVQFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkV=
WNfTGFuZ3VhZ2UxJGlidG5fRlIFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2=
UxJGlidG5fRVMFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fUlU=
FK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fRU5QQCNkkPD9BmUt=
ZXB2tX2+b4E4iJyBhn8+E96/l+PXXg=3D=3D type=3Dhidden name=3D__VIEWSTATE> =
</DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['form1'];
if (!theForm) {
    theForm =3D document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/WebResource.axd?d=3DzIg9mUVBlalpYpH=
PT3wMQINd9Cw8IzkBK9WUBE8yZTvAhGgpDNKj01_gDsTPmNxoDAWNYCn1R8TjIn5ZQJ72g-g7=
Y0C_3SkWnkovvRspXFU1&amp;t=3D634392074925430182"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3DidJxz33xZFuQ=
Bo6XYi3e3nkviP5Ny8fqbY9ONWIX-qvgeNJafuh6nrS653TpMMsLZlqCI0sshU_MkXYL_cZkR=
LS_3Wn6bHRUG00oy1l9lNILNFAVL6s2SBisZjH9BtOEEeiVuT4U_n9bRQ58CpDD0A2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('ASP.NET Ajax =
client-side framework failed to load.');
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3D1nnHPLWZ24xq=
judYd4xyAr7DSyixZwmXmmiqJn-Ya6IMvaYRKlmY6K6TsKV-hXSz5yQEQ8ExJh8-wcwJWbB-a=
K9EirLTLkVCXxC1SPBZpcgwZt0PiZoDcRFM6_7FG8ZaERqVhUqVIFkf19_nr35agQ2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3D3MD7fbO6LyAm=
IMK7bdeiCzGiQI7ZzX-AjXdNTSBj3ExQPIlK2fKeFYKBU73WzkZs_uHsvNphxWnpk4K1mA6WA=
RPHJnyWg8Jya4B1ZrpdZ04889VPRZciRlMoxDydN7zb18nGPb3cqo8uRWvlGYhX6Q2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3DFVFhOHu8VIDN=
FpfqaiDVdPPWG6qaagSKvXZDs7kgPf6ykwB-7x9vORweLKCh4TMVhFvnYB_2pV_0yLfkg2c0Z=
6L9hEzJTWU-zyVSHUNxLoxauGE3Jmyt5ZUzyWE88k_HrudZDExw3EsRZAVlFPh9nQ2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3DLCfMSzDBR-CD=
TesQrpcKTb-y2gXn6ag_o_Fqo3RS2SDAp2ut8tA1spByDmvOlMTaYOI-O2v_XE_QHpv0Mof3X=
khRDIyyi-gDzK5iS9bnt7mfz4N7nLdTg_nGWY1CEuw8lXrxxB3r2yAyL31dgjluEA2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3DH3o_AZ-FpFYB=
FU5-FKzafEVT9ss1hLkGaMruVlgcSoXnRMBTDiplDYKbzb66jC_DLJ_dc0Uktepuph-YDMvIp=
ELXFf015Dub5FipdYUIF0I7qlb1YO4RlRSvX4kvPf3agTcMKbMcP-9_KVCakitsVA2&amp;t=3D=
6b9ad1b8"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.packagingeurope.com/ScriptResource.axd?d=3D7q9lPRY3ovcg=
DhPMgHqH73vpyTXUVgCcM9Vj4m853y5D1inRInKJuklYujT0IuxDt0J24Pz1hf5khUrzQljFM=
xZoeFnjH2wJ09x9PgQgEtgAqrmWoXzpZMsBGBsnXfxWkEUlsB6r387g5CrxAAFWrGX2H6Dito=
JJTdVv8Wrmgu1Uu2XfE9r06EgR82nkJdgW0&amp;t=3D6b9ad1b8"></SCRIPT>

<DIV class=3DaspNetHidden><INPUT id=3D__EVENTVALIDATION=20
value=3D/wEWagKx0qKBCALq18fXCQL/gfOVAgKh+bGVDwK84tOqCQKa6+yrDAKt9/LCAgLdl=
M3yCAKEtZXgBALUpN/eDAKMnIDRDAL15cuvDQL05cuvDQL35cuvDQL25cuvDQLx5cuvDQLw5c=
uvDQLz5cuvDQLi5cuvDQLt5cuvDQL/2qGGDAL6gZLdBQL7gZLdBQL4gZLdBQL5gZLdBQL+gZL=
dBQL/gZLdBQL8gZLdBQLtgZLdBQLigZLdBQL6gdLeBQL6gd7eBQL6gdreBQKXrZ/pAwK4nfij=
DwK5nfijDwK6nfijDwK7nfijDwK8nfijDwK9nfijDwK+nfijDwKvnfijDwLphoqMAwKpxIijD=
QKpxIyjDQKoxLyjDQLgvPWBBAKoxNigDQKrxLyjDQKvxLSjDQKoxICjDQKrxPSgDQKpxNigDQ=
LI5uLrBQKpxLijDQKx+NrBBQLCpYCAAwL7q5eqDgKpxNSgDQKrxICjDQKrxISjDQKqxPSgDQK=
rxIijDQKpxPSgDQKoxPSgDQKoxNSgDQKvxPSgDQKrxIyjDQKrxJCjDQKoxIyjDQKNhdf0CgKr=
xNSgDQKuxPSgDQLvjp73CQKrxNigDQLewri3CAKqxLSjDQKqxLijDQKoxLijDQKqxLyjDQL1z=
8DeCwKoxIijDQKpxLSjDQKqxNigDQKtxPSgDQK8xPSgDQKqxICjDQKqxISjDQKpxISjDQKpxJ=
CjDQKoxLSjDQKqxIijDQKqxIyjDQKzxPSgDQKrxLSjDQKqxNSgDQKoxJCjDQKoxISjDQKrxLi=
jDQKUl/zqDwKUw8r5AwL0k7C5BQKN1IcBAqSfiJMFAuyXz4IFApS8zewEuwSFCaCPCrYfdj4Z=
l19vMWcpELcsCZUTq0r4N26EXVU=3D=20
type=3Dhidden name=3D__EVENTVALIDATION> </DIV>
<DIV=20
style=3D"BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; =
BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime 0px solid"=20
id=3Dwrapper>
<DIV=20
style=3D"BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; =
BACKGROUND-COLOR: white; BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime =
0px solid"=20
id=3Dcontainer>
<DIV=20
style=3D"BORDER-BOTTOM: green 0px solid; BORDER-LEFT: green 0px solid; =
BORDER-TOP: green 0px solid; BORDER-RIGHT: green 0px solid"=20
id=3Dheader>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$ctl00$ScriptManager1',=
 'form1', =
['tctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$UpdatePanel1','Conte=
ntPlaceHolder1_ucNewsFilterSIDE1_UpdatePanel1'], [], [], 90, =
'ctl00$ctl00');
//]]>
</SCRIPT>

<DIV id=3DtopBar>
<DIV=20
style=3D"BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; =
BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime 0px solid"=20
id=3Dlang class=3Dleft>
<UL>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_DE title=3Dgerman =
alt=3DGerman=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_de.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_DE> </LI>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_IT title=3Ditalian =
alt=3DItalian=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_IT.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_IT> </LI>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_FR title=3Dfrench =
alt=3DFrench=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_FR.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_FR> </LI>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_ES title=3Dspanish =
alt=3DSpanish=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_ES.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_ES> </LI>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_RU title=3Drussian =
alt=3DRussian=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_RU.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_RU> </LI>
  <LI><INPUT id=3DUc_Header1_Uc_Language1_ibtn_EN title=3Denglish =
alt=3DEnglish=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Images2011/top_UK.png"=20
  type=3Dimage name=3Dctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_EN> =
</LI></UL></DIV>
<DIV id=3DtopNav>
<UL>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_Header1_Uc_TopNav1_lblmnuHome=20
  href=3D"http://www.packagingeurope.com/Default.aspx">Home</A> </LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_Header1_Uc_TopNav1_lblmnuAboutUs=20
  href=3D"http://www.packagingeurope.com/AboutUs.aspx">About Us</A> =
</LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_Header1_Uc_TopNav1_lblmnuContactUs=20
  href=3D"http://www.packagingeurope.com/ContactUs.aspx">Contact Us</A> =
</LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_Header1_Uc_TopNav1_hypMnuMediaPack=20
  href=3D"http://www.packagingeurope.com/mediapack.pdf" =
target=3D_blank>Media=20
  Pack</A> </LI></UL></DIV>&nbsp;=20
<DIV id=3DtopSearch class=3Dright>
<DIV id=3DUc_Header1_Uc_topSearch1_pnlSearchtop=20
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'Uc_Header1_Uc_topSearch1_capcha')"><INPUT=20
style=3D"WIDTH: 175px; HEIGHT: 18px; COLOR: graytext; FONT-SIZE: 10pt; =
FONT-WEIGHT: normal"=20
id=3DUc_Header1_Uc_topSearch1_txttopsearch class=3Dleft =
onfocus=3D"this.value =3D '';"=20
value=3D"Company or Keyword Search" type=3Dtext=20
name=3Dctl00$ctl00$Uc_Header1$Uc_topSearch1$txttopsearch>=20
<DIV class=3D"button goBtn right"><A =
id=3DUc_Header1_Uc_topSearch1_ibtopSearch=20
href=3D"javascript:__doPostBack('ctl00$ctl00$Uc_Header1$Uc_topSearch1$ibt=
opSearch','')">GO</A>=20
<INPUT style=3D"DISPLAY: none" id=3DUc_Header1_Uc_topSearch1_capcha =
value=3D"Anfrage senden" type=3Dsubmit =
name=3Dctl00$ctl00$Uc_Header1$Uc_topSearch1$capcha>=20
</DIV></DIV></DIV>&nbsp; </DIV>
<DIV id=3DlogoBar>
<DIV id=3Dlogo><IMG id=3DUc_Header1_Uc_LogoBar1_Image1=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images2011/logo.png"></DIV>
<DIV id=3Dbanner class=3Dright>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DUc_Header1_Uc_LogoBar1_AdBox1_dv1><A=20
href=3D"http://www.packagingeurope.com/adclick.ashx?adlink=3Dhttp://www.m=
ondigroup.com/gogreen/&amp;adlocation=3DHomePageTopMONDIGREEN&amp;adtype=3D=
HomePageTopMONDIGREEN"><IMG=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Packaging-Europe-News/42010/A=
dvertAssets/gogreen_500x70_fallback.jpg"></A>=20
</DIV></DIV></DIV>
<DIV class=3Dclear></DIV>
<DIV style=3D"CLEAR: both"></DIV>
<DIV id=3Dnavigation>
<UL>
  <LI class=3Dnarrow><A id=3DUc_Header1_Uc_Navigation1_link1b=20
  href=3D"http://www.packagingeurope.com/default.aspx">
  <H3 class=3DwhiteText><SPAN=20
  id=3DUc_Header1_Uc_Navigation1_r2011_Home>home</SPAN></H3></A></LI>
  <LI class=3Dnarrow><A id=3DUc_Header1_Uc_Navigation1_link2b=20
  href=3D"http://www.packagingeurope.com/NewsSearch.aspx">
  <H3 class=3DwhiteText><SPAN=20
  id=3DUc_Header1_Uc_Navigation1_r2011_News>news</SPAN></H3></A></LI>
  <LI class=3Dnarrow><A href=3D"http://jobs.packagingeurope.com/">
  <H3 class=3DwhiteText><SPAN=20
  id=3DUc_Header1_Uc_Navigation1_r2011_jobs>jobs</SPAN></H3></A></LI>
  <LI class=3Dwide><A id=3DUc_Header1_Uc_Navigation1_link3b=20
  =
href=3D"http://www.packagingeurope.com/Packaging-market-intelligence.aspx=
">
  <H3 class=3DwhiteText><SPAN=20
  id=3DUc_Header1_Uc_Navigation1_r2011_MarketIntelligence>market=20
  intelligence</SPAN></H3></A></LI>
  <LI class=3Dnarrow><A id=3DUc_Header1_Uc_Navigation1_link4b=20
  href=3D"http://www.packagingeurope.com/Magazine/index.html">
  <H3 class=3DwhiteText><SPAN=20
  =
id=3DUc_Header1_Uc_Navigation1_r2011_magazine>magazine</SPAN></H3></A></L=
I>
  <LI class=3DnarrowElite>
  <DIV>
  <DIV style=3D"PADDING-LEFT: 20px; FLOAT: left; PADDING-TOP: 5px"><IMG=20
  id=3DUc_Header1_Uc_Navigation1_imgElite=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images2011/EliteSupp.png">=20
  </DIV><A id=3DUc_Header1_Uc_Navigation1_link5b=20
  href=3D"http://www.packagingeurope.com/EliteSuppliers.aspx">
  <H3=20
class=3DwhiteText>&nbsp;&nbsp;elite&nbsp;suppliers</H3></A></DIV></LI></U=
L></DIV><!--
      <div id=3D"navigation">
        <ul>
          <li><a id=3D"Uc_Header1_Uc_Navigation1_link1" =
href=3D"/default.aspx"><img id=3D"Uc_Header1_Uc_Navigation1_Image1" =
src=3D"http://www.packagingeurope.com/images2011/home.png" alt=3D"Home" =
style=3D"height:39px;width:108px;" /></a></li>
          <li><a id=3D"Uc_Header1_Uc_Navigation1_link2" =
href=3D"/NewsSearch.aspx"><img id=3D"Uc_Header1_Uc_Navigation1_Image2" =
src=3D"http://www.packagingeurope.com/images2011/news.png" =
alt=3D"Packaging News" style=3D"height:39px;width:108px;" /></a></li>
          <li><a href=3D"http://jobs.packagingeurope.com"><img =
id=3D"Uc_Header1_Uc_Navigation1_Image3" =
src=3D"http://www.packagingeurope.com/images2011/jobs.png" =
alt=3D"Packaging Jobs" style=3D"height:39px;width:108px;" /></a></li>
          <li><a id=3D"Uc_Header1_Uc_Navigation1_link3" =
href=3D"/Packaging-market-intelligence.aspx"><img =
id=3D"Uc_Header1_Uc_Navigation1_Image4" =
src=3D"http://www.packagingeurope.com/images2011/data.png" =
alt=3D"Packaging Market Intelligence" style=3D"height:39px;width:108px;" =
/></a></li>
          <li><a id=3D"Uc_Header1_Uc_Navigation1_link4" =
href=3D"/Magazine/index.html"><img =
id=3D"Uc_Header1_Uc_Navigation1_Image5" =
src=3D"http://www.packagingeurope.com/images2011/magazine.png" =
alt=3D"Packaging Europe Digital Magazine" =
style=3D"height:39px;width:108px;" /></a></li>
          <li><a id=3D"Uc_Header1_Uc_Navigation1_link5" =
href=3D"/Mediapack2011/mediapack2011.pdf"><img =
id=3D"Uc_Header1_Uc_Navigation1_Image6" =
src=3D"http://www.packagingeurope.com/images2011/advertise.png" =
alt=3D"Advertise in PackagingEurope.com" =
style=3D"height:39px;width:108px;" /></a></li>
        </ul>
      </div>
      --><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42010/YUI/bu=
ild/reset-fonts-grids/reset-fonts-grids.css">
<DIV style=3D"BACKGROUND-COLOR: transparent; WIDTH: 100%" id=3Dticker>
<DIV style=3D"BACKGROUND-COLOR: white; WIDTH: 100%" id=3Dxxx =
class=3DnewsTicker>
<UL>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42240/LIXIS-=
Track--Trace--IdentiPharma.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:24</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/un_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">LIXIS=20
  Track &amp; Trace | IdentiPharma</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42237/ACG-Ph=
armapack-inks-pact-with-Eastman-Chemicals-to-produce-PETg-film-in-India.h=
tml"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:56</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/India_flag.p=
ng"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">ACG=20
  Pharmapack inks pact with Eastman Chemicals to produce PETg film in=20
  India</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42229/Film-p=
ackaging-for-CALGONITTabs.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:48</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Film=20
  packaging for CALGONIT-Tabs</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42228/PARITE=
L-aquires-Zucchini-packaging-lines.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:40</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/italy_flag.p=
ng"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">PARITEL=20
  aquires Zucchini packaging lines</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42224/PETAse=
pt-D-Compact--the-aseptic-solution-for-the-low-output-range.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">11:00</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/german_flag.=
png"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">PET-Asept=20
  D Compact =E2=80=93 the aseptic solution for the low output =
range</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42220/OCME-s=
atisfies-the-thirst-for-water-in-Saudi-Arabia.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:05</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/un_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">OCME=20
  satisfies the =E2=80=9Cthirst=E2=80=9D for water in Saudi =
Arabia</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42213/Counte=
rfeit-pharmaceuticals-and-food-threaten-innovation.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">09:05</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/usa_flag.png=
"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Counterfeit=20
  pharmaceuticals and food threaten innovation</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42211/Packag=
ing-solutions-manufactured-from-recycled-paper-fibre-recycled-and-fully-b=
iodegradable.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">08:50</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Packaging=20
  solutions manufactured from recycled paper fibre: recycled and fully=20
  biodegradable.</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42207/PFM-a-=
Constellation-of-Innovations.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">04:05</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/italy_flag.p=
ng"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">PFM:=20
  a Constellation of Innovations</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42206/SPS-Ne=
w-Premises-New-Challenges.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:57</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/italy_flag.p=
ng"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">SPS:=20
  New Premises, New Challenges</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42205/Qualit=
y--the-heart-of-competitiveness.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:34</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/italy_flag.p=
ng"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Quality=20
  - the heart of competitiveness</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42204/Cama-G=
roup-outlines-how-turnkey-systems-can-offer-extra-efficiency-and-reliabil=
ity-in-packaging.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:24</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/poland_flag.=
png"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Cama=20
  Group outlines how turnkey systems can offer extra efficiency and =
reliability=20
  in packaging</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42201/Bag-cl=
osing-with-PP-tape--plus-optional-sewing.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:48</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/un_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Bag=20
  closing with PP tape =E2=80=93 plus optional sewing</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42200/piCLAS=
SIC-provides-up-to-40-more-energy-efficiency-over-rotary-vane-pumps.html"=
><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:26</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">piCLASSIC=20
  provides up to 40% more energy efficiency over rotary vane=20
  pumps</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42197/New-fi=
lling-valves-one-project-many-solutions.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">01:59</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">New=20
  filling valves: one project, many solutions</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42194/Soluti=
ons-for-packaging-high-margins-with-lower-investment.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:44</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/un_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Solutions=20
  for packaging: high margins with lower investment</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42193/INDEX6=
-installs-complete-technological-line-in-Belarus.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:51</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/belarus_flag=
.png"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">INDEX-6=C2=AE=20
  installs complete technological line in Belarus</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42191/Eaton-=
Completes-the-Integration-of-Moeller-with-Product-Branding-and-New-Packag=
ing.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:41</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Eaton=20
  Completes the Integration of Moeller with Product Branding and New=20
  Packaging.</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42188/Alexan=
der-Herzog-to-assume-responsibility-for-Elsner-Engineering-sales-in-Europ=
ean-market.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:23</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">Alexander=20
  Herzog to assume responsibility for Elsner Engineering sales in =
European=20
  market</SPAN></A></LI>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Europe-News/42176/InterS=
ystem-increases-capacity-at-Doggy.html"><SPAN=20
  style=3D"BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">08:44</SPAN><IMG=20
  border=3D0=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/sweden_flag.=
png"></IMG><SPAN=20
  style=3D"BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; =
VERTICAL-ALIGN: top; TEXT-DECORATION: none">InterSystem=20
  increases capacity at Doggy</SPAN></A></LI></UL></DIV></DIV>
<DIV class=3Dclear></DIV></DIV>
<DIV id=3DMainContent>
<DIV style=3D"MARGIN-TOP: -35px" id=3D3COLcontainer>
<DIV=20
style=3D"WIDTH: 270px; BACKGROUND: none transparent scroll repeat 0% 0%; =
FLOAT: left; HEIGHT: 100%; MARGIN-RIGHT: 20px; PADDING-TOP: 35px"=20
id=3D3COLleft>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox4_dv1></DIV>
<DIV style=3D"WIDTH: 270px" class=3D"box gradient">
<DIV style=3D"POSITION: relative" class=3Dinner>
<DIV class=3DtabElite></DIV>
<DIV class=3DeliteContainer>
<H2 style=3D"LINE-HEIGHT: 120%" class=3D"blueText bold =
marginBottom10">Become an=20
<BR>Elite Supplier</H2>
<H3 class=3D" marginBottom10">Increase your visibility on Packaging =
Europe, the=20
world's leading packaging media title.</H3>
<DIV class=3DeliteBullets>
<UL>
  <LI>Guaranteed headline spots on our homepage</LI>
  <LI>Unlimited publication of news and white papers</LI>
  <LI>Dedicated company page detailing your products, capabilities, USPs =
and=20
  contacts</LI>
  <LI>SEO benefits for your website</LI>
  <LI>Enhanced entry in our supplier directories</LI></UL></DIV><A=20
id=3DContentPlaceHolder1_uc_Category_Push_Left1_hypEliteMore=20
href=3D"http://www.packagingeurope.com/ContactUs.aspx">
<DIV style=3D"MARGIN-BOTTOM: 0px" class=3DpurchaseData><SPAN =
class=3Dbutton>Find out=20
more</SPAN></DIV></A></DIV></DIV></DIV><!--<div id=3D"dataBox" =
class=3D"box gradient">
    <div class=3D"inner">
        <div class=3D"tabLong">
            <h1>
                <span =
id=3D"ContentPlaceHolder1_uc_Category_Push_Left1_lblHead">Elite =
Suppliers</span>
            </h1>
        </div>
        <div class=3D"contentHeading">
            <h2 class=3D"marginBottom10" style=3D"font-size: 13pt; =
font-weight: bold; color: #01325d;">
                Become an Elite Supplier</h2>
        </div>
        <h3 style=3D"font: bold normal 12pt Arial, Helvetica, =
sans-serif; color: #d20001;">
            Increase your visibility on Packaging Europe, the =
world=E2=80=99s leading packaging media
            title:
        </h3>
        <ul style=3D"list-style-position: outside;list-style-type:disc; =
color:#01325d;padding:10px;">
            <li style=3D"padding-bottom:5px;">- Guaranteed headline =
spots on our homepage</li>
            <li style=3D"padding-bottom:5px;">- Unlimited publication of =
news and white papers</li>
            <li style=3D"padding-bottom:5px;">- Dedicated company page =
detailing your products, capabilities, USPs and contacts
            </li>
            <li style=3D"padding-bottom:5px;">- SEO benefits for your =
website</li>
            <li style=3D"padding-bottom:5px;">- Enhanced entry in our =
supplier directories</li>
        </ul>
      =20
    </div>
    <div style=3D"clear:both;"></div>
</div>-->&nbsp;=20
<DIV id=3DfilternewsBox class=3D"box  right">
<DIV=20
style=3D"PADDING-BOTTOM: 0px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; =
PADDING-TOP: 0px"=20
class=3Dinner><!--class=3D"box  gradient marginBottom30 right">-->
<DIV class=3DtabLong>
<H1><SPAN style=3D"COLOR: white; FONT-SIZE: 14pt; FONT-WEIGHT: normal"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_lblChoose>Choose your=20
news</SPAN></H1></DIV>
<DIV id=3DContentPlaceHolder1_ucNewsFilterSIDE1_UpdatePanel1>
<DIV style=3D"MARGIN: 0px -15px" class=3D"searchMenus holder ">
<P class=3DwhiteText><SPAN style=3D"FLOAT: left; COLOR: white; =
FONT-SIZE: 9pt"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_lblInfo>Use the drop down =
menu below to=20
filter stories the way you want - when you want it!</SPAN></P>
<DIV style=3D"MARGIN: 10px 0px" class=3DnewsmenuCol>
<DIV class=3D"menuContainer "><SELECT style=3D"WIDTH: 100%; COLOR: =
black"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_ddlDepartment=20
title=3D"Filter by department"=20
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlDepartment> =
<OPTION=20
  selected value=3D"Filter by department">Filter by department</OPTION> =
<OPTION=20
  value=3D1>Appointments</OPTION> <OPTION value=3D2>Commerce &amp;=20
  Purchasing</OPTION> <OPTION value=3D3>Conferences &amp; =
Events</OPTION> <OPTION=20
  value=3D4>Corporate</OPTION> <OPTION value=3D5>Design &amp; =
Branding</OPTION>=20
  <OPTION value=3D6>Environment &amp; Legislation</OPTION> <OPTION=20
  value=3D7>Research &amp; Development</OPTION> <OPTION =
value=3D8>Technology &amp;=20
  Innovation</OPTION> <OPTION value=3D9>Other</OPTION></SELECT> </DIV>
<DIV class=3DmenuContainer><SELECT style=3D"WIDTH: 100%; COLOR: black"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_ddlMarket title=3D"Filter by =
Market"=20
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlMarket> =
<OPTION=20
  selected value=3D"Filter by Market">Filter by Market</OPTION> <OPTION=20
  value=3D1>DIY &amp; Trade</OPTION> <OPTION value=3D2>Drinks - =
alcoholic</OPTION>=20
  <OPTION value=3D3>Drinks - non-alcoholic</OPTION> <OPTION=20
  value=3D4>Electrical</OPTION> <OPTION value=3D5>FMCG</OPTION> <OPTION=20
  value=3D6>Food</OPTION> <OPTION value=3D7>Household Products</OPTION> =
<OPTION=20
  value=3D8>Industrial Products</OPTION> <OPTION value=3D9>Pet &amp; =
Animal=20
  Products</OPTION> <OPTION value=3D10>Pharmaceutical</OPTION> <OPTION=20
  value=3D11>Toiletries &amp; Cosmetics</OPTION> <OPTION=20
value=3D12>Other</OPTION></SELECT> </DIV>
<DIV class=3DmenuContainer><SELECT style=3D"WIDTH: 100%; COLOR: black"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_ddlIndustry title=3D"Filter =
by Industry"=20
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlIndustry> =
<OPTION=20
  selected value=3D"Filter by Industry">Filter by Industry</OPTION> =
<OPTION=20
  value=3D1>Ceramics</OPTION> <OPTION value=3D2>Flexibles</OPTION> =
<OPTION=20
  value=3D3>Glass</OPTION> <OPTION value=3D4>Metal</OPTION> <OPTION =
value=3D5>Paper=20
  &amp; Board</OPTION> <OPTION value=3D6>Plastics</OPTION> <OPTION=20
  value=3D7>Wood</OPTION> <OPTION value=3D8>Other</OPTION></SELECT> =
</DIV>
<DIV class=3DmenuContainer><SELECT style=3D"WIDTH: 100%; COLOR: black"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_ddlCountry title=3D"Filter by =
Country"=20
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlCountry> =
<OPTION=20
  selected value=3D"Filter by Country">Filter by Country</OPTION> =
<OPTION=20
  value=3D35>Europe</OPTION> <OPTION value=3D36>Rest of World</OPTION> =
<OPTION=20
  value=3D42>Albania</OPTION> <OPTION value=3D101>Andorra</OPTION> =
<OPTION=20
  value=3D49>Armenia</OPTION> <OPTION value=3D12>Austria</OPTION> =
<OPTION=20
  value=3D50>Azerbaijan</OPTION> <OPTION value=3D43>Belarus</OPTION> =
<OPTION=20
  value=3D1>Belgium</OPTION> <OPTION =
value=3D39>Bosnia-Herzegovina</OPTION> <OPTION=20
  value=3D109>Brazil</OPTION> <OPTION value=3D31>Bulgaria</OPTION> =
<OPTION=20
  value=3D104>Canada</OPTION> <OPTION value=3D107>China</OPTION> <OPTION =

  value=3D102>CIS</OPTION> <OPTION value=3D38>Croatia</OPTION> <OPTION=20
  value=3D13>Cyprus</OPTION> <OPTION value=3D14>Czech Republic</OPTION> =
<OPTION=20
  value=3D2>Denmark</OPTION> <OPTION value=3D15>Estonia</OPTION> <OPTION =

  value=3D3>Finland</OPTION> <OPTION value=3D4>France</OPTION> <OPTION=20
  value=3D48>Georgia</OPTION> <OPTION value=3D5>Germany</OPTION> <OPTION =

  value=3D16>Greece</OPTION> <OPTION value=3D17>Hungary</OPTION> <OPTION =

  value=3D46>Iceland</OPTION> <OPTION value=3D110>India</OPTION> <OPTION =

  value=3D18>Ireland</OPTION> <OPTION value=3D6>Italy</OPTION> <OPTION=20
  value=3D106>Japan</OPTION> <OPTION value=3D19>Latvia</OPTION> <OPTION=20
  value=3D103>Liechtenstein</OPTION> <OPTION =
value=3D20>Lithuania</OPTION> <OPTION=20
  value=3D21>Luxembourg</OPTION> <OPTION value=3D41>Macedonia</OPTION> =
<OPTION=20
  value=3D22>Malta</OPTION> <OPTION value=3D108>Mexico</OPTION> <OPTION=20
  value=3D45>Moldova</OPTION> <OPTION value=3D30>Monaco</OPTION> <OPTION =

  value=3D29>Montenegro</OPTION> <OPTION value=3D7>Netherlands</OPTION> =
<OPTION=20
  value=3D8>Norway</OPTION> <OPTION value=3D23>Poland</OPTION> <OPTION=20
  value=3D24>Portugal</OPTION> <OPTION value=3D34>Romania</OPTION> =
<OPTION=20
  value=3D37>Russia</OPTION> <OPTION value=3D40>Serbia</OPTION> <OPTION=20
  value=3D25>Slovakia</OPTION> <OPTION value=3D26>Slovenia</OPTION> =
<OPTION=20
  value=3D9>Spain</OPTION> <OPTION value=3D10>Sweden</OPTION> <OPTION=20
  value=3D28>Switzerland</OPTION> <OPTION value=3D47>Turkey</OPTION> =
<OPTION=20
  value=3D44>Ukraine</OPTION> <OPTION value=3D11>United Kingdom</OPTION> =
<OPTION=20
  value=3D105>USA</OPTION></SELECT> </DIV></DIV>
<DIV id=3DContentPlaceHolder1_ucNewsFilterSIDE1_pnlsearchOuter=20
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'ContentPlaceHolder1_ucNewsFilterSIDE1_capcha')"><INPUT=20
style=3D"WIDTH: 75%; COLOR: black"=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_txtSearch type=3Dtext=20
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$txtSearch>=20
<DIV class=3D"button goBtn right  "><A=20
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_btnFilter=20
href=3D"javascript:__doPostBack('ctl00$ctl00$ContentPlaceHolder1$ucNewsFi=
lterSIDE1$btnFilter','')">GO</A>=20
<INPUT style=3D"DISPLAY: none" =
id=3DContentPlaceHolder1_ucNewsFilterSIDE1_capcha value=3D"Anfrage =
senden" type=3Dsubmit =
name=3Dctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$capcha>=20
</DIV></DIV></DIV>
<DIV class=3Dclear></DIV></DIV>
<DIV style=3D"CLEAR: both"></DIV></DIV></DIV><!--this is needed _ can =
find cause without!-->
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox1_dv1></DIV>
<DIV id=3DContentPlaceHolder1_uc_Jobs1_pnlControl>
<DIV style=3D"CLEAR: both"></DIV>
<DIV id=3DjobBox class=3D"box gradient ">
<DIV class=3Dinner>
<DIV class=3Dtab>
<H1><SPAN id=3DContentPlaceHolder1_uc_Jobs1_r2011_100106>Featured=20
Jobs</SPAN></H1></DIV>
<DIV class=3D"date right"><A =
href=3D"http://jobs.packagingeurope.com/"><SPAN=20
id=3DContentPlaceHolder1_uc_Jobs1_r2011_100107>See all jobs</SPAN></A> =
</DIV>
<DIV class=3D"searchBox greyBG">
<DIV id=3DContentPlaceHolder1_uc_Jobs1_pnlJobSearch=20
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'ContentPlaceHolder1_uc_Jobs1_capcha')"><INPUT=20
style=3D"WIDTH: 180px" id=3DContentPlaceHolder1_uc_Jobs1_txtJobSearch=20
onfocus=3D"this.value =3D '';" value=3D"Search jobs" maxLength=3D75 =
type=3Dtext=20
name=3Dctl00$ctl00$ContentPlaceHolder1$uc_Jobs1$txtJobSearch>=20
<DIV class=3D" button goBtn right"><A =
id=3DContentPlaceHolder1_uc_Jobs1_lbJobSearch=20
href=3D"javascript:__doPostBack('ctl00$ctl00$ContentPlaceHolder1$uc_Jobs1=
$lbJobSearch','')">GO</A><INPUT style=3D"DISPLAY: none" =
id=3DContentPlaceHolder1_uc_Jobs1_capcha value=3D"Anfrage senden" =
type=3Dsubmit =
name=3Dctl00$ctl00$ContentPlaceHolder1$uc_Jobs1$capcha></DIV></DIV></DIV>=

<DIV id=3DContentPlaceHolder1_uc_Jobs1_pnlJobList>
<DIV style=3D"DISPLAY: none; VISIBILITY: hidden" class=3D"jobOfDay =
gradient">
<H3 class=3D"jobHeading marginTop10 bold"><SPAN style=3D"FONT-WEIGHT: =
bold"=20
id=3DContentPlaceHolder1_uc_Jobs1_jodTitle></SPAN></H3>
<P><SPAN id=3DContentPlaceHolder1_uc_Jobs1_jodLocation></SPAN></P>
<P class=3D"redText negativeMargin"><SPAN=20
id=3DContentPlaceHolder1_uc_Jobs1_jodSalary></SPAN></P>
<P>&gt;<SPAN class=3D"button right "><A=20
id=3DContentPlaceHolder1_uc_Jobs1_jodLink><SPAN=20
id=3DContentPlaceHolder1_uc_Jobs1_r2011_100109>Details</SPAN></A></SPAN><=
/P>
<DIV class=3Dclear></DIV></DIV>
<UL>
  <LI>
  <H3 class=3D"jobHeading bold">Packaging Design and Innovation Manager =
-=20
Food</H3>
  <P>United Kingdom, North West England</P>
  <P style=3D"WIDTH: 190px" class=3D"redText negativeMargin">=C2=A335000 =
- =C2=A345000=20
  pa</P><SPAN class=3D"button right "><A id=3DjodLink=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=3D46=
8824">Details</A></SPAN>=20

  <DIV class=3Dclear></DIV></LI>
  <LI>
  <H3 class=3D"jobHeading bold">Senior Packaging Designer</H3>
  <P>United Kingdom, London &amp; South East</P>
  <P style=3D"WIDTH: 190px" class=3D"redText negativeMargin">=C2=A345000 =
- =C2=A345000=20
  pa</P><SPAN class=3D"button right "><A id=3DjodLink=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=3D47=
0205">Details</A></SPAN>=20

  <DIV class=3Dclear></DIV></LI>
  <LI>
  <H3 class=3D"jobHeading bold">Packaging Project Manager</H3>
  <P>United Kingdom, London &amp; South East</P>
  <P style=3D"WIDTH: 190px" class=3D"redText negativeMargin">=C2=A333000 =
- =C2=A340000=20
  pa</P><SPAN class=3D"button right "><A id=3DjodLink=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=3D52=
1302">Details</A></SPAN>=20

  <DIV class=3Dclear></DIV></LI>
  <LI>
  <H3 class=3D"jobHeading bold">Plant Manager =E2=80=93 Belgium =
=E2=80=93 Rigid Plastic=20
  Packaging</H3>
  <P>Belgium, Various - Belgium</P>
  <P style=3D"WIDTH: 190px" class=3D"redText =
negativeMargin">=C2=A3Competitive +=20
  Performance Related Bonus</P><SPAN class=3D"button right "><A =
id=3DjodLink=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=3D46=
3465">Details</A></SPAN>=20

  <DIV class=3Dclear></DIV></LI>
  <LI>
  <H3 class=3D"jobHeading bold">Web / ASP Developer</H3>
  <P>United Kingdom, East England</P>
  <P style=3D"WIDTH: 190px" class=3D"redText =
negativeMargin">DOE</P><SPAN=20
  class=3D"button right "><A id=3DjodLink=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=3D53=
4576">Details</A></SPAN>=20

  <DIV class=3Dclear></DIV></LI></UL></DIV>
<DIV class=3D"extra blueBG"><A class=3Dleft=20
href=3D"http://jobs.packagingeurope.com/"><SPAN=20
id=3DContentPlaceHolder1_uc_Jobs1_r2011_100107b>See all =
jobs</SPAN></A><A=20
class=3Dright=20
href=3D"http://jobs.packagingeurope.com/jobboard/cands/searchcriteria.asp=
"><SPAN=20
id=3DContentPlaceHolder1_uc_Jobs1_r2011_100108>Search for =
jobs</SPAN></A>=20
<DIV class=3Dclear></DIV></DIV></DIV></DIV></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%"=20
id=3DContentPlaceHolder1_AdBox2_dv1></DIV></DIV>
<DIV=20
style=3D"MARGIN-TOP: 0px; WIDTH: 150px; FLOAT: right; HEIGHT: 100%; =
MARGIN-LEFT: 20px"=20
id=3D3COLright>
<DIV><!--sss-->
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox9_dv1><A=20
href=3D"http://www.packagingeurope.com/adclick.ashx?adlink=3Dhttp://www.w=
englor.com&amp;adlocation=3DNewsWenglor&amp;adtype=3DNewsWenglor"><IMG=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/Packaging-Europe-News/42010/A=
dvertAssets/152x152_Wenglor.jpg"></A>=20
</DIV>
<DIV id=3DjobsNav>
<H3><SPAN =
id=3DContentPlaceHolder1_SideNAV1_r2011_100019>Interact</SPAN></H3>
<UL>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_hlaboutus=20
  href=3D"http://www.packagingeurope.com/AboutUs.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100020>About =
us</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink1=20
  href=3D"http://www.packagingeurope.com/ContactUs.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100021>Contact =
us</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink2=20
  href=3D"mailto:Editor@packagingeurope.com"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100022>Submit =
news</SPAN></A></LI></UL>
<H3><SPAN =
id=3DContentPlaceHolder1_SideNAV1_r2011_100023>News</SPAN></H3>
<UL>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink3=20
  href=3D"http://www.packagingeurope.com/NewsSearch.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100024>News =
search</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink4=20
  href=3D"http://www.packagingeurope.com/NewsSearch.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100025>Popular=20
articles</SPAN></A></LI></UL>
<H3><SPAN =
id=3DContentPlaceHolder1_SideNAV1_r2011_100027>Jobs</SPAN></H3>
<UL>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink6=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/cands/searchCriteria.asp=
"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100028>Search =
jobs</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink7=20
  =
href=3D"http://jobs.packagingeurope.com/jobboard/purchase/order1.asp?o=3D=
0"><SPAN=20
  =
id=3DContentPlaceHolder1_SideNAV1_r2011_100029>Recruiters</SPAN></A></LI>=
</UL>
<H3><SPAN id=3DContentPlaceHolder1_SideNAV1_r2011_100030>Market=20
intelligence</SPAN></H3>
<UL>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink8=20
  href=3D"http://www.research-store.com/packagingeurope"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100031>Reports</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink14=20
  =
href=3D"http://www.packagingeurope.com/Packaging-Directories-and-guides.a=
spx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100032>Directories &amp;=20
  guides</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink9=20
  href=3D"http://www.packagingeurope.com/PackagingBuyersMI.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100033>Buyers =
database</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink10=20
  href=3D"http://www.packaging-manager.com/"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100034>Packaging =
manager</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink11=20
  href=3D"http://www.packagingeurope.com/NewsSearch.aspx"><SPAN=20
  =
id=3DContentPlaceHolder1_SideNAV1_r2011_100035>Articles</SPAN></A></LI></=
UL>
<H3><SPAN =
id=3DContentPlaceHolder1_SideNAV1_r2011_100036>Magazine</SPAN></H3>
<UL>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink12=20
  href=3D"http://www.packagingeurope.com/Magazine"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100037>Latest =
edition</SPAN></A></LI>
  <LI><A id=3DContentPlaceHolder1_SideNAV1_HyperLink13=20
  href=3D"http://www.packagingeurope.com/MagazineArchive.aspx"><SPAN=20
  id=3DContentPlaceHolder1_SideNAV1_r2011_100038>Back=20
issues</SPAN></A></LI></UL></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%"=20
id=3DContentPlaceHolder1_SideNAV1_AdBox1_dv1><BR>
<DIV=20
style=3D"BORDER-BOTTOM: #bad6e2 1px solid; BORDER-LEFT: #bad6e2 1px =
solid; WIDTH: 150px; BORDER-TOP: #bad6e2 1px solid; BORDER-RIGHT: =
#bad6e2 1px solid">
<OBJECT width=3D150 height=3D600>
   <embed src=3D"ADVERTASSETS/priplakbanner.swf"=20
type=3D"application/x-shockwave-flash" width=3D"150" =
height=3D"600"></embed>=20
</OBJECT></DIV></DIV>&nbsp;=20
<DIV id=3DsidebarAdvertisers>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox3_dv1></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox5_dv1></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox6_dv1></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%" =
id=3DContentPlaceHolder1_AdBox7_dv1></DIV>
<DIV style=3D"Z-INDEX: 9999; WIDTH: 100%"=20
id=3DContentPlaceHolder1_AdBox8_dv1></DIV></DIV></DIV><!--sss--></DIV></D=
IV>
<DIV style=3D"HEIGHT: 100%; OVERFLOW: hidden" id=3D3COLcenter>
<DIV=20
style=3D"PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; WIDTH: 96%; =
PADDING-RIGHT: 15px; FLOAT: right; HEIGHT: 100%; PADDING-TOP: 35px"=20
id=3D3COLcenterContent>
<DIV id=3DnewsStoryTextBox class=3D"box   whiteBG marginBottom25 ">
<DIV class=3Dinner>
<DIV class=3Dtab>
<H1>news story</H1></DIV>
<DIV class=3DnewsStoryTextHeading>
<H2=20
style=3D"LINE-HEIGHT: 18pt; MARGIN: 0px 0px 0.3em; COLOR: #01325d; =
FONT-SIZE: 16pt; FONT-WEIGHT: 100"><SPAN=20
id=3DContentPlaceHolder1_ChildContent1_lblNewsTitle>New product from =
APS: next=20
generation of thermal inkjet printer apsolute</SPAN></H2></DIV><!--<div =
id=3D"top" style=3D"height:10px;" >
				<div style=3D"float:left; margin-top:5px; color:White">
				   =20
		        </div>
		        <div style=3D"float:right; margin-top:5px; color:White; =
margin-right:5px">
				   =20
			    </div>
			</div>-->
<UL class=3DpostDataND>
  <LI class=3Dauthor><IMG =
id=3DContentPlaceHolder1_ChildContent1_imgPublished=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/images/newsflags/eu_flag.png"=
>=20
  <SPAN style=3D"FONT-SIZE: 8pt"=20
  id=3DContentPlaceHolder1_ChildContent1_lblPublishedOn>21/07/2011 =
13:02:44</SPAN>=20

  <DIV style=3D"FLOAT: right"><A=20
  id=3DContentPlaceHolder1_ChildContent1_rptTranslations_hypTrans_0=20
  =
href=3D"http://www.packagingeurope.com/NewsDetails.aspx?nNewsID=3D42010&a=
mp;switchlan=3D1"=20
  target=3D_self><IMG alt=3D""=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/IMAGESNEW/FLAGS/UK_flag.PNG">=
</A>=20
  <SPAN =
id=3DContentPlaceHolder1_ChildContent1_lblTranslations>Translations</SPAN=
>=20
  </DIV></LI>
  <LI>
  <DIV style=3D"FLOAT: right"><A style=3D"FLOAT: right; TEXT-DECORATION: =
none"=20
  id=3DContentPlaceHolder1_ChildContent1_hypMailTo=20
  href=3D"mailto:?subject=3DNews story from Packaging =
Europe&amp;body=3DA friend read this news story on Packaging Europe and =
thought it may be of interest to you. Please click this link to read the =
full story.   =
http://www.packagingeurope.com/NewsDetails.aspx?nNewsID=3D42010"=20
  target=3D_blank><IMG style=3D"PADDING-RIGHT: 5px"=20
  id=3DContentPlaceHolder1_ChildContent1_imgEmailToFriend=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/ImagesNew/email_Icon.png"><SP=
AN=20
  id=3DContentPlaceHolder1_ChildContent1_lblEmailToFriend>Email to a=20
  friend</SPAN></A> <BR><A style=3D"FLOAT: right; TEXT-DECORATION: none" =

  id=3DContentPlaceHolder1_ChildContent1_hypPrint=20
  =
href=3D"http://www.packagingeurope.com/PrintFriendly.aspx?nNewsID=3D42010=
"=20
  target=3D_blank><IMG style=3D"PADDING-RIGHT: 5px"=20
  id=3DContentPlaceHolder1_ChildContent1_imgPrinter=20
  src=3D"mhtml:file://C:\Dokumente und =
Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://www.packagingeurope.com/ImagesNew/print_Icon.png"><SP=
AN=20
  id=3DContentPlaceHolder1_ChildContent1_lblPrint>Print this =
page</SPAN></A>=20
  </DIV></LI></UL>
<DIV class=3D"newsStoryTextBodyCopy whiteBG">
<P><SPAN=20
style=3D"FONT: bold 13pt/16pt Arial, Helvetica, sans-serif; COLOR: =
#666666"><SPAN=20
id=3DContentPlaceHolder1_ChildContent1_lblpara1>Thanks to its multiple =
head=20
concept and the big choice of inks apsolute can fulfill with only one =
controller=20
the most different marking needs offering a solution for almost any =
customer and=20
industrial application. Printing with specifically designed fast-drying =
inks,=20
apsolute permits printing on porous (carton, paper=E2=80=A6) and =
non-porous substrates=20
(coated, varnished cardboard, aluminium, plastic films=E2=80=A6) =
directly onto the=20
product or its primary</SPAN> </SPAN><SPAN=20
id=3DContentPlaceHolder1_ChildContent1_lblLongDescription><BR>and =
secondary=20
packaging.<BR><BR>The new apsolute generation, which was presented for =
the first=20
time at Interpack 2011, is distinguished by advanced functions and a =
simplified=20
operation. It provides many software features which implement current =
market=20
requirements and offer customers more comfort and safety such as an =
automatic=20
ink type recognition, an accurate&nbsp;<BR>measurement of ink level, =
advanced=20
control and data transfer functions etc.<BR><BR>The new apsolute printer =
is=20
available with a new compact printhead for space saving installations on =
the=20
production line or in the system. The new printhead provides advanced=20
communication features which almost exclude operational errors by the =
user. The=20
ink portfolio for this printer has been increased by five new =
inks.<BR><BR>Your=20
benefits at a glance:<BR><BR>Thermal Inkjet Technology for porous and =
non porous=20
surfaces<BR><BR>=E2=80=A2 fast drying inks for plastics, metal, coated =
and varnished=20
carton...<BR>=E2=80=A2 drying time &lt; 2 sec<BR>=E2=80=A2 good running =
and adhesion=20
characteristics on non-porous and porous surfaces<BR><BR>One controller =
- up to=20
4 different applications<BR><BR>=E2=80=A2 simultaneous printing on up to =
4 production=20
lines<BR>=E2=80=A2 different messages, inks, production =
speed...<BR><BR>No repairs, zero=20
maintenance<BR><BR>=E2=80=A2 ink cartridge system without wearing =
parts<BR>=E2=80=A2 no=20
downtime<BR>=E2=80=A2 no repair costs<BR><BR>Clean and easy =
operation<BR><BR>=E2=80=A2 only=20
environmentally responsable inks<BR>=E2=80=A2 no need for =
disposal<BR>=E2=80=A2 ink cartridge=20
change in a few seconds<BR><BR>Low running costs<BR><BR>=E2=80=A2 uses =
only ink, no=20
solvent<BR>=E2=80=A2 no repair or part costs<BR><BR>Unlimited print=20
possibilities<BR><BR>=E2=80=A2 a superior print quality<BR>=E2=80=A2 =
logos, 1 and 2D barcodes,=20
special characters<BR>=E2=80=A2 resolution up to 600 dpi<BR>=E2=80=A2 =
print height from 0.28 bis=20
50.8 mm<BR>=E2=80=A2 printing speed up to 300 m/min<BR><BR>More =
information:&nbsp;<A=20
href=3D"http://www.aps-direct.de/"=20
target=3D_self>http://www.aps-direct.de/</A><BR></SPAN></P></DIV>
<DIV class=3Dclear></DIV>
<DIV class=3DrelatedNewsStories>
<H3>Related news stories</H3>
<UL>
  <LI><A style=3D"TEXT-DECORATION: none"=20
  id=3DContentPlaceHolder1_ChildContent1_lnkReadMoreLikeThis=20
  href=3D"http://www.packagingeurope.com/default.aspx">Click here for =
today=E2=80=99s news=20
  and to browse for similar stories</A></LI></UL></DIV></DIV></DIV>
<DIV id=3DdataBox class=3D"box gradient">
<DIV class=3Dinner>
<DIV class=3DtabLong>
<H1><SPAN =
id=3DContentPlaceHolder1_ChildContent1_Uc_NewsCATPush2_lblHead>Related=20
News</SPAN> </H1></DIV><SPAN=20
id=3DContentPlaceHolder1_ChildContent1_Uc_NewsCATPush2_lblTemp>
<H3>Packaging Europe Has other stories related to the news stroy you are =

viewing:</H3>
<DIV=20
style=3D"PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; PADDING-TOP: 5px"=20
id=3DdataBox class=3D"boxNoHover whiteBG marginBottom25"><BR><SPAN=20
style=3D"COLOR: red">11037</SPAN> Stories Relating to the 'Design &amp; =
Branding'=20
Department <BR>|=20
<CENTER><A=20
href=3D"http://www.packagingeurope.com/NewsSearch.aspx?srchstr=3D&amp;dep=
t=3D5">View=20
Now</A></CENTER><BR>(read 3129309=20
times)<BR><BR></DIV><BR></SPAN></DIV></DIV></DIV></DIV>
<DIV class=3Dclear></DIV></DIV>
<DIV style=3D"CLEAR: both">
<DIV id=3DtopBar>
<DIV id=3DtopNav>
<UL>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_TopNav1_lblmnuHome=20
  href=3D"http://www.packagingeurope.com/Default.aspx">Home</A> </LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_TopNav1_lblmnuAboutUs=20
  href=3D"http://www.packagingeurope.com/AboutUs.aspx">About Us</A> =
</LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_TopNav1_lblmnuContactUs=20
  href=3D"http://www.packagingeurope.com/ContactUs.aspx">Contact Us</A> =
</LI>
  <LI><A=20
  style=3D"DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: =
9pt"=20
  id=3DUc_TopNav1_hypMnuMediaPack=20
  href=3D"http://www.packagingeurope.com/mediapack.pdf" =
target=3D_blank>Media=20
  Pack</A> </LI></UL></DIV></DIV></DIV></DIV></FORM><!-- Yahoo! Web =
Analytics - All rights reserved -->
<SCRIPT type=3Dtext/javascript =
src=3D"http://d.yimg.com/mi/ywa.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
        /*globals YWA*/
        var YWATracker =3D YWA.getTracker("1000857785262");
        //YWATracker.setDocumentName("");
        //YWATracker.setDocumentGroup("");
        YWATracker.submit();
    </SCRIPT>
<NOSCRIPT>
<DIV><IMG alt=3D""=20
src=3D"mhtml:file://C:\Dokumente und Einstellungen\Administrator\Eigene =
Dateien\Birgit\Presse\Ver=C3=B6ffentlichungen\Ausland\Packaging Europe - =
New product from APS next generation of thermal inkjet printer =
apsolute.mht!http://a.analytics.yahoo.com/p.pl?a=3D1000857785262&amp;js=3D=
no"=20
width=3D1 height=3D1></DIV></NOSCRIPT></DIV></BODY></HTML>

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images2011/logo.png

iVBORw0KGgoAAAANSUhEUgAAAeAAAABYCAYAAAAtOiQ5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6ODYzRDgyODJGOTBGMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6ODYzRDgyODNGOTBGMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NjNEODI4MEY5MEYxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NjNEODI4MUY5MEYxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsH7BuIAADjPSURBVHja7D09cxu3toDG/aPyB0IpSR16
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
rkJggg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Packaging-Europe-News/42010/AdvertAssets/gogreen_500x70_fallback.jpg

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

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images2011/EliteSupp.png

iVBORw0KGgoAAAANSUhEUgAAACQAAAAaCAYAAADfcP5FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlE
PSJ4bXAuaWlkOkE1MTg0QjFFODZBRjExRTA4MEY2RjYxMDAzQUNFQjFCIiB4bXBNTTpEb2N1bWVu
dElEPSJ4bXAuZGlkOkE1MTg0QjFGODZBRjExRTA4MEY2RjYxMDAzQUNFQjFCIj4gPHhtcE1NOkRl
cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTUxODRCMUM4NkFGMTFFMDgwRjZG
NjEwMDNBQ0VCMUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTUxODRCMUQ4NkFGMTFFMDgw
RjZGNjEwMDNBQ0VCMUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l
dGE+IDw/eHBhY2tldCBlbmQ9InIiPz5OuE0EAAAIRElEQVR42oRXXYhdVxX+9t7nnHvv3PmfZGbS
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
gg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/un_flag.png

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
xnkAAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/India_flag.png

iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAABGdBTUEAANbY1E9YMgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI/SURBVHjalFNNaxNRFD3vY95Mp42t1pRW
uxDBVix049JVQRcu9AeIf0Do3k37O/wF7gRBcKlLxZWotSBSiJa00RhTm0wmyZv3rneStkkMFn1w
mBnm3nPPPfc+UX90N3hbtpuVRnY/kAQpBP7neCJhvZDnYvX8+qJ5qLe/dTa+1NobS8vLonhpiSPc
eBYR8LdCQqG+X8L21taDD4q6upPh3tWFWMy5PYSlMoT8d4WUF+KjWcO1hRgHreyOPhO4cNJ4FAIP
o3olx8Tkn1ICzv/Rru8ThhzgQoKzbkIHF1bIRAbBlIFWckyFVgK/Di2aSYa5YtQjPhIGdVyQiU3S
RXjYJq1urENNTyM6PwOt1QhZTv95p479chVpK0W5UMDK6iJmCgbDYrUjtA6aUJV9znEppG2x5izv
4QQSHNRs4/vuLt692sbTx69R26ug9Onrcb8DOAvYJpClkKeZ3ulYWJvhR7WBHVaaNFLYrj11UNqo
GJGOoaQa3UH26exsAfPFedy8ZbC2toooDnHl8sW+HcOxnBszh1ER9IvSE4QcOFWdgNLyZO16ZvMK
eU2o6BYcuzahNSoHMag2Om7yfXsa9QT6zc+XUImEaYvB2EYWhnqFJBPna+P3aOw/vECWeHQanlsm
4wLBhAyhxCAIYtD7sT/Du4IRd9AVnjvLvBRaPLMt6g2KLIGyHOg/WRLxLSBHR0Af2RDyHEaWUm7R
ex0X1WZa9bM28bd9JJ3gLRVj9YffR5Xn0b7rA7b44+ScWv8twACntRoIfNo9FQAAAABJRU5ErkJg
gg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/eu_flag.png

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
AAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/italy_flag.png

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

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/german_flag.png

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

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/usa_flag.png

iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAABGdBTUEAANbY1E9YMgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJESURBVHjapFNNaBNREP7m7exukm02CWkr
Ui+CKHr1KvjbXDyIR4/i1YMoqFePnsSbB/UiiBShCioURKteBEFBxEv9AQW1mqYxTWOy+/Y939tt
S00TPTjswszsm2+++eYtXb0yixs3H+zftrV6YWy0JKRUSlsjQUV0sdudAwtAg2BNmzfzsBoLpRR3
P366dO3D5ymevvt0b7UiHgWFCny/BEcocygrY9bYsWc7cjkBpTDUZJJg7t37W9Xl+wlLGZ+vlCfQ
aJL+0fgJbbBiqcjN+yg2vmFx9glyrlpjOMgUkQ4dUI3UGfbcfEDkmbQDj4miOAE7AmxnGd2EibPn
MBIwkkRn1f246TCEbrcH8eVryCChdJrUZD+Yx9RoKGGEW6pj/vpDNF0jgqY1sBTaFBFRhmdcaeJW
FGlWiTIa2IGUJZnqYRuoXoTIy2Ps6BEEgWMYrmNFq6groYkjKSHri8Tjm8sohhWjm4DrcnpQmiaa
HWxx2mjOzKDj6L9qmC5GGYbdCHzycIjxygjCIJ8xM6XCtjR+okPD+rjJZ+NZbdJvAyyKJXrz38EL
d6ZBrouW1Yz6LpruqxqStz1i06xpZOLivkmUKiUEOR//Y7FM8Ku+AO68eE7tnIfEYT3gUqwQsgrS
Bn99LLVCp9MDIwwlFYtwfI/6Z6EBUw/Kk7C3IIFYaksuF7zLvVbjgO+7oDj+g2S6G/2vYc0B5pTl
s1dv79HBWo1qu3aeOjZ56DQxL9uVEm1Yz3C47E8pvHz95vHFqdsnfgswANwA/CCFKPp1AAAAAElF
TkSuQmCC

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/poland_flag.png

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

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/belarus_flag.png

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

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/images/newsflags/sweden_flag.png

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
3J794OzlfwYAdnh3oe0oPHoAAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Packaging-Europe-News/42010/AdvertAssets/152x152_Wenglor.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4RgARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dz
ADIwMTE6MDc6MTQgMTA6Mzc6NTAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAmKADAAQAAAAB
AAAAmAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABbKAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAmACYAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9VSWT9Y8vqWFhDLwS2Kz+ma5u72nhw/quUfq11p3VcR3rR9p
pMWAaAg/QeB/0VL7Mva90UYg8J/ej5sP3mAz+wbEyOKN/LIf1WGb9ben4OVZi303iyswYayD4Ob+
l+i5A/589I/0WR/ms/8ASqj9b8Gn0G9QGO259ZDLSS4Hafou/Rub9Fyp/VzpfROq473245ZfS6HM
a98QdWO9zlahj5b2RllGenplwn9Jo5M3ODmTghPHr6occTrD/FesotF9NdwaWixocGu0IBG73RKI
m40CdUDu6YutdVJJJJJUkkkkpSSSSSlJJLN611unpDKn3VusFxIGyNNsfvf1k6EJTkIxFyOwWZMk
McTOZ4Yx3LpJIOJktysWrJaC1tzA8NPIDhuRkCCCQei4EEAjY6hSSSxPrBlZVbm1UvczRrg1kh1h
c8VObLXMd+jZ7tu9OxwM5CINWszZRjgZkXXQO2ksnoGTfdU5tz/U2sY/UklhebN1LnOLn7mbGP8A
f/pEkfaPue3evdb78fZ96jVbf81//9D1K2pl1b6rBuY8Frge4Oi4Kh9v1b+sBY8k0ztcf3qnfRf/
AGV6Aud+uPSvtWEM2oTdi6ujk1n6X+Z9NWuTyASOOfyZRwn+9+i0fiOGUoDNj/ncB44/3f0otr6z
9S+ydHc+l8WZEMqc06+73F7XD+QuT6P17Nw+oVW5N9lmO722Ne5zhtOm8bj+Yql+flZ1GJhO932e
WVeJ3H2/5vtYuj+sP1fbX0XHsobNuCwNsI5c062O/s2HerkMePDGOHIATmlIX4bRc/JmzczOXMYS
Yx5eMJcPeXzTH/TerBDgHNMg6gjwXKfXP7Xi5GNm49r2Md7HNa4hu5p3s9oP5zVc+p/VfteD9ksd
N2LAE8ms/Q/zPoLR630wdUwHYocGPkOY86gEf+Yqlj/o/MVPYHhl/cl+k6OX+l8mZY/mkOKNb8cf
0f8AuHj+o9cybusDNx7HjGrdVABO2IDtrm/R93vVzBzrs76w5OY217sTGa+4MDiGlrBtrG3+UrlH
1QfX0vJw33Mdfe9jmWAGG7P/ADp6u/V/6v8A7Kqvbc9tz74BIBjaB9H3f1lZyZ+XGOQhRlEe1H+t
A8NyaeLlubOWJyWIzl789fkyR4+GH/ReTZnv6jfdd1HJyGmJqbQNwBPA27m7GNV/p3Veov6P1DFy
H2E1VepTa6Q4e5rXN3/S/OV4fVXqmFkWv6TmCqq0QQ6Q4D93Rr92399XKPq/lM6Xk4t+W6/IyW7d
7iSxsH80H3J2TPgIFGJjcOEdYcPzenh9K3DyvNCR4hMT4cgnL9HJxD0+rj9X+I8xj19Uy+kZOWcx
4pxHD9EXOJcXbd3ulXauudQr+q7neq42/aPs7bSZcGFnq/S/6K1sP6s5GP0fM6e65jn5RBa8AwI2
8/5qrv6BT0/6v5GP1C0uZ6oubbU0uLDDaw7Z/wBUkc+GZo1KsseACP6P/oyI8rzOOIkOKF4JDJKU
9BP1V+l6fQ41uN1PH6LV1MZr/TyXw6oOcCNXbXbt38hT6rZZZ9XumPscXuLrZc4knnxKpZLaW4Aa
zqHrta/9HjBrxEzvsh/taugZ9XsnqXQOn1B4pdVveQ8Hh59qlnKMOCUyB+slrw8Hp4ZcLBjhPIMs
McST7MfTx+56+OHFK79PE0usdUy6undMwMew1NfjVvsLTtJn2tbu/d9ihnN6h9W+oUenluuD2h72
mdp12va5hLlt9R+qv2zAxKhaGZWJU2oPg7XADg/nKtT9Us/Iyq7urZYuZVADQS5xA12bnBu1qhhn
wcIuURH1+5Ax9WQy+RsZOV5ozNRkZ/q/ZyCVQwxiP1kS5vWcrqLvrE+rDusa+wsFbA4gAvY3+z+c
um6V0h9fTWY3UgLrWPc4PDiSJP5tvtsaqt/1bvs683qjbmCsPY/04Mw0NbH/AEV0Cr8xniceKGMj
SMeIj5uOP9Zt8pyshlzZMoPqnIQjI8UDjkeLi4UVGPRj1+nQwMbMkDuT+c4/nOSRUlVs3dm+7f4Y
1w0OHauj/9H1VM5rXNLXCWkQQe4KTnNa0ucYAEkrlcr6y9QybHtwm/Z6Wna1zxL3fy/3a2ogEoLr
Y/1Y6Pj3syKqSLK3bmy4kAjyK03sa9pY8bmuBDgeCDyuNb1TrFdm77Y57hzXtaWfORuXUdKzHZuG
254AfJa+OJHdOnKcqMpGVbWVmPHjgCIQEAdxEU81i9B6z0rrX2jCp9XFa8id7BNTuWlr3td7V2KS
SdmzyymJkBcRw2N5f3lnL8tDAJCBlwyPFwy+WH9xSSSSiZ1JJJJKUmIDgQRIOhBXFde+umW3Jvwc
ACk0uLH2HV+mktb9Fiysb679XwaH12Wtuke11olzT8fb/wBNWY8nlMeLQeBLSl8SwRycHql0JA69
n0BvSOltf6jcSkOBkEMbz9ytrx+n6/8AVq+oepVfZe55hzI3sP8AJFQ/9FruukfXjAyy2nqDDgZJ
/fBDD/ad7mf203JhmdpDLw78J4jFkxZ8Y+bGcHFtxDhjL/CemSTNc1zQ5pDmnUEahOoGypJJJJSk
kkklP//S9OzGl+La0aEtMLjG5uOxhdexxcP3CI/Fdw9u5hb4iF53kiG2t7tJH3FOitk1+p9cx8Lc
xo9W/tWOBP8ApHLqPqBnW5vRn23R6nqumNB4fwXD5HRrc3qVt73eliu2uc/udBIauz+pvo4zn4eO
3bS5u5vxb+d/alI3qu9NCt+r0Wd1HE6fULcqwMDjDG8ucf3WMHucsp31rrLiKMS20Dv7R9+u1V+u
VVX9THq62VgCuTAAP7qz75B9NrgK2jXadP8AOSACC9R0/q+NnlzGB1drRLq3xMeW0ua5XlxPQeqY
Z65Vh0O32EO3Fv0R2jd+8u2QIpQUsT6y/WjG6BU3fU+++0E11t0GmkveforbXE/4wWNORiFwkFjx
+IUvL44zyiMtjbBzeWWLDLJHcV+JeTsyT1Gy3Me0VWZD3PeG+JP7yzXdI9fOrbmZDq8Nx/SOaJLR
5N/OWgGta0NaIaOE4PbkeC1Z4ozhwG68HBxczPFlOSNGz+lqzf176t/V5no9Fx/tWTEHKsBa9pH7
73Abvd+41c51DrvU+pZTcvMvm1o2t2AAATP0Vt2YdFtjbQ0eqzVpIB/B3tes+/ApawtyaNRO3KoE
OEmf02N9C5v9RUMnK5MZ4o+oDqPmDr4PiGHMOGfokd4z+SXkXQ6F9deqdJIa1+6nvW6XM/zfpV/2
F6L0T68dI6oGsscMW92ga8+wn+Rb9H/OXk9uK8Y5vc1rqRDK8iuQCT9Au9Ta9nud6fuQqcbJ9SKH
An857dWT+7/L/sKOExmPBOB9z96PzMk4HAOOGQRgP0Mnyf4P7r7+CCJGoPdOvLuifWTq/SmtrFvr
0jmmzVv9h30mL0HonWKesYf2mpprc12yys6w4CefzvpIZuWni1Osf3v4p5bncWc8I9M/3T/3JdBJ
JJQNp//T9VXCdTxIz8qtpDQbHe0jx9y7tcj1pmzrFvg7a4fcB/BOiguHh9YquzG9PsorfY0aPLSB
7fFu7a5y6TobW19RaBy5rgSuJrb6H1oZ2Bc4feuz6Y7b1KjzJH3go90MvrK0NzmO/fr/ACErjesW
3sxqaq3ODHvexzG/nH6TRou4+tVZDsa4fymn/qlzjLsOh7vtBLLNxdW5zZbBGsJDZR3an1Y6dk4X
Uaeo5H6IMMCr86HaOc/91enAgiRwVwramlwsbYXiJBI2iD+41dvQ4OorcOC0H8EJJCRcd/jCbphO
87B/1C62+6rHpfda7bXWC5zj4BcB9aOuftT02Np9KulxLHEy4g6e5v5qm5T+fh9f+i1fiH+5cn0/
6UXn0ydJa7ziyeZ0cJCSRSUhtwqLSHObuiPaSY0+jLUQNa0REAdgn7FVsnKbU4t1LuYH96ZIwxgy
NDv4s2OOXPKOMEyrYE/KE7nhvOi7z/F44O6Xkkf6c/8AUVrznJx3lzWOsGrA5zW8An6Icfzl6H/i
2EdGuHcXn/qK1S5nP7mOQAoCnU5Tk/Yy45GXFKQkKG2z1qSSSoOo/wD/1PVVy/1kYW9Srd2fWPwJ
/vXULnfrU0i3Fs7e5v5CjHdB2eL6hSWddquGg3A/eujx7nnOx/TaWtFjdznaGJ/NasfqtW7Lps8I
PxWzu2OrsHYtcnIdr6zMnBY/9ywfjLVwv1nZuwan92kj8ZXoXXWb+lXR+aGu+4grh+uVer0wwJIP
8EBskt3BcLMGh3/BtB+S7Lpzt2DSf5AH3Lh+i2N/ZVReQ0NEGV2PQbfV6ZW4CBLgJ5gEwlJQY/WC
u1/TXmsB4Y4PsYRO5o+kF5/1m7AZXRXU0stue5zgTIAA2jaV6kuR+uf1TqzKP2jhhtd+KHPsr4a9
n0nR+7Y2EcU+CcZDoVmbGMuOWM7SFPFJ4KHTZvbJ+kOQiT4LajISiJDYvL5MZxzlCWkomirQfHwT
EykknLbW7FAaxhuse4S6NoniDMqweCqNmSKrntJidZ+ZVbnP5r6h0PhJrmP8GSV4rraGtAaBqQP4
r0H/ABcR+xbj43k/9CteaXF72Gf0bS3c0uBl+oEN+9emf4u2bei2f8cfwaxUNfan/guxMj3sX+F/
0XqkkklAzP8A/9X1VY31mx7LcSuytpd6T5dHYERuWyoXN3VPbEy0iPkiDRUXgc7GBbU/WeFoU12Z
LKWViC47Ne0aaotuLuxY/Oa5W8eva/HeBwWz8inLXYzai/AtqmSayJ8dFxuTTvwXeIghdy9u5jm/
vAj71zBxXenYzwkH5IBJcrolDTikub7gV1nQj+qOZ+68/iAVg9Oo9JlrT8VudCDhXb7SGlwIJ7kj
3JFTqKL2NexzHiWuBDh4g6FSSTUvnPWfqT1HBzBb0qt2VhvkFgI3sH7vu/nGt/NWG5pa4tcIIMEH
xC9iXF/Wn6rZLsmzqGAz1GWe66pv0g7857G/nble5PmAP1czQPyk9+zl/E+UMwM2MXIaTA6x/eeQ
STuaQSCII5BTLRcRQE6KjfV+ne6WxsdO4THm3+Vqrw5Wfn1WWWgME869u3Kh5kXjOl6jRufD58Oc
aiIqVk/3UbsloI9OXuLAwvdz/ZXqH+L8R0V/nc78jV5xh9Mc97WhpttcYaxoJ1/kt/OXqf1R6bld
O6V6OU307HvL9kyQDH0lSywlDCeOgZGPDDydTFmhl5mPtgyjjjLiyfo3LhdtJJJU2+//1u+6nm3j
qFWE28YlTmb3XEAyZPtG7+qjYA6jXkOrusGViFssyBtBB/d2tKH1e7GZdWzOxvUxXA/pxMtd+77f
d/0lSwK6j1IjpbnnENbhc507Q4g7Y3R+dsSUmfmdKa99Re4jdBsAJYD/AFkS+7BxH11WvO5w3sLR
II7cLKqcyrEfh5FtrLNxa7FawHdryHEf9+V709nVem1kH2UEQ6JENs+l/Kaih1MXqmJlMscxxb6O
tgeNpA/e/BUft/TMi8MbuZ6xhr3NIa4/yUNgaeodVDmGxprEsb9IgjXb/KWey4sFLcTIde7eA3Dt
rnb/AGzuZ/mIJb739Pw7n1WOc+2Pe1gmB/KV6nPwsfp4yA8uo3RIGoJPBaqNOTT03qGb9tBb6zt9
Vm0kObq7YI/rKo+qxvRMi1zTWy68PrYdIakp2/2zgelZdvPp1O2F0HVx7M/eU8PqeLlvdVXuba0S
a3ja6PFU+sMob06kPY8VsLYfVHsMfSj91Vul32u6m1ld/wBtp2Hfc6va5uh2je/3/S/lJKegSSSS
U5HWPqz0/qgLy30cmNLmcn+u389cN1XoHUOlWfrDN1P5tzNWH4/uf2l6go2VssYa7Gh7HCHNcJBC
sYeanj0Pqj2P/ctPmfh+LNch6Mn70ev9+L4ybntuLSBs7HvKkXM9c1H+cA3ERwF6hjfVbomNmHMr
xwbTq0O9zW/8WxyLm/V/pOde3IyMdrrGmSRpu8rNv01a+/47+U13aP8AonJw3xREtq14f73E8l9R
MXIPU3ZPpu9Btbmm0j27iW+0OXfKFdVdTBXU0MY0Q1rRAAU1Sz5fdnxVXR0+V5cYMQx3xa2T4lSS
SSiZ3//X9VTAACBoPBOkkpp9QvOOGWNiXHaZ81Rp6pY4tbprZsPita/HqyKzXaJadfgR3VbH6Ti0
PLwC927eN3YoqbqBj5ONkhz8dweGna5wBGo/rAbkV7A9jmGQHAgwYOvgQucxA1mDg+tY+vEtdab3
BzgNwJbU0lv0G6IKejInnVVepZlmFhvyGAOc0tADuNTHZZNbrbn49Pq2fZn32sqfuIc6oNEe4/Sa
rnXC39kWBvDXMbr5EJKXf1HqGM6l2ZTX6NzwzdWTILuNHK0/qXTqbfQdcxjwYLewP8o/Raq1XRw9
1NmRk23trh7a3H2z2WTk5Asx8tri2qw2EnGZXLjBH6Sy525JT0eRmYuKAb7W1h30Z5PwCr5HUgyz
DFG2yvKftL+dNPowqL7acfqVOTmf0d+MG1PILmh3MaT+buQMprL68EYlZxG23P8ATme+weoElO6M
zFPqRa0+j/OmdG/1nJsfqGFlOLKLmvcNdo0P4rEryPs/SMnDdS034zosYRoQXfzzv31LEsbZ1bGN
dwu/RvaHisVtBg+xn7+1JTrv6p09ljq35DA9n0hPCi7NjMZWHV+g6n1SSTvj3e4N/wBHtCwTZj1d
Iuw7qiM1r5dLTP0v5z1P6qtWf0yr/wBNx/I9JTqt6p05z2sbkMLn/REqd+fh49gquuax7uGk/l/d
WHbXW36v4jw0B3qg7gNZl/dHdZRi9UzDnVF/2gN9A7S7cIh1bUlOzRfTkM9Sl4eyY3DjRJZ/1c/5
Mb/Xd+VJJT//0PVUl8qpJKfqpJfKqSSn6qTEAiDqPBfKySSn6guryt36IgtnjiAi49RqZtJ3OJkl
fLSSSn6qTQJmNT3Xyskkp+qSAdDqE6+VUklP1UmAAEAQPBfKySSn6Xs6K54dUcu04zzLqjBPM7fU
d7losa1jQxohrQAB5BfK6SSn6qVHI6dbZe66nKsoLxD2j3N/sh30F8xpJKfqPDxKsPHbj1SWt7nk
k8lJfLiSSn//2f/tHeBQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4
QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklN
BA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAA
AAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAG
AAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/
////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP//
//////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0E
CAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANdAAAABgAA
AAAAAAAAAAAAmAAAAJgAAAAUADEANQAyAHgAMQA1ADIAXwBmAG8AcgBQAGEAYwBrAGEAZwBpAG4A
ZwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAmAAAAJgAAAAAAAAAAAAAAAAAAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAAB
AAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9u
ZwAAAJgAAAAAUmdodGxvbmcAAACYAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGlj
ZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVt
AAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5
cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAA
AAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAACYAAAAAFJnaHRsb25nAAAAmAAAAAN1cmxU
RVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RF
WFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJ
aG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25l
bnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFF
U2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRz
ZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAA
ADhCSU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAg4QklNBAwAAAAAFuYAAAAB
AAAAmAAAAJgAAAHIAAEOwAAAFsoAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00A
Af/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwM
EQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwM
EREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAJgAmAMBIgACEQEDEQH/
3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEA
AgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFi
MzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF
1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFx
IhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPT
dePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APVU
lk/WPL6lhYQy8Etis/pmubu9p4cP6rlH6tdad1XEd60faaTFgGgIP0Hgf9FS+zL2vdFGIPCf3o+b
D95gM/sGxMjijfyyH9Vhm/W3p+DlWYt9N4srMGGsg+Dm/pfouQP+fPSP9Fkf5rP/AEqo/W/Bp9Bv
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
AABBRnJtbG9uZwAAAAAAAAAARnNGclZsTHMAAAABbG9uZ201NfEAAAAATENudGxvbmcAAAABAAA4
QklNUm9sbAAAAAgAAAAAAAAAADhCSU0PoQAAAAAAHG1mcmkAAAACAAAAEAAAAAEAAAAAAAAAAQAA
AAA4QklNBAYAAAAAAAcABgAAAAEBAP/hFKFodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/
eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4Onht
cG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQu
Mi4yLWMwNjMgNTMuMzUyNjI0LCAyMDA4LzA3LzMwLTE4OjEyOjE4ICAgICAgICAiPiA8cmRmOlJE
RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi
PiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
LyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0
RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHht
bG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0i
aHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25z
LmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3No
b3AgQ1M0IFdpbmRvd3MiIHhtcDpDcmVhdGVEYXRlPSIyMDExLTA3LTE0VDEwOjIyOjMxKzAyOjAw
IiB4bXA6TWV0YWRhdGFEYXRlPSIyMDExLTA3LTE0VDEwOjM3OjUwKzAyOjAwIiB4bXA6TW9kaWZ5
RGF0ZT0iMjAxMS0wNy0xNFQxMDozNzo1MCswMjowMCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiB4
bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDlGMTg5RjRBREUwMTFBNDJGOTI0NDk4OUZERTND
IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjgxMDY4QjU4RUZBREUwMTFBNDJGOTI0NDk4OUZE
RTNDIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODEwNjhCNThFRkFERTAxMUE0
MkY5MjQ0OTg5RkRFM0MiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249Ijcy
MDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRp
b25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3
LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEs
MjcyLDMwNSwzMTUsMzM0MzI7QjkyNDI0NUU5NzA5RkREM0YyRjU2RTE1MTMxOTU2ODciIGV4aWY6
UGl4ZWxYRGltZW5zaW9uPSIxNTIiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIxNTIiIGV4aWY6Q29s
b3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3
MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUw
LDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3
MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4
LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQx
OTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2
LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwy
NSwyNiwyNywyOCwzMDszMzE2MTU5REQ5RDM3QjU5RjkwOTJEQjREN0Q0RjlDRiIgcGhvdG9zaG9w
OkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4g
PHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIg
c3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MTA2OEI1OEVGQURFMDExQTQyRjkyNDQ5ODlGREUz
QyIgc3RFdnQ6d2hlbj0iMjAxMS0wNy0xNFQxMDoyMjozMSswMjowMCIgc3RFdnQ6c29mdHdhcmVB
Z2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9u
PSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpFRTQ5RjE4OUY0QURFMDExQTQyRjky
NDQ5ODlGREUzQyIgc3RFdnQ6d2hlbj0iMjAxMS0wNy0xNFQxMDozNzo0MSswMjowMCIgc3RFdnQ6
c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIiBzdEV2dDpjaGFuZ2Vk
PSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1w
LmlpZDpFRjQ5RjE4OUY0QURFMDExQTQyRjkyNDQ5ODlGREUzQyIgc3RFdnQ6d2hlbj0iMjAxMS0w
Ny0xNFQxMDozNzo1MCswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9w
IENTNCBXaW5kb3dzIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJj
b252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBo
b3Rvc2hvcCB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBz
dEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhv
dG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2
dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDlGMTg5RjRBREUwMTFBNDJGOTI0NDk4OUZERTNDIiBz
dEV2dDp3aGVuPSIyMDExLTA3LTE0VDEwOjM3OjUwKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50
PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6
U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlE
PSJ4bXAuaWlkOkVGNDlGMTg5RjRBREUwMTFBNDJGOTI0NDk4OUZERTNDIiBzdFJlZjpkb2N1bWVu
dElEPSJ4bXAuZGlkOjgxMDY4QjU4RUZBREUwMTFBNDJGOTI0NDk4OUZERTNDIiBzdFJlZjpvcmln
aW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODEwNjhCNThFRkFERTAxMUE0MkY5MjQ0OTg5RkRFM0Mi
Lz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0i
dyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEA
AGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MA
AAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJY
WVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAA
JGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8
AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2Fy
ZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0Ig
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+i
AAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA
AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNo
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA
LklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAA
LklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAA
AAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVD
NjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYx
OTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3M
AAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAA
AAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAy
ADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwA
wQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFn
AW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksC
VAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE
/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbA
BtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII
5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR
C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMO
Lg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFP
EW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U
8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjV
GPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4d
Rx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7
IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgn
SSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizX
LQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQz
DTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/
Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRA
pkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgF
SEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91Q
J1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9
WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9h
omH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1
KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+E
f+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSK
yoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0
lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiai
lqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8W
r4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8
m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4
yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY
6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep
6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3
ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkQAAAAAH/2wCEAAICAgIC
AgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUFBgYHBwgHBwYJCQoKCQkMDAwMDAwMDAwMDAwM
DAwBAwMDBQQFCQYGCQ0KCQoNDw4ODg4PDwwMDAwMDw8MDAwMDAwPDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDP/AABEIAJgAmAMBEQACEQEDEQH/3QAEABP/xAGiAAAABwEBAQEBAAAAAAAAAAAE
BQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJz
AQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYX
VGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG1ub2N0dXZ3eH
l6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6EQACAgECAwUF
BAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz
0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2
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
08xBklkkYs7uQAKknsNhtil//9k=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/IMAGESNEW/FLAGS/UK_flag.PNG

iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAAHeq0ewAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAISSURBVHjaYvj//z8Dg2qjA7Pb2StO7Mas
+wACiOGahvFFpi0f3+oBBBDjmaikK7wqitpHTpxiAAggBrXIxTY3tu25DNLAeKt/+v9bO7YzXPn4
9iHzS3Gthn+yQgxavxkiAAKI4evhPTaPXnz4/+323f9ntu78vyww8v+dPfsdGXeGxV3/y8qm8enY
cYa3MlIMnxj/MXz59+8JA8hABd8el1JR6SdFCSnPGJTy3EFiAAEElnh9/GTfZS2TnzKeXdPBNn/4
+OkmHy+P2v3uCQzLf/AwqJ3Y+JA56tf/yV/u3Wf4dOEcA8OtKwxPP3wRYHn08hXDr2u3GF5du8rw
U0WF4RXzXwamR78YH722NGJ4+/s3w1Y+SQYOQ/1XYIum1NavzBaV/COoG7oJxAcIEOEAHv8B////
ADBRmlz7Bwh9yo9GJvvN0ADuxcgA9D08AEOPzAATBwTeayL4iW2SfJoB36mvkRJBP24HDgoAAPr7
APPHywDpvL4A/ENAAPTy8ADu3+AA9yMgAA4LC6MBvxgj+gANDQUCDgoA/gcGAP8FCADy7u8A7ern
APr7+gD5AAMA8v79APv///0EAqmepOu2uWECHx0AAAECAOqDiQD0AAEADm9qAAARDwD47e4A5sTI
ACElIrQB////ABg8emz6+e94dD0KG/SmqwD7/wAA+0hEAJrA4QAFAgbrWVRBjJiLdoqLF/TwgvCi
MQAAAABJRU5ErkJggg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/ImagesNew/email_Icon.png

iVBORw0KGgoAAAANSUhEUgAAAAwAAAAICAIAAABChommAAAABGdBTUEAANbY1E9YMgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABjSURBVHjaZI4BDsAgCAOL2cv2memL9hr9
GkMc1U1ipNAjqeCqEHhZ0ykU3KdQCMK6C6GhqX/3aY9snCn3R1/mZsaYpbRxRv1Cg9htLgW5cljC
Rhy3OoRfbWjCJ7AswSf4CDAAqb8rDrQqt2gAAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/ImagesNew/print_Icon.png

iVBORw0KGgoAAAANSUhEUgAAAAwAAAALCAYAAABLcGxfAAAABGdBTUEAANbY1E9YMgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABrSURBVHjalFFRFoAgCGM+TtZp6kR1mTpa
S62XWDxLfiYTBlOQlBjAtO3SCM4DEuqDdIuj2H3W1qUnos7o1mYfE6I9LrUAZFzZ4+FqwCknBTLl
RHhVIT9ytYTFUJMsvdaIQbXJLw+9P30IMACOwCw4EQWPVQAAAABJRU5ErkJggg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://a.analytics.yahoo.com/p.pl?a=1000857785262&js=no

R0lGODlhAQABAIAAAP///////yH5BAQUAP8ALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_de.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NjVBQjRFQUZGOTBDMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NjVBQjRFQjBGOTBDMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NUFCNEVBREY5MEMxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NUFCNEVBRUY5MEMxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PubvHF0AAAJcSURBVHjaRJRNbhRBDIWfXdXdMyGJhMRE
isgWiQV7TskpOAYbVhyCFRsCEiyAML9dtnmuzoRRq1TT47I/v+caMZtVq8MkFGGQgvNHRJZNRKDv
BW1GHeAGl/C4u7t98/rV5sVmf2wV/hTJk9y48LszIzeTw6N+/PTh+4/f/M2qXtm6aIx+3KMwXhn6
vyA35hV8RTSHOo4l4g+/tJUct7uo+hBeJVpkeIW0iE4oiaCJWgWu8EYKNAlzWfN9wWwyiVoGBvK4
MtCfGlYNa4oaWhv2JM28p0GTiptqbsICYohCHNaJ/MmCLbCe5XIYKpNXpnw7zNPI1mHmAyVWErmZ
lcI3p16TizF0FhSCnppI1rT3Ay6eEQdqUUcG8RwLIRUlQOahvPlGa7bx9ZAYTFT3FTpksrlh1TDP
GXd5jeOut2o4lwUbsEjXwW4p0d+uGgzDiAN1Kxn3qwHTYksmKrQX2Tf37UjAmTV1dKxOHaZRYhjX
iRYmZyzaspFIIQbPFD+ZI0oqBOaoKJr5iMfkTBHZeEYvHXqfPUkncXVaaOkjbb8mClaLN4wr/UyP
ZjXpKaSj8tmmu1RIxpt3uNmg1myVs5XVap7nieiqknYRiSLTz/V9N8kxT7eozzHVRz2WM7l6jhbk
fHdKV1XwQCIvql63M2Z0MVpWSE7JK5LMOJvJKnO/QOTaJQWttAuAkytj0kp3nwVlqezLTc2ndArS
7kZc8U600M/3mNa4lGxyr+DQ9Uv6qGT09shJH7jS0i/f8JJ3zxuHmbBDjnUUfeqqf9w9x/hRgROC
Yfw3KJyffwIMANoyZCV/2n8cAAAAAElFTkSuQmCC

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_IT.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NjVBQjRFQjNGOTBDMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NjVBQjRFQjRGOTBDMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NUFCNEVCMUY5MEMxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NUFCNEVCMkY5MEMxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm32PGoAAAJmSURBVHjaXFNJjlMxEH1Vtn/nd3oSIEEj
ISHOAIgdK8QB2CBxh74EZ2LLBXrDhh2IJRvoKekM33YVVf4JHbB+porfUM9lEhGCKGwxoQIKTYLC
CMpE9ou8BIhVfCNXFZBGUtHnZ89OX033pwcdpjeLi7dP37978kHn9XJKSWR2dHh8/vXBx7N6up/x
cI7h++dPb36XWAgX9cfVJdYX6FaYVbx8/Prk0eFeOronlTnHIWC5xPkXc5UH7Js3mLcQg+qvHjNs
F+E6zXMyj8vMqZd17qZJTMn/TO3JBtbWSjCeDojo92C9THjK2hNSp5E5RQ2I0YXChjq3z2j4iTae
jAmwXCPlrkenFWxbl5GCokwgW1PqGBBxgdrL0pwq+oI9D49IIKt6aen1XQmMFLCzyB7bZoxrMzDB
bcAVsA6oYahhbS1YeHNZFEPFYsclW1xpR2fKMuOWV4eFs2GVllXnlsV99CyDaMLi9k5UXdPdEoXe
CNee9Elj7nICHQY6MLDGfcsf1O261dGtc3Czov67zYuOCtXmpw7FC7rpry3++x5lp3cftyC+l+3Q
NBgtjQcywjcM1OaBCP9Epz7GNpw+xMpsfmjYkXS3g2u6wlaN/YtBusaWvA8mq8rEzfOdZifKGw+t
QxZvWFls9pyTSkEurmUBIsidJkj8ZtWRJ4wlw7M2ZwXRome7hcz/ZWtZuNsxUrRL6U3ZzaRqBba7
AgeORrcBeTYGsVy12uwcuOYsu9D11UIzz2+W2g8yp3QsdfXTAKsWsZ3sN+AFFVIt2mwbBfEYkxVZ
MbBPdfAz4xa2BLYIlDK0U/ojwAD7JDfWnGpsPAAAAABJRU5ErkJggg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_FR.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NjJCOTNDMjZGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NjJCOTNDMjdGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MkI5M0MyNEY5MEQxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MkI5M0MyNUY5MEQxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjJnHBAAAAKfSURBVHjaLFQ9jxMxEH0z9u4mF+CEQNDT
0yCERAklv4CKipIfwj8DIVHQ0kCBQHfAHRGXZLO2Z3jjI1EcrzMz72PGETd3OEQEgBuEDxr7/jK4
mvAT33wSUYhbVdPcYHcevnz88Hk6HWV0v7h6/fL500dT3e+rTDbc3qUybC/GN2/vr4fzvC91+PD+
3atfX3OCby8P7z9+3ckVrEw7vHj2+O69JysfLBmpLOaHP9vvnz6f7X6d4UqxfnD8zeNsZNY2uz8C
TcjzcZuqnkjKIJl2zLIeyb3adHl+y7+d4oRavmB2HzOgatl0RK7YCJbKA2XNZpjUURw5J5llvMEk
7Bv2hYYIsjiFz5IPjj3KEVbdubectYFSElgsWZVdBZizCDZRgplMRfUV1yF+WqWWrOA4SvZKxipp
mlqe2kSrmTA5DmAHuHdFXWGZcEwww1JWra15aJawYqYLWzJgjLZ5dGq958Y9kysk469iouY12mgh
d2xak6Kk0HSUufqabI+RHZ6ysZlakByrA/LSdah6o90qg4URnh3N9WaZCUhNBXY9J9rXBFliYHAC
G+grpLkwjdaokPAQtTzimNCCZTfJpPUsyha2pEhS8xTGeW6pRnkLgV0k25wkcjwwndJoLGNb6pho
EkQpxmlTzGtusuh/kgHksSHtEnAcGVYUwpomV5oes38Nx+455xQl7kPVLo83QcKivIOeYODQWEcr
bt2Jllr23vOxxxFqLb0r2jmI1pHTE+JTdm/eW8Vwks19HBoW7yQ9pIQOkip0wIJ/RKLVqKjpOix3
a6hSwz3kOJ0b+mEE6U+UKdRq8aK77VLrsj/M4uNcy2Za1YvL39hugG3X/CNq06hG9A7Iu2ixctz4
Bgc+MAI6rhlSBLWwP/d/i38CDABbdYWD06E5YQAAAABJRU5ErkJggg==

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_ES.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NjJCOTNDMkFGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NjJCOTNDMkJGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MkI5M0MyOEY5MEQxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MkI5M0MyOUY5MEQxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ps0MGCgAAALQSURBVHjaVFRLbhNBEH3V02PP2HEcO+SP
+AaBALEJSFnAghuw4iYcgGNwAk7AAgkJFggECIHYIEKQokRCcaL8PPHYnpnuoqpNkBi1Rt09VfVe
v341xI5h4BkEffTNkJ1/DzMTg8mDIvlEVAIyMRbknt3prN1+MG3TZtqpSufcOKq7vBhRLQFihvPk
jWfJinyNDX1//e7R5k/y3m9Nm4VFYKhgzqNew3iMOEblFFsABY+NfpUyUqCXYWXAloiiU/C+hrKD
oBiH0SHslDCENahYORuZe4wjPU8RC11YRjmeRzaDWg3VEGR01zXhUrQHKD0sydlQeMVMDEpGU8Xw
VijQCyxeBipZSin4EaiOkayMYkpOTUVETeYS7WGOJZCFAvJlYFYzy56mVR7NeUWwQds0CB4FyaOw
yakUIuHi5kXnI1Q/8OsViiHaq2g+RHrp7JImdxNGLdCC07syxGa7j/3f6B8h76Pduri0cHfgsLOl
AT4kVCE5OlvWPTwZI9rSDOIKB2/Q3Edr9+nRt+en2Xqa1Ck4YvI2Ic2E/CKCYbJyFec+4LQ3N4j3
t/awubdxo1Wl76kxOzaPFe2fnaREEQgrGfGG2CpaRndt/fx9dG+2+tnLjd6TxpKz1y7QmUiTc9Ik
Te4mkopGFIo3UmTJp9jgyq1sZvx50MXx4sf+NK6HE07y+WwI5xOgLScV933tmSGwtIg0R6sPSpB5
9Bu4mmga/Q8rTAcZploVOa6ye3ZK7jOGKbQfFKjUQHlZIRZ8IxJSEFcseVBg4a341tHOF6yuINtG
I0HSwGHWTLp5PuQpjyJYT6DGBON1SMUitKSlyDQTcI65LvIYI3FGx2YFL3cwyP9StAHKR9o30itl
oeQtc7XN2h8dh6JEVUe9OBFNdvtqUW1mh1NJLtXG0g9S4mikFalijrSwDz048YlhCQ9WlThiT5PT
y79BK7FnVe2PAAMAG/FQTxiX/X0AAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_RU.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NjJCOTNDMkVGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NzQyNkFBNDZGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MkI5M0MyQ0Y5MEQxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MkI5M0MyREY5MEQxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqX4VfkAAAI3SURBVHjabFM7jlRBDCy7u9/szjABgoAA
CaQFIYQECedYcQcuwAG4CDEBKXAPAoLNVkIiIOIjJHaXnffapuw3w2gFrVarP+Uuu2yL2WReVEdB
A4ejO4oaoHGE5Trvsb0xHr06pnfv3z5+8shFbOyttW5jreoYYQfww0T3XIuIoI8fTz48Oz6ukMX9
o3tHdx+Iy+RQgYupdLhCLHy4MmgKKfy3VYUt21roci1Eql7CFq6afpPkr6Xk0juphiW801vUA0JL
xGjOjYV9dxcvZ4zKzZLI6YzQEVJNE92uAm03fv0uPwQH2sSkul46ZRCCV8S6aFh6OMpAeL269dWo
ELq9fL5YXxvEW49ASVjdNtQDeiFYQDZuYerYaLp2cV5evQFV8SqniJSsMp5hJ6bkpcUXW51qXk7A
l0u/Q86eh0WCaqau76A/82j7TMZYAmfNay3hgCRCcm6Stidunasnre4U5tMQCrlv8puSc0jEDKLB
ZbpjaTDbT7lRZ1ZEhjRYJ7rtvp9jW/1TemNiTlkN1aQ/xeuK5SHKBn1A6THJohmD2K50Ut5gnsAU
vuDJz/P//ZSrx3/m9/iD+QQ+AzcrmgcX/R6j2CEawRWPoyY164dtNDi+FVz3SMMYskwRGbG0b7My
lpaz6LlnVc6pG3r4RW1by+cV9o3RMrMF/xk9qjJSwy6zE8VD2wpnO56+b5BtTuaaMMcn4Db9Z60q
1eKL1AnsnS1ThxXGatGynrpKtJyxBbqX4v5HgAEAiF0O7PEuKd8AAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.packagingeurope.com/Images2011/top_UK.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAIAAAD9MqGbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6NzQyNkFBNDlGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6NzQyNkFBNEFGOTBEMTFERjg3NTRFQjU5Q0YyRTBDNkUiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NDI2QUE0N0Y5MEQxMURGODc1
NEVCNTlDRjJFMEM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NDI2QUE0OEY5MEQxMURG
ODc1NEVCNTlDRjJFMEM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlFG4xAAAAP/SURBVHjaHFRrTJtlFD7v+3290gIFSkcZ
cww2ZJEEl7m5xZi4xWUxiiNeglGThW6ZkhiNij+WBWPiVKJzm/GyeNtUiKBLHKJkTMclxv2YYxUU
HYwxoF9bKNDr1/a7vscX/52cnJPnXJ7nIYwhgEmIAKaBgkgAEAxiikB5AITxJM8JhJnAa3gIoCNY
CCMmsprK9nvr/GJlQdSqWUUs9JE3HtyZPPOxSdi8RatrCfwwkZoYnysTCnRmCyetU9O/Sv+eEymD
QOfmCz9Pj42kBanKhNSOR8vrWtcPXjxvk7PrNdjWdLhzKfdj920HkHx5bmtD1bFXHufgFClWv9o+
fGDP0UCTSRWAUsw51NlYFWYZr3UCyKgumwD2fH3JQy0Nl47su/udl9Y6GcCmmr2/tQba5gaufrKP
7k79wRZsm32hJIgMbqgAxQXxdAwatbPtD/S4ceaZ+5IV6xigKAAt+f7srv6BkaNPC5PXrhzsGNS1
2M15m3+DEl6od5Rp4cSzj+x+k+kbP/ry2lhfw8m37AfbCAdFxLHIIqJmpKKzp04vf33B0HT9z78H
oeaSFwYAtK5fEmhE+i4vdnSYs5MLiPFsnHfxidD3zxgY9Xk5U/1YEzhxYSnoj4TWAdOTEAJI5G44
Vzf4tvvpnmaGzqpgZIZFPdsa+VeMHnetx6KiS7UqLmfaqbiLMixUnokw3SMUaipmZdPudpYxUyJ8
Rp0oeet+TRERCOKcIwlxg28te1SNfzvGieDicBuTdMohQnFK0RMS80J+BbwCrhqqDkwUGFWyLgXk
4gzYBS3OeaJCqVq+QLxOV9CXB1WFBJTIoN+xmCkCDlCEkOIcEvmR7nruUH1dbSK9ahctVos4J6ju
eVn8oHumAuZV2PLwU7Xb91uoQc2VuI3IesGWWIyPB4yxCSNnYDyBYWn1VmZ6iWEOb49e9sKwDXpt
gH0XGepzofFsKqgrS5jBuKIxREoI8YYcgpSPt7RG7zwQPjc0NBrJSAJfQDShEMvCK8pMcFH8avz6
psDvzW16Zl6zcKoZlAsi9dMXwzvv0a9LdcdPHlfJ4c5eYq2Wip2mAR4jW1lS03ai++XJWOV7p1TZ
CPoblj88Q5hACcLVFw5V7H1iuvOzrf1T35wYKQBPypYoy+UKXRAi+QiNgsf/3bd/7egZlY48X33s
XenF14AQyojeePrTrl33N73eHe2/aaPuFXHWx1dYBVkGlwU8NrCmk27YEB9MBDrOd5pu/+fdXKUi
BUtz79StK8tcvlQ0VaNETBUtK5mwHfIqiAoocloGyMAK1z5EjPffHupqLF1sfZKYpkkpP5XI+cHA
pCggrMn/f/UDN4y1S1DuCFRY8wiDg3GzQMb+E2AAkmwcgOzt3SoAAAAASUVORK5CYII=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/homepageFluid_optimisedNew.css

.eliteLatest {
	POSITION: relative; PADDING-BOTTOM: 10px; MARGIN: 10px 2%; =
PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px
}
.eliteLatestLogo {
	WIDTH: 13%; FLOAT: left
}
.eliteLatestDetail {
	BORDER-LEFT: #666666 1px dotted; PADDING-BOTTOM: 0px; MARGIN-TOP: 2px; =
PADDING-LEFT: 2%; WIDTH: 52%; PADDING-RIGHT: 2%; FLOAT: left; =
MARGIN-LEFT: 2%; BORDER-RIGHT: #666666 1px dotted; PADDING-TOP: 0px
}
.eliteLatestExtras {
	PADDING-BOTTOM: 5pt; PADDING-LEFT: 2%; WIDTH: 25%; PADDING-RIGHT: 0px; =
FLOAT: left; PADDING-TOP: 2px
}
.eliteBtn {
	POSITION: absolute; TEXT-ALIGN: left; MARGIN: 15px 0px 0px; BOTTOM: =
15px; FONT-SIZE: 14px; FONT-WEIGHT: bold; LEFT: 72%
}
BODY {
	FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: =
url(../images2011/bg_wrap.png) #fff; FONT-SIZE: 80%
}
#wrapper {
	MIN-WIDTH: 1000px; MARGIN: 30px auto 100px; WIDTH: 80%; MAX-WIDTH: =
1260px; BACKGROUND: #fff
}
#container {
	MARGIN: 0px 30px; PADDING-TOP: 30px
}
#header {
	MARGIN-BOTTOM: 60px; BACKGROUND: #fff
}
#topBar {
	DISPLAY: block; BACKGROUND: url(../images2011/headerBG.png) red =
repeat-x; HEIGHT: 32px
}
#MainContent {
	POSITION: relative
}
.content {
	POSITION: relative
}
#dataBox {
	POSITION: relative
}
#jobBox {
	POSITION: relative
}
#eventsBox {
	POSITION: relative
}
#storyBox {
	POSITION: relative
}
#breakingBox {
	POSITION: relative
}
#magazineBox {
	POSITION: relative
}
#profilesBox {
	POSITION: relative
}
#filternewsBox {
	POSITION: relative
}
#inDepthArticlesBox {
	POSITION: relative
}
#myNewsBox {
	POSITION: relative
}
#latestNewsBox {
	POSITION: relative
}
#localNewsBox {
	POSITION: relative
}
#globalNewsBox {
	POSITION: relative
}
#industryNewsBox {
	POSITION: relative
}
#breakingNewsBox {
	POSITION: relative
}
#tvNewsBox {
	POSITION: relative
}
#popularNewsBox {
	POSITION: relative
}
#anotherNewsBox {
	POSITION: relative
}
#historyNewsBox {
	POSITION: relative
}
#poularArticlesBox {
	POSITION: relative
}
#jobsMainSearch {
	POSITION: relative
}
#jobsRegisterBox {
	POSITION: relative
}
.height230 {
	HEIGHT: 230px
}
.boxWidth#inDepthArticlesBox {
	WIDTH: 100%
}
.boxWidth#magazineBox {
	WIDTH: 100%
}
.boxWidth#breakingBox {
	WIDTH: 100%
}
.boxWidth#filternewsBox {
	WIDTH: 42%
}
#footer {
	PADDING-BOTTOM: 30px; WIDTH: 100%; BACKGROUND: #fff; HEIGHT: 35px
}
#leftCol {
	WIDTH: 30.5%; BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: =
left; MARGIN-RIGHT: 3%
}
#rightCol {
	WIDTH: 65%; FLOAT: right
}
#middleCol {
	WIDTH: 50%; BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: =
left; MARGIN-RIGHT: 3%
}
#outsideCol {
	MARGIN: 0px; WIDTH: 13.5%; BACKGROUND: #e1e1e1; FLOAT: right
}
.scale {
	WIDTH: 100%; HEIGHT: auto
}
P {
	LINE-HEIGHT: 1.5em; COLOR: #666
}
A {
	FONT: 100%/100% Arial, Helvetica, sans-serif; COLOR: #d20001; =
TEXT-DECORATION: underline
}
A:hover {
	TEXT-DECORATION: underline
}
H1 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #d20001
}
H2 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #d20001
}
H3 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #d20001
}
H4 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #d20001
}
H1 {
	MARGIN: 0px 0px 0.2em; FONT-SIZE: 235%
}
H2 {
	LINE-HEIGHT: 18pt; MARGIN: 0px 0px 0.3em; FONT-SIZE: 195%; FONT-WEIGHT: =
100
}
H3 {
	LINE-HEIGHT: 120%; MARGIN: 0px 0px 1em; FONT-SIZE: 130%; FONT-WEIGHT: =
100
}
H4 {
	LINE-HEIGHT: 130%; MARGIN: 0px 0px 0.1em; FONT-SIZE: 110%; FONT-WEIGHT: =
100
}
HR {
	MARGIN: 25px 0px
}
.greyText {
	COLOR: #666
}
.whiteText {
	COLOR: #fff
}
.lightgreyText {
	COLOR: #cccccc
}
.bold {
	FONT-WEIGHT: bold
}
.postData {
	FONT: 0.83em/130% Arial, Helvetica, sans-serif; COLOR: #a8a7a7
}
UL.postData {
	LIST-STYLE: none none outside; PADDING-BOTTOM: 9px; MARGIN: 4px 0px =
12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL.postData LI.author {
	PADDING-LEFT: 0px
}
UL.postData LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 16px; FLOAT: =
left; PADDING-TOP: 0px
}
.postData A {
	COLOR: #d20001
}
.postDataND {
	FONT: 0.83em/130% Arial, Helvetica, sans-serif; COLOR: #a8a7a7
}
UL.postDataND {
	LIST-STYLE: none none outside; PADDING-BOTTOM: 9px; MARGIN: 4px 0px =
12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL.postDataND LI.author {
	PADDING-LEFT: 0px
}
UL.postDataND LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 16px; =
PADDING-TOP: 0px
}
.postDataND A {
	COLOR: #d20001
}
.clear {
	CLEAR: both
}
.box {
	BORDER-BOTTOM: #bad6e2 1px solid; BORDER-LEFT: #bad6e2 1px solid; =
MARGIN-BOTTOM: 60px; BORDER-TOP: #bad6e2 1px solid; BORDER-RIGHT: =
#bad6e2 1px solid; -moz-border-radius: 8px; border-radius: 8px; =
-webkit-border-radius: 8px
}
.box:hover {
	-webkit-box-shadow: 3px 4px 3px rgba(0, 0, 0, 0.1), 0 0 0 0px #bad6e2; =
-moz-box-shadow: 3px 4px 3px rgba(0, 0, 0, 0.1), 0 0 0 0px #bad6e2; =
-webkit-transition: -webkit-box-shadow 0.3s linear; -moz-transition: =
-moz-box-shadow 0.3s linear
}
.inner {
	BORDER-BOTTOM: white 2px solid; BORDER-LEFT: white 2px solid; =
PADDING-BOTTOM: 15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; =
BORDER-TOP: white 2px solid; BORDER-RIGHT: white 2px solid; PADDING-TOP: =
15px; -moz-border-radius: 8px; border-radius: 8px; =
-webkit-border-radius: 8px
}
.innerNoPad {
	BORDER-BOTTOM: white 2px solid; BORDER-LEFT: white 2px solid; =
BORDER-TOP: white 2px solid; BORDER-RIGHT: white 2px solid; =
-moz-border-radius: 8px; border-radius: 8px; -webkit-border-radius: 8px
}
.boxNoHover {
	BORDER-BOTTOM: #bad6e2 2px solid; BORDER-LEFT: #bad6e2 2px solid; =
MARGIN-BOTTOM: 60px; BORDER-TOP: #bad6e2 2px solid; BORDER-RIGHT: =
#bad6e2 2px solid; -moz-border-radius: 8px; border-radius: 8px; =
-webkit-border-radius: 8px
}
.boxNoBorder {
	-moz-border-radius: 8px; border-radius: 8px; -webkit-border-radius: 8px
}
.gradient {
	BACKGROUND-IMAGE: url(../images2011/gradientBG.jpg); BACKGROUND-COLOR: =
#ffffff; BACKGROUND-REPEAT: repeat-x
}
.contactBG {
	BACKGROUND-IMAGE: url(../images2011/contactsBG.png); BACKGROUND-COLOR: =
#ffffff; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 50% top
}
.height250 {
	HEIGHT: 250px
}
.blueBG {
	BACKGROUND: #d0effc
}
.whiteBG {
	BACKGROUND: #ffffff
}
.redBG {
	BACKGROUND: #d20001
}
.greenBG {
	BACKGROUND: #96c992
}
.greyBG {
	BACKGROUND-IMAGE: url(../images2011/magBG.png); BACKGROUND-COLOR: #000; =
BACKGROUND-REPEAT: no-repeat
}
.searchBG {
	BACKGROUND-IMAGE: url(../images2011/searchBGnew2.png); =
BACKGROUND-COLOR: #2c5982; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: right bottom
}
.tab {
	POSITION: absolute; WIDTH: 166px; BACKGROUND: =
url(../images2011/tab.png) no-repeat; HEIGHT: 45px; TOP: -32px; LEFT: =
17px
}
.tab H1 {
	POSITION: relative; FONT: 150%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; TOP: 5px; LEFT: 10px
}
.tabLong {
	POSITION: absolute; WIDTH: 200px; BACKGROUND: =
url(../images2011/tab_long.png) no-repeat; HEIGHT: 45px; TOP: -32px; =
LEFT: 17px
}
.tabLong H1 {
	POSITION: relative; FONT: 150%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; TOP: 5px; LEFT: 11px
}
.tabElite {
	POSITION: absolute; WIDTH: 55px; BACKGROUND: =
url(../images2011/eliteLogoooo.png) no-repeat; HEIGHT: 41px; TOP: -3px; =
RIGHT: 10px
}
.eliteContainer {
=09
}
.eliteContainer H2 {
	FONT: 24px/28px Ariel, Helvetica, sans-serif; COLOR: #01325d
}
.eliteContainer H3 {
	FONT: 16px/20px Ariel, Helvetica, sans-serif; COLOR: #d20001
}
.eliteBullets {
	MARGIN: 0px 25px 0px 0px; FONT: 14px/18px Arial, Helvetica, sans-serif; =
COLOR: #666666
}
.eliteBullets LI {
	MARGIN-BOTTOM: 10px
}
.eliteCat {
=09
}
.eliteCatLeft {
	PADDING-BOTTOM: 2%; PADDING-LEFT: 2%; WIDTH: 55%; PADDING-RIGHT: 2%; =
FLOAT: left; MARGIN-LEFT: 2%; PADDING-TOP: 2%
}
.eliteCatRight {
	PADDING-BOTTOM: 2%; PADDING-LEFT: 2%; WIDTH: 28%; PADDING-RIGHT: 2%; =
FLOAT: right; MARGIN-RIGHT: 2%; PADDING-TOP: 2%
}
.eliteCat H3 {
	FONT: 14px/18px Ariel, Helvetica, sans-serif; COLOR: #d20001
}
.eliteCat A {
	LINE-HEIGHT: 120%; COLOR: #01325d; TEXT-DECORATION: none
}
.eliteCatLeftpcLeft {
	WIDTH: 48%; FLOAT: left
}
.eliteCatLeftpcRight {
	WIDTH: 48%; FLOAT: right
}
.eliteCatAZ {
	MARGIN-BOTTOM: 10px; MARGIN-LEFT: 4%
}
.eliteCatAZ A {
	COLOR: #d20001; FONT-SIZE: 14px; MARGIN-RIGHT: 1.25%
}
.network {
	POSITION: absolute; HEIGHT: 45px; TOP: -24px; RIGHT: 0px
}
.date {
	POSITION: absolute; HEIGHT: 45px; TOP: -24px; RIGHT: 0px
}
.network IMG {
	PADDING-LEFT: 10px
}
.purchaseData {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; MARGIN: 20px 0px; =
PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FONT-SIZE: 14px; FONT-WEIGHT: =
bold; PADDING-TOP: 5px
}
.left {
	FLOAT: left
}
.right {
	FLOAT: right
}
.marginRight15 {
	MARGIN-RIGHT: 15px
}
.marginLeft15 {
	MARGIN-LEFT: 15px
}
.marginTop10 {
	MARGIN-TOP: 10px
}
.marginTop15 {
	MARGIN-TOP: 15px
}
.marginTop30 {
	MARGIN-TOP: 30px
}
.marginTop45 {
	MARGIN-TOP: 45px
}
.marginBottom0 {
	MARGIN-BOTTOM: 0px
}
.marginBottom10 {
	MARGIN-BOTTOM: 10px
}
.marginBottom15 {
	MARGIN-BOTTOM: 15px
}
.marginBottom25 {
	MARGIN-BOTTOM: 25px
}
.marginBottom30 {
	MARGIN-BOTTOM: 30px
}
.paddingBottom15 {
	PADDING-BOTTOM: 15px
}
.posBottomRight {
	POSITION: absolute; BOTTOM: 0px; RIGHT: 0px
}
.posBottomleft {
	POSITION: absolute; BOTTOM: 0px; LEFT: 0px
}
.borderWhite1 {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px solid
}
.button {
	PADDING-BOTTOM: 4px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; BACKGROUND: =
#ff920d; COLOR: #ffffff; PADDING-TOP: 3px; -moz-border-radius: 15px; =
border-radius: 15px; -webkit-border-radius: 15px; -webkit-box-shadow: =
rgba(0, 0, 0, .25) 0 1px 1px; -moz-box-shadow: rgba(0, 0, 0, .25) 0 1px =
1px; text-shadow: #000000 0 -1px 0; -o-border-radius: 15px; =
-o-box-shadow: rgba(0, 0, 0, .25) 0 1px 1px; box-shadow: rgba(0, 0, 0, =
.25) 0 1px 1px
}
.button {
	BACKGROUND: #d20001
}
.button:hover {
	-webkit-box-shadow: #ffcc33 0 0 5px; -moz-box-shadow: #ffcc33 0 0 5px; =
-o-box-shadow: #ffcc33 0 0 5px; box-shadow: #ffcc33 0 0 5px
}
.button:focus {
	-webkit-box-shadow: #ffcc33 0 0 5px; -moz-box-shadow: #ffcc33 0 0 5px; =
-o-box-shadow: #ffcc33 0 0 5px; box-shadow: #ffcc33 0 0 5px
}
.button:active {
	BACKGROUND: #009200
}
.button A {
	FONT: 85%/100% Arial, Helvetica, sans-serif; COLOR: #fff; =
TEXT-DECORATION: none
}
#lang {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 6px; WIDTH: 200px; PADDING-RIGHT: =
6px; PADDING-TOP: 6px
}
#lang LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; DISPLAY: =
inline; PADDING-TOP: 0px
}
#topNav {
	MARGIN: 0px auto; WIDTH: 350px
}
#topNav A {
	FONT: 100%/200% Arial, Helvetica, sans-serif; COLOR: #fff
}
#topNav LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 3%; PADDING-RIGHT: 3%; FLOAT: left; =
PADDING-TOP: 3px
}
#topSearch {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; WIDTH: 225px; PADDING-RIGHT: =
10px; BACKGROUND: url(../images2011/headerBG.png) green repeat-x; =
HEIGHT: 27px; PADDING-TOP: 5px
}
#topSearch .goBtn {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 4px; MARGIN-TOP: 1px; PADDING-LEFT: 8px; PADDING-RIGHT: =
8px; BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px solid; =
PADDING-TOP: 4px
}
#jobBox .goBtn {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 4px; MARGIN-TOP: 1px; PADDING-LEFT: 8px; PADDING-RIGHT: =
8px; BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px solid; =
PADDING-TOP: 4px
}
#logoBar {
	HEIGHT: 100%; PADDING-TOP: 10px
}
#logo {
	WIDTH: 40%; MAX-WIDTH: 415px; FLOAT: left; HEIGHT: auto
}
#logo IMG {
	WIDTH: 100%
}
#banner {
	WIDTH: 55%
}
#banner IMG {
	FLOAT: right
}
#navigation LI.wide {
	WIDTH: 19%; FONT-SIZE: 10pt
}
#navigation LI.narrow {
	WIDTH: 14%; FONT-SIZE: 10pt
}
#navigation LI.narrowElite {
	WIDTH: 17%; FONT-SIZE: 10pt
}
#navigation {
	MARGIN-TOP: 10px; BACKGROUND: url(../images2011/navBtnBG.png) #666 =
repeat-x; HEIGHT: 32px; OVERFLOW: hidden
}
#navigation LI {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 6px; WIDTH: 14.5%; PADDING-RIGHT: =
6px; BACKGROUND: url(../images2011/navbutton2.png) #666 no-repeat 0px =
0px; FLOAT: left; HEIGHT: 32px; PADDING-TOP: 6px; -webkit-transition: =
background .3s ease-out; -moz-transition: background .3s ease-out
}
#navigation LI:hover {
	BACKGROUND: url(../images2011/navbutton2.png) #d20001 no-repeat 0px =
-32px; -webkit-transition: background .3s ease-out; -moz-transition: =
background .3s ease-out
}
#navigation IMG {
	MARGIN-TOP: -11px; MARGIN-LEFT: -20px
}
#navigation A {
	PADDING-LEFT: 28px; DISPLAY: block; COLOR: #fff; FONT-SIZE: 110%; =
TEXT-DECORATION: none
}
#ticker {
	BACKGROUND: url(../images2011/ticker_middle.png) #dbdbdb repeat-x; =
HEIGHT: 32px; OVERFLOW: hidden
}
#ticker P {
	MARGIN: 5px 3px
}
#ticker P {
	FLOAT: left
}
#ticker LI IMG {
	FLOAT: left
}
#ticker SPAN {
	FLOAT: left
}
#ticker SPAN {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; FONT: =
70%/100% Arial, Helvetica, sans-serif; BACKGROUND: #333; COLOR: #fff; =
PADDING-TOP: 3px; -moz-border-radius: 3px; border-radius: 3px
}
#ticker LI IMG {
	MARGIN: 7px 3px; DISPLAY: inline
}
#ticker SPAN {
	MARGIN: 7px 3px; DISPLAY: inline
}
#jobBox .searchBox {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 10px; MARGIN: 0px -17px; PADDING-LEFT: 16px; WIDTH: =
100%; PADDING-RIGHT: 16px; BORDER-TOP: white 1px solid; BORDER-RIGHT: =
white 1px solid; PADDING-TOP: 10px
}
#localNewsBox .searchBox {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 10px; MARGIN: 0px -17px; PADDING-LEFT: 16px; WIDTH: =
100%; PADDING-RIGHT: 16px; BORDER-TOP: white 1px solid; BORDER-RIGHT: =
white 1px solid; PADDING-TOP: 10px
}
#jobBox INPUT {
	WIDTH: 75%
}
#jobBox .jobOfDay {
	BORDER-BOTTOM: #d20001 12px solid; PADDING-BOTTOM: 10px; MARGIN: 0px =
-16px; PADDING-LEFT: 16px; WIDTH: 100%; PADDING-RIGHT: 16px; BORDER-TOP: =
#d20001 12px solid; PADDING-TOP: 10px
}
.jobHeading {
	FONT: 12pt/16pt Arial, Helvetica, sans-serif; COLOR: #01325d
}
.jobDetailsButton {
	MARGIN-TOP: -20px
}
.negativeMargin {
	MARGIN-BOTTOM: -15px
}
#eventsBox LI A {
=09
}
#eventsBox LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px -15px; PADDING-LEFT: 15px; WIDTH: =
100%; PADDING-RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% =
0%; BORDER-TOP: #dbdbdb 1px solid; PADDING-TOP: 15px
}
#eventsBox LI.first {
	BORDER-TOP: medium none
}
.calprevnext {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; =
PADDING-TOP: 0px
}
.caldayheader {
	TEXT-ALIGN: center; FONT-WEIGHT: bold
}
.testBorder {
	BORDER-BOTTOM: lime 2px solid; BORDER-LEFT: lime 2px solid; BORDER-TOP: =
lime 2px solid; BORDER-RIGHT: lime 2px solid
}
.eventHeading {
	FONT: 12pt/16pt Arial, Helvetica, sans-serif; COLOR: #01325d
}
#storyBoxContainer {
	POSITION: relative; HEIGHT: 214px
}
#storyBoxText {
	HEIGHT: 86%; OVERFLOW: hidden
}
#storyBoxRelated {
	POSITION: absolute; WIDTH: 17%; BOTTOM: 1px; LEFT: 319px
}
#storyBoxOthers {
	BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 5px solid; =
PADDING-BOTTOM: 15px; PADDING-LEFT: 15px; WIDTH: 93.5%; PADDING-RIGHT: =
15px; BORDER-TOP: #666 1px solid; BORDER-RIGHT: #666 5px solid; =
PADDING-TOP: 15px
}
#storyBoxOthers UL {
	LIST-STYLE-TYPE: disc; COLOR: #d20001
}
#storyBoxOthers .list {
	PADDING-LEFT: 15px; WIDTH: 70%; FLOAT: left
}
#storyBoxOthers LI A {
	FONT: 100%/150% Arial, Helvetica, sans-serif; COLOR: #666
}
#storyBoxOthers LI A:hover {
	TEXT-DECORATION: underline
}
#storyBoxSend {
	WIDTH: 20%; MARGIN-BOTTOM: 0px
}
#storyBoxSend A {
	TEXT-DECORATION: none
}
#storyBoxSend H2 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; LINE-HEIGHT: 100%; COLOR: =
#666
}
#storyBoxSend P {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; LINE-HEIGHT: 100%; COLOR: =
#666
}
#storyBoxSend P {
	LINE-HEIGHT: 130%
}
.articleHeadLineHeight {
	LINE-HEIGHT: 23px
}
#breakingBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 7px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: #fff; =
BORDER-TOP: #dbdbdb 1px solid; PADDING-TOP: 7px
}
#jobBox UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px -16px; PADDING-LEFT: 16px; =
PADDING-RIGHT: 16px; BORDER-TOP: #d20001 10px solid; PADDING-TOP: 0px
}
#jobBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BORDER-TOP: =
#dbdbdb 1px solid; PADDING-TOP: 15px
}
#jobBox LI:first-child {
	BORDER-TOP: white 1px solid
}
#breakingBox LI IMG {
	MARGIN: 1px 6px 0px 0px
}
#breakingBox LI SPAN {
	MARGIN: 1px 6px 0px 0px
}
#breakingBox LI A {
	MARGIN: 1px 6px 0px 0px
}
#filterContent LI IMG {
	MARGIN: 1px 6px 0px 0px
}
#filterContent LI SPAN {
	MARGIN: 1px 6px 0px 0px
}
#filterContent LI A {
	MARGIN: 1px 6px 0px 0px
}
#breakingBox LI IMG {
	FLOAT: left
}
#breakingBox LI SPAN {
	FLOAT: left
}
#breakingBox LI SPAN {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #01325d; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT: bold 70%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; PADDING-TOP: 3px; -moz-border-radius: 3px; border-radius: =
3px
}
#filterContent LI SPAN {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #01325d; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT: bold 70%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; PADDING-TOP: 3px; -moz-border-radius: 3px; border-radius: =
3px
}
#breakingBox LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#breakingBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#jobBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#breakingBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#magazineBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#jobBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#eventsBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#filternewsBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#tvBoxMore .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#breakingBox .extra A {
	COLOR: #666
}
#jobBox .extra A {
	COLOR: #666
}
#eventsBox .extra A {
	COLOR: #666
}
#filternewsBox .extra A {
	COLOR: #666
}
#tvBoxMore .extra A {
	COLOR: #666
}
#breakingBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
#magazineBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
#jobBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
#eventsBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
#profilesBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
#otherStories {
	POSITION: relative
}
#otherStories LI {
	BORDER-BOTTOM: #dbdbdb 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px =
-15px; PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: =
#fff; PADDING-TOP: 15px
}
#otherStories LI IMG {
	MARGIN: 1px 6px 0px 0px
}
#otherStories LI IMG {
	FLOAT: left
}
#otherStories LI SPAN {
	FLOAT: left
}
#otherStories LI SPAN {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #01325d; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT: bold 70%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; PADDING-TOP: 3px; -moz-border-radius: 3px; border-radius: =
3px
}
#otherStories LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#otherStories LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#magazineBox .holder {
	PADDING-BOTTOM: 10px; MARGIN: 0px -15px; PADDING-LEFT: 15px; WIDTH: =
100%; PADDING-RIGHT: 15px; BACKGROUND: url(../images2011/magBG.png) #666 =
repeat-x; PADDING-TOP: 10px
}
#magazineBox .coverSide {
	MARGIN-TOP: 6px; WIDTH: 25%; FLOAT: left
}
#magazineBox .coverSide IMG {
	WIDTH: 100%; MARGIN-BOTTOM: 10px; HEIGHT: auto
}
#magazineBox .textSide IMG {
	WIDTH: 100%; MARGIN-BOTTOM: 10px; HEIGHT: auto
}
#magazineBox .textSide {
	WIDTH: 70%; FLOAT: right
}
#magazineBox .textSideLeft {
	WIDTH: 40%; FLOAT: left
}
#magazineBox .textSideRight {
	WIDTH: 50%; FLOAT: right
}
#magazineBox .textSide IMG {
	MARGIN-BOTTOM: 15px
}
#magazineBox SPAN A {
	MARGIN-TOP: -15px; FLOAT: right
}
#magazineBox .extra A {
	COLOR: #d20001
}
#magazineBox UL {
	LIST-STYLE-TYPE: disc; PADDING-LEFT: 15px; COLOR: #ccc
}
#magazineBox LI A {
	FONT: 100%/150% Arial, Helvetica, sans-serif; COLOR: #666; =
TEXT-DECORATION: none
}
#magazineBox LI A:hover {
	TEXT-DECORATION: underline
}
#magProfiles {
	WIDTH: 50%; MARGIN-BOTTOM: 17px
}
.hideArrow {
	BACKGROUND-POSITION: -100px -100px
}
.backIssue {
	WIDTH: 25%
}
.backIssue IMG {
	MARGIN: 10px 0px
}
#profilesBox {
	PADDING-BOTTOM: 0px
}
#carousel UL LI A {
	LINE-HEIGHT: 200%; COLOR: #666
}
#filternewsBox .searchArea {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 15px; MARGIN: 0px -17px; PADDING-LEFT: 15px; WIDTH: =
100%; PADDING-RIGHT: 15px; BORDER-TOP: white 1px solid; BORDER-RIGHT: =
white 1px solid; PADDING-TOP: 15px
}
#filternewsBox .holder {
	PADDING-BOTTOM: 15px; MARGIN: 0px -15px 10px; PADDING-LEFT: 15px; =
WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: =
url(../images2011/magBG.png) #666 repeat-x; PADDING-TOP: 15px
}
#filternewsBox .searchContainerLeft {
	MARGIN: 10px 0px; WIDTH: 48%; FLOAT: left
}
#filternewsBox .searchContaineRight {
	MARGIN: 10px 0px; WIDTH: 48%; FLOAT: right
}
.redlink {
	MARGIN-BOTTOM: 10px
}
#filternewsBox .searchBox {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; WIDTH: 100%; PADDING-RIGHT: =
10px; BACKGROUND: #d0effc; PADDING-TOP: 10px
}
#filternewsBox .searchBox INPUT {
	MARGIN: 10px 15px 0px 0px; WIDTH: 70%; BACKGROUND: white
}
#filternewsBox .searchBox .goBtn {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 3px; MARGIN-TOP: 9px; PADDING-LEFT: 13px; WIDTH: 18px; =
PADDING-RIGHT: 5px; BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px =
solid; PADDING-TOP: 4px
}
#filternewsBox .searchMenus INPUT {
	WIDTH: 40%
}
.menuLeftCol {
	WIDTH: 45%; FLOAT: left
}
.menuRightCol {
	WIDTH: 45%; FLOAT: right
}
.menuContainer {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 5px
}
#filterContent {
	MARGIN-TOP: 20px; PADDING-RIGHT: 20px; MARGIN-BOTTOM: 15px; HEIGHT: =
640px; OVERFLOW: auto
}
#filterContent LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: none =
transparent scroll repeat 0% 0%; BORDER-TOP: #dbdbdb 1px solid; =
PADDING-TOP: 15px
}
.firstFilterStory {
	BORDER-TOP: medium none
}
#filterContent LI H4:hover {
	TEXT-DECORATION: underline
}
#filterContent LI P:hover {
	TEXT-DECORATION: underline
}
#filterContent LI A {
	FONT-STYLE: normal; WIDTH: 100%; DISPLAY: block; TEXT-DECORATION: none
}
.newsHeading {
	FONT: 18px/44px Arial, Helvetica, sans-serif; COLOR: #01325d
}
.newsDate {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #01325d; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT: bold 70%/100% Arial, Helvetica, sans-serif; =
COLOR: #ffffff; PADDING-TOP: 3px; -moz-border-radius: 3px; =
border-radius: 3px
}
.footerLinks {
	MARGIN: 0px auto; WIDTH: 100%; BACKGROUND: #d20001; HEIGHT: 35px
}
#footerNav {
	MARGIN: 0px auto; WIDTH: 350px
}
#footerNav A {
	FONT: 100%/200% Arial, Helvetica, sans-serif; COLOR: #fff
}
#footerNav LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 3%; PADDING-RIGHT: 3%; FLOAT: left; =
PADDING-TOP: 3px
}
.newsmenuCol {
	WIDTH: 100%
}
.newsmenuCol SELECT {
	WIDTH: 100%
}
#latestNewsBox UL {
=09
}
#latestNewsBox IMG {
	BORDER-LEFT: white 1px dotted; FLOAT: left; HEIGHT: auto; MARGIN-LEFT: =
0px; MARGIN-RIGHT: 15px; BORDER-RIGHT: white 1px dotted
}
#latestNewsBox H4 {
	PADDING-RIGHT: 10px; COLOR: #fff; PADDING-TOP: 5px
}
#latestNewsBox A {
	FONT-STYLE: normal; COLOR: #fff; TEXT-DECORATION: none
}
#latestNewsBox A:hover {
	TEXT-DECORATION: underline
}
#latestNewsBox .firstContainer {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
PADDING-BOTTOM: 0px; MARGIN: 0px -17px 15px; PADDING-LEFT: 16px; WIDTH: =
100%; PADDING-RIGHT: 16px; BACKGROUND: #96c992; BORDER-TOP: white 1px =
solid; BORDER-RIGHT: white 1px solid; PADDING-TOP: 0px
}
#latestNewsBox UL {
	LIST-STYLE-TYPE: disc; PADDING-LEFT: 15px; COLOR: #ccc
}
#latestNewsBox LI A {
	FONT: 100%/150% Arial, Helvetica, sans-serif; COLOR: #666; =
TEXT-DECORATION: none
}
#latestNewsBox LI A:hover {
	TEXT-DECORATION: underline
}
.noBullet {
	LIST-STYLE-TYPE: none
}
.miButtonNew IMG {
	MARGIN: -14px 7px 0px 0px; WIDTH: 14%; FLOAT: left; HEIGHT: auto
}
.miButtonText {
	COLOR: #01325d; FONT-SIZE: 16pt; FONT-WEIGHT: normal
}
.miButtonNew {
	BORDER-BOTTOM: #bad6e2 1px solid; BORDER-LEFT: #bad6e2 1px solid; =
PADDING-BOTTOM: 6px; MARGIN: 7px 0px 15px; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; BACKGROUND: #ff920d; COLOR: #01325d; BORDER-TOP: =
#bad6e2 1px solid; BORDER-RIGHT: #bad6e2 1px solid; PADDING-TOP: 7px; =
-moz-border-radius: 8px; border-radius: 8px; -webkit-border-radius: 8px; =
-webkit-box-shadow: rgba(0, 0, 0, .25) 0 1px 1px; -moz-box-shadow: =
rgba(0, 0, 0, .25) 0 1px 1px; -o-border-radius: 8px; -o-box-shadow: =
rgba(0, 0, 0, .25) 0 1px 1px; box-shadow: rgba(0, 0, 0, .25) 0 1px 1px
}
.miButtonNew {
	BACKGROUND: #ffffff
}
.miButtonNew:hover {
	-webkit-box-shadow: #ffffff 0 0 5px; -moz-box-shadow: #ffffff 0 0 5px; =
-o-box-shadow: #ffffff 0 0 5px; box-shadow: #ffffff 0 0 5px
}
.button:focus {
	-webkit-box-shadow: #ffffff 0 0 5px; -moz-box-shadow: #ffffff 0 0 5px; =
-o-box-shadow: #ffffff 0 0 5px; box-shadow: #ffffff 0 0 5px
}
.miButtonNew:active {
	BACKGROUND: #d0effc; COLOR: #ffffff
}
.miButtonNew A {
	FONT: 12pt/15pt Arial, Helvetica, sans-serif; COLOR: #01325d; =
TEXT-DECORATION: none
}
.contactsHeading {
	COLOR: #01325d; FONT-SIZE: 160px; FONT-WEIGHT: bold
}
.yourData1 {
	TEXT-ALIGN: center; LINE-HEIGHT: 45px; COLOR: #01325d; FONT-SIZE: 33px; =
FONT-WEIGHT: bold
}
.yourData2 {
	TEXT-ALIGN: justify; LINE-HEIGHT: 22px; COLOR: #01325d; FONT-SIZE: 16px
}
.purchaseData {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; MARGIN: 20px 0px; =
PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FONT-SIZE: 14px; FONT-WEIGHT: =
bold; PADDING-TOP: 5px
}
.nowAccess {
=09
}
.yourDataPrice {
	TEXT-ALIGN: center; MARGIN: 10px 0px; FONT: 50px/60px Arial, Helvetica, =
sans-serif; COLOR: #d20001
}
.accessText {
	FONT-SIZE: 125%
}
.exampleLink {
	TEXT-ALIGN: center; MARGIN-BOTTOM: 25px
}
.exampleLink A {
	LINE-HEIGHT: 18px
}
.exampleLink P {
	LINE-HEIGHT: 18px
}
.countryList {
=09
}
.clColumn {
	WIDTH: 48%
}
.clColumn P {
	LINE-HEIGHT: 16pt; FONT-STYLE: italic; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #01325d; FONT-WEIGHT: normal
}
.clColumn SPAN {
	COLOR: #d20001; FONT-WEIGHT: bold
}
.textRight {
	TEXT-ALIGN: right
}
.tabElite {
	POSITION: absolute; WIDTH: 55px; BACKGROUND: =
url(../images2011/eliteLogoooo.png) no-repeat; HEIGHT: 41px; TOP: -3px; =
RIGHT: 10px
}
.eliteBullets {
	MARGIN: 0px 25px 0px 0px; FONT: 14px/18px Arial, Helvetica, sans-serif; =
COLOR: #666666
}
.eliteBullets LI {
	MARGIN-BOTTOM: 10px
}
.eliteCat {
=09
}
.eliteCatLeft {
	PADDING-BOTTOM: 2%; PADDING-LEFT: 2%; WIDTH: 55%; PADDING-RIGHT: 2%; =
FLOAT: left; MARGIN-LEFT: 2%; FONT-SIZE: 16px; PADDING-TOP: 2%
}
.eliteCatRight {
	PADDING-BOTTOM: 2%; PADDING-LEFT: 2%; WIDTH: 28%; PADDING-RIGHT: 2%; =
FLOAT: right; FONT-SIZE: 16px; MARGIN-RIGHT: 2%; PADDING-TOP: 2%
}
.eliteCat A {
	LINE-HEIGHT: 120%; COLOR: #01325d; TEXT-DECORATION: none
}
.eliteCatLeftpcLeft {
	WIDTH: 48%; FLOAT: left
}
.eliteCatLeftpcRight {
	WIDTH: 48%; FLOAT: right
}
.eliteCatAZ {
	MARGIN-BOTTOM: 10px; MARGIN-LEFT: 4%; FONT-SIZE: 16px
}
.eliteCatAZ A {
	COLOR: #d20001; FONT-SIZE: 16px; MARGIN-RIGHT: 1.25%
}
.eliteLatest {
	BORDER-BOTTOM: #666666 1px dotted; POSITION: relative; PADDING-BOTTOM: =
10px; MARGIN: 0px; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; PADDING-TOP: =
10px
}
.eliteLatestLogo {
	WIDTH: 13%; FLOAT: left
}
.eliteLatestDetail {
	BORDER-LEFT: #666666 1px dotted; PADDING-BOTTOM: 0px; MARGIN-TOP: 2px; =
PADDING-LEFT: 2%; WIDTH: 52%; PADDING-RIGHT: 2%; FLOAT: left; =
MARGIN-LEFT: 2%; BORDER-RIGHT: #666666 1px dotted; PADDING-TOP: 0px
}
.eliteLatestExtras {
	PADDING-BOTTOM: 5pt; PADDING-LEFT: 2%; WIDTH: 25%; PADDING-RIGHT: 0px; =
FLOAT: left; PADDING-TOP: 2px
}
.eliteBtn {
	POSITION: absolute; TEXT-ALIGN: left; MARGIN: 15px 0px 0px; BOTTOM: =
15px; FONT-SIZE: 14px; FONT-WEIGHT: bold; LEFT: 72%
}
.regionalOffices {
	BORDER-BOTTOM: white 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px -8px =
0px -9px; PADDING-LEFT: 10px; WIDTH: 248px; PADDING-RIGHT: 10px; =
PADDING-TOP: 10px
}
.contactSupplierBtn {
	TEXT-ALIGN: left; MARGIN: 15px 0px 30px; WIDTH: 275px; FONT-SIZE: 14px; =
FONT-WEIGHT: bold
}
.contactBtnWidth {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 18px; PADDING-TOP: 5px
}
.relatedArticles {
	BORDER-BOTTOM: white 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px -8px =
0px -9px; PADDING-LEFT: 10px; WIDTH: 248px; PADDING-RIGHT: 10px; =
PADDING-TOP: 10px
}
.eliteTopBtn {
	TEXT-ALIGN: left; PADDING-BOTTOM: 30px; MARGIN: 15px 0px 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 22px; FLOAT: left; FONT-SIZE: 14px; =
FONT-WEIGHT: bold; PADDING-TOP: 0px
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/changes.css

.clearfix:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; =
FONT-SIZE: 0px; CONTENT: " "
}
.clearfix {
	DISPLAY: inline-block
}
* HTML .clearfix {
	HEIGHT: 1%
}
.clearfix {
	DISPLAY: block
}
.padding0 {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.padding17 {
	PADDING-BOTTOM: 17px; PADDING-LEFT: 17px; PADDING-RIGHT: 17px; =
PADDING-TOP: 17px
}
.paddingTopBottom10 {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 10px
}
.paddingLeft15 {
	PADDING-LEFT: 15px
}
.paddingBottom30 {
	PADDING-BOTTOM: 30px
}
.paddingBottom15 {
	PADDING-BOTTOM: 15px
}
.marginRight10 {
	MARGIN-RIGHT: 10px
}
.marginLeft0 {
	MARGIN-LEFT: 0px
}
.padding15-0 {
	PADDING-BOTTOM: 15px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 15px
}
.borderTopBottom {
	BORDER-BOTTOM: #666666 1px solid; BORDER-TOP: #666666 1px solid
}
.border1Bottom {
	BORDER-BOTTOM: #666666 1px dotted
}
.blueText {
	COLOR: #01325d
}
.lightblueText {
	COLOR: #d0effc
}
.redText {
	COLOR: #d20001
}
.yellowText {
	COLOR: #fc0
}
.darkBlueBG {
	BACKGROUND: #01325d
}
.redGradBG {
	BACKGROUND: url(../images2011/redGradBG.png) no-repeat 50% bottom
}
#inDepthArticlesBox {
=09
}
#inDepthArticlesBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: #fff; =
HEIGHT: 49px; BORDER-TOP: #dbdbdb 1px solid; PADDING-TOP: 10px
}
#inDepthArticlesBox LI IMG {
	MARGIN: 0px 15px 0px 0px; FLOAT: left
}
#inDepthArticlesBox LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#inDepthArticlesBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#inDepthArticlesBox .extra {
	PADDING-BOTTOM: 10px; MARGIN: 0px -17px; PADDING-LEFT: 17px; =
PADDING-RIGHT: 17px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#inDepthArticlesBox .extra A {
	COLOR: #666
}
#inDepthArticlesBox .date {
	POSITION: absolute; HEIGHT: 45px; TOP: -25px; RIGHT: 0px
}
.inDepthHeading {
	FONT: 12pt/16pt Arial, Helvetica, sans-serif; COLOR: #01325d
}
#mainSearchBox {
	MARGIN-TOP: -34px
}
#mainSearchBox INPUT {
	MARGIN-TOP: 5px; WIDTH: 80%
}
.border1White {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
MARGIN-TOP: 5px; BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px =
solid
}
#myNewsBox {
	WIDTH: 240px
}
#newsMainContent {
	WIDTH: 100%; BACKGROUND: #c9c; FLOAT: left; HEIGHT: 200px
}
#localNewsBox {
	POSITION: relative
}
#tvBox {
	POSITION: relative
}
#poularArticlesBox {
	POSITION: relative
}
#jobsRegisterBox {
	POSITION: relative
}
#localNewsBox .germanyMap {
	BORDER-BOTTOM: #d20001 12px solid; PADDING-BOTTOM: 0px; MARGIN: 0px =
-16px; PADDING-LEFT: 16px; WIDTH: 100%; PADDING-RIGHT: 16px; BACKGROUND: =
url(../images2011/germanyMap2.png) no-repeat; BORDER-TOP: #d20001 12px =
solid; PADDING-TOP: 0px
}
#localNewsBox .mapText {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 0px; WIDTH: 230px; PADDING-RIGHT: =
0px; PADDING-TOP: 10px
}
#localNewsBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BORDER-TOP: =
#dbdbdb 1px solid; PADDING-TOP: 15px
}
#tvBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BORDER-TOP: =
#dbdbdb 1px solid; PADDING-TOP: 15px
}
#poularArticlesBox LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BORDER-TOP: =
#dbdbdb 1px solid; PADDING-TOP: 15px
}
#jobsRegisterBox LI {
	BORDER-BOTTOM: #666666 1px dotted; PADDING-BOTTOM: 15px; MARGIN: 0px =
-15px; PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; =
PADDING-TOP: 15px
}
#localNewsBox LI {
	BACKGROUND: #ffffff
}
#tvBox LI {
	BACKGROUND: #ffffff
}
#poularArticlesBox LI {
	BACKGROUND: #ffffff
}
#localNewsBox LI IMG {
	MARGIN: 2px 6px 0px 0px
}
#localNewsBox LI SPAN {
	MARGIN: 2px 6px 0px 0px
}
#localNewsBox LI A {
	MARGIN: 2px 6px 0px 0px
}
#tvBox LI IMG {
	MARGIN: 2px 6px 0px 0px
}
#tvBox LI SPAN {
	MARGIN: 2px 6px 0px 0px
}
#tvBox LI A {
	MARGIN: 2px 6px 0px 0px
}
#poularArticlesBox LI IMG {
	MARGIN: 2px 6px 0px 0px
}
#poularArticlesBox LI SPAN {
	MARGIN: 2px 6px 0px 0px
}
#poularArticlesBox LI A {
	MARGIN: 2px 6px 0px 0px
}
#localNewsBox LI IMG {
	FLOAT: left
}
#localNewsBox LI SPAN {
	FLOAT: left
}
#tvBox LI IMG {
	FLOAT: left
}
#tvBox LI SPAN {
	FLOAT: left
}
#poularArticlesBox LI IMG {
	FLOAT: left
}
#poularArticlesBox LI SPAN {
	FLOAT: left
}
#jobsRegisterBox LI IMG {
	FLOAT: left
}
#jobsRegisterBox LI SPAN {
	FLOAT: left
}
#localNewsBox LI SPAN {
	FONT-VARIANT: normal; COLOR: #d20001; FONT-WEIGHT: 100
}
#tvBox LI SPAN {
	FONT-VARIANT: normal; COLOR: #d20001; FONT-WEIGHT: 100
}
#poularArticlesBox LI SPAN {
	FONT-VARIANT: normal; COLOR: #d20001; FONT-WEIGHT: 100
}
#jobsRegisterBox LI SPAN {
	FONT-VARIANT: normal; COLOR: #d20001; FONT-WEIGHT: 100
}
#localNewsBox LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#tvBox LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#poularArticlesBox LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#localNewsBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#tvBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#poularArticlesBox LI A {
	PADDING-BOTTOM: 15px; FONT-STYLE: normal; MARGIN: -15px; PADDING-LEFT: =
15px; WIDTH: 100%; PADDING-RIGHT: 15px; DISPLAY: block; TEXT-DECORATION: =
none; PADDING-TOP: 15px
}
#jobsRegisterBox LI A {
	FONT-STYLE: normal; DISPLAY: block; TEXT-DECORATION: none
}
#localNewsBox .extra {
	MARGIN: 0px -15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px
}
#tvBox .extra {
	MARGIN: 0px -15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px
}
#poularArticlesBox .extra {
	MARGIN: 0px -15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px
}
#jobsRegisterBox .extra {
	MARGIN: 0px -15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px
}
#localNewsBox .extra A {
	COLOR: #666
}
#tvBox .extra A {
	COLOR: #666
}
#poularArticlesBox .extra A {
	COLOR: #666
}
#jobsRegisterBox .extra A {
	COLOR: #666
}
#localNewsBox .date {
	POSITION: absolute; HEIGHT: 54px; TOP: -42px; RIGHT: 78px
}
#tvBox .date {
	POSITION: absolute; HEIGHT: 54px; TOP: -42px; RIGHT: 78px
}
#localNewsBox .date {
	POSITION: absolute; HEIGHT: 54px; TOP: -42px; RIGHT: 78px
}
#jobsRegisterBox .date {
	POSITION: absolute; HEIGHT: 54px; TOP: -42px; RIGHT: 78px
}
#localNewsBox .flag {
	POSITION: absolute; HEIGHT: 45px; TOP: -32px; RIGHT: 0px
}
#jobsRegisterBox LI H3 {
	PADDING-TOP: 3px
}
#jobsRegisterBox LI A:hover {
	TEXT-DECORATION: underline
}
#tvBox .video {
	WIDTH: 240px
}
#tvBox .aerial {
	POSITION: absolute; TOP: -53px; RIGHT: 10px
}
#tvBoxMore {
	WIDTH: 240px
}
#tvBoxMore LI A {
	FONT: 95%/125% Arial, Helvetica, sans-serif; COLOR: #666666; =
TEXT-DECORATION: none
}
#tvBoxMore IMG {
	BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; =
BORDER-TOP: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid
}
#tvBoxMore LI {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 15px; MARGIN: 0px -15px; =
PADDING-LEFT: 15px; WIDTH: 100%; PADDING-RIGHT: 15px; BACKGROUND: #fff; =
BORDER-TOP: #dbdbdb 1px solid; PADDING-TOP: 15px
}
#tvBoxMore LI:hover {
	BACKGROUND-COLOR: #d0effc; -webkit-transition-property: color, =
background; -webkit-transition-duration: .2s, .2s; =
-webkit-transition-timing-function: linear, ease-in
}
#breakingNewsBox .mainStoryPanel {
=09
}
#breakingNewsBox .newsEntry {
	POSITION: relative; PADDING-BOTTOM: 20px; MARGIN: 0px -16px; =
PADDING-LEFT: 16px; PADDING-RIGHT: 16px; BACKGROUND: #ffffff; FLOAT: =
left; BORDER-TOP: #666666 1px dotted; PADDING-TOP: 25px
}
#jobMainBox .newsEntry {
	POSITION: relative; PADDING-BOTTOM: 20px; MARGIN: 0px -16px; =
PADDING-LEFT: 16px; PADDING-RIGHT: 16px; FLOAT: left; BORDER-TOP: =
#666666 1px dotted; PADDING-TOP: 25px
}
#breakingNewsBox .firstStory {
	BORDER-BOTTOM: medium none; FILTER: =
progid:DXImageTransform.Microsoft.gradient(endColorstr=3D'#ffffff', =
startColorstr=3D'#d0effc'); BORDER-LEFT: medium none; BACKGROUND: =
#d0effc; BORDER-TOP: medium none; BORDER-RIGHT: medium none; =
PADDING-TOP: 0px
}
#breakingNewsBox .mainStoryPanelRightCol {
	BORDER-LEFT: #666666 1px dotted; PADDING-BOTTOM: 0px; PADDING-LEFT: =
3.5%; WIDTH: 33%; PADDING-RIGHT: 0px; FLOAT: right; HEIGHT: 400px; =
PADDING-TOP: 0px
}
#breakingNewsBox IMG {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; WIDTH: =
26%; FLOAT: left; HEIGHT: auto; BORDER-TOP: white 1px solid; =
MARGIN-RIGHT: 20px; BORDER-RIGHT: white 1px solid
}
#breakingNewsBox .blueTextDate {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: =
inline; BACKGROUND: #d0effc; COLOR: #d20001; FONT-WEIGHT: 100; =
PADDING-TOP: 2px
}
.posNewsBottomRight {
	POSITION: absolute; BOTTOM: 20px; RIGHT: 16px
}
.newsPagination {
	PADDING-BOTTOM: 10px; MARGIN: 10px -17px; PADDING-LEFT: 17px; =
PADDING-RIGHT: 17px; BACKGROUND: =
url(../images2011/newsPaginationImg.png) #d0effc no-repeat center 50%; =
HEIGHT: 30px; BORDER-TOP: white 5pt solid; PADDING-TOP: 10px
}
#poularArticlesBox LI IMG {
	PADDING-BOTTOM: 10px
}
#poularArticlesBox LI {
	MIN-HEIGHT: 48px
}
.searchTitles {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: =
#d20001; COLOR: #fff; FONT-SIZE: 90%; PADDING-TOP: 2px; =
-moz-border-radius: 4px; -webkit-border-radius: 4px
}
.searchContent {
	BORDER-BOTTOM: #fff 2px solid; BORDER-LEFT: #fff 2px solid; =
PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; WIDTH: 90%; PADDING-RIGHT: =
10px; MARGIN-BOTTOM: 10px; BACKGROUND: #fff; BORDER-TOP: #fff 2px solid; =
BORDER-RIGHT: #fff 2px solid; PADDING-TOP: 15px; -moz-border-radius: =
6px; -webkit-border-radius: 6px; -webkit-box-shadow: 0 0 0 1px #bad6e2; =
-moz-box-shadow: 0 0 0 1px #bad6e2
}
.menuContainer SELECT {
	WIDTH: 100%
}
#jobMainBox {
	POSITION: relative
}
.jobDetails {
	WIDTH: 30%
}
.jobDescription {
	BORDER-LEFT: #d20001 1px solid; PADDING-LEFT: 15px; WIDTH: 66%
}
.jobDetails H1 {
	FONT: 160%/100% Arial, Helvetica, sans-serif; COLOR: #d20001
}
#jobLogin A {
	TEXT-ALIGN: center; FONT-STYLE: normal; COLOR: #ffffff; =
TEXT-DECORATION: none
}
#jobsNav A {
	LINE-HEIGHT: 140%; FONT-STYLE: normal; COLOR: #d20001; TEXT-DECORATION: =
underline
}
#jobsNav LI {
	PADDING-BOTTOM: 7px
}
#jobsNav H3 {
	PADDING-BOTTOM: 7px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: =
#134776; PADDING-TOP: 7px
}
#searchResultsBox {
	POSITION: relative
}
.newsSearchResultsBox {
=09
}
#sidebarAdvertisers {
	MARGIN-TOP: 25px
}
#sidebarAdvertisers IMG {
	WIDTH: 150px; MARGIN-BOTTOM: 15px; HEIGHT: auto
}
#packagingTV {
	POSITION: relative
}
.TVItem {
	BORDER-BOTTOM: #666666 1px dotted; PADDING-BOTTOM: 15px; WIDTH: 100%; =
MARGIN-BOTTOM: 20px
}
.TVThumbnail {
	WIDTH: 166px; FLOAT: left; MARGIN-RIGHT: 17px
}
.TVDetail {
=09
}
.TVTitle {
	PADDING-BOTTOM: 8px; PADDING-TOP: 2px
}
.TVDate {
	PADDING-BOTTOM: 8px
}
.TVDescription {
	HEIGHT: 60px; OVERFLOW: hidden
}
#popularArticlesPage {
	POSITION: relative
}
.popularItem {
	BORDER-BOTTOM: #666666 1px dotted; PADDING-BOTTOM: 15px; WIDTH: 100%; =
MARGIN-BOTTOM: 20px
}
.popularThumbnail {
	WIDTH: 166px; FLOAT: left; MARGIN-RIGHT: 17px
}
.popularDetail {
=09
}
.popularTitle {
	PADDING-BOTTOM: 8px; PADDING-TOP: 2px
}
.popularDate {
	PADDING-BOTTOM: 3px
}
.popularDescription {
	HEIGHT: 60px; OVERFLOW: hidden
}
#aboutContainer {
	POSITION: relative; WIDTH: 82%; BACKGROUND: #ffffff; FLOAT: left; =
MARGIN-RIGHT: 2%
}
.aboutTop {
	POSITION: relative; MARGIN-TOP: 35px
}
.buildingPic {
	POSITION: relative
}
.aboutusAddress {
	POSITION: absolute; PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; TOP: -32px; RIGHT: 0px; PADDING-TOP: 0px; =
-moz-border-radius: 5px; border-radius: 5px; -webkit-border-radius: 5px
}
.aboutIntroContainer {
	POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 35px; PADDING-TOP: 35px
}
.aboutIntroText {
	WIDTH: 66%; FLOAT: right
}
.aboutIntroImage {
	WIDTH: 30%; FLOAT: left
}
.aboutIntroImage IMG {
	WIDTH: 100%; HEIGHT: auto
}
.marketingBox {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FONT: =
140%/150% Arial, Helvetica, sans-serif; BACKGROUND: #d20001; COLOR: =
#ffffff; PADDING-TOP: 5px; -moz-border-radius: 8px; border-radius: 8px; =
-webkit-border-radius: 8px
}
DIV.rotator {
	POSITION: relative; DISPLAY: none
}
DIV.rotator UL LI {
	POSITION: absolute; LIST-STYLE-TYPE: none; FLOAT: left; =
LIST-STYLE-IMAGE: none
}
DIV.rotator UL LI IMG {
	WIDTH: 100%; BACKGROUND: #fff; HEIGHT: auto
}
DIV.rotator UL LI.show {
	Z-INDEX: 500
}
#contactContainer {
	POSITION: relative; MARGIN-TOP: 35px; WIDTH: 77%; BACKGROUND: #ffffff; =
FLOAT: left
}
.contactSend {
	POSITION: relative; WIDTH: 50%; FLOAT: left; MARGIN-LEFT: 25px
}
.contactDetails {
	WIDTH: 100%
}
.contactDetailsDiv {
	MARGIN-BOTTOM: 15px
}
.contactDetailsLeft {
	WIDTH: 25%; FLOAT: left
}
.contactDetailsRight {
	WIDTH: 75%; FLOAT: right
}
.contactDetailsRight INPUT {
	WIDTH: 100%
}
.contactDetailsBottom {
	MARGIN-BOTTOM: 25px
}
.contactMessage {
	WIDTH: 100%
}
.contactMessage FORM {
	MARGIN-BOTTOM: 15px
}
.contactMessage TEXTAREA {
	WIDTH: 100%; MARGIN-BOTTOM: 30px
}
.contactSubmitButton {
	POSITION: absolute; BOTTOM: 20px; RIGHT: 27px
}
.contactSendForm {
	POSITION: relative
}
.contactEmails {
	MARGIN-TOP: 20px; WIDTH: 33%; FLOAT: right; MARGIN-RIGHT: 20px
}
.contactEmails A {
	LINE-HEIGHT: 1.5em
}
.contactEntry {
	BORDER-BOTTOM: #666666 1px dotted; PADDING-BOTTOM: 14px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 14px
}
.contactAddress IMG {
	BORDER-BOTTOM: #666666 1px dotted; BORDER-LEFT: #666666 1px dotted; =
BORDER-TOP: #666666 1px dotted; BORDER-RIGHT: #666666 1px dotted
}
.buyersContainer {
	POSITION: relative
}
.buyersRightCol {
	WIDTH: 50%; FLOAT: left
}
.buyersRightCol IMG {
	WIDTH: 100%; HEIGHT: auto
}
.buyersLeftCol {
	WIDTH: 300px; FLOAT: left; MARGIN-RIGHT: 30px
}
.redStrip {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 17px; PADDING-RIGHT: 17px; =
BACKGROUND: #d20001; PADDING-TOP: 5px
}
.buyersLeftCol {
	WIDTH: 65%
}
.buyersRightColAlt {
	WIDTH: 40%; FLOAT: right
}
.buyersRightColAlt IMG {
	WIDTH: 100%; HEIGHT: auto
}
.buyersLeftColAlt {
	WIDTH: 400px; FLOAT: left; MARGIN-RIGHT: 30px
}
.redStrip {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 17px; PADDING-RIGHT: 17px; =
BACKGROUND: #d20001; PADDING-TOP: 10px
}
.width25 {
	WIDTH: 30%
}
#graphContainer {
	POSITION: relative; WIDTH: 62%; BACKGROUND: #ffffff; FLOAT: left; =
MARGIN-RIGHT: 2%
}
.graphPic {
	WIDTH: 95.5%; HEIGHT: auto
}
.graphPic IMG {
	PADDING-BOTTOM: 25px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: =
0px; HEIGHT: auto; PADDING-TOP: 15px
}
.buyersTable P {
	FONT: 100%/140% Arial, Helvetica, sans-serif
}
.MINavigation {
	POSITION: relative; PADDING-BOTTOM: 25px; PADDING-LEFT: 25px; =
PADDING-RIGHT: 25px; MARGIN-BOTTOM: 45px; PADDING-TOP: 25px
}
.MINavIntroContainer {
	MARGIN-BOTTOM: 65px
}
.MIQuote {
	PADDING-BOTTOM: 17px; MARGIN: 0px 8%; PADDING-LEFT: 5px; WIDTH: 80%; =
PADDING-RIGHT: 5px; HEIGHT: 70px; PADDING-TOP: 17px
}
.MINavIntroText {
	MARGIN: 0px 0px 0px 35px; WIDTH: 50%; FLOAT: left
}
.MIButtonSmallContainer {
=09
}
.MIButton {
	POSITION: relative; WIDTH: 27%; DISPLAY: block; HEIGHT: 140px
}
.MIButtonSmall IMG {
	WIDTH: 20%; FLOAT: left; HEIGHT: auto; MARGIN-RIGHT: 7px
}
.MIButtonSmall {
	POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; WIDTH: =
28%; PADDING-RIGHT: 10px; DISPLAY: block; HEIGHT: 40px; FONT-SIZE: 16px; =
FONT-WEIGHT: bold; PADDING-TOP: 0px
}
.MIButtonSmall:hover {
	BACKGROUND: #01325d
}
.MIButtonCenter {
	MARGIN: 0px 2%
}
.MIButton A {
	TEXT-DECORATION: none
}
.MIButton IMG {
	WIDTH: 100%; FLOAT: left; HEIGHT: auto; MARGIN-RIGHT: 10px
}
.MIButton H2 {
	FONT-SIZE: 170%
}
.MIButtonSmall IMG {
	WIDTH: 20%; FLOAT: left; HEIGHT: auto; MARGIN-RIGHT: 7px
}
.MIInfoContainer {
	POSITION: relative
}
.MIInfoContainer IMG {
	BORDER-BOTTOM: white 3px solid; BORDER-LEFT: white 3px solid; =
MARGIN-TOP: 25px; WIDTH: 220px; HEIGHT: auto; BORDER-TOP: white 3px =
solid; BORDER-RIGHT: white 3px solid
}
.MIInfoLeft {
	WIDTH: 30%
}
.MIInfoCentre {
	MARGIN: 0px 4%; WIDTH: 30%
}
.MIInfoRight {
	WIDTH: 30%
}
.padding30 {
	PADDING-BOTTOM: 30px; PADDING-LEFT: 30px; PADDING-RIGHT: 30px; =
PADDING-TOP: 30px
}
.quotemarksStart {
	LINE-HEIGHT: 0.5em; FONT-FAMILY: "Times New Roman", Times, serif; =
FLOAT: left; COLOR: #d0effc; FONT-SIZE: 490%; MARGIN-RIGHT: 0.1em
}
.quotemarksEnd {
	LINE-HEIGHT: 0.5em; FONT-FAMILY: "Times New Roman", Times, serif; =
COLOR: #d0effc; FONT-SIZE: 490%; MARGIN-RIGHT: 0.1em
}
.marginRight0 {
	MARGIN-RIGHT: 0px
}
.MIIntro {
	POSITION: relative; WIDTH: 26%; DISPLAY: block; HEIGHT: 180px
}
.tabLong {
	POSITION: absolute; WIDTH: 200px; BACKGROUND: =
url(../images2011/tab_long.png) no-repeat; HEIGHT: 45px; TOP: -32px; =
LEFT: 17px
}
.tabLong H1 {
	POSITION: relative; FONT: 150%/100% Arial, Helvetica, sans-serif; =
COLOR: #fff; TOP: 5px; LEFT: 11px
}
.reportsContainer {
	POSITION: relative
}
.reportsRightCol {
	WIDTH: inherit; FLOAT: left
}
.reportsRightCol IMG {
	WIDTH: 100%; HEIGHT: auto
}
.reportsLeftCol {
	WIDTH: 100%
}
.reportsLeftCol IMG {
	WIDTH: 100%; HEIGHT: auto
}
.reportsLeftCol IMG {
	WIDTH: 270px; FLOAT: left; HEIGHT: auto; MARGIN-RIGHT: 40px
}
.redStrip {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 17px; PADDING-RIGHT: 17px; =
BACKGROUND: #d20001; PADDING-TOP: 5px
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/skin.css

.jcarousel-skin-tango .jcarousel-container {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
.jcarousel-skin-tango IMG {
	WIDTH: 90%; HEIGHT: auto
}
.jcarousel-skin-tango .jcarousel-direction-rtl {
	DIRECTION: rtl
}
.jcarousel-skin-tango .jcarousel-container-horizontal {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 145px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.jcarousel-skin-tango .jcarousel-clip-horizontal {
	WIDTH: 245px; HEIGHT: 95px
}
.jcarousel-skin-tango .jcarousel-item {
	WIDTH: 160px; HEIGHT: 125px
}
.jcarousel-skin-tango .jcarousel-item-horizontal {
	MARGIN-LEFT: 0px; MARGIN-RIGHT: 5px
}
.jcarousel-skin-tango .jcarousel-direction-rtl =
.jcarousel-item-horizontal {
	MARGIN-LEFT: 10px; MARGIN-RIGHT: 0px
}
.jcarousel-skin-tango .jcarousel-item-vertical {
	MARGIN-BOTTOM: 10px
}
.jcarousel-skin-tango .jcarousel-item-placeholder {
	BACKGROUND: #fff; COLOR: #000
}
.jcarousel-skin-tango .jcarousel-next-horizontal {
	POSITION: absolute; WIDTH: 32px; BACKGROUND: =
url(../images/next-horizontal.png) no-repeat 0px 0px; HEIGHT: 32px; TOP: =
22px; CURSOR: pointer; RIGHT: 0px
}
.jcarousel-skin-tango .jcarousel-direction-rtl =
.jcarousel-next-horizontal {
	BACKGROUND-IMAGE: url(../images/prev-horizontal.png); RIGHT: auto; =
LEFT: 5px
}
.jcarousel-skin-tango .jcarousel-next-horizontal:hover {
	BACKGROUND-POSITION: -32px 0px
}
.jcarousel-skin-tango .jcarousel-next-horizontal:active {
	BACKGROUND-POSITION: -64px 0px
}
.jcarousel-skin-tango .jcarousel-next-disabled-horizontal {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}
.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}
.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}
.jcarousel-skin-tango .jcarousel-prev-horizontal {
	POSITION: absolute; WIDTH: 32px; BACKGROUND: =
url(../images/prev-horizontal.png) no-repeat 0px 0px; HEIGHT: 32px; TOP: =
22px; CURSOR: pointer; LEFT: -15px
}
.jcarousel-skin-tango .jcarousel-direction-rtl =
.jcarousel-prev-horizontal {
	BACKGROUND-IMAGE: url(../images/next-horizontal.png); RIGHT: 5px; LEFT: =
auto
}
.jcarousel-skin-tango .jcarousel-prev-horizontal:hover {
	BACKGROUND-POSITION: -32px 0px
}
.jcarousel-skin-tango .jcarousel-prev-horizontal:active {
	BACKGROUND-POSITION: -64px 0px
}
.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}
.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}
.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active {
	BACKGROUND-POSITION: -96px 0px; CURSOR: default
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/searchResults.css

#searchResultsBox {
	POSITION: relative
}
.searchResultsHeader H2 {
	COLOR: #01325d
}
.searchResultsNews IMG {
	FLOAT: left
}
.searchResultsNews H3 {
	LINE-HEIGHT: 150%
}
.searchResultsNews LI {
	BORDER-BOTTOM: #666666 1px dotted; POSITION: relative; DISPLAY: block; =
MARGIN-BOTTOM: 15px
}
.searchResultsNews LI .country {
	PADDING-RIGHT: 10px; PADDING-TOP: 5px
}
.searchResultsNews LI A {
	FONT: 100%/100% Arial, Helvetica, sans-serif; COLOR: #01325d; =
TEXT-DECORATION: none
}
.searchResultsNews LI A:hover {
	TEXT-DECORATION: underline
}
.searchResultsSectionHeader {
	PADDING-BOTTOM: 0px; MARGIN: -15px -15px 15px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 15px; PADDING-TOP: 10px
}
.searchResultsSectionHeader H2 {
	DISPLAY: block; COLOR: #d20001
}
.blueTextDate {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: =
inline; BACKGROUND: #d0effc; COLOR: #d20001; FONT-WEIGHT: 100; =
MARGIN-RIGHT: 10px; PADDING-TOP: 2px
}
.otherLangs {
	BORDER-BOTTOM: #bad6e2 1px solid; POSITION: absolute; BORDER-LEFT: =
#bad6e2 1px solid; PADDING-BOTTOM: 0px; MARGIN-TOP: 2px; PADDING-LEFT: =
4px; PADDING-RIGHT: 4px; DISPLAY: inline; BACKGROUND: #ffffff; COLOR: =
#d20001; BORDER-TOP: #bad6e2 1px solid; TOP: 0px; RIGHT: 0px; =
BORDER-RIGHT: #bad6e2 1px solid; PADDING-TOP: 1px
}
.otherLangs P {
	PADDING-RIGHT: 5px; DISPLAY: inline; FLOAT: left
}
.pin {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; FLOAT: =
left; PADDING-TOP: 3px
}
.storyDataHeader {
	MARGIN-BOTTOM: 5px
}
#newsStoryTextBox {
	POSITION: relative
}
.newsStoryTextBodyCopy IMG {
	PADDING-BOTTOM: 34px; WIDTH: 100%; MAX-WIDTH: 432px; HEIGHT: auto
}
#newsStoryTextBox UL {
	PADDING-LEFT: 34px; PADDING-TOP: 5px
}
.newsStoryTextHeading {
	BORDER-BOTTOM: #666 1px dotted; PADDING-BOTTOM: 10px; LINE-HEIGHT: =
24pt; PADDING-LEFT: 34px; PADDING-RIGHT: 34px; MARGIN-BOTTOM: 10px; =
PADDING-TOP: 17px
}
.newsStoryTextBodyCopy {
	BORDER-BOTTOM: #666 1px dotted; PADDING-BOTTOM: 15px; PADDING-LEFT: =
34px; PADDING-RIGHT: 34px; PADDING-TOP: 17px
}
.dropCap {
	LINE-HEIGHT: 1.1em; FONT-FAMILY: Arial, Helvetica, sans-serif; =
MARGIN-BOTTOM: -0.25em; FLOAT: left; FONT-SIZE: 290%; MARGIN-RIGHT: =
0.1em
}
.relatedNewsStories {
	BORDER-BOTTOM: #666 1px dotted; PADDING-BOTTOM: 17px; MARGIN: 0px; =
PADDING-LEFT: 34px; PADDING-RIGHT: 34px; PADDING-TOP: 17px
}
.relatedMagazineStories {
	BORDER-BOTTOM: #666 1px dotted; PADDING-BOTTOM: 17px; MARGIN: 0px; =
PADDING-LEFT: 34px; PADDING-RIGHT: 34px; PADDING-TOP: 17px
}
.relatedNewsStories UL {
	MARGIN-LEFT: -34px; PADDING-TOP: 5px
}
.relatedMagazineStories UL {
	MARGIN-LEFT: -34px; PADDING-TOP: 5px
}
.relatedNewsStories H3 {
	COLOR: #134776
}
.relatedMagazineStories H3 {
	COLOR: #134776
}
.relatedNewsStories A {
	LINE-HEIGHT: 170%; FONT-STYLE: normal; COLOR: #d20001; TEXT-DECORATION: =
underline
}
.relatedMagazineStories A {
	LINE-HEIGHT: 170%; FONT-STYLE: normal; COLOR: #d20001; TEXT-DECORATION: =
underline
}
.relatedMagazineStories LI {
	DISPLAY: inline; MARGIN-BOTTOM: 15px; FLOAT: left; MARGIN-RIGHT: 15px
}
.relatedMagazineStories UL LI IMG {
	WIDTH: 130px; MARGIN-BOTTOM: 10px; HEIGHT: auto
}
.newsStoryTextBodyCopy H4 {
	BORDER-BOTTOM: #666666 1pt dotted; PADDING-BOTTOM: 3px; FONT: 1.5em/2em =
Arial, Helvetica, sans-serif; MARGIN-BOTTOM: 18px; COLOR: #666666; =
PADDING-TOP: 10px
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/reset.css

HTML {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
BODY {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DIV {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
SPAN {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
APPLET {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
OBJECT {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
IFRAME {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H1 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H2 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H3 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H4 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H5 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
H6 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
P {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
BLOCKQUOTE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
PRE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
ABBR {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
ACRONYM {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
ADDRESS {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
BIG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
CITE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
CODE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DEL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DFN {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
EM {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
FONT {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
INS {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
KBD {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
Q {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
S {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
SAMP {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
SMALL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
STRIKE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
STRONG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
SUB {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
SUP {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TT {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
VAR {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
B {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
U {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
I {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
CENTER {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DT {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
DD {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
OL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
UL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
LI {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
FORM {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
LABEL {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
LEGEND {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TABLE {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
CAPTION {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TBODY {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TFOOT {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
THEAD {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TR {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TH {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TD {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; =
OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
BODY {
	LINE-HEIGHT: 1
}
OL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
UL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
BLOCKQUOTE {
	QUOTES: none
}
Q {
	QUOTES: none
}
BLOCKQUOTE:before {
	CONTENT: none
}
BLOCKQUOTE:after {
	CONTENT: none
}
Q:before {
	CONTENT: none
}
Q:after {
	CONTENT: none
}
:focus {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px
}
INS {
	TEXT-DECORATION: none
}
DEL {
	TEXT-DECORATION: line-through
}
TABLE {
	BORDER-SPACING: 0; BORDER-COLLAPSE: collapse
}
.relativeContainer {
	POSITION: relative
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/directories.css

.directoriesContainer {
	POSITION: relative; BACKGROUND: url(../images2011/directoriesBG.png) =
no-repeat right 50%
}
.directoryProductsContainer {
	POSITION: relative
}
.directoriesLeftCol {
	WIDTH: 31%; FLOAT: left; MARGIN-RIGHT: 3%
}
.directoriesRightCol {
	WIDTH: 31%; FLOAT: right
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/css/profiles.css

.profilesContainer {
	POSITION: relative
}
.profilesProductsContainer {
	POSITION: relative
}
.profilesLeftCol {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 25px; WIDTH: 30%; PADDING-RIGHT: =
0px; FLOAT: left; MARGIN-RIGHT: 3%; PADDING-TOP: 25px
}
.profilesRightCol {
	WIDTH: 31%; FLOAT: right
}
.profilesRightTwoCol {
	WIDTH: 63%; FLOAT: right
}
.CompanyProfilesBox {
	WIDTH: 100%
}
.featuredProfile {
	PADDING-BOTTOM: 17px; MARGIN: 25px 0px; PADDING-LEFT: 17px; =
PADDING-RIGHT: 17px; PADDING-TOP: 17px
}
.featuredProfileLeft {
	WIDTH: 42%; FLOAT: left; MARGIN-LEFT: 15px
}
.featuredProfileRight {
	WIDTH: 48%; FLOAT: right
}
.featuredProfileRight IMG {
	WIDTH: 100%; HEIGHT: auto
}
.aTOz {
	PADDING-BOTTOM: 35px; PADDING-LEFT: 35px; PADDING-RIGHT: 35px; =
PADDING-TOP: 35px
}
.aTOz TD {
	PADDING-TOP: 17px
}
.ribbon {
	PADDING-BOTTOM: 5px; MARGIN: 0px 0px 15px -35px; PADDING-LEFT: 35px; =
PADDING-RIGHT: 35px; BACKGROUND: #d20001; COLOR: #ffffff; PADDING-TOP: =
5px
}
.ProfilesSearchBox {
	MARGIN: 17px 0px 0px -17px; BACKGROUND: #10325d
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/Packaging-Europe-News/42010/YUI/build/reset-fonts-grids/reset-fonts-grids.css

HTML {
	BACKGROUND: #fff; COLOR: #000
}
BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DIV {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DT {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DD {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
OL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H1 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H2 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H3 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H4 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H5 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H6 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
PRE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
CODE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
LEGEND {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
INPUT {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
BUTTON {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
TEXTAREA {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
P {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
BLOCKQUOTE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
TH {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
TD {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
TABLE {
	BORDER-SPACING: 0; BORDER-COLLAPSE: collapse
}
FIELDSET {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
ADDRESS {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
CAPTION {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
CITE {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
CODE {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
DFN {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
EM {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
STRONG {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
TH {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
VAR {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
OPTGROUP {
	FONT-STYLE: inherit; FONT-WEIGHT: inherit
}
DEL {
	TEXT-DECORATION: none
}
INS {
	TEXT-DECORATION: none
}
LI {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
CAPTION {
	TEXT-ALIGN: left
}
TH {
	TEXT-ALIGN: left
}
H1 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H2 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H3 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H4 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H5 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H6 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
Q:before {
	CONTENT: ''
}
Q:after {
	CONTENT: ''
}
ABBR {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FONT-VARIANT: normal; BORDER-TOP: =
0px; BORDER-RIGHT: 0px
}
ACRONYM {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FONT-VARIANT: normal; BORDER-TOP: =
0px; BORDER-RIGHT: 0px
}
SUP {
	VERTICAL-ALIGN: baseline
}
SUB {
	VERTICAL-ALIGN: baseline
}
LEGEND {
	COLOR: #000
}
INPUT {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
BUTTON {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
TEXTAREA {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
SELECT {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
OPTGROUP {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
OPTION {
	FONT-STYLE: inherit; FONT-FAMILY: inherit; FONT-SIZE: inherit; =
FONT-WEIGHT: inherit
}
INPUT {
=09
}
BUTTON {
=09
}
TEXTAREA {
=09
}
SELECT {
=09
}
BODY {
	FONT: 13px/1.231 arial, helvetica, clean, sans-serif
}
SELECT {
	FONT: 99% arial, helvetica, clean, sans-serif
}
INPUT {
	FONT: 99% arial, helvetica, clean, sans-serif
}
BUTTON {
	FONT: 99% arial, helvetica, clean, sans-serif
}
TEXTAREA {
	FONT: 99% arial, helvetica, clean, sans-serif
}
BUTTON {
	FONT: 99% arial, helvetica, clean, sans-serif
}
TABLE {
	FONT-SIZE: inherit
}
PRE {
	LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
CODE {
	LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
KBD {
	LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
SAMP {
	LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
TT {
	LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
#doc {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
#doc2 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
#doc3 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
#doc4 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t1 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t2 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t3 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t4 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t5 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t6 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
.yui-t7 {
	TEXT-ALIGN: left; MARGIN: auto; WIDTH: 57.69em
}
#doc2 {
	WIDTH: 73.07em
}
#doc3 {
	MARGIN: auto 10px; WIDTH: auto
}
#doc4 {
	WIDTH: 74.92em
}
.yui-b {
	POSITION: relative
}
.yui-b {
	_position: static
}
#yui-main .yui-b {
	POSITION: static
}
#yui-main {
	WIDTH: 100%
}
.yui-g .yui-u .yui-g {
	WIDTH: 100%
}
.yui-t1 #yui-main {
	FLOAT: right; MARGIN-LEFT: -25em
}
.yui-t2 #yui-main {
	FLOAT: right; MARGIN-LEFT: -25em
}
.yui-t3 #yui-main {
	FLOAT: right; MARGIN-LEFT: -25em
}
.yui-t4 #yui-main {
	FLOAT: left; MARGIN-RIGHT: -25em
}
.yui-t5 #yui-main {
	FLOAT: left; MARGIN-RIGHT: -25em
}
.yui-t6 #yui-main {
	FLOAT: left; MARGIN-RIGHT: -25em
}
.yui-t1 .yui-b {
	WIDTH: 12.3em; FLOAT: left
}
.yui-t1 #yui-main .yui-b {
	MARGIN-LEFT: 13.3em
}
.yui-t2 .yui-b {
	WIDTH: 13.84em; FLOAT: left
}
.yui-t2 #yui-main .yui-b {
	MARGIN-LEFT: 14.84em
}
.yui-t3 .yui-b {
	WIDTH: 23.07em; FLOAT: left
}
.yui-t3 #yui-main .yui-b {
	MARGIN-LEFT: 24.07em
}
.yui-t4 .yui-b {
	WIDTH: 13.84em; FLOAT: right
}
.yui-t4 #yui-main .yui-b {
	MARGIN-RIGHT: 14.84em
}
.yui-t5 .yui-b {
	WIDTH: 18.46em; FLOAT: right
}
.yui-t5 #yui-main .yui-b {
	MARGIN-RIGHT: 19.46em
}
.yui-t6 .yui-b {
	WIDTH: 23.07em; FLOAT: right
}
.yui-t6 #yui-main .yui-b {
	MARGIN-RIGHT: 24.07em
}
.yui-t7 #yui-main .yui-b {
	MARGIN: 0px 0px 1em; DISPLAY: block
}
#yui-main .yui-b {
	WIDTH: auto; FLOAT: none
}
.yui-gb .yui-u {
	FLOAT: left
}
.yui-g .yui-gb .yui-u {
	FLOAT: left
}
.yui-gb .yui-g {
	FLOAT: left
}
.yui-gb .yui-gb {
	FLOAT: left
}
.yui-gb .yui-gc {
	FLOAT: left
}
.yui-gb .yui-gd {
	FLOAT: left
}
.yui-gb .yui-ge {
	FLOAT: left
}
.yui-gb .yui-gf {
	FLOAT: left
}
.yui-gc .yui-u {
	FLOAT: left
}
.yui-gc .yui-g {
	FLOAT: left
}
.yui-gd .yui-u {
	FLOAT: left
}
.yui-g .yui-u {
	FLOAT: right
}
.yui-g .yui-g {
	FLOAT: right
}
.yui-g .yui-gb {
	FLOAT: right
}
.yui-g .yui-gc {
	FLOAT: right
}
.yui-g .yui-gd {
	FLOAT: right
}
.yui-g .yui-ge {
	FLOAT: right
}
.yui-g .yui-gf {
	FLOAT: right
}
.yui-gc .yui-u {
	FLOAT: right
}
.yui-gd .yui-g {
	FLOAT: right
}
.yui-g .yui-gc .yui-u {
	FLOAT: right
}
.yui-ge .yui-u {
	FLOAT: right
}
.yui-ge .yui-g {
	FLOAT: right
}
.yui-gf .yui-g {
	FLOAT: right
}
.yui-gf .yui-u {
	FLOAT: right
}
.yui-g DIV.first {
	FLOAT: left
}
.yui-gb DIV.first {
	FLOAT: left
}
.yui-gc DIV.first {
	FLOAT: left
}
.yui-gd DIV.first {
	FLOAT: left
}
.yui-ge DIV.first {
	FLOAT: left
}
.yui-gf DIV.first {
	FLOAT: left
}
.yui-g .yui-gc DIV.first {
	FLOAT: left
}
.yui-g .yui-ge DIV.first {
	FLOAT: left
}
.yui-gc DIV.first DIV.first {
	FLOAT: left
}
.yui-g .yui-u {
	WIDTH: 49.1%
}
.yui-g .yui-g {
	WIDTH: 49.1%
}
.yui-g .yui-gb {
	WIDTH: 49.1%
}
.yui-g .yui-gc {
	WIDTH: 49.1%
}
.yui-g .yui-gd {
	WIDTH: 49.1%
}
.yui-g .yui-ge {
	WIDTH: 49.1%
}
.yui-g .yui-gf {
	WIDTH: 49.1%
}
.yui-gb .yui-u {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-g .yui-gb .yui-u {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-g {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-gb {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-gc {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-gd {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-ge {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-gf {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gc .yui-u {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gc .yui-g {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gd .yui-u {
	WIDTH: 32%; MARGIN-LEFT: 1.99%
}
.yui-gb .yui-u {
=09
}
.yui-gc DIV.first {
	WIDTH: 66%
}
.yui-gd .yui-u {
	WIDTH: 66%
}
.yui-gd DIV.first {
	WIDTH: 32%
}
.yui-ge DIV.first {
	WIDTH: 74.2%
}
.yui-gf .yui-u {
	WIDTH: 74.2%
}
.yui-ge .yui-u {
	WIDTH: 24%
}
.yui-gf DIV.first {
	WIDTH: 24%
}
.yui-g .yui-gb DIV.first {
	MARGIN-LEFT: 0px
}
.yui-gb DIV.first {
	MARGIN-LEFT: 0px
}
.yui-gc DIV.first {
	MARGIN-LEFT: 0px
}
.yui-gd DIV.first {
	MARGIN-LEFT: 0px
}
.yui-g .yui-g .yui-u {
	WIDTH: 49%
}
.yui-gb .yui-g .yui-u {
	WIDTH: 49%
}
.yui-gc .yui-g .yui-u {
	WIDTH: 49%
}
.yui-gd .yui-g .yui-u {
	WIDTH: 49%
}
.yui-ge .yui-g .yui-u {
	WIDTH: 49%
}
.yui-gf .yui-g .yui-u {
	WIDTH: 49%
}
.yui-g .yui-g .yui-u {
	WIDTH: 48.1%
}
.yui-g .yui-gb DIV.first {
	_width: 31.7%
}
.yui-gb .yui-gb DIV.first {
	_width: 31.7%
}
.yui-g .yui-gc DIV.first {
	WIDTH: 66%
}
.yui-gd .yui-g {
	WIDTH: 66%
}
.yui-gb .yui-g DIV.first {
	_margin-right: 1.3%
}
.yui-gb .yui-gc DIV.first {
=09
}
.yui-gb .yui-gd DIV.first {
=09
}
.yui-gb .yui-gb .yui-u {
	_margin-left: 4%
}
.yui-gb .yui-gc .yui-u {
	_margin-left: 4%
}
.yui-g .yui-gb .yui-u {
	_margin-left: 1.0%
}
.yui-gb .yui-gd .yui-u {
	_width: 61.2%
}
.yui-gb .yui-gd DIV.first {
	_width: 29.5%
}
.yui-g .yui-gc .yui-u {
	WIDTH: 32%; MARGIN-RIGHT: 0px; _margin-left: 0; _float: right
}
.yui-gb .yui-gc .yui-u {
	WIDTH: 32%; MARGIN-RIGHT: 0px; _margin-left: 0; _float: right
}
.yui-gb .yui-gc DIV.first {
	WIDTH: 66%
}
.yui-gb .yui-ge .yui-u {
	MARGIN: 0px
}
.yui-gb .yui-gf .yui-u {
	MARGIN: 0px
}
.yui-gb .yui-gb .yui-u {
	_margin-left: .7%
}
.yui-gb .yui-g DIV.first {
=09
}
.yui-gb .yui-gb DIV.first {
=09
}
.yui-gc .yui-g .yui-u {
=09
}
.yui-gd .yui-g .yui-u {
=09
}
.yui-gb .yui-gd DIV.first {
	WIDTH: 32%
}
.yui-g .yui-gd DIV.first {
	_width: 29.9%
}
.yui-ge .yui-g {
	WIDTH: 24%
}
.yui-gf .yui-g {
	WIDTH: 74.2%
}
.yui-gb .yui-ge DIV.yui-u {
	FLOAT: right
}
.yui-gb .yui-gf DIV.yui-u {
	FLOAT: right
}
.yui-gb .yui-ge DIV.first {
	FLOAT: left
}
.yui-gb .yui-gf DIV.first {
	FLOAT: left
}
.yui-gb .yui-ge .yui-u {
	_width: 20%
}
.yui-gb .yui-gf DIV.first {
	_width: 20%
}
.yui-gb .yui-ge DIV.first {
	_width: 65.5%
}
.yui-gb .yui-gf .yui-u {
	_width: 65.5%
}
.yui-ge DIV.first .yui-gd .yui-u {
	WIDTH: 65%
}
.yui-ge DIV.first .yui-gd DIV.first {
	WIDTH: 32%
}
#hd:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
#bd:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
#ft:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-g:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-gb:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-gc:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-gd:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-ge:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.yui-gf:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
#hd {
	ZOOM: 1
}
#bd {
	ZOOM: 1
}
#ft {
	ZOOM: 1
}
.yui-g {
	ZOOM: 1
}
.yui-gb {
	ZOOM: 1
}
.yui-gc {
	ZOOM: 1
}
.yui-gd {
	ZOOM: 1
}
.yui-ge {
	ZOOM: 1
}
.yui-gf {
	ZOOM: 1
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/Packaging-Europe-News/42010/js/jquery-1.4.2.min.js

/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function =
ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTi=
meout(ma,1);return}c.ready()}}function =
Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalE=
val(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.re=
moveChild(b)}function X(a,b,d,f,e,j){var i=3Da.length;if(typeof =
b=3D=3D=3D"object"){for(var o in b)X(a,o,b[o],f,e,d);return =
a}if(d!=3D=3Dw){f=3D!j&&f&&c.isFunction(d);for(o=3D0;o<i;o++)e(a[o],b,f?d=
.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return =
false}function Z(){return true}function na(a,b,d){d[0].type=3Da;return =
c.event.handle.apply(b,d)}function oa(a){var =
b,d=3D[],f=3D[],e=3Darguments,j,i,o,k,n,r;i=3Dc.data(this,"events");if(!(=
a.liveFired=3D=3D=3Dthis||!i||!i.live||a.button&&a.type=3D=3D=3D"click"))=
{a.liveFired=3Dthis;var =
u=3Di.live.slice(0);for(k=3D0;k<u.length;k++){i=3Du[k];i.origType.replace=
(O,"")=3D=3D=3Da.type?f.push(i.selector):u.splice(k--,1)}j=3Dc(a.target).=
closest(f,a.currentTarget);n=3D0;for(r=3D
j.length;n<r;n++)for(k=3D0;k<u.length;k++){i=3Du[k];if(j[n].selector=3D=3D=
=3Di.selector){o=3Dj[n].elem;f=3Dnull;if(i.preType=3D=3D=3D"mouseenter"||=
i.preType=3D=3D=3D"mouseleave")f=3Dc(a.relatedTarget).closest(i.selector)=
[0];if(!f||f!=3D=3Do)d.push({elem:o,handleObj:i})}}n=3D0;for(r=3Dd.length=
;n<r;n++){j=3Dd[n];a.currentTarget=3Dj.elem;a.data=3Dj.handleObj.data;a.h=
andleObj=3Dj.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)=3D=3D=3D=
false){b=3Dfalse;break}}return b}}function =
pa(a,b){return"live."+(a&&a!=3D=3D"*"?a+".":"")+b.replace(/\./g,"`").repl=
ace(/ /g,
"&")}function =
qa(a){return!a||!a.parentNode||a.parentNode.nodeType=3D=3D=3D11}function =
ra(a,b){var =
d=3D0;b.each(function(){if(this.nodeName=3D=3D=3D(a[d]&&a[d].nodeName)){v=
ar f=3Dc.data(a[d++]),e=3Dc.data(this,f);if(f=3Df&&f.events){delete =
e.handle;e.events=3D{};for(var j in f)for(var i in =
f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var =
f,e,j;b=3Db&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length=3D=3D=3D1&&typeo=
f =
a[0]=3D=3D=3D"string"&&a[0].length<512&&b=3D=3D=3Ds&&!ta.test(a[0])&&(c.s=
upport.checkClone||!ua.test(a[0]))){e=3D
true;if(j=3Dc.fragments[a[0]])if(j!=3D=3D1)f=3Dj}if(!f){f=3Db.createDocum=
entFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=3Dj?f:1;return{frag=
ment:f,cacheable:e}}function K(a,b){var =
d=3D{};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=3Da});=
return d}function wa(a){return"scrollTo"in =
a&&a.document?a:a.nodeType=3D=3D=3D9?a.defaultView||a.parentWindow:false}=
var c=3Dfunction(a,b){return new =
c.fn.init(a,b)},Ra=3DA.jQuery,Sa=3DA.$,s=3DA.document,T,Ta=3D/^[^<]*(<[\w=
\W]+>)[^>]*$|^#([\w-]+)$/,Ua=3D/^.[^:#\[\.,]*$/,Va=3D/\S/,
Wa=3D/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=3D/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=3D=
navigator.userAgent,xa=3Dfalse,Q=3D[],L,$=3DObject.prototype.toString,aa=3D=
Object.prototype.hasOwnProperty,ba=3DArray.prototype.push,R=3DArray.proto=
type.slice,ya=3DArray.prototype.indexOf;c.fn=3Dc.prototype=3D{init:functi=
on(a,b){var d,f;if(!a)return =
this;if(a.nodeType){this.context=3Dthis[0]=3Da;this.length=3D1;return =
this}if(a=3D=3D=3D"body"&&!b){this.context=3Ds;this[0]=3Ds.body;this.sele=
ctor=3D"body";this.length=3D1;return this}if(typeof =
a=3D=3D=3D"string")if((d=3DTa.exec(a))&&
(d[1]||!b))if(d[1]){f=3Db?b.ownerDocument||b:s;if(a=3DXa.exec(a))if(c.isP=
lainObject(b)){a=3D[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else =
a=3D[f.createElement(a[1])];else{a=3Dsa([d[1]],[f]);a=3D(a.cacheable?a.fr=
agment.cloneNode(true):a.fragment).childNodes}return =
c.merge(this,a)}else{if(b=3Ds.getElementById(d[2])){if(b.id!=3D=3Dd[2])re=
turn =
T.find(a);this.length=3D1;this[0]=3Db}this.context=3Ds;this.selector=3Da;=
return this}else =
if(!b&&/^\w+$/.test(a)){this.selector=3Da;this.context=3Ds;a=3Ds.getEleme=
ntsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else =
if(c.isFunction(a))return =
T.ready(a);if(a.selector!=3D=3Dw){this.selector=3Da.selector;this.context=
=3Da.context}return =
c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){=
return this.length},toArray:function(){return =
R.call(this,0)},get:function(a){return =
a=3D=3Dnull?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:functi=
on(a,b,d){var =
f=3Dc();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=3Dthis;f.con=
text=3Dthis.context;if(b=3D=3D=3D
"find")f.selector=3Dthis.selector+(this.selector?" ":"")+d;else =
if(b)f.selector=3Dthis.selector+"."+b+"("+d+")";return =
f},each:function(a,b){return =
c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c=
);else Q&&Q.push(a);return this},eq:function(a){return =
a=3D=3D=3D-1?this.slice(a):this.slice(a,+a+1)},first:function(){return =
this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return =
this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","=
))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return =
this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.ini=
t.prototype=3Dc.fn;c.extend=3Dc.fn.extend=3Dfunction(){var =
a=3Darguments[0]||{},b=3D1,d=3Darguments.length,f=3Dfalse,e,j,i,o;if(type=
of a=3D=3D=3D"boolean"){f=3Da;a=3Darguments[1]||{};b=3D2}if(typeof =
a!=3D=3D"object"&&!c.isFunction(a))a=3D{};if(d=3D=3D=3Db){a=3Dthis;--b}fo=
r(;b<d;b++)if((e=3Darguments[b])!=3Dnull)for(j in =
e){i=3Da[j];o=3De[j];if(a!=3D=3Do)if(f&&o&&(c.isPlainObject(o)||c.isArray=
(o))){i=3Di&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=3Dc.extend(f,i,o)}else =
if(o!=3D=3Dw)a[j]=3Do}return =
a};c.extend({noConflict:function(a){A.$=3DSa;if(a)A.jQuery=3DRa;return =
c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return =
setTimeout(c.ready,13);c.isReady=3Dtrue;if(Q){for(var =
a,b=3D0;a=3DQ[b++];)a.call(s,c);Q=3Dnull}c.fn.triggerHandler&&c(s).trigge=
rHandler("ready")}},bindReady:function(){if(!xa){xa=3Dtrue;if(s.readyStat=
e=3D=3D=3D"complete")return =
c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else =
if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("on=
load",c.ready);var =
a=3Dfalse;try{a=3DA.frameElement=3D=3Dnull}catch(b){}s.documentElement.do=
Scroll&&a&&ma()}}},isFunction:function(a){return =
$.call(a)=3D=3D=3D"[object Function]"},isArray:function(a){return =
$.call(a)=3D=3D=3D"[object =
Array]"},isPlainObject:function(a){if(!a||$.call(a)!=3D=3D"[object =
Object]"||a.nodeType||a.setInterval)return =
false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor=
.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return =
b=3D=3D=3Dw||aa.call(a,b)},isEmptyObject:function(a){for(var b in =
a)return false;return true},error:function(a){throw =
a;},parseJSON:function(a){if(typeof a!=3D=3D"string"||!a)return =
null;a=3Dc.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u=
[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\=
d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return =
A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: =
"+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var =
b=3Ds.getElementsByTagName("head")[0]||s.documentElement,d=3Ds.createElem=
ent("script");d.type=3D"text/javascript";if(c.support.scriptEval)d.append=
Child(s.createTextNode(a));else =
d.text=3Da;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:fun=
ction(a,b){return =
a.nodeName&&a.nodeName.toUpperCase()=3D=3D=3Db.toUpperCase()},each:functi=
on(a,b,d){var =
f,e=3D0,j=3Da.length,i=3Dj=3D=3D=3Dw||c.isFunction(a);if(d)if(i)for(f in =
a){if(b.apply(a[f],
d)=3D=3D=3Dfalse)break}else =
for(;e<j;){if(b.apply(a[e++],d)=3D=3D=3Dfalse)break}else if(i)for(f in =
a){if(b.call(a[f],f,a[f])=3D=3D=3Dfalse)break}else =
for(d=3Da[0];e<j&&b.call(d,e,d)!=3D=3Dfalse;d=3Da[++e]);return =
a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b)=
{b=3Db||[];if(a!=3Dnull)a.length=3D=3Dnull||typeof =
a=3D=3D=3D"string"||c.isFunction(a)||typeof =
a!=3D=3D"function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return =
b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var =
d=3D0,f=3Db.length;d<f;d++)if(b[d]=3D=3D=3D
a)return d;return-1},merge:function(a,b){var =
d=3Da.length,f=3D0;if(typeof b.length=3D=3D=3D"number")for(var =
e=3Db.length;f<e;f++)a[d++]=3Db[f];else =
for(;b[f]!=3D=3Dw;)a[d++]=3Db[f++];a.length=3Dd;return =
a},grep:function(a,b,d){for(var =
f=3D[],e=3D0,j=3Da.length;e<j;e++)!d!=3D=3D!b(a[e],e)&&f.push(a[e]);retur=
n f},map:function(a,b,d){for(var =
f=3D[],e,j=3D0,i=3Da.length;j<i;j++){e=3Db(a[j],j,d);if(e!=3Dnull)f[f.len=
gth]=3De}return =
f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length=3D=
=3D=3D2)if(typeof b=3D=3D=3D"string"){d=3Da;a=3Dd[b];b=3Dw}else if(b&&
!c.isFunction(b)){d=3Db;b=3Dw}if(!b&&a)b=3Dfunction(){return =
a.apply(d||this,arguments)};if(a)b.guid=3Da.guid=3Da.guid||b.guid||c.guid=
++;return b},uaMatch:function(a){a=3Da.toLowerCase();a=3D/(webkit)[ =
\/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ =
\/]([\w.]+)/.exec(a)||/(msie) =
([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? =
rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},br=
owser:{}});P=3Dc.uaMatch(P);if(P.browser){c.browser[P.browser]=3Dtrue;c.b=
rowser.version=3DP.version}if(c.browser.webkit)c.browser.safari=3D
true;if(ya)c.inArray=3Dfunction(a,b){return =
ya.call(b,a)};T=3Dc(s);if(s.addEventListener)L=3Dfunction(){s.removeEvent=
Listener("DOMContentLoaded",L,false);c.ready()};else =
if(s.attachEvent)L=3Dfunction(){if(s.readyState=3D=3D=3D"complete"){s.det=
achEvent("onreadystatechange",L);c.ready()}};(function(){c.support=3D{};v=
ar =
a=3Ds.documentElement,b=3Ds.createElement("script"),d=3Ds.createElement("=
div"),f=3D"script"+J();d.style.display=3D"none";d.innerHTML=3D"   =
<link/><table></table><a href=3D'/a' =
style=3D'color:red;float:left;opacity:.55;'>a</a><input =
type=3D'checkbox'/>";
var =
e=3Dd.getElementsByTagName("*"),j=3Dd.getElementsByTagName("a")[0];if(!(!=
e||!e.length||!j)){c.support=3D{leadingWhitespace:d.firstChild.nodeType=3D=
=3D=3D3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.g=
etElementsByTagName("link").length,style:/red/.test(j.getAttribute("style=
")),hrefNormalized:j.getAttribute("href")=3D=3D=3D"/a",opacity:/^0.55$/.t=
est(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByT=
agName("input")[0].value=3D=3D=3D"on",optSelected:s.createElement("select=
").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNod=
e=3D=3D=3Dnull,deleteExpando:true,checkClone:false,scriptEval:false,noClo=
neEvent:true,boxModel:null};b.type=3D"text/javascript";try{b.appendChild(=
s.createTextNode("window."+f+"=3D1;"))}catch(i){}a.insertBefore(b,a.first=
Child);if(A[f]){c.support.scriptEval=3Dtrue;delete A[f]}try{delete =
b.test}catch(o){c.support.deleteExpando=3Dfalse}a.removeChild(b);if(d.att=
achEvent&&d.fireEvent){d.attachEvent("onclick",function =
k(){c.support.noCloneEvent=3D
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")=
}d=3Ds.createElement("div");d.innerHTML=3D"<input type=3D'radio' =
name=3D'radiotest' =
checked=3D'checked'/>";a=3Ds.createDocumentFragment();a.appendChild(d.fir=
stChild);c.support.checkClone=3Da.cloneNode(true).cloneNode(true).lastChi=
ld.checked;c(function(){var =
k=3Ds.createElement("div");k.style.width=3Dk.style.paddingLeft=3D"1px";s.=
body.appendChild(k);c.boxModel=3Dc.support.boxModel=3Dk.offsetWidth=3D=3D=
=3D2;s.body.removeChild(k).style.display=3D"none"});a=3Dfunction(k){var =
n=3D
s.createElement("div");k=3D"on"+k;var r=3Dk in =
n;if(!r){n.setAttribute(k,"return;");r=3Dtypeof =
n[k]=3D=3D=3D"function"}return =
r};c.support.submitBubbles=3Da("submit");c.support.changeBubbles=3Da("cha=
nge");a=3Db=3Dd=3De=3Dj=3Dnull}})();c.props=3D{"for":"htmlFor","class":"c=
lassName",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpac=
ing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useM=
ap",frameborder:"frameBorder"};var =
G=3D"jQuery"+J(),Ya=3D0,za=3D{};c.extend({cache:{},expando:G,noData:{embe=
d:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.to=
LowerCase()])){a=3Da=3D=3DA?za:a;var f=3Da[G],e=3Dc.cache;if(!f&&typeof =
b=3D=3D=3D"string"&&d=3D=3D=3Dw)return null;f||(f=3D++Ya);if(typeof =
b=3D=3D=3D"object"){a[G]=3Df;e[f]=3Dc.extend(true,{},b)}else =
if(!e[f]){a[G]=3Df;e[f]=3D{}}a=3De[f];if(d!=3D=3Dw)a[b]=3Dd;return =
typeof =
b=3D=3D=3D"string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.n=
oData[a.nodeName.toLowerCase()])){a=3Da=3D=3DA?za:a;var =
d=3Da[G],f=3Dc.cache,e=3Df[d];if(b){if(e){delete =
e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando=
)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete =
f[d]}}}});c.fn.extend({data:function(a,b){if(typeof =
a=3D=3D=3D"undefined"&&this.length)return c.data(this[0]);else if(typeof =
a=3D=3D=3D"object")return this.each(function(){c.data(this,a)});var =
d=3Da.split(".");d[1]=3Dd[1]?"."+d[1]:"";if(b=3D=3D=3Dw){var =
f=3Dthis.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f=3D=3D=3Dw&&this.l=
ength)f=3Dc.data(this[0],a);return =
f=3D=3D=3Dw&&d[1]?this.data(d[0]):f}else return =
this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return =
this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a=
,b,d){if(a){b=3D(b||"fx")+"queue";var f=3Dc.data(a,b);if(!d)return =
f||[];if(!f||c.isArray(d))f=3Dc.data(a,b,c.makeArray(d));else =
f.push(d);return f}},dequeue:function(a,b){b=3Db||"fx";var =
d=3Dc.queue(a,b),f=3Dd.shift();if(f=3D=3D=3D"inprogress")f=3Dd.shift();if=
(f){b=3D=3D=3D"fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue=
(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof =
a!=3D=3D"string"){b=3Da;a=3D"fx"}if(b=3D=3D=3D
w)return c.queue(this[0],a);return this.each(function(){var =
d=3Dc.queue(this,a,b);a=3D=3D=3D"fx"&&d[0]!=3D=3D"inprogress"&&c.dequeue(=
this,a)})},dequeue:function(a){return =
this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=3Dc.fx?c.=
fx.speeds[a]||a:a;b=3Db||"fx";return this.queue(b,function(){var =
d=3Dthis;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(=
a){return this.queue(a||"fx",[])}});var =
Aa=3D/[\n\t]/g,ca=3D/\s+/,Za=3D/\r/g,$a=3D/href|src|style/,ab=3D/(button|=
input)/i,bb=3D/(button|input|object|select|textarea)/i,
cb=3D/^(a|area)$/i,Ba=3D/radio|checkbox/;c.fn.extend({attr:function(a,b){=
return X(this,a,b,true,c.attr)},removeAttr:function(a){return =
this.each(function(){c.attr(this,a,"");this.nodeType=3D=3D=3D1&&this.remo=
veAttribute(a)})},addClass:function(a){if(c.isFunction(a))return =
this.each(function(n){var =
r=3Dc(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof =
a=3D=3D=3D"string")for(var =
b=3D(a||"").split(ca),d=3D0,f=3Dthis.length;d<f;d++){var =
e=3Dthis[d];if(e.nodeType=3D=3D=3D1)if(e.className){for(var j=3D" =
"+e.className+" ",
i=3De.className,o=3D0,k=3Db.length;o<k;o++)if(j.indexOf(" "+b[o]+" =
")<0)i+=3D" "+b[o];e.className=3Dc.trim(i)}else e.className=3Da}return =
this},removeClass:function(a){if(c.isFunction(a))return =
this.each(function(k){var =
n=3Dc(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof =
a=3D=3D=3D"string"||a=3D=3D=3Dw)for(var =
b=3D(a||"").split(ca),d=3D0,f=3Dthis.length;d<f;d++){var =
e=3Dthis[d];if(e.nodeType=3D=3D=3D1&&e.className)if(a){for(var j=3D(" =
"+e.className+" ").replace(Aa," =
"),i=3D0,o=3Db.length;i<o;i++)j=3Dj.replace(" "+b[i]+" ",
" ");e.className=3Dc.trim(j)}else e.className=3D""}return =
this},toggleClass:function(a,b){var d=3Dtypeof a,f=3Dtypeof =
b=3D=3D=3D"boolean";if(c.isFunction(a))return this.each(function(e){var =
j=3Dc(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return =
this.each(function(){if(d=3D=3D=3D"string")for(var =
e,j=3D0,i=3Dc(this),o=3Db,k=3Da.split(ca);e=3Dk[j++];){o=3Df?o:!i.hasClas=
s(e);i[o?"addClass":"removeClass"](e)}else =
if(d=3D=3D=3D"undefined"||d=3D=3D=3D"boolean"){this.className&&c.data(thi=
s,"__className__",this.className);this.className=3D
this.className||a=3D=3D=3Dfalse?"":c.data(this,"__className__")||""}})},h=
asClass:function(a){a=3D" "+a+" ";for(var =
b=3D0,d=3Dthis.length;b<d;b++)if((" "+this[b].className+" =
").replace(Aa," ").indexOf(a)>-1)return true;return =
false},val:function(a){if(a=3D=3D=3Dw){var =
b=3Dthis[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}=
).specified?b.value:b.text;if(c.nodeName(b,"select")){var =
d=3Db.selectedIndex,f=3D[],e=3Db.options;b=3Db.type=3D=3D=3D"select-one";=
if(d<0)return null;var j=3Db?d:0;for(d=3Db?d+1:e.length;j<d;j++){var =
i=3D
e[j];if(i.selected){a=3Dc(i).val();if(b)return a;f.push(a)}}return =
f}if(Ba.test(b.type)&&!c.support.checkOn)return =
b.getAttribute("value")=3D=3D=3Dnull?"on":b.value;return(b.value||"").rep=
lace(Za,"")}return w}var o=3Dc.isFunction(a);return =
this.each(function(k){var =
n=3Dc(this),r=3Da;if(this.nodeType=3D=3D=3D1){if(o)r=3Da.call(this,k,n.va=
l());if(typeof =
r=3D=3D=3D"number")r+=3D"";if(c.isArray(r)&&Ba.test(this.type))this.check=
ed=3Dc.inArray(n.val(),r)>=3D0;else if(c.nodeName(this,"select")){var =
u=3Dc.makeArray(r);c("option",this).each(function(){this.selected=3D
c.inArray(c(this).val(),u)>=3D0});if(!u.length)this.selectedIndex=3D-1}el=
se =
this.value=3Dr}})}});c.extend({attrFn:{val:true,css:true,html:true,text:t=
rue,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){=
if(!a||a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8)return w;if(f&&b in =
c.attrFn)return c(a)[b](d);f=3Da.nodeType!=3D=3D1||!c.isXMLDoc(a);var =
e=3Dd!=3D=3Dw;b=3Df&&c.props[b]||b;if(a.nodeType=3D=3D=3D1){var =
j=3D$a.test(b);if(b in =
a&&f&&!j){if(e){b=3D=3D=3D"type"&&ab.test(a.nodeName)&&a.parentNode&&c.er=
ror("type property can't be changed");
a[b]=3Dd}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return =
a.getAttributeNode(b).nodeValue;if(b=3D=3D=3D"tabIndex")return(b=3Da.getA=
ttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.te=
st(a.nodeName)&&a.href?0:w;return =
a[b]}if(!c.support.style&&f&&b=3D=3D=3D"style"){if(e)a.style.cssText=3D""=
+d;return =
a.style.cssText}e&&a.setAttribute(b,""+d);a=3D!c.support.hrefNormalized&&=
f&&j?a.getAttribute(b,2):a.getAttribute(b);return =
a=3D=3D=3Dnull?w:a}return c.style(a,b,d)}});var =
O=3D/\.(.*)$/,db=3Dfunction(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event=3D{add:function(a,b,d,f){if(!(a.nodeT=
ype=3D=3D=3D3||a.nodeType=3D=3D=3D8)){if(a.setInterval&&a!=3D=3DA&&!a.fra=
meElement)a=3DA;var =
e,j;if(d.handler){e=3Dd;d=3De.handler}if(!d.guid)d.guid=3Dc.guid++;if(j=3D=
c.data(a)){var =
i=3Dj.events=3Dj.events||{},o=3Dj.handle;if(!o)j.handle=3Do=3Dfunction(){=
return typeof =
c!=3D=3D"undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,argum=
ents):w};o.elem=3Da;b=3Db.split(" ");for(var =
k,n=3D0,r;k=3Db[n++];){j=3De?c.extend({},e):{handler:d,data:f};if(k.index=
Of(".")>-1){r=3Dk.split(".");
k=3Dr.shift();j.namespace=3Dr.slice(0).sort().join(".")}else{r=3D[];j.nam=
espace=3D""}j.type=3Dk;j.guid=3Dd.guid;var =
u=3Di[k],z=3Dc.event.special[k]||{};if(!u){u=3Di[k]=3D[];if(!z.setup||z.s=
etup.call(a,f,r,o)=3D=3D=3Dfalse)if(a.addEventListener)a.addEventListener=
(k,o,false);else =
a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.ha=
ndler.guid)j.handler.guid=3Dd.guid}u.push(j);c.event.global[k]=3Dtrue}a=3D=
null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType=3D=3D=3D3||a.n=
odeType=3D=3D=3D8)){var e,j=3D0,i,o,k,n,r,u,z=3Dc.data(a),
C=3Dz&&z.events;if(z&&C){if(b&&b.type){d=3Db.handler;b=3Db.type}if(!b||ty=
peof b=3D=3D=3D"string"&&b.charAt(0)=3D=3D=3D"."){b=3Db||"";for(e in =
C)c.event.remove(a,e+b)}else{for(b=3Db.split(" =
");e=3Db[j++];){n=3De;i=3De.indexOf(".")<0;o=3D[];if(!i){o=3De.split(".")=
;e=3Do.shift();k=3Dnew =
RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|=
$)")}if(r=3DC[e])if(d){n=3Dc.event.special[e]||{};for(B=3Df||0;B<r.length=
;B++){u=3Dr[B];if(d.guid=3D=3D=3Du.guid){if(i||k.test(u.namespace)){f=3D=3D=
null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=3D
null)break}}if(r.length=3D=3D=3D0||f!=3Dnull&&r.length=3D=3D=3D1){if(!n.t=
eardown||n.teardown.call(a,o)=3D=3D=3Dfalse)Ca(a,e,z.handle);delete =
C[e]}}else for(var =
B=3D0;B<r.length;B++){u=3Dr[B];if(i||k.test(u.namespace)){c.event.remove(=
a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=3Dz.handle=
)b.elem=3Dnull;delete z.events;delete =
z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,=
f){var e=3Da.type||a;if(!f){a=3Dtypeof =
a=3D=3D=3D"object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf(=
"!")>=3D0){a.type=3D
e=3De.slice(0,-1);a.exclusive=3Dtrue}if(!d){a.stopPropagation();c.event.g=
lobal[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.=
trigger(a,b,this.handle.elem)})}if(!d||d.nodeType=3D=3D=3D3||d.nodeType=3D=
=3D=3D8)return =
w;a.result=3Dw;a.target=3Dd;b=3Dc.makeArray(b);b.unshift(a)}a.currentTarg=
et=3Dd;(f=3Dc.data(d,"handle"))&&f.apply(d,b);f=3Dd.parentNode||d.ownerDo=
cument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["=
on"+e]&&d["on"+e].apply(d,b)=3D=3D=3Dfalse)a.result=3Dfalse}catch(j){}if(=
!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else =
if(!a.isDefaultPrevented()){f=3Da.target;var =
i,o=3Dc.nodeName(f,"a")&&e=3D=3D=3D"click",k=3Dc.event.special[e]||{};if(=
(!k._default||k._default.call(d,a)=3D=3D=3Dfalse)&&!o&&!(f&&f.nodeName&&c=
.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=3Df["on"+e])f["on"+=
e]=3Dnull;c.event.triggered=3Dtrue;f[e]()}}catch(n){}if(i)f["on"+e]=3Di;c=
.event.triggered=3Dfalse}}},handle:function(a){var =
b,d,f,e;a=3Darguments[0]=3Dc.event.fix(a||A.event);a.currentTarget=3Dthis=
;b=3Da.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=3Da.type.split(".");a.type=3Dd.shift();f=3Dnew =
RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=3Dc=
.data(this,"events");d=3De[a.type];if(e&&d){d=3Dd.slice(0);e=3D0;for(var =
j=3Dd.length;e<j;e++){var =
i=3Dd[e];if(b||f.test(i.namespace)){a.handler=3Di.handler;a.data=3Di.data=
;a.handleObj=3Di;i=3Di.handler.apply(this,arguments);if(i!=3D=3Dw){a.resu=
lt=3Di;if(i=3D=3D=3Dfalse){a.preventDefault();a.stopPropagation()}}if(a.i=
sImmediatePropagationStopped())break}}}return a.result},props:"altKey =
attrChange attrName bubbles button cancelable charCode clientX clientY =
ctrlKey currentTarget data detail eventPhase fromElement handler keyCode =
layerX layerY metaKey newValue offsetX offsetY originalTarget pageX =
pageY prevValue relatedNode relatedTarget screenX screenY shiftKey =
srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=3Da;a=3Dc.Event(b);for(var =
d=3Dthis.props.length,f;d;){f=3Dthis.props[--d];a[f]=3Db[f]}if(!a.target)=
a.target=3Da.srcElement||s;if(a.target.nodeType=3D=3D=3D3)a.target=3Da.ta=
rget.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=3Da.fr=
omElement=3D=3D=3Da.target?a.toElement:a.fromElement;if(a.pageX=3D=3Dnull=
&&a.clientX!=3Dnull){b=3Ds.documentElement;d=3Ds.body;a.pageX=3Da.clientX=
+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft|=
|0);a.pageY=3Da.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.ch=
arCode||a.charCode=3D=3D=3D0?a.charCode:a.keyCode))a.which=3Da.charCode||=
a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=3Da.ctrlKey;if(!a.which&&a.b=
utton!=3D=3Dw)a.which=3Da.button&1?1:a.button&2?3:a.button&4?2:0;return =
a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.no=
op},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{hand=
ler:oa}))},remove:function(a){var =
b=3Dtrue,d=3Da.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d=3D=3D=3Dthis.origType.replace(O,""))re=
turn =
b=3Dfalse});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:f=
unction(a,b,d){if(this.setInterval)this.onbeforeunload=3Dd;return =
false},teardown:function(a,b){if(this.onbeforeunload=3D=3D=3Db)this.onbef=
oreunload=3Dnull}}}};var =
Ca=3Ds.removeEventListener?function(a,b,d){a.removeEventListener(b,d,fals=
e)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=3Dfunction(a){if(!th=
is.preventDefault)return new =
c.Event(a);if(a&&a.type){this.originalEvent=3D
a;this.type=3Da.type}else =
this.type=3Da;this.timeStamp=3DJ();this[G]=3Dtrue};c.Event.prototype=3D{p=
reventDefault:function(){this.isDefaultPrevented=3DZ;var =
a=3Dthis.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.retur=
nValue=3Dfalse}},stopPropagation:function(){this.isPropagationStopped=3DZ=
;var =
a=3Dthis.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.can=
celBubble=3Dtrue}},stopImmediatePropagation:function(){this.isImmediatePr=
opagationStopped=3DZ;this.stopPropagation()},isDefaultPrevented:Y,isPropa=
gationStopped:Y,
isImmediatePropagationStopped:Y};var Da=3Dfunction(a){var =
b=3Da.relatedTarget;try{for(;b&&b!=3D=3Dthis;)b=3Db.parentNode;if(b!=3D=3D=
this){a.type=3Da.data;c.event.handle.apply(this,arguments)}}catch(d){}},E=
a=3Dfunction(a){a.type=3Da.data;c.event.handle.apply(this,arguments)};c.e=
ach({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.=
special[a]=3D{setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)=
},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(=
!c.support.submitBubbles)c.event.special.submit=3D
{setup:function(){if(this.nodeName.toLowerCase()!=3D=3D"form"){c.event.ad=
d(this,"click.specialSubmit",function(a){var =
b=3Da.target,d=3Db.type;if((d=3D=3D=3D"submit"||d=3D=3D=3D"image")&&c(b).=
closest("form").length)return =
na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",f=
unction(a){var =
b=3Da.target,d=3Db.type;if((d=3D=3D=3D"text"||d=3D=3D=3D"password")&&c(b)=
.closest("form").length&&a.keyCode=3D=3D=3D13)return =
na("submit",this,arguments)})}else return =
false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var =
da=3D/textarea|input|select/i,ea,Fa=3Dfunction(a){var =
b=3Da.type,d=3Da.value;if(b=3D=3D=3D"radio"||b=3D=3D=3D"checkbox")d=3Da.c=
hecked;else =
if(b=3D=3D=3D"select-multiple")d=3Da.selectedIndex>-1?c.map(a.options,fun=
ction(f){return f.selected}).join("-"):"";else =
if(a.nodeName.toLowerCase()=3D=3D=3D"select")d=3Da.selectedIndex;return =
d},fa=3Dfunction(a,b){var =
d=3Da.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=3Dc.data(d,"_c=
hange_data");e=3DFa(d);if(a.type!=3D=3D"focusout"||d.type!=3D=3D"radio")c=
.data(d,"_change_data",
e);if(!(f=3D=3D=3Dw||e=3D=3D=3Df))if(f!=3Dnull||e){a.type=3D"change";retu=
rn =
c.event.trigger(a,b,d)}}};c.event.special.change=3D{filters:{focusout:fa,=
click:function(a){var =
b=3Da.target,d=3Db.type;if(d=3D=3D=3D"radio"||d=3D=3D=3D"checkbox"||b.nod=
eName.toLowerCase()=3D=3D=3D"select")return =
fa.call(this,a)},keydown:function(a){var =
b=3Da.target,d=3Db.type;if(a.keyCode=3D=3D=3D13&&b.nodeName.toLowerCase()=
!=3D=3D"textarea"||a.keyCode=3D=3D=3D32&&(d=3D=3D=3D"checkbox"||d=3D=3D=3D=
"radio")||d=3D=3D=3D"select-multiple")return =
fa.call(this,a)},beforeactivate:function(a){a=3Da.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type=3D=3D=3D"file")retu=
rn false;for(var a in =
ea)c.event.add(this,a+".specialChange",ea[a]);return =
da.test(this.nodeName)},teardown:function(){c.event.remove(this,".special=
Change");return =
da.test(this.nodeName)}};ea=3Dc.event.special.change.filters}s.addEventLi=
stener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function =
d(f){f=3Dc.event.fix(f);f.type=3Db;return =
c.event.handle.call(this,f)}c.event.special[b]=3D{setup:function(){this.a=
ddEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.eac=
h(["bind","one"],function(a,b){c.fn[b]=3Dfunction(d,f,e){if(typeof =
d=3D=3D=3D"object"){for(var j in d)this[b](j,f,d[j],e);return =
this}if(c.isFunction(f)){e=3Df;f=3Dw}var =
i=3Db=3D=3D=3D"one"?c.proxy(e,function(k){c(this).unbind(k,i);return =
e.apply(this,arguments)}):e;if(d=3D=3D=3D"unload"&&b!=3D=3D"one")this.one=
(d,f,e);else{j=3D0;for(var =
o=3Dthis.length;j<o;j++)c.event.add(this[j],d,i,f)}return =
this}});c.fn.extend({unbind:function(a,b){if(typeof a=3D=3D=3D"object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=3D0;for(var =
f=3Dthis.length;d<f;d++)c.event.remove(this[d],a,b)}return =
this},delegate:function(a,b,d,f){return =
this.live(b,d,f,a)},undelegate:function(a,b,d){return =
arguments.length=3D=3D=3D0?this.unbind("live"):this.die(b,null,d,a)},trig=
ger:function(a,b){return =
this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function=
(a,b){if(this[0]){a=3Dc.Event(a);a.preventDefault();a.stopPropagation();c=
.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var =
b=3Darguments,d=3D1;d<b.length;)c.proxy(a,b[d++]);return =
this.click(c.proxy(a,function(f){var =
e=3D(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.gu=
id,e+1);f.preventDefault();return =
b[e].apply(this,arguments)||false}))},hover:function(a,b){return =
this.mouseenter(a).mouseleave(b||a)}});var =
Ga=3D{focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"=
mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=3Dfunction(d,f,e,j=
){var i,o=3D0,k,n,r=3Dj||this.selector,
u=3Dj?this:c(this.context);if(c.isFunction(f)){e=3Df;f=3Dw}for(d=3D(d||""=
).split(" =
");(i=3Dd[o++])!=3Dnull;){j=3DO.exec(i);k=3D"";if(j){k=3Dj[0];i=3Di.repla=
ce(O,"")}if(i=3D=3D=3D"hover")d.push("mouseenter"+k,"mouseleave"+k);else{=
n=3Di;if(i=3D=3D=3D"focus"||i=3D=3D=3D"blur"){d.push(Ga[i]+k);i+=3Dk}else=
 =
i=3D(Ga[i]||i)+k;b=3D=3D=3D"live"?u.each(function(){c.event.add(this,pa(i=
,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u=
.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout =
load resize scroll unload click dblclick mousedown mouseup mousemove =
mouseover mouseout mouseenter mouseleave change select submit keydown =
keypress keyup error".split(" "),
function(a,b){c.fn[b]=3Dfunction(d){return =
d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=3Dtrue});A.atta=
chEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var=
 a in =
c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}c=
atch(b){}});(function(){function a(g){for(var =
h=3D"",l,m=3D0;g[m];m++){l=3Dg[m];if(l.nodeType=3D=3D=3D3||l.nodeType=3D=3D=
=3D4)h+=3Dl.nodeValue;else =
if(l.nodeType!=3D=3D8)h+=3Da(l.childNodes)}return h}function =
b(g,h,l,m,q,p){q=3D0;for(var v=3Dm.length;q<v;q++){var t=3Dm[q];
if(t){t=3Dt[g];for(var =
y=3Dfalse;t;){if(t.sizcache=3D=3D=3Dl){y=3Dm[t.sizset];break}if(t.nodeTyp=
e=3D=3D=3D1&&!p){t.sizcache=3Dl;t.sizset=3Dq}if(t.nodeName.toLowerCase()=3D=
=3D=3Dh){y=3Dt;break}t=3Dt[g]}m[q]=3Dy}}}function =
d(g,h,l,m,q,p){q=3D0;for(var v=3Dm.length;q<v;q++){var =
t=3Dm[q];if(t){t=3Dt[g];for(var =
y=3Dfalse;t;){if(t.sizcache=3D=3D=3Dl){y=3Dm[t.sizset];break}if(t.nodeTyp=
e=3D=3D=3D1){if(!p){t.sizcache=3Dl;t.sizset=3Dq}if(typeof =
h!=3D=3D"string"){if(t=3D=3D=3Dh){y=3Dtrue;break}}else =
if(k.filter(h,[t]).length>0){y=3Dt;break}}t=3Dt[g]}m[q]=3Dy}}}var =
f=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]=
'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=3D0,j=3DObject.prototype.toString,i=3Dfalse,o=3Dtrue;[0,0].sort(functio=
n(){o=3Dfalse;return 0});var k=3Dfunction(g,h,l,m){l=3Dl||[];var =
q=3Dh=3Dh||s;if(h.nodeType!=3D=3D1&&h.nodeType!=3D=3D9)return[];if(!g||ty=
peof g!=3D=3D"string")return l;for(var =
p=3D[],v,t,y,S,H=3Dtrue,M=3Dx(h),I=3Dg;(f.exec(""),v=3Df.exec(I))!=3D=3Dn=
ull;){I=3Dv[3];p.push(v[1]);if(v[2]){S=3Dv[3];break}}if(p.length>1&&r.exe=
c(g))if(p.length=3D=3D=3D2&&n.relative[p[0]])t=3Dga(p[0]+p[1],h);else =
for(t=3Dn.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=3Dp.shift();if(n=
.relative[g])g+=3Dp.shift();
t=3Dga(g,t)}else{if(!m&&p.length>1&&h.nodeType=3D=3D=3D9&&!M&&n.match.ID.=
test(p[0])&&!n.match.ID.test(p[p.length-1])){v=3Dk.find(p.shift(),h,M);h=3D=
v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=3Dm?{expr:p.pop(),set:z=
(m)}:k.find(p.pop(),p.length=3D=3D=3D1&&(p[0]=3D=3D=3D"~"||p[0]=3D=3D=3D"=
+")&&h.parentNode?h.parentNode:h,M);t=3Dv.expr?k.filter(v.expr,v.set):v.s=
et;if(p.length>0)y=3Dz(t);else H=3Dfalse;for(;p.length;){var =
D=3Dp.pop();v=3DD;if(n.relative[D])v=3Dp.pop();else =
D=3D"";if(v=3D=3Dnull)v=3Dh;n.relative[D](y,v,M)}}else =
y=3D[]}y||(y=3Dt);y||k.error(D||
g);if(j.call(y)=3D=3D=3D"[object =
Array]")if(H)if(h&&h.nodeType=3D=3D=3D1)for(g=3D0;y[g]!=3Dnull;g++){if(y[=
g]&&(y[g]=3D=3D=3Dtrue||y[g].nodeType=3D=3D=3D1&&E(h,y[g])))l.push(t[g])}=
else =
for(g=3D0;y[g]!=3Dnull;g++)y[g]&&y[g].nodeType=3D=3D=3D1&&l.push(t[g]);el=
se l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return =
l};k.uniqueSort=3Dfunction(g){if(B){i=3Do;g.sort(B);if(i)for(var =
h=3D1;h<g.length;h++)g[h]=3D=3D=3Dg[h-1]&&g.splice(h--,1)}return =
g};k.matches=3Dfunction(g,h){return =
k(g,null,null,h)};k.find=3Dfunction(g,h,l){var m,q;if(!g)return[];
for(var p=3D0,v=3Dn.order.length;p<v;p++){var =
t=3Dn.order[p];if(q=3Dn.leftMatch[t].exec(g)){var =
y=3Dq[1];q.splice(1,1);if(y.substr(y.length-1)!=3D=3D"\\"){q[1]=3D(q[1]||=
"").replace(/\\/g,"");m=3Dn.find[t](q,h,l);if(m!=3Dnull){g=3Dg.replace(n.=
match[t],"");break}}}}m||(m=3Dh.getElementsByTagName("*"));return{set:m,e=
xpr:g}};k.filter=3Dfunction(g,h,l,m){for(var =
q=3Dg,p=3D[],v=3Dh,t,y,S=3Dh&&h[0]&&x(h[0]);g&&h.length;){for(var H in =
n.filter)if((t=3Dn.leftMatch[H].exec(g))!=3Dnull&&t[2]){var =
M=3Dn.filter[H],I,D;D=3Dt[1];y=3Dfalse;t.splice(1,1);if(D.substr(D.length=
-
1)!=3D=3D"\\"){if(v=3D=3D=3Dp)p=3D[];if(n.preFilter[H])if(t=3Dn.preFilter=
[H](t,v,l,p,m,S)){if(t=3D=3D=3Dtrue)continue}else =
y=3DI=3Dtrue;if(t)for(var =
U=3D0;(D=3Dv[U])!=3Dnull;U++)if(D){I=3DM(D,t,U,v);var =
Ha=3Dm^!!I;if(l&&I!=3Dnull)if(Ha)y=3Dtrue;else v[U]=3Dfalse;else =
if(Ha){p.push(D);y=3Dtrue}}if(I!=3D=3Dw){l||(v=3Dp);g=3Dg.replace(n.match=
[H],"");if(!y)return[];break}}}if(g=3D=3D=3Dq)if(y=3D=3Dnull)k.error(g);e=
lse break;q=3Dg}return v};k.error=3Dfunction(g){throw"Syntax error, =
unrecognized expression: "+g;};var =
n=3Dk.selectors=3D{order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\u=
FFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=3D['"]*((?:[\w\u00c0=
-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\=
S?=3D)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CH=
ILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth=
|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=3D[^-]|$)/,PSEUDO:/:((?:[\=
w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},lef=
tMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:=
function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=3Dtypeof =
h=3D=3D=3D"string",m=3Dl&&!/\W/.test(h);l=3Dl&&!m;if(m)h=3Dh.toLowerCase(=
);m=3D0;for(var =
q=3Dg.length,p;m<q;m++)if(p=3Dg[m]){for(;(p=3Dp.previousSibling)&&p.nodeT=
ype!=3D=3D1;);g[m]=3Dl||p&&p.nodeName.toLowerCase()=3D=3D=3Dh?p||false:p=3D=
=3D=3Dh}l&&k.filter(h,g,true)},">":function(g,h){var l=3Dtypeof =
h=3D=3D=3D"string";if(l&&!/\W/.test(h)){h=3Dh.toLowerCase();for(var =
m=3D0,q=3Dg.length;m<q;m++){var =
p=3Dg[m];if(p){l=3Dp.parentNode;g[m]=3Dl.nodeName.toLowerCase()=3D=3D=3Dh=
?l:false}}}else{m=3D0;for(q=3Dg.length;m<q;m++)if(p=3Dg[m])g[m]=3D
l?p.parentNode:p.parentNode=3D=3D=3Dh;l&&k.filter(h,g,true)}},"":function=
(g,h,l){var m=3De++,q=3Dd;if(typeof =
h=3D=3D=3D"string"&&!/\W/.test(h)){var =
p=3Dh=3Dh.toLowerCase();q=3Db}q("parentNode",h,m,g,p,l)},"~":function(g,h=
,l){var m=3De++,q=3Dd;if(typeof h=3D=3D=3D"string"&&!/\W/.test(h)){var =
p=3Dh=3Dh.toLowerCase();q=3Db}q("previousSibling",h,m,g,p,l)}},find:{ID:f=
unction(g,h,l){if(typeof =
h.getElementById!=3D=3D"undefined"&&!l)return(g=3Dh.getElementById(g[1]))=
?[g]:[]},NAME:function(g,h){if(typeof =
h.getElementsByName!=3D=3D"undefined"){var l=3D[];
h=3Dh.getElementsByName(g[1]);for(var =
m=3D0,q=3Dh.length;m<q;m++)h[m].getAttribute("name")=3D=3D=3Dg[1]&&l.push=
(h[m]);return l.length=3D=3D=3D0?null:l}},TAG:function(g,h){return =
h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=3D=
" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=3D0;for(var =
v;(v=3Dh[p])!=3Dnull;p++)if(v)if(q^(v.className&&(" "+v.className+" =
").replace(/[\t\n]/g," ").indexOf(g)>=3D0))l||m.push(v);else =
if(l)h[p]=3Dfalse;return false},ID:function(g){return =
g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]=3D=3D=3D"nth"){var =
h=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]=3D=3D=3D"even"&&"2n"||g[2]=3D=3D=
=3D"odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=3Dh[1]+(h[2]||=
1)-0;g[3]=3Dh[3]-0}g[0]=3De++;return =
g},ATTR:function(g,h,l,m,q,p){h=3Dg[1].replace(/\\/g,"");if(!p&&n.attrMap=
[h])g[1]=3Dn.attrMap[h];if(g[2]=3D=3D=3D"~=3D")g[4]=3D" "+g[4]+" =
";return =
g},PSEUDO:function(g,h,l,m,q){if(g[1]=3D=3D=3D"not")if((f.exec(g[3])||"")=
.length>1||/^\w/.test(g[3]))g[3]=3Dk(g[3],null,null,h);else{g=3Dk.filter(=
g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else =
if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return =
g},POS:function(g){g.unshift(true);return =
g}},filters:{enabled:function(g){return =
g.disabled=3D=3D=3Dfalse&&g.type!=3D=3D"hidden"},disabled:function(g){ret=
urn g.disabled=3D=3D=3Dtrue},checked:function(g){return =
g.checked=3D=3D=3Dtrue},selected:function(g){return =
g.selected=3D=3D=3Dtrue},parent:function(g){return!!g.firstChild},empty:f=
unction(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).len=
gth},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"=3D=3D=3Dg.type},radio:function(g){return"ra=
dio"=3D=3D=3Dg.type},checkbox:function(g){return"checkbox"=3D=3D=3Dg.type=
},file:function(g){return"file"=3D=3D=3Dg.type},password:function(g){retu=
rn"password"=3D=3D=3Dg.type},submit:function(g){return"submit"=3D=3D=3Dg.=
type},image:function(g){return"image"=3D=3D=3Dg.type},reset:function(g){r=
eturn"reset"=3D=3D=3Dg.type},button:function(g){return"button"=3D=3D=3Dg.=
type||g.nodeName.toLowerCase()=3D=3D=3D"button"},input:function(g){return=
/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return =
h=3D=3D=3D0},last:function(g,h,l,m){return =
h=3D=3D=3Dm.length-1},even:function(g,h){return =
h%2=3D=3D=3D0},odd:function(g,h){return =
h%2=3D=3D=3D1},lt:function(g,h,l){return =
h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return =
l[3]-0=3D=3D=3Dh},eq:function(g,h,l){return =
l[3]-0=3D=3D=3Dh}},filter:{PSEUDO:function(g,h,l,m){var =
q=3Dh[1],p=3Dn.filters[q];if(p)return p(g,l,h,m);else =
if(q=3D=3D=3D"contains")return(g.textContent||g.innerText||a([g])||"").in=
dexOf(h[3])>=3D0;else if(q=3D=3D=3D"not"){h=3D
h[3];l=3D0;for(m=3Dh.length;l<m;l++)if(h[l]=3D=3D=3Dg)return =
false;return true}else k.error("Syntax error, unrecognized expression: =
"+q)},CHILD:function(g,h){var l=3Dh[1],m=3Dg;switch(l){case "only":case =
"first":for(;m=3Dm.previousSibling;)if(m.nodeType=3D=3D=3D1)return =
false;if(l=3D=3D=3D"first")return true;m=3Dg;case =
"last":for(;m=3Dm.nextSibling;)if(m.nodeType=3D=3D=3D1)return =
false;return true;case "nth":l=3Dh[2];var =
q=3Dh[3];if(l=3D=3D=3D1&&q=3D=3D=3D0)return true;h=3Dh[0];var =
p=3Dg.parentNode;if(p&&(p.sizcache!=3D=3Dh||!g.nodeIndex)){var =
v=3D0;for(m=3Dp.firstChild;m;m=3D
m.nextSibling)if(m.nodeType=3D=3D=3D1)m.nodeIndex=3D++v;p.sizcache=3Dh}g=3D=
g.nodeIndex-q;return =
l=3D=3D=3D0?g=3D=3D=3D0:g%l=3D=3D=3D0&&g/l>=3D0}},ID:function(g,h){return=
 =
g.nodeType=3D=3D=3D1&&g.getAttribute("id")=3D=3D=3Dh},TAG:function(g,h){r=
eturn =
h=3D=3D=3D"*"&&g.nodeType=3D=3D=3D1||g.nodeName.toLowerCase()=3D=3D=3Dh},=
CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" =
").indexOf(h)>-1},ATTR:function(g,h){var =
l=3Dh[1];g=3Dn.attrHandle[l]?n.attrHandle[l](g):g[l]!=3Dnull?g[l]:g.getAt=
tribute(l);l=3Dg+"";var m=3Dh[2];h=3Dh[4];return =
g=3D=3Dnull?m=3D=3D=3D"!=3D":m=3D=3D=3D
"=3D"?l=3D=3D=3Dh:m=3D=3D=3D"*=3D"?l.indexOf(h)>=3D0:m=3D=3D=3D"~=3D"?(" =
"+l+" =
").indexOf(h)>=3D0:!h?l&&g!=3D=3Dfalse:m=3D=3D=3D"!=3D"?l!=3D=3Dh:m=3D=3D=
=3D"^=3D"?l.indexOf(h)=3D=3D=3D0:m=3D=3D=3D"$=3D"?l.substr(l.length-h.len=
gth)=3D=3D=3Dh:m=3D=3D=3D"|=3D"?l=3D=3D=3Dh||l.substr(0,h.length+1)=3D=3D=
=3Dh+"-":false},POS:function(g,h,l,m){var =
q=3Dn.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=3Dn.match.POS;for(var =
u in n.match){n.match[u]=3Dnew =
RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u=
]=3Dnew =
RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,fun=
ction(g,
h){return"\\"+(h-0+1)}))}var =
z=3Dfunction(g,h){g=3DArray.prototype.slice.call(g,0);if(h){h.push.apply(=
h,g);return h}return =
g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C=
){z=3Dfunction(g,h){h=3Dh||[];if(j.call(g)=3D=3D=3D"[object =
Array]")Array.prototype.push.apply(h,g);else if(typeof =
g.length=3D=3D=3D"number")for(var =
l=3D0,m=3Dg.length;l<m;l++)h.push(g[l]);else =
for(l=3D0;g[l];l++)h.push(g[l]);return h}}var =
B;if(s.documentElement.compareDocumentPosition)B=3Dfunction(g,h){if(!g.co=
mpareDocumentPosition||
!h.compareDocumentPosition){if(g=3D=3Dh)i=3Dtrue;return =
g.compareDocumentPosition?-1:1}g=3Dg.compareDocumentPosition(h)&4?-1:g=3D=
=3D=3Dh?0:1;if(g=3D=3D=3D0)i=3Dtrue;return g};else if("sourceIndex"in =
s.documentElement)B=3Dfunction(g,h){if(!g.sourceIndex||!h.sourceIndex){if=
(g=3D=3Dh)i=3Dtrue;return =
g.sourceIndex?-1:1}g=3Dg.sourceIndex-h.sourceIndex;if(g=3D=3D=3D0)i=3Dtru=
e;return g};else =
if(s.createRange)B=3Dfunction(g,h){if(!g.ownerDocument||!h.ownerDocument)=
{if(g=3D=3Dh)i=3Dtrue;return g.ownerDocument?-1:1}var =
l=3Dg.ownerDocument.createRange(),m=3D
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,=
0);m.setEnd(h,0);g=3Dl.compareBoundaryPoints(Range.START_TO_END,m);if(g=3D=
=3D=3D0)i=3Dtrue;return g};(function(){var =
g=3Ds.createElement("div"),h=3D"script"+(new =
Date).getTime();g.innerHTML=3D"<a name=3D'"+h+"'/>";var =
l=3Ds.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(=
h)){n.find.ID=3Dfunction(m,q,p){if(typeof =
q.getElementById!=3D=3D"undefined"&&!p)return(q=3Dq.getElementById(m[1]))=
?q.id=3D=3D=3Dm[1]||typeof q.getAttributeNode!=3D=3D"undefined"&&
q.getAttributeNode("id").nodeValue=3D=3D=3Dm[1]?[q]:w:[]};n.filter.ID=3Df=
unction(m,q){var p=3Dtypeof =
m.getAttributeNode!=3D=3D"undefined"&&m.getAttributeNode("id");return =
m.nodeType=3D=3D=3D1&&p&&p.nodeValue=3D=3D=3Dq}}l.removeChild(g);l=3Dg=3D=
null})();(function(){var =
g=3Ds.createElement("div");g.appendChild(s.createComment(""));if(g.getEle=
mentsByTagName("*").length>0)n.find.TAG=3Dfunction(h,l){l=3Dl.getElements=
ByTagName(h[1]);if(h[1]=3D=3D=3D"*"){h=3D[];for(var =
m=3D0;l[m];m++)l[m].nodeType=3D=3D=3D1&&h.push(l[m]);l=3Dh}return =
l};g.innerHTML=3D"<a href=3D'#'></a>";
if(g.firstChild&&typeof =
g.firstChild.getAttribute!=3D=3D"undefined"&&g.firstChild.getAttribute("h=
ref")!=3D=3D"#")n.attrHandle.href=3Dfunction(h){return =
h.getAttribute("href",2)};g=3Dnull})();s.querySelectorAll&&function(){var=
 g=3Dk,h=3Ds.createElement("div");h.innerHTML=3D"<p =
class=3D'TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST")=
.length=3D=3D=3D0)){k=3Dfunction(m,q,p,v){q=3Dq||s;if(!v&&q.nodeType=3D=3D=
=3D9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return =
g(m,q,p,v)};for(var l in g)k[l]=3Dg[l];h=3Dnull}}();
(function(){var g=3Ds.createElement("div");g.innerHTML=3D"<div =
class=3D'test e'></div><div =
class=3D'test'></div>";if(!(!g.getElementsByClassName||g.getElementsByCla=
ssName("e").length=3D=3D=3D0)){g.lastChild.className=3D"e";if(g.getElemen=
tsByClassName("e").length!=3D=3D1){n.order.splice(1,0,"CLASS");n.find.CLA=
SS=3Dfunction(h,l,m){if(typeof =
l.getElementsByClassName!=3D=3D"undefined"&&!m)return =
l.getElementsByClassName(h[1])};g=3Dnull}}})();var =
E=3Ds.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPos=
ition(h)&16)}:
function(g,h){return =
g!=3D=3Dh&&(g.contains?g.contains(h):true)},x=3Dfunction(g){return(g=3D(g=
?g.ownerDocument||g:0).documentElement)?g.nodeName!=3D=3D"HTML":false},ga=
=3Dfunction(g,h){var =
l=3D[],m=3D"",q;for(h=3Dh.nodeType?[h]:h;q=3Dn.match.PSEUDO.exec(g);){m+=3D=
q[0];g=3Dg.replace(n.match.PSEUDO,"")}g=3Dn.relative[g]?g+"*":g;q=3D0;for=
(var p=3Dh.length;q<p;q++)k(g,h[q],l);return =
k.filter(m,l)};c.find=3Dk;c.expr=3Dk.selectors;c.expr[":"]=3Dc.expr.filte=
rs;c.unique=3Dk.uniqueSort;c.text=3Da;c.isXMLDoc=3Dx;c.contains=3DE})();v=
ar eb=3D/Until$/,fb=3D/^(?:parents|prevUntil|prevAll)/,
gb=3D/,/;R=3DArray.prototype.slice;var =
Ia=3Dfunction(a,b,d){if(c.isFunction(b))return =
c.grep(a,function(e,j){return!!b.call(e,j,e)=3D=3D=3Dd});else =
if(b.nodeType)return c.grep(a,function(e){return =
e=3D=3D=3Db=3D=3D=3Dd});else if(typeof b=3D=3D=3D"string"){var =
f=3Dc.grep(a,function(e){return =
e.nodeType=3D=3D=3D1});if(Ua.test(b))return c.filter(b,f,!d);else =
b=3Dc.filter(b,f)}return c.grep(a,function(e){return =
c.inArray(e,b)>=3D0=3D=3D=3Dd})};c.fn.extend({find:function(a){for(var =
b=3Dthis.pushStack("","find",a),d=3D0,f=3D0,e=3Dthis.length;f<e;f++){d=3D=
b.length;
c.find(a,this[f],b);if(f>0)for(var j=3Dd;j<b.length;j++)for(var =
i=3D0;i<d;i++)if(b[i]=3D=3D=3Db[j]){b.splice(j--,1);break}}return =
b},has:function(a){var b=3Dc(a);return this.filter(function(){for(var =
d=3D0,f=3Db.length;d<f;d++)if(c.contains(this,b[d]))return =
true})},not:function(a){return =
this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return =
this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.f=
ilter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var =
d=3D[],f=3Dthis[0],e,j=3D
{},i;if(f&&a.length){e=3D0;for(var =
o=3Da.length;e<o;e++){i=3Da[e];j[i]||(j[i]=3Dc.expr.match.POS.test(i)?c(i=
,b||this.context):i)}for(;f&&f.ownerDocument&&f!=3D=3Db;){for(i in =
j){e=3Dj[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem=
:f});delete j[i]}}f=3Df.parentNode}}return d}var =
k=3Dc.expr.match.POS.test(a)?c(a,b||this.context):null;return =
this.map(function(n,r){for(;r&&r.ownerDocument&&r!=3D=3Db;){if(k?k.index(=
r)>-1:c(r).is(a))return r;r=3Dr.parentNode}return =
null})},index:function(a){if(!a||typeof a=3D=3D=3D
"string")return =
c.inArray(this[0],a?c(a):this.parent().children());return =
c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=3Dtypeof =
a=3D=3D=3D"string"?c(a,b||this.context):c.makeArray(a);b=3Dc.merge(this.g=
et(),a);return =
this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){retu=
rn =
this.add(this.prevObject)}});c.each({parent:function(a){return(a=3Da.pare=
ntNode)&&a.nodeType!=3D=3D11?a:null},parents:function(a){return =
c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return =
c.dir(a,"parentNode",
d)},next:function(a){return =
c.nth(a,2,"nextSibling")},prev:function(a){return =
c.nth(a,2,"previousSibling")},nextAll:function(a){return =
c.dir(a,"nextSibling")},prevAll:function(a){return =
c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return =
c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return =
c.dir(a,"previousSibling",d)},siblings:function(a){return =
c.sibling(a.parentNode.firstChild,a)},children:function(a){return =
c.sibling(a.firstChild)},contents:function(a){return =
c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},f=
unction(a,b){c.fn[a]=3Dfunction(d,f){var =
e=3Dc.map(this,b,d);eb.test(a)||(f=3Dd);if(f&&typeof =
f=3D=3D=3D"string")e=3Dc.filter(f,e);e=3Dthis.length>1?c.unique(e):e;if((=
this.length>1||gb.test(f))&&fb.test(a))e=3De.reverse();return =
this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:funct=
ion(a,b,d){if(d)a=3D":not("+a+")";return =
c.find.matches(a,b)},dir:function(a,b,d){var =
f=3D[];for(a=3Da[b];a&&a.nodeType!=3D=3D9&&(d=3D=3D=3Dw||a.nodeType!=3D=3D=
1||!c(a).is(d));){a.nodeType=3D=3D=3D
1&&f.push(a);a=3Da[b]}return f},nth:function(a,b,d){b=3Db||1;for(var =
f=3D0;a;a=3Da[d])if(a.nodeType=3D=3D=3D1&&++f=3D=3D=3Db)break;return =
a},sibling:function(a,b){for(var =
d=3D[];a;a=3Da.nextSibling)a.nodeType=3D=3D=3D1&&a!=3D=3Db&&d.push(a);ret=
urn d}});var Ja=3D/ =
jQuery\d+=3D"(?:\d+|null)"/g,V=3D/^\s+/,Ka=3D/(<([\w:]+)[^>]*?)\/>/g,hb=3D=
/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=3D/<([\w:]+)/,=
ib=3D/<tbody/i,jb=3D/<|&#?\w+;/,ta=3D/<script|<object|<embed|<option|<sty=
le/i,ua=3D/checked\s*(?:[^=3D]|=3D\s*.checked.)/i,Ma=3Dfunction(a,b,d){re=
turn hb.test(d)?
a:b+"></"+d+">"},F=3D{option:[1,"<select =
multiple=3D'multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"=
],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>=
"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tb=
ody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],=
_default:[0,"",""]};F.optgroup=3DF.option;F.tbody=3DF.tfoot=3DF.colgroup=3D=
F.caption=3DF.thead;F.th=3DF.td;if(!c.support.htmlSerialize)F._default=3D=
[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))=
return this.each(function(b){var d=3D
c(this);d.text(a.call(this,b,d.text()))});if(typeof =
a!=3D=3D"object"&&a!=3D=3Dw)return =
this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a)=
);return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return =
this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var =
b=3Dc(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.in=
sertBefore(this[0]);b.map(function(){for(var =
d=3Dthis;d.firstChild&&d.firstChild.nodeType=3D=3D=3D1;)d=3Dd.firstChild;=
return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return =
this.each(function(b){c(this).wrapInner(a.call(this,b))});return =
this.each(function(){var =
b=3Dc(this),d=3Db.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:fu=
nction(a){return =
this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return =
this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWit=
h(this.childNodes)}).end()},append:function(){return =
this.domManip(arguments,true,function(a){this.nodeType=3D=3D=3D1&&this.ap=
pendChild(a)})},
prepend:function(){return =
this.domManip(arguments,true,function(a){this.nodeType=3D=3D=3D1&&this.in=
sertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].pa=
rentNode)return =
this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,=
this)});else if(arguments.length){var =
a=3Dc(arguments[0]);a.push.apply(a,this.toArray());return =
this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[=
0].parentNode)return =
this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,=

this.nextSibling)});else if(arguments.length){var =
a=3Dthis.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0])=
.toArray());return a}},remove:function(a,b){for(var =
d=3D0,f;(f=3Dthis[d])!=3Dnull;d++)if(!a||c.filter(a,[f]).length){if(!b&&f=
.nodeType=3D=3D=3D1){c.cleanData(f.getElementsByTagName("*"));c.cleanData=
([f])}f.parentNode&&f.parentNode.removeChild(f)}return =
this},empty:function(){for(var =
a=3D0,b;(b=3Dthis[a])!=3Dnull;a++)for(b.nodeType=3D=3D=3D1&&c.cleanData(b=
.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var =
b=3Dthis.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){va=
r =
d=3Dthis.outerHTML,f=3Dthis.ownerDocument;if(!d){d=3Df.createElement("div=
");d.appendChild(this.cloneNode(true));d=3Dd.innerHTML}return =
c.clean([d.replace(Ja,"").replace(/=3D([^=3D"'>\s]+\/)>/g,'=3D"$1">').rep=
lace(V,"")],f)[0]}else return =
this.cloneNode(true)});if(a=3D=3D=3Dtrue){ra(this,b);ra(this.find("*"),b.=
find("*"))}return b},html:function(a){if(a=3D=3D=3Dw)return =
this[0]&&this[0].nodeType=3D=3D=3D1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof =
a=3D=3D=3D"string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a)=
)&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=3Da.replace(Ka,Ma);try{f=
or(var =
b=3D0,d=3Dthis.length;b<d;b++)if(this[b].nodeType=3D=3D=3D1){c.cleanData(=
this[b].getElementsByTagName("*"));this[b].innerHTML=3Da}}catch(f){this.e=
mpty().append(a)}}else c.isFunction(a)?this.each(function(e){var =
j=3Dc(this),i=3Dj.html();j.empty().append(function(){return =
a.call(this,e,i)})}):this.empty().append(a);return =
this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var =
d=3Dc(this),f=3Dd.html();d.replaceWith(a.call(this,b,f))});if(typeof =
a!=3D=3D"string")a=3Dc(a).detach();return this.each(function(){var =
b=3Dthis.nextSibling,d=3Dthis.parentNode;c(this).remove();b?c(b).before(a=
):c(d).append(a)})}else return =
this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function=
(a){return this.remove(a,true)},domManip:function(a,b,d){function =
f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var =
e,j,i=3Da[0],o=3D[],k;if(!c.support.checkClone&&arguments.length=3D=3D=3D=
3&&typeof i=3D=3D=3D"string"&&ua.test(i))return =
this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))re=
turn this.each(function(u){var =
z=3Dc(this);a[0]=3Di.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(thi=
s[0]){e=3Di&&i.parentNode;e=3Dc.support.parentNode&&e&&e.nodeType=3D=3D=3D=
11&&e.childNodes.length=3D=3D=3Dthis.length?{fragment:e}:sa(a,this,o);k=3D=
e.fragment;if(j=3Dk.childNodes.length=3D=3D=3D
1?(k=3Dk.firstChild):k.firstChild){b=3Db&&c.nodeName(j,"tr");for(var =
n=3D0,r=3Dthis.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cachea=
ble||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return =
this}});c.fragments=3D{};c.each({appendTo:"append",prependTo:"prepend",in=
sertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},functio=
n(a,b){c.fn[a]=3Dfunction(d){var f=3D[];d=3Dc(d);var =
e=3Dthis.length=3D=3D=3D1&&this[0].parentNode;if(e&&e.nodeType=3D=3D=3D11=
&&e.childNodes.length=3D=3D=3D1&&d.length=3D=3D=3D1){d[b](this[0]);
return this}else{e=3D0;for(var j=3Dd.length;e<j;e++){var =
i=3D(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=3Df.conc=
at(i)}return =
this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=3D=
b||s;if(typeof =
b.createElement=3D=3D=3D"undefined")b=3Db.ownerDocument||b[0]&&b[0].owner=
Document||s;for(var e=3D[],j=3D0,i;(i=3Da[j])!=3Dnull;j++){if(typeof =
i=3D=3D=3D"number")i+=3D"";if(i){if(typeof =
i=3D=3D=3D"string"&&!jb.test(i))i=3Db.createTextNode(i);else if(typeof =
i=3D=3D=3D"string"){i=3Di.replace(Ka,Ma);var o=3D(La.exec(i)||["",
""])[1].toLowerCase(),k=3DF[o]||F._default,n=3Dk[0],r=3Db.createElement("=
div");for(r.innerHTML=3Dk[1]+i+k[2];n--;)r=3Dr.lastChild;if(!c.support.tb=
ody){n=3Dib.test(i);o=3Do=3D=3D=3D"table"&&!n?r.firstChild&&r.firstChild.=
childNodes:k[1]=3D=3D=3D"<table>"&&!n?r.childNodes:[];for(k=3Do.length-1;=
k>=3D0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parent=
Node.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertB=
efore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=3Dr.childNodes}if(i.=
nodeType)e.push(i);else e=3D
c.merge(e,i)}}if(d)for(j=3D0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!=
e[j].type||e[j].type.toLowerCase()=3D=3D=3D"text/javascript"))f.push(e[j]=
.parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType=3D=
=3D=3D1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTa=
gName("script"))));d.appendChild(e[j])}return =
e},cleanData:function(a){for(var =
b,d,f=3Dc.cache,e=3Dc.event.special,j=3Dc.support.deleteExpando,i=3D0,o;(=
o=3Da[i])!=3Dnull;i++)if(d=3Do[c.expando]){b=3Df[d];if(b.events)for(var =
k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else =
o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var =
kb=3D/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=3D/alpha\([^)]=
*\)/,Oa=3D/opacity=3D([^)]*)/,ha=3D/float/i,ia=3D/-([a-z])/ig,lb=3D/([A-Z=
])/g,mb=3D/^-?\d+(?:px)?$/i,nb=3D/^-?\d/,ob=3D{position:"absolute",visibi=
lity:"hidden",display:"block"},pb=3D["Left","Right"],qb=3D["Top","Bottom"=
],rb=3Ds.defaultView&&s.defaultView.getComputedStyle,Pa=3Dc.support.cssFl=
oat?"cssFloat":"styleFloat",ja=3D
function(a,b){return b.toUpperCase()};c.fn.css=3Dfunction(a,b){return =
X(this,a,b,true,function(d,f,e){if(e=3D=3D=3Dw)return =
c.curCSS(d,f);if(typeof =
e=3D=3D=3D"number"&&!kb.test(f))e+=3D"px";c.style(d,f,e)})};c.extend({sty=
le:function(a,b,d){if(!a||a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8)retu=
rn =
w;if((b=3D=3D=3D"width"||b=3D=3D=3D"height")&&parseFloat(d)<0)d=3Dw;var =
f=3Da.style||a,e=3Dd!=3D=3Dw;if(!c.support.opacity&&b=3D=3D=3D"opacity"){=
if(e){f.zoom=3D1;b=3DparseInt(d,10)+""=3D=3D=3D"NaN"?"":"alpha(opacity=3D=
"+d*100+")";a=3Df.filter||c.curCSS(a,"filter")||"";f.filter=3D
Na.test(a)?a.replace(Na,b):b}return =
f.filter&&f.filter.indexOf("opacity=3D")>=3D0?parseFloat(Oa.exec(f.filter=
)[1])/100+"":""}if(ha.test(b))b=3DPa;b=3Db.replace(ia,ja);if(e)f[b]=3Dd;r=
eturn =
f[b]},css:function(a,b,d,f){if(b=3D=3D=3D"width"||b=3D=3D=3D"height"){var=
 e,j=3Db=3D=3D=3D"width"?pb:qb;function =
i(){e=3Db=3D=3D=3D"width"?a.offsetWidth:a.offsetHeight;f!=3D=3D"border"&&=
c.each(j,function(){f||(e-=3DparseFloat(c.curCSS(a,"padding"+this,true))|=
|0);if(f=3D=3D=3D"margin")e+=3DparseFloat(c.curCSS(a,"margin"+this,true))=
||0;else e-=3DparseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!=3D=3D0?i():c.swap(a,ob,i=
);return Math.max(0,Math.round(e))}return =
c.curCSS(a,b,d)},curCSS:function(a,b,d){var =
f,e=3Da.style;if(!c.support.opacity&&b=3D=3D=3D"opacity"&&a.currentStyle)=
{f=3DOa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";r=
eturn =
f=3D=3D=3D""?"1":f}if(ha.test(b))b=3DPa;if(!d&&e&&e[b])f=3De[b];else =
if(rb){if(ha.test(b))b=3D"float";b=3Db.replace(lb,"-$1").toLowerCase();e=3D=
a.ownerDocument.defaultView;if(!e)return =
null;if(a=3De.getComputedStyle(a,null))f=3D
a.getPropertyValue(b);if(b=3D=3D=3D"opacity"&&f=3D=3D=3D"")f=3D"1"}else =
if(a.currentStyle){d=3Db.replace(ia,ja);f=3Da.currentStyle[b]||a.currentS=
tyle[d];if(!mb.test(f)&&nb.test(f)){b=3De.left;var =
j=3Da.runtimeStyle.left;a.runtimeStyle.left=3Da.currentStyle.left;e.left=3D=
d=3D=3D=3D"fontSize"?"1em":f||0;f=3De.pixelLeft+"px";e.left=3Db;a.runtime=
Style.left=3Dj}}return f},swap:function(a,b,d){var f=3D{};for(var e in =
b){f[e]=3Da.style[e];a.style[e]=3Db[e]}d.call(a);for(e in =
b)a.style[e]=3Df[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=3D=
function(a){var b=3D
a.offsetWidth,d=3Da.offsetHeight,f=3Da.nodeName.toLowerCase()=3D=3D=3D"tr=
";return =
b=3D=3D=3D0&&d=3D=3D=3D0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display"=
)=3D=3D=3D"none"};c.expr.filters.visible=3Dfunction(a){return!c.expr.filt=
ers.hidden(a)}}var =
sb=3DJ(),tb=3D/<script(.|\s)*?\/script>/gi,ub=3D/select|textarea/i,vb=3D/=
color|date|datetime|email|hidden|month|number|password|range|search|tel|t=
ext|time|url|week/i,N=3D/=3D\?(&|$)/,ka=3D/\?/,wb=3D/(\?|&)_=3D.*?(&|$)/,=
xb=3D/^(\w+:)?\/\/([^\/?#]+)/,yb=3D/%20/g,zb=3Dc.fn.load;c.fn.extend({loa=
d:function(a,b,d){if(typeof a!=3D=3D
"string")return zb.call(this,a);else if(!this.length)return this;var =
f=3Da.indexOf(" ");if(f>=3D0){var =
e=3Da.slice(f,a.length);a=3Da.slice(0,f)}f=3D"GET";if(b)if(c.isFunction(b=
)){d=3Db;b=3Dnull}else if(typeof =
b=3D=3D=3D"object"){b=3Dc.param(b,c.ajaxSettings.traditional);f=3D"POST"}=
var =
j=3Dthis;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,=
o){if(o=3D=3D=3D"success"||o=3D=3D=3D"notmodified")j.html(e?c("<div =
/>").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.e=
ach(d,[i.responseText,o,i])}});return this},
serialize:function(){return =
c.param(this.serializeArray())},serializeArray:function(){return =
this.map(function(){return =
this.elements?c.makeArray(this.elements):this}).filter(function(){return =
this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test=
(this.type))}).map(function(a,b){a=3Dc(this).val();return =
a=3D=3Dnull?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,valu=
e:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop =
ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=3Dfunction(d){return =
this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=3D=
f||d;d=3Db;b=3Dnull}return =
c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:functio=
n(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return =
c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=3Df||d;=
d=3Db;b=3D{}}return =
c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:functi=
on(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",pr=
ocessData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=3D=3D=
"file:"||!A.ActiveXObject)?function(){return new =
A.XMLHttpRequest}:function(){try{return new =
A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"applicatio=
n/xml, text/xml",html:"text/html",script:"text/javascript, =
application/javascript",json:"application/json, =
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:=
{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function =
d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);=
e.global&&!--c.active&&c.event.trigger("ajaxStop")}function =
f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var =
e=3Dc.extend(true,{},c.ajaxSettings,a),j,i,o,k=3Da&&a.context||e,n=3De.ty=
pe.toUpperCase();if(e.data&&e.processData&&typeof =
e.data!=3D=3D"string")e.data=3Dc.param(e.data,e.traditional);if(e.dataTyp=
e=3D=3D=3D"jsonp"){if(n=3D=3D=3D"GET")N.test(e.url)||(e.url+=3D(ka.test(e=
.url)?
"&":"?")+(e.jsonp||"callback")+"=3D?");else =
if(!e.data||!N.test(e.data))e.data=3D(e.data?e.data+"&":"")+(e.jsonp||"ca=
llback")+"=3D?";e.dataType=3D"json"}if(e.dataType=3D=3D=3D"json"&&(e.data=
&&N.test(e.data)||N.test(e.url))){j=3De.jsonpCallback||"jsonp"+sb++;if(e.=
data)e.data=3D(e.data+"").replace(N,"=3D"+j+"$1");e.url=3De.url.replace(N=
,"=3D"+j+"$1");e.dataType=3D"script";A[j]=3DA[j]||function(q){o=3Dq;b();d=
();A[j]=3Dw;try{delete =
A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType=3D=3D=3D"script"&&e.cac=
he=3D=3D=3Dnull)e.cache=3Dfalse;if(e.cache=3D=3D=3D
false&&n=3D=3D=3D"GET"){var =
r=3DJ(),u=3De.url.replace(wb,"$1_=3D"+r+"$2");e.url=3Du+(u=3D=3D=3De.url?=
(ka.test(e.url)?"&":"?")+"_=3D"+r:"")}if(e.data&&n=3D=3D=3D"GET")e.url+=3D=
(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("a=
jaxStart");r=3D(r=3Dxb.exec(e.url))&&(r[1]&&r[1]!=3D=3Dlocation.protocol|=
|r[2]!=3D=3Dlocation.host);if(e.dataType=3D=3D=3D"script"&&n=3D=3D=3D"GET=
"&&r){var =
z=3Ds.getElementsByTagName("head")[0]||s.documentElement,C=3Ds.createElem=
ent("script");C.src=3De.url;if(e.scriptCharset)C.charset=3De.scriptCharse=
t;if(!j){var B=3D
false;C.onload=3DC.onreadystatechange=3Dfunction(){if(!B&&(!this.readySta=
te||this.readyState=3D=3D=3D"loaded"||this.readyState=3D=3D=3D"complete")=
){B=3Dtrue;b();d();C.onload=3DC.onreadystatechange=3Dnull;z&&C.parentNode=
&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var =
E=3Dfalse,x=3De.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,=
e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.set=
RequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModifi=
ed[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",=
c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest")=
;x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[=
e.dataType]+", =
*/*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,=
x,e)=3D=3D=3Dfalse){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.=
abort();return false}e.global&&f("ajaxSend",[x,e]);var =
g=3Dx.onreadystatechange=3Dfunction(q){if(!x||x.readyState=3D=3D=3D0||q=3D=
=3D=3D"abort"){E||
d();E=3Dtrue;if(x)x.onreadystatechange=3Dc.noop}else =
if(!E&&x&&(x.readyState=3D=3D=3D4||q=3D=3D=3D"timeout")){E=3Dtrue;x.onrea=
dystatechange=3Dc.noop;i=3Dq=3D=3D=3D"timeout"?"timeout":!c.httpSuccess(x=
)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success=
";var =
p;if(i=3D=3D=3D"success")try{o=3Dc.httpData(x,e.dataType,e)}catch(v){i=3D=
"parsererror";p=3Dv}if(i=3D=3D=3D"success"||i=3D=3D=3D"notmodified")j||b(=
);else =
c.handleError(e,x,i,p);d();q=3D=3D=3D"timeout"&&x.abort();if(e.async)x=3D=
null}};try{var h=3Dx.abort;x.abort=3Dfunction(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&=
g("timeout")},e.timeout);try{x.send(n=3D=3D=3D"POST"||n=3D=3D=3D"PUT"||n=3D=
=3D=3D"DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.asyn=
c||g();return =
x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,=
d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,=
a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.pro=
tocol=3D=3D=3D"file:"||a.status>=3D200&&a.status<300||a.status=3D=3D=3D30=
4||a.status=3D=3D=3D
1223||a.status=3D=3D=3D0}catch(b){}return =
false},httpNotModified:function(a,b){var =
d=3Da.getResponseHeader("Last-Modified"),f=3Da.getResponseHeader("Etag");=
if(d)c.lastModified[b]=3Dd;if(f)c.etag[b]=3Df;return =
a.status=3D=3D=3D304||a.status=3D=3D=3D0},httpData:function(a,b,d){var =
f=3Da.getResponseHeader("content-type")||"",e=3Db=3D=3D=3D"xml"||!b&&f.in=
dexOf("xml")>=3D0;a=3De?a.responseXML:a.responseText;e&&a.documentElement=
.nodeName=3D=3D=3D"parsererror"&&c.error("parsererror");if(d&&d.dataFilte=
r)a=3Dd.dataFilter(a,b);if(typeof a=3D=3D=3D"string")if(b=3D=3D=3D
"json"||!b&&f.indexOf("json")>=3D0)a=3Dc.parseJSON(a);else =
if(b=3D=3D=3D"script"||!b&&f.indexOf("javascript")>=3D0)c.globalEval(a);r=
eturn a},param:function(a,b){function =
d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d=
(i+"["+(typeof =
n=3D=3D=3D"object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=3Dnull&&typeof=
 =
o=3D=3D=3D"object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}funct=
ion =
f(i,o){o=3Dc.isFunction(o)?o():o;e[e.length]=3DencodeURIComponent(i)+"=3D=
"+encodeURIComponent(o)}var =
e=3D[];if(b=3D=3D=3Dw)b=3Dc.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});e=
lse for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var =
la=3D{},Ab=3D/toggle|show|hide/,Bb=3D/^([+-]=3D)?([\d+-.]+)(.*)$/,W,va=3D=
[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["wid=
th","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]]=
;c.fn.extend({show:function(a,b){if(a||a=3D=3D=3D0)return =
this.animate(K("show",3),a,b);else{a=3D0;for(b=3Dthis.length;a<b;a++){var=
 d=3Dc.data(this[a],"olddisplay");
this[a].style.display=3Dd||"";if(c.css(this[a],"display")=3D=3D=3D"none")=
{d=3Dthis[a].nodeName;var f;if(la[d])f=3Dla[d];else{var e=3Dc("<"+d+" =
/>").appendTo("body");f=3De.css("display");if(f=3D=3D=3D"none")f=3D"block=
";e.remove();la[d]=3Df}c.data(this[a],"olddisplay",f)}}a=3D0;for(b=3Dthis=
.length;a<b;a++)this[a].style.display=3Dc.data(this[a],"olddisplay")||"";=
return this}},hide:function(a,b){if(a||a=3D=3D=3D0)return =
this.animate(K("hide",3),a,b);else{a=3D0;for(b=3Dthis.length;a<b;a++){var=
 d=3Dc.data(this[a],"olddisplay");!d&&d!=3D=3D"none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=3D0;for(b=3Dthis.length;a<b;a++)=
this[a].style.display=3D"none";return =
this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=3Dtypeof =
a=3D=3D=3D"boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.appl=
y(this,arguments);else a=3D=3Dnull||d?this.each(function(){var =
f=3Dd?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K=
("toggle",3),a,b);return this},fadeTo:function(a,b,d){return =
this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},=
a,d)},
animate:function(a,b,d,f){var =
e=3Dc.speed(b,d,f);if(c.isEmptyObject(a))return =
this.each(e.complete);return =
this[e.queue=3D=3D=3Dfalse?"each":"queue"](function(){var =
j=3Dc.extend({},e),i,o=3Dthis.nodeType=3D=3D=3D1&&c(this).is(":hidden"),k=
=3Dthis;for(i in a){var =
n=3Di.replace(ia,ja);if(i!=3D=3Dn){a[n]=3Da[i];delete =
a[i];i=3Dn}if(a[i]=3D=3D=3D"hide"&&o||a[i]=3D=3D=3D"show"&&!o)return =
j.complete.call(this);if((i=3D=3D=3D"height"||i=3D=3D=3D"width")&&this.st=
yle){j.display=3Dc.css(this,"display");j.overflow=3Dthis.style.overflow}i=
f(c.isArray(a[i])){(j.specialEasing=3D
j.specialEasing||{})[i]=3Da[i][1];a[i]=3Da[i][0]}}if(j.overflow!=3Dnull)t=
his.style.overflow=3D"hidden";j.curAnim=3Dc.extend({},a);c.each(a,functio=
n(r,u){var z=3Dnew =
c.fx(k,j,r);if(Ab.test(u))z[u=3D=3D=3D"toggle"?o?"show":"hide":u](a);else=
{var C=3DBb.exec(u),B=3Dz.cur(true)||0;if(C){u=3DparseFloat(C[2]);var =
E=3DC[3]||"px";if(E!=3D=3D"px"){k.style[r]=3D(u||1)+E;B=3D(u||1)/z.cur(tr=
ue)*B;k.style[r]=3DB+E}if(C[1])u=3D(C[1]=3D=3D=3D"-=3D"?-1:1)*u+B;z.custo=
m(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var =
d=3Dc.timers;a&&this.queue([]);
this.each(function(){for(var =
f=3Dd.length-1;f>=3D0;f--)if(d[f].elem=3D=3D=3Dthis){b&&d[f](true);d.spli=
ce(f,1)}});b||this.dequeue();return =
this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("=
toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b=
){c.fn[a]=3Dfunction(d,f){return =
this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=3Da&&typeof =
a=3D=3D=3D"object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,ea=
sing:d&&b||b&&!c.isFunction(b)&&b};f.duration=3Dc.fx.off?0:typeof =
f.duration=3D=3D=3D
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=3D=
f.complete;f.complete=3Dfunction(){f.queue!=3D=3Dfalse&&c(this).dequeue()=
;c.isFunction(f.old)&&f.old.call(this)};return =
f},easing:{linear:function(a,b,d,f){return =
d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},t=
imers:[],fx:function(a,b,d){this.options=3Db;this.elem=3Da;this.prop=3Dd;=
if(!b.orig)b.orig=3D{}}});c.fx.prototype=3D{update:function(){this.option=
s.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.p=
rop]||
c.fx.step._default)(this);if((this.prop=3D=3D=3D"height"||this.prop=3D=3D=
=3D"width")&&this.elem.style)this.elem.style.display=3D"block"},cur:funct=
ion(a){if(this.elem[this.prop]!=3Dnull&&(!this.elem.style||this.elem.styl=
e[this.prop]=3D=3Dnull))return =
this.elem[this.prop];return(a=3DparseFloat(c.css(this.elem,this.prop,a)))=
&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:functio=
n(a,b,d){function f(j){return =
e.step(j)}this.startTime=3DJ();this.start=3Da;this.end=3Db;this.unit=3Dd|=
|this.unit||"px";this.now=3Dthis.start;
this.pos=3Dthis.state=3D0;var =
e=3Dthis;f.elem=3Dthis.elem;if(f()&&c.timers.push(f)&&!W)W=3DsetInterval(=
c.fx.tick,13)},show:function(){this.options.orig[this.prop]=3Dc.style(thi=
s.elem,this.prop);this.options.show=3Dtrue;this.custom(this.prop=3D=3D=3D=
"width"||this.prop=3D=3D=3D"height"?1:0,this.cur());c(this.elem).show()},=
hide:function(){this.options.orig[this.prop]=3Dc.style(this.elem,this.pro=
p);this.options.hide=3Dtrue;this.custom(this.cur(),0)},step:function(a){v=
ar =
b=3DJ(),d=3Dtrue;if(a||b>=3Dthis.options.duration+this.startTime){this.no=
w=3D
this.end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[thi=
s.prop]=3Dtrue;for(var f in =
this.options.curAnim)if(this.options.curAnim[f]!=3D=3Dtrue)d=3Dfalse;if(d=
){if(this.options.display!=3Dnull){this.elem.style.overflow=3Dthis.option=
s.overflow;a=3Dc.data(this.elem,"olddisplay");this.elem.style.display=3Da=
?a:this.options.display;if(c.css(this.elem,"display")=3D=3D=3D"none")this=
.elem.style.display=3D"block"}this.options.hide&&c(this.elem).hide();if(t=
his.options.hide||this.options.show)for(var e in =
this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return =
false}else{e=3Db-this.startTime;this.state=3De/this.options.duration;a=3D=
this.options.easing||(c.easing.swing?"swing":"linear");this.pos=3Dc.easin=
g[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](t=
his.state,e,0,1,this.options.duration);this.now=3Dthis.start+(this.end-th=
is.start)*this.pos;this.update()}return =
true}};c.extend(c.fx,{tick:function(){for(var =
a=3Dc.timers,b=3D0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=3Dnull},speeds:{slow:600,=
fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity"=
,a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=3Dnu=
ll)a.elem.style[a.prop]=3D(a.prop=3D=3D=3D"width"||a.prop=3D=3D=3D"height=
"?Math.max(0,a.now):a.now)+a.unit;else =
a.elem[a.prop]=3Da.now}}});if(c.expr&&c.expr.filters)c.expr.filters.anima=
ted=3Dfunction(a){return c.grep(c.timers,function(b){return =
a=3D=3D=3Db.elem}).length};c.fn.offset=3D"getBoundingClientRect"in =
s.documentElement?
function(a){var b=3Dthis[0];if(a)return =
this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocum=
ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return =
c.offset.bodyOffset(b);var =
d=3Db.getBoundingClientRect(),f=3Db.ownerDocument;b=3Df.body;f=3Df.docume=
ntElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrol=
lTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXO=
ffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.c=
lientLeft||0)}}:function(a){var b=3D
this[0];if(a)return =
this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocum=
ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return =
c.offset.bodyOffset(b);c.offset.initialize();var =
d=3Db.offsetParent,f=3Db,e=3Db.ownerDocument,j,i=3De.documentElement,o=3D=
e.body;f=3D(e=3De.defaultView)?e.getComputedStyle(b,null):b.currentStyle;=
for(var =
k=3Db.offsetTop,n=3Db.offsetLeft;(b=3Db.parentNode)&&b!=3D=3Do&&b!=3D=3Di=
;){if(c.offset.supportsFixedPosition&&f.position=3D=3D=3D"fixed")break;j=3D=
e?e.getComputedStyle(b,null):b.currentStyle;
k-=3Db.scrollTop;n-=3Db.scrollLeft;if(b=3D=3D=3Dd){k+=3Db.offsetTop;n+=3D=
b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTab=
leAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=3DparseFloat(j.borderT=
opWidth)||0;n+=3DparseFloat(j.borderLeftWidth)||0}f=3Dd;d=3Db.offsetParen=
t}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=3D=3D"vis=
ible"){k+=3DparseFloat(j.borderTopWidth)||0;n+=3DparseFloat(j.borderLeftW=
idth)||0}f=3Dj}if(f.position=3D=3D=3D"relative"||f.position=3D=3D=3D"stat=
ic"){k+=3Do.offsetTop;n+=3Do.offsetLeft}if(c.offset.supportsFixedPosition=
&&
f.position=3D=3D=3D"fixed"){k+=3DMath.max(i.scrollTop,o.scrollTop);n+=3DM=
ath.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset=3D{init=
ialize:function(){var =
a=3Ds.body,b=3Ds.createElement("div"),d,f,e,j=3DparseFloat(c.curCSS(a,"ma=
rginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,mar=
gin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML=
=3D"<div style=3D'position:absolute;top:0;left:0;margin:0;border:5px =
solid #000;padding:0;width:1px;height:1px;'><div></div></div><table =
style=3D'position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;' cellpadding=3D'0' =
cellspacing=3D'0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=3Db.firstChild;f=3Dd.firstChild;e=3Dd.ne=
xtSibling.firstChild.firstChild;this.doesNotAddBorder=3Df.offsetTop!=3D=3D=
5;this.doesAddBorderForTableAndCells=3De.offsetTop=3D=3D=3D5;f.style.posi=
tion=3D"fixed";f.style.top=3D"20px";this.supportsFixedPosition=3Df.offset=
Top=3D=3D=3D20||f.offsetTop=3D=3D=3D15;f.style.position=3Df.style.top=3D"=
";d.style.overflow=3D"hidden";d.style.position=3D"relative";this.subtract=
sBorderForOverflowNotVisible=3Df.offsetTop=3D=3D=3D-5;this.doesNotInclude=
MarginInBodyOffset=3Da.offsetTop!=3D=3Dj;a.removeChild(b);
c.offset.initialize=3Dc.noop},bodyOffset:function(a){var =
b=3Da.offsetTop,d=3Da.offsetLeft;c.offset.initialize();if(c.offset.doesNo=
tIncludeMarginInBodyOffset){b+=3DparseFloat(c.curCSS(a,"marginTop",true))=
||0;d+=3DparseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d=
}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.s=
tyle.position=3D"relative";var =
f=3Dc(a),e=3Df.offset(),j=3DparseInt(c.curCSS(a,"top",true),10)||0,i=3Dpa=
rseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=3Db.call(a,
d,e);d=3D{top:b.top-e.top+j,left:b.left-e.left+i};"using"in =
b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[=
0])return null;var =
a=3Dthis[0],b=3Dthis.offsetParent(),d=3Dthis.offset(),f=3D/^body|html$/i.=
test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=3DparseFloat(c.curCS=
S(a,"marginTop",true))||0;d.left-=3DparseFloat(c.curCSS(a,"marginLeft",tr=
ue))||0;f.top+=3DparseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.le=
ft+=3DparseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.t=
op-
f.top,left:d.left-f.left}},offsetParent:function(){return =
this.map(function(){for(var =
a=3Dthis.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(=
a,"position")=3D=3D=3D"static";)a=3Da.offsetParent;return =
a})}});c.each(["Left","Top"],function(a,b){var =
d=3D"scroll"+b;c.fn[d]=3Dfunction(f){var e=3Dthis[0],j;if(!e)return =
null;if(f!=3D=3Dw)return =
this.each(function(){if(j=3Dwa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?=
f:c(j).scrollTop());else this[d]=3Df});else =
return(j=3Dwa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.docum=
ent.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var =
d=3Db.toLowerCase();c.fn["inner"+b]=3Dfunction(){return =
this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=3Dfunction=
(f){return =
this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=3Dfuncti=
on(f){var e=3Dthis[0];if(!e)return =
f=3D=3Dnull?null:this;if(c.isFunction(f))return =
this.each(function(j){var =
i=3Dc(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode=3D=3D=3D"CSS1Compat"&&e.document.docu=
mentElement["client"+b]||e.document.body["client"+b]:e.nodeType=3D=3D=3D9=
?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElem=
ent["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f=3D=3D=
=3Dw?c.css(e,d):this.css(d,typeof =
f=3D=3D=3D"string"?f:f+"px")}});A.jQuery=3DA.$=3Dc})(window);

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.google-analytics.com/urchin.js

//-- Google Analytics Urchin Module=0A=
//-- Copyright 2007 Google, All Rights Reserved.=0A=
=0A=
//-- Urchin On Demand Settings ONLY=0A=
var _uacct=3D"";			// set up the Urchin Account=0A=
var _userv=3D1;			// service mode (0=3Dlocal,1=3Dremote,2=3Dboth)=0A=
=0A=
//-- UTM User Settings=0A=
var _ufsc=3D1;			// set client info flag (1=3Don|0=3Doff)=0A=
var _udn=3D"auto";		// (auto|none|domain) set the domain name for cookies=0A=
var _uhash=3D"on";		// (on|off) unique domain hash for cookies=0A=
var _utimeout=3D"1800";   	// set the inactive session timeout in seconds=0A=
var _ugifpath=3D"/__utm.gif";	// set the web path to the __utm.gif file=0A=
var _utsp=3D"|";			// transaction field separator=0A=
var _uflash=3D1;			// set flash version detect option (1=3Don|0=3Doff)=0A=
var _utitle=3D1;			// set the document title detect option =
(1=3Don|0=3Doff)=0A=
var _ulink=3D0;			// enable linker functionality (1=3Don|0=3Doff)=0A=
var _uanchor=3D0;			// enable use of anchors for campaign =
(1=3Don|0=3Doff)=0A=
var _utcp=3D"/";			// the cookie path for tracking=0A=
var _usample=3D100;		// The sampling % of visitors to track (1-100).=0A=
=0A=
//-- UTM Campaign Tracking Settings=0A=
var _uctm=3D1;			// set campaign tracking module (1=3Don|0=3Doff)=0A=
var _ucto=3D"15768000";		// set timeout in seconds (6 month default)=0A=
var _uccn=3D"utm_campaign";	// name=0A=
var _ucmd=3D"utm_medium";		// medium (cpc|cpm|link|email|organic)=0A=
var _ucsr=3D"utm_source";		// source=0A=
var _uctr=3D"utm_term";		// term/keyword=0A=
var _ucct=3D"utm_content";	// content=0A=
var _ucid=3D"utm_id";		// id number=0A=
var _ucno=3D"utm_nooverride";	// don't override=0A=
=0A=
//-- Auto/Organic Sources and Keywords=0A=
var _uOsr=3Dnew Array();=0A=
var _uOkw=3Dnew Array();=0A=
_uOsr[0]=3D"google";	_uOkw[0]=3D"q";=0A=
_uOsr[1]=3D"yahoo";	_uOkw[1]=3D"p";=0A=
_uOsr[2]=3D"msn";		_uOkw[2]=3D"q";=0A=
_uOsr[3]=3D"aol";		_uOkw[3]=3D"query";=0A=
_uOsr[4]=3D"aol";		_uOkw[4]=3D"encquery";=0A=
_uOsr[5]=3D"lycos";	_uOkw[5]=3D"query";=0A=
_uOsr[6]=3D"ask";		_uOkw[6]=3D"q";=0A=
_uOsr[7]=3D"altavista";	_uOkw[7]=3D"q";=0A=
_uOsr[8]=3D"netscape";	_uOkw[8]=3D"query";=0A=
_uOsr[9]=3D"cnn";	_uOkw[9]=3D"query";=0A=
_uOsr[10]=3D"looksmart";	_uOkw[10]=3D"qt";=0A=
_uOsr[11]=3D"about";	_uOkw[11]=3D"terms";=0A=
_uOsr[12]=3D"mamma";	_uOkw[12]=3D"query";=0A=
_uOsr[13]=3D"alltheweb";	_uOkw[13]=3D"q";=0A=
_uOsr[14]=3D"gigablast";	_uOkw[14]=3D"q";=0A=
_uOsr[15]=3D"voila";	_uOkw[15]=3D"rdata";=0A=
_uOsr[16]=3D"virgilio";	_uOkw[16]=3D"qs";=0A=
_uOsr[17]=3D"live";	_uOkw[17]=3D"q";=0A=
_uOsr[18]=3D"baidu";	_uOkw[18]=3D"wd";=0A=
_uOsr[19]=3D"alice";	_uOkw[19]=3D"qs";=0A=
_uOsr[20]=3D"yandex";	_uOkw[20]=3D"text";=0A=
_uOsr[21]=3D"najdi";	_uOkw[21]=3D"q";=0A=
_uOsr[22]=3D"aol";	_uOkw[22]=3D"q";=0A=
_uOsr[23]=3D"club-internet"; _uOkw[23]=3D"query";=0A=
_uOsr[24]=3D"mama";	_uOkw[24]=3D"query";=0A=
_uOsr[25]=3D"seznam";	_uOkw[25]=3D"q";=0A=
_uOsr[26]=3D"search";	_uOkw[26]=3D"q";=0A=
_uOsr[27]=3D"wp";	_uOkw[27]=3D"szukaj";=0A=
_uOsr[28]=3D"onet";	_uOkw[28]=3D"qt";=0A=
_uOsr[29]=3D"netsprint";	_uOkw[29]=3D"q";=0A=
_uOsr[30]=3D"google.interia";	_uOkw[30]=3D"q";=0A=
_uOsr[31]=3D"szukacz";	_uOkw[31]=3D"q";=0A=
_uOsr[32]=3D"yam";	_uOkw[32]=3D"k";=0A=
_uOsr[33]=3D"pchome";	_uOkw[33]=3D"q";=0A=
_uOsr[34]=3D"kvasir";	_uOkw[34]=3D"searchExpr";=0A=
_uOsr[35]=3D"sesam";	_uOkw[35]=3D"q";=0A=
_uOsr[36]=3D"ozu"; _uOkw[36]=3D"q";=0A=
_uOsr[37]=3D"terra"; _uOkw[37]=3D"query";=0A=
_uOsr[38]=3D"nostrum"; _uOkw[38]=3D"query";=0A=
_uOsr[39]=3D"mynet"; _uOkw[39]=3D"q";=0A=
_uOsr[40]=3D"ekolay"; _uOkw[40]=3D"q";=0A=
_uOsr[41]=3D"search.ilse"; _uOkw[41]=3D"search_for";=0A=
_uOsr[42]=3D"bing"; _uOkw[42]=3D"q";=0A=
=0A=
//-- Auto/Organic Keywords to Ignore=0A=
var _uOno=3Dnew Array();=0A=
//_uOno[0]=3D"urchin";=0A=
//_uOno[1]=3D"urchin.com";=0A=
//_uOno[2]=3D"www.urchin.com";=0A=
=0A=
//-- Referral domains to Ignore=0A=
var _uRno=3Dnew Array();=0A=
//_uRno[0]=3D".urchin.com";=0A=
=0A=
//-- **** Don't modify below this point ***=0A=
var =
_uff,_udh,_udt,_ubl=3D0,_udo=3D"",_uu,_ufns=3D0,_uns=3D0,_ur=3D"-",_ufno=3D=
0,_ust=3D0,_ubd=3Ddocument,_udl=3D_ubd.location,_udlh=3D"",_uwv=3D"1.4";=0A=
var _ugifpath2=3D"http://www.google-analytics.com/__utm.gif";=0A=
if (_udl.hash) _udlh=3D_udl.href.substring(_udl.href.indexOf('#'));=0A=
if (_udl.protocol=3D=3D"https:") =
_ugifpath2=3D"https://ssl.google-analytics.com/__utm.gif";=0A=
if (!_utcp || _utcp=3D=3D"") _utcp=3D"/";=0A=
function urchinTracker(page) {=0A=
 if (_udl.protocol=3D=3D"file:") return;=0A=
 if (_uff && (!page || page=3D=3D"")) return;=0A=
 var a,b,c,xx,v,z,k,x=3D"",s=3D"",f=3D0,nv=3D0;=0A=
 var nx=3D" expires=3D"+_uNx()+";";=0A=
 var dc=3D_ubd.cookie;=0A=
 _udh=3D_uDomain();=0A=
 if (!_uVG()) return;=0A=
 _uu=3DMath.round(Math.random()*2147483647);=0A=
 _udt=3Dnew Date();=0A=
 _ust=3DMath.round(_udt.getTime()/1000);=0A=
 a=3Ddc.indexOf("__utma=3D"+_udh+".");=0A=
 b=3Ddc.indexOf("__utmb=3D"+_udh);=0A=
 c=3Ddc.indexOf("__utmc=3D"+_udh);=0A=
 if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 if (_utimeout && _utimeout!=3D"") {=0A=
  x=3Dnew Date(_udt.getTime()+(_utimeout*1000));=0A=
  x=3D" expires=3D"+x.toGMTString()+";";=0A=
 }=0A=
 if (_ulink) {=0A=
  if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
  s+=3D_udl.search;=0A=
  if(s && s!=3D"" && s.indexOf("__utma=3D")>=3D0) {=0A=
   if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A=
   if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A=
   if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A=
   v=3D_uGC(s,"__utmv=3D","&");=0A=
   z=3D_uGC(s,"__utmz=3D","&");=0A=
   k=3D_uGC(s,"__utmk=3D","&");=0A=
   xx=3D_uGC(s,"__utmx=3D","&");=0A=
   if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) =
{_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A=
   if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A=
   else if(a!=3D"-") f=3D2;=0A=
  }=0A=
 }=0A=
 if(f=3D=3D1) {=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A=
 } else if (f=3D=3D2) {=0A=
  a=3D_uFixA(s,"&",_ust);=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A=
   b =3D _uGC(dc,"__utmb=3D"+_udh,";");=0A=
   b =3D ("-" =3D=3D b) ? _udh : b;  =0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
 } else {=0A=
  if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A=
  else {=0A=
   a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A=
   nv=3D1;=0A=
  }=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 }=0A=
 if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A=
   xx=3D_uUES(xx);=0A=
   if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 if (_ulink && v && v!=3D"" && v!=3D"-") {=0A=
  v=3D_uUES(v);=0A=
  if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 var wc=3Dwindow;=0A=
 var c=3D_ubd.cookie;=0A=
 if(wc && wc.gaGlobal && wc.gaGlobal.dh=3D=3D_udh){=0A=
  var g=3Dwc.gaGlobal;=0A=
  var ua=3Dc.split("__utma=3D"+_udh+".")[1].split(";")[0].split(".");=0A=
  if(g.sid)ua[3]=3Dg.sid;=0A=
  if(nv>0){=0A=
   ua[2]=3Dua[3];=0A=
   if(g.vid){=0A=
    var v=3Dg.vid.split(".");=0A=
    ua[0]=3Dv[0];=0A=
    ua[1]=3Dv[1];=0A=
   }=0A=
  }=0A=
  _ubd.cookie=3D"__utma=3D"+_udh+"."+ua.join(".")+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 _uInfo(page);=0A=
 _ufns=3D0;=0A=
 _ufno=3D0;=0A=
 if (!page || page=3D=3D"") _uff=3D1;=0A=
}=0A=
function _uGH() {=0A=
 var hid;=0A=
 var wc=3Dwindow;=0A=
 if (wc && wc.gaGlobal && wc.gaGlobal.hid) {=0A=
  hid=3Dwc.gaGlobal.hid;=0A=
 } else {=0A=
  hid=3DMath.round(Math.random()*0x7fffffff);=0A=
  if (!wc.gaGlobal) wc.gaGlobal=3D{};=0A=
  wc.gaGlobal.hid=3Dhid;=0A=
 }=0A=
 return hid;=0A=
}=0A=
function _uInfo(page) {=0A=
 var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A=
 if (page && page!=3D"") pg=3D_uES(page,1);=0A=
 _ur=3D_ubd.referrer;=0A=
 if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A=
 else {=0A=
  dm=3D_ubd.domain;=0A=
  if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A=
  p=3D_ur.indexOf(dm);=0A=
  if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A=
  if (_ur.indexOf("[")=3D=3D0 && =
_ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A=
 }=0A=
 s+=3D"&utmn=3D"+_uu;=0A=
 if (_ufsc) s+=3D_uBInfo();=0A=
 if (_uctm) s+=3D_uCInfo();=0A=
 if (_utitle && _ubd.title && _ubd.title!=3D"") =
s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A=
 if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
 if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
 s+=3D"&utmhid=3D"+_uGH();=0A=
 s+=3D"&utmr=3D"+_ur;=0A=
 s+=3D"&utmp=3D"+pg;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uVoid() { return; }=0A=
function _uCInfo() {=0A=
 if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A=
 if (!_uVG()) return;=0A=
 var =
c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""=
;=0A=
 if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
 s+=3D_udl.search;=0A=
 var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A=
 var dc=3D_ubd.cookie;=0A=
 x=3D" expires=3D"+x.toGMTString()+";";=0A=
 if (_ulink && !_ubl) {=0A=
  z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A=
  if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { =
_ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A=
 }=0A=
 z=3Ddc.indexOf("__utmz=3D"+_udh+".");=0A=
 if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh+".",";"); }=0A=
 else { z=3D"-"; }=0A=
 t=3D_uGC(s,_ucid+"=3D","&");=0A=
 t2=3D_uGC(s,_ucsr+"=3D","&");=0A=
 t3=3D_uGC(s,"gclid=3D","&");=0A=
 if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && =
t3!=3D"")) {=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A=
  if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmcsr=3D"+_uEC(t2); }=0A=
  if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmgclid=3D"+_uEC(t3); }=0A=
  t=3D_uGC(s,_uccn+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A=
  else c+=3D"|utmccn=3D(not+set)";=0A=
  t=3D_uGC(s,_ucmd+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A=
  else  c+=3D"|utmcmd=3D(not+set)";=0A=
  t=3D_uGC(s,_uctr+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A=
  else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") =
c+=3D"|utmctr=3D"+_uEC(t); }=0A=
  t=3D_uGC(s,_ucct+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A=
  t=3D_uGC(s,_ucno+"=3D","&");=0A=
  if (t=3D=3D"1") o=3D1;=0A=
  if (z!=3D"-" && o=3D=3D1) return "";=0A=
 }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && =
_ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1)  c=3D_uRef(); if =
(z!=3D"-" && _ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") {=0A=
  if (z=3D=3D"-" && _ufns=3D=3D1) { =
c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A=
  if (c=3D=3D"-" || c=3D=3D"") return "";=0A=
 }=0A=
 if (z!=3D"-") {=0A=
  i=3Dz.indexOf(".");=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  t=3Dz.substring(i+1,z.length);=0A=
  if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A=
  t=3Dz.substring(0,i);=0A=
  if ((i=3Dt.lastIndexOf(".")) > -1) {=0A=
   t=3Dt.substring(i+1,t.length);=0A=
   cn=3D(t*1);=0A=
  }=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) {=0A=
  t=3D_uGC(dc,"__utma=3D"+_udh+".",";");=0A=
  if ((i=3Dt.lastIndexOf(".")) > 9) {=0A=
   _uns=3Dt.substring(i+1,t.length);=0A=
   _uns=3D(_uns*1);=0A=
  }=0A=
  cn++;=0A=
  if (_uns=3D=3D0) _uns=3D1;=0A=
  _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; =
path=3D"+_utcp+"; "+x+_udo;=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A=
 else return "&utmcr=3D1";=0A=
}=0A=
function _uRef() {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k,n;=0A=
 if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  k=3Dh.substring(h.indexOf("/"),h.length);=0A=
  if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 h=3Dh.toLowerCase();=0A=
 n=3Dh;=0A=
 if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A=
 for (var ii=3D0;ii<_uRno.length;ii++) {=0A=
  if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && =
n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A=
 }=0A=
 if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A=
 return =
"utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D=
referral";=0A=
}=0A=
function _uOrg(t) {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k;=0A=
 if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 for (var ii=3D0;ii<_uOsr.length;ii++) {=0A=
  if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A=
   if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || =
(i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A=
    k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A=
    if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A=
    for (var yy=3D0;yy<_uOno.length;yy++) {=0A=
     if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; =
break; }=0A=
    }=0A=
    if (t) return _uEC(k);=0A=
    else return =
"utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|=
utmcmd=3Dorganic";=0A=
   }=0A=
  }=0A=
 }=0A=
 return "";=0A=
}=0A=
function _uGCse() {=0A=
 var h,p;=0A=
 h=3Dp=3D_ur.split("://")[1];=0A=
 if(h.indexOf("/")>-1) {=0A=
  h=3Dh.split("/")[0];=0A=
  p=3Dp.substring(p.indexOf("/")+1,p.length);=0A=
 }=0A=
 if(p.indexOf("?")>-1) {=0A=
  p=3Dp.split("?")[0];=0A=
 }=0A=
 if(h.toLowerCase().indexOf("google")>-1) {=0A=
  if(_ur.indexOf("?q=3D")>-1 || _ur.indexOf("&q=3D")>-1) {=0A=
   if (p.toLowerCase().indexOf("cse")>-1) {=0A=
    return true;=0A=
   }=0A=
  }=0A=
 }=0A=
}=0A=
function _uBInfo() {=0A=
 var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A=
 var n=3Dnavigator;=0A=
 if (self.screen) {=0A=
  sr=3Dscreen.width+"x"+screen.height;=0A=
  sc=3Dscreen.colorDepth+"-bit";=0A=
 } else if (self.java) {=0A=
  var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A=
  var s=3Dj.getScreenSize();=0A=
  sr=3Ds.width+"x"+s.height;=0A=
 }=0A=
 if (n.language) { ul=3Dn.language.toLowerCase(); }=0A=
 else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A=
 je=3Dn.javaEnabled()?1:0;=0A=
 if (_uflash) fl=3D_uFlash();=0A=
 if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A=
 else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A=
 return =
"&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j=
e+"&utmfl=3D"+fl;=0A=
}=0A=
function __utmSetTrans() {=0A=
 var e;=0A=
 if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A=
 else if (_ubd.utmform && _ubd.utmform.utmtrans) =
e=3D_ubd.utmform.utmtrans;=0A=
 if (!e) return;=0A=
 var l=3De.value.split("UTM:");=0A=
 var i,i2,c;=0A=
 if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A=
 if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A=
=0A=
 for (var ii=3D0;ii<l.length;ii++) {=0A=
  l[ii]=3D_uTrim(l[ii]);=0A=
  if (l[ii].charAt(0)!=3D'T' && l[ii].charAt(0)!=3D'I') continue;=0A=
  var r=3DMath.round(Math.random()*2147483647);=0A=
  if (!_utsp || _utsp=3D=3D"") _utsp=3D"|";=0A=
  var f=3Dl[ii].split(_utsp),s=3D"";=0A=
  if (f[0].charAt(0)=3D=3D'T') {=0A=
   s=3D"&utmt=3Dtran"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmtst=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmtto=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmttx=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmtsp=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmtci=3D"+_uES(f[6]);=0A=
   f[7]=3D_uTrim(f[7]); if(f[7]&&f[7]!=3D"") =
s+=3D"&utmtrg=3D"+_uES(f[7]);=0A=
   f[8]=3D_uTrim(f[8]); if(f[8]&&f[8]!=3D"") =
s+=3D"&utmtco=3D"+_uES(f[8]);=0A=
  } else {=0A=
   s=3D"&utmt=3Ditem"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmipc=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmipn=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmiva=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmipr=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmiqt=3D"+_uES(f[6]);=0A=
  }=0A=
  if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
  if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
=0A=
  if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
   i[ii]=3Dnew Image(1,1);=0A=
   i[ii].src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
   i[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
  if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
   i2[ii]=3Dnew Image(1,1);=0A=
   =
i2[ii].src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D=
"+c;=0A=
   i2[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uFlash() {=0A=
 var f=3D"-",n=3Dnavigator;=0A=
 if (n.plugins && n.plugins.length) {=0A=
  for (var ii=3D0;ii<n.plugins.length;ii++) {=0A=
   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=3D-1) {=0A=
    f=3Dn.plugins[ii].description.split('Shockwave Flash ')[1];=0A=
    break;=0A=
   }=0A=
  }=0A=
 } else {=0A=
  var fl;=0A=
  try {=0A=
   fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");=0A=
   f =3D fl.GetVariable("$version");=0A=
  } catch(e) {}=0A=
  if (f =3D=3D "-") {=0A=
   try {=0A=
    fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");=0A=
    f =3D "WIN 6,0,21,0";=0A=
    fl.AllowScriptAccess =3D "always";=0A=
    f =3D fl.GetVariable("$version");=0A=
   } catch(e) {}=0A=
  }=0A=
  if (f =3D=3D "-") {=0A=
   try {=0A=
    fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash");=0A=
    f =3D fl.GetVariable("$version");=0A=
   } catch(e) {}=0A=
  }=0A=
  if (f !=3D "-") {=0A=
   f =3D f.split(" ")[1].split(",");=0A=
   f =3D f[0] + "." + f[1] + " r" + f[2];=0A=
  }=0A=
 }=0A=
 return f;=0A=
}=0A=
function __utmLinkerUrl(l,h) {=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 var iq =3D l.indexOf("?");=0A=
 var ih =3D l.indexOf("#");=0A=
 var url=3Dl;=0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh+".",";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh+".",";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh+".",";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { url=3Dl+"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) url=3Dl+"?"+p;=0A=
   else if (ih=3D=3D-1) url=3Dl+"&"+p;=0A=
   else if (iq=3D=3D-1) url=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A=
   else url=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A=
  }=0A=
 }=0A=
 return url;=0A=
}=0A=
function __utmLinker(l,h) {=0A=
 if (!_ulink || !l || l=3D=3D"") return;=0A=
 _udl.href=3D__utmLinkerUrl(l,h);=0A=
}=0A=
function __utmLinkPost(f,h) {=0A=
 if (!_ulink || !f || !f.action) return;=0A=
 f.action=3D__utmLinkerUrl(f.action, h);=0A=
 return;=0A=
}=0A=
function __utmSetVar(v) {=0A=
 if (!v || v=3D=3D"") return;=0A=
 if (!_udo || _udo =3D=3D "") {=0A=
  _udh=3D_uDomain();=0A=
  if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 }=0A=
 if (!_uVG()) return;=0A=
 var r=3DMath.round(Math.random() * 2147483647);=0A=
 _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; =
expires=3D"+_uNx()+";"+_udo;=0A=
 var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A=
 if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
}=0A=
function _uGCS() {=0A=
 var t,c=3D"",dc=3D_ubd.cookie;=0A=
 if ((t=3D_uGC(dc,"__utma=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utma=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmx=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmz=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utmz=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmv=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utmv=3D"+t+";");=0A=
 if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A=
 return c;=0A=
}=0A=
function _uGC(l,n,s) {=0A=
 if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A=
 var i,i2,i3,c=3D"-";=0A=
 i=3Dl.indexOf(n);=0A=
 i3=3Dn.indexOf("=3D")+1;=0A=
 if (i > -1) {=0A=
  i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A=
  c=3Dl.substring((i+i3),i2);=0A=
 }=0A=
 return c;=0A=
}=0A=
function _uDomain() {=0A=
 if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A=
 if (_udn=3D=3D"auto") {=0A=
  var d=3D_ubd.domain;=0A=
  if (d.substring(0,4)=3D=3D"www.") {=0A=
   d=3Dd.substring(4,d.length);=0A=
  }=0A=
  _udn=3Dd;=0A=
 }=0A=
 _udn =3D _udn.toLowerCase(); =0A=
 if (_uhash=3D=3D"off") return 1;=0A=
 return _uHash(_udn);=0A=
}=0A=
function _uHash(d) {=0A=
 if (!d || d=3D=3D"") return 1;=0A=
 var h=3D0,g=3D0;=0A=
 for (var i=3Dd.length-1;i>=3D0;i--) {=0A=
  var c=3DparseInt(d.charCodeAt(i));=0A=
  h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A=
  if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A=
 }=0A=
 return h;=0A=
}=0A=
function _uFixA(c,s,t) {=0A=
 if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A=
 var a=3D_uGC(c,"__utma=3D"+_udh+".",s);=0A=
 var lt=3D0,i=3D0;=0A=
 if ((i=3Da.lastIndexOf(".")) > 9) {=0A=
  _uns=3Da.substring(i+1,a.length);=0A=
  _uns=3D(_uns*1)+1;=0A=
  a=3Da.substring(0,i);=0A=
  if ((i=3Da.lastIndexOf(".")) > 7) {=0A=
   lt=3Da.substring(i+1,a.length);=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  if ((i=3Da.lastIndexOf(".")) > 5) {=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  a+=3D"."+lt+"."+t+"."+_uns;=0A=
 }=0A=
 return a;=0A=
}=0A=
function _uTrim(s) {=0A=
  if (!s || s=3D=3D"") return "";=0A=
  while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || =
(s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A=
  while ((s.charAt(s.length-1)=3D=3D' ') || =
(s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) =
s=3Ds.substring(0,s.length-1);=0A=
  return s;=0A=
}=0A=
function _uEC(s) {=0A=
  var n=3D"";=0A=
  if (!s || s=3D=3D"") return "";=0A=
  for (var i=3D0;i<s.length;i++) {if (s.charAt(i)=3D=3D" ") n+=3D"+"; =
else n+=3Ds.charAt(i);}=0A=
  return n;=0A=
}=0A=
function __utmVisitorCode(f) {=0A=
 var r=3D0,t=3D0,i=3D0,i2=3D0,m=3D31;=0A=
 var a=3D_uGC(_ubd.cookie,"__utma=3D"+_udh+".",";");=0A=
 if ((i=3Da.indexOf(".",0))<0) return;=0A=
 if ((i2=3Da.indexOf(".",i+1))>0) r=3Da.substring(i+1,i2); else return =
"";  =0A=
 if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return =
"";  =0A=
 if (f) {=0A=
  return r;=0A=
 } else {=0A=
  var c=3Dnew =
Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'=
,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A=
  return =
c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r=
&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5=
&m]+c[t&m];=0A=
 }=0A=
}=0A=
function _uIN(n) {=0A=
 if (!n) return false;=0A=
 for (var i=3D0;i<n.length;i++) {=0A=
  var c=3Dn.charAt(i);=0A=
  if ((c<"0" || c>"9") && (c!=3D".")) return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uES(s,u) {=0A=
 if (typeof(encodeURIComponent) =3D=3D 'function') {=0A=
  if (u) return encodeURI(s);=0A=
  else return encodeURIComponent(s);=0A=
 } else {=0A=
  return escape(s);=0A=
 }=0A=
}=0A=
function _uUES(s) {=0A=
 if (typeof(decodeURIComponent) =3D=3D 'function') {=0A=
  return decodeURIComponent(s);=0A=
 } else {=0A=
  return unescape(s);=0A=
 }=0A=
}=0A=
function _uVG() {=0A=
 if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") =
=3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && =
_udn.indexOf("google.org")=3D=3D-1) {=0A=
  return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uSP() {=0A=
 var s=3D100;=0A=
 if (_usample) s=3D_usample;=0A=
 if(s>=3D100 || s<=3D0) return true;=0A=
 return ((__utmVisitorCode(1)%10000)<(s*100));=0A=
}=0A=
function urchinPathCopy(p){=0A=
 var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A=
 cs=3Dnew Array("a","b","c","v","x","z");=0A=
 h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A=
 nx=3D_uNx()+";";=0A=
 tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A=
 tx=3Dtx.toGMTString()+";";=0A=
 sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A=
 sx=3Dsx.toGMTString()+";";=0A=
 for (i=3D0;i<6;i++){=0A=
  t=3D" expires=3D";=0A=
  if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) =
t+=3Dsx; else t+=3Dnx;=0A=
  c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A=
  if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A=
 }=0A=
}=0A=
function _uCO() {=0A=
 if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A=
 var d=3D'www.google.com';=0A=
 if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A=
 _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A=
 var sc=3Ddocument.createElement('script');=0A=
 sc.type=3D'text/javascript';=0A=
 sc.id=3D"_gasojs";=0A=
 =
sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+=
Math.random();=0A=
 document.getElementsByTagName('head')[0].appendChild(sc);  =0A=
}=0A=
function _uGT() {=0A=
 var h=3Dlocation.hash, a;=0A=
 if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A=
  a=3D_uGC(h,"gaso=3D","&");=0A=
 } else {=0A=
  a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A=
 }=0A=
 return a;=0A=
}=0A=
var _utk=3D_uGT();=0A=
if (_utk && _utk!=3D"" && _utk.length>10 && _utk.indexOf("=3D")=3D=3D-1) =
{=0A=
 if (window.addEventListener) {=0A=
  window.addEventListener('load', _uCO, false); =0A=
 } else if (window.attachEvent) { =0A=
  window.attachEvent('onload', _uCO);=0A=
 }=0A=
}=0A=
=0A=
function _uNx() {=0A=
  return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A=
}=0A=

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js

/*=0A=
Copyright (c) 2009, Yahoo! Inc. All rights reserved.=0A=
Code licensed under the BSD License:=0A=
http://developer.yahoo.net/yui/license.txt=0A=
version: 2.7.0=0A=
*/=0A=
if(typeof YAHOO=3D=3D"undefined"||!YAHOO){var =
YAHOO=3D{};}YAHOO.namespace=3Dfunction(){var =
A=3Darguments,E=3Dnull,C,B,D;for(C=3D0;C<A.length;C=3DC+1){D=3D(""+A[C]).=
split(".");E=3DYAHOO;for(B=3D(D[0]=3D=3D"YAHOO")?1:0;B<D.length;B=3DB+1){=
E[D[B]]=3DE[D[B]]||{};E=3DE[D[B]];}}return =
E;};YAHOO.log=3Dfunction(D,A,C){var =
B=3DYAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return =
false;}};YAHOO.register=3Dfunction(A,E,D){var =
I=3DYAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]=3D{versions:[],builds:[]};=
}B=3DI[A];H=3DD.version;G=3DD.build;F=3DYAHOO.env.listeners;B.name=3DA;B.=
version=3DH;B.build=3DG;B.versions.push(H);B.builds.push(G);B.mainClass=3D=
E;for(C=3D0;C<F.length;C=3DC+1){F[C](B);}if(E){E.VERSION=3DH;E.BUILD=3DG;=
}else{YAHOO.log("mainClass is undefined for module =
"+A,"warn");}};YAHOO.env=3DYAHOO.env||{modules:[],listeners:[]};YAHOO.env=
.getVersion=3Dfunction(A){return =
YAHOO.env.modules[A]||null;};YAHOO.env.ua=3Dfunction(){var =
C=3D{ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:0},B=3Dnavigato=
r.userAgent,A;if((/KHTML/).test(B)){C.webkit=3D1;}A=3DB.match(/AppleWebKi=
t\/([^\s]*)/);if(A&&A[1]){C.webkit=3DparseFloat(A[1]);if(/ =
Mobile\//.test(B)){C.mobile=3D"Apple";}else{A=3DB.match(/NokiaN[^\/]*/);i=
f(A){C.mobile=3DA[0];}}A=3DB.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=3DA[=
0];}}if(!C.webkit){A=3DB.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=
=3DparseFloat(A[1]);A=3DB.match(/Opera =
Mini[^;]*/);if(A){C.mobile=3DA[0];}}else{A=3DB.match(/MSIE\s([^;]*)/);if(=
A&&A[1]){C.ie=3DparseFloat(A[1]);}else{A=3DB.match(/Gecko\/([^\s]*)/);if(=
A){C.gecko=3D1;A=3DB.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=3DparseFl=
oat(A[1]);}}}}}A=3DB.match(/Caja\/([^\s]*)/);if(A&&A[1]){C.caja=3DparseFl=
oat(A[1]);}return =
C;}();(function(){YAHOO.namespace("util","widget","example");if("undefine=
d"!=3D=3Dtypeof YAHOO_config){var =
B=3DYAHOO_config.listener,A=3DYAHOO.env.listeners,D=3Dtrue,C;if(B){for(C=3D=
0;C<A.length;C=3DC+1){if(A[C]=3D=3DB){D=3Dfalse;break;}}if(D){A.push(B);}=
}}})();YAHOO.lang=3DYAHOO.lang||{};(function(){var =
B=3DYAHOO.lang,F=3D"[object Array]",C=3D"[object =
Function]",A=3DObject.prototype,E=3D["toString","valueOf"],D=3D{isArray:f=
unction(G){return =
A.toString.apply(G)=3D=3D=3DF;},isBoolean:function(G){return typeof =
G=3D=3D=3D"boolean";},isFunction:function(G){return =
A.toString.apply(G)=3D=3D=3DC;},isNull:function(G){return =
G=3D=3D=3Dnull;},isNumber:function(G){return typeof =
G=3D=3D=3D"number"&&isFinite(G);},isObject:function(G){return(G&&(typeof =
G=3D=3D=3D"object"||B.isFunction(G)))||false;},isString:function(G){retur=
n typeof G=3D=3D=3D"string";},isUndefined:function(G){return typeof =
G=3D=3D=3D"undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(I,H){var =
G,K,J;for(G=3D0;G<E.length;G=3DG+1){K=3DE[G];J=3DH[K];if(B.isFunction(J)&=
&J!=3DA[K]){I[K]=3DJ;}}}:function(){},extend:function(J,K,I){if(!K||!J){t=
hrow new Error("extend failed, please check that "+"all dependencies are =
included.");}var =
H=3Dfunction(){},G;H.prototype=3DK.prototype;J.prototype=3Dnew =
H();J.prototype.constructor=3DJ;J.superclass=3DK.prototype;if(K.prototype=
.constructor=3D=3DA.constructor){K.prototype.constructor=3DK;}if(I){for(G=
 in =
I){if(B.hasOwnProperty(I,G)){J.prototype[G]=3DI[G];}}B._IEEnumFix(J.proto=
type,I);}},augmentObject:function(K,J){if(!J||!K){throw new =
Error("Absorb failed, verify dependencies.");}var =
G=3Darguments,I,L,H=3DG[2];if(H&&H!=3D=3Dtrue){for(I=3D2;I<G.length;I=3DI=
+1){K[G[I]]=3DJ[G[I]];}}else{for(L in J){if(H||!(L in =
K)){K[L]=3DJ[L];}}B._IEEnumFix(K,J);}},augmentProto:function(J,I){if(!I||=
!J){throw new Error("Augment failed, verify dependencies.");}var =
G=3D[J.prototype,I.prototype],H;for(H=3D2;H<arguments.length;H=3DH+1){G.p=
ush(arguments[H]);}B.augmentObject.apply(this,G);},dump:function(G,L){var=
 I,K,N=3D[],O=3D"{...}",H=3D"f(){...}",M=3D", ",J=3D" =3D> =
";if(!B.isObject(G)){return G+"";}else{if(G instanceof Date||("nodeType" =
in G&&"tagName" in G)){return G;}else{if(B.isFunction(G)){return =
H;}}}L=3D(B.isNumber(L))?L:3;if(B.isArray(G)){N.push("[");for(I=3D0,K=3DG=
.length;I<K;I=3DI+1){if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O=
);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}els=
e{N.push("{");for(I in =
G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push((L>0=
)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.po=
p();}N.push("}");}return N.join("");},substitute:function(V,H,O){var =
L,K,J,R,S,U,Q=3D[],I,M=3D"dump",P=3D" =
",G=3D"{",T=3D"}",N;for(;;){L=3DV.lastIndexOf(G);if(L<0){break;}K=3DV.ind=
exOf(T,L);if(L+1>=3DK){break;}I=3DV.substring(L+1,K);R=3DI;U=3Dnull;J=3DR=
.indexOf(P);if(J>-1){U=3DR.substring(J+1);R=3DR.substring(0,J);}S=3DH[R];=
if(O){S=3DO(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=3DB.dump(S,parse=
Int(U,10));}else{U=3DU||"";N=3DU.indexOf(M);if(N>-1){U=3DU.substring(4);}=
if(S.toString=3D=3D=3DA.toString||N>-1){S=3DB.dump(S,parseInt(U,10));}els=
e{S=3DS.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S=3D"~-"+Q.=
length+"-~";Q[Q.length]=3DI;}}V=3DV.substring(0,L)+S+V.substring(K+1);}fo=
r(L=3DQ.length-1;L>=3D0;L=3DL-1){V=3DV.replace(new =
RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return =
V;},trim:function(G){try{return =
G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var =
J=3D{},H=3Darguments,G=3DH.length,I;for(I=3D0;I<G;I=3DI+1){B.augmentObjec=
t(J,H[I],true);}return =
J;},later:function(N,H,O,J,K){N=3DN||0;H=3DH||{};var =
I=3DO,M=3DJ,L,G;if(B.isString(O)){I=3DH[O];}if(!I){throw new =
TypeError("method =
undefined");}if(!B.isArray(M)){M=3D[J];}L=3Dfunction(){I.apply(H,M);};G=3D=
(K)?setInterval(L,N):setTimeout(L,N);return{interval:K,cancel:function(){=
if(this.interval){clearInterval(G);}else{clearTimeout(G);}}};},isValue:fu=
nction(G){return(B.isObject(G)||B.isString(G)||B.isNumber(G)||B.isBoolean=
(G));}};B.hasOwnProperty=3D(A.hasOwnProperty)?function(G,H){return =
G&&G.hasOwnProperty(H);}:function(G,H){return =
!B.isUndefined(G[H])&&G.constructor.prototype[H]!=3D=3DG[H];};D.augmentOb=
ject(B,D,true);YAHOO.util.Lang=3DB;B.augment=3DB.augmentProto;YAHOO.augme=
nt=3DB.augmentProto;YAHOO.extend=3DB.extend;})();YAHOO.register("yahoo",Y=
AHOO,{version:"2.7.0",build:"1796"});
------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Content-Location: =?iso-8859-1?Q?mhtml:file://C:\Dokumente_und_Einstellungen\Administrator\?=
	=?iso-8859-1?Q?Eigene_Dateien\Birgit\Presse\Ver=F6ffentlichungen\Ausland\?=
	=?iso-8859-1?Q?Packaging_Europe_-_New_product_from_APS_next_generation_of?=
	=?iso-8859-1?Q?_thermal_inkjet_printer_apsolute.mht?=

﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Packaging Europe - New product from APS: next generation of thermal inkjet printer apsolute</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=description 
content="The World of European Packaging. Includes news, events, designs, branding and innovations.">
<META name=keywords 
content="Packaging machinery, Additives, Additives, Adhesive, Aerosols, Alcan, Alcoa, Ancilliaries, Aplix, Bags, Banding, Beverages, Board, Bottles, Boxes, Breaking News, Budelpack, Cans, Caps, Cartons, Ciba, Closures, Coatings, Coding, Collating, Composites, Consultancy, Contract Packing, Converted Packaging, Converting, Corrugated, Corus, Cosmetics packaging, Crates, Crown, Decorative Sleeves, Design, Devices, Dispensers, Display, Distribution, Drinks packaging, Drums, DS Smith, Eastern Europe, Elopack, Environment, EU, Europe, FBB, Filling, Films, Flexibles, Flow-wrap, FMCG, FMCG Packaging, Foils, Food packaging, France, Frozen Foods, Germany, Glass, Handling, HFFS, Hot Melt Glue, Hungary, Industrial packaging, Innovation, Jars, Labelling, Labels, Laminating, Leaflets, Linpac, Metal, Minerals, Mollins, Mondi, Packaging, Packaging automation, Packaging Conferences, Packaging Consultancy, Packaging design, Packaging development, Packaging Events, Packaging Information, Packaging Innovatoin, Packaging legislation, Packaging News, Packaging Organisations, Packaging statistics, Packaging testing, Packing, Packs, Palletising, Pallets, Paper, Pharmaceutical Packaging, Phials, Pira, Pira International, Plastics, Poland, Polimoon, Polyethylene, Polyolefins, Polypropylene, Polystyrene, POS, Pouches, Production, PVC, Raw materials, Retail packaging, Rexam, RPC, Russia, SCA, Shippers, shrinkwrap, Sigpack, Soild Board, Stanelco, Storaenso, Stretchwrap, Sweden, Testing, Tetrapak, Tins, Trays, UK, VFFS, Waste Management, Weidenhammer, Wood"><LINK 
rel=stylesheet type=text/css 
href="http://www.packagingeurope.com/css/homepageFluid_optimisedNew.css"><LINK 
rel=stylesheet type=text/css 
href="http://www.packagingeurope.com/css/changes.css"><LINK rel=stylesheet 
type=text/css href="http://www.packagingeurope.com/css/skin.css"><LINK 
rel=stylesheet type=text/css 
href="http://www.packagingeurope.com/css/searchResults.css"><LINK rel=stylesheet 
type=text/css href="http://www.packagingeurope.com/css/reset.css"><LINK 
rel=stylesheet type=text/css 
href="http://www.packagingeurope.com/css/directories.css"><LINK rel=stylesheet 
type=text/css href="http://www.packagingeurope.com/css/profiles.css"><!--<link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/homepageFluid_optimisedNew.css" rel="stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/changes.css" rel="Stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/skin.css" rel="Stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/searchResults.css" rel="stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/reset.css" rel="stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/directories.css" rel="Stylesheet" type="text/css" /><link href="../../%3C%25=%20GetAplPath()%20%25%3Ecss/profiles.css" rel="Stylesheet" type="text/css" /><link href="../../css/calendar.css" rel="stylesheet" type="text/css" />
    --><!--
  jQuery library
-->
<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/Packaging-Europe-News/42010/js/jquery-1.4.2.min.js"></SCRIPT>

<SCRIPT type=text/javascript>
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=text/javascript>
try{
    var pageTracker = _gat._getTracker("UA-4984572-3");
    pageTracker._initData();
    pageTracker._trackPageview();
    }
    catch
    {

    }
</SCRIPT>

<SCRIPT type=text/javascript src="http://www.google-analytics.com/urchin.js">
</SCRIPT>

<SCRIPT type=text/javascript>
    _uacct = "UA-4984572-3";
    urchinTracker();
</SCRIPT>
<!-- YAHOO Global Object source file -->
<SCRIPT type=text/javascript 
src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js"></SCRIPT>

<SCRIPT type=text/javascript src=""></SCRIPT>

<SCRIPT type=text/javascript src=""></SCRIPT>

<SCRIPT type=text/javascript src=""> </SCRIPT>

<SCRIPT type=text/javascript src=""> </SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/yui/build/yahoo-dom-event/yahoo-dom-event.js"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/yui/build/animation/animation-min.js"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/newsticker.js"></SCRIPT>

<META name=GENERATOR content="MSHTML 8.00.6001.19088"></HEAD>
<BODY><!--// Packaging Europe Invisible Tags. //-->
<DIV style="HEIGHT: 2px" id=infill></DIV><!--// End of Invisible Tags. //-->
<FORM id=form1 method=post 
action=New-product-from-APS-next-generation-of-thermal-inkjet-printer-apsolute.html?nNewsID=42010>
<DIV class=aspNetHidden><INPUT id=__EVENTTARGET type=hidden name=__EVENTTARGET> 
<INPUT id=__EVENTARGUMENT type=hidden name=__EVENTARGUMENT> <INPUT 
id=__VIEWSTATE 
value=/wEPDwUKMTk2OTYwNzExNQ8WAh4XbGJsTW9zdFJlYWRTdG9yaWVzVGl0bGUFEU1PU1QgUkVBRCBTVE9SSUVTFgJmD2QWAmYPZBYCAgMPZBYGAgMPZBYKAgEPZBYMAgEPDxYGHg1BbHRlcm5hdGVUZXh0BQZHZXJtYW4eB1Rvb2xUaXAFBmdlcm1hbh4ISW1hZ2VVcmwFFi9JbWFnZXMyMDExL3RvcF9kZS5wbmdkZAIDDw8WBh8BBQdJdGFsaWFuHwIFB2l0YWxpYW4fAwUWL0ltYWdlczIwMTEvdG9wX0lULnBuZ2RkAgUPDxYGHwEFBkZyZW5jaB8CBQZmcmVuY2gfAwUWL0ltYWdlczIwMTEvdG9wX0ZSLnBuZ2RkAgcPDxYGHwEFB1NwYW5pc2gfAgUHc3BhbmlzaB8DBRYvSW1hZ2VzMjAxMS90b3BfRVMucG5nZGQCCQ8PFgYfAQUHUnVzc2lhbh8CBQdydXNzaWFuHwMFFi9JbWFnZXMyMDExL3RvcF9SVS5wbmdkZAILDw8WBh8BBQdFbmdsaXNoHwIFB2VuZ2xpc2gfAwUWL0ltYWdlczIwMTEvdG9wX1VLLnBuZ2RkAgMPZBYIAgEPDxYEHgRUZXh0BQRIb21lHgtOYXZpZ2F0ZVVybAUNL0RlZmF1bHQuYXNweGRkAgMPDxYEHwQFCEFib3V0IFVzHwUFDS9BYm91dFVzLmFzcHhkZAIFDw8WBB8EBQpDb250YWN0IFVzHwUFDy9Db250YWN0VXMuYXNweGRkAgcPDxYEHwQFCk1lZGlhIFBhY2sfBQUOL21lZGlhcGFjay5wZGZkZAIFD2QWAgIBD2QWAgIBDw9kFgIeB29uZm9jdXMFEHRoaXMudmFsdWUgPSAnJztkAgcPZBYEAgEPDxYCHwMFFC9pbWFnZXMyMDExL2xvZ28ucG5nZGQCAw9kFgJmD2QWAgIBDxYCHwQF2QE8YSBocmVmPSJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vYWRjbGljay5hc2h4P2FkbGluaz1odHRwOi8vd3d3Lm1vbmRpZ3JvdXAuY29tL2dvZ3JlZW4vJmFkbG9jYXRpb249SG9tZVBhZ2VUb3BNT05ESUdSRUVOJmFkdHlwZT1Ib21lUGFnZVRvcE1PTkRJR1JFRU4iID48aW1nIHNyYz0iQWR2ZXJ0QXNzZXRzL2dvZ3JlZW5fNTAweDcwX2ZhbGxiYWNrLmpwZyIgLz48L2E+ZAIJD2QWGgIBDw8WAh8FBQ0vZGVmYXVsdC5hc3B4ZBYCAgEPDxYCHwQFBGhvbWVkZAIDDw8WAh8FBRAvTmV3c1NlYXJjaC5hc3B4ZBYCAgEPDxYCHwQFBG5ld3NkZAIFDw8WAh8EBQRqb2JzZGQCBw8PFgIfBQUjL1BhY2thZ2luZy1tYXJrZXQtaW50ZWxsaWdlbmNlLmFzcHhkFgICAQ8PFgIfBAUTbWFya2V0IGludGVsbGlnZW5jZWRkAgkPDxYCHwUFFC9NYWdhemluZS9pbmRleC5odG1sZBYCAgEPDxYCHwQFCG1hZ2F6aW5lZGQCCw8PFgIfAwUZL2ltYWdlczIwMTEvRWxpdGVTdXBwLnBuZ2RkAg0PDxYCHwUFFC9FbGl0ZVN1cHBsaWVycy5hc3B4ZBYCAgEPDxYCHwQFCWFkdmVydGlzZWRkAg8PDxYCHwUFDS9kZWZhdWx0LmFzcHhkFgJmDw8WAh8DBTJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9ob21lLnBuZ2RkAhEPDxYCHwUFEC9OZXdzU2VhcmNoLmFzcHhkFgJmDw8WAh8DBTJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9uZXdzLnBuZ2RkAhMPDxYCHwMFMmh0dHA6Ly93d3cucGFja2FnaW5nZXVyb3BlLmNvbS9pbWFnZXMyMDExL2pvYnMucG5nZGQCFQ8PFgIfBQUjL1BhY2thZ2luZy1tYXJrZXQtaW50ZWxsaWdlbmNlLmFzcHhkFgJmDw8WAh8DBTJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9kYXRhLnBuZ2RkAhcPDxYCHwUFFC9NYWdhemluZS9pbmRleC5odG1sZBYCZg8PFgIfAwU2aHR0cDovL3d3dy5wYWNrYWdpbmdldXJvcGUuY29tL2ltYWdlczIwMTEvbWFnYXppbmUucG5nZGQCGQ8PFgIfBQUgL01lZGlhcGFjazIwMTEvbWVkaWFwYWNrMjAxMS5wZGZkFgJmDw8WAh8DBTdodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vaW1hZ2VzMjAxMS9hZHZlcnRpc2UucG5nZGQCCQ9kFh4CAQ9kFgJmD2QWAgIBDxYCHgdWaXNpYmxlaGQCAw9kFgICAw8PFgIfBAWuAzxIMz5QYWNrYWdpbmcgRXVyb3BlIEhhcyBvdGhlciBzdG9yaWVzIHJlbGF0ZWQgdG8gdGhlIG5ld3Mgc3Ryb3kgeW91IGFyZSB2aWV3aW5nOjwvSDM+PGRpdiBpZD0iZGF0YUJveCIgY2xhc3M9ImJveE5vSG92ZXIgd2hpdGVCRyBtYXJnaW5Cb3R0b20yNSIgc3R5bGU9Im1hcmdpbjo1cHg7cGFkZGluZzo1cHg7Ij48YnIvPjxzcGFuIHN0eWxlPSJjb2xvcjpyZWQ7Ij4xMTAzNzwvc3Bhbj4gU3RvcmllcyBSZWxhdGluZyB0byB0aGUgJ0Rlc2lnbiAmIEJyYW5kaW5nJyBEZXBhcnRtZW50IDxici8+fDxjZW50ZXI+PGEgaHJlZj0iaHR0cDovL3d3dy5wYWNrYWdpbmdldXJvcGUuY29tL05ld3NTZWFyY2guYXNweD9zcmNoc3RyPSZkZXB0PTUiPlZpZXcgTm93PC9hPjwvY2VudGVyPjxici8+KHJlYWQgMzEyOTMwOCB0aW1lcyk8YnIvPjxici8+PC9kaXY+PGJyLz5kZAIFD2QWAgIBDw8WAh8FBQ8vQ29udGFjdFVzLmFzcHhkZAIHD2QWBAIBDw8WAh8EBRBDaG9vc2UgeW91ciBuZXdzZGQCAw9kFgJmD2QWCgIBDw8WAh8EBVNVc2UgdGhlIGRyb3AgZG93biBtZW51IGJlbG93IHRvIGZpbHRlciBzdG9yaWVzIHRoZSB3YXkgeW91IHdhbnQgLSB3aGVuIHlvdSB3YW50IGl0IWRkAgMPEA8WCB8CBRRGaWx0ZXIgYnkgZGVwYXJ0bWVudB4ORGF0YVZhbHVlRmllbGQFAklEHg1EYXRhVGV4dEZpZWxkBQlMaXN0X05hbWUeC18hRGF0YUJvdW5kZ2QQFQoURmlsdGVyIGJ5IGRlcGFydG1lbnQMQXBwb2ludG1lbnRzFUNvbW1lcmNlICYgUHVyY2hhc2luZxRDb25mZXJlbmNlcyAmIEV2ZW50cwlDb3Jwb3JhdGURRGVzaWduICYgQnJhbmRpbmcZRW52aXJvbm1lbnQgJiBMZWdpc2xhdGlvbhZSZXNlYXJjaCAmIERldmVsb3BtZW50F1RlY2hub2xvZ3kgJiBJbm5vdmF0aW9uBU90aGVyFQoURmlsdGVyIGJ5IGRlcGFydG1lbnQBMQEyATMBNAE1ATYBNwE4ATkUKwMKZ2dnZ2dnZ2dnZ2RkAgUPEA8WCB8CBRBGaWx0ZXIgYnkgTWFya2V0HwgFAklEHwkFCUxpc3RfTmFtZR8KZ2QQFQ0QRmlsdGVyIGJ5IE1hcmtldAtESVkgJiBUcmFkZRJEcmlua3MgLSBhbGNvaG9saWMWRHJpbmtzIC0gbm9uLWFsY29ob2xpYwpFbGVjdHJpY2FsBEZNQ0cERm9vZBJIb3VzZWhvbGQgUHJvZHVjdHMTSW5kdXN0cmlhbCBQcm9kdWN0cxVQZXQgJiBBbmltYWwgUHJvZHVjdHMOUGhhcm1hY2V1dGljYWwWVG9pbGV0cmllcyAmIENvc21ldGljcwVPdGhlchUNEEZpbHRlciBieSBNYXJrZXQBMQEyATMBNAE1ATYBNwE4ATkCMTACMTECMTIUKwMNZ2dnZ2dnZ2dnZ2dnZ2RkAgcPEA8WCB8CBRJGaWx0ZXIgYnkgSW5kdXN0cnkfCAUCSUQfCQUJTGlzdF9OYW1lHwpnZBAVCRJGaWx0ZXIgYnkgSW5kdXN0cnkIQ2VyYW1pY3MJRmxleGlibGVzBUdsYXNzBU1ldGFsDVBhcGVyICYgQm9hcmQIUGxhc3RpY3MEV29vZAVPdGhlchUJEkZpbHRlciBieSBJbmR1c3RyeQExATIBMwE0ATUBNgE3ATgUKwMJZ2dnZ2dnZ2dnZGQCCQ8QDxYIHwIFEUZpbHRlciBieSBDb3VudHJ5HwgFAklEHwkFCUxpc3RfTmFtZR8KZ2QQFToRRmlsdGVyIGJ5IENvdW50cnkGRXVyb3BlDVJlc3Qgb2YgV29ybGQHQWxiYW5pYQdBbmRvcnJhB0FybWVuaWEHQXVzdHJpYQpBemVyYmFpamFuB0JlbGFydXMHQmVsZ2l1bRJCb3NuaWEtSGVyemVnb3ZpbmEGQnJhemlsCEJ1bGdhcmlhBkNhbmFkYQVDaGluYQNDSVMHQ3JvYXRpYQZDeXBydXMOQ3plY2ggUmVwdWJsaWMHRGVubWFyawdFc3RvbmlhB0ZpbmxhbmQGRnJhbmNlB0dlb3JnaWEHR2VybWFueQZHcmVlY2UHSHVuZ2FyeQdJY2VsYW5kBUluZGlhB0lyZWxhbmQFSXRhbHkFSmFwYW4GTGF0dmlhDUxpZWNodGVuc3RlaW4JTGl0aHVhbmlhCkx1eGVtYm91cmcJTWFjZWRvbmlhBU1hbHRhBk1leGljbwdNb2xkb3ZhBk1vbmFjbwpNb250ZW5lZ3JvC05ldGhlcmxhbmRzBk5vcndheQZQb2xhbmQIUG9ydHVnYWwHUm9tYW5pYQZSdXNzaWEGU2VyYmlhCFNsb3Zha2lhCFNsb3ZlbmlhBVNwYWluBlN3ZWRlbgtTd2l0emVybGFuZAZUdXJrZXkHVWtyYWluZQ5Vbml0ZWQgS2luZ2RvbQNVU0EVOhFGaWx0ZXIgYnkgQ291bnRyeQIzNQIzNgI0MgMxMDECNDkCMTICNTACNDMBMQIzOQMxMDkCMzEDMTA0AzEwNwMxMDICMzgCMTMCMTQBMgIxNQEzATQCNDgBNQIxNgIxNwI0NgMxMTACMTgBNgMxMDYCMTkDMTAzAjIwAjIxAjQxAjIyAzEwOAI0NQIzMAIyOQE3ATgCMjMCMjQCMzQCMzcCNDACMjUCMjYBOQIxMAIyOAI0NwI0NAIxMQMxMDUUKwM6Z2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2RkAgkPZBYCZg9kFgICAQ8WAh8HaGQCCw9kFgJmD2QWDAIBDw8WAh8EBQ1GZWF0dXJlZCBKb2JzZGQCAw8PFgIfBAUMU2VlIGFsbCBqb2JzZGQCBQ9kFgICAQ8PZBYCHwYFEHRoaXMudmFsdWUgPSAnJztkAgcPZBYEAgcPZBYCZg8PFgIfBAUHRGV0YWlsc2RkAgkPFgIeC18hSXRlbUNvdW50AgUWCmYPZBYCZg8VBC5QYWNrYWdpbmcgRGVzaWduIGFuZCBJbm5vdmF0aW9uIE1hbmFnZXIgLSBGb29kIlVuaXRlZCBLaW5nZG9tLCBOb3J0aCBXZXN0IEVuZ2xhbmQcJiMxNjM7MzUwMDAgLSAmIzE2Mzs0NTAwMCBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29tL2pvYmJvYXJkL2NhbmRzL2pvYnZpZXcuYXNwP3Y9NDY4ODI0ZAIBD2QWAmYPFQQZU2VuaW9yIFBhY2thZ2luZyBEZXNpZ25lcidVbml0ZWQgS2luZ2RvbSwgTG9uZG9uICZhbXA7IFNvdXRoIEVhc3QcJiMxNjM7NDUwMDAgLSAmIzE2Mzs0NTAwMCBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29tL2pvYmJvYXJkL2NhbmRzL2pvYnZpZXcuYXNwP3Y9NDcwMjA1ZAICD2QWAmYPFQQZUGFja2FnaW5nIFByb2plY3QgTWFuYWdlcidVbml0ZWQgS2luZ2RvbSwgTG9uZG9uICZhbXA7IFNvdXRoIEVhc3QcJiMxNjM7MzMwMDAgLSAmIzE2Mzs0MDAwMCBwYUNodHRwOi8vam9icy5wYWNrYWdpbmdldXJvcGUuY29tL2pvYmJvYXJkL2NhbmRzL2pvYnZpZXcuYXNwP3Y9NTIxMzAyZAIDD2QWAmYPFQQ1UGxhbnQgTWFuYWdlciDigJMgQmVsZ2l1bSDigJMgUmlnaWQgUGxhc3RpYyBQYWNrYWdpbmcaQmVsZ2l1bSwgVmFyaW91cyAtIEJlbGdpdW0tJiMxNjM7Q29tcGV0aXRpdmUgKyBQZXJmb3JtYW5jZSBSZWxhdGVkIEJvbnVzQ2h0dHA6Ly9qb2JzLnBhY2thZ2luZ2V1cm9wZS5jb20vam9iYm9hcmQvY2FuZHMvam9idmlldy5hc3A/dj00NjM0NjVkAgQPZBYCZg8VBBNXZWIgLyBBU1AgRGV2ZWxvcGVyHFVuaXRlZCBLaW5nZG9tLCBFYXN0IEVuZ2xhbmQDRE9FQ2h0dHA6Ly9qb2JzLnBhY2thZ2luZ2V1cm9wZS5jb20vam9iYm9hcmQvY2FuZHMvam9idmlldy5hc3A/dj01MzQ1NzZkAgkPDxYCHwQFDFNlZSBhbGwgam9ic2RkAgsPDxYCHwQFD1NlYXJjaCBmb3Igam9ic2RkAg0PZBYCZg9kFgICAQ8WAh8HaGQCEQ9kFgJmD2QWAgIBDxYCHwQFsQE8YSBocmVmPSJodHRwOi8vd3d3LnBhY2thZ2luZ2V1cm9wZS5jb20vYWRjbGljay5hc2h4P2FkbGluaz1odHRwOi8vd3d3Lndlbmdsb3IuY29tJmFkbG9jYXRpb249TmV3c1dlbmdsb3ImYWR0eXBlPU5ld3NXZW5nbG9yIiA+PGltZyBzcmM9IkFkdmVydEFzc2V0cy8xNTJ4MTUyX1dlbmdsb3IuanBnIiAvPjwvYT5kAhMPZBYoAgEPDxYCHwQFCEludGVyYWN0ZGQCAw8PFgIfBQUNL0Fib3V0VXMuYXNweGQWAmYPDxYCHwQFCEFib3V0IHVzZGQCBQ8PFgIfBQUPL0NvbnRhY3RVcy5hc3B4ZBYCZg8PFgIfBAUKQ29udGFjdCB1c2RkAgcPZBYCZg8PFgIfBAULU3VibWl0IG5ld3NkZAIJDw8WAh8EBQROZXdzZGQCCw8PFgIfBQUQL05ld3NTZWFyY2guYXNweGQWAmYPDxYCHwQFC05ld3Mgc2VhcmNoZGQCDQ8PFgIfBQUQL05ld3NTZWFyY2guYXNweGQWAmYPDxYCHwQFEFBvcHVsYXIgYXJ0aWNsZXNkZAIPDw8WAh8EBQRKb2JzZGQCEQ9kFgJmDw8WAh8EBQtTZWFyY2ggam9ic2RkAhMPZBYCZg8PFgIfBAUKUmVjcnVpdGVyc2RkAhUPDxYCHwQFE01hcmtldCBpbnRlbGxpZ2VuY2VkZAIXD2QWAmYPDxYCHwQFB1JlcG9ydHNkZAIZDw8WAh8FBSYvUGFja2FnaW5nLURpcmVjdG9yaWVzLWFuZC1ndWlkZXMuYXNweGQWAmYPDxYCHwQFFERpcmVjdG9yaWVzICYgZ3VpZGVzZGQCGw8PFgIfBQUXL1BhY2thZ2luZ0J1eWVyc01JLmFzcHhkFgJmDw8WAh8EBQ9CdXllcnMgZGF0YWJhc2VkZAIdD2QWAmYPDxYCHwQFEVBhY2thZ2luZyBtYW5hZ2VyZGQCHw8PFgIfBQUQL05ld3NTZWFyY2guYXNweGQWAmYPDxYCHwQFCEFydGljbGVzZGQCIQ8PFgIfBAUITWFnYXppbmVkZAIjDw8WAh8FBQkvTWFnYXppbmVkFgJmDw8WAh8EBQ5MYXRlc3QgZWRpdGlvbmRkAiUPDxYCHwUFFS9NYWdhemluZUFyY2hpdmUuYXNweGQWAmYPDxYCHwQFC0JhY2sgaXNzdWVzZGQCJw9kFgJmD2QWAgIBDxYCHwQF4AE8YnIvPjxkaXYgc3R5bGU9IndpZHRoOjE1MHB4O2JvcmRlcjogc29saWQgMXB4ICNiYWQ2ZTI7Ij48b2JqZWN0IHdpZHRoPSIxNTAiIGhlaWdodD0iNjAwIj4gICA8ZW1iZWQgc3JjPSJBRFZFUlRBU1NFVFMvcHJpcGxha2Jhbm5lci5zd2YiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjYwMCI+PC9lbWJlZD4gPC9vYmplY3Q+IDwvZGl2PmQCFQ9kFgJmD2QWAgIBDxYCHwdoZAIXD2QWAmYPZBYCAgEPFgIfB2hkAhkPZBYCZg9kFgICAQ8WAh8HaGQCGw9kFgJmD2QWAgIBDxYCHwdoZAIdD2QWAmYPZBYCAgEPFgIfB2hkAh8PZBYYAgEPDxYCHwQFSE5ldyBwcm9kdWN0IGZyb20gQVBTOiBuZXh0IGdlbmVyYXRpb24gb2YgdGhlcm1hbCBpbmtqZXQgcHJpbnRlciBhcHNvbHV0ZWRkAgMPDxYCHwMFHGltYWdlcy9uZXdzZmxhZ3MvZXVfZmxhZy5wbmdkZAIFDw8WAh8EBRMyMS8wNy8yMDExIDEzOjAyOjQ0ZGQCBw8WAh8LAgEWAmYPZBYCAgEPDxYEHwUFKk5ld3NEZXRhaWxzLmFzcHg/bk5ld3NJRD00MjAxMCZzd2l0Y2hsYW49MR8DBRwvSU1BR0VTTkVXL0ZMQUdTL1VLX2ZsYWcuUE5HZGQCCQ8PFgIfBAUMVHJhbnNsYXRpb25zZGQCCw8PFgIfBQWAAm1haWx0bzo/c3ViamVjdD1OZXdzIHN0b3J5IGZyb20gUGFja2FnaW5nIEV1cm9wZSZib2R5PUEgZnJpZW5kIHJlYWQgdGhpcyBuZXdzIHN0b3J5IG9uIFBhY2thZ2luZyBFdXJvcGUgYW5kIHRob3VnaHQgaXQgbWF5IGJlIG9mIGludGVyZXN0IHRvIHlvdS4gUGxlYXNlIGNsaWNrIHRoaXMgbGluayB0byByZWFkIHRoZSBmdWxsIHN0b3J5LiAgIGh0dHA6Ly93d3cucGFja2FnaW5nZXVyb3BlLmNvbS9OZXdzRGV0YWlscy5hc3B4P25OZXdzSUQ9NDIwMTBkFgICAQ8PFgIfBAURRW1haWwgdG8gYSBmcmllbmRkZAINDw8WAh8FBSEvUHJpbnRGcmllbmRseS5hc3B4P25OZXdzSUQ9NDIwMTBkFgICAQ8PFgIfBAUPUHJpbnQgdGhpcyBwYWdlZGQCDw8PFggeBVdpZHRoGwAAAAAAAAAAAQAAAB4GSGVpZ2h0GwAAAAAAAAAAAQAAAB4EXyFTQgKAAx8HaGRkAhEPDxYCHwQFwANUaGFua3MgdG8gaXRzIG11bHRpcGxlIGhlYWQgY29uY2VwdCBhbmQgdGhlIGJpZyBjaG9pY2Ugb2YgaW5rcyBhcHNvbHV0ZSBjYW4gZnVsZmlsbCB3aXRoIG9ubHkgb25lIGNvbnRyb2xsZXIgdGhlIG1vc3QgZGlmZmVyZW50IG1hcmtpbmcgbmVlZHMgb2ZmZXJpbmcgYSBzb2x1dGlvbiBmb3IgYWxtb3N0IGFueSBjdXN0b21lciBhbmQgaW5kdXN0cmlhbCBhcHBsaWNhdGlvbi4gUHJpbnRpbmcgd2l0aCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZmFzdC1kcnlpbmcgaW5rcywgYXBzb2x1dGUgcGVybWl0cyBwcmludGluZyBvbiBwb3JvdXMgKGNhcnRvbiwgcGFwZXLigKYpIGFuZCBub24tcG9yb3VzIHN1YnN0cmF0ZXMgKGNvYXRlZCwgdmFybmlzaGVkIGNhcmRib2FyZCwgYWx1bWluaXVtLCBwbGFzdGljIGZpbG1z4oCmKSBkaXJlY3RseSBvbnRvIHRoZSBwcm9kdWN0IG9yIGl0cyBwcmltYXJ5ZGQCEw8PFgIfBAWwDzxicj5hbmQgc2Vjb25kYXJ5IHBhY2thZ2luZy48YnI+PGJyPlRoZSBuZXcgYXBzb2x1dGUgZ2VuZXJhdGlvbiwgd2hpY2ggd2FzIHByZXNlbnRlZCBmb3IgdGhlIGZpcnN0IHRpbWUgYXQgSW50ZXJwYWNrIDIwMTEsIGlzIGRpc3Rpbmd1aXNoZWQgYnkgYWR2YW5jZWQgZnVuY3Rpb25zIGFuZCBhIHNpbXBsaWZpZWQgb3BlcmF0aW9uLiBJdCBwcm92aWRlcyBtYW55IHNvZnR3YXJlIGZlYXR1cmVzIHdoaWNoIGltcGxlbWVudCBjdXJyZW50IG1hcmtldCByZXF1aXJlbWVudHMgYW5kIG9mZmVyIGN1c3RvbWVycyBtb3JlIGNvbWZvcnQgYW5kIHNhZmV0eSBzdWNoIGFzIGFuIGF1dG9tYXRpYyBpbmsgdHlwZSByZWNvZ25pdGlvbiwgYW4gYWNjdXJhdGUmbmJzcDs8YnI+bWVhc3VyZW1lbnQgb2YgaW5rIGxldmVsLCBhZHZhbmNlZCBjb250cm9sIGFuZCBkYXRhIHRyYW5zZmVyIGZ1bmN0aW9ucyBldGMuPGJyPjxicj5UaGUgbmV3IGFwc29sdXRlIHByaW50ZXIgaXMgYXZhaWxhYmxlIHdpdGggYSBuZXcgY29tcGFjdCBwcmludGhlYWQgZm9yIHNwYWNlIHNhdmluZyBpbnN0YWxsYXRpb25zIG9uIHRoZSBwcm9kdWN0aW9uIGxpbmUgb3IgaW4gdGhlIHN5c3RlbS4gVGhlIG5ldyBwcmludGhlYWQgcHJvdmlkZXMgYWR2YW5jZWQgY29tbXVuaWNhdGlvbiBmZWF0dXJlcyB3aGljaCBhbG1vc3QgZXhjbHVkZSBvcGVyYXRpb25hbCBlcnJvcnMgYnkgdGhlIHVzZXIuIFRoZSBpbmsgcG9ydGZvbGlvIGZvciB0aGlzIHByaW50ZXIgaGFzIGJlZW4gaW5jcmVhc2VkIGJ5IGZpdmUgbmV3IGlua3MuPGJyPjxicj5Zb3VyIGJlbmVmaXRzIGF0IGEgZ2xhbmNlOjxicj48YnI+VGhlcm1hbCBJbmtqZXQgVGVjaG5vbG9neSBmb3IgcG9yb3VzIGFuZCBub24gcG9yb3VzIHN1cmZhY2VzPGJyPjxicj7igKIgZmFzdCBkcnlpbmcgaW5rcyBmb3IgcGxhc3RpY3MsIG1ldGFsLCBjb2F0ZWQgYW5kIHZhcm5pc2hlZCBjYXJ0b24uLi48YnI+4oCiIGRyeWluZyB0aW1lICZsdDsgMiBzZWM8YnI+4oCiIGdvb2QgcnVubmluZyBhbmQgYWRoZXNpb24gY2hhcmFjdGVyaXN0aWNzIG9uIG5vbi1wb3JvdXMgYW5kIHBvcm91cyBzdXJmYWNlczxicj48YnI+T25lIGNvbnRyb2xsZXIgLSB1cCB0byA0IGRpZmZlcmVudCBhcHBsaWNhdGlvbnM8YnI+PGJyPuKAoiBzaW11bHRhbmVvdXMgcHJpbnRpbmcgb24gdXAgdG8gNCBwcm9kdWN0aW9uIGxpbmVzPGJyPuKAoiBkaWZmZXJlbnQgbWVzc2FnZXMsIGlua3MsIHByb2R1Y3Rpb24gc3BlZWQuLi48YnI+PGJyPk5vIHJlcGFpcnMsIHplcm8gbWFpbnRlbmFuY2U8YnI+PGJyPuKAoiBpbmsgY2FydHJpZGdlIHN5c3RlbSB3aXRob3V0IHdlYXJpbmcgcGFydHM8YnI+4oCiIG5vIGRvd250aW1lPGJyPuKAoiBubyByZXBhaXIgY29zdHM8YnI+PGJyPkNsZWFuIGFuZCBlYXN5IG9wZXJhdGlvbjxicj48YnI+4oCiIG9ubHkgZW52aXJvbm1lbnRhbGx5IHJlc3BvbnNhYmxlIGlua3M8YnI+4oCiIG5vIG5lZWQgZm9yIGRpc3Bvc2FsPGJyPuKAoiBpbmsgY2FydHJpZGdlIGNoYW5nZSBpbiBhIGZldyBzZWNvbmRzPGJyPjxicj5Mb3cgcnVubmluZyBjb3N0czxicj48YnI+4oCiIHVzZXMgb25seSBpbmssIG5vIHNvbHZlbnQ8YnI+4oCiIG5vIHJlcGFpciBvciBwYXJ0IGNvc3RzPGJyPjxicj5VbmxpbWl0ZWQgcHJpbnQgcG9zc2liaWxpdGllczxicj48YnI+4oCiIGEgc3VwZXJpb3IgcHJpbnQgcXVhbGl0eTxicj7igKIgbG9nb3MsIDEgYW5kIDJEIGJhcmNvZGVzLCBzcGVjaWFsIGNoYXJhY3RlcnM8YnI+4oCiIHJlc29sdXRpb24gdXAgdG8gNjAwIGRwaTxicj7igKIgcHJpbnQgaGVpZ2h0IGZyb20gMC4yOCBiaXMgNTAuOCBtbTxicj7igKIgcHJpbnRpbmcgc3BlZWQgdXAgdG8gMzAwIG0vbWluPGJyPjxicj5Nb3JlIGluZm9ybWF0aW9uOiZuYnNwOzxhIGhyZWY9Imh0dHA6Ly93d3cuYXBzLWRpcmVjdC5kZSIgdGFyZ2V0PSJfc2VsZiI+d3d3LmFwcy1kaXJlY3QuZGU8L2E+PGJyPmRkAhUPDxYEHwUFDS9kZWZhdWx0LmFzcHgfBAU/Q2xpY2sgaGVyZSBmb3IgdG9kYXnigJlzIG5ld3MgYW5kIHRvIGJyb3dzZSBmb3Igc2ltaWxhciBzdG9yaWVzZGQCFw9kFgICAw8PFgIfBAWuAzxIMz5QYWNrYWdpbmcgRXVyb3BlIEhhcyBvdGhlciBzdG9yaWVzIHJlbGF0ZWQgdG8gdGhlIG5ld3Mgc3Ryb3kgeW91IGFyZSB2aWV3aW5nOjwvSDM+PGRpdiBpZD0iZGF0YUJveCIgY2xhc3M9ImJveE5vSG92ZXIgd2hpdGVCRyBtYXJnaW5Cb3R0b20yNSIgc3R5bGU9Im1hcmdpbjo1cHg7cGFkZGluZzo1cHg7Ij48YnIvPjxzcGFuIHN0eWxlPSJjb2xvcjpyZWQ7Ij4xMTAzNzwvc3Bhbj4gU3RvcmllcyBSZWxhdGluZyB0byB0aGUgJ0Rlc2lnbiAmIEJyYW5kaW5nJyBEZXBhcnRtZW50IDxici8+fDxjZW50ZXI+PGEgaHJlZj0iaHR0cDovL3d3dy5wYWNrYWdpbmdldXJvcGUuY29tL05ld3NTZWFyY2guYXNweD9zcmNoc3RyPSZkZXB0PTUiPlZpZXcgTm93PC9hPjwvY2VudGVyPjxici8+KHJlYWQgMzEyOTMwOSB0aW1lcyk8YnIvPjxici8+PC9kaXY+PGJyLz5kZAILD2QWCAIBDw8WBB8EBQRIb21lHwUFDS9EZWZhdWx0LmFzcHhkZAIDDw8WBB8EBQhBYm91dCBVcx8FBQ0vQWJvdXRVcy5hc3B4ZGQCBQ8PFgQfBAUKQ29udGFjdCBVcx8FBQ8vQ29udGFjdFVzLmFzcHhkZAIHDw8WBB8EBQpNZWRpYSBQYWNrHwUFDi9tZWRpYXBhY2sucGRmZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgYFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fREUFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fSVQFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fRlIFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fRVMFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fUlUFK2N0bDAwJGN0bDAwJFVjX0hlYWRlcjEkVWNfTGFuZ3VhZ2UxJGlidG5fRU5QQCNkkPD9BmUtZXB2tX2+b4E4iJyBhn8+E96/l+PXXg== type=hidden name=__VIEWSTATE> </DIV>
<SCRIPT type=text/javascript>
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/WebResource.axd?d=zIg9mUVBlalpYpHPT3wMQINd9Cw8IzkBK9WUBE8yZTvAhGgpDNKj01_gDsTPmNxoDAWNYCn1R8TjIn5ZQJ72g-g7Y0C_3SkWnkovvRspXFU1&amp;t=634392074925430182"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=idJxz33xZFuQBo6XYi3e3nkviP5Ny8fqbY9ONWIX-qvgeNJafuh6nrS653TpMMsLZlqCI0sshU_MkXYL_cZkRLS_3Wn6bHRUG00oy1l9lNILNFAVL6s2SBisZjH9BtOEEeiVuT4U_n9bRQ58CpDD0A2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript>
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=1nnHPLWZ24xqjudYd4xyAr7DSyixZwmXmmiqJn-Ya6IMvaYRKlmY6K6TsKV-hXSz5yQEQ8ExJh8-wcwJWbB-aK9EirLTLkVCXxC1SPBZpcgwZt0PiZoDcRFM6_7FG8ZaERqVhUqVIFkf19_nr35agQ2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=3MD7fbO6LyAmIMK7bdeiCzGiQI7ZzX-AjXdNTSBj3ExQPIlK2fKeFYKBU73WzkZs_uHsvNphxWnpk4K1mA6WARPHJnyWg8Jya4B1ZrpdZ04889VPRZciRlMoxDydN7zb18nGPb3cqo8uRWvlGYhX6Q2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=FVFhOHu8VIDNFpfqaiDVdPPWG6qaagSKvXZDs7kgPf6ykwB-7x9vORweLKCh4TMVhFvnYB_2pV_0yLfkg2c0Z6L9hEzJTWU-zyVSHUNxLoxauGE3Jmyt5ZUzyWE88k_HrudZDExw3EsRZAVlFPh9nQ2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=LCfMSzDBR-CDTesQrpcKTb-y2gXn6ag_o_Fqo3RS2SDAp2ut8tA1spByDmvOlMTaYOI-O2v_XE_QHpv0Mof3XkhRDIyyi-gDzK5iS9bnt7mfz4N7nLdTg_nGWY1CEuw8lXrxxB3r2yAyL31dgjluEA2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=H3o_AZ-FpFYBFU5-FKzafEVT9ss1hLkGaMruVlgcSoXnRMBTDiplDYKbzb66jC_DLJ_dc0Uktepuph-YDMvIpELXFf015Dub5FipdYUIF0I7qlb1YO4RlRSvX4kvPf3agTcMKbMcP-9_KVCakitsVA2&amp;t=6b9ad1b8"></SCRIPT>

<SCRIPT type=text/javascript 
src="http://www.packagingeurope.com/ScriptResource.axd?d=7q9lPRY3ovcgDhPMgHqH73vpyTXUVgCcM9Vj4m853y5D1inRInKJuklYujT0IuxDt0J24Pz1hf5khUrzQljFMxZoeFnjH2wJ09x9PgQgEtgAqrmWoXzpZMsBGBsnXfxWkEUlsB6r387g5CrxAAFWrGX2H6DitoJJTdVv8Wrmgu1Uu2XfE9r06EgR82nkJdgW0&amp;t=6b9ad1b8"></SCRIPT>

<DIV class=aspNetHidden><INPUT id=__EVENTVALIDATION 
value=/wEWagKx0qKBCALq18fXCQL/gfOVAgKh+bGVDwK84tOqCQKa6+yrDAKt9/LCAgLdlM3yCAKEtZXgBALUpN/eDAKMnIDRDAL15cuvDQL05cuvDQL35cuvDQL25cuvDQLx5cuvDQLw5cuvDQLz5cuvDQLi5cuvDQLt5cuvDQL/2qGGDAL6gZLdBQL7gZLdBQL4gZLdBQL5gZLdBQL+gZLdBQL/gZLdBQL8gZLdBQLtgZLdBQLigZLdBQL6gdLeBQL6gd7eBQL6gdreBQKXrZ/pAwK4nfijDwK5nfijDwK6nfijDwK7nfijDwK8nfijDwK9nfijDwK+nfijDwKvnfijDwLphoqMAwKpxIijDQKpxIyjDQKoxLyjDQLgvPWBBAKoxNigDQKrxLyjDQKvxLSjDQKoxICjDQKrxPSgDQKpxNigDQLI5uLrBQKpxLijDQKx+NrBBQLCpYCAAwL7q5eqDgKpxNSgDQKrxICjDQKrxISjDQKqxPSgDQKrxIijDQKpxPSgDQKoxPSgDQKoxNSgDQKvxPSgDQKrxIyjDQKrxJCjDQKoxIyjDQKNhdf0CgKrxNSgDQKuxPSgDQLvjp73CQKrxNigDQLewri3CAKqxLSjDQKqxLijDQKoxLijDQKqxLyjDQL1z8DeCwKoxIijDQKpxLSjDQKqxNigDQKtxPSgDQK8xPSgDQKqxICjDQKqxISjDQKpxISjDQKpxJCjDQKoxLSjDQKqxIijDQKqxIyjDQKzxPSgDQKrxLSjDQKqxNSgDQKoxJCjDQKoxISjDQKrxLijDQKUl/zqDwKUw8r5AwL0k7C5BQKN1IcBAqSfiJMFAuyXz4IFApS8zewEuwSFCaCPCrYfdj4Zl19vMWcpELcsCZUTq0r4N26EXVU= 
type=hidden name=__EVENTVALIDATION> </DIV>
<DIV 
style="BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime 0px solid" 
id=wrapper>
<DIV 
style="BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; BACKGROUND-COLOR: white; BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime 0px solid" 
id=container>
<DIV 
style="BORDER-BOTTOM: green 0px solid; BORDER-LEFT: green 0px solid; BORDER-TOP: green 0px solid; BORDER-RIGHT: green 0px solid" 
id=header>
<SCRIPT type=text/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$ctl00$ScriptManager1', 'form1', ['tctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$UpdatePanel1','ContentPlaceHolder1_ucNewsFilterSIDE1_UpdatePanel1'], [], [], 90, 'ctl00$ctl00');
//]]>
</SCRIPT>

<DIV id=topBar>
<DIV 
style="BORDER-BOTTOM: lime 0px solid; BORDER-LEFT: lime 0px solid; BORDER-TOP: lime 0px solid; BORDER-RIGHT: lime 0px solid" 
id=lang class=left>
<UL>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_DE title=german alt=German 
  src="http://www.packagingeurope.com/Images2011/top_de.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_DE> </LI>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_IT title=italian alt=Italian 
  src="http://www.packagingeurope.com/Images2011/top_IT.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_IT> </LI>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_FR title=french alt=French 
  src="http://www.packagingeurope.com/Images2011/top_FR.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_FR> </LI>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_ES title=spanish alt=Spanish 
  src="http://www.packagingeurope.com/Images2011/top_ES.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_ES> </LI>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_RU title=russian alt=Russian 
  src="http://www.packagingeurope.com/Images2011/top_RU.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_RU> </LI>
  <LI><INPUT id=Uc_Header1_Uc_Language1_ibtn_EN title=english alt=English 
  src="http://www.packagingeurope.com/Images2011/top_UK.png" type=image 
  name=ctl00$ctl00$Uc_Header1$Uc_Language1$ibtn_EN> </LI></UL></DIV>
<DIV id=topNav>
<UL>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_Header1_Uc_TopNav1_lblmnuHome 
  href="http://www.packagingeurope.com/Default.aspx">Home</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_Header1_Uc_TopNav1_lblmnuAboutUs 
  href="http://www.packagingeurope.com/AboutUs.aspx">About Us</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_Header1_Uc_TopNav1_lblmnuContactUs 
  href="http://www.packagingeurope.com/ContactUs.aspx">Contact Us</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_Header1_Uc_TopNav1_hypMnuMediaPack 
  href="http://www.packagingeurope.com/mediapack.pdf" target=_blank>Media 
  Pack</A> </LI></UL></DIV>&nbsp; 
<DIV id=topSearch class=right>
<DIV id=Uc_Header1_Uc_topSearch1_pnlSearchtop 
onkeypress="javascript:return WebForm_FireDefaultButton(event, 'Uc_Header1_Uc_topSearch1_capcha')"><INPUT 
style="WIDTH: 175px; HEIGHT: 18px; COLOR: graytext; FONT-SIZE: 10pt; FONT-WEIGHT: normal" 
id=Uc_Header1_Uc_topSearch1_txttopsearch class=left onfocus="this.value = '';" 
value="Company or Keyword Search" type=text 
name=ctl00$ctl00$Uc_Header1$Uc_topSearch1$txttopsearch> 
<DIV class="button goBtn right"><A id=Uc_Header1_Uc_topSearch1_ibtopSearch 
href="javascript:__doPostBack('ctl00$ctl00$Uc_Header1$Uc_topSearch1$ibtopSearch','')">GO</A> 
<INPUT style="DISPLAY: none" id=Uc_Header1_Uc_topSearch1_capcha type=submit name=ctl00$ctl00$Uc_Header1$Uc_topSearch1$capcha> 
</DIV></DIV></DIV>&nbsp; </DIV>
<DIV id=logoBar>
<DIV id=logo><IMG id=Uc_Header1_Uc_LogoBar1_Image1 
src="http://www.packagingeurope.com/images2011/logo.png"></DIV>
<DIV id=banner class=right>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=Uc_Header1_Uc_LogoBar1_AdBox1_dv1><A 
href="http://www.packagingeurope.com/adclick.ashx?adlink=http://www.mondigroup.com/gogreen/&amp;adlocation=HomePageTopMONDIGREEN&amp;adtype=HomePageTopMONDIGREEN"><IMG 
src="http://www.packagingeurope.com/Packaging-Europe-News/42010/AdvertAssets/gogreen_500x70_fallback.jpg"></A> 
</DIV></DIV></DIV>
<DIV class=clear></DIV>
<DIV style="CLEAR: both"></DIV>
<DIV id=navigation>
<UL>
  <LI class=narrow><A id=Uc_Header1_Uc_Navigation1_link1b 
  href="http://www.packagingeurope.com/default.aspx">
  <H3 class=whiteText><SPAN 
  id=Uc_Header1_Uc_Navigation1_r2011_Home>home</SPAN></H3></A></LI>
  <LI class=narrow><A id=Uc_Header1_Uc_Navigation1_link2b 
  href="http://www.packagingeurope.com/NewsSearch.aspx">
  <H3 class=whiteText><SPAN 
  id=Uc_Header1_Uc_Navigation1_r2011_News>news</SPAN></H3></A></LI>
  <LI class=narrow><A href="http://jobs.packagingeurope.com/">
  <H3 class=whiteText><SPAN 
  id=Uc_Header1_Uc_Navigation1_r2011_jobs>jobs</SPAN></H3></A></LI>
  <LI class=wide><A id=Uc_Header1_Uc_Navigation1_link3b 
  href="http://www.packagingeurope.com/Packaging-market-intelligence.aspx">
  <H3 class=whiteText><SPAN 
  id=Uc_Header1_Uc_Navigation1_r2011_MarketIntelligence>market 
  intelligence</SPAN></H3></A></LI>
  <LI class=narrow><A id=Uc_Header1_Uc_Navigation1_link4b 
  href="http://www.packagingeurope.com/Magazine/index.html">
  <H3 class=whiteText><SPAN 
  id=Uc_Header1_Uc_Navigation1_r2011_magazine>magazine</SPAN></H3></A></LI>
  <LI class=narrowElite>
  <DIV>
  <DIV style="PADDING-LEFT: 20px; FLOAT: left; PADDING-TOP: 5px"><IMG 
  id=Uc_Header1_Uc_Navigation1_imgElite 
  src="http://www.packagingeurope.com/images2011/EliteSupp.png"> </DIV><A 
  id=Uc_Header1_Uc_Navigation1_link5b 
  href="http://www.packagingeurope.com/EliteSuppliers.aspx">
  <H3 
class=whiteText>&nbsp;&nbsp;elite&nbsp;suppliers</H3></A></DIV></LI></UL></DIV><!--
      <div id="navigation">
        <ul>
          <li><a id="Uc_Header1_Uc_Navigation1_link1" href="/default.aspx"><img id="Uc_Header1_Uc_Navigation1_Image1" src="http://www.packagingeurope.com/images2011/home.png" alt="Home" style="height:39px;width:108px;" /></a></li>
          <li><a id="Uc_Header1_Uc_Navigation1_link2" href="/NewsSearch.aspx"><img id="Uc_Header1_Uc_Navigation1_Image2" src="http://www.packagingeurope.com/images2011/news.png" alt="Packaging News" style="height:39px;width:108px;" /></a></li>
          <li><a href="http://jobs.packagingeurope.com"><img id="Uc_Header1_Uc_Navigation1_Image3" src="http://www.packagingeurope.com/images2011/jobs.png" alt="Packaging Jobs" style="height:39px;width:108px;" /></a></li>
          <li><a id="Uc_Header1_Uc_Navigation1_link3" href="/Packaging-market-intelligence.aspx"><img id="Uc_Header1_Uc_Navigation1_Image4" src="http://www.packagingeurope.com/images2011/data.png" alt="Packaging Market Intelligence" style="height:39px;width:108px;" /></a></li>
          <li><a id="Uc_Header1_Uc_Navigation1_link4" href="/Magazine/index.html"><img id="Uc_Header1_Uc_Navigation1_Image5" src="http://www.packagingeurope.com/images2011/magazine.png" alt="Packaging Europe Digital Magazine" style="height:39px;width:108px;" /></a></li>
          <li><a id="Uc_Header1_Uc_Navigation1_link5" href="/Mediapack2011/mediapack2011.pdf"><img id="Uc_Header1_Uc_Navigation1_Image6" src="http://www.packagingeurope.com/images2011/advertise.png" alt="Advertise in PackagingEurope.com" style="height:39px;width:108px;" /></a></li>
        </ul>
      </div>
      --><LINK rel=stylesheet type=text/css 
href="http://www.packagingeurope.com/Packaging-Europe-News/42010/YUI/build/reset-fonts-grids/reset-fonts-grids.css">
<DIV style="BACKGROUND-COLOR: transparent; WIDTH: 100%" id=ticker>
<DIV style="BACKGROUND-COLOR: white; WIDTH: 100%" id=xxx class=newsTicker>
<UL>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42240/LIXIS-Track--Trace--IdentiPharma.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:24</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/un_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">LIXIS 
  Track &amp; Trace | IdentiPharma</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42237/ACG-Pharmapack-inks-pact-with-Eastman-Chemicals-to-produce-PETg-film-in-India.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:56</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/India_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">ACG 
  Pharmapack inks pact with Eastman Chemicals to produce PETg film in 
  India</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42229/Film-packaging-for-CALGONITTabs.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:48</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Film 
  packaging for CALGONIT-Tabs</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42228/PARITEL-aquires-Zucchini-packaging-lines.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:40</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/italy_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">PARITEL 
  aquires Zucchini packaging lines</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42224/PETAsept-D-Compact--the-aseptic-solution-for-the-low-output-range.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">11:00</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/german_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">PET-Asept 
  D Compact – the aseptic solution for the low output range</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42220/OCME-satisfies-the-thirst-for-water-in-Saudi-Arabia.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:05</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/un_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">OCME 
  satisfies the “thirst” for water in Saudi Arabia</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42213/Counterfeit-pharmaceuticals-and-food-threaten-innovation.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">09:05</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/usa_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Counterfeit 
  pharmaceuticals and food threaten innovation</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42211/Packaging-solutions-manufactured-from-recycled-paper-fibre-recycled-and-fully-biodegradable.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">08:50</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Packaging 
  solutions manufactured from recycled paper fibre: recycled and fully 
  biodegradable.</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42207/PFM-a-Constellation-of-Innovations.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">04:05</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/italy_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">PFM: 
  a Constellation of Innovations</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42206/SPS-New-Premises-New-Challenges.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:57</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/italy_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">SPS: 
  New Premises, New Challenges</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42205/Quality--the-heart-of-competitiveness.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:34</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/italy_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Quality 
  - the heart of competitiveness</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42204/Cama-Group-outlines-how-turnkey-systems-can-offer-extra-efficiency-and-reliability-in-packaging.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">03:24</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/poland_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Cama 
  Group outlines how turnkey systems can offer extra efficiency and reliability 
  in packaging</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42201/Bag-closing-with-PP-tape--plus-optional-sewing.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:48</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/un_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Bag 
  closing with PP tape – plus optional sewing</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42200/piCLASSIC-provides-up-to-40-more-energy-efficiency-over-rotary-vane-pumps.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">02:26</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">piCLASSIC 
  provides up to 40% more energy efficiency over rotary vane 
  pumps</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42197/New-filling-valves-one-project-many-solutions.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">01:59</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">New 
  filling valves: one project, many solutions</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42194/Solutions-for-packaging-high-margins-with-lower-investment.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">12:44</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/un_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Solutions 
  for packaging: high margins with lower investment</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42193/INDEX6-installs-complete-technological-line-in-Belarus.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:51</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/belarus_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">INDEX-6® 
  installs complete technological line in Belarus</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42191/Eaton-Completes-the-Integration-of-Moeller-with-Product-Branding-and-New-Packaging.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:41</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Eaton 
  Completes the Integration of Moeller with Product Branding and New 
  Packaging.</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42188/Alexander-Herzog-to-assume-responsibility-for-Elsner-Engineering-sales-in-European-market.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">10:23</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">Alexander 
  Herzog to assume responsibility for Elsner Engineering sales in European 
  market</SPAN></A></LI>
  <LI><A style="TEXT-DECORATION: none" 
  href="http://www.packagingeurope.com/Packaging-Europe-News/42176/InterSystem-increases-capacity-at-Doggy.html"><SPAN 
  style="BACKGROUND-COLOR: black; COLOR: white; FONT-SIZE: 8pt; VERTICAL-ALIGN: top; TEXT-DECORATION: none">08:44</SPAN><IMG 
  border=0 
  src="http://www.packagingeurope.com/images/newsflags/sweden_flag.png"></IMG><SPAN 
  style="BACKGROUND-COLOR: transparent; COLOR: gray; FONT-SIZE: small; VERTICAL-ALIGN: top; TEXT-DECORATION: none">InterSystem 
  increases capacity at Doggy</SPAN></A></LI></UL></DIV></DIV>
<DIV class=clear></DIV></DIV>
<DIV id=MainContent>
<DIV style="MARGIN-TOP: -35px" id=3COLcontainer>
<DIV 
style="WIDTH: 270px; BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: left; HEIGHT: 100%; MARGIN-RIGHT: 20px; PADDING-TOP: 35px" 
id=3COLleft>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox4_dv1></DIV>
<DIV style="WIDTH: 270px" class="box gradient">
<DIV style="POSITION: relative" class=inner>
<DIV class=tabElite></DIV>
<DIV class=eliteContainer>
<H2 style="LINE-HEIGHT: 120%" class="blueText bold marginBottom10">Become an 
<BR>Elite Supplier</H2>
<H3 class=" marginBottom10">Increase your visibility on Packaging Europe, the 
world's leading packaging media title.</H3>
<DIV class=eliteBullets>
<UL>
  <LI>Guaranteed headline spots on our homepage</LI>
  <LI>Unlimited publication of news and white papers</LI>
  <LI>Dedicated company page detailing your products, capabilities, USPs and 
  contacts</LI>
  <LI>SEO benefits for your website</LI>
  <LI>Enhanced entry in our supplier directories</LI></UL></DIV><A 
id=ContentPlaceHolder1_uc_Category_Push_Left1_hypEliteMore 
href="http://www.packagingeurope.com/ContactUs.aspx">
<DIV style="MARGIN-BOTTOM: 0px" class=purchaseData><SPAN class=button>Find out 
more</SPAN></DIV></A></DIV></DIV></DIV><!--<div id="dataBox" class="box gradient">
    <div class="inner">
        <div class="tabLong">
            <h1>
                <span id="ContentPlaceHolder1_uc_Category_Push_Left1_lblHead">Elite Suppliers</span>
            </h1>
        </div>
        <div class="contentHeading">
            <h2 class="marginBottom10" style="font-size: 13pt; font-weight: bold; color: #01325d;">
                Become an Elite Supplier</h2>
        </div>
        <h3 style="font: bold normal 12pt Arial, Helvetica, sans-serif; color: #d20001;">
            Increase your visibility on Packaging Europe, the world’s leading packaging media
            title:
        </h3>
        <ul style="list-style-position: outside;list-style-type:disc; color:#01325d;padding:10px;">
            <li style="padding-bottom:5px;">- Guaranteed headline spots on our homepage</li>
            <li style="padding-bottom:5px;">- Unlimited publication of news and white papers</li>
            <li style="padding-bottom:5px;">- Dedicated company page detailing your products, capabilities, USPs and contacts
            </li>
            <li style="padding-bottom:5px;">- SEO benefits for your website</li>
            <li style="padding-bottom:5px;">- Enhanced entry in our supplier directories</li>
        </ul>
       
    </div>
    <div style="clear:both;"></div>
</div>-->&nbsp; 
<DIV id=filternewsBox class="box  right">
<DIV 
style="PADDING-BOTTOM: 0px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; PADDING-TOP: 0px" 
class=inner><!--class="box  gradient marginBottom30 right">-->
<DIV class=tabLong>
<H1><SPAN style="COLOR: white; FONT-SIZE: 14pt; FONT-WEIGHT: normal" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_lblChoose>Choose your 
news</SPAN></H1></DIV>
<DIV id=ContentPlaceHolder1_ucNewsFilterSIDE1_UpdatePanel1>
<DIV style="MARGIN: 0px -15px" class="searchMenus holder ">
<P class=whiteText><SPAN style="FLOAT: left; COLOR: white; FONT-SIZE: 9pt" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_lblInfo>Use the drop down menu below to 
filter stories the way you want - when you want it!</SPAN></P>
<DIV style="MARGIN: 10px 0px" class=newsmenuCol>
<DIV class="menuContainer "><SELECT style="WIDTH: 100%; COLOR: black" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_ddlDepartment 
title="Filter by department" 
name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlDepartment> <OPTION 
  selected value="Filter by department">Filter by department</OPTION> <OPTION 
  value=1>Appointments</OPTION> <OPTION value=2>Commerce &amp; 
  Purchasing</OPTION> <OPTION value=3>Conferences &amp; Events</OPTION> <OPTION 
  value=4>Corporate</OPTION> <OPTION value=5>Design &amp; Branding</OPTION> 
  <OPTION value=6>Environment &amp; Legislation</OPTION> <OPTION 
  value=7>Research &amp; Development</OPTION> <OPTION value=8>Technology &amp; 
  Innovation</OPTION> <OPTION value=9>Other</OPTION></SELECT> </DIV>
<DIV class=menuContainer><SELECT style="WIDTH: 100%; COLOR: black" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_ddlMarket title="Filter by Market" 
name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlMarket> <OPTION 
  selected value="Filter by Market">Filter by Market</OPTION> <OPTION 
  value=1>DIY &amp; Trade</OPTION> <OPTION value=2>Drinks - alcoholic</OPTION> 
  <OPTION value=3>Drinks - non-alcoholic</OPTION> <OPTION 
  value=4>Electrical</OPTION> <OPTION value=5>FMCG</OPTION> <OPTION 
  value=6>Food</OPTION> <OPTION value=7>Household Products</OPTION> <OPTION 
  value=8>Industrial Products</OPTION> <OPTION value=9>Pet &amp; Animal 
  Products</OPTION> <OPTION value=10>Pharmaceutical</OPTION> <OPTION 
  value=11>Toiletries &amp; Cosmetics</OPTION> <OPTION 
value=12>Other</OPTION></SELECT> </DIV>
<DIV class=menuContainer><SELECT style="WIDTH: 100%; COLOR: black" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_ddlIndustry title="Filter by Industry" 
name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlIndustry> <OPTION 
  selected value="Filter by Industry">Filter by Industry</OPTION> <OPTION 
  value=1>Ceramics</OPTION> <OPTION value=2>Flexibles</OPTION> <OPTION 
  value=3>Glass</OPTION> <OPTION value=4>Metal</OPTION> <OPTION value=5>Paper 
  &amp; Board</OPTION> <OPTION value=6>Plastics</OPTION> <OPTION 
  value=7>Wood</OPTION> <OPTION value=8>Other</OPTION></SELECT> </DIV>
<DIV class=menuContainer><SELECT style="WIDTH: 100%; COLOR: black" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_ddlCountry title="Filter by Country" 
name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$ddlCountry> <OPTION 
  selected value="Filter by Country">Filter by Country</OPTION> <OPTION 
  value=35>Europe</OPTION> <OPTION value=36>Rest of World</OPTION> <OPTION 
  value=42>Albania</OPTION> <OPTION value=101>Andorra</OPTION> <OPTION 
  value=49>Armenia</OPTION> <OPTION value=12>Austria</OPTION> <OPTION 
  value=50>Azerbaijan</OPTION> <OPTION value=43>Belarus</OPTION> <OPTION 
  value=1>Belgium</OPTION> <OPTION value=39>Bosnia-Herzegovina</OPTION> <OPTION 
  value=109>Brazil</OPTION> <OPTION value=31>Bulgaria</OPTION> <OPTION 
  value=104>Canada</OPTION> <OPTION value=107>China</OPTION> <OPTION 
  value=102>CIS</OPTION> <OPTION value=38>Croatia</OPTION> <OPTION 
  value=13>Cyprus</OPTION> <OPTION value=14>Czech Republic</OPTION> <OPTION 
  value=2>Denmark</OPTION> <OPTION value=15>Estonia</OPTION> <OPTION 
  value=3>Finland</OPTION> <OPTION value=4>France</OPTION> <OPTION 
  value=48>Georgia</OPTION> <OPTION value=5>Germany</OPTION> <OPTION 
  value=16>Greece</OPTION> <OPTION value=17>Hungary</OPTION> <OPTION 
  value=46>Iceland</OPTION> <OPTION value=110>India</OPTION> <OPTION 
  value=18>Ireland</OPTION> <OPTION value=6>Italy</OPTION> <OPTION 
  value=106>Japan</OPTION> <OPTION value=19>Latvia</OPTION> <OPTION 
  value=103>Liechtenstein</OPTION> <OPTION value=20>Lithuania</OPTION> <OPTION 
  value=21>Luxembourg</OPTION> <OPTION value=41>Macedonia</OPTION> <OPTION 
  value=22>Malta</OPTION> <OPTION value=108>Mexico</OPTION> <OPTION 
  value=45>Moldova</OPTION> <OPTION value=30>Monaco</OPTION> <OPTION 
  value=29>Montenegro</OPTION> <OPTION value=7>Netherlands</OPTION> <OPTION 
  value=8>Norway</OPTION> <OPTION value=23>Poland</OPTION> <OPTION 
  value=24>Portugal</OPTION> <OPTION value=34>Romania</OPTION> <OPTION 
  value=37>Russia</OPTION> <OPTION value=40>Serbia</OPTION> <OPTION 
  value=25>Slovakia</OPTION> <OPTION value=26>Slovenia</OPTION> <OPTION 
  value=9>Spain</OPTION> <OPTION value=10>Sweden</OPTION> <OPTION 
  value=28>Switzerland</OPTION> <OPTION value=47>Turkey</OPTION> <OPTION 
  value=44>Ukraine</OPTION> <OPTION value=11>United Kingdom</OPTION> <OPTION 
  value=105>USA</OPTION></SELECT> </DIV></DIV>
<DIV id=ContentPlaceHolder1_ucNewsFilterSIDE1_pnlsearchOuter 
onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ContentPlaceHolder1_ucNewsFilterSIDE1_capcha')"><INPUT 
style="WIDTH: 75%; COLOR: black" 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_txtSearch type=text 
name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$txtSearch>
<DIV class="button goBtn right  "><A 
id=ContentPlaceHolder1_ucNewsFilterSIDE1_btnFilter 
href="javascript:__doPostBack('ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$btnFilter','')">GO</A> 
<INPUT style="DISPLAY: none" id=ContentPlaceHolder1_ucNewsFilterSIDE1_capcha type=submit name=ctl00$ctl00$ContentPlaceHolder1$ucNewsFilterSIDE1$capcha> 
</DIV></DIV></DIV>
<DIV class=clear></DIV></DIV>
<DIV style="CLEAR: both"></DIV></DIV></DIV><!--this is needed _ can find cause without!-->
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox1_dv1></DIV>
<DIV id=ContentPlaceHolder1_uc_Jobs1_pnlControl>
<DIV style="CLEAR: both"></DIV>
<DIV id=jobBox class="box gradient ">
<DIV class=inner>
<DIV class=tab>
<H1><SPAN id=ContentPlaceHolder1_uc_Jobs1_r2011_100106>Featured 
Jobs</SPAN></H1></DIV>
<DIV class="date right"><A href="http://jobs.packagingeurope.com/"><SPAN 
id=ContentPlaceHolder1_uc_Jobs1_r2011_100107>See all jobs</SPAN></A> </DIV>
<DIV class="searchBox greyBG">
<DIV id=ContentPlaceHolder1_uc_Jobs1_pnlJobSearch 
onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ContentPlaceHolder1_uc_Jobs1_capcha')"><INPUT 
style="WIDTH: 180px" id=ContentPlaceHolder1_uc_Jobs1_txtJobSearch 
onfocus="this.value = '';" value="Search jobs" maxLength=75 type=text 
name=ctl00$ctl00$ContentPlaceHolder1$uc_Jobs1$txtJobSearch> 
<DIV class=" button goBtn right"><A id=ContentPlaceHolder1_uc_Jobs1_lbJobSearch 
href="javascript:__doPostBack('ctl00$ctl00$ContentPlaceHolder1$uc_Jobs1$lbJobSearch','')">GO</A><INPUT style="DISPLAY: none" id=ContentPlaceHolder1_uc_Jobs1_capcha type=submit name=ctl00$ctl00$ContentPlaceHolder1$uc_Jobs1$capcha></DIV></DIV></DIV>
<DIV id=ContentPlaceHolder1_uc_Jobs1_pnlJobList>
<DIV style="DISPLAY: none; VISIBILITY: hidden" class="jobOfDay gradient">
<H3 class="jobHeading marginTop10 bold"><SPAN style="FONT-WEIGHT: bold" 
id=ContentPlaceHolder1_uc_Jobs1_jodTitle></SPAN></H3>
<P><SPAN id=ContentPlaceHolder1_uc_Jobs1_jodLocation></SPAN></P>
<P class="redText negativeMargin"><SPAN 
id=ContentPlaceHolder1_uc_Jobs1_jodSalary></SPAN></P>
<P>&gt;<SPAN class="button right "><A 
id=ContentPlaceHolder1_uc_Jobs1_jodLink><SPAN 
id=ContentPlaceHolder1_uc_Jobs1_r2011_100109>Details</SPAN></A></SPAN></P>
<DIV class=clear></DIV></DIV>
<UL>
  <LI>
  <H3 class="jobHeading bold">Packaging Design and Innovation Manager - 
Food</H3>
  <P>United Kingdom, North West England</P>
  <P style="WIDTH: 190px" class="redText negativeMargin">£35000 - £45000 
  pa</P><SPAN class="button right "><A id=jodLink 
  href="http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=468824">Details</A></SPAN> 

  <DIV class=clear></DIV></LI>
  <LI>
  <H3 class="jobHeading bold">Senior Packaging Designer</H3>
  <P>United Kingdom, London &amp; South East</P>
  <P style="WIDTH: 190px" class="redText negativeMargin">£45000 - £45000 
  pa</P><SPAN class="button right "><A id=jodLink 
  href="http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=470205">Details</A></SPAN> 

  <DIV class=clear></DIV></LI>
  <LI>
  <H3 class="jobHeading bold">Packaging Project Manager</H3>
  <P>United Kingdom, London &amp; South East</P>
  <P style="WIDTH: 190px" class="redText negativeMargin">£33000 - £40000 
  pa</P><SPAN class="button right "><A id=jodLink 
  href="http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=521302">Details</A></SPAN> 

  <DIV class=clear></DIV></LI>
  <LI>
  <H3 class="jobHeading bold">Plant Manager – Belgium – Rigid Plastic 
  Packaging</H3>
  <P>Belgium, Various - Belgium</P>
  <P style="WIDTH: 190px" class="redText negativeMargin">£Competitive + 
  Performance Related Bonus</P><SPAN class="button right "><A id=jodLink 
  href="http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=463465">Details</A></SPAN> 

  <DIV class=clear></DIV></LI>
  <LI>
  <H3 class="jobHeading bold">Web / ASP Developer</H3>
  <P>United Kingdom, East England</P>
  <P style="WIDTH: 190px" class="redText negativeMargin">DOE</P><SPAN 
  class="button right "><A id=jodLink 
  href="http://jobs.packagingeurope.com/jobboard/cands/jobview.asp?v=534576">Details</A></SPAN> 

  <DIV class=clear></DIV></LI></UL></DIV>
<DIV class="extra blueBG"><A class=left 
href="http://jobs.packagingeurope.com/"><SPAN 
id=ContentPlaceHolder1_uc_Jobs1_r2011_100107b>See all jobs</SPAN></A><A 
class=right 
href="http://jobs.packagingeurope.com/jobboard/cands/searchcriteria.asp"><SPAN 
id=ContentPlaceHolder1_uc_Jobs1_r2011_100108>Search for jobs</SPAN></A> 
<DIV class=clear></DIV></DIV></DIV></DIV></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" 
id=ContentPlaceHolder1_AdBox2_dv1></DIV></DIV>
<DIV 
style="MARGIN-TOP: 0px; WIDTH: 150px; FLOAT: right; HEIGHT: 100%; MARGIN-LEFT: 20px" 
id=3COLright>
<DIV><!--sss-->
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox9_dv1><A 
href="http://www.packagingeurope.com/adclick.ashx?adlink=http://www.wenglor.com&amp;adlocation=NewsWenglor&amp;adtype=NewsWenglor"><IMG 
src="http://www.packagingeurope.com/Packaging-Europe-News/42010/AdvertAssets/152x152_Wenglor.jpg"></A> 
</DIV>
<DIV id=jobsNav>
<H3><SPAN id=ContentPlaceHolder1_SideNAV1_r2011_100019>Interact</SPAN></H3>
<UL>
  <LI><A id=ContentPlaceHolder1_SideNAV1_hlaboutus 
  href="http://www.packagingeurope.com/AboutUs.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100020>About us</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink1 
  href="http://www.packagingeurope.com/ContactUs.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100021>Contact us</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink2 
  href="mailto:Editor@packagingeurope.com"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100022>Submit news</SPAN></A></LI></UL>
<H3><SPAN id=ContentPlaceHolder1_SideNAV1_r2011_100023>News</SPAN></H3>
<UL>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink3 
  href="http://www.packagingeurope.com/NewsSearch.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100024>News search</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink4 
  href="http://www.packagingeurope.com/NewsSearch.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100025>Popular 
articles</SPAN></A></LI></UL>
<H3><SPAN id=ContentPlaceHolder1_SideNAV1_r2011_100027>Jobs</SPAN></H3>
<UL>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink6 
  href="http://jobs.packagingeurope.com/jobboard/cands/searchCriteria.asp"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100028>Search jobs</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink7 
  href="http://jobs.packagingeurope.com/jobboard/purchase/order1.asp?o=0"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100029>Recruiters</SPAN></A></LI></UL>
<H3><SPAN id=ContentPlaceHolder1_SideNAV1_r2011_100030>Market 
intelligence</SPAN></H3>
<UL>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink8 
  href="http://www.research-store.com/packagingeurope"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100031>Reports</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink14 
  href="http://www.packagingeurope.com/Packaging-Directories-and-guides.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100032>Directories &amp; 
  guides</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink9 
  href="http://www.packagingeurope.com/PackagingBuyersMI.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100033>Buyers database</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink10 
  href="http://www.packaging-manager.com/"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100034>Packaging manager</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink11 
  href="http://www.packagingeurope.com/NewsSearch.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100035>Articles</SPAN></A></LI></UL>
<H3><SPAN id=ContentPlaceHolder1_SideNAV1_r2011_100036>Magazine</SPAN></H3>
<UL>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink12 
  href="http://www.packagingeurope.com/Magazine"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100037>Latest edition</SPAN></A></LI>
  <LI><A id=ContentPlaceHolder1_SideNAV1_HyperLink13 
  href="http://www.packagingeurope.com/MagazineArchive.aspx"><SPAN 
  id=ContentPlaceHolder1_SideNAV1_r2011_100038>Back 
issues</SPAN></A></LI></UL></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" 
id=ContentPlaceHolder1_SideNAV1_AdBox1_dv1><BR>
<DIV 
style="BORDER-BOTTOM: #bad6e2 1px solid; BORDER-LEFT: #bad6e2 1px solid; WIDTH: 150px; BORDER-TOP: #bad6e2 1px solid; BORDER-RIGHT: #bad6e2 1px solid">
<OBJECT width=150 height=600>
   <embed src="ADVERTASSETS/priplakbanner.swf" 
type="application/x-shockwave-flash" width="150" height="600"></embed> 
</OBJECT></DIV></DIV>&nbsp;
<DIV id=sidebarAdvertisers>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox3_dv1></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox5_dv1></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox6_dv1></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" id=ContentPlaceHolder1_AdBox7_dv1></DIV>
<DIV style="Z-INDEX: 9999; WIDTH: 100%" 
id=ContentPlaceHolder1_AdBox8_dv1></DIV></DIV></DIV><!--sss--></DIV></DIV>
<DIV style="HEIGHT: 100%; OVERFLOW: hidden" id=3COLcenter>
<DIV 
style="PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; WIDTH: 96%; PADDING-RIGHT: 15px; FLOAT: right; HEIGHT: 100%; PADDING-TOP: 35px" 
id=3COLcenterContent>
<DIV id=newsStoryTextBox class="box   whiteBG marginBottom25 ">
<DIV class=inner>
<DIV class=tab>
<H1>news story</H1></DIV>
<DIV class=newsStoryTextHeading>
<H2 
style="LINE-HEIGHT: 18pt; MARGIN: 0px 0px 0.3em; COLOR: #01325d; FONT-SIZE: 16pt; FONT-WEIGHT: 100"><SPAN 
id=ContentPlaceHolder1_ChildContent1_lblNewsTitle>New product from APS: next 
generation of thermal inkjet printer apsolute</SPAN></H2></DIV><!--<div id="top" style="height:10px;" >
				<div style="float:left; margin-top:5px; color:White">
				    
		        </div>
		        <div style="float:right; margin-top:5px; color:White; margin-right:5px">
				    
			    </div>
			</div>-->
<UL class=postDataND>
  <LI class=author><IMG id=ContentPlaceHolder1_ChildContent1_imgPublished 
  src="http://www.packagingeurope.com/images/newsflags/eu_flag.png"> <SPAN 
  style="FONT-SIZE: 8pt" 
  id=ContentPlaceHolder1_ChildContent1_lblPublishedOn>21/07/2011 13:02:44</SPAN> 

  <DIV style="FLOAT: right"><A 
  id=ContentPlaceHolder1_ChildContent1_rptTranslations_hypTrans_0 
  href="http://www.packagingeurope.com/NewsDetails.aspx?nNewsID=42010&amp;switchlan=1" 
  target=_self><IMG alt="" 
  src="http://www.packagingeurope.com/IMAGESNEW/FLAGS/UK_flag.PNG"></A> <SPAN 
  id=ContentPlaceHolder1_ChildContent1_lblTranslations>Translations</SPAN> 
  </DIV></LI>
  <LI>
  <DIV style="FLOAT: right"><A style="FLOAT: right; TEXT-DECORATION: none" 
  id=ContentPlaceHolder1_ChildContent1_hypMailTo 
  href="mailto:?subject=News story from Packaging Europe&amp;body=A friend read this news story on Packaging Europe and thought it may be of interest to you. Please click this link to read the full story.   http://www.packagingeurope.com/NewsDetails.aspx?nNewsID=42010" 
  target=_blank><IMG style="PADDING-RIGHT: 5px" 
  id=ContentPlaceHolder1_ChildContent1_imgEmailToFriend 
  src="http://www.packagingeurope.com/ImagesNew/email_Icon.png"><SPAN 
  id=ContentPlaceHolder1_ChildContent1_lblEmailToFriend>Email to a 
  friend</SPAN></A> <BR><A style="FLOAT: right; TEXT-DECORATION: none" 
  id=ContentPlaceHolder1_ChildContent1_hypPrint 
  href="http://www.packagingeurope.com/PrintFriendly.aspx?nNewsID=42010" 
  target=_blank><IMG style="PADDING-RIGHT: 5px" 
  id=ContentPlaceHolder1_ChildContent1_imgPrinter 
  src="http://www.packagingeurope.com/ImagesNew/print_Icon.png"><SPAN 
  id=ContentPlaceHolder1_ChildContent1_lblPrint>Print this page</SPAN></A> 
  </DIV></LI></UL>
<DIV class="newsStoryTextBodyCopy whiteBG">
<P><SPAN 
style="FONT: bold 13pt/16pt Arial, Helvetica, sans-serif; COLOR: #666666"><SPAN 
id=ContentPlaceHolder1_ChildContent1_lblpara1>Thanks to its multiple head 
concept and the big choice of inks apsolute can fulfill with only one controller 
the most different marking needs offering a solution for almost any customer and 
industrial application. Printing with specifically designed fast-drying inks, 
apsolute permits printing on porous (carton, paper…) and non-porous substrates 
(coated, varnished cardboard, aluminium, plastic films…) directly onto the 
product or its primary</SPAN> </SPAN><SPAN 
id=ContentPlaceHolder1_ChildContent1_lblLongDescription><BR>and secondary 
packaging.<BR><BR>The new apsolute generation, which was presented for the first 
time at Interpack 2011, is distinguished by advanced functions and a simplified 
operation. It provides many software features which implement current market 
requirements and offer customers more comfort and safety such as an automatic 
ink type recognition, an accurate&nbsp;<BR>measurement of ink level, advanced 
control and data transfer functions etc.<BR><BR>The new apsolute printer is 
available with a new compact printhead for space saving installations on the 
production line or in the system. The new printhead provides advanced 
communication features which almost exclude operational errors by the user. The 
ink portfolio for this printer has been increased by five new inks.<BR><BR>Your 
benefits at a glance:<BR><BR>Thermal Inkjet Technology for porous and non porous 
surfaces<BR><BR>• fast drying inks for plastics, metal, coated and varnished 
carton...<BR>• drying time &lt; 2 sec<BR>• good running and adhesion 
characteristics on non-porous and porous surfaces<BR><BR>One controller - up to 
4 different applications<BR><BR>• simultaneous printing on up to 4 production 
lines<BR>• different messages, inks, production speed...<BR><BR>No repairs, zero 
maintenance<BR><BR>• ink cartridge system without wearing parts<BR>• no 
downtime<BR>• no repair costs<BR><BR>Clean and easy operation<BR><BR>• only 
environmentally responsable inks<BR>• no need for disposal<BR>• ink cartridge 
change in a few seconds<BR><BR>Low running costs<BR><BR>• uses only ink, no 
solvent<BR>• no repair or part costs<BR><BR>Unlimited print 
possibilities<BR><BR>• a superior print quality<BR>• logos, 1 and 2D barcodes, 
special characters<BR>• resolution up to 600 dpi<BR>• print height from 0.28 bis 
50.8 mm<BR>• printing speed up to 300 m/min<BR><BR>More information:&nbsp;<A 
href="http://www.aps-direct.de/" 
target=_self>http://www.aps-direct.de/</A><BR></SPAN></P></DIV>
<DIV class=clear></DIV>
<DIV class=relatedNewsStories>
<H3>Related news stories</H3>
<UL>
  <LI><A style="TEXT-DECORATION: none" 
  id=ContentPlaceHolder1_ChildContent1_lnkReadMoreLikeThis 
  href="http://www.packagingeurope.com/default.aspx">Click here for today’s news 
  and to browse for similar stories</A></LI></UL></DIV></DIV></DIV>
<DIV id=dataBox class="box gradient">
<DIV class=inner>
<DIV class=tabLong>
<H1><SPAN id=ContentPlaceHolder1_ChildContent1_Uc_NewsCATPush2_lblHead>Related 
News</SPAN> </H1></DIV><SPAN 
id=ContentPlaceHolder1_ChildContent1_Uc_NewsCATPush2_lblTemp>
<H3>Packaging Europe Has other stories related to the news stroy you are 
viewing:</H3>
<DIV 
style="PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; PADDING-TOP: 5px" 
id=dataBox class="boxNoHover whiteBG marginBottom25"><BR><SPAN 
style="COLOR: red">11037</SPAN> Stories Relating to the 'Design &amp; Branding' 
Department <BR>|
<CENTER><A 
href="http://www.packagingeurope.com/NewsSearch.aspx?srchstr=&amp;dept=5">View 
Now</A></CENTER><BR>(read 3129309 
times)<BR><BR></DIV><BR></SPAN></DIV></DIV></DIV></DIV>
<DIV class=clear></DIV></DIV>
<DIV style="CLEAR: both">
<DIV id=topBar>
<DIV id=topNav>
<UL>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_TopNav1_lblmnuHome 
  href="http://www.packagingeurope.com/Default.aspx">Home</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_TopNav1_lblmnuAboutUs 
  href="http://www.packagingeurope.com/AboutUs.aspx">About Us</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_TopNav1_lblmnuContactUs 
  href="http://www.packagingeurope.com/ContactUs.aspx">Contact Us</A> </LI>
  <LI><A 
  style="DISPLAY: inline-block; HEIGHT: 15px; COLOR: white; FONT-SIZE: 9pt" 
  id=Uc_TopNav1_hypMnuMediaPack 
  href="http://www.packagingeurope.com/mediapack.pdf" target=_blank>Media 
  Pack</A> </LI></UL></DIV></DIV></DIV></DIV></FORM><!-- Yahoo! Web Analytics - All rights reserved -->
<SCRIPT type=text/javascript src="http://d.yimg.com/mi/ywa.js"></SCRIPT>

<SCRIPT type=text/javascript>
        /*globals YWA*/
        var YWATracker = YWA.getTracker("1000857785262");
        //YWATracker.setDocumentName("");
        //YWATracker.setDocumentGroup("");
        YWATracker.submit();
    </SCRIPT>
<NOSCRIPT>
<DIV><IMG alt="" 
src="http://a.analytics.yahoo.com/p.pl?a=1000857785262&amp;js=no" width=1 
height=1></DIV></NOSCRIPT></DIV></BODY></HTML>

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/yui/build/yahoo-dom-event/yahoo-dom-event.js

/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
if(typeof YAHOO=3D=3D"undefined"||!YAHOO){var =
YAHOO=3D{};}YAHOO.namespace=3Dfunction(){var =
A=3Darguments,E=3Dnull,C,B,D;for(C=3D0;C<A.length;C=3DC+1){D=3D(""+A[C]).=
split(".");E=3DYAHOO;for(B=3D(D[0]=3D=3D"YAHOO")?1:0;B<D.length;B=3DB+1){=
E[D[B]]=3DE[D[B]]||{};E=3DE[D[B]];}}return =
E;};YAHOO.log=3Dfunction(D,A,C){var =
B=3DYAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return =
false;}};YAHOO.register=3Dfunction(A,E,D){var =
I=3DYAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]=3D{versions:[],builds:[]};=
}B=3DI[A];H=3DD.version;G=3DD.build;F=3DYAHOO.env.listeners;B.name=3DA;B.=
version=3DH;B.build=3DG;B.versions.push(H);B.builds.push(G);B.mainClass=3D=
E;for(C=3D0;C<F.length;C=3DC+1){F[C](B);}if(E){E.VERSION=3DH;E.BUILD=3DG;=
}else{YAHOO.log("mainClass is undefined for module =
"+A,"warn");}};YAHOO.env=3DYAHOO.env||{modules:[],listeners:[]};YAHOO.env=
.getVersion=3Dfunction(A){return =
YAHOO.env.modules[A]||null;};YAHOO.env.ua=3Dfunction(){var =
C=3D{ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:0},B=3Dnavigato=
r.userAgent,A;if((/KHTML/).test(B)){C.webkit=3D1;}A=3DB.match(/AppleWebKi=
t\/([^\s]*)/);if(A&&A[1]){C.webkit=3DparseFloat(A[1]);if(/ =
Mobile\//.test(B)){C.mobile=3D"Apple";}else{A=3DB.match(/NokiaN[^\/]*/);i=
f(A){C.mobile=3DA[0];}}A=3DB.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=3DA[=
0];}}if(!C.webkit){A=3DB.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=
=3DparseFloat(A[1]);A=3DB.match(/Opera =
Mini[^;]*/);if(A){C.mobile=3DA[0];}}else{A=3DB.match(/MSIE\s([^;]*)/);if(=
A&&A[1]){C.ie=3DparseFloat(A[1]);}else{A=3DB.match(/Gecko\/([^\s]*)/);if(=
A){C.gecko=3D1;A=3DB.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=3DparseFl=
oat(A[1]);}}}}}A=3DB.match(/Caja\/([^\s]*)/);if(A&&A[1]){C.caja=3DparseFl=
oat(A[1]);}return =
C;}();(function(){YAHOO.namespace("util","widget","example");if("undefine=
d"!=3D=3Dtypeof YAHOO_config){var =
B=3DYAHOO_config.listener,A=3DYAHOO.env.listeners,D=3Dtrue,C;if(B){for(C=3D=
0;C<A.length;C=3DC+1){if(A[C]=3D=3DB){D=3Dfalse;break;}}if(D){A.push(B);}=
}}})();YAHOO.lang=3DYAHOO.lang||{};(function(){var =
B=3DYAHOO.lang,F=3D"[object Array]",C=3D"[object =
Function]",A=3DObject.prototype,E=3D["toString","valueOf"],D=3D{isArray:f=
unction(G){return =
A.toString.apply(G)=3D=3D=3DF;},isBoolean:function(G){return typeof =
G=3D=3D=3D"boolean";},isFunction:function(G){return =
A.toString.apply(G)=3D=3D=3DC;},isNull:function(G){return =
G=3D=3D=3Dnull;},isNumber:function(G){return typeof =
G=3D=3D=3D"number"&&isFinite(G);},isObject:function(G){return(G&&(typeof =
G=3D=3D=3D"object"||B.isFunction(G)))||false;},isString:function(G){retur=
n typeof G=3D=3D=3D"string";},isUndefined:function(G){return typeof =
G=3D=3D=3D"undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(I,H){var =
G,K,J;for(G=3D0;G<E.length;G=3DG+1){K=3DE[G];J=3DH[K];if(B.isFunction(J)&=
&J!=3DA[K]){I[K]=3DJ;}}}:function(){},extend:function(J,K,I){if(!K||!J){t=
hrow new Error("extend failed, please check that "+"all dependencies are =
included.");}var =
H=3Dfunction(){},G;H.prototype=3DK.prototype;J.prototype=3Dnew =
H();J.prototype.constructor=3DJ;J.superclass=3DK.prototype;if(K.prototype=
.constructor=3D=3DA.constructor){K.prototype.constructor=3DK;}if(I){for(G=
 in =
I){if(B.hasOwnProperty(I,G)){J.prototype[G]=3DI[G];}}B._IEEnumFix(J.proto=
type,I);}},augmentObject:function(K,J){if(!J||!K){throw new =
Error("Absorb failed, verify dependencies.");}var =
G=3Darguments,I,L,H=3DG[2];if(H&&H!=3D=3Dtrue){for(I=3D2;I<G.length;I=3DI=
+1){K[G[I]]=3DJ[G[I]];}}else{for(L in J){if(H||!(L in =
K)){K[L]=3DJ[L];}}B._IEEnumFix(K,J);}},augmentProto:function(J,I){if(!I||=
!J){throw new Error("Augment failed, verify dependencies.");}var =
G=3D[J.prototype,I.prototype],H;for(H=3D2;H<arguments.length;H=3DH+1){G.p=
ush(arguments[H]);}B.augmentObject.apply(this,G);},dump:function(G,L){var=
 I,K,N=3D[],O=3D"{...}",H=3D"f(){...}",M=3D", ",J=3D" =3D> =
";if(!B.isObject(G)){return G+"";}else{if(G instanceof Date||("nodeType" =
in G&&"tagName" in G)){return G;}else{if(B.isFunction(G)){return =
H;}}}L=3D(B.isNumber(L))?L:3;if(B.isArray(G)){N.push("[");for(I=3D0,K=3DG=
.length;I<K;I=3DI+1){if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O=
);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}els=
e{N.push("{");for(I in =
G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push((L>0=
)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.po=
p();}N.push("}");}return N.join("");},substitute:function(V,H,O){var =
L,K,J,R,S,U,Q=3D[],I,M=3D"dump",P=3D" =
",G=3D"{",T=3D"}",N;for(;;){L=3DV.lastIndexOf(G);if(L<0){break;}K=3DV.ind=
exOf(T,L);if(L+1>=3DK){break;}I=3DV.substring(L+1,K);R=3DI;U=3Dnull;J=3DR=
.indexOf(P);if(J>-1){U=3DR.substring(J+1);R=3DR.substring(0,J);}S=3DH[R];=
if(O){S=3DO(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=3DB.dump(S,parse=
Int(U,10));}else{U=3DU||"";N=3DU.indexOf(M);if(N>-1){U=3DU.substring(4);}=
if(S.toString=3D=3D=3DA.toString||N>-1){S=3DB.dump(S,parseInt(U,10));}els=
e{S=3DS.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S=3D"~-"+Q.=
length+"-~";Q[Q.length]=3DI;}}V=3DV.substring(0,L)+S+V.substring(K+1);}fo=
r(L=3DQ.length-1;L>=3D0;L=3DL-1){V=3DV.replace(new =
RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return =
V;},trim:function(G){try{return =
G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var =
J=3D{},H=3Darguments,G=3DH.length,I;for(I=3D0;I<G;I=3DI+1){B.augmentObjec=
t(J,H[I],true);}return =
J;},later:function(N,H,O,J,K){N=3DN||0;H=3DH||{};var =
I=3DO,M=3DJ,L,G;if(B.isString(O)){I=3DH[O];}if(!I){throw new =
TypeError("method =
undefined");}if(!B.isArray(M)){M=3D[J];}L=3Dfunction(){I.apply(H,M);};G=3D=
(K)?setInterval(L,N):setTimeout(L,N);return{interval:K,cancel:function(){=
if(this.interval){clearInterval(G);}else{clearTimeout(G);}}};},isValue:fu=
nction(G){return(B.isObject(G)||B.isString(G)||B.isNumber(G)||B.isBoolean=
(G));}};B.hasOwnProperty=3D(A.hasOwnProperty)?function(G,H){return =
G&&G.hasOwnProperty(H);}:function(G,H){return =
!B.isUndefined(G[H])&&G.constructor.prototype[H]!=3D=3DG[H];};D.augmentOb=
ject(B,D,true);YAHOO.util.Lang=3DB;B.augment=3DB.augmentProto;YAHOO.augme=
nt=3DB.augmentProto;YAHOO.extend=3DB.extend;})();YAHOO.register("yahoo",Y=
AHOO,{version:"2.7.0",build:"1799"});(function(){YAHOO.env._id_counter=3D=
YAHOO.env._id_counter||0;var =
E=3DYAHOO.util,L=3DYAHOO.lang,m=3DYAHOO.env.ua,A=3DYAHOO.lang.trim,d=3D{}=
,h=3D{},N=3D/^t(?:able|d|h)$/i,X=3D/color$/i,K=3Dwindow.document,W=3DK.do=
cumentElement,e=3D"ownerDocument",n=3D"defaultView",v=3D"documentElement"=
,t=3D"compatMode",b=3D"offsetLeft",P=3D"offsetTop",u=3D"offsetParent",Z=3D=
"parentNode",l=3D"nodeType",C=3D"tagName",O=3D"scrollLeft",i=3D"scrollTop=
",Q=3D"getBoundingClientRect",w=3D"getComputedStyle",a=3D"currentStyle",M=
=3D"CSS1Compat",c=3D"BackCompat",g=3D"class",F=3D"className",J=3D"",B=3D"=
 ",s=3D"(?:^|\\s)",k=3D"(?=3D =
|$)",U=3D"g",p=3D"position",f=3D"fixed",V=3D"relative",j=3D"left",o=3D"to=
p",r=3D"medium",q=3D"borderLeftWidth",R=3D"borderTopWidth",D=3Dm.opera,I=3D=
m.webkit,H=3Dm.gecko,T=3Dm.ie;E.Dom=3D{CUSTOM_ATTRIBUTES:(!W.hasAttribute=
)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},get:functio=
n(y){var AA,Y,z,x,G;if(y){if(y[l]||y.item){return y;}if(typeof =
y=3D=3D=3D"string"){AA=3Dy;y=3DK.getElementById(y);if(y&&y.id=3D=3D=3DAA)=
{return =
y;}else{if(y&&K.all){y=3Dnull;Y=3DK.all[AA];for(x=3D0,G=3DY.length;x<G;++=
x){if(Y[x].id=3D=3D=3DAA){return Y[x];}}}}return =
y;}if(y.DOM_EVENTS){y=3Dy.get("element");}if("length" in =
y){z=3D[];for(x=3D0,G=3Dy.length;x<G;++x){z[z.length]=3DE.Dom.get(y[x]);}=
return z;}return y;}return =
null;},getComputedStyle:function(G,Y){if(window[w]){return =
G[e][n][w](G,null)[Y];}else{if(G[a]){return =
E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return =
E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){ret=
urn =
function(G,y){y=3D(y=3D=3D=3D"float")?y=3D"cssFloat":E.Dom._toCamel(y);va=
r x=3DG.style[y],Y;if(!x){Y=3DG[e][n][w](G,null);if(Y){x=3DY[y];}}return =
x;};}else{if(W[a]){return function(G,y){var =
x;switch(y){case"opacity":x=3D100;try{x=3DG.filters["DXImageTransform.Mic=
rosoft.Alpha"].opacity;}catch(z){try{x=3DG.filters("alpha").opacity;}catc=
h(Y){}}return =
x/100;case"float":y=3D"styleFloat";default:y=3DE.Dom._toCamel(y);x=3DG[a]=
?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.D=
om.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){r=
eturn function(Y,G){var =
x=3DE.Dom._toCamel(G.prop),y=3DG.val;if(Y){switch(x){case"opacity":if(L.i=
sString(Y.style.filter)){Y.style.filter=3D"alpha(opacity=3D"+y*100+")";if=
(!Y[a]||!Y[a].hasLayout){Y.style.zoom=3D1;}}break;case"float":x=3D"styleF=
loat";default:Y.style[x]=3Dy;}}else{}};}else{return function(Y,G){var =
x=3DE.Dom._toCamel(G.prop),y=3DG.val;if(Y){if(x=3D=3D"float"){x=3D"cssFlo=
at";}Y.style[x]=3Dy;}else{}};}}(),getXY:function(G){return =
E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getS=
tyle(G,"display")!=3D=3D"none"&&E.Dom._inDoc(G));},_getXY:function(){if(K=
[v][Q]){return function(y){var =
z,Y,AA,AF,AE,AD,AC,G,x,AB=3DMath.floor,AG=3Dfalse;if(E.Dom._canPosition(y=
)){AA=3Dy[Q]();AF=3Dy[e];z=3DE.Dom.getDocumentScrollLeft(AF);Y=3DE.Dom.ge=
tDocumentScrollTop(AF);AG=3D[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=3D2;AD=
=3D2;AC=3DAF[t];G=3DS(AF[v],q);x=3DS(AF[v],R);if(m.ie=3D=3D=3D6){if(AC!=3D=
=3Dc){AE=3D0;AD=3D0;}}if((AC=3D=3Dc)){if(G!=3D=3Dr){AE=3DparseInt(G,10);}=
if(x!=3D=3Dr){AD=3DparseInt(x,10);}}AG[0]-=3DAE;AG[1]-=3DAD;}if((Y||z)){A=
G[0]+=3Dz;AG[1]+=3DY;}AG[0]=3DAB(AG[0]);AG[1]=3DAB(AG[1]);}else{}return =
AG;};}else{return function(y){var =
x,Y,AA,AB,AC,z=3Dfalse,G=3Dy;if(E.Dom._canPosition(y)){z=3D[y[b],y[P]];x=3D=
E.Dom.getDocumentScrollLeft(y[e]);Y=3DE.Dom.getDocumentScrollTop(y[e]);AC=
=3D((H||m.webkit>519)?true:false);while((G=3DG[u])){z[0]+=3DG[b];z[1]+=3D=
G[P];if(AC){z=3DE.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!=3D=3Df=
){G=3Dy;while((G=3DG[Z])&&G[C]){AA=3DG[i];AB=3DG[O];if(H&&(E.Dom._getStyl=
e(G,"overflow")!=3D=3D"visible")){z=3DE.Dom._calcBorders(G,z);}if(AA||AB)=
{z[0]-=3DAB;z[1]-=3DAA;}}z[0]+=3Dx;z[1]+=3DY;}else{if(D){z[0]-=3Dx;z[1]-=3D=
Y;}else{if(I||H){z[0]+=3Dx;z[1]+=3DY;}}}z[0]=3DMath.floor(z[0]);z[1]=3DMa=
th.floor(z[1]);}else{}return z;};}}(),getX:function(G){var =
Y=3Dfunction(x){return E.Dom.getXY(x)[0];};return =
E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var =
Y=3Dfunction(x){return E.Dom.getXY(x)[1];};return =
E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._=
setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var =
AA=3DE.Dom._getStyle(G,p),y=3DE.Dom.setStyle,AD=3Dz.pos,Y=3Dz.noRetry,AB=3D=
[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle=
(G,o),10)],AC,x;if(AA=3D=3D"static"){AA=3DV;y(G,p,AA);}AC=3DE.Dom._getXY(=
G);if(!AD||AC=3D=3D=3Dfalse){return =
false;}if(isNaN(AB[0])){AB[0]=3D(AA=3D=3DV)?0:G[b];}if(isNaN(AB[1])){AB[1=
]=3D(AA=3D=3DV)?0:G[P];}if(AD[0]!=3D=3Dnull){y(G,j,AD[0]-AC[0]+AB[0]+"px"=
);}if(AD[1]!=3D=3Dnull){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=3DE.Dom._=
getXY(G);if((AD[0]!=3D=3Dnull&&x[0]!=3DAD[0])||(AD[1]!=3D=3Dnull&&x[1]!=3D=
AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Do=
m.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getReg=
ion:function(G){var Y=3Dfunction(x){var =
y=3Dfalse;if(E.Dom._canPosition(x)){y=3DE.Region.getRegion(x);}else{}retu=
rn y;};return =
E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return =
E.Dom.getViewportWidth();},getClientHeight:function(){return =
E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x=
,AD){AB=3DL.trim(AB);AF=3DAF||"*";AC=3D(AC)?E.Dom.get(AC):null||K;if(!AC)=
{return[];}var =
Y=3D[],G=3DAC.getElementsByTagName(AF),z=3DE.Dom.hasClass;for(var =
y=3D0,AA=3DG.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=3DG[y];}}if(AE){=
E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return =
E.Dom.batch(Y,E.Dom._hasClass,G);},_hasClass:function(x,Y){var =
G=3Dfalse,y;if(x&&Y){y=3DE.Dom.getAttribute(x,F)||J;if(Y.exec){G=3DY.test=
(y);}else{G=3DY&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return =
G;},addClass:function(Y,G){return =
E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var =
G=3Dfalse,y;if(x&&Y){y=3DE.Dom.getAttribute(x,F)||J;if(!E.Dom._hasClass(x=
,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=3Dtrue;}}else{}return =
G;},removeClass:function(Y,G){return =
E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var =
Y=3Dfalse,AA,z,G;if(y&&x){AA=3DE.Dom.getAttribute(y,F)||J;E.Dom.setAttrib=
ute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=3DE.Dom.getAttribute(y,F=
);if(AA!=3D=3Dz){E.Dom.setAttribute(y,F,A(z));Y=3Dtrue;if(E.Dom.getAttrib=
ute(y,F)=3D=3D=3D""){G=3D(y.hasAttribute&&y.hasAttribute(g))?g:F;y.remove=
Attribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return =
E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});
},_replaceClass:function(y,x){var =
Y,AB,AA,G=3Dfalse,z;if(y&&x){AB=3Dx.from;AA=3Dx.to;if(!AA){G=3Dfalse;}els=
e{if(!AB){G=3DE.Dom._addClass(y,x.to);}else{if(AB!=3D=3DAA){z=3DE.Dom.get=
Attribute(y,F)||J;Y=3D(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(=
E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.j=
oin(J)));G=3Dtrue;}}}}else{}return =
G;},generateId:function(G,x){x=3Dx||"yui-gen";var =
Y=3Dfunction(y){if(y&&y.id){return y.id;}var =
z=3Dx+YAHOO.env._id_counter++;if(y){if(y[e].getElementById(z)){return =
E.Dom.generateId(y,z+x);}y.id=3Dz;}return z;};return =
E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:functi=
on(Y,x){Y=3DE.Dom.get(Y);x=3DE.Dom.get(x);var =
G=3Dfalse;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!=3D=3Dx){G=3DY.contai=
ns(x);}else{if(Y.compareDocumentPosition){G=3D!!(Y.compareDocumentPositio=
n(x)&16);}}}else{}return G;},inDocument:function(G,Y){return =
E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var =
G=3Dfalse;if(Y&&Y[C]){x=3Dx||Y[e];G=3DE.Dom.isAncestor(x[v],Y);}else{}ret=
urn =
G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=3DAF||"*";AB=3D(AB)?E.D=
om.get(AB):null||K;if(!AB){return[];}var =
x=3D[],G=3DAB.getElementsByTagName(AF);for(var =
z=3D0,AA=3DG.length;z<AA;++z){if(Y(G[z])){if(AE){x=3DG[z];break;}else{x[x=
.length]=3DG[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return =
x;},getElementBy:function(x,G,Y){return =
E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z=
){var =
y=3D[],Y=3D(z)?AA:window;x=3D(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB)=
{if(x[C]||x.length=3D=3D=3Dundefined){return AB.call(Y,x,AA);}for(var =
G=3D0;G<x.length;++G){y[y.length]=3DAB.call(Y,x[G],AA);}}else{return =
false;}return y;},getDocumentHeight:function(){var =
Y=3D(K[t]!=3DM||I)?K.body.scrollHeight:W.scrollHeight,G=3DMath.max(Y,E.Do=
m.getViewportHeight());return G;},getDocumentWidth:function(){var =
Y=3D(K[t]!=3DM||I)?K.body.scrollWidth:W.scrollWidth,G=3DMath.max(Y,E.Dom.=
getViewportWidth());return G;},getViewportHeight:function(){var =
G=3Dself.innerHeight,Y=3DK[t];if((Y||T)&&!D){G=3D(Y=3D=3DM)?W.clientHeigh=
t:K.body.clientHeight;}return G;},getViewportWidth:function(){var =
G=3Dself.innerWidth,Y=3DK[t];if(Y||T){G=3D(Y=3D=3DM)?W.clientWidth:K.body=
.clientWidth;}return =
G;},getAncestorBy:function(G,Y){while((G=3DG[Z])){if(E.Dom._testElement(G=
,Y)){return G;}}return =
null;},getAncestorByClassName:function(Y,G){Y=3DE.Dom.get(Y);if(!Y){retur=
n null;}var x=3Dfunction(y){return E.Dom.hasClass(y,G);};return =
E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=3DE.Dom.g=
et(Y);if(!Y){return null;}var x=3Dfunction(y){return =
y[C]&&y[C].toUpperCase()=3D=3DG.toUpperCase();};return =
E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=3D=
G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return =
null;},getPreviousSibling:function(G){G=3DE.Dom.get(G);if(!G){return =
null;}return =
E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=
=3DG.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return =
null;},getNextSibling:function(G){G=3DE.Dom.get(G);if(!G){return =
null;}return =
E.Dom.getNextSiblingBy(G);},getFirstChildBy:function(G,x){var =
Y=3D(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return =
Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=
=3DE.Dom.get(G);if(!G){return null;}return =
E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return =
null;}var =
Y=3D(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return =
Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=
=3DE.Dom.get(G);return =
E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var =
x=3DE.Dom.getFirstChildBy(Y,y),G=3Dx?[x]:[];E.Dom.getNextSiblingBy(x,func=
tion(z){if(!y||y(z)){G[G.length]=3Dz;}return false;});return =
G;},getChildren:function(G){G=3DE.Dom.get(G);if(!G){}return =
E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=3DG||K;retur=
n =
Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:functi=
on(G){G=3DG||K;return =
Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=3D=
E.Dom.get(Y);G=3DE.Dom.get(G);if(!Y||!G||!G[Z]){return null;}return =
G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=3DE.Dom.get(Y);G=3DE=
.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return =
G[Z].insertBefore(Y,G.nextSibling);}else{return =
G[Z].appendChild(Y);}},getClientRegion:function(){var =
x=3DE.Dom.getDocumentScrollTop(),Y=3DE.Dom.getDocumentScrollLeft(),y=3DE.=
Dom.getViewportWidth()+Y,G=3DE.Dom.getViewportHeight()+x;return new =
E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){G=3DE.Dom.CUSTOM_ATTRIBU=
TES[G]||G;Y.setAttribute(G,x);},getAttribute:function(Y,G){G=3DE.Dom.CUST=
OM_ATTRIBUTES[G]||G;return Y.getAttribute(G);},_toCamel:function(Y){var =
x=3Dd;function G(y,z){return z.toUpperCase();}return =
x[Y]||(x[Y]=3DY.indexOf("-")=3D=3D=3D-1?Y:Y.replace(/-([a-z])/gi,G));},_g=
etClassRegex:function(Y){var =
G;if(Y!=3D=3Dundefined){if(Y.exec){G=3DY;}else{G=3Dh[Y];if(!G){Y=3DY.repl=
ace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=3Dh[Y]=3Dnew =
RegExp(s+Y+k,U);}}}return =
G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\=
?\|\[\]\{\}])/g},_testElement:function(G,Y){return =
G&&G[l]=3D=3D1&&(!Y||Y(G));},_calcBorders:function(x,y){var =
Y=3DparseInt(E.Dom[w](x,R),10)||0,G=3DparseInt(E.Dom[w](x,q),10)||0;if(H)=
{if(N.test(x[C])){Y=3D0;G=3D0;}}y[0]+=3DG;y[1]+=3DY;return y;}};var =
S=3DE.Dom[w];if(m.opera){E.Dom[w]=3Dfunction(Y,G){var =
x=3DS(Y,G);if(X.test(G)){x=3DE.Dom.Color.toRGB(x);}return =
x;};}if(m.webkit){E.Dom[w]=3Dfunction(Y,G){var =
x=3DS(Y,G);if(x=3D=3D=3D"rgba(0, 0, 0, 0)"){x=3D"transparent";}return =
x;};}})();YAHOO.util.Region=3Dfunction(C,D,A,B){this.top=3DC;this.y=3DC;t=
his[1]=3DC;this.right=3DD;this.bottom=3DA;this.left=3DB;this.x=3DB;this[0=
]=3DB;this.width=3Dthis.right-this.left;this.height=3Dthis.bottom-this.to=
p;};YAHOO.util.Region.prototype.contains=3Dfunction(A){return(A.left>=3Dt=
his.left&&A.right<=3Dthis.right&&A.top>=3Dthis.top&&A.bottom<=3Dthis.bott=
om);};YAHOO.util.Region.prototype.getArea=3Dfunction(){return((this.botto=
m-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.interse=
ct=3Dfunction(E){var =
C=3DMath.max(this.top,E.top),D=3DMath.min(this.right,E.right),A=3DMath.mi=
n(this.bottom,E.bottom),B=3DMath.max(this.left,E.left);if(A>=3DC&&D>=3DB)=
{return new YAHOO.util.Region(C,D,A,B);
}else{return null;}};YAHOO.util.Region.prototype.union=3Dfunction(E){var =
C=3DMath.min(this.top,E.top),D=3DMath.max(this.right,E.right),A=3DMath.ma=
x(this.bottom,E.bottom),B=3DMath.min(this.left,E.left);return new =
YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=3Dfunct=
ion(){return("Region {"+"top: "+this.top+", right: "+this.right+", =
bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", =
width: "+this.width+"}");};YAHOO.util.Region.getRegion=3Dfunction(D){var =
F=3DYAHOO.util.Dom.getXY(D),C=3DF[1],E=3DF[0]+D.offsetWidth,A=3DF[1]+D.of=
fsetHeight,B=3DF[0];return new =
YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=3Dfunction(A,B){if(YAHOO.la=
ng.isArray(A)){B=3DA[1];A=3DA[0];}YAHOO.util.Point.superclass.constructor=
.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(f=
unction(){var =
B=3DYAHOO.util,A=3D"clientTop",F=3D"clientLeft",J=3D"parentNode",K=3D"rig=
ht",W=3D"hasLayout",I=3D"px",U=3D"opacity",L=3D"auto",D=3D"borderLeftWidt=
h",G=3D"borderTopWidth",P=3D"borderRightWidth",V=3D"borderBottomWidth",S=3D=
"visible",Q=3D"transparent",N=3D"height",E=3D"width",H=3D"style",T=3D"cur=
rentStyle",R=3D/^width|height$/,O=3D/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|v=
m|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M=3D{get:function(X,Z){v=
ar =
Y=3D"",a=3DX[T][Z];if(Z=3D=3D=3DU){Y=3DB.Dom.getStyle(X,U);}else{if(!a||(=
a.indexOf&&a.indexOf(I)>-1)){Y=3Da;}else{if(B.Dom.IE_COMPUTED[Z]){Y=3DB.D=
om.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=3DB.Dom.IE.ComputedStyle.get=
Pixel(X,Z);}else{Y=3Da;}}}}return Y;},getOffset:function(Z,e){var =
b=3DZ[T][e],X=3De.charAt(0).toUpperCase()+e.substr(1),c=3D"offset"+X,Y=3D=
"pixel"+X,a=3D"",d;if(b=3D=3DL){d=3DZ[c];if(d=3D=3D=3Dundefined){a=3D0;}a=
=3Dd;if(R.test(e)){Z[H][e]=3Dd;if(Z[c]>d){a=3Dd-(Z[c]-d);}Z[H][e]=3DL;}}e=
lse{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=3Db;}a=3DZ[H][Y];}return =
a+I;},getBorderWidth:function(X,Z){var =
Y=3Dnull;if(!X[T][W]){X[H].zoom=3D1;}switch(Z){case =
G:Y=3DX[A];break;case =
V:Y=3DX.offsetHeight-X.clientHeight-X[A];break;case =
D:Y=3DX[F];break;case =
P:Y=3DX.offsetWidth-X.clientWidth-X[F];break;}return =
Y+I;},getPixel:function(Y,X){var =
a=3Dnull,b=3DY[T][K],Z=3DY[T][X];Y[H][K]=3DZ;a=3DY[H].pixelRight;Y[H][K]=3D=
b;return a+I;},getMargin:function(Y,X){var =
Z;if(Y[T][X]=3D=3DL){Z=3D0+I;}else{Z=3DB.Dom.IE.ComputedStyle.getPixel(Y,=
X);}return Z;},getVisibility:function(Y,X){var =
Z;while((Z=3DY[T])&&Z[X]=3D=3D"inherit"){Y=3DY[J];}return(Z)?Z[X]:S;},get=
Color:function(Y,X){return =
B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var =
Z=3DY[T],a=3DZ[X]||Z.color;return =
B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C=3D{};C.top=3DC.right=3DC.bot=
tom=3DC.left=3DC[E]=3DC[N]=3DM.getOffset;C.color=3DM.getColor;C[G]=3DC[P]=
=3DC[V]=3DC[D]=3DM.getBorderWidth;C.marginTop=3DC.marginRight=3DC.marginB=
ottom=3DC.marginLeft=3DM.getMargin;C.visibility=3DM.getVisibility;C.borde=
rColor=3DC.borderTopColor=3DC.borderRightColor=3DC.borderBottomColor=3DC.=
borderLeftColor=3DM.getBorderColor;B.Dom.IE_COMPUTED=3DC;B.Dom.IE_Compute=
dStyle=3DM;})();(function(){var =
C=3D"toString",A=3DparseInt,B=3DRegExp,D=3DYAHOO.util;D.Dom.Color=3D{KEYW=
ORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"80000=
0",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",oliv=
e:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"=
},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([=
0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:fun=
ction(E){if(!D.Dom.Color.re_RGB.test(E)){E=3DD.Dom.Color.toHex(E);}if(D.D=
om.Color.re_hex.exec(E)){E=3D"rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].jo=
in(", ")+")";}return =
E;},toHex:function(H){H=3DD.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RG=
B.exec(H)){var =
G=3D(B.$1.length=3D=3D=3D1)?"0"+B.$1:Number(B.$1),F=3D(B.$2.length=3D=3D=3D=
1)?"0"+B.$2:Number(B.$2),E=3D(B.$3.length=3D=3D=3D1)?"0"+B.$3:Number(B.$3=
);H=3D[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=3DH.replace=
(D.Dom.Color.re_hex3,"$1$1");}if(H!=3D=3D"transparent"&&H.indexOf("#")<0)=
{H=3D"#"+H;}return =
H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7=
.0",build:"1799"});YAHOO.util.CustomEvent=3Dfunction(D,C,B,A){this.type=3D=
D;this.scope=3DC||window;this.silent=3DB;this.signature=3DA||YAHOO.util.C=
ustomEvent.LIST;this.subscribers=3D[];if(!this.silent){}var =
E=3D"_YUICEOnSubscribe";if(D!=3D=3DE){this.subscribeEvent=3Dnew =
YAHOO.util.CustomEvent(E,this,true);}this.lastError=3Dnull;};YAHOO.util.C=
ustomEvent.LIST=3D0;YAHOO.util.CustomEvent.FLAT=3D1;YAHOO.util.CustomEven=
t.prototype=3D{subscribe:function(A,B,C){if(!A){throw new Error("Invalid =
callback for subscriber to =
'"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(A,B,C=
);}this.subscribers.push(new =
YAHOO.util.Subscriber(A,B,C));},unsubscribe:function(D,F){if(!D){return =
this.unsubscribeAll();}var E=3Dfalse;for(var =
B=3D0,A=3Dthis.subscribers.length;B<A;++B){var =
C=3Dthis.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=3Dtrue;}=
}return E;},fire:function(){this.lastError=3Dnull;var =
K=3D[],E=3Dthis.subscribers.length;if(!E&&this.silent){return true;}var =
I=3D[].slice.call(arguments,0),G=3Dtrue,D,J=3Dfalse;if(!this.silent){}var=
 =
C=3Dthis.subscribers.slice(),A=3DYAHOO.util.Event.throwErrors;for(D=3D0;D=
<E;++D){var M=3DC[D];if(!M){J=3Dtrue;}else{if(!this.silent){}var =
L=3DM.getScope(this.scope);if(this.signature=3D=3DYAHOO.util.CustomEvent.=
FLAT){var =
B=3Dnull;if(I.length>0){B=3DI[0];}try{G=3DM.fn.call(L,B,M.obj);}catch(F){=
this.lastError=3DF;if(A){throw =
F;}}}else{try{G=3DM.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=
=3DH;if(A){throw =
H;}}}if(false=3D=3D=3DG){if(!this.silent){}break;}}}return(G!=3D=3Dfalse)=
;},unsubscribeAll:function(){var =
A=3Dthis.subscribers.length,B;for(B=3DA-1;B>-1;B--){this._delete(B);}this=
.subscribers=3D[];return A;},_delete:function(A){var =
B=3Dthis.subscribers[A];if(B){delete B.fn;delete =
B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEv=
ent: "+"'"+this.type+"', "+"context: =
"+this.scope;}};YAHOO.util.Subscriber=3Dfunction(A,B,C){this.fn=3DA;this.=
obj=3DYAHOO.lang.isUndefined(B)?null:B;this.overrideContext=3DC;};YAHOO.u=
til.Subscriber.prototype.getScope=3Dfunction(A){if(this.overrideContext){=
if(this.overrideContext=3D=3D=3Dtrue){return this.obj;}else{return =
this.overrideContext;}}return =
A;};YAHOO.util.Subscriber.prototype.contains=3Dfunction(A,B){if(B){return=
(this.fn=3D=3DA&&this.obj=3D=3DB);}else{return(this.fn=3D=3DA);}};YAHOO.u=
til.Subscriber.prototype.toString=3Dfunction(){return"Subscriber { obj: =
"+this.obj+", overrideContext: "+(this.overrideContext||"no")+" =
}";};if(!YAHOO.util.Event){YAHOO.util.Event=3Dfunction(){var =
H=3Dfalse;var I=3D[];var J=3D[];var G=3D[];var E=3D[];var C=3D0;var =
F=3D[];var B=3D[];var A=3D0;var =
D=3D{63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var =
K=3DYAHOO.env.ua.ie?"focusin":"focus";var =
L=3DYAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERV=
AL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,la=
stError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE=
:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:fals=
e,startInterval:function(){if(!this._interval){var M=3Dthis;var =
N=3Dfunction(){M._tryPreloadAttach();};this._interval=3DsetInterval(N,thi=
s.POLL_INTERVAL);}},onAvailable:function(S,O,Q,R,P){var =
M=3D(YAHOO.lang.isString(S))?[S]:S;for(var =
N=3D0;N<M.length;N=3DN+1){F.push({id:M[N],fn:O,obj:Q,overrideContext:R,ch=
eckReady:P});}C=3Dthis.POLL_RETRYS;this.startInterval();},onContentReady:=
function(P,M,N,O){this.onAvailable(P,M,N,O,true);},onDOMReady:function(M,=
N,O){if(this.DOMReady){setTimeout(function(){var =
P=3Dwindow;if(O){if(O=3D=3D=3Dtrue){P=3DN;}else{P=3DO;}}M.call(P,"DOMRead=
y",[],N);},0);}else{this.DOMReadyEvent.subscribe(M,N,O);}},_addListener:f=
unction(O,M,Y,S,W,b){if(!Y||!Y.call){return =
false;}if(this._isValidCollection(O)){var Z=3Dtrue;for(var =
T=3D0,V=3DO.length;T<V;++T){Z=3Dthis.on(O[T],M,Y,S,W)&&Z;}return =
Z;}else{if(YAHOO.lang.isString(O)){var =
R=3Dthis.getEl(O);if(R){O=3DR;}else{this.onAvailable(O,function(){YAHOO.u=
til.Event.on(O,M,Y,S,W);});return true;}}}if(!O){return =
false;}if("unload"=3D=3DM&&S!=3D=3Dthis){J[J.length]=3D[O,M,Y,S,W];return=
 true;}var N=3DO;if(W){if(W=3D=3D=3Dtrue){N=3DS;}else{N=3DW;}}var =
P=3Dfunction(c){return Y.call(N,YAHOO.util.Event.getEvent(c,O),S);};var =
a=3D[O,M,Y,P,N,S,W];var =
U=3DI.length;I[U]=3Da;if(this.useLegacyEvent(O,M)){var =
Q=3Dthis.getLegacyIndex(O,M);if(Q=3D=3D-1||O!=3DG[Q][0]){Q=3DG.length;B[O=
.id+M]=3DQ;G[Q]=3D[O,M,O["on"+M]];E[Q]=3D[];O["on"+M]=3Dfunction(c){YAHOO=
.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(=
a);}else{try{this._simpleAdd(O,M,P,b);}catch(X){this.lastError=3DX;this.r=
emoveListener(O,M,Y);return false;}}return =
true;},addListener:function(N,Q,M,O,P){return =
this._addListener(N,Q,M,O,P,false);},addFocusListener:function(N,M,O,P){r=
eturn =
this._addListener(N,K,M,O,P,true);},removeFocusListener:function(N,M){ret=
urn =
this.removeListener(N,K,M);},addBlurListener:function(N,M,O,P){return =
this._addListener(N,L,M,O,P,true);},removeBlurListener:function(N,M){retu=
rn this.removeListener(N,L,M);},fireLegacyEvent:function(R,P){var =
T=3Dtrue,M,V,U,N,S;V=3DE[P].slice();for(var =
O=3D0,Q=3DV.length;O<Q;++O){U=3DV[O];if(U&&U[this.WFN]){N=3DU[this.ADJ_SC=
OPE];S=3DU[this.WFN].call(N,R);T=3D(T&&S);}}M=3DG[P];if(M&&M[2]){M[2](R);=
}return T;},getLegacyIndex:function(N,O){var =
M=3Dthis.generateId(N)+O;if(typeof B[M]=3D=3D"undefined"){return =
-1;}else{return =
B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&=
&("click"=3D=3DN||"dblclick"=3D=3DN));},removeListener:function(N,M,V){va=
r Q,T,X;if(typeof =
N=3D=3D"string"){N=3Dthis.getEl(N);}else{if(this._isValidCollection(N)){v=
ar =
W=3Dtrue;for(Q=3DN.length-1;Q>-1;Q--){W=3D(this.removeListener(N[Q],M,V)&=
&W);}return W;}}if(!V||!V.call){return =
this.purgeElement(N,false,M);}if("unload"=3D=3DM){for(Q=3DJ.length-1;Q>-1=
;Q--){X=3DJ[Q];if(X&&X[0]=3D=3DN&&X[1]=3D=3DM&&X[2]=3D=3DV){J.splice(Q,1)=
;return true;}}return false;}var R=3Dnull;var =
S=3Darguments[3];if("undefined"=3D=3D=3Dtypeof =
S){S=3Dthis._getCacheIndex(N,M,V);}if(S>=3D0){R=3DI[S];}if(!N||!R){return=
 false;}if(this.useLegacyEvent(N,M)){var =
P=3Dthis.getLegacyIndex(N,M);var =
O=3DE[P];if(O){for(Q=3D0,T=3DO.length;Q<T;++Q){X=3DO[Q];if(X&&X[this.EL]=3D=
=3DN&&X[this.TYPE]=3D=3DM&&X[this.FN]=3D=3DV){O.splice(Q,1);break;}}}}els=
e{try{this._simpleRemove(N,M,R[this.WFN],false);}catch(U){this.lastError=3D=
U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
I.splice(S,1);return true;},getTarget:function(O,N){var =
M=3DO.target||O.srcElement;return =
this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3=3D=3DN.=
nodeType){return N.parentNode;}}catch(M){}return =
N;},getPageX:function(N){var =
M=3DN.pageX;if(!M&&0!=3D=3DM){M=3DN.clientX||0;if(this.isIE){M+=3Dthis._g=
etScrollLeft();}}return M;},getPageY:function(M){var =
N=3DM.pageY;if(!N&&0!=3D=3DN){N=3DM.clientY||0;if(this.isIE){N+=3Dthis._g=
etScrollTop();}}return =
N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRela=
tedTarget:function(N){var =
M=3DN.relatedTarget;if(!M){if(N.type=3D=3D"mouseout"){M=3DN.toElement;}el=
se{if(N.type=3D=3D"mouseover"){M=3DN.fromElement;}}}return =
this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=3Dnew =
Date().getTime();try{O.time=3DN;}catch(M){this.lastError=3DM;return =
N;}}return =
O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefaul=
t(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagatio=
n();}else{M.cancelBubble=3Dtrue;}},preventDefault:function(M){if(M.preven=
tDefault){M.preventDefault();}else{M.returnValue=3Dfalse;}},getEvent:func=
tion(O,M){var N=3DO||window.event;if(!N){var =
P=3Dthis.getEvent.caller;while(P){N=3DP.arguments[0];if(N&&Event=3D=3DN.c=
onstructor){break;}P=3DP.caller;}}return N;},getCharCode:function(N){var =
M=3DN.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in =
D)){M=3DD[M];}return M;},_getCacheIndex:function(Q,R,P){for(var =
O=3D0,N=3DI.length;O<N;O=3DO+1){var =
M=3DI[O];if(M&&M[this.FN]=3D=3DP&&M[this.EL]=3D=3DQ&&M[this.TYPE]=3D=3DR)=
{return O;}}return -1;},generateId:function(M){var =
N=3DM.id;if(!N){N=3D"yuievtautoid-"+A;++A;M.id=3DN;}return =
N;},_isValidCollection:function(N){try{return(N&&typeof =
N!=3D=3D"string"&&N.length&&!N.tagName&&!N.alert&&typeof =
N[0]!=3D=3D"undefined");}catch(M){return =
false;}},elCache:{},getEl:function(M){return(typeof =
M=3D=3D=3D"string")?document.getElementById(M):M;},clearCache:function(){=
},DOMReadyEvent:new =
YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=3Dtrue=
;var =
M=3DYAHOO.util.Event;M._ready();M._tryPreloadAttach();}},_ready:function(=
N){var =
M=3DYAHOO.util.Event;if(!M.DOMReady){M.DOMReady=3Dtrue;M.DOMReadyEvent.fi=
re();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreload=
Attach:function(){if(F.length=3D=3D=3D0){C=3D0;if(this._interval){clearIn=
terval(this._interval);this._interval=3Dnull;}return;}if(this.locked){ret=
urn;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.=
locked=3Dtrue;var S=3D!H;if(!S){S=3D(C>0&&F.length>0);}var R=3D[];var =
T=3Dfunction(V,W){var =
U=3DV;if(W.overrideContext){if(W.overrideContext=3D=3D=3Dtrue){U=3DW.obj;=
}else{U=3DW.overrideContext;}}W.fn.call(U,W.obj);};var =
N,M,Q,P,O=3D[];for(N=3D0,M=3DF.length;N<M;N=3DN+1){Q=3DF[N];if(Q){P=3Dthi=
s.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F=
[N]=3Dnull;}}else{T(P,Q);F[N]=3Dnull;}}else{R.push(Q);}}}for(N=3D0,M=3DO.=
length;N<M;N=3DN+1){Q=3DO[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=3DF.l=
ength-1;N>-1;N--){Q=3DF[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterv=
al();}else{if(this._interval){clearInterval(this._interval);this._interva=
l=3Dnull;}}this.locked=3Dfalse;},purgeElement:function(Q,R,T){var =
O=3D(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var =
S=3Dthis.getListeners(O,T),P,M;if(S){for(P=3DS.length-1;P>-1;P--){var =
N=3DS[P];this.removeListener(O,N.type,N.fn);}}if(R&&O&&O.childNodes){for(=
P=3D0,M=3DO.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],=
R,T);}}},getListeners:function(O,M){var =
R=3D[],N;if(!M){N=3D[I,J];}else{if(M=3D=3D=3D"unload"){N=3D[J];}else{N=3D=
[I];}}var T=3D(YAHOO.lang.isString(O))?this.getEl(O):O;for(var =
Q=3D0;Q<N.length;Q=3DQ+1){var V=3DN[Q];if(V){for(var =
S=3D0,U=3DV.length;S<U;++S){var =
P=3DV[S];if(P&&P[this.EL]=3D=3D=3DT&&(!M||M=3D=3D=3DP[this.TYPE])){R.push=
({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE]=
,scope:P[this.ADJ_SCOPE],index:S});}}}}return(R.length)?R:null;},_unload:=
function(T){var =
N=3DYAHOO.util.Event,Q,P,O,S,R,U=3DJ.slice(),M;for(Q=3D0,S=3DJ.length;Q<S=
;++Q){O=3DU[Q];if(O){M=3Dwindow;if(O[N.ADJ_SCOPE]){if(O[N.ADJ_SCOPE]=3D=3D=
=3Dtrue){M=3DO[N.UNLOAD_OBJ];}else{M=3DO[N.ADJ_SCOPE];}}O[N.FN].call(M,N.=
getEvent(T,O[N.EL]),O[N.UNLOAD_OBJ]);U[Q]=3Dnull;}}O=3Dnull;M=3Dnull;J=3D=
null;if(I){for(P=3DI.length-1;P>-1;P--){O=3DI[P];if(O){N.removeListener(O=
[N.EL],O[N.TYPE],O[N.FN],P);}}O=3Dnull;}G=3Dnull;N._simpleRemove(window,"=
unload",N._unload);},_getScrollLeft:function(){return =
this._getScroll()[1];},_getScrollTop:function(){return =
this._getScroll()[0];},_getScroll:function(){var =
M=3Ddocument.documentElement,N=3Ddocument.body;if(M&&(M.scrollTop||M.scro=
llLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,=
N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:functio=
n(){if(window.addEventListener){return =
function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEve=
nt){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return =
function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener=
){return =
function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detach=
Event){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return =
function(){};}}}()};}();(function(){var =
EU=3DYAHOO.util.Event;EU.on=3DEU.addListener;EU.onFocus=3DEU.addFocusList=
ener;EU.onBlur=3DEU.addBlurListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller =
*/
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttac=
h,YAHOO.util.Event,true);var =
n=3Ddocument.createElement("p");EU._dri=3DsetInterval(function(){try{n.do=
Scroll("left");clearInterval(EU._dri);EU._dri=3Dnull;EU._ready();n=3Dnull=
;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._d=
ri=3DsetInterval(function(){var =
rs=3Ddocument.readyState;if("loaded"=3D=3Drs||"complete"=3D=3Drs){clearIn=
terval(EU._dri);EU._dri=3Dnull;EU._ready();}},EU.POLL_INTERVAL);}else{EU.=
_simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,=
"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreload=
Attach();})();}YAHOO.util.EventProvider=3Dfunction(){};YAHOO.util.EventPr=
ovider.prototype=3D{__yui_events:null,__yui_subscribers:null,subscribe:fu=
nction(A,C,F,E){this.__yui_events=3Dthis.__yui_events||{};var =
D=3Dthis.__yui_events[A];if(D){D.subscribe(C,F,E);
}else{this.__yui_subscribers=3Dthis.__yui_subscribers||{};var =
B=3Dthis.__yui_subscribers;if(!B[A]){B[A]=3D[];}B[A].push({fn:C,obj:F,ove=
rrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=3Dthis.=
__yui_events||{};var A=3Dthis.__yui_events;if(C){var =
F=3DA[C];if(F){return F.unsubscribe(E,G);}}else{var B=3Dtrue;for(var D =
in =
A){if(YAHOO.lang.hasOwnProperty(A,D)){B=3DB&&A[D].unsubscribe(E,G);}}retu=
rn B;}return false;},unsubscribeAll:function(A){return =
this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=3Dthis.=
__yui_events||{};var A=3DD||{};var =
I=3Dthis.__yui_events;if(I[G]){}else{var H=3DA.scope||this;var =
E=3D(A.silent);var B=3Dnew =
YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=3DB;if(A.o=
nSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}th=
is.__yui_subscribers=3Dthis.__yui_subscribers||{};var =
F=3Dthis.__yui_subscribers[G];if(F){for(var =
C=3D0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].overrideContext);=
}}}return =
I[G];},fireEvent:function(E,D,A,C){this.__yui_events=3Dthis.__yui_events|=
|{};var G=3Dthis.__yui_events[E];if(!G){return null;}var B=3D[];for(var =
F=3D1;F<arguments.length;++F){B.push(arguments[F]);}return =
G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__=
yui_events[A]){return true;}}return false;}};(function(){var =
A=3DYAHOO.util.Event,C=3DYAHOO.lang;YAHOO.util.KeyListener=3Dfunction(D,I=
,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=3DYAHOO.util.KeyListen=
er.KEYDOWN;}var G=3Dnew =
YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=3Dnew =
YAHOO.util.CustomEvent("enabled");this.disabledEvent=3Dnew =
YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=3Ddocument.getElem=
entById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.s=
cope,E.correctScope);}function =
H(O,N){if(!I.shift){I.shift=3Dfalse;}if(!I.alt){I.alt=3Dfalse;}if(!I.ctrl=
){I.ctrl=3Dfalse;}if(O.shiftKey=3D=3DI.shift&&O.altKey=3D=3DI.alt&&O.ctrl=
Key=3D=3DI.ctrl){var J,M=3DI.keys,L;if(YAHOO.lang.isArray(M)){for(var =
K=3D0;K<M.length;K++){J=3DM[K];L=3DA.getCharCode(O);if(J=3D=3DL){G.fire(L=
,O);break;}}}else{L=3DA.getCharCode(O);if(M=3D=3DL){G.fire(L,O);}}}}this.=
enable=3Dfunction(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(=
I);}this.enabled=3Dtrue;};this.disable=3Dfunction(){if(this.enabled){A.re=
moveListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=3Dfalse;};th=
is.toString=3Dfunction(){return"KeyListener ["+I.keys+"] =
"+D.tagName+(D.id?"["+D.id+"]":"");};};var =
B=3DYAHOO.util.KeyListener;B.KEYDOWN=3D"keydown";B.KEYUP=3D"keyup";B.KEY=3D=
{ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENT=
ER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_U=
P:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,T=
AB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.7.0"=
,build:"1799"});YAHOO.register("yahoo-dom-event", YAHOO, {version: =
"2.7.0", build: "1799"});

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/yui/build/animation/animation-min.js

/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
(function(){var B=3DYAHOO.util;var =
A=3Dfunction(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME=3D"Anim";A.prot=
otype=3D{toString:function(){var C=3Dthis.getEl()||{};var =
D=3DC.id||C.tagName;return(this.constructor.NAME+": =
"+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttrib=
ute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom=
$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:=
function(C,E,D){return =
this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:func=
tion(C,F,E){var =
D=3Dthis.getEl();if(this.patterns.noNegatives.test(C)){F=3D(F>0)?F:0;}if(=
"style" in D){B.Dom.setStyle(D,C,F+E);}else{if(C in =
D){D[C]=3DF;}}},getAttribute:function(C){var E=3Dthis.getEl();var =
G=3DB.Dom.getStyle(E,C);if(G!=3D=3D"auto"&&!this.patterns.offsetUnit.test=
(G)){return parseFloat(G);}var =
D=3Dthis.patterns.offsetAttribute.exec(C)||[];var H=3D!!(D[3]);var =
F=3D!!(D[2]);if("style" in =
E){if(F||(B.Dom.getStyle(E,"position")=3D=3D"absolute"&&H)){G=3DE["offset=
"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=3D0;}}else{if(C =
in E){G=3DE[C];}}return =
G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){retu=
rn"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var =
F=3Dthis.attributes;this.runtimeAttributes[D]=3D{};var =
H=3Dfunction(J){return(typeof =
J!=3D=3D"undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return =
false;}I=3D(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D][=
"to"])){E=3DF[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor=3D=3DArra=
y){E=3D[];for(var =
G=3D0,C=3DI.length;G<C;++G){E[G]=3DI[G]+F[D]["by"][G]*1;}}else{E=3DI+F[D]=
["by"]*1;}}}this.runtimeAttributes[D].start=3DI;this.runtimeAttributes[D]=
.end=3DE;this.runtimeAttributes[D].unit=3D(H(F[D].unit))?F[D]["unit"]:thi=
s.getDefaultUnit(D);return true;},init:function(E,J,I,C){var =
D=3Dfalse;var F=3Dnull;var =
H=3D0;E=3DB.Dom.get(E);this.attributes=3DJ||{};this.duration=3D!YAHOO.lan=
g.isUndefined(I)?I:1;this.method=3DC||B.Easing.easeNone;this.useSeconds=3D=
true;this.currentFrame=3D0;this.totalFrames=3DB.AnimMgr.fps;this.setEl=3D=
function(M){E=3DB.Dom.get(M);};this.getEl=3Dfunction(){return =
E;};this.isAnimated=3Dfunction(){return =
D;};this.getStartTime=3Dfunction(){return =
F;};this.runtimeAttributes=3D{};this.animate=3Dfunction(){if(this.isAnima=
ted()){return =
false;}this.currentFrame=3D0;this.totalFrames=3D(this.useSeconds)?Math.ce=
il(B.AnimMgr.fps*this.duration):this.duration;if(this.duration=3D=3D=3D0&=
&this.useSeconds){this.totalFrames=3D1;}B.AnimMgr.registerElement(this);r=
eturn true;};this.stop=3Dfunction(M){if(!this.isAnimated()){return =
false;}if(M){this.currentFrame=3Dthis.totalFrames;this._onTween.fire();}B=
.AnimMgr.stop(this);};var =
L=3Dfunction(){this.onStart.fire();this.runtimeAttributes=3D{};for(var M =
in this.attributes){this.setRuntimeAttribute(M);}D=3Dtrue;H=3D0;F=3Dnew =
Date();};var K=3Dfunction(){var O=3D{duration:new =
Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=3Df=
unction(){return("duration: "+O.duration+", currentFrame: =
"+O.currentFrame);};this.onTween.fire(O);var =
N=3Dthis.runtimeAttributes;for(var M in =
N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H=
+=3D1;};var G=3Dfunction(){var M=3D(new Date()-F)/1000;var =
N=3D{duration:M,frames:H,fps:H/M};N.toString=3Dfunction(){return("duratio=
n: "+N.duration+", frames: "+N.frames+", fps: =
"+N.fps);};D=3Dfalse;H=3D0;this.onComplete.fire(N);};this._onStart=3Dnew =
B.CustomEvent("_start",this,true);this.onStart=3Dnew =
B.CustomEvent("start",this);this.onTween=3Dnew =
B.CustomEvent("tween",this);this._onTween=3Dnew =
B.CustomEvent("_tween",this,true);this.onComplete=3Dnew =
B.CustomEvent("complete",this);this._onComplete=3Dnew =
B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onT=
ween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=3DA;})();YAHOO.=
util.AnimMgr=3Dnew function(){var C=3Dnull;var B=3D[];var =
A=3D0;this.fps=3D1000;this.delay=3D1;this.registerElement=3Dfunction(F){B=
[B.length]=3DF;A+=3D1;F._onStart.fire();this.start();};this.unRegister=3D=
function(G,F){F=3DF||E(G);if(!G.isAnimated()||F=3D=3D-1){return =
false;}G._onComplete.fire();B.splice(F,1);A-=3D1;if(A<=3D0){this.stop();}=
return =
true;};this.start=3Dfunction(){if(C=3D=3D=3Dnull){C=3DsetInterval(this.ru=
n,this.delay);}};this.stop=3Dfunction(H){if(!H){clearInterval(C);for(var =
G=3D0,F=3DB.length;G<F;++G){this.unRegister(B[0],0);}B=3D[];C=3Dnull;A=3D=
0;}else{this.unRegister(H);}};this.run=3Dfunction(){for(var =
H=3D0,F=3DB.length;H<F;++H){var =
G=3DB[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrame=
s||G.totalFrames=3D=3D=3Dnull){G.currentFrame+=3D1;if(G.useSeconds){D(G);=
}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var =
E=3Dfunction(H){for(var =
G=3D0,F=3DB.length;G<F;++G){if(B[G]=3D=3DH){return G;}}return -1;};var =
D=3Dfunction(G){var J=3DG.totalFrames;var I=3DG.currentFrame;var =
H=3D(G.currentFrame*G.duration*1000/G.totalFrames);var F=3D(new =
Date()-G.getStartTime());var =
K=3D0;if(F<G.duration*1000){K=3DMath.round((F/H-1)*G.currentFrame);}else{=
K=3DJ-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=3DJ){K=3DJ-(I+1);}=
G.currentFrame+=3DK;}};};YAHOO.util.Bezier=3Dnew =
function(){this.getPosition=3Dfunction(E,D){var F=3DE.length;var =
C=3D[];for(var B=3D0;B<F;++B){C[B]=3D[E[B][0],E[B][1]];}for(var =
A=3D1;A<F;++A){for(B=3D0;B<F-A;++B){C[B][0]=3D(1-D)*C[B][0]+D*C[parseInt(=
B+1,10)][0];C[B][1]=3D(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0=
][0],C[0][1]];};};(function(){var =
A=3Dfunction(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAM=
E=3D"ColorAnim";A.DEFAULT_BGCOLOR=3D"#fff";var =
C=3DYAHOO.util;YAHOO.extend(A,C.Anim);var D=3DA.superclass;var =
B=3DA.prototype;B.patterns.color=3D/color$/i;B.patterns.rgb=3D/^rgb\(([0-=
9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=3D/^#?([0-9A-F]{2}=
)([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=3D/^#?([0-9A-F]{1})([0-9A-=
F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=3D/^transparent|rgba\(0, =
0, 0, 0\)$/;B.parseColor=3Dfunction(E){if(E.length=3D=3D3){return E;}var =
F=3Dthis.patterns.hex.exec(E);if(F&&F.length=3D=3D4){return[parseInt(F[1]=
,16),parseInt(F[2],16),parseInt(F[3],16)];}F=3Dthis.patterns.rgb.exec(E);=
if(F&&F.length=3D=3D4){return[parseInt(F[1],10),parseInt(F[2],10),parseIn=
t(F[3],10)];}F=3Dthis.patterns.hex3.exec(E);if(F&&F.length=3D=3D4){return=
[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
}return null;};B.getAttribute=3Dfunction(E){var =
G=3Dthis.getEl();if(this.patterns.color.test(E)){var =
I=3DYAHOO.util.Dom.getStyle(G,E);var =
H=3Dthis;if(this.patterns.transparent.test(I)){var =
F=3DYAHOO.util.Dom.getAncestorBy(G,function(J){return =
!H.patterns.transparent.test(I);});if(F){I=3DC.Dom.getStyle(F,E);}else{I=3D=
A.DEFAULT_BGCOLOR;}}}else{I=3DD.getAttribute.call(this,E);}return =
I;};B.doMethod=3Dfunction(F,J,G){var =
I;if(this.patterns.color.test(F)){I=3D[];for(var =
H=3D0,E=3DJ.length;H<E;++H){I[H]=3DD.doMethod.call(this,F,J[H],G[H]);}I=3D=
"rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}el=
se{I=3DD.doMethod.call(this,F,J,G);}return =
I;};B.setRuntimeAttribute=3Dfunction(F){D.setRuntimeAttribute.call(this,F=
);if(this.patterns.color.test(F)){var H=3Dthis.attributes;var =
J=3Dthis.parseColor(this.runtimeAttributes[F].start);var =
G=3Dthis.parseColor(this.runtimeAttributes[F].end);if(typeof =
H[F]["to"]=3D=3D=3D"undefined"&&typeof =
H[F]["by"]!=3D=3D"undefined"){G=3Dthis.parseColor(H[F].by);for(var =
I=3D0,E=3DJ.length;I<E;++I){G[I]=3DJ[I]+G[I];}}this.runtimeAttributes[F].=
start=3DJ;this.runtimeAttributes[F].end=3DG;}};C.ColorAnim=3DA;})();
/*
TERMS OF USE - EASING EQUATIONS
Open source under the BSD License.
Copyright 2001 Robert Penner All rights reserved.

Redistribution and use in source and binary forms, with or without =
modification, are permitted provided that the following conditions are =
met:

 * Redistributions of source code must retain the above copyright =
notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright =
notice, this list of conditions and the following disclaimer in the =
documentation and/or other materials provided with the distribution.
 * Neither the name of the author nor the names of contributors may be =
used to endorse or promote products derived from this software without =
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS =
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED =
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A =
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER =
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, =
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, =
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR =
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF =
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING =
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS =
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
YAHOO.util.Easing=3D{easeNone:function(B,A,D,C){return =
D*B/C+A;},easeIn:function(B,A,D,C){return =
D*(B/=3DC)*B+A;},easeOut:function(B,A,D,C){return =
-D*(B/=3DC)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=3DC/2)<1){return =
D/2*B*B+A;}return =
-D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return =
D*(B/=3DC)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return =
-D*((B=3DB/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=3DC/=
2)<1){return D/2*B*B*B*B+A;}return =
-D/2*((B-=3D2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C=3D=3D0){=
return A;}if((C/=3DF)=3D=3D1){return =
A+G;}if(!E){E=3DF*0.3;}if(!B||B<Math.abs(G)){B=3DG;var D=3DE/4;}else{var =
D=3DE/(2*Math.PI)*Math.asin(G/B);}return =
-(B*Math.pow(2,10*(C-=3D1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticO=
ut:function(C,A,G,F,B,E){if(C=3D=3D0){return =
A;}if((C/=3DF)=3D=3D1){return =
A+G;}if(!E){E=3DF*0.3;}if(!B||B<Math.abs(G)){B=3DG;var D=3DE/4;}else{var =
D=3DE/(2*Math.PI)*Math.asin(G/B);}return =
B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:fun=
ction(C,A,G,F,B,E){if(C=3D=3D0){return A;}if((C/=3DF/2)=3D=3D2){return =
A+G;}if(!E){E=3DF*(0.3*1.5);}if(!B||B<Math.abs(G)){B=3DG;var =
D=3DE/4;}else{var D=3DE/(2*Math.PI)*Math.asin(G/B);}if(C<1){return =
-0.5*(B*Math.pow(2,10*(C-=3D1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}retur=
n =
B*Math.pow(2,-10*(C-=3D1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},back=
In:function(B,A,E,D,C){if(typeof C=3D=3D"undefined"){C=3D1.70158;}return =
E*(B/=3DD)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof =
C=3D=3D"undefined"){C=3D1.70158;}return =
E*((B=3DB/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeo=
f C=3D=3D"undefined"){C=3D1.70158;}if((B/=3DD/2)<1){return =
E/2*(B*B*(((C*=3D(1.525))+1)*B-C))+A;}return =
E/2*((B-=3D2)*B*(((C*=3D(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C=
){return =
D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){=
if((B/=3DC)<(1/2.75)){return =
D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return =
D*(7.5625*(B-=3D(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return =
D*(7.5625*(B-=3D(2.25/2.75))*B+0.9375)+A;}}}return =
D*(7.5625*(B-=3D(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C=
){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return =
YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var =
A=3Dfunction(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}=
};A.NAME=3D"Motion";var E=3DYAHOO.util;YAHOO.extend(A,E.ColorAnim);var =
F=3DA.superclass;var =
C=3DA.prototype;C.patterns.points=3D/^points$/i;C.setAttribute=3Dfunction=
(G,I,H){if(this.patterns.points.test(G)){H=3DH||"px";F.setAttribute.call(=
this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAtt=
ribute.call(this,G,I,H);}};C.getAttribute=3Dfunction(G){if(this.patterns.=
points.test(G)){var =
H=3D[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}e=
lse{H=3DF.getAttribute.call(this,G);}return =
H;};C.doMethod=3Dfunction(G,K,H){var =
J=3Dnull;if(this.patterns.points.test(G)){var =
I=3Dthis.method(this.currentFrame,0,100,this.totalFrames)/100;J=3DE.Bezie=
r.getPosition(this.runtimeAttributes[G],I);}else{J=3DF.doMethod.call(this=
,G,K,H);}return =
J;};C.setRuntimeAttribute=3Dfunction(P){if(this.patterns.points.test(P)){=
var H=3Dthis.getEl();var J=3Dthis.attributes;var G;var =
L=3DJ["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] =
instanceof Array)){L=3D[L];}else{var =
K=3D[];for(M=3D0,O=3DL.length;M<O;++M){K[M]=3DL[M];}L=3DK;}if(E.Dom.getSt=
yle(H,"position")=3D=3D"static"){E.Dom.setStyle(H,"position","relative");=
}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);
}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=3Dthis.getAttribute("points");if(D=
(J["points"]["to"])){I=3DB.call(this,J["points"]["to"],G);var =
N=3DE.Dom.getXY(this.getEl());for(M=3D0,O=3DL.length;M<O;++M){L[M]=3DB.ca=
ll(this,L[M],G);}}else{if(D(J["points"]["by"])){I=3D[G[0]+J["points"]["by=
"][0],G[1]+J["points"]["by"][1]];for(M=3D0,O=3DL.length;M<O;++M){L[M]=3D[=
G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=3D[G];if(L.length=
>0){this.runtimeAttributes[P]=3Dthis.runtimeAttributes[P].concat(L);}this=
.runtimeAttributes[P][this.runtimeAttributes[P].length]=3DI;}else{F.setRu=
ntimeAttribute.call(this,P);}};var B=3Dfunction(G,I){var =
H=3DE.Dom.getXY(this.getEl());G=3D[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return =
G;};var D=3Dfunction(G){return(typeof =
G!=3D=3D"undefined");};E.Motion=3DA;})();(function(){var =
D=3Dfunction(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}=
};D.NAME=3D"Scroll";var B=3DYAHOO.util;YAHOO.extend(D,B.ColorAnim);var =
C=3DD.superclass;var A=3DD.prototype;A.doMethod=3Dfunction(E,H,F){var =
G=3Dnull;if(E=3D=3D"scroll"){G=3D[this.method(this.currentFrame,H[0],F[0]=
-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this=
.totalFrames)];}else{G=3DC.doMethod.call(this,E,H,F);}return =
G;};A.getAttribute=3Dfunction(E){var G=3Dnull;var =
F=3Dthis.getEl();if(E=3D=3D"scroll"){G=3D[F.scrollLeft,F.scrollTop];}else=
{G=3DC.getAttribute.call(this,E);}return =
G;};A.setAttribute=3Dfunction(E,H,G){var =
F=3Dthis.getEl();if(E=3D=3D"scroll"){F.scrollLeft=3DH[0];F.scrollTop=3DH[=
1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=3DD;})();YAHOO.regis=
ter("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"});
------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/newsticker.js

var Dom =3D YAHOO.util.Dom;
var Event =3D YAHOO.util.Event;

YAHOO.namespace("snippet");
YAHOO.snippet.ticker =3D {
	init : function(className){
		this.speed =3D 50;
		// get all ticker element from a page
		this.tickerEl =3D Dom.getElementsByClassName(className);
	=09
		for(var i=3D0; i<this.tickerEl.length; i++) {
			this.buildTicker(this.tickerEl[i]);
		=09
		document.getElementById("xxx").style.visibility =3D 'visible';
		}
	=09
	},
	buildTicker : function(tickerEl) {
		// get all newsitems from a ticker element
		this.tickerItem =3D tickerEl.getElementsByTagName("li");
		this.tickerItemContainer =3D tickerEl.getElementsByTagName("ul");
       =20
		// get width of all list items and set the container to this width
		this.containerWidth =3D 0;
		for(var i=3D0; i<this.tickerItem.length; i++) {
			this.containerWidth +=3D Dom.getRegion(this.tickerItem[i]).right - =
Dom.getRegion(this.tickerItem[i]).left;
	=09
		}
		Dom.setStyle(this.tickerItemContainer[0],"width",this.containerWidth + =
"px");

		// set position of container to the left of the containing box
        Dom.setStyle(this.tickerItemContainer[0],"left", =
(Dom.getRegion(tickerEl).right - Dom.getRegion(tickerEl).left) + "px");
       =20
   =20

		this.yPos =3D Dom.getRegion(this.tickerItemContainer[0]).top;

		// set listener for mouseover
		=
Event.addListener(this.tickerItemContainer[0],"mouseover",this.pauseAnim,=
this);

		// set listener for mouseout
		=
Event.addListener(this.tickerItemContainer[0],"mouseout",this.restartAnim=
,this);

		// start animation#

		this.startAnim();
	},
	startAnim : function() {
		this.attributes =3D {
			points: { to: [-this.containerWidth,this.yPos] }
		};
	=09
	=09
		this.anim =3D new YAHOO.util.Motion(this.tickerItemContainer[0], =
this.attributes);
		this.startPos =3D Dom.getStyle(this.tickerItemContainer[0],"left");
		this.startPos =3D this.startPos.split("px")[0];
		this.currentWidth =3D this.containerWidth + parseFloat(this.startPos);
		this.anim.duration =3D this.currentWidth/this.speed;
		this.anim.useSeconds =3D true;
		this.anim.onComplete.subscribe(this.endAnim,this);
		this.anim.animate();
	},
	pauseAnim : function(e,obj) {
		obj.anim.stop();
	},
	restartAnim : function(e,obj) {
		obj.currentWidth =3D obj.containerWidth + =
Dom.getRegion(obj.tickerItemContainer[0]).left;
		obj.anim.duration =3D obj.currentWidth/obj.speed;
		obj.anim.animate();
	},
	endAnim : function(state,dur,obj) {
		if(Dom.getRegion(obj.tickerItemContainer[0]).left <=3D =
-obj.containerWidth) {
			YAHOO.snippet.ticker.init("newsTicker");
		};
	}
}

initPage =3D function() {
	YAHOO.snippet.ticker.init("newsTicker");
}

Event.on(window,"load",initPage);


------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/WebResource.axd?d=zIg9mUVBlalpYpHPT3wMQINd9Cw8IzkBK9WUBE8yZTvAhGgpDNKj01_gDsTPmNxoDAWNYCn1R8TjIn5ZQJ72g-g7Y0C_3SkWnkovvRspXFU1&t=634392074925430182

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        // e.g. http:
        var action =3D theForm.action || document.location.pathname, =
fragmentIndex =3D action.indexOf('#');
        if (fragmentIndex !=3D=3D -1) {
            action =3D action.substr(0, fragmentIndex);
        }
        if (!__nonMSDOMBrowser) {
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        xmlRequest.open("POST", action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex =3D -1;
            }
            __pendingCallbacks[i] =3D null;
            var callbackFrameID =3D "__CALLBACKFRAME" + i;
            var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            }
            WebForm_ExecuteCallback(callbackObject);
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (src &&
            ((src.tagName.toLowerCase() =3D=3D "input") &&
             (src.type.toLowerCase() =3D=3D "submit" || =
src.type.toLowerCase() =3D=3D "button")) ||
            ((src.tagName.toLowerCase() =3D=3D "a") &&
             (src.href !=3D null) && (src.href !=3D "")) ||
            (src.tagName.toLowerCase() =3D=3D "textarea")) {
            return true;
        }
        var defaultButton;
        if (__nonMSDOMBrowser) {
            defaultButton =3D document.getElementById(target);
        }
        else {
            defaultButton =3D document.all[target];
        }
        if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
            defaultButton.click();
            event.cancelBubble =3D true;
            if (event.stopPropagation) event.stopPropagation();
            return false;
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=idJxz33xZFuQBo6XYi3e3nkviP5Ny8fqbY9ONWIX-qvgeNJafuh6nrS653TpMMsLZlqCI0sshU_MkXYL_cZkRLS_3Wn6bHRUG00oy1l9lNILNFAVL6s2SBisZjH9BtOEEeiVuT4U_n9bRQ58CpDD0A2&t=6b9ad1b8

=EF=BB=BF// Name:        MicrosoftAjax.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation

(function(window, Sys) {

var merge =3D function _merge(target) {
    target =3D target || {};
    foreach(arguments, function(o) {
        if (o) {
            forIn(o, function(v, n) {
                target[n] =3D v;
            });
        }
    }, 1);
    return target;
}
var forIn =3D function _forIn(obj, callback) {
    for (var x in obj) {
        callback(obj[x], x);
    }
}
var foreach =3D function _foreach(arr, callback, start) {
    var cancelled;
    if (arr) {
        arr =3D arr !=3D=3D window && typeof(arr.nodeType) =3D=3D=3D =
"undefined" &&
            (arr instanceof Array ||=20
            (typeof(arr.length) =3D=3D=3D 'number' && =
(typeof(arr.callee) =3D=3D=3D "function" || (arr.item && =
typeof(arr.nodeType) =3D=3D=3D "undefined") && !arr.addEventListener && =
!arr.attachEvent)))
            ? arr : [arr];
        for (var i =3D start||0, l =3D arr.length; i < l; i++) {
            if (callback(arr[i], i)) {
                cancelled =3D true;
                break;
            }
        }
    }
    return !cancelled;
}
var callIf =3D function _callIf(obj, name, args) {
    var fn =3D obj[name],
        exists =3D typeof(fn) =3D=3D=3D "function";
    if (exists) fn.call(obj, args);
    return exists;
}
if (!Sys || !Sys.loader) {
    function append(target) {
        target =3D target || {};
        foreach(arguments, function(o) {
            if (o) {
                forIn(o, function(v, n) {
                    if (typeof(target[n]) =3D=3D=3D "undefined") =
target[n] =3D v;
                });
            }
        }, 1);
        return target;
    }

    var attachEvent =3D !!document.attachEvent;
 =20
    function getAndDelete(obj, field) {
        var r =3D obj[field];
        delete obj[field];
        return r;
    }
    function foreachCall(obj, field, args) {
        foreach(getAndDelete(obj, field), function(callback) {
            callback.apply(null, args||[]);
        });
    }
    function lazyget(obj, name, value) {
        return obj ? (obj[name] =3D obj[name] || value) : value;
    }
    function lazypush(obj, name, value) {
        lazyget(obj, name, []).push(value);
    }
    function lazyset(obj, name, key, value) {
        lazyget(obj, name, {})[key] =3D value;
    }
    function all(tag, element) {
        return (element||document).getElementsByTagName(tag);
    }
    function createElement(tag) {
        return document.createElement(tag);
    }
    function listenOnce(target, name, ieName, callback, isReadyState, =
isScript) {
        function onEvent() {
            if (!attachEvent || !isReadyState || =
/loaded|complete/.test(target.readyState)) {
                if (attachEvent) {
                    target.detachEvent(ieName || ("on" + name), =
onEvent);
                }
                else {
                    target.removeEventListener(name, onEvent, false);
                    if (isScript) {
                        target.removeEventListener("error", onEvent, =
false);
                    }
                }
                callback.apply(target);
                target =3D null;
            }
        }
        if (attachEvent) {
            target.attachEvent(ieName || ("on" + name), onEvent);
        }
        else {
            if (target.addEventListener) {
            target.addEventListener(name, onEvent, false);
            }
            if (isScript) {
                target.addEventListener("error", onEvent, false);
            }
        }
    }
    function raiseDomReady() {
        if (Sys._domReady) {
            Sys._2Pass(getAndDelete(Sys, "_domReadyQueue"));
        }
    }
    function raiseOnReady() {
        var ready =3D Sys._ready;
        if (!ready && Sys._domReady && !(Sys.loader && =
Sys.loader._loading)) {
            Sys._ready =3D ready =3D true;
        }
        if (ready) {
            Sys._2Pass(getAndDelete(Sys, "_readyQueue"));
        }
    }
    window.Sys =3D Sys =3D append(Sys, {
        version: [3, 0, 31106, 0],
        __namespace: true,
        debug: true,
        scripts: {},
        activateDom: true,
        composites: {},
        components: {},
        plugins: {},
        create: {},
        converters: {},
        _domLoaded: function _domLoaded() {
            if (Sys._domChecked) return;
            Sys._domChecked =3D true;
            function domReady() {
                if (!Sys._domReady) {
                    Sys._domReady =3D true;
                    var autoRequire =3D Sys._autoRequire;
                    if (autoRequire) {
                        Sys.require(autoRequire, function() {
                            Sys._autoRequire =3D null;
                            foreachCall(Sys, "_autoQueue");
                        }, autoToken);
                    }
                    raiseDomReady();
                    raiseOnReady();
                }
            }
            listenOnce(window, "load", null, domReady);

            var check;
            if (attachEvent) {
                if ((window =3D=3D window.top) && =
document.documentElement.doScroll) {
                    var timeout, er, el =3D createElement("div");
                    check =3D function() {
                        try {
                            el.doScroll("left");
                        }
                        catch (er) {
                            timeout =3D window.setTimeout(check, 0);
                            return;
                        }
                        el =3D null;
                        domReady();
                    }
                    check();
                }
                else {
                    listenOnce(document, null, "onreadystatechange", =
domReady, true);
                }
            }
            else if (document.addEventListener) {
                listenOnce(document, "DOMContentLoaded", null, =
domReady);
            }
        },
        _getById: function _getById(found, id, single, includeSelf, =
element, filter) {
            if (element) {
                if (includeSelf && (element.id =3D=3D=3D id)) {
                    found.push(element);
                }
                else if (!filter) {
                    foreach(all("*", element), function(element) {
                        if (element.id =3D=3D=3D id) {
                            found.push(element);
                            return true;
                        }
                    });
                }
            }
            else {
                var e =3D document.getElementById(id);
                if (e) found.push(e);
            }
            return found.length;
        },
        _getByClass: function _getByClass(found, targetClass, single, =
includeSelf, element, filter) {
            function pushIfMatch(element) {
                var ret, className =3D element.className;
                if (className && ((className =3D=3D=3D targetClass) || =
(className.indexOf(' ' + targetClass) >=3D 0) || =
(className.indexOf(targetClass + ' ') >=3D 0))) {
                    found.push(element);
                    ret =3D true;
                }
                return ret;
            }
            var i, l, nodes;
            if (includeSelf && pushIfMatch(element) && single) {
                return true;
            }
            if (!filter) {
                element =3D element || document;
                var finder =3D element.querySelectorAll || =
element.getElementsByClassName;
                if (finder) {
                    if (element.querySelectorAll) targetClass =3D "." + =
targetClass;
                    nodes =3D finder.call(element, targetClass);
                    for (i =3D 0, l =3D nodes.length; i < l; i++) {
                        found.push(nodes[i]);
                        if (single) return true;
                    }
                }
                else {
                    nodes =3D all("*", element);
                    for (i =3D 0, l =3D nodes.length; i < l; i++) {
                        if (pushIfMatch(nodes[i]) && single) {
                            return true;
                        }
                    }
                }
            }
        },
        query: function query(selector, context) {
            /// <summary>Queries the DOM for a set of DOM =
elements.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"selector">Selector for a set of DOM =
elements based on id (#&lt;id>), class (.&lt;name>), or tag name =
(&lt;tagname>). Also supports an array of DOM elements or selectors. =
More complex selectors may be used if jQuery is loaded.</param>
            /// <param name=3D"context" optional=3D"true" =
mayBeNull=3D"true">A DOM element (exclusive), array of DOM elements =
(inclusive), or other Sys.ElementSet or Sys.UI.TemplateContext =
(exclusive) to restrict the search within.</param>
            /// <returns type=3D"Sys.ElementSet">An object representing =
the set of matching elements.</returns>
            return new Sys.ElementSet(selector, context);
        },
        get: function get(selector, context) {
            /// <summary>Queries the DOM for a single DOM =
element.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"selector">
            /// Selector for a DOM element based on id (#&lt;id>), class =
(.&lt;name>), or tag name (&lt;tagname>). More complex selectors may be =
used if jQuery is loaded.
            /// If multiple elements match the selector, the first one =
is returned.
            /// </param>
            /// <param name=3D"context" optional=3D"true" =
mayBeNull=3D"true">An element, array of elements, or =
Sys.UI.TemplateContext to restrict the query within.</param>
            /// <returns>The matching element, or null if none =
match.</returns>
            return (context && typeof(context.get) =3D=3D=3D "function") =
?
                context.get(selector) :
                this._find(selector, context, true);
        },
        _find: function _find(selector, context, single, filter) {
            var found =3D [],
                selectors;
            if (typeof(selector) =3D=3D=3D "string") {
                selectors =3D [selector];
            }
            else {
                selectors =3D selector;
            }
            var includeSelf =3D context instanceof Array,
                simpleNonTag =3D /^([\$#\.])((\w|[$:\.\-])+)$/,
                tag =3D /^((\w+)|\*)$/;
            if ((typeof(context) =3D=3D=3D "string") || (context =
instanceof Array)) {
                context =3D Sys._find(context);
            }
            if (context instanceof Sys.ElementSet) {
                context =3D context.get();
            }
            foreach(selectors, function(selector) {
                if (typeof(selector) !=3D=3D "string") {
                    if (filter) {
                        if (contains(context, selector)) {
                            found.push(selector);
                        }
                    }
                    else {
                        found.push(selector);
                    }
                }
                else {
                    var match =3D simpleNonTag.exec(selector);
                    if (match && match.length =3D=3D=3D 4) {
                        selector =3D match[2];
                        var type =3D match[1];
                        if (type =3D=3D=3D "$") {
                            Sys._getComponent(found, selector, context);
                        }
                        else {
                            var finder =3D type =3D=3D=3D "#" ? =
Sys._getById : Sys._getByClass;
                            if (context) {
                                foreach(context, function(node) {
                                    if (node.nodeType =3D=3D=3D 1) {
                                        return finder(found, selector, =
single, includeSelf, node, filter);
                                    }
                                });
                            }
                            else {
                                finder(found, selector, single);
                            }
                        }
                    }
                    else if (tag.test(selector)) {
                        if (context instanceof Array) {
                            foreach(context, function(node) {
                                if (node.nodeType =3D=3D=3D 1) {
                                    if (includeSelf && (selector =
=3D=3D=3D "*" || (node.tagName.toLowerCase() =3D=3D=3D selector))) {
                                        found.push(node);
                                        if (single) return true;
                                    }
                                    if (!filter) {
                                        if(!foreach(all(selector, node), =
function(node) {
                                            found.push(node);
                                            if (single) return true;
                                        })) {
                                            return true;
                                        }
                                    }
                                }
                            });
                        }
                        else {
                            var nodes =3D all(selector, context);
                            if (single) {
                                if (nodes[0]) {
                                    found.push(nodes[0]);
                                }
                                return true;
                            }
                            foreach(nodes, function(node) {
                                found.push(node);
                            });
                        }
                    }
                    else if (window.jQuery) {
                        if (!filter) {
                            found.push.apply(found, jQuery(selector, =
context).get());
                        }
                        if (includeSelf) {
                            found.push.apply(found, =
jQuery(context).filter(selector).get());
                        }
                    }
                }
            });
            return found.length ? (single ? (found[0] || null) : found) =
: null;
        },
        onDomReady: function onDomReady(callback) {
            /// <summary>Registers a function to be called when the DOM =
is ready.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"callback" type=3D"Function"></param>
            lazypush(this, "_domReadyQueue", callback);
            raiseDomReady();
        },
        onReady: function onReady(callback) {
            /// <summary>Registers a function to be called when the DOM =
is ready and when all required resources have been loaded.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"callback" type=3D"Function"></param>
            lazypush(this, "_readyQueue", callback);
            raiseOnReady();
        },
        _set: function(instance, properties) {
            forIn(properties, function(value, field) {
                callIf(instance, "add_" + field, value) ||
                callIf(instance, "set_" + field, value) ||
                (instance[field] =3D value);
            });
        }
    });

    Sys._getComponent =3D Sys._getComponent || function() { }
   =20
    Sys._2Pass =3D Sys._2Pass || function _2Pass(callback) {
       foreach(callback, function(c) { c(); });
    }

    var obj;
    if (!Sys.ElementSet) {
obj =3D Sys.ElementSet =3D function(selector, context) {
    /// <summary>Represents a set of DOM elements.</summary>
    /// <param name=3D"selector">The DOM selector, array of DOM =
selectors, or array of DOM elements to query the document for.</param>
    /// <param name=3D"context">A DOM selector (exclusive), A DOM =
element (exclusive), array of DOM elements (inclusive), or other =
Sys.ElementSet (exclusive) to restrict the search within.</param>
    this._elements =3D ((typeof(context) =3D=3D=3D "object") && =
typeof(context.query) =3D=3D=3D "function") ?
        context.query(selector).get() :
        Sys._find(selector, context) || [];
}
obj.prototype =3D {
    __class: true,
    components: function(type, index) {
        /// <summary>Gets the set of controls and behaviors associated =
with the current DOM elements.</summary>
        /// <param name=3D"type" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Type to limit the search to.</param>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">Index of the component to limit to.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        var elementSet =3D new Sys.ElementSet(this.get());
        return new Sys.ComponentSet(elementSet, type, index);
    },
    component: function(type, index) {
        /// <summary>Get the first control or behavior associated with =
the current set of DOM elements.</summary>
        /// <param name=3D"type" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Type to limit the search to.</param>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">Index of the component to return.</param>
        /// <returns type=3D"Object" mayBeNull=3D"true" />
        return this.components(type, index).get(0);
    },
    each: function(callback) {
        /// <summary>Enumerates all the matched elements, calling the =
given callback for each with the current element as the context.
        /// The callback may return false to cancel =
enumeration.</summary>
        /// <returns type=3D"Sys.ElementSet"/>
        var elements =3D this._elements;
        for (var i =3D 0, l =3D elements.length; i < l; i++) {
            if (callback.call(elements[i], i) =3D=3D=3D false) break;
        }
        return this;
    },
    get: function(index) {
        /// <summary>Retrieves the element at the specified =
index.</summary>
        /// <param name=3D"index" type=3D"Number">The index of the =
element to retrieve. Omit to return all elements as an array.</param>
        /// <returns isDomElement=3D"true">The element at the given =
index, or an array of all the matched elements.</returns>
        var elements =3D this._elements;
        return (typeof(index) =3D=3D=3D "undefined") ? =
(Array.apply(null, elements)) : (elements[index] || null);
    },
    find: function(selector) {
        /// <summary>Searches the current set of DOM elements with the =
given selector, including descendents.</summary>
        /// <param name=3D"selector">DOM selector or array of DOM =
selectors to search with.</param>
        /// <returns type=3D"Sys.ElementSet">A new element set with the =
matched elements.</returns>
        return new Sys.ElementSet(selector, this);
    },
    filter: function(selector) {
        /// <summary>Filters the current set of DOM elements by the =
given selector, excluding descendents.</summary>
        /// <param name=3D"selector">DOM selector or array of elements =
to filter by.</param>
        /// <returns type=3D"Sys.ElementSet">A new element set with the =
matched elements.</returns>
        return new Sys.ElementSet(Sys._find(selector, this._elements, =
false, true));
    }
}
    }
    if (!Sys.ComponentSet) {
obj =3D Sys.ComponentSet =3D function ComponentSet(elementSet, query, =
index) {
    /// <summary></summary>
    /// <param name=3D"elementSet" type=3D"Sys.ElementSet" =
mayBeNull=3D"true" optional=3D"true"></param>
    /// <param name=3D"query" mayBeNull=3D"true" optional=3D"true">The =
type of component to filter by, or an array of components to =
include.</param>
    /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">The index of the component to retrieve from the =
filtered list.</param>
    this._elementSet =3D elementSet || (elementSet =3D new =
Sys.ElementSet());
    this._components =3D this._execute(elementSet, query, index);
}
obj.prototype =3D {
    __class: true,
    setProperties: function ComponentSet$setProperties(properties) {
        /// <summary>Sets properties on the matched =
components.</summary>
        /// <param name=3D"properties" type=3D"Object" =
mayBeNull=3D"false">Object with the names and values of the properties =
to set.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        return this.each(function() {
            Sys._set(this, properties);
        });
    },
    get: function ComponentSet$get(index) {
        /// <summary>Returns the component at the specified index, or an =
array of all matches if not specified.</summary>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Object" mayBeNull=3D"true"/>
        var components =3D this._components;
        return (typeof(index) =3D=3D=3D "undefined") ? =
(Array.apply(null, components)) : (components[index || 0] || null);
    },
    each: function ComponentSet$each(callback) {
        /// <summary>Enumerate all the found components. The index of =
the component are passed as parameters to a callback. You may return =
'false' to cancel the enumeration.</summary>
        /// <param name=3D"callback" type=3D"Function" =
mayBeNull=3D"false">Function called for each component.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        foreach(this._components, function(c, i) {
            if (callback.call(c, i) =3D=3D=3D false) {
                return true;
            }
        });
        return this;
    },
    elements: function ComponentSet$elements() {
        /// <summary>Returns the underlying set of elements this =
component collection came from.</summary>
        /// <returns type=3D"Sys.ElementSet" />
        return this._elementSet;
    },
    _execute: function ComponentSet$_execute(elementSet, query, index) {
        var components =3D [];
        function match(c) {
            var ctor;
            return (c instanceof query) ||
                ((ctor =3D c.constructor) && (
                    (ctor =3D=3D=3D query) ||
                    (ctor.inheritsFrom && ctor.inheritsFrom(query)) ||
                    (ctor.implementsInterface && =
ctor.implementsInterface(query))));
        }
        if (query instanceof Array) {
            components.push.apply(components, query);
        }
        else {
            elementSet.each(function() {
                var c =3D this.control;
                if (c && (!query || match(c))) {
                    components.push(c);
                }
                foreach(this._behaviors, function(b) {
                    if (!query || match(b)) {
                        components.push(b);
                    }
                });
            });
        }
        if ((typeof(index) !=3D=3D "undefined")) {
            if (components[index]) {
                components =3D [components[index]];
            }
            else {
                components =3D [];
            }
        }
        return components;
    }
}
    }
   =20
    obj =3D null;
}
    var getCreate =3D function _getCreate(options, isPlugin) {
        var body =3D [],
            arglist =3D [],
            type =3D options.type,
            typeName =3D options.typeName || (type ? type.getName() : =
""),
            isBehavior =3D options._isBehavior,
            description =3D (options && options.description) ||=20
                          (type && ("Creates an instance of the type '" =
+ typeName  + "' and sets the given properties.")) ||
                          "";
        body.push("/// <summary>", description, "</summary>\n");
        foreach(options && options.parameters, function(parameter) {
            var name =3D parameter, type =3D '', desc =3D '';
            if (typeof(parameter) !=3D=3D "string") {
                name =3D parameter.name;
                type =3D parameter.type||'';
                desc =3D parameter.description||'';
            }
            arglist.push(name);
            body.push('/// <param name=3D"', name, '"');
            if (type) {
                body.push(' type=3D"', type, '"');
            }
            body.push('>', desc, '</param>\n');
        });
        var returnType;
        if (!isPlugin) {
            arglist.push("properties");
            body.push('/// <param name=3D"properties" type=3D"Object" =
mayBeNull=3D"true" optional=3D"true">Additional properties to set on the =
component.</param>\n');
            returnType =3D isBehavior ? 'Sys.ComponentSet' : typeName;
        }
        else {
            returnType =3D options.returnType;
        }
        if (returnType) {
            body.push('/// <returns type=3D"', returnType, '" />\n');
        }
        if (isPlugin) {
            body.push('return Sys.plugins["', options.name, =
'"].plugin.apply(this, arguments);');
        }
        else {
            body.push('return Sys._createComp.call(this, =
arguments.callee._component, arguments.callee._component.defaults, =
arguments);');
        }
        arglist.push(body.join(''));
   =20
        var fn =3D Function.apply(null, arglist);
        if (!isPlugin) {
            fn._component =3D options;
        }
        return fn;
       =20
    }
    Sys._getCreate =3D getCreate;

function execute() {

var $type, $prototype;
Sys._foreach =3D foreach;
Sys._forIn =3D forIn;
Sys._merge =3D merge;
Sys._callIf =3D callIf;

$type =3D Function;
$type.__typeName =3D 'Function';
$type.__class =3D true;

$type.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback">Creates a =
callback function that retains the parameter initially used during its =
creation.   The callback is used without parameter but this will call =
the actual method with the parameter.   This is especially useful when =
setting up a handler for a DOM event that must retain a parameter   =
despite the DOM event handler needing to be a function with the event =
object as the only parameter.   In this case, the function will be =
called with the event as the first parameter and the context   as the =
second.   If the callback is called with an arbitrary list of =
parameters, the context is appended.</summary>
    /// <param name=3D"method" type=3D"Function">The function for which =
the callback is created.</param>
    /// <param name=3D"context" mayBeNull=3D"true">The parameter for the =
function.</param>
    /// <returns type=3D"Function">The callback function.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "method", type: Function},
        {name: "context", mayBeNull: true}
    ]);
    if (e) throw e;


    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            var args =3D [];
            for (var i =3D 0; i < l; i++) {
                args[i] =3D arguments[i];
            }
            args[l] =3D context;
            return method.apply(this, args);
        }
        return method.call(this, context);
    }
}

$type.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate">Creates a =
delegate function that retains the context from its creation   (i.e. =
what 'this' means from within its scope).   This is especially useful =
when setting up an event handler to point to an object method   that =
needs to use the 'this' pointer from within its scope.</summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object instance =
that will be the context for the function (i.e. what 'this' means from =
within its scope).</param>
    /// <param name=3D"method" type=3D"Function">The function from which =
the delegate is created.</param>
    /// <returns type=3D"Function">The delegate function.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true},
        {name: "method", type: Function}
    ]);
    if (e) throw e;


    return function() {
        return method.apply(instance, arguments);
    }
}

$type.emptyFunction =3D $type.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod">A function that does =
nothing.</summary>
}

$type.validateParameters =3D function =
Function$validateParameters(parameters, expectedParameters, =
validateParameterCount) {
    /// <summary locid=3D"M:J#Function.validateParameters">Validates the =
parameters to a method are as expected.</summary>
    /// <param name=3D"parameters"></param>
    /// <param name=3D"expectedParameters"></param>
    /// <param name=3D"validateParameterCount" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true">True if extra parameters are =
prohibited, false if they should be ignored. The default is =
true.</param>
    /// <returns type=3D"Error" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parameters"},
        {name: "expectedParameters"},
        {name: "validateParameterCount", type: Boolean, mayBeNull: true, =
optional: true}
    ]);
    if (e) throw e;
    return Function._validateParams(parameters, expectedParameters, =
validateParameterCount);
}

$type._validateParams =3D function Function$_validateParams(params, =
expectedParams, validateParameterCount) {
    var e, expectedLength =3D expectedParams.length;
    validateParameterCount =3D validateParameterCount !=3D=3D false;
    e =3D Function._validateParameterCount(params, expectedParams, =
validateParameterCount);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i =3D 0, l =3D params.length; i < l; i++) {
        var expectedParam =3D expectedParams[Math.min(i, expectedLength =
- 1)],
            paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedLength + 1) + "]";
        }
        else if (!validateParameterCount && (i >=3D expectedLength)) {
            break;
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}

$type._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams, =
validateParameterCount) {
    var i, error,
        expectedLen =3D expectedParams.length,
        actualLen =3D params.length;
    if (actualLen < expectedLen) {
        var minParams =3D expectedLen;
        for (i =3D 0; i < expectedLen; i++) {
            var param =3D expectedParams[i];
            if (param.optional || param.parameterArray) {
                minParams--;
            }
        }       =20
        if (actualLen < minParams) {
            error =3D true;
        }
    }
    else if (validateParameterCount && (actualLen > expectedLen)) {
        error =3D true;     =20
        for (i =3D 0; i < expectedLen; i++) {
            if (expectedParams[i].parameterArray) {
                error =3D false;
                break;
            }
        } =20
    }

    if (error) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }

    return null;
}

$type._validateParameter =3D function Function$_validateParameter(param, =
expectedParam, paramName) {
    var e,
        expectedType =3D expectedParam.type,
        expectedInteger =3D !!expectedParam.integer,
        expectedDomElement =3D !!expectedParam.domElement,
        mayBeNull =3D !!expectedParam.mayBeNull;

    e =3D Function._validateParameterType(param, expectedType, =
expectedInteger, expectedDomElement, mayBeNull, paramName);
    if (e) {
        e.popStackFrame();
        return e;
    }

    var expectedElementType =3D expectedParam.elementType,
        elementMayBeNull =3D !!expectedParam.elementMayBeNull;
    if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D =
"undefined" && param !=3D=3D null &&
        (expectedElementType || !elementMayBeNull)) {
        var expectedElementInteger =3D !!expectedParam.elementInteger,
            expectedElementDomElement =3D =
!!expectedParam.elementDomElement;
        for (var i=3D0; i < param.length; i++) {
            var elem =3D param[i];
            e =3D Function._validateParameterType(elem, =
expectedElementType,
                expectedElementInteger, expectedElementDomElement, =
elementMayBeNull,
                paramName + "[" + i + "]");
            if (e) {
                e.popStackFrame();
                return e;
            }
        }
    }

    return null;
}

$type._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e, i;

    if (typeof(param) =3D=3D=3D "undefined" || param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        e =3D param =3D=3D=3D null ? Error.argumentNull(paramName) : =
Error.argumentUndefined(paramName);
        e.popStackFrame();
        return e;
    }

    if (expectedType && expectedType.__enum) {
        if (typeof(param) !=3D=3D 'number') {
            e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
            e.popStackFrame();
            return e;
        }
        if ((param % 1) =3D=3D=3D 0) {
            var values =3D expectedType.prototype;
            if (!expectedType.__flags || (param =3D=3D=3D 0)) {
                for (i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (i in values) {
                    var vali =3D values[i];
                    if (vali =3D=3D=3D 0) continue;
                    if ((vali & param) =3D=3D=3D vali) {
                        v -=3D vali;
                    }
                    if (v =3D=3D=3D 0) return null;
                }
            }
        }
        e =3D Error.argumentOutOfRange(paramName, param, =
String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
        e.popStackFrame();
        return e;
    }

    if (expectedDomElement && (!Sys._isDomElement(param) || =
(param.nodeType =3D=3D=3D 3))) {
        e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
        e.popStackFrame();
        return e;
    }

    if (expectedType && !Sys._isInstanceOfType(expectedType, param)) {
        e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
        e.popStackFrame();
        return e;
    }

    if (expectedType =3D=3D=3D Number && expectedInteger) {
        if ((param % 1) !=3D=3D 0) {
            e =3D Error.argumentOutOfRange(paramName, param, =
Sys.Res.argumentInteger);
            e.popStackFrame();
            return e;
        }
    }

    return null;
}
$type =3D Error;
$type.__typeName =3D 'Error';
$type.__class =3D true;

Sys._errorArgument =3D function(kind, paramName, message) {
    var name =3D "Sys.Argument" + kind + "Exception";
    var displayMessage =3D name + ": " + (message || =
Sys.Res["argument"+kind]);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }

    var err =3D Error.create(displayMessage, { name: name, paramName: =
paramName });
    err.popStackFrame();
    err.popStackFrame();
    return err;
}

Sys._error =3D function(kind, message, defaultMessage) {
    var name =3D "Sys." + kind + "Exception";
    var displayMessage =3D name + ": " + (message || =
Sys.Res[defaultMessage]);
    var err =3D Error.create(displayMessage, {name: name});
    err.popStackFrame();
    err.popStackFrame();
    return err;
}

$type.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create">Use this method to create a =
new error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <param name=3D"errorInfo" optional=3D"true" mayBeNull=3D"true">A =
plain JavaScript object that contains extended information about the =
error.   The object should have a 'name' field that contains a string =
that identifies the error   and any additional fields that are necessary =
to fully describe the error.</param>
    /// <returns type=3D"Error">An Error object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: =
true},
        {name: "errorInfo", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;

    var err =3D new Error(message);
    err.message =3D message;

    if (errorInfo) {
        for (var v in errorInfo) {
            err[v] =3D errorInfo[v];
        }
    }

    err.popStackFrame();
    return err;
}

$type.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument">Creates an =
ArgumentException with a specified error message   and the name of the =
parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._errorArgument("", paramName, message);
}

$type.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull">Creates an =
ArgumentNullException with a specified error message   and the name of =
the parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentNullException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._errorArgument("Null", paramName, message);
}

$type.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange">Creates an =
ArgumentOutOfRangeException with a specified error message   and the =
name and actual value of the parameter that caused this =
exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true">The actual value of the parameter.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentOutOfRangeException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualValue", mayBeNull: true, optional: true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;

    var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + =
(message || Sys.Res.argumentOutOfRange);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }

    if (typeof(actualValue) !=3D=3D "undefined" && actualValue !=3D=3D =
null) {
        displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, =
actualValue);
    }

    var err =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    err.popStackFrame();
    return err;
}

$type.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType">Creates an =
ArgumentTypeException with a specified error message   and the name, =
actual type, and expected type of the parameter that   caused this =
exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The actual type of the parameter value.</param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The expected type of the parameter value.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentTypeException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualType", type: Type, mayBeNull: true, optional: =
true},
        {name: "expectedType", type: Type, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;

    var displayMessage =3D "Sys.ArgumentTypeException: ";
    if (message) {
        displayMessage +=3D message;
    }
    else if (actualType && expectedType) {
        displayMessage +=3D
            String.format(Sys.Res.argumentTypeWithTypes, =
actualType.getName(), expectedType.getName());
    }
    else {
        displayMessage +=3D Sys.Res.argumentType;
    }

    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }

    var err =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    err.popStackFrame();
    return err;
}

$type.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined">Creates an =
ArgumentUndefinedException with a specified error message   and the name =
of the parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentUndefinedException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._errorArgument("Undefined", paramName, message);
}

$type.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format">Creates a format =
error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error object that represents a =
FormatException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("Format", message, "format");
}

$type.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation">Creates an invalid =
operation error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error instance that represents an =
InvalidOperationException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("InvalidOperation", message, "invalidOperation");
}

$type.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented">Creates a not =
implemented error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error instance that represents a =
NotImplementedException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("NotImplemented", message, "notImplemented");
}

$type.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount">Creates a =
ParameterCountException with a specified error message.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents a =
ParameterCountException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("ParameterCount", message, "parameterCount");
}

$type.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam">Updates the fileName and =
lineNumber fields based on the next frame in the   stack trace. Call =
this method whenever an instance of Error is returned   from a function. =
This makes the fileName and lineNumber reported in the   FireFox console =
point to the location where the exception was thrown, not   the location =
where the instance of Error was created.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();


    if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D =
null ||
        typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName =
=3D=3D=3D null ||
        typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber =
=3D=3D=3D null) {
        return;
    }

    var stackFrames =3D this.stack.split("\n");

    var currentFrame =3D stackFrames[0];
    var pattern =3D this.fileName + ":" + this.lineNumber;
    while(typeof(currentFrame) !=3D=3D "undefined" &&
          currentFrame !=3D=3D null &&
          currentFrame.indexOf(pattern) < 0) {
        stackFrames.shift();
        currentFrame =3D stackFrames[0];
    }

    var nextFrame =3D stackFrames[1];

    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }

    var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/);
    if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts =
=3D=3D=3D null) {
        return;
    }

    this.fileName =3D nextFrameParts[1];

    this.lineNumber =3D parseInt(nextFrameParts[2]);

    stackFrames.shift();
    this.stack =3D stackFrames.join("\n");
}
$type =3D Object;
$type.__typeName =3D 'Object';
$type.__class =3D true;

$type.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType"></summary>
    /// <param name=3D"instance">The object for which the type must be =
returned.</param>
    /// <returns type=3D"Type">The type of the object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    var ctor =3D instance.constructor;
    if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName =
|| (ctor.__typeName =3D=3D=3D 'Object')) {
        return Object;
    }
    return ctor;
}

$type.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName"></summary>
    /// <param name=3D"instance">The object for which the type name must =
be returned.</param>
    /// <returns type=3D"String">The name of the type of the =
object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
$type =3D String;
$type.__typeName =3D 'String';
$type.__class =3D true;

$prototype =3D $type.prototype;
$prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith">Determines whether the =
end of this instance matches the specified string.</summary>
    /// <param name=3D"suffix" type=3D"String">A string to compare =
to.</param>
    /// <returns type=3D"Boolean">true if suffix matches the end of this =
instance; otherwise, false.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "suffix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(this.length - suffix.length) =3D=3D=3D suffix);
}

$prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith">Determines whether the =
beginning of this instance matches the specified string.</summary>
    /// <param name=3D"prefix" type=3D"String">The String to =
compare.</param>
    /// <returns type=3D"Boolean">true if prefix matches the beginning =
of this string; otherwise, false.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "prefix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(0, prefix.length) =3D=3D=3D prefix);
}

$prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim">Removes all leading and =
trailing white-space characters from the current String =
object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the start and end of the current =
String object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}

$prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd">Removes all trailing white =
spaces from the current String object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the end of the current String =
object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}

$prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart">Removes all leading =
white spaces from the current String object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the start of the current String =
object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}

$type.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format">Replaces the format items =
in a specified String with the text equivalents of the values of   =
corresponding object instances. The invariant culture will be used to =
format dates and numbers.</summary>
    /// <param name=3D"format" type=3D"String">A format string.</param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true">The objects to format.</param>
    /// <returns type=3D"String">A copy of format in which the format =
items have been replaced by the   string equivalent of the corresponding =
instances of object arguments.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(false, arguments);
}

$type._toFormattedString =3D function =
String$_toFormattedString(useLocale, args) {
    var result =3D '';
    var format =3D args[0];

    for (var i=3D0;;) {
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            if (format.charAt(close + 1) !=3D=3D '}') {
                throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
            }
            result +=3D format.slice(i, close + 1);
            i =3D close + 2;
            continue;
        }

        result +=3D format.slice(i, open);
        i =3D open + 1;

        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }

        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);


        var brace =3D format.substring(i, close);
        var colonIndex =3D brace.indexOf(':');
        var argNumber =3D parseInt((colonIndex < 0)? brace : =
brace.substring(0, colonIndex), 10) + 1;
        if (isNaN(argNumber)) throw Error.argument('format', =
Sys.Res.stringFormatInvalid);
        var argFormat =3D (colonIndex < 0)? '' : =
brace.substring(colonIndex + 1);

        var arg =3D args[argNumber];
        if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) {
            arg =3D '';
        }

        if (arg.toFormattedString) {
            result +=3D arg.toFormattedString(argFormat);
        }
        else if (useLocale && arg.localeFormat) {
            result +=3D arg.localeFormat(argFormat);
        }
        else if (arg.format) {
            result +=3D arg.format(argFormat);
        }
        else
            result +=3D arg.toString();

        i =3D close + 1;
    }

    return result;
}
$type =3D Boolean;
$type.__typeName =3D 'Boolean';
$type.__class =3D true;

$type.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse">Creates a bool from its =
string representation.</summary>
    /// <param name=3D"value" type=3D"String">"true" or "false".</param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    var v =3D value.trim().toLowerCase(),
        r;
    if (v =3D=3D=3D 'false') {
        r =3D false;
    }
    else if (v =3D=3D=3D 'true') {
        r =3D true;
    }
    else {
        throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
    }
    return r;
}
$type =3D Date;
$type.__typeName =3D 'Date';
$type.__class =3D true;
$type =3D Number;
$type.__typeName =3D 'Number';
$type.__class =3D true;
$type =3D RegExp;
$type.__typeName =3D 'RegExp';
$type.__class =3D true;
if (!window) this.window =3D this;

window.Type =3D $type =3D Function;

$type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
$type.__identifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");

$prototype =3D $type.prototype;
$prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod"></summary>
    /// <param name=3D"instance">The instance for the base method. =
Usually 'this'.</param>
    /// <param name=3D"name" type=3D"String">The name of the base =
method.</param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true">The arguments to pass to =
the base method.</param>
    /// <returns>The return value of the base method.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var baseMethod =3D Sys._getBaseMethod(this, instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    return baseArguments ? baseMethod.apply(instance, baseArguments) : =
baseMethod.apply(instance);
}

$prototype.getBaseMethod =3D function Type$getBaseMethod(instance, name) =
{
    /// <summary locid=3D"M:J#Type.getBaseMethod">Use this method to get =
the base implementation of a method from the base class.</summary>
    /// <param name=3D"instance">The instance for which the base method =
is needed. Usually 'this'.</param>
    /// <param name=3D"name" type=3D"String">The name of the method to =
get.</param>
    /// <returns type=3D"Function" mayBeNull=3D"true">The base =
method.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    return Sys._getBaseMethod(this, instance, name);
}

$prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType"></summary>
    /// <returns type=3D"Type" mayBeNull=3D"true">The base =
type.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}

$prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces"></summary>
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false">A copy of the list of interfaces that the =
type implements.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var result =3D [];
    var type =3D this;
    while(type) {
        var interfaces =3D type.__interfaces;
        if (interfaces) {
            for (var i =3D 0, l =3D interfaces.length; i < l; i++) {
                var interfaceType =3D interfaces[i];
                if (!Array.contains(result, interfaceType)) {
                    result.push(interfaceType);
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}

$prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName"></summary>
    /// <returns type=3D"String">The name of the type.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}

$prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface"></summary>
    /// <param name=3D"interfaceType" type=3D"Type">The interface to =
test.</param>
    /// <returns type=3D"Boolean">True if the type implements the =
interface.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "interfaceType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();

    var interfaceName =3D interfaceType.getName();
    var cache =3D this.__interfaceCache;
    if (cache) {
        var cacheEntry =3D cache[interfaceName];
        if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry;
    }
    else {
        cache =3D this.__interfaceCache =3D {};
    }

    var baseType =3D this;
    while (baseType) {
        var interfaces =3D baseType.__interfaces;
        if (interfaces && Array.indexOf(interfaces, interfaceType) =
!=3D=3D -1) {
            return cache[interfaceName] =3D true;
        }

        baseType =3D baseType.__baseType;
    }

    return cache[interfaceName] =3D false;
}

$prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom"></summary>
    /// <param name=3D"parentType" type=3D"Type">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type inherits from =
parentType.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    return Sys._inheritsFrom(this, parentType);
}

Sys._inheritsFrom =3D function _inheritsFrom(type, parentType) {
    var ret;
    if (parentType) {
        var baseType =3D type.__baseType;
        while (baseType) {
            if (baseType =3D=3D=3D parentType) {
                ret =3D true;
                break;
            }
            baseType =3D baseType.__baseType;
        }
    }
    return !!ret;
}

$prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase">This method =
initializes the base type in the context   of a given instance object =
(to keep track of the base type, and to   effectively inherit the object =
model of the base class, and   initializing members of the base class).  =
 This should be called from the derived class constructor.</summary>
    /// <param name=3D"instance">The object to initialize base types =
for. Usually 'this'.</param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true">The arguments for the base =
constructor.</param>
    /// <returns>The instance.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!Sys._isInstanceOfType(this, instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);

    this.resolveInheritance();
    var baseType =3D this.__baseType;
    if (baseType) {
        baseArguments ? baseType.apply(instance, baseArguments) : =
baseType.apply(instance);
    }

    return instance;
}

$prototype.isImplementedBy =3D function Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy"></summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object on which =
the interface must be tested.</param>
    /// <returns type=3D"Boolean">True if the instance implements the =
interface.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;

    var instanceType =3D Object.getType(instance);
    return !!(instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}

$prototype.isInstanceOfType =3D function Type$isInstanceOfType(instance) =
{
    /// <summary locid=3D"M:J#Type.isInstanceOfType"></summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object on which =
the type must be tested.</param>
    /// <returns type=3D"Boolean">True if the object is an instance of =
the type or one of its derived types.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    return Sys._isInstanceOfType(this, instance);
}

$prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass">Registers a class =
(represented by its ctor function), and   optional base type, followed =
by any number of interfaces.</summary>
    /// <param name=3D"typeName" type=3D"String">The fully-qualified =
name of the type.</param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The base type.</param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type">One or several interfaces that the type =
implements.</param>
    /// <returns type=3D"Type">The registered type.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String},
        {name: "baseType", type: Type, mayBeNull: true, optional: true},
        {name: "interfaceTypes", type: Type, parameterArray: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));

    if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D =
'undefined')) throw Error.argumentUndefined('baseType');
    var prototype =3D this.prototype;
    prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__class =3D true;
    if (baseType) {
        this.__baseType =3D baseType;
        this.__basePrototypePending =3D true;
    }
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;

    if (interfaceTypes) {
        var interfaces =3D this.__interfaces =3D [];
        this.resolveInheritance();
        for (var i =3D 2, l =3D arguments.length; i < l; i++) {
            var interfaceType =3D arguments[i];
            if (!interfaceType.__interface) throw =
Error.argument('interfaceTypes[' + (i - 2) + ']', =
Sys.Res.notAnInterface);
            for (var methodName in interfaceType.prototype) {
                var method =3D interfaceType.prototype[methodName];
                if (!prototype[methodName]) {
                    prototype[methodName] =3D method;
                }
            }
            interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}

Sys.registerComponent =3D function registerComponent(type, options) {
    /// <summary locid=3D"M:J#Sys.registerComponent">Generates a =
create() function for the given type using the optional description and =
parameters for intellisense.</summary>
    /// <param name=3D"type" type=3D"Function">The type to be =
created.</param>
    /// <param name=3D"options" type=3D"Object" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Function},
        {name: "options", type: Object, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var typeName =3D type.getName();
    var isControlOrBehavior =3D Sys.UI && (Sys._inheritsFrom(type, =
Sys.UI.Control) || Sys._inheritsFrom(type, Sys.UI.Behavior));
    var name =3D (options && options.name);
    if (!name) {
        name =3D typeName;
        var i =3D name.lastIndexOf('.');
        if (i >=3D 0) {
            name =3D name.substr(i+1);
            if (name && name.charAt(0) =3D=3D=3D "_") return;
        }
        name =3D name.substr(0, 1).toLowerCase() + name.substr(1);
    }
    if (!options) {
        options =3D {};
    }
    options.name =3D name;
    options.type =3D type;
    options.typeName =3D typeName;
    options._isBehavior =3D isControlOrBehavior;
   =20
    options =3D Sys.components[name] =3D merge(Sys.components[name], =
options);

    var fn =3D Sys._getCreate(options),
        target =3D isControlOrBehavior ? Sys.ElementSet.prototype : =
Sys.create;
    target[name] =3D fn;
}

Sys.registerPlugin =3D function registerPlugin(pluginInfo) {
    /// <summary locid=3D"M:J#Sys.registerPlugin"></summary>
    /// <param name=3D"pluginInfo" type=3D"Object">An object describing =
the plugin (name, plugin, dom, global, components)</param>
    var e =3D Function._validateParams(arguments, [
        {name: "pluginInfo", type: Object}
    ]);
    if (e) throw e;
    var name =3D pluginInfo.name,
        fnName =3D pluginInfo.functionName || name;
    Sys.plugins[name] =3D merge(Sys.plugins[name], pluginInfo);
    var plugin =3D pluginInfo.plugin,
        sysTarget;
    if (pluginInfo.global) {
        sysTarget =3D Sys;
    }
    else if (pluginInfo.dom) {
        sysTarget =3D Sys.ElementSet.prototype;
    }
    else if (pluginInfo.components) {
        sysTarget =3D Sys.ComponentSet.prototype;
    }
    if (sysTarget) {
        sysTarget[fnName] =3D Sys._getCreate(pluginInfo, true);
    }
}

Sys._createComp =3D function _createComp(component, defaults, args) {
    var type =3D component.type,
        parameters =3D component.parameters || [],
        isBehavior =3D component._isBehavior,
        target =3D isBehavior ? args[0] : null;
    var props =3D args[parameters.length] || {};
    props =3D merge({}, defaults, props);
    foreach(parameters, function(parameter, i) {
        var name =3D typeof(parameter) =3D=3D=3D "string" ? parameter : =
parameter.name,
            value =3D args[i];
        if (typeof(value) !=3D=3D "undefined" && typeof(props[name]) =
=3D=3D=3D "undefined") {
            props[name] =3D value;
        }
    });
    if (this instanceof Sys.ElementSet) {
        var components =3D [];
        this.each(function() {
            components.push(Sys._create(type, props, this));
        });
        return new Sys.ComponentSet(this, components);
    }
    else {
        return Sys._create(type, props);
    }
}

Sys._create =3D function _create(type, properties, target) {
    var targetType =3D typeof(target);
    if (targetType =3D=3D=3D "string") {
        target =3D Sys.get(target);
    }
    var instance;
    Sys._2Pass(function() {
        instance =3D targetType =3D=3D=3D "undefined" ? new type() : new =
type(target);
        callIf(instance, "beginUpdate");
        Sys._set(instance, properties);
        var componentType =3D Sys.Component;
        if (!componentType || !componentType._register(instance)) {
            callIf(instance, "endUpdate") || callIf(instance, =
"initialize");
        }
    });   =20
    return instance;
}

$prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface">Registers an =
interface (represented by its ctor function).</summary>
    /// <param name=3D"typeName" type=3D"String">The fully-qualified =
name of the interface.</param>
    /// <returns type=3D"Type">The registered interface.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;

    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__interface =3D true;
    Sys.__registeredTypes[typeName] =3D true;

    return this;
}

$prototype.resolveInheritance =3D function Type$resolveInheritance() {
    /// <summary locid=3D"M:J#Type.resolveInheritance">This method is =
called on the ctor function instance. It does three things: 1. It stores =
__baseType as a property of the constructor function 2. It copies =
members from the baseType's prototype into the  prototype associated =
with the type represented by this ctor,  if this type itself doesn't =
have the same member in its prototype,  i.e., it doesn't override the =
method. 3. It recurses up the inheritance chain to do the same for the =
base type.  Note that this logic runs only once per type, because it  is =
based on true value for __basePrototypePending property  off the ctor =
function.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();

    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;

        baseType.resolveInheritance();
        var basePrototype =3D baseType.prototype,
            thisPrototype =3D this.prototype;
        for (var memberName in basePrototype) {
            thisPrototype[memberName] =3D thisPrototype[memberName] || =
basePrototype[memberName];
        }
        delete this.__basePrototypePending;
    }
}

$type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces"></summary>
    /// <returns type=3D"Array">Returns an array containing references =
to all the root namespaces</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return Array.clone(Sys.__rootNamespaces);
}

$type.isClass =3D function Type$isClass(type) {
    /// <summary locid=3D"M:J#Type.isClass"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is a class.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__class);
}

$type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is an =
interface.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__interface);
}

$type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace"></summary>
    /// <param name=3D"object" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the object is a =
namespace.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(object && object.__namespace);
}

$type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse">If a namespace is specified, =
the type name is searched for on this namespace in a  case-insensitive =
way.  If no namespace is specified, the fully-qualified, case-sensitive =
type name must be specified.</summary>
    /// <param name=3D"typeName" type=3D"String" mayBeNull=3D"true">The =
name of the type.</param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true">The =
namespace where to look for the type.</param>
    /// <returns type=3D"Type" mayBeNull=3D"true">The type or =
null.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String, mayBeNull: true},
        {name: "ns", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var fn;
    if (ns) {
        fn =3D Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + =
typeName.toUpperCase()];
        return fn || null;
    }
    if (!typeName) return null;
    var htClasses =3D Type.__htClasses;
    if (!htClasses) {
        Type.__htClasses =3D htClasses =3D {};
    }
    fn =3D htClasses[typeName];
    if (!fn) {
        fn =3D window.eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        htClasses[typeName] =3D fn;
    }
    return fn;
}

$type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace">Creates a =
namespace.</summary>
    /// <param name=3D"namespacePath" type=3D"String">The full path of =
the namespace.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    Type._registerNamespace(namespacePath);
}
$type._registerNamespace =3D function =
Type$_registerNamespace(namespacePath) {
    if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) =
throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
    var rootObject =3D window;
    var namespaceParts =3D namespacePath.split('.');

    for (var i =3D 0, l =3D namespaceParts.length; i < l; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        var nsType =3D typeof(ns);
        if ((nsType !=3D=3D "undefined") && (ns !=3D=3D null)) {
            if (nsType =3D=3D=3D "function") {
                throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsClass, =
namespaceParts.splice(0, i + 1).join('.')));
            }
            if ((typeof(ns) !=3D=3D "object") || (ns instanceof Array)) =
{
                throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsNonObject, =
namespaceParts.splice(0, i + 1).join('.')));
            }
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {};
        }
        if (!ns.__namespace) {
            if (!i && (namespacePath !=3D=3D "Sys")) {
                Sys.__rootNamespaces.push(ns);
            }
            ns.__namespace =3D true;
            ns.__typeName =3D namespaceParts.slice(0, i + 1).join('.');
            var parsedName;
            try {
                parsedName =3D eval(ns.__typeName);
            }
            catch(e) {
                parsedName =3D null;
            }
            if (parsedName !=3D=3D ns) {
                delete rootObject[currentPart];
                throw Error.argument('namespacePath', =
Sys.Res.invalidNameSpace);
            }
            ns.getName =3D function ns$getName() {return =
this.__typeName;}
        }
        rootObject =3D ns;
    }
}

$type._checkDependency =3D function Type$_checkDependency(dependency, =
featureName) {
    var scripts =3D Type._registerScript._scripts, isDependent =3D =
(scripts ? (!!scripts[dependency]) : false);
    if ((typeof(featureName) !=3D=3D 'undefined') && !isDependent) {
        throw =
Error.invalidOperation(String.format(Sys.Res.requiredScriptReferenceNotIn=
cluded,=20
        featureName, dependency));
    }
    return isDependent;
}

$type._registerScript =3D function Type$_registerScript(scriptName, =
dependencies) {
    var scripts =3D Type._registerScript._scripts;
    if (!scripts) {
        Type._registerScript._scripts =3D scripts =3D {};
    }
    if (scripts[scriptName]) {
        throw =
Error.invalidOperation(String.format(Sys.Res.scriptAlreadyLoaded, =
scriptName));
    }
    scripts[scriptName] =3D true;
    if (dependencies) {
        for (var i =3D 0, l =3D dependencies.length; i < l; i++) {
            var dependency =3D dependencies[i];
            if (!Type._checkDependency(dependency)) {
                throw =
Error.invalidOperation(String.format(Sys.Res.scriptDependencyNotFound, =
scriptName, dependency));
            }
        }
    }
}

$type._registerNamespace("Sys");
Sys.__upperCaseTypes =3D {};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};

Sys._isInstanceOfType =3D function _isInstanceOfType(type, instance) {
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof type) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D type) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(type)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(type));
}

Sys._getBaseMethod =3D function _getBaseMethod(type, instance, name) {
    if (!Sys._isInstanceOfType(type, instance)) throw =
Error.argumentType('instance', Object.getType(instance), type);
    var baseType =3D type.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}

Sys._isDomElement =3D function _isDomElement(obj) {
    var val =3D false;
    if (typeof (obj.nodeType) !=3D=3D 'number') {
        var doc =3D obj.ownerDocument || obj.document || obj;
        if (doc !=3D obj) {
            var w =3D doc.defaultView || doc.parentWindow;
            val =3D (w !=3D obj);
        }
        else {
            val =3D !doc.body || !Sys._isDomElement(doc.body);
        }
    }
    return !val;
}

var isBrowser =3D Sys._isBrowser =3D function _isBrowser(name) {
    return Sys.Browser.agent =3D=3D=3D Sys.Browser[name];
}


foreach(Sys._ns, $type._registerNamespace);
delete Sys._ns;
$type =3D Array;
$type.__typeName =3D 'Array';
$type.__class =3D true;

var indexOf =3D Sys._indexOf =3D function _indexOf(array, item, start) {
    if (typeof(item) =3D=3D=3D "undefined") return -1;
    var length =3D array.length;
    if (length !=3D=3D 0) {
        start =3D start - 0;
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            if (isFinite(start)) {
                start =3D start - (start % 1);
            }
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }

        for (var i =3D start; i < length; i++) {
            if (array[i] =3D=3D=3D item) {
                return i;
            }
        }
    }
    return -1;
}

$type.add =3D $type.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue">Adds an element at the end =
of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The object to =
add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array[array.length] =3D item;
}

$type.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange">Adds a range of items at =
the end of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to append.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;

    array.push.apply(array, items);
}

$type.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear">Clears the array of its =
elements.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to clear.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}

$type.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone">Makes a clone of the =
array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to clone.</param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true">A clone of the =
array.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.length =3D=3D=3D 1 ? [array[0]] : Array.apply(null, =
array);
}

$type.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains">Use this method to =
determine if an array contains the specified element.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to look into.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The object to find in =
the array.</param>
    /// <returns type=3D"Boolean">True if the object was =
found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (indexOf(array, item) >=3D 0);
}

$type.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue"></summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">Removes and returns the object at the =
beginning of the array.</param>
    /// <returns mayBeNull=3D"true">The object that is removed from the =
beginning of the array.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}

$type.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach">Calls the specified =
function on each element of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to enumerate.</param>
    /// <param name=3D"method" type=3D"Function">The method to call.   =
The method should take the array element, the index of the element and   =
the array itself as its parameters.</param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true">The context under which the function must run (i.e. =
what 'this' means inside the function).</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "method", type: Function},
        {name: "instance", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    for (var i =3D 0, l =3D array.length; i < l; i++) {
        var elt =3D array[i];
        if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, =
i, array);
    }
}

$type.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf">Finds the index in the =
array of the provided item.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to look into.</param>
    /// <param name=3D"item" optional=3D"true" mayBeNull=3D"true">The =
object to find.</param>
    /// <param name=3D"start" optional=3D"true" mayBeNull=3D"true">The =
index where the search begins.</param>
    /// <returns type=3D"Number">The index of the item or -1 if it =
wasn't found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true, optional: true},
        {name: "start", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return indexOf(array, item, start);
}

$type.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert">Inserts an item at the =
specified index.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to insert into.</param>
    /// <param name=3D"index" mayBeNull=3D"true">The index where the =
item will be inserted.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 0, item);
}

$type.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse">Creates an array from a =
string representation of the form "[elt1, elt2, elt3]".</summary>
    /// <param name=3D"value" type=3D"String" mayBeNull=3D"true">The =
string representation of the array.</param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true">An array built =
from the string representation.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    var v =3D value ? window.eval("(" + value + ")") : [];
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}

$type.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove">Removes the first occurence =
of an item from the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
    /// <returns type=3D"Boolean">True if the item was found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}

$type.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt">Removes the item at the =
specified index from the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"index" mayBeNull=3D"true">The index of the item =
to remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 1);
}



Type._registerScript._scripts =3D {
	"MicrosoftAjaxCore.js": true,
	"MicrosoftAjaxGlobalization.js": true,
	"MicrosoftAjaxSerialization.js": true,
	"MicrosoftAjaxComponentModel.js": true,
	"MicrosoftAjaxHistory.js": true,
	"MicrosoftAjaxNetwork.js" : true,
	"MicrosoftAjaxWebServices.js": true };

$type =3D Sys.IDisposable =3D function IDisposable() {
    throw Error.notImplemented();
}
$type.prototype =3D {
    dispose: function IDisposable$dispose() {
        throw Error.notImplemented();
    }
}
$type.registerInterface('Sys.IDisposable');
$type =3D Sys.StringBuilder =3D function StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor">Provides an =
optimized mechanism to concatenate a sequence of strings.</summary>
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true">The initial text for the StringBuilder.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "initialText", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && =
initialText !=3D=3D null && initialText !=3D=3D '') ?
        [initialText.toString()] : [];
    this._value =3D {};
    this._len =3D 0;
}

$type.prototype =3D {
    append: function StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append">Appends a =
new string at the end of the StringBuilder.</summary>
        /// <param name=3D"text" mayBeNull=3D"true">The string to =
append.</param>
        /// <returns type=3D"Sys.StringBuilder"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts.push(text);
        return this;
    },

    appendLine: function StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine">Appends =
a new string as a line of text at the end of the =
StringBuilder.</summary>
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true">The string to append.</param>
        /// <returns type=3D"Sys.StringBuilder"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts.push(
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : (text + '\r\n'));
        return this;
    },

    clear: function StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear">Clears the =
StringBuilder of its current contents.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    },

    isEmpty: function StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty">Use this =
method to determine if the StringBuilder has contents.</summary>
        /// <returns type=3D"Boolean">True if the StringBuilder has any =
contents.</returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return (!this._parts.length || !this.toString());
    },

    toString: function StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString">Creates a =
string from the contents of the StringBuilder.</summary>
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The separator to insert between the elements of the =
StringBuilder.</param>
        /// <returns type=3D"String">The string built from the =
StringBuilder.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "separator", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        separator =3D separator || '';
        var parts =3D this._parts;
        if (this._len !=3D=3D parts.length) {
            this._value =3D {};
            this._len =3D parts.length;
        }
        var val =3D this._value;
        var ret =3D val[separator];
        if (typeof(ret) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    var part =3D parts[i];
                    if ((typeof(part) =3D=3D=3D 'undefined') || (part =
=3D=3D=3D '') || (part =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D ret =3D parts.join(separator);
        }
        return ret;
    }
}
$type.registerClass('Sys.StringBuilder');

var agent =3D navigator.userAgent,
    browser =3D Sys.Browser =3D {
        InternetExplorer: {},
        Firefox: {},
        Safari: {},
        Opera: {},
        agent: null,
        hasDebuggerStatement: false,
        name: navigator.appName,
        version: parseFloat(navigator.appVersion),
        documentMode: 0 };

if (agent.indexOf(' MSIE ') > -1) {
    browser.agent =3D browser.InternetExplorer;
    browser.version =3D parseFloat(agent.match(/MSIE (\d+\.\d+)/)[1]);
    if ((browser.version > 7) && (document.documentMode > 6)) {
        browser.documentMode =3D document.documentMode;   =20
    }
    browser.hasDebuggerStatement =3D true;
}
else if (agent.indexOf(' Firefox/') > -1) {
    browser.agent =3D browser.Firefox;
    browser.version =3D parseFloat(agent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    browser.name =3D 'Firefox';
    browser.hasDebuggerStatement =3D true;
}
else if (agent.indexOf(' AppleWebKit/') > -1) {
    browser.agent =3D browser.Safari;
    browser.version =3D parseFloat(agent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    browser.name =3D 'Safari';
}
else if (agent.indexOf('Opera/') > -1) {
    browser.agent =3D browser.Opera;
}


$type =3D Sys.EventArgs =3D function EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor">EventArgs is the base =
class for classes containing event data.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.registerClass('Sys.EventArgs');

Sys.EventArgs.Empty =3D new Sys.EventArgs();
$type =3D Sys.CancelEventArgs =3D function CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor">CancelEventArgs =
is the base class for classes containing event data, which can be used =
to cancel the event.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);

    this._cancel =3D false;
}
$type.prototype =3D {
    get_cancel: function CancelEventArgs$get_cancel() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.CancelEventArgs.cancel"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._cancel;
    },
    set_cancel: function CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
}
$type.registerClass('Sys.CancelEventArgs', Sys.EventArgs);


Type.registerNamespace('Sys.UI');

$type =3D Sys._Debug =3D function _Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor">Provides a set of methods =
that help debug your code.</summary>
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.prototype =3D {
    _appendConsole: function _Debug$_appendConsole(text) {
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        if (window.opera) {
            window.opera.postError(text);
        }
        if (window.debugService) {
            window.debugService.trace(text);
        }
    },

    _getTrace: function() {
        var traceElement =3D Sys.get('#TraceConsole');
        return (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) ? traceElement : null;
    },

    _appendTrace: function _Debug$_appendTrace(text) {
        var traceElement =3D this._getTrace();
        if (traceElement) {
            traceElement.value +=3D text + '\n';
        }
    },

    assert: function _Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert">Checks for a =
condition, displays a message and prompts the user to break   into the =
debugger if the condition is false.</summary>
        /// <param name=3D"condition" type=3D"Boolean">true to prevent a =
message being displayed; otherwise, false.</param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message to display.</param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true">True if the function calling assert =
should be displayed in the message.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, mayBeNull: true, =
optional: true}
        ]);
        if (e) throw e;
        if (!condition) {
            message =3D (displayCaller && this.assert.caller) ?
                String.format(Sys.Res.assertFailedCaller, message, =
this.assert.caller) :
                String.format(Sys.Res.assertFailed, message);

            if (confirm(String.format(Sys.Res.breakIntoDebugger, =
message))) {
                this.fail(message);
            }
        }
    },

    clearTrace: function _Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D this._getTrace();
        if (traceElement) {
            traceElement.value =3D '';
        }
    },

    fail: function _Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail">Displays a message in =
the debugger's output window and breaks into the debugger.</summary>
        /// <param name=3D"message" type=3D"String" mayBeNull=3D"true">A =
message to display.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);

        if (Sys.Browser.hasDebuggerStatement) {
            window.eval('debugger');
        }
    },

    trace: function _Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace">Appends a text line =
to the debugger console and the TraceConsole textarea element if =
available.</summary>
        /// <param name=3D"text">Text for trace.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    },

    traceDump: function _Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump">Dumps an object =
to the debugger console and the TraceConsole textarea element if =
available.</summary>
        /// <param name=3D"object" mayBeNull=3D"true">Object for trace =
dump.</param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">Object name.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        this._traceDump(object, name, true);
    },

    _traceDump: function _Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name || 'traceDump';
        indentationPadding =3D indentationPadding || '';
        var prefix =3D indentationPadding + name + ": ";
        if (object =3D=3D=3D null) {
            this.trace(prefix + 'null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(prefix + 'Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(prefix + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(prefix + object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(prefix + '...');
                    return;
                }
                loopArray.push(object);

                if ((object =3D=3D window) || (object =3D=3D=3D =
document) ||
                    (window.HTMLElement && (object instanceof =
HTMLElement)) ||
                    (typeof(object.nodeName) =3D=3D=3D 'string')) {
                    var tag =3D object.tagName || 'DomElement';
                    if (object.id) {
                        tag +=3D ' - ' + object.id;
                    }
                    this.trace(indentationPadding + name + ' {' +  tag + =
'}');
                }
                else {
                    var typeName =3D Object.getTypeName(object);
                    this.trace(indentationPadding + name + =
(typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : ''));
                    if ((indentationPadding =3D=3D=3D '') || recursive) =
{
                        indentationPadding +=3D "    ";
                        var i, length, properties, p, v;
                        if (object instanceof Array) {
                            length =3D object.length;
                            for (i =3D 0; i < length; i++) {
                                this._traceDump(object[i], '[' + i + =
']', recursive, indentationPadding, loopArray);
                            }
                        }
                        else {
                            for (p in object) {
                                v =3D object[p];
                                if (typeof(v) !=3D=3D "function") {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
}
$type.registerClass('Sys._Debug');

$type =3D Sys.Debug =3D new Sys._Debug();
$type.isDebug =3D true;
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse">Converts the string =
representation of the name or numeric value of one or more enumerated   =
constants to an equivalent enumerated object.</summary>
    /// <param name=3D"value" type=3D"String">A string containing the =
name or value to convert.</param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">If true, the parsing will be done case-insensitively. =
 If omitted, the parsing is done case-sensitively.</param>
    /// <returns>An object of type enumType whose value is represented =
by value.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    var values, parsed, val;
    if (ignoreCase) {
        values =3D this.__lowerCaseValues;
        if (!values) {
            this.__lowerCaseValues =3D values =3D {};
            var prototype =3D this.prototype;
            for (var name in prototype) {
                values[name.toLowerCase()] =3D prototype[name];
            }
        }
    }
    else {
        values =3D this.prototype;
    }
    function throwError(v) {
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, v, =
this.__typeName));
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throwError.call(this, =
value);
        return parsed;
    }
    else {
        var parts =3D (ignoreCase ? value.toLowerCase() : =
value).split(',');
        var v =3D 0;

        for (var i =3D parts.length - 1; i >=3D 0; i--) {
            var part =3D parts[i].trim();
            parsed =3D values[part];
            if (typeof(parsed) !=3D=3D 'number') throwError.call(this, =
value.split(',')[i].trim());
            v |=3D parsed;
        }
        return v;
    }
}

function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString">Converts the value of =
an enum instance to its equivalent string representation.</summary>
    /// <param name=3D"value" optional=3D"true" mayBeNull=3D"true">The =
value of the enum instance for which the string representation must be =
constructed.</param>
    /// <returns type=3D"String">The string representation of =
"value".</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if ((typeof(value) =3D=3D=3D 'undefined') || (value =3D=3D=3D null)) =
return this.__string;
    if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw =
Error.argumentType('value', Object.getType(value), this);
    var values =3D this.prototype;
    var i;
    if (!this.__flags || (value =3D=3D=3D 0)) {
        for (i in values) {
            if (values[i] =3D=3D=3D value) {
                return i;
            }
        }
    }
    else {
        var sorted =3D this.__sortedValues;
        if (!sorted) {
            sorted =3D [];
            for (i in values) {
                sorted.push({key: i, value: values[i]});
            }
            sorted.sort(function(a, b) {
                return a.value - b.value;
            });
            this.__sortedValues =3D sorted;
        }
        var parts =3D [];
        var v =3D value;
        for (i =3D sorted.length - 1; i >=3D 0; i--) {
            var kvp =3D sorted[i];
            var vali =3D kvp.value;
            if (vali =3D=3D=3D 0) continue;
            if ((vali & value) =3D=3D=3D vali) {
                parts.push(kvp.key);
                v -=3D vali;
                if (v =3D=3D=3D 0) break;
            }
        }
        if (parts.length && v =3D=3D=3D 0) return =
parts.reverse().join(', ');
    }
    throw Error.argumentOutOfRange('value', value, =
String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
}

$type =3D Type;

$type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor">Registers an enum =
type.</summary>
    /// <param name=3D"name" type=3D"String">The fully-qualified name of =
the enum.</param>
    /// <param name=3D"flags" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">True if the enum is a flags collection.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw =
Error.argument('name', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(name);
    }
    catch(e) {
        throw Error.argument('name', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('name', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[name]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
name));
    for (var j in this.prototype) {
        var val =3D this.prototype[j];
        if (!Type.__identifierRegExp.test(j)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, j));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[j]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, j));
    }
    Sys.__upperCaseTypes[name.toUpperCase()] =3D this;

    for (var i in this.prototype) {
        this[i] =3D this.prototype[i];
    }
    this.__typeName =3D name;
    this.parse =3D Sys$Enum$parse;
    this.__string =3D this.toString();
    this.toString =3D Sys$Enum$toString;
    this.__flags =3D flags;
    this.__enum =3D true;
    Sys.__registeredTypes[name] =3D true;
}

$type.isEnum =3D function Type$isEnum(type) {
    /// <summary locid=3D"M:J#Type.isEnum"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is an enum.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__enum);
}

$type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is a set of =
flags.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__flags);
}

$type =3D Sys.CollectionChange =3D function CollectionChange(action, =
newItems, newStartingIndex, oldItems, oldStartingIndex) {
    /// <summary locid=3D"M:J#Sys.CollectionChange.#ctor">Describes a =
change in a collection.</summary>
    /// <param name=3D"action" =
type=3D"Sys.NotifyCollectionChangedAction"></param>
    /// <param name=3D"newItems" optional=3D"true" =
mayBeNull=3D"true">The items that were added when action is add or =
replace.</param>
    /// <param name=3D"newStartingIndex" type=3D"Number" =
integer=3D"true" optional=3D"true" mayBeNull=3D"true">The index where =
new items have been inserted.</param>
    /// <param name=3D"oldItems" optional=3D"true" =
mayBeNull=3D"true">The items that were removed when action is remove or =
replace.</param>
    /// <param name=3D"oldStartingIndex" type=3D"Number" =
integer=3D"true" optional=3D"true" mayBeNull=3D"true">The index where =
old items have been removed.</param>
    /// <field name=3D"action" =
type=3D"Sys.NotifyCollectionChangedAction" =
locid=3D"F:J#Sys.CollectionChange.action"></field>
    /// <field name=3D"newItems" type=3D"Array" mayBeNull=3D"true" =
elementMayBeNull=3D"true" =
locid=3D"F:J#Sys.CollectionChange.newItems">The items that were added =
when action is add.</field>
    /// <field name=3D"newStartingIndex" type=3D"Number" =
integer=3D"true" locid=3D"F:J#Sys.CollectionChange.newStartingIndex">The =
index where new items have been inserted.</field>
    /// <field name=3D"oldItems" type=3D"Array" mayBeNull=3D"true" =
elementMayBeNull=3D"true" =
locid=3D"F:J#Sys.CollectionChange.oldItems">The items that were removed =
when action is remove.</field>
    /// <field name=3D"oldStartingIndex" type=3D"Number" =
integer=3D"true" locid=3D"F:J#Sys.CollectionChange.oldStartingIndex">The =
index where old items have been removed.</field>
    var e =3D Function._validateParams(arguments, [
        {name: "action", type: Sys.NotifyCollectionChangedAction},
        {name: "newItems", mayBeNull: true, optional: true},
        {name: "newStartingIndex", type: Number, mayBeNull: true, =
integer: true, optional: true},
        {name: "oldItems", mayBeNull: true, optional: true},
        {name: "oldStartingIndex", type: Number, mayBeNull: true, =
integer: true, optional: true}
    ]);
    if (e) throw e;
    this.action =3D action;
    if (newItems) {
        if (!(newItems instanceof Array)) {
            newItems =3D [newItems];
        }
    }
    this.newItems =3D newItems || null;
    if (typeof newStartingIndex !=3D=3D "number") {
        newStartingIndex =3D -1;
    }
    this.newStartingIndex =3D newStartingIndex;
    if (oldItems) {
        if (!(oldItems instanceof Array)) {
            oldItems =3D [oldItems];
        }
    }
    this.oldItems =3D oldItems || null;
    if (typeof oldStartingIndex !=3D=3D "number") {
        oldStartingIndex =3D -1;
    }
    this.oldStartingIndex =3D oldStartingIndex;
}
$type.registerClass("Sys.CollectionChange");
$type =3D Sys.NotifyCollectionChangedAction =3D function =
NotifyCollectionChangedAction() {
    /// <summary =
locid=3D"M:J#Sys.NotifyCollectionChangedAction.#ctor">Describes how a =
collection has changed.</summary>
    /// <field name=3D"add" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.add"></field>
    /// <field name=3D"remove" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.remove"></field>
    /// <field name=3D"reset" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.reset"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add: 0,
    remove: 1,
    reset: 2
}
$type.registerEnum('Sys.NotifyCollectionChangedAction');
$type =3D Sys.NotifyCollectionChangedEventArgs =3D function =
NotifyCollectionChangedEventArgs(changes) {
    /// <summary =
locid=3D"M:J#Sys.NotifyCollectionChangedEventArgs.#ctor">Describes how =
the collection was changed.</summary>
    /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "changes", type: Array, elementType: =
Sys.CollectionChange}
    ]);
    if (e) throw e;
    this._changes =3D changes;
    Sys.NotifyCollectionChangedEventArgs.initializeBase(this);
}
$type.prototype =3D {
    get_changes: function NotifyCollectionChangedEventArgs$get_changes() =
{
        /// <value type=3D"Array" elementType=3D"Sys.CollectionChange" =
locid=3D"P:J#Sys.NotifyCollectionChangedEventArgs.changes"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._changes || [];
    }
}
$type.registerClass("Sys.NotifyCollectionChangedEventArgs", =
Sys.EventArgs);

$type =3D Sys.Observer =3D function Observer() {
    throw Error.invalidOperation();
}
$type.registerClass("Sys.Observer");

$type.makeObservable =3D function Observer$makeObservable(target) {
    /// <summary locid=3D"M:J#Sys.Observer.makeObservable">Makes an =
object directly observable by adding observable methods to it.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object, array, or =
DOM element to make observable.</param>
    /// <returns>The observable object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    var isArray =3D target instanceof Array,
        o =3D Sys.Observer;
    Sys.Observer._ensureObservable(target);
    if (target.setValue =3D=3D=3D o._observeMethods.setValue) return =
target;
    o._addMethods(target, o._observeMethods);
    if (isArray) {
        o._addMethods(target, o._arrayMethods);
    }
    return target;
}

$type._ensureObservable =3D function Observer$_ensureObservable(target) =
{
    var type =3D typeof target;
    if ((type =3D=3D=3D "string") || (type =3D=3D=3D "number") || (type =
=3D=3D=3D "boolean") || (type =3D=3D=3D "date")) {
        throw =
Error.invalidOperation(String.format(Sys.Res.notObservable, type));
    }
}
$type._addMethods =3D function Observer$_addMethods(target, methods) {
    for (var m in methods) {
        if (target[m] && (target[m] !=3D=3D methods[m])) {
            throw =
Error.invalidOperation(String.format(Sys.Res.observableConflict, m));
        }
        target[m] =3D methods[m];
    }
}
$type._addEventHandler =3D function Observer$_addEventHandler(target, =
eventName, handler) {
    Sys.Observer._getContext(target, true).events._addHandler(eventName, =
handler);
}
$type.addEventHandler =3D function Observer$addEventHandler(target, =
eventName, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.addEventHandler">Adds an =
observable event handler to the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._addEventHandler(target, eventName, handler);
}
$type._removeEventHandler =3D function =
Observer$_removeEventHandler(target, eventName, handler) {
    Sys.Observer._getContext(target, =
true).events._removeHandler(eventName, handler);
}
$type.removeEventHandler =3D function =
Observer$removeEventHandler(target, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.removeEventHandler">Removes =
an observable event handler from the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._removeEventHandler(target, eventName, handler);
}
$type.clearEventHandlers =3D function =
Observer$clearEventHandlers(target, eventName) {
    /// <summary locid=3D"M:J#Sys.Observer.clearEventHandlers">Removes =
all observable event handlers from the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">If not given, handlers for all events are =
removed.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._getContext(target, =
true).events._removeHandlers(eventName);
}
$type.raiseEvent =3D function Observer$raiseEvent(target, eventName, =
eventArgs) {
    /// <summary locid=3D"M:J#Sys.Observer.raiseEvent">Raises an =
observable event on the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"eventArgs" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "eventArgs", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    if (!ctx) return;
    var handler =3D ctx.events.getHandler(eventName);
    if (handler) {
        handler(target, eventArgs || Sys.EventArgs.Empty);
    }
}
$type.addPropertyChanged =3D function =
Observer$addPropertyChanged(target, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.addPropertyChanged">Adds a =
propertyChanged event handler to the target.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to =
observe.</param>
    /// <param name=3D"handler" type=3D"Function">The event =
handler.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._addEventHandler(target, "propertyChanged", handler);
}
$type.removePropertyChanged =3D function =
Observer$removePropertyChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.removePropertyChanged">Removes a =
propertyChanged event handler from the target.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to =
observe.</param>
    /// <param name=3D"handler" type=3D"Function">The event =
handler.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._removeEventHandler(target, "propertyChanged", =
handler);
}
$type.beginUpdate =3D function Observer$beginUpdate(target) {
    /// <summary locid=3D"M:J#Sys.Observer.beginUpdate"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._getContext(target, true).updating =3D true;
}
$type.endUpdate =3D function Observer$endUpdate(target) {
    /// <summary locid=3D"M:J#Sys.Observer.endUpdate"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    if (!ctx || !ctx.updating) return;
    ctx.updating =3D false;
    var dirty =3D ctx.dirty;
    ctx.dirty =3D false;
    if (dirty) {
        if (target instanceof Array) {
            var changes =3D ctx.changes;
            ctx.changes =3D null;
            Sys.Observer.raiseCollectionChanged(target, changes);
        }
        Sys.Observer.raisePropertyChanged(target, "");
    }
}
$type.isUpdating =3D function Observer$isUpdating(target) {
    /// <summary locid=3D"M:J#Sys.Observer.isUpdating"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    return ctx ? ctx.updating : false;
}
$type._setValue =3D function Observer$_setValue(target, propertyName, =
value) {
    var getter, setter, mainTarget =3D target, path =3D =
propertyName.split('.');
    for (var i =3D 0, l =3D (path.length - 1); i < l ; i++) {
        var name =3D path[i];
        getter =3D target["get_" + name];=20
        if (typeof (getter) =3D=3D=3D "function") {
            target =3D getter.call(target);
        }
        else {
            target =3D target[name];
        }
        var type =3D typeof (target);
        if ((target =3D=3D=3D null) || (type =3D=3D=3D "undefined")) {
            throw =
Error.invalidOperation(String.format(Sys.Res.nullReferenceInPath, =
propertyName));
        }
    }   =20
    var currentValue, lastPath =3D path[l];
    getter =3D target["get_" + lastPath];
    if (typeof(getter) =3D=3D=3D 'function') {
        currentValue =3D getter.call(target);
    }
    else {
        currentValue =3D target[lastPath];
    }
    callIf(target, "set_" + lastPath, value) || (target[lastPath] =3D =
value);
    if (currentValue !=3D=3D value) {
        var ctx =3D Sys.Observer._getContext(mainTarget);
        if (ctx && ctx.updating) {
            ctx.dirty =3D true;
            return;
        };
        Sys.Observer.raisePropertyChanged(mainTarget, path[0]);
    }
}
$type.setValue =3D function Observer$setValue(target, propertyName, =
value) {
    /// <summary locid=3D"M:J#Sys.Observer.setValue">Sets a property or =
field on the target in an observable manner.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to set a =
property on.</param>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property to field to set.</param>
    /// <param name=3D"value" mayBeNull=3D"true">The value to =
set.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "propertyName", type: String},
        {name: "value", mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._setValue(target, propertyName, value);
}
$type.raisePropertyChanged =3D function =
Observer$raisePropertyChanged(target, propertyName) {
    /// <summary locid=3D"M:J#Sys.Observer.raisePropertyChanged">Raises =
a change notification event.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to raise =
the event on.</param>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
    Sys.Observer.raiseEvent(target, "propertyChanged", new =
Sys.PropertyChangedEventArgs(propertyName));
}

$type.addCollectionChanged =3D function =
Observer$addCollectionChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.addCollectionChanged"></summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._addEventHandler(target, "collectionChanged", handler);
}
$type.removeCollectionChanged =3D function =
Observer$removeCollectionChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.removeCollectionChanged"></summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._removeEventHandler(target, "collectionChanged", =
handler);
}
$type._collectionChange =3D function Observer$_collectionChange(target, =
change) {
    var ctx =3D this._getContext(target);
    if (ctx && ctx.updating) {
        ctx.dirty =3D true;
        var changes =3D ctx.changes;
        if (!changes) {
            ctx.changes =3D changes =3D [change];
        }
        else {
            changes.push(change);
        }
    }
    else {
        this.raiseCollectionChanged(target, [change]);
        this.raisePropertyChanged(target, 'length');
    }
}
$type.add =3D function Observer$add(target, item) {
    /// <summary locid=3D"M:J#Sys.Observer.add">Adds an item to the =
collection in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var change =3D new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, [item], =
target.length);
    Array.add(target, item);
    Sys.Observer._collectionChange(target, change);
}
$type.addRange =3D function Observer$addRange(target, items) {
    /// <summary locid=3D"M:J#Sys.Observer.addRange">Adds items to the =
collection in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var change =3D new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, items, =
target.length);
    Array.addRange(target, items);
    Sys.Observer._collectionChange(target, change);
}
$type.clear =3D function Observer$clear(target) {
    /// <summary locid=3D"M:J#Sys.Observer.clear">Clears the array of =
its elements in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to clear.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var oldItems =3D Array.clone(target);
    Array.clear(target);
    Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.reset, null, -1, =
oldItems, 0));
}
$type.insert =3D function Observer$insert(target, index, item) {
    /// <summary locid=3D"M:J#Sys.Observer.insert">Inserts an item at =
the specified index in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to insert into.</param>
    /// <param name=3D"index" type=3D"Number" integer=3D"true">The index =
where the item will be inserted.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "index", type: Number, integer: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    Array.insert(target, index, item);
    Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, [item], =
index));
}
$type.remove =3D function Observer$remove(target, item) {
    /// <summary locid=3D"M:J#Sys.Observer.remove">Removes the first =
occurence of an item from the array in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
    /// <returns type=3D"Boolean">True if the item was found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(target, item);
    if (index !=3D=3D -1) {
        Array.remove(target, item);
        Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove, null, -1, =
[item], index));
        return true;
    }
    return false;
}
$type.removeAt =3D function Observer$removeAt(target, index) {
    /// <summary locid=3D"M:J#Sys.Observer.removeAt">Removes the item at =
the specified index from the array in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"index" type=3D"Number" integer=3D"true">The index =
of the item to remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "index", type: Number, integer: true}
    ]);
    if (e) throw e;
    if ((index > -1) && (index < target.length)) {
        var item =3D target[index];
        Array.removeAt(target, index);
        Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove, null, -1, =
[item], index));
    }
}
$type.raiseCollectionChanged =3D function =
Observer$raiseCollectionChanged(target, changes) {
    /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises the =
collectionChanged event.</summary>
    /// <param name=3D"target">The collection to raise the event =
on.</param>
    /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
    Sys.Observer.raiseEvent(target, "collectionChanged", new =
Sys.NotifyCollectionChangedEventArgs(changes));
}

$type._observeMethods =3D {
    add_propertyChanged: function(handler) {
        Sys.Observer._addEventHandler(this, "propertyChanged", handler);
    },
    remove_propertyChanged: function(handler) {
        Sys.Observer._removeEventHandler(this, "propertyChanged", =
handler);
    },
    addEventHandler: function(eventName, handler) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds an observable =
event handler.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventName", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Sys.Observer._addEventHandler(this, eventName, handler);
    },
    removeEventHandler: function(eventName, handler) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes an observable =
event handler.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventName", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Sys.Observer._removeEventHandler(this, eventName, handler);
    },
    clearEventHandlers: function(eventName) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes all observable =
event handlers from the target.</summary>
        /// <param name=3D"target"></param>
        /// <param name=3D"eventName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">If not given, handlers for all events are =
removed.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "target"},
            {name: "eventName", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        Sys.Observer._getContext(this, =
true).events._removeHandlers(eventName);
    },
    get_isUpdating: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        /// <returns type=3D"Boolean"></returns>
        return Sys.Observer.isUpdating(this);
    },
    beginUpdate: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        Sys.Observer.beginUpdate(this);
    },
    endUpdate: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        Sys.Observer.endUpdate(this);
    },
    setValue: function(name, value) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Sets a property or =
field on the target in an observable manner.</summary>
        /// <param name=3D"name" type=3D"String">The name of the =
property to field to set.</param>
        /// <param name=3D"value" mayBeNull=3D"true">The value to =
set.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "name", type: String},
            {name: "value", mayBeNull: true}
        ]);
        if (e) throw e;
        Sys.Observer._setValue(this, name, value);
    },
    raiseEvent: function(eventName, eventArgs) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises an observable =
event.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"eventArgs" optional=3D"true" =
mayBeNull=3D"true"></param>
        Sys.Observer.raiseEvent(this, eventName, eventArgs||null);
    },
    raisePropertyChanged: function(name) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises a change =
notification event.</summary>
        /// <param name=3D"name" type=3D"String">The name of the =
property that changed.</param>
        Sys.Observer.raiseEvent(this, "propertyChanged", new =
Sys.PropertyChangedEventArgs(name));
    }
}
$type._arrayMethods =3D {
    add_collectionChanged: function(handler) {
        Sys.Observer._addEventHandler(this, "collectionChanged", =
handler);
    },
    remove_collectionChanged: function(handler) {
        Sys.Observer._removeEventHandler(this, "collectionChanged", =
handler);
    },
    add: function(item) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds an item to the =
collection in an observable manner.</summary>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
add.</param>
        Sys.Observer.add(this, item);
    },
    addRange: function(items) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds items to the =
collection in an observable manner.</summary>
        /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to add.</param>
        Sys.Observer.addRange(this, items);
    },
    clear: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Clears the array of =
its elements in an observable manner.</summary>
        Sys.Observer.clear(this);
    },
    insert: function(index, item) {=20
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Inserts an item at the =
specified index in an observable manner.</summary>
        /// <param name=3D"index" type=3D"Number" integer=3D"true">The =
index where the item will be inserted.</param>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</param>
        Sys.Observer.insert(this, index, item);
    },
    remove: function(item) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes the first =
occurence of an item from the array in an observable manner.</summary>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
        /// <returns type=3D"Boolean">True if the item was =
found.</returns>
        return Sys.Observer.remove(this, item);
    },
    removeAt: function(index) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes the item at =
the specified index from the array in an observable manner.</summary>
        /// <param name=3D"index" type=3D"Number" integer=3D"true">The =
index of the item to remove.</param>
        Sys.Observer.removeAt(this, index);
    },
    raiseCollectionChanged: function(changes) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises the =
collectionChanged event.</summary>
        /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
        Sys.Observer.raiseEvent(this, "collectionChanged", new =
Sys.NotifyCollectionChangedEventArgs(changes));
    }
}
$type._getContext =3D function Observer$_getContext(obj, create) {
    var ctx =3D obj._observerContext;
    if (ctx) return ctx();
    if (create) {
        return (obj._observerContext =3D this._createContext())();
    }
    return null;
}
$type._createContext =3D function Observer$_createContext() {
    var ctx =3D {
        events: new Sys.EventHandlerList()
    };
    return function() {
        return ctx;
    }
}


function outOfRange(value, low, high) {
    return (value < low) || (value > high);
}

function expandYear(dtf, year) {
    var now =3D new Date(),
        era =3D getEra(now);
    if (year < 100) {
        var curr =3D getEraYear(now, dtf, era);
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            year -=3D 100;
        }
    }
    return year;
}

function getEra(date, eras) {
    if (!eras) return 0;
    var start, ticks =3D date.getTime();
    for (var i =3D 0, l =3D eras.length; i < l; i +=3D 4) {
        start =3D eras[i+2];
        if ((start =3D=3D=3D null) || (ticks >=3D start)) {
            return i;
        }
    }
    return 0;
}

function getEraYear(date, dtf, era, sortable) {
    var year =3D date.getFullYear();
    if (!sortable && dtf.eras) {
        year -=3D dtf.eras[era + 3];
    }   =20
    return year;
}

Sys._appendPreOrPostMatch =3D function _appendPreOrPostMatch(preMatch, =
strings) {
    var quoteCount =3D 0;
    var escaped =3D false;
    for (var i =3D 0, il =3D preMatch.length; i < il; i++) {
        var c =3D preMatch.charAt(i);
        switch (c) {
        case '\'':
            if (escaped) strings.push("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strings.push("\\");
            escaped =3D !escaped;
            break;
        default:
            strings.push(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}

$type =3D Date;
$type._expandFormat =3D function Date$_expandFormat(dtf, format) {
    format =3D format || "F";
    var len =3D format.length;
    if (len =3D=3D=3D 1) {
        switch (format) {
        case "d":
            return dtf["ShortDatePattern"];
        case "D":
            return dtf["LongDatePattern"];
        case "t":
            return dtf["ShortTimePattern"];
        case "T":
            return dtf["LongTimePattern"];
        case "f":
            return dtf["LongDatePattern"] + " " + =
dtf["ShortTimePattern"];
        case "F":
            return dtf["FullDateTimePattern"];
        case "M": case "m":
            return dtf["MonthDayPattern"];
        case "s":
            return dtf["SortableDateTimePattern"];
        case "Y": case "y":
            return dtf["YearMonthPattern"];
        default:
            throw Error.format(Sys.Res.formatInvalidString);
        }
    }
    else if ((len =3D=3D=3D 2) && (format.charAt(0) =3D=3D=3D "%")) {
        format =3D format.charAt(1);
    }
    return format;
}

$type._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    var re =3D dtf._parseRegExp;
    if (!re) {
        dtf._parseRegExp =3D re =3D {};
    }
    else {
        var reFormat =3D re[format];
        if (reFormat) {
            return reFormat;
        }
    }

    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");

    var regexp =3D ["^"];
    var groups =3D [];
    var index =3D 0;
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    var match;

    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;

        quoteCount +=3D Sys._appendPreOrPostMatch(preMatch, regexp);
        if (quoteCount % 2) {
            regexp.push(match[0]);
            continue;
        }

        var m =3D match[0],
            len =3D m.length,
            add;
        switch (m) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
            case 'gg': case 'g':
                add =3D "(\\D+)";
                break;
            case 'tt': case 't':
                add =3D "(\\D*)";
                break;
            case 'yyyy':
            case 'fff':
            case 'ff':
            case 'f':
                add =3D "(\\d{" + len + "})";
                break;
            case 'dd': case 'd':
            case 'MM': case 'M':
            case 'yy': case 'y':
            case 'HH': case 'H':
            case 'hh': case 'h':
            case 'mm': case 'm':
            case 'ss': case 's':
                add =3D "(\\d\\d?)";
                break;
            case 'zzz':
                add =3D "([+-]?\\d\\d?:\\d{2})";
                break;
            case 'zz': case 'z':
                add =3D "([+-]?\\d\\d?)";
                break;
            case '/':
                add =3D "(\\" + dtf.DateSeparator + ")";
                break;
        }
        if (add) {
            regexp.push(add);
        }
        groups.push(match[0]);
    }
    Sys._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.push("$");
    var regexpStr =3D regexp.join('').replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    re[format] =3D parseRegExp;
    return parseRegExp;
}

$type._getTokenRegExp =3D function Date$_getTokenRegExp() {
    return =
/\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff=
|f|zzz|zz|z|gg|g/g;
}

$type.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale">Creates a date from a =
locale-specific string representation.</summary>
    /// <param name=3D"value" type=3D"String">A locale-specific string =
that can parse to a date.</param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true">Custom formats to match.</param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.CurrentCulture, =
arguments);
}

$type.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant">Creates a date from =
its string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a date.</param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true">Custom formats to match.</param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.InvariantCulture, =
arguments);
}

$type._parse =3D function Date$_parse(value, cultureInfo, args) {
    var i, l, date, format, formats, custom =3D false;
    for (i =3D 1, l =3D args.length; i < l; i++) {
        format =3D args[i];
        if (format) {
            custom =3D true;
            date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        formats =3D cultureInfo._getDateTimeFormats();
        for (i =3D 0, l =3D formats.length; i < l; i++) {
            date =3D Date._parseExact(value, formats[i], cultureInfo);
            if (date) return date;
        }
    }
    return null;
}

$type._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat,
        parseInfo =3D this._getParseRegExp(dtf, format),
        match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups,
        era =3D null, year =3D null, month =3D null, date =3D null, =
weekDay =3D null,
        hour =3D 0, hourOffset, min =3D 0, sec =3D 0, msec =3D 0, =
tzMinOffset =3D null,
        pmHour =3D false;
   =20
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            var current =3D groups[j],
                clength =3D current.length,
                matchInt =3D parseInt(matchGroup, 10);
            switch (current) {
                case 'dd': case 'd':
                    date =3D matchInt;
                    if (outOfRange(date, 1, 31)) return null;
                    break;
                case 'MMM':
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup, =
clength =3D=3D=3D 3);
                    if (outOfRange(month, 0, 11)) return null;
                    break;
                case 'M': case 'MM':
                    month =3D matchInt - 1;
                    if (outOfRange(month, 0, 11)) return null;
                    break;
                case 'y': case 'yy':
                case 'yyyy':
                    year =3D clength < 4 ? expandYear(dtf,matchInt) : =
matchInt;
                    if (outOfRange(year, 0, 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D matchInt;
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if (outOfRange(hour, 0, 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D matchInt;
                    if (outOfRange(hour, 0, 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D matchInt;
                    if (outOfRange(min, 0, 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D matchInt;
                    if (outOfRange(sec, 0, 59)) return null;
                    break;
                case 'tt': case 't':
                    var upperToken =3D matchGroup.toUpperCase();
                    pmHour =3D (upperToken =3D=3D=3D =
dtf.PMDesignator.toUpperCase());
                    if (!pmHour && (upperToken !=3D=3D =
dtf.AMDesignator.toUpperCase())) return null;
                    break;
                case 'f':
                case 'ff':
                case 'fff':
                    msec =3D matchInt * Math.pow(10, 3-clength);
                    if (outOfRange(msec, 0, 999)) return null;
                    break;
                case 'ddd':
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup, =
clength =3D=3D=3D 3);
                    if (outOfRange(weekDay, 0, 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    hourOffset =3D parseInt(offsets[0], 10);
                    if (outOfRange(hourOffset, -12, 13)) return null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if (outOfRange(minOffset, 0, 59)) return null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    hourOffset =3D matchInt;
                    if (outOfRange(hourOffset, -12, 13)) return null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
                case 'g': case 'gg':
                    var eraName =3D matchGroup;
                    if (!eraName || !dtf.eras) return null;
                    eraName =3D eraName.toLowerCase().trim();
                    for (var i =3D 0, l =3D dtf.eras.length; i < l; i =
+=3D 4) {
                        if (eraName =3D=3D=3D dtf.eras[i + =
1].toLowerCase()) {
                            era =3D i;
                            break;
                        }
                    }
                    if (era =3D=3D=3D null) return null;
                    break;
            }
        }
    }
    var result =3D new Date(), defaultYear, convert =3D =
dtf.Calendar.convert;
    defaultYear =3D convert ? convert.fromGregorian(result)[0] : =
result.getFullYear();
    if (year =3D=3D=3D null) {
        year =3D defaultYear;
    }
    else if (dtf.eras) {
        year +=3D dtf.eras[(era || 0) + 3];
    }
    if (month =3D=3D=3D null) {
        month =3D 0;
    }
    if (date =3D=3D=3D null) {
        date =3D 1;
    }
    if (convert) {
        result =3D convert.toGregorian(year, month, date);
        if (result =3D=3D=3D null) return null;
    }
    else {
        result.setFullYear(year, month, date);
        if (result.getDate() !=3D=3D date) return null;
        if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) =
{
            return null;
        }
    }
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        result.setHours(result.getHours() + parseInt(adjustedMin/60, =
10), adjustedMin%60);
    }
    return result;
}

$prototype =3D $type.prototype;
$prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format">Format a date using the =
invariant culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted date.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}

$prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat">Format a date using the =
current culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted date.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}

$prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    var dtf =3D cultureInfo.dateTimeFormat,
        convert =3D dtf.Calendar.convert;
    if (!format || !format.length || (format =3D=3D=3D 'i')) {
        var ret;
        if (cultureInfo && cultureInfo.name.length) {
            if (convert) {
                ret =3D this._toFormattedString(dtf.FullDateTimePattern, =
cultureInfo);
            }
            else {
                var eraDate =3D new Date(this.getTime());
                var era =3D getEra(this, dtf.eras);
                eraDate.setFullYear(getEraYear(this, dtf, era));
                ret =3D eraDate.toLocaleString();
            }
        }
        else {
            ret =3D this.toString();
        }
        return ret;
    }

    var eras =3D dtf.eras,
        sortable =3D (format =3D=3D=3D "s");
    format =3D Date._expandFormat(dtf, format);

    ret =3D [];
    var hour;

    var zeros =3D ['0','00','000'];
    function padZeros(num, c) {
        var s =3D num+'';
        return ((c > 1) && (s.length < c)) ? (zeros[c-2]+s).substr(-c) : =
s;
    }

    var foundDay, checkedDay, dayPartRegExp =3D =
/([^d]|^)(d|dd)([^d]|$)/g;
    function hasDay() {
        if (foundDay || checkedDay) {
            return foundDay;
        }
        foundDay =3D dayPartRegExp.test(format);
        checkedDay =3D true;
        return foundDay;
    }
   =20
    var quoteCount =3D 0,
        tokenRegExp =3D Date._getTokenRegExp(),
        converted;
    if (!sortable && convert) {
        converted =3D convert.fromGregorian(this);
    }
    for (;;) {

        var index =3D tokenRegExp.lastIndex;

        var ar =3D tokenRegExp.exec(format);

        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Sys._appendPreOrPostMatch(preMatch, ret);

        if (!ar) break;

        if (quoteCount % 2) {
            ret.push(ar[0]);
            continue;
        }
       =20
        function getPart(date, part) {
            if (converted) {
                return converted[part];
            }
            switch (part) {
                case 0: return date.getFullYear();
                case 1: return date.getMonth();
                case 2: return date.getDate();
            }
        }

        var current =3D ar[0],
            clength =3D current.length;

        switch (current) {
        case "ddd":
        case "dddd":
            names =3D (clength =3D=3D=3D 3) ? dtf.AbbreviatedDayNames : =
dtf.DayNames;
            ret.push(names[this.getDay()]);
            break;
        case "d":
        case "dd":
            foundDay =3D true;
            ret.push(padZeros(getPart(this, 2), clength));
            break;
        case "MMM":
        case "MMMM":
            var namePrefix =3D (clength =3D=3D=3D 3 ? "Abbreviated" : =
""),
                genitiveNames =3D dtf[namePrefix + =
"MonthGenitiveNames"],
                names =3D dtf[namePrefix + "MonthNames"],
                part =3D getPart(this, 1);
            ret.push((genitiveNames && hasDay())
                ? genitiveNames[part]
                : names[part]);
            break;
        case "M":
        case "MM":
            ret.push(padZeros(getPart(this, 1) + 1, clength));
            break;
        case "y":
        case "yy":
        case "yyyy":
            part =3D converted ? converted[0] : getEraYear(this, dtf, =
getEra(this, eras), sortable);
            if (clength < 4) {
                part =3D part % 100;
            }
            ret.push(padZeros(part, clength));
            break;
        case "h":
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.push(padZeros(hour, clength));
            break;
        case "H":
        case "HH":
            ret.push(padZeros(this.getHours(), clength));
            break;
        case "m":
        case "mm":
            ret.push(padZeros(this.getMinutes(), clength));
            break;
        case "s":
        case "ss":
            ret.push(padZeros(this.getSeconds(), clength));
            break;
        case "t":
        case "tt":
            part =3D (this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator;
            ret.push(clength =3D=3D=3D 1 ? part.charAt(0) : part);
            break;
        case "f":
        case "ff":
        case "fff":
            ret.push(padZeros(this.getMilliseconds(), 3).substr(0, =
clength));
            break;
        case "z":=20
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.push(((hour <=3D 0) ? '+' : '-') + =
padZeros(Math.floor(Math.abs(hour)), clength));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.push(((hour <=3D 0) ? '+' : '-') + =
padZeros(Math.floor(Math.abs(hour)), 2) +
                ":" + padZeros(Math.abs(this.getTimezoneOffset() % 60), =
2));
            break;
        case "g":
        case "gg":
            if (dtf.eras) {
                ret.push(dtf.eras[getEra(this, eras) + 1]);
            }
            break;
        case "/":
            ret.push(dtf.DateSeparator);
            break;
        }
    }
    return ret.join('');
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat">Replaces the format =
items in a specified String with the text equivalents of the values of   =
corresponding object instances. The current culture will be used to =
format dates and numbers.</summary>
    /// <param name=3D"format" type=3D"String">A format string.</param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true">The objects to format.</param>
    /// <returns type=3D"String">A copy of format in which the format =
items have been replaced by the   string equivalent of the corresponding =
instances of object arguments.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(true, arguments);
}
var formattingPatterns =3D {
    P: ["Percent", ["-n %", "-n%", "-%n"], ["n %", "n%", "%n" ], 100],
    N: ["Number",["(n)","-n","- n","n-","n -"], null, 1],
    C: =
["Currency",["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n =
$","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"],["$n","n$","$ =
n","n $"], 1]
};

Sys._toFormattedString =3D function _toFormattedString(format, =
cultureInfo) {
    if (!format || !format.length || (format =3D=3D=3D 'i')) {
        return (cultureInfo && cultureInfo.name.length) ?
            this.toLocaleString() :
            this.toString();
    }
   =20
    function zeroPad(str, count, left) {
        for (var l=3Dstr.length; l < count; l++) {
            str =3D (left ? ('0' + str) : (str + '0'));
        }
        return str;
    }
   =20
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;



        var factor =3D Math.pow(10, precision);
        var rounded =3D (Math.round(number * factor) / factor);
        if (!isFinite(rounded)) {
            rounded =3D number;
        }
        number =3D rounded;
       =20
        var numberString =3D number+'';
        var right =3D "";
        var exponent;
       =20
       =20
        var split =3D numberString.split(/e/i);
        numberString =3D split[0];
        exponent =3D (split.length > 1 ? parseInt(split[1]) : 0);
        split =3D numberString.split('.');
        numberString =3D split[0];
        right =3D split.length > 1 ? split[1] : "";
       =20
        var l;
        if (exponent > 0) {
            right =3D zeroPad(right, exponent, false);
            numberString +=3D right.slice(0, exponent);
            right =3D right.substr(exponent);
        }
        else if (exponent < 0) {
            exponent =3D -exponent;
            numberString =3D zeroPad(numberString, exponent+1, true);
            right =3D numberString.slice(-exponent, numberString.length) =
+ right;
            numberString =3D numberString.slice(0, -exponent);
        }

        if (precision > 0) {
            right =3D decimalChar +
                ((right.length > precision) ? right.slice(0, precision) =
: zeroPad(right, precision, false));
        }
        else {
            right =3D "";
        }

        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                return numberString.slice(0, stringIndex + 1) +
                    (ret.length ? (sep + ret + right) : right);
            }

            ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex + 1) +
                (ret.length ? (sep+ret) : "");

            stringIndex -=3D curSize;

            if (curGroupIndex < groupSizes.length) {
                curSize =3D groupSizes[curGroupIndex];
                curGroupIndex++;
            }
        }
        return numberString.slice(0, stringIndex + 1) + sep + ret + =
right;
    }
    var nf =3D cultureInfo.numberFormat;

    var number =3D Math.abs(this);

    format =3D format || "D";

    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);

    var pattern,
        current =3D format.charAt(0).toUpperCase();   =20
    switch (current) {
    case "D":
        pattern =3D 'n';

        if (precision !=3D=3D -1) {
            number =3D zeroPad(""+number, precision, true);
        }

        if (this < 0) number =3D -number;
        break;
    case "C":
    case "N":
    case "P":
        current =3D formattingPatterns[current];
        var name =3D current[0];
        pattern =3D (this < 0) ? current[1][nf[name+"NegativePattern"]] =
: (current[2] ? current[2][nf[name+"PositivePattern"]] : "n");
        if (precision =3D=3D=3D -1) precision =3D =
nf[name+"DecimalDigits"];
        number =3D expandNumber(Math.abs(this)*current[3], precision, =
nf[name+"GroupSizes"], nf[name+"GroupSeparator"], =
nf[name+"DecimalSeparator"]);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }

    var regex =3D /n|\$|-|%/g;

    var ret =3D "";

    for (;;) {

        var index =3D regex.lastIndex;

        var ar =3D regex.exec(pattern);

        ret +=3D pattern.slice(index, ar ? ar.index : pattern.length);

        if (!ar)
            break;

        switch (ar[0]) {
        case "n":
            ret +=3D number;
            break;
        case "$":
            ret +=3D nf.CurrencySymbol;
            break;
        case "-":
            if (/[1-9]/.test(number)) {
                ret +=3D nf.NegativeSign;
            }
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }

    return ret;
}

$type =3D Number;
$type.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale">Creates a number from =
its locale string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a number.</param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
$type.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant">Creates a number =
from its string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a number.</param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
$type._parse =3D function Number$_parse(value, cultureInfo) {
    value =3D value.trim();
   =20
    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }

    var numFormat =3D cultureInfo.numberFormat;
    var signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, numFormat.NumberNegativePattern);
    var sign =3D signInfo[0];
    var num =3D signInfo[1];
   =20
    if ((sign =3D=3D=3D '') && (numFormat.NumberNegativePattern !=3D=3D =
1)) {
        signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, 1);
        sign =3D signInfo[0];
        num =3D signInfo[1];
    }
    if (sign =3D=3D=3D '') sign =3D '+';
   =20
    var exponent;
    var intAndFraction;
    var exponentPos =3D num.indexOf('e');
    if (exponentPos < 0) exponentPos =3D num.indexOf('E');
    if (exponentPos < 0) {
        intAndFraction =3D num;
        exponent =3D null;
    }
    else {
        intAndFraction =3D num.substr(0, exponentPos);
        exponent =3D num.substr(exponentPos + 1);
    }
   =20
    var integer;
    var fraction;
    var decSep =3D numFormat.NumberDecimalSeparator
    var decimalPos =3D intAndFraction.indexOf(decSep);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + decSep.length);
    }
   =20
    var numGroupSep =3D numFormat.NumberGroupSeparator
    integer =3D integer.split(numGroupSep).join('');
    var altNumGroupSeparator =3D numGroupSep.replace(/\u00A0/g, " ");
    if (numGroupSep !=3D=3D altNumGroupSeparator) {
        integer =3D integer.split(altNumGroupSeparator).join('');
    }
   =20
    var p =3D sign + integer;
    if (fraction !=3D=3D null) {
        p +=3D '.' + fraction;
    }
    if (exponent !=3D=3D null) {
        var expSignInfo =3D Number._parseNumberNegativePattern(exponent, =
numFormat, 1);
        if (expSignInfo[0] =3D=3D=3D '') {
            expSignInfo[0] =3D '+';
        }
        p +=3D 'e' + expSignInfo[0] + expSignInfo[1];
    }

    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
$type._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:
            if (value.endsWith(neg)) {
                return ['-', value.substr(0, value.length - =
neg.length)];
            }
            else if (value.endsWith(pos)) {
                return ['+', value.substr(0, value.length - =
pos.length)];
            }
            break;
        case 2:
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}

$prototype =3D $type.prototype;
$prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format">Format a number using the =
invariant culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted number.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return Sys._toFormattedString.call(this, format, =
Sys.CultureInfo.InvariantCulture);
}
$prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat">Format a number using =
the current culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted number.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return Sys._toFormattedString.call(this, format, =
Sys.CultureInfo.CurrentCulture);
}
function toUpper(value) {
    return value.split("\u00A0").join(' ').toUpperCase();
}
function toUpperArray(arr) {
    var result =3D [];
    foreach(arr, function(value, i) {
        result[i] =3D toUpper(value);
    });
    return result;
}

function clone(obj) {
    var objNew =3D {};
    forIn(obj, function(value, field) {
        objNew[field] =3D (value instanceof Array) ? (value.length =
=3D=3D=3D 1 ? [value] : Array.apply(null, value)) :
            ((typeof(value) =3D=3D=3D "object") ? clone(value) : value);
    });
    return objNew;
}

$type =3D Sys.CultureInfo =3D function CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor"></summary>
    /// <param name=3D"name" type=3D"String">CultureInfo name.</param>
    /// <param name=3D"numberFormat" type=3D"Object">CultureInfo number =
format information.</param>
    /// <param name=3D"dateTimeFormat" type=3D"Object">CultureInfo date =
time format information.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "numberFormat", type: Object},
        {name: "dateTimeFormat", type: Object}
    ]);
    if (e) throw e;
    this.name =3D name;
    this.numberFormat =3D numberFormat;
    this.dateTimeFormat =3D dateTimeFormat;
}
$type.prototype =3D {
    _getDateTimeFormats: function CultureInfo$_getDateTimeFormats() {
        var formats =3D this._dateTimeFormats;
        if (!formats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D formats =3D
              [ dtf["MonthDayPattern"],
                dtf["YearMonthPattern"],
                dtf["ShortDatePattern"],
                dtf["ShortTimePattern"],
                dtf["LongDatePattern"],
                dtf["LongTimePattern"],
                dtf["FullDateTimePattern"],
                dtf["RFC1123Pattern"],
                dtf["SortableDateTimePattern"],
                dtf["UniversalSortableDateTimePattern"] ];
        }
        return formats;
    },
    _getMonthIndex: function CultureInfo$_getMonthIndex(value, abbr) {
        var name =3D abbr ? "_upperAbbrMonths" : "_upperMonths",
            genitiveName =3D name + "Genitive",
            upperMonths =3D this[name];
        if (!upperMonths) {
            var prefix =3D (abbr ? "Abbreviated" : "");
            this[name] =3D =
toUpperArray(this.dateTimeFormat[prefix+"MonthNames"]);
            this[genitiveName] =3D =
toUpperArray(this.dateTimeFormat[prefix+"MonthGenitiveNames"]);
        }
        value =3D toUpper(value);
        var i =3D indexOf(this[name], value);
        if (i < 0) {
            i =3D indexOf(this[genitiveName], value);
        }
        return i;
    },   =20
    _getDayIndex: function CultureInfo$_getDayIndex(value, abbr) {
        var name =3D abbr ? "_upperAbbrDays" : "_upperDays",
            upperDays =3D this[name];
        if (!upperDays) {
            this[name] =3D toUpperArray(this.dateTimeFormat[(abbr ? =
"Abbreviated" : "")+"DayNames"]);
        }
        return indexOf(this[name], toUpper(value));
    }
}
$type.registerClass('Sys.CultureInfo');

$type._parse =3D function(value) {
    var dtf =3D value.dateTimeFormat;
    if (dtf && !dtf.eras) {
        dtf.eras =3D value.eras;
    }
    return new Sys.CultureInfo(value.name, value.numberFormat, dtf);
}
$type._setup =3D function() {
    var cultureInfo =3D window.__cultureInfo,
        monthNames =3D =
["January","February","March","April","May","June","July","August","Septe=
mber","October","November","December",""],
        shortMonthNames =3D =
["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",=
""],
        invariant =3D =
{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSepa=
rator":".","CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupS=
izes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymb=
ol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentP=
ositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-I=
nfinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparat=
or":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveI=
nfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"Pe=
rcentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%=
","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","=
7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM",=
"Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateT=
ime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"T=
woDigitYearMax":2029},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWee=
kRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy =
HH:mm:ss","LongDatePattern":"dddd, dd MMMM =
yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":shortMonthNames,"MonthNames":monthNames,"NativeCalendarN=
ame":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":Array.clone(shortMonthNames),"M=
onthGenitiveNames":Array.clone(monthNames)},"eras":[1,"A.D.",null,0]};
    this.InvariantCulture =3D this._parse(invariant);
    switch(typeof(cultureInfo)) {
        case "string":
            cultureInfo =3D window.eval("(" + cultureInfo + ")");
        case "object":
            this.CurrentCulture =3D this._parse(cultureInfo);
            delete __cultureInfo;   =20
            break;
        default:
            cultureInfo =3D clone(invariant);
            cultureInfo.name =3D "en-US";
            cultureInfo.numberFormat.CurrencySymbol =3D "$";
            var dtf =3D cultureInfo.dateTimeFormat;
            dtf.FullDatePattern =3D "dddd, MMMM dd, yyyy h:mm:ss tt";
            dtf.LongDatePattern =3D "dddd, MMMM dd, yyyy";
            dtf.LongTimePattern =3D "h:mm:ss tt";
            dtf.ShortDatePattern =3D "M/d/yyyy";
            dtf.ShortTimePattern =3D "h:mm tt";
            dtf.YearMonthPattern =3D "MMMM, yyyy";
            this.CurrentCulture =3D this._parse(cultureInfo);
            break;
    }
}

$type._setup();





Type.registerNamespace('Sys.Serialization');

$type =3D Sys.Serialization.JavaScriptSerializer =3D function =
Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor">Provides =
serialization from JavaScript object to JavaScript object =
notation.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.registerClass('Sys.Serialization.JavaScriptSerializer');

$type._esc =3D {
    charsRegExs: { '"': /\"/g, '\\': /\\/g }, /*"*/
    chars: ['\\', '"'],
    dateRegEx: =
/(^|[^\\])\"\\\/Date\((-?[0-9]+)(?:[a-zA-Z]|(?:\+|-)[0-9]{4})?\)\\\/\"/g,=
 /* " */
    escapeChars: {'\\':'\\\\', '"':'\\"', "\b":"\\b", "\t":"\\t", =
"\n":"\\n", "\f":"\\f", "\r":"\\r"},
    escapeRegExG: /[\"\\\x00-\x1F]/g,
    escapeRegEx: /[\"\\\x00-\x1F]/i,
    jsonRegEx: /[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/g,
    jsonStringRegEx: /\"(\\.|[^\"\\])*\"/g /*"*/
};
$type._init =3D function() {
    var esc =3D this._esc,
        toEsc =3D esc.chars,
        toEscRE =3D esc.charsRegExs,
        escChars =3D esc.escapeChars;
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        toEsc[i+2] =3D c;
        toEscRE[c] =3D new RegExp(c, 'g');
        escChars[c] =3D escChars[c] || ("\\u" + ("000" + =
i.toString(16)).slice(-4));
    }
    this._load =3D true;
}
$type._serializeNumberWithBuilder =3D function(object, stringBuilder) {
    if (!isFinite(object)) {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
    stringBuilder.append(String(object));
}
$type._serializeStringWithBuilder =3D function(string, stringBuilder) {
    stringBuilder.append('"');
    var esc =3D this._esc;
    if (esc.escapeRegEx.test(string)) {
        if (!this._load) {
            this._init();
        }
        if (string.length < 128) {
            string =3D string.replace(esc.escapeRegExG,
                function(x) { return esc.escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D esc.chars[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    var escChar =3D esc.escapeChars[c];
                    string =3D (isBrowser("Opera") || =
isBrowser("Firefox")) ?
                        string.split(c).join(escChar) :
                        string.replace(esc.charsRegExs[c], escChar);
                }
            }
       }
    }
    stringBuilder.append(string).append('"');
}
$type._serializeWithBuilder =3D function(object, stringBuilder, sort, =
prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                if (Sys._indexOf(prevObjects, object) !=3D=3D -1) {
                    throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                }
            }
            else {
                prevObjects =3D [];
            }
            try {
                prevObjects.push(object);
               =20
                if (Number.isInstanceOfType(object)) {
                    this._serializeNumberWithBuilder(object, =
stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)) {
                    stringBuilder.append(object);
                }
                else if (String.isInstanceOfType(object)) {
                    this._serializeStringWithBuilder(object, =
stringBuilder);
                }
           =20
                else if (object instanceof Array) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i) {
                            stringBuilder.append(',');
                        }
                        this._serializeWithBuilder(object[i], =
stringBuilder, false, prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(').
                            append(object.getTime()).
                            append(')\\/"');
                        break;
                    }

                    var properties =3D [],
                        propertyCount =3D 0;
                    for (var name in object) {
                        if (name.charAt(0) !=3D=3D '$') {
                            if (name =3D=3D=3D '__type' && =
propertyCount) {
                                properties[propertyCount++] =3D =
properties[0];
                                properties[0] =3D name;
                            }
                            else {
                                properties[propertyCount++] =3D name;
                            }
                        }
                    }
                    if (sort) properties.sort();

                    stringBuilder.append('{');
                    =20
                    var needComma;
                    for (i=3D0; i < propertyCount; i++) {
                        var prop =3D properties[i], value =3D =
object[prop],
                            type =3D typeof(value);
                        if (type !=3D=3D 'undefined' && type !=3D=3D =
'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            this._serializeWithBuilder(prop, =
stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            this._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                            needComma =3D true;
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;

    case 'number':
        this._serializeNumberWithBuilder(object, stringBuilder);
        break;

    case 'string':
        this._serializeStringWithBuilder(object, stringBuilder);
        break;

    case 'boolean':
        stringBuilder.append(object);
        break;

    default:
        stringBuilder.append('null');
        break;
    }
}

$type.serialize =3D function JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize">Generates =
a JSON string from an object.</summary>
    /// <param name=3D"object" mayBeNull=3D"true">The object to =
serialize.</param>
    /// <returns type=3D"String">The JSON string representation of the =
object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    var stringBuilder =3D new Sys.StringBuilder();
    Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, =
stringBuilder, false);
    return stringBuilder.toString();
}

$type.deserialize =3D function JavaScriptSerializer$deserialize(data, =
secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize">Deserial=
izes a JSON string.</summary>
    /// <param name=3D"data" type=3D"String">The JSON string to =
eval.</param>
    /// <param name=3D"secure" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">True if the method should perform JSON conformance =
checks before evaluating. False by default.</param>
    /// <returns>The results of eval applied to data.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (!data.length) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    var er, esc =3D Sys.Serialization.JavaScriptSerializer._esc;
    try {   =20
        var exp =3D data.replace(esc.dateRegEx, "$1new Date($2)");
       =20
        if (secure && =
esc.jsonRegEx.test(exp.replace(esc.jsonStringRegEx, ''))) throw null;

        return window.eval('(' + exp + ')');
    }
    catch (er) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}


Type.registerNamespace('Sys.UI');

$type =3D Sys.EventHandlerList =3D function EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor">The =
EventHandlerList class contains a dictionary of multicast =
events.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}

$type.prototype =3D {
    _addHandler: function EventHandlerList$_addHandler(id, handler) {
        Array.add(this._getEvent(id, true), handler);
    },
    addHandler: function EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler">The =
addHandler method adds a handler to the event identified by =
id.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <param name=3D"handler" type=3D"Function">The handler to add =
to the event.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        this._addHandler(id, handler);
    },
    _removeHandler: function EventHandlerList$_removeHandler(id, =
handler) {
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    },
    _removeHandlers: function EventHandlerList$_removeHandlers(id) {
        if (!id) {
            this._list =3D {};
        }
        else {
            var evt =3D this._getEvent(id);
            if (!evt) return;
            evt.length =3D 0;
        }
    },
    removeHandler: function EventHandlerList$removeHandler(id, handler) =
{
        /// <summary =
locid=3D"M:J#Sys.EventHandlerList.removeHandler">The removeHandler =
method removes a handler to the event identified by id.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <param name=3D"handler" type=3D"Function">The handler to =
remove from the event.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        this._removeHandler(id, handler);
    },
    getHandler: function EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler">The =
getHandler method returns a single function that will call all   =
handlers sequentially for the specified event.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <returns type=3D"Function">A function that will call each =
handler sequentially.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt || !evt.length) return null;
        evt =3D Array.clone(evt);
        return function(source, args) {
            for (var i =3D 0, l =3D evt.length; i < l; i++) {
                evt[i](source, args);
            }
        };
    },
    _getEvent: function EventHandlerList$_getEvent(id, create) {
        var e =3D this._list[id];
        if (!e) {
            if (!create) return null;
            this._list[id] =3D e =3D [];
        }
        return e;
    }
}
$type.registerClass('Sys.EventHandlerList');
$type =3D Sys.CommandEventArgs =3D function =
CommandEventArgs(commandName, commandArgument, commandSource, =
commandEvent) {
    /// <summary locid=3D"M:J#Sys.CommandEventArgs.#ctor"></summary>
    /// <param name=3D"commandName" type=3D"String">The command =
name.</param>
    /// <param name=3D"commandArgument" mayBeNull=3D"true">The command =
arguments.</param>
    /// <param name=3D"commandSource" mayBeNull=3D"true">The command =
source.</param>
    /// <param name=3D"commandEvent" type=3D"Sys.UI.DomEvent" =
mayBeNull=3D"true" optional=3D"true">The DOM event that caused the =
command, if any.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "commandName", type: String},
        {name: "commandArgument", mayBeNull: true},
        {name: "commandSource", mayBeNull: true},
        {name: "commandEvent", type: Sys.UI.DomEvent, mayBeNull: true, =
optional: true }
    ]);
    if (e) throw e;
    Sys.CommandEventArgs.initializeBase(this);
    this._commandName =3D commandName;
    this._commandArgument =3D commandArgument;
    this._commandSource =3D commandSource;
    this._commandEvent =3D commandEvent;
}
$type.prototype =3D {
    get_commandName: function CommandEventArgs$get_commandName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.CommandEventArgs.commandName">The command name.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandName || null;
    },
    get_commandArgument: function CommandEventArgs$get_commandArgument() =
{
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.CommandEventArgs.commandArgument">The command =
arguments.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandArgument;
    },
    get_commandSource: function CommandEventArgs$get_commandSource() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.CommandEventArgs.commandSource">The command =
source.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandSource || null;
    },
    get_commandEvent: function CommandEventArgs$get_commandEvent() {
        /// <value mayBeNull=3D"true" type=3D"Sys.UI.DomEvent" =
locid=3D"P:J#Sys.CommandEventArgs.commandEvent">The DOM event that =
caused the command, if any.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandEvent || null;
    }
}
$type.registerClass("Sys.CommandEventArgs", Sys.CancelEventArgs);
$type =3D Sys.INotifyPropertyChange =3D function INotifyPropertyChange() =
{
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor">Implement =
this interface to become a provider of property change =
notifications.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add_propertyChanged: function =
INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary =
locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged"></summary>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    },
    remove_propertyChanged: function =
INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
}
$type.registerInterface('Sys.INotifyPropertyChange');
$type =3D Sys.PropertyChangedEventArgs =3D function =
PropertyChangedEventArgs(propertyName) {
    /// <summary =
locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor">Describes property =
changes.</summary>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
 $type.prototype =3D {
    get_propertyName: function =
PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName">The name of the =
property that changed.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
}
$type.registerClass('Sys.PropertyChangedEventArgs', Sys.EventArgs);
$type =3D Sys.INotifyDisposing =3D function INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor">Implement this =
interface if the class exposes an event to notify when it's =
disposing.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add_disposing: function INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing"></summary>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    },
    remove_disposing: function =
INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
}
$type.registerInterface("Sys.INotifyDisposing");
$type =3D Sys.Component =3D function Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor">Base class for =
Control, Behavior and any object that wants its lifetime to be =
managed.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
$type.prototype =3D {
    _idSet: false,
    get_events: function Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events">The collection of event handlers for =
this behavior.  This property should only be used by derived behaviors  =
and should not be publicly called by other code.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Observer._getContext(this, true).events;
    },
    get_id: function Component$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Component.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id || null;
    },
    set_id: function Component$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (this._idSet) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
        this._idSet =3D true;
        var oldId =3D this.get_id();
        if (oldId && Sys.Application.findComponent(oldId)) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
        this._id =3D value;
    },
    get_isInitialized: function Component$get_isInitialized() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isInitialized"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._initialized;
    },
    get_isUpdating: function Component$get_isUpdating() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._updating;
    },
    add_disposing: function Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("disposing", handler);
    },
    remove_disposing: function Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("disposing", handler);
    },
    add_propertyChanged: function Component$add_propertyChanged(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.Component.propertyChanged"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("propertyChanged", handler);
    },
    remove_propertyChanged: function =
Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("propertyChanged", handler);
    },
    _addHandler: function Component$_addHandler(eventName, handler) {
        Sys.Observer.addEventHandler(this, eventName, handler);
    },
    _removeHandler: function Component$_removeHandler(eventName, =
handler) {
        Sys.Observer.removeEventHandler(this, eventName, handler);
    },
    beginUpdate: function Component$beginUpdate() {
        this._updating =3D true;
    },
    dispose: function Component$dispose() {
        Sys.Observer.raiseEvent(this, "disposing")
        Sys.Observer.clearEventHandlers(this);
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    },
    endUpdate: function Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    },
    initialize: function Component$initialize() {
        this._initialized =3D true;
    },
    raisePropertyChanged: function =
Component$raisePropertyChanged(propertyName) {
        /// <summary =
locid=3D"M:J#Sys.Component.raisePropertyChanged">Raises a change =
notification event.</summary>
        /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        Sys.Observer.raisePropertyChanged(this, propertyName);
    },
    updated: function Component$updated() {
    }
}
$type.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);

$type._setProperties =3D function Component$_setProperties(target, =
properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties">Recursively =
sets properties on an object.</summary>
    /// <param name=3D"target">The object on which to set the property =
values.</param>
    /// <param name=3D"properties">A JSON object containing the property =
values.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "properties"}
    ]);
    if (e) throw e;
    var current;
    var targetType =3D Object.getType(target);
    var isObject =3D (targetType =3D=3D=3D Object) || (targetType =
=3D=3D=3D Sys.UI.DomElement);
    var isComponent =3D Sys.Component.isInstanceOfType(target) && =
!target.get_isUpdating();
    if (isComponent) target.beginUpdate();
    for (var name in properties) {
        var val =3D properties[name];
        var getter =3D isObject ? null : target["get_" + name];
        if (isObject || typeof(getter) !=3D=3D 'function') {
            var targetVal =3D target[name];
            if (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                this._setProperties(targetVal, val);
            }
        }
        else {
            var setter =3D target["set_" + name];
            if (typeof(setter) =3D=3D=3D 'function') {
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                current =3D getter.apply(target);
                if (!(current instanceof Array)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
                for (var i =3D 0, j =3D current.length, l=3D val.length; =
i < l; i++, j++) {
                    current[j] =3D val[i];
                }
            }
            else if ((typeof(val) =3D=3D=3D 'object') && =
(Object.getType(val) =3D=3D=3D Object)) {
                current =3D getter.apply(target);
                if ((typeof(current) =3D=3D=3D 'undefined') || (current =
=3D=3D=3D null)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, =
name));
                this._setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}

$type._setReferences =3D function Component$_setReferences(component, =
references) {
    var reference, refs =3D {};
    forIn(references, function(id, name) {
        refs[name] =3D reference =3D $find(id);
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, id));
    });
    Sys._set(component, refs);
}

$create =3D $type.create =3D function Component$create(type, properties, =
events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create">Instantiates a =
component of the specified type, attaches it to the specified element if =
it's  a Control or Behavior, sets the properties as described by the =
specified JSON object,  then calls initialize.</summary>
    /// <param name=3D"type" type=3D"Type">The type of the component to =
create.</param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true">A JSON object that describes the properties and their =
values.</param>
    /// <param name=3D"events" optional=3D"true" mayBeNull=3D"true">A =
JSON object that describes the events and their handlers.</param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true">A JSON object that describes the properties that are =
references to other components.  The contents of this object consists of =
name/id pairs.  If in a two-pass creation, the setting of these =
properties will be delayed until the second pass.</param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true">The DOM element the component must be attached =
to.</param>
    /// <returns type=3D"Object">The component instance.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Type},
        {name: "properties", mayBeNull: true, optional: true},
        {name: "events", mayBeNull: true, optional: true},
        {name: "references", mayBeNull: true, optional: true},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (type.inheritsFrom(Sys.UI.Behavior) || =
type.inheritsFrom(Sys.UI.Control)) {
        if (!element) throw Error.argument('element', =
Sys.Res.createNoDom);
    }
    else if (element) throw Error.argument('element', =
Sys.Res.createComponentOnDom);
    var component =3D (element ? new type(element): new type());
    callIf(component, "beginUpdate");
    if (properties) {
        Sys.Component._setProperties(component, properties);
    }
    if (events) {
        for (var name in events) {
            if (!(component["add_" + name] instanceof Function)) throw =
new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
            if (!(events[name] instanceof Function)) throw new =
Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
            component["add_" + name](events[name]);
        }
    }
    Sys.Component._register(component, references);
    return component;
}
$type._register =3D function Component$_register(component, references, =
dontUpdate) {
    var ret;
    if (Sys.Component.isInstanceOfType(component)) {
        ret =3D true;
        var app =3D Sys.Application;
        if (component.get_id()) {
            app.addComponent(component);
        }
        if (app.get_isCreatingComponents()) {
            app._createdComponents.push(component);
            if (references) {
                app._addComponentToSecondPass(component, references);
            }
            else if (!dontUpdate) {
                component.endUpdate();
            }
        }
        else {
            if (references) {
                Sys.Component._setReferences(component, references);
            }
            if (!dontUpdate) {
                component.endUpdate();
            }
        }
    }
    return ret;
}

Sys._getComponent =3D function _getComponent(found, selector, context) {
    var component =3D Sys.Application.findComponent(selector);
    if (component) {
        found.push(component);
    }
}

Sys._2Pass =3D function _2Pass(callback) {
    var app =3D Sys.Application,
        useTwoPass =3D !app.get_isCreatingComponents();
    if (useTwoPass) app.beginCreateComponents();
    foreach(callback, function(c) { c() });
    if (useTwoPass) app.endCreateComponents();
}
$type =3D Sys.UI.MouseButton =3D function MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor">Describes mouse =
buttons. The values are those from the DOM standard, which are different =
from the IE values.</summary>
    /// <field name=3D"leftButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.leftButton"></field>
    /// <field name=3D"middleButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.middleButton"></field>
    /// <field name=3D"rightButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.rightButton"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
$type.registerEnum("Sys.UI.MouseButton");
$type =3D Sys.UI.Key =3D function Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor">Describes key =
codes.</summary>
    /// <field name=3D"backspace" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.backspace"></field>
    /// <field name=3D"tab" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.tab"></field>
    /// <field name=3D"enter" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.enter"></field>
    /// <field name=3D"esc" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.esc"></field>
    /// <field name=3D"space" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.space"></field>
    /// <field name=3D"pageUp" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageUp"></field>
    /// <field name=3D"pageDown" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageDown"></field>
    /// <field name=3D"end" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.end"></field>
    /// <field name=3D"home" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.home"></field>
    /// <field name=3D"left" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.left"></field>
    /// <field name=3D"up" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.up"></field>
    /// <field name=3D"right" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.right"></field>
    /// <field name=3D"down" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.down"></field>
    /// <field name=3D"del" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.del"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    backspace: 8,
    tab: 9,
    enter: 13,
    esc: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    del: 127
}
$type.registerEnum("Sys.UI.Key");
$type =3D Sys.UI.Point =3D function Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor"></summary>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.y"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
}
$type.registerClass('Sys.UI.Point');
$type =3D Sys.UI.Bounds =3D function Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor"></summary>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"width" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.y"></field>
    /// <field name=3D"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "width", type: Number, integer: true},
        {name: "height", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
$type.registerClass('Sys.UI.Bounds');
$type =3D Sys.UI.DomEvent =3D function DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor">A cross-browser =
object that represents event properties.</summary>
    /// <param name=3D"eventObject">The browser-specific event object =
(window.event for IE).</param>
    /// <field name=3D"altKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.altKey"></field>
    /// <field name=3D"button" type=3D"Sys.UI.MouseButton" =
locid=3D"F:J#Sys.UI.DomEvent.button"></field>
    /// <field name=3D"charCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.charCode">The character code for the =
pressed key.</field>
    /// <field name=3D"clientX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientX"></field>
    /// <field name=3D"clientY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientY"></field>
    /// <field name=3D"ctrlKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.ctrlKey"></field>
    /// <field name=3D"keyCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.keyCode">The key code for the pressed =
key.</field>
    /// <field name=3D"offsetX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetX"></field>
    /// <field name=3D"offsetY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetY"></field>
    /// <field name=3D"screenX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenX"></field>
    /// <field name=3D"screenY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenY"></field>
    /// <field name=3D"shiftKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.shiftKey"></field>
    /// <field name=3D"target" =
locid=3D"F:J#Sys.UI.DomEvent.target"></field>
    /// <field name=3D"type" type=3D"String" =
locid=3D"F:J#Sys.UI.DomEvent.type"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "eventObject"}
    ]);
    if (e) throw e;
    var ev =3D eventObject;
    var etype =3D this.type =3D ev.type.toLowerCase();
    this.rawEvent =3D ev;
    this.altKey =3D ev.altKey;
    if (typeof(ev.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(ev.which) !=3D=3D 'undefined') ? =
ev.button :
            (ev.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (ev.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D ev.charCode || ev.keyCode;
    }
    else if (ev.keyCode && (ev.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D ev.keyCode;
    }
    this.clientX =3D ev.clientX;
    this.clientY =3D ev.clientY;
    this.ctrlKey =3D ev.ctrlKey;
    this.target =3D ev.target || ev.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(ev.offsetX) !=3D=3D 'undefined') && =
(typeof(ev.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D ev.offsetX;
            this.offsetY =3D ev.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(ev.clientX) =3D=3D=3D 'number')) {
            var loc =3D Sys.UI.DomElement.getLocation(this.target);
            var w =3D Sys.UI.DomElement._getWindow(this.target);
            this.offsetX =3D (w.pageXOffset || 0) + ev.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + ev.clientY - loc.y;
        }
    }
    this.screenX =3D ev.screenX;
    this.screenY =3D ev.screenY;
    this.shiftKey =3D ev.shiftKey;
}
$type.prototype =3D {
    preventDefault: function DomEvent$preventDefault() {
        /// <summary =
locid=3D"M:J#Sys.UI.DomEvent.preventDefault">Prevents the default event =
action from happening. For example, a textbox keydown event,  if =
suppressed, will prevent the character from being appended to the =
textbox.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var raw =3D this.rawEvent;
        if (raw.preventDefault) {
            raw.preventDefault();
        }
        else if (window.event) {
            raw.returnValue =3D false;
        }
    },
    stopPropagation: function DomEvent$stopPropagation() {
        /// <summary =
locid=3D"M:J#Sys.UI.DomEvent.stopPropagation">Prevents the event from =
being propagated to parent elements.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var raw =3D this.rawEvent;
        if (raw.stopPropagation) {
            raw.stopPropagation();
        }
        else if (window.event) {
            raw.cancelBubble =3D true;
        }
    }
}
$type.registerClass('Sys.UI.DomEvent');

$addHandler =3D $type.addHandler =3D function =
DomEvent$addHandler(elements, eventName, handler, autoRemove) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler">A =
cross-browser way to add a DOM event handler to an element.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
elements or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"eventName" type=3D"String">The name of the event. =
Do not include the 'on' prefix, for example, 'click' instead of =
'onclick'.</param>
    /// <param name=3D"handler" type=3D"Function">The event handler to =
add.</param>
    /// <param name=3D"autoRemove" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether the handler should be removed automatically =
when the element is disposed of, such as when an UpdatePanel refreshes, =
or Sys.Application.disposeElement is called.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "eventName", type: String},
        {name: "handler", type: Function},
        {name: "autoRemove", type: Boolean, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        if (!this._events) {
            this._events =3D {};
        }
        var eventCache =3D this._events[eventName];
        if (!eventCache) {
            this._events[eventName] =3D eventCache =3D [];
        }
        var element =3D this,=20
            browserHandler;
        if (this.addEventListener) {
            browserHandler =3D function(e) {
                return handler.call(element, new Sys.UI.DomEvent(e));
            }
            this.addEventListener(eventName, browserHandler, false);
        }
        else if (this.attachEvent) {
            browserHandler =3D function() {
                var ex, ev =3D {};
                try {ev =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
                return handler.call(element, new Sys.UI.DomEvent(ev));
            }
            this.attachEvent('on' + eventName, browserHandler);
        }
        eventCache.push({handler: handler, browserHandler: =
browserHandler, autoRemove: autoRemove });
        if (autoRemove) {
            Sys.UI.DomElement._onDispose(this, =
Sys.UI.DomEvent._disposeHandlers);
        }
    });
}

Sys.registerPlugin({
    name: "addHandler",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "A cross-browser way to add a DOM event handler to an =
element.",
    parameters: [
        {name: "eventName", type: "String", description: "The name of =
the event. Do not include the 'on' prefix, for example, 'click' instead =
of 'onclick'."},
        {name: "handler", type: "Function", description: "The event =
handler to add."},
        {name: "autoRemove", type: "Boolean", description: "Whether the =
handler should be removed automatically when the element is disposed of, =
such as when an UpdatePanel refreshes, or Sys.Application.disposeElement =
is called."}
    ],
    plugin: function (eventName, handler, autoRemove) {
        Sys.UI.DomEvent.addHandler(this.get(), eventName, handler, =
autoRemove);
        return this;
    }
});

$addHandlers =3D $type.addHandlers =3D function =
DomEvent$addHandlers(elements, events, handlerOwner, autoRemove) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers">Adds a list =
of event handlers to an element.  If a handlerOwner is specified, =
delegates are created with each of the handlers.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
element or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"events" type=3D"Object">A dictionary of event =
handlers.</param>
    /// <param name=3D"handlerOwner" optional=3D"true" =
mayBeNull=3D"true">The owner of the event handlers that will be the this =
pointer  for the delegates that will be created from the =
handlers.</param>
    /// <param name=3D"autoRemove" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether the handler should be removed automatically =
when the element is disposed of, such as when an UpdatePanel refreshes, =
or when Sys.Application.disposeElement is called.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "events", type: Object},
        {name: "handlerOwner", mayBeNull: true, optional: true},
        {name: "autoRemove", type: Boolean, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        for (var name in events) {
            var handler =3D events[name];
            if (typeof(handler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
            if (handlerOwner) {
                handler =3D Function.createDelegate(handlerOwner, =
handler);
            }
            $addHandler(this, name, handler, autoRemove || false);
        }
    });
}

Sys.registerPlugin({
    name: "addHandlers",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Adds a list of event handlers to an element. If a =
handlerOwner is specified, delegates are created with each of the =
handlers.",
    parameters: [
        {name: "events", type: "Object", description: "A dictionary of =
event handlers."},
        {name: "handlerOwner", description: "The owner of the event =
handlers that will be the this pointer for the delegates that will be =
created from the handlers."},
        {name: "autoRemove", type: "Boolean", description: "Whether the =
handler should be removed automatically when the element is disposed of, =
such as when an UpdatePanel refreshes, or Sys.Application.disposeElement =
is called."}
    ],
    plugin: function (events, handlerOwner, autoRemove) {
        Sys.UI.DomEvent.addHandlers(this.get(), events, handlerOwner, =
autoRemove);
        return this;
    }
});

$clearHandlers =3D $type.clearHandlers =3D function =
DomEvent$clearHandlers(elements) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers">Clears all =
the event handlers that were added to the element or array of =
elements.</summary>
    /// <param name=3D"elements">The element or text node, or an array =
of elements or text nodes. You may also pass a DOM selector or array of =
DOM selectors.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"}
    ]);
    if (e) throw e;
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        Sys.UI.DomEvent._clearHandlers(this, false);
    });
}

Sys.registerPlugin({
    name: "clearHandlers",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Clears all the event handlers that were added to the =
element or array of elements.",
    plugin: function() {
        Sys.UI.DomEvent.clearHandlers(this.get());
        return this;
    }
});

$type._clearHandlers =3D function DomEvent$_clearHandlers(elements, =
autoRemoving) {
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        var cache =3D this._events;
        if (cache) {
            for (var name in cache) {
                var handlers =3D cache[name];
                for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                    var entry =3D handlers[i];
                    if (!autoRemoving || entry.autoRemove) {
                        $removeHandler(this, name, entry.handler);
                    }
                }
            }
        }
    });
}

$type._disposeHandlers =3D function DomEvent$_disposeHandlers() {
    Sys.UI.DomEvent._clearHandlers(this, true);
}

$removeHandler =3D $type.removeHandler =3D function =
DomEvent$removeHandler(elements, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler">A =
cross-browser way to remove a DOM event handler from an =
element.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
elements or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"eventName" type=3D"String">The name of the event. =
Do not include the 'on' prefix, for example, 'click' instead of =
'onclick'.</param>
    /// <param name=3D"handler" type=3D"Function">The event handler to =
remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._removeHandler(elements, eventName, handler);
}
$type._removeHandler =3D function DomEvent$_removeHandler(elements, =
eventName, handler) {
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        var browserHandler =3D null;
        if ((typeof(this._events) !=3D=3D 'object') || !this._events) =
throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
        var cache =3D this._events[eventName];
        if (!(cache instanceof Array)) throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
        for (var i =3D 0, l =3D cache.length; i < l; i++) {
            if (cache[i].handler =3D=3D=3D handler) {
                browserHandler =3D cache[i].browserHandler;
                break;
            }
        }
        if (typeof(browserHandler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
        if (this.removeEventListener) {
            this.removeEventListener(eventName, browserHandler, false);
        }
        else if (this.detachEvent) {
            this.detachEvent('on' + eventName, browserHandler);
        }
        cache.splice(i, 1);
    });
}

Sys.registerPlugin({
    name: "removeHandler",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "A cross-browser way to remove a DOM event handler from =
an element.",
    parameters: [
        {name: "eventName", type: "String", description: "The name of =
the event. Do not include the 'on' prefix, for example, 'click' instead =
of 'onclick'."},
        {name: "handler", type: "Function", description: "The event =
handler to remove."}
    ],
    plugin: function (eventName, handler) {
        Sys.UI.DomEvent.removeHandler(this.get(), eventName, handler);
        return this;
    }
});


$type._ensureDomNode =3D function DomEvent$_ensureDomNode(element) {
    if (element && element.tagName && (element.tagName.toUpperCase() =
=3D=3D=3D "SCRIPT")) return;
   =20
    var doc =3D element ? (element.ownerDocument || element.document || =
element) : null;
    if (!element ||
        ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number'))) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
$type =3D Sys.UI.DomElement =3D function DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor">This static class =
provides helpers to work with DOM elements.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.registerClass('Sys.UI.DomElement');

$type.addCssClass =3D function DomElement$addCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass">Adds a CSS =
class to an element if it doesn't already have it.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (!Sys.UI.DomElement.containsCssClass(element, className)) {
        if (element.className =3D=3D=3D '') {
            element.className =3D className;
        }
        else {
            element.className +=3D ' ' + className;
        }
    }
}

$type.containsCssClass =3D function DomElement$containsCssClass(element, =
className) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.containsCssClass">Determines if an =
element has the specified CSS class.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to test.</param>
    /// <returns type=3D"Boolean">True if the CSS class was found on the =
element.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    return Array.contains(element.className.split(' '), className);
}

$type.getBounds =3D function DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds">Gets the =
coordinates, width and height of an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds">A Bounds object with four =
fields, x, y, width and height, which contain the pixel coordinates,  =
width and height of the element.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var offset =3D Sys.UI.DomElement.getLocation(element);

    return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || =
0, element.offsetHeight || 0);
}

$get =3D $type.getElementById =3D function DomElement$getElementById(id, =
element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById">Finds an =
element by id.</summary>
    /// <param name=3D"id" type=3D"String">The id of the element to =
find.</param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true">The element, or =
null if it was not found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    return Sys.get("#" + id, element || null);
}

if (document.documentElement.getBoundingClientRect) {
    $type.getLocation =3D function DomElement$getLocation(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "element", domElement: true}
        ]);
        if (e) throw e;
       =20
        if (element.self || element.nodeType =3D=3D=3D 9 ||
            (element =3D=3D=3D document.documentElement) ||
            (element.parentNode =3D=3D=3D =
element.ownerDocument.documentElement)) {
            return new Sys.UI.Point(0, 0);
        }       =20
       =20
        var clientRect =3D element.getBoundingClientRect();
        if (!clientRect) {
            return new Sys.UI.Point(0,0);
        }
        var ex, ownerDoc =3D element.ownerDocument, documentElement =3D =
ownerDoc.documentElement,
            offsetX =3D Math.round(clientRect.left) + =
(documentElement.scrollLeft || (ownerDoc.body ? ownerDoc.body.scrollLeft =
: 0)),
            offsetY =3D Math.round(clientRect.top) + =
(documentElement.scrollTop || (ownerDoc.body ? ownerDoc.body.scrollTop : =
0));
        if (isBrowser("InternetExplorer")) {
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    f =3D f.frameBorder;
                    var offset =3D (f =3D=3D=3D "0" || f =3D=3D=3D "no") =
? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }
            if (Sys.Browser.version =3D=3D=3D 7 && =
!document.documentMode) {
                var body =3D document.body,
                    rect =3D body.getBoundingClientRect(),
                    zoom =3D (rect.right-rect.left) / body.clientWidth;
                zoom =3D Math.round(zoom * 100);
                zoom =3D (zoom - zoom % 5) / 100;
                if (!isNaN(zoom) && (zoom !=3D=3D 1)) {
                    offsetX =3D Math.round(offsetX / zoom);
                    offsetY =3D Math.round(offsetY / zoom);
                }
            }       =20
            if ((document.documentMode || 0) < 8) {
                offsetX -=3D documentElement.clientLeft;
                offsetY -=3D documentElement.clientTop;
            }
        }
        return new Sys.UI.Point(offsetX, offsetY);
    }
}
else if (isBrowser("Safari")) {
    $type.getLocation =3D function =
DomElement$getLocation_Safari(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "element", domElement: true}
        ]);
        if (e) throw e;
        if ((element.window && (element.window =3D=3D=3D element)) || =
element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);

        var offsetX =3D 0, offsetY =3D 0,
            parent,
            previous =3D null,
            previousStyle =3D null,
            currentStyle;
        for (parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
            currentStyle =3D Sys.UI.DomElement._getCurrentStyle(parent);
            var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;

            if ((parent.offsetLeft || parent.offsetTop) &&
                ((tagName !=3D=3D "BODY") || (!previousStyle || =
previousStyle.position !=3D=3D "absolute"))) {
                offsetX +=3D parent.offsetLeft;
                offsetY +=3D parent.offsetTop;
            }

            if (previous && Sys.Browser.version >=3D 3) {
                offsetX +=3D parseInt(currentStyle.borderLeftWidth);
                offsetY +=3D parseInt(currentStyle.borderTopWidth);
            }
        }

        currentStyle =3D Sys.UI.DomElement._getCurrentStyle(element);
        var elementPosition =3D currentStyle ? currentStyle.position : =
null;
        if (elementPosition !=3D=3D "absolute") {
            for (parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;

                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop)) {
                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                var parentPosition =3D currentStyle ? =
currentStyle.position : null;

                if (parentPosition && (parentPosition =3D=3D=3D =
"absolute")) break;
            }
        }
        return new Sys.UI.Point(offsetX, offsetY);
    }
}
else {
    $type.getLocation =3D function =
DomElement$getLocation_Generic(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "element", domElement: true}
        ]);
        if (e) throw e;
        if ((element.window && (element.window =3D=3D=3D element)) || =
element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);

        var offsetX =3D 0, offsetY =3D 0,
            parent,
            previous =3D null,
            previousStyle =3D null,
            currentStyle =3D null;
        for (parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
            var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
            currentStyle =3D Sys.UI.DomElement._getCurrentStyle(parent);

            if ((parent.offsetLeft || parent.offsetTop) &&
                !((tagName =3D=3D=3D "BODY") &&
                (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {

                offsetX +=3D parent.offsetLeft;
                offsetY +=3D parent.offsetTop;
            }

            if (previous !=3D=3D null && currentStyle) {
                if ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D "TD") =
&& (tagName !=3D=3D "HTML")) {
                    offsetX +=3D parseInt(currentStyle.borderLeftWidth) =
|| 0;
                    offsetY +=3D parseInt(currentStyle.borderTopWidth) =
|| 0;
                }
                if (tagName =3D=3D=3D "TABLE" &&
                    (currentStyle.position =3D=3D=3D "relative" || =
currentStyle.position =3D=3D=3D "absolute")) {
                    offsetX +=3D parseInt(currentStyle.marginLeft) || 0;
                    offsetY +=3D parseInt(currentStyle.marginTop) || 0;
                }
            }
        }

        currentStyle =3D Sys.UI.DomElement._getCurrentStyle(element);
        var elementPosition =3D currentStyle ? currentStyle.position : =
null;
        if (elementPosition !=3D=3D "absolute") {
            for (parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;

                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop)) {

                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);

                    currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                    if (currentStyle) {
                        offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                        offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                    }
                }
            }
        }
        return new Sys.UI.Point(offsetX, offsetY);
    }
}

$type.isDomElement =3D function DomElement$isDomElement(obj) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.isDomElement">Determines =
if the given argument is a DOM element.</summary>
    /// <param name=3D"obj"></param>
    /// <returns type=3D"Boolean">True if the object is a DOM element, =
otherwise false.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "obj"}
    ]);
    if (e) throw e;
    return Sys._isDomElement(obj);
}

$type.removeCssClass =3D function DomElement$removeCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass">Removes =
a CSS class from an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    var currentClassName =3D ' ' + element.className + ' ';
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D (currentClassName.substr(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length)).trim();
    }
}

$type.resolveElement =3D function =
DomElement$resolveElement(elementOrElementId, containerElement) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.resolveElement">Returns =
the element with the specified Id in the specified container, or the =
element if it is already an element.</summary>
    /// <param name=3D"elementOrElementId" mayBeNull=3D"true"></param>
    /// <param name=3D"containerElement" domElement=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "elementOrElementId", mayBeNull: true},
        {name: "containerElement", mayBeNull: true, domElement: true, =
optional: true}
    ]);
    if (e) throw e;
    var el =3D elementOrElementId;
    if (!el) return null;
    if (typeof(el) =3D=3D=3D "string") {
        el =3D Sys.get("#" + el, containerElement);
        if (!el) {
            throw Error.argument("elementOrElementId", =
String.format(Sys.Res.elementNotFound, elementOrElementId));
        }
    }
    else if(!Sys.UI.DomElement.isDomElement(el)) {
        throw Error.argument("elementOrElementId", =
Sys.Res.expectedElementOrId);
    }
    return el;
}

$type.raiseBubbleEvent =3D function DomElement$raiseBubbleEvent(source, =
args) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.raiseBubbleEvent">Raises =
a bubble event.</summary>
    /// <param name=3D"source" domElement=3D"true">The DOM element that =
triggers the event.</param>
    /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "source", domElement: true},
        {name: "args", type: Sys.EventArgs}
    ]);
    if (e) throw e;
    var target =3D source;
    while (target) {
        var control =3D target.control;
        if (control && control.onBubbleEvent && =
control.raiseBubbleEvent) {
            if (!control.onBubbleEvent(source, args)) {
                control._raiseBubbleEvent(source, args);
            }
            return;
        }
        target =3D target.parentNode;
    }
}

$type._ensureGet =3D function DomElement$_ensureGet(selector, context, =
arg) {
    var ret =3D Sys.get(selector, context);
    if (!ret && typeof(selector) =3D=3D=3D "string") {
        throw =
Error.invalidOperation(String.format(Sys.Res.selectorNotFound, =
selector));
    }
    else if (ret && !this.isDomElement(ret)) {
        throw =
Error.invalidOperation(String.format(Sys.Res.expectedDomElementOrSelector=
, arg));
    }
    return ret;
}

$type.setLocation =3D function DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation">Sets the =
position of an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    var style =3D element.style;
    style.position =3D 'absolute';
    style.left =3D x + "px";
    style.top =3D y + "px";
}

$type.toggleCssClass =3D function DomElement$toggleCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass">Toggles =
a CSS class on and off o an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to toggle.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (Sys.UI.DomElement.containsCssClass(element, className)) {
        Sys.UI.DomElement.removeCssClass(element, className);
    }
    else {
        Sys.UI.DomElement.addCssClass(element, className);
    }
}

$type.getVisibilityMode =3D function =
DomElement$getVisibilityMode(element) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode"></summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.VisibilityMode"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    return (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ?
        Sys.UI.VisibilityMode.hide :
        Sys.UI.VisibilityMode.collapse;
}
$type.setVisibilityMode =3D function =
DomElement$setVisibilityMode(element, value) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode"></summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Sys.UI.VisibilityMode"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Sys.UI.VisibilityMode}
    ]);
    if (e) throw e;
    Sys.UI.DomElement._ensureOldDisplayMode(element);
    if (element._visibilityMode !=3D=3D value) {
        element._visibilityMode =3D value;
        if (Sys.UI.DomElement.getVisible(element) =3D=3D=3D false) {
            element.style.display =3D (value =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ? element._oldDisplayMode : 'none';
        }
    }
}

$type.getVisible =3D function DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible"></summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
    return style ? (style.visibility !=3D=3D 'hidden') && (style.display =
!=3D=3D 'none') : true;
}
$type.setVisible =3D function DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible"></summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Boolean}
    ]);
    if (e) throw e;
    if (value !=3D=3D Sys.UI.DomElement.getVisible(element)) {
        Sys.UI.DomElement._ensureOldDisplayMode(element);
        var style =3D element.style;
        style.visibility =3D value ? 'visible' : 'hidden';
        style.display =3D (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) ? element._oldDisplayMode : 'none';
    }
}

$type.setCommand =3D function DomElement$setCommand(commandSource, =
commandName, commandArgument, commandTarget) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setCommand">Causes a DOM =
element to raise a bubble event when clicked.</summary>
    /// <param name=3D"commandSource">The DOM element, array of DOM =
elements, or DOM element selectors that causes the event when =
clicked.</param>
    /// <param name=3D"commandName" type=3D"String" =
mayBeNull=3D"true">The name of the command to raise.</param>
    /// <param name=3D"commandArgument" mayBeNull=3D"true" =
optional=3D"true">Optional command argument.</param>
    /// <param name=3D"commandTarget" optional=3D"true" =
mayBeNull=3D"true">DOM element from which the command should start =
bubbling up.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "commandSource"},
        {name: "commandName", type: String, mayBeNull: true},
        {name: "commandArgument", mayBeNull: true, optional: true},
        {name: "commandTarget", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent.addHandler(commandSource, 'click', function(ev) {
        var source =3D commandTarget || this;
        Sys.UI.DomElement.raiseBubbleEvent(source, new =
Sys.CommandEventArgs(commandName, commandArgument, this, ev));=20
    }, true /*autoRemove*/);
}

Sys.registerPlugin({
    name: "setCommand",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Causes a DOM element to raise a bubble event when =
clicked.",
    parameters: [
        {name: "commandName", type:"String", description: "The name of =
the command to raise."},
        {name: "commandArgument", description: "Optional command =
argument."},
        {name: "commandTarget", description: "DOM element from which the =
command should start bubbling up."}
    ],
    plugin: function(commandName, commandArgument, commandTarget) {
        var e =3D Function._validateParams(arguments, [
            {name: "commandName", type: String, mayBeNull: true},
            {name: "commandArgument", mayBeNull: true, optional: true},
            {name: "commandTarget", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return this.addHandler('click', function(ev) {
            var source =3D commandTarget || this;
            Sys.UI.DomElement.raiseBubbleEvent(source, new =
Sys.CommandEventArgs(commandName, commandArgument, this, ev));=20
        }, true /*autoRemove*/);
    }
});

$type._ensureOldDisplayMode =3D function =
DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
this._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            var tagName =3D element.tagName,
                mode =3D 'inline';
            if =
(/^(DIV|P|ADDRESS|BLOCKQUOTE|BODY|COL|COLGROUP|DD|DL|DT|FIELDSET|FORM|H1|=
H2|H3|H4|H5|H6|HR|IFRAME|LEGEND|OL|PRE|TABLE|TD|TH|TR|UL)$/i.test(tagName=
)) {
                mode =3D 'block';
            }
            else if (tagName.toUpperCase() =3D=3D=3D "LI") {
                mode =3D 'list-item';
            }
            element._oldDisplayMode =3D mode;
        }
    }
}

$type._getWindow =3D function DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}

$type._getCurrentStyle =3D function DomElement$_getCurrentStyle(element) =
{
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D this._getWindow(element);
    if (element.documentElement) element =3D element.documentElement;
    var computedStyle =3D (w && (element !=3D=3D w) && =
w.getComputedStyle) ?
        w.getComputedStyle(element, null) :
        element.currentStyle || element.style;
    return computedStyle;
}

$type._onDispose =3D function DomElement$_onDispose(element, fn) {
    var queue, d =3D element.dispose;
    if (d !=3D=3D Sys.UI.DomElement._dispose) {
        element.dispose =3D Sys.UI.DomElement._dispose;
        element.__msajaxdispose =3D queue =3D [];
        if (typeof(d) =3D=3D=3D "function") {
            queue.push(d);
        }
    }
    else {
        queue =3D element.__msajaxdispose;
    }
    queue.push(fn);
}

$type._dispose =3D function DomElement$_dispose() {
    var queue =3D this.__msajaxdispose;
    if (queue) {
        for (var i =3D 0, l =3D queue.length; i < l; i++) {
            queue[i].apply(this);
        }
    }
    if (this.control && typeof(this.control.dispose) =3D=3D=3D =
"function") {
        this.control.dispose();
    }
    this.__msajaxdispose =3D null;
    this.dispose =3D null;
}
$type =3D Sys.IContainer =3D function IContainer() {
    throw Error.notImplemented();
}
$type.prototype =3D {
    addComponent: function IContainer$addComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.addComponent"></summary>
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    },
    removeComponent: function IContainer$removeComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.removeComponent"></summary>
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    },
    findComponent: function IContainer$findComponent(id) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.findComponent"></summary>
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Sys.Component"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    },
    getComponents: function IContainer$getComponents() {
        /// <summary =
locid=3D"M:J#Sys.IContainer.getComponents"></summary>
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
}
$type.registerInterface("Sys.IContainer");

$type =3D Sys.ApplicationLoadEventArgs =3D function =
ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary =
locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor"></summary>
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component">The list of components that were created =
since the last time the load event was raised.</param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean">True if the page =
is partially loading.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "components", type: Array, elementType: Sys.Component},
        {name: "isPartialLoad", type: Boolean}
    ]);
    if (e) throw e;
    Sys.ApplicationLoadEventArgs.initializeBase(this);
    this._components =3D components;
    this._isPartialLoad =3D isPartialLoad;
}
$type.prototype =3D {
    get_components: function ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components">The list of =
components that were created since the last time the load event was =
raised.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    },
    get_isPartialLoad: function =
ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad">True if the =
page is partially loading.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
}
$type.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs);
$type =3D Sys._Application =3D function _Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys._Application.initializeBase(this);

    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];

    this._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
}
$type.prototype =3D {
    _deleteCount: 0,

    get_isCreatingComponents: function =
_Application$get_isCreatingComponents() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isCreatingComponents"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._creatingComponents;
    },
    get_isDisposing: function _Application$get_isDisposing() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isDisposing"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._disposing;
    },
    add_init: function _Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this._addHandler("init", handler);
        }
    },
    remove_init: function _Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("init", handler);
    },
    add_load: function _Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("load", handler);
    },
    remove_load: function _Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("load", handler);
    },
    add_unload: function _Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("unload", handler);
    },
    remove_unload: function _Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("unload", handler);
    },
    addComponent: function _Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent">Adds a =
top-level component to the application.</summary>
        /// <param name=3D"component" type=3D"Sys.Component">The =
component to add.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
        if (typeof(this._components[id]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, =
id));
        this._components[id] =3D component;
    },
    beginCreateComponents: function _Application$beginCreateComponents() =
{
        /// <summary =
locid=3D"M:J#Sys.Application.beginCreateComponents"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    },
    dispose: function _Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._disposing) {
            this._disposing =3D true;
            if (this._timerCookie) {
                window.clearTimeout(this._timerCookie);
                delete this._timerCookie;
            }
            var endHandler =3D this._endRequestHandler;
            var beginHandler =3D this._beginRequestHandler;
            if (endHandler || beginHandler) {
                var prm =3D =
Sys.WebForms.PageRequestManager.getInstance();
                if (endHandler) prm.remove_endRequest(endHandler);
                if (beginHandler) prm.remove_beginRequest(beginHandler);
                delete this._endRequestHandler;
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            Sys.Observer.raiseEvent(this, "unload");
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                var object =3D disposableObjects[i];
                if (typeof(object) !=3D=3D "undefined") {
                    object.dispose();
                }
            }
            this._disposableObjects.length =3D 0;

            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);

            if (Sys._ScriptLoader) {
                var sl =3D Sys._ScriptLoader.getInstance();
                if (sl) {
                    sl.dispose();
                }
            }

            Sys._Application.callBaseMethod(this, 'dispose');
        }
    },
    disposeElement: function _Application$disposeElement(element, =
childNodesOnly) {
        /// <summary =
locid=3D"M:J#Sys._Application.disposeElement">Disposes of control and =
behavior resources associated with an element and its child =
nodes.</summary>
        /// <param name=3D"element">The element to dispose.</param>
        /// <param name=3D"childNodesOnly" type=3D"Boolean">Whether to =
dispose of the element and its child nodes or only its child =
nodes.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "element"},
            {name: "childNodesOnly", type: Boolean}
        ]);
        if (e) throw e;
        if (element.nodeType =3D=3D=3D 1) {
            var d, c, i, list,
                allElements =3D element.getElementsByTagName("*"),
                length =3D allElements.length,
                children =3D new Array(length);
            for (i =3D 0; i < length; i++) {
                children[i] =3D allElements[i];
            }
            for (i =3D length - 1; i >=3D 0; i--) {
                var child =3D children[i];
                d =3D child.dispose;
                if (d && typeof(d) =3D=3D=3D "function") {
                    child.dispose();
                }
                else {
                    c =3D child.control;
                    if (c && typeof(c.dispose) =3D=3D=3D "function") {
                        c.dispose();
                    }
                }
                list =3D child._behaviors;
                if (list) {
                    this._disposeComponents(list);
                }
                list =3D child._components;
                if (list) {
                    this._disposeComponents(list);
                    child._components =3D null;
                }
            }
            if (!childNodesOnly) {
                d =3D element.dispose;
                if (d && typeof(d) =3D=3D=3D "function") {
                    element.dispose();
                }
                else {
                    c =3D element.control;
                    if (c && typeof(c.dispose) =3D=3D=3D "function") {
                        c.dispose();
                    }
                }
                list =3D element._behaviors;
                if (list) {
                    this._disposeComponents(list);
                }
                list =3D element._components;
                if (list) {
                    this._disposeComponents(list);
                    element._components =3D null;
                }
            }
        }
    },   =20
    endCreateComponents: function _Application$endCreateComponents() {
        /// <summary =
locid=3D"M:J#Sys.Application.endCreateComponents"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var components =3D this._secondPassComponents;
        for (var i =3D 0, l =3D components.length; i < l; i++) {
            var entry =3D components[i],
                component =3D entry.component;
            Sys.Component._setReferences(component, entry.references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    },
    findComponent: function _Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent">Finds =
top-level components that were added through addComponent if no parent =
is specified  or children of the specified parent. If parent is a =
component</summary>
        /// <param name=3D"id" type=3D"String">The id of the component =
to find.</param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true">The component or element that contains the component =
to find.  If not specified or null, the search is made on =
Application.</param>
        /// <returns type=3D"Sys.Component" mayBeNull=3D"true">The =
component, or null if it wasn't found.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "parent", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return (parent ?
            ((Sys.IContainer.isInstanceOfType(parent)) ?
                parent.findComponent(id) :
                parent[id] || null) :
            Sys.Application._components[id] || null);
    },
    getComponents: function _Application$getComponents() {
        /// <summary =
locid=3D"M:J#Sys.Application.getComponents"></summary>
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var res =3D [];
        var components =3D this._components;
        for (var name in components) {
            if (components.hasOwnProperty(name)) {
                res.push(components[name]);
            }
        }
        return res;
    },
    initialize: function _Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
    },
    _doInitialize: function _Application$_doInitialize() {
        if(!this.get_isInitialized() && !this._disposing) {
            Sys._Application.callBaseMethod(this, 'initialize');
            this._raiseInit();
            if (this.get_stateString) {
                if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
                    var prm =3D =
Sys.WebForms.PageRequestManager.getInstance();
                    this._beginRequestHandler =3D =
Function.createDelegate(this, this._onPageRequestManagerBeginRequest);
                    prm.add_beginRequest(this._beginRequestHandler);
                    this._endRequestHandler =3D =
Function.createDelegate(this, this._onPageRequestManagerEndRequest);
                    prm.add_endRequest(this._endRequestHandler);
                }
                var loadedEntry =3D this.get_stateString();
                if (loadedEntry !=3D=3D this._currentEntry) {
                    this._navigate(loadedEntry);
                }
                else {
                    this._ensureHistory();
                }
            }
            this.raiseLoad();
        }
    },
    notifyScriptLoaded: function _Application$notifyScriptLoaded() {
        /// <summary =
locid=3D"M:J#Sys.Application.notifyScriptLoaded">Called by referenced =
scripts to indicate that they have completed loading. =
[Obsolete]</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    },
    registerDisposableObject: function =
_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject">Registers a =
disposable object with the application.</summary>
        /// <param name=3D"object" type=3D"Sys.IDisposable">The object =
to register.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            var objects =3D this._disposableObjects,
                i =3D objects.length;
            objects[i] =3D object;
            object.__msdisposeindex =3D i;
        }
    },
    raiseLoad: function _Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!!this._loaded);
        this._loaded =3D true;
        Sys.Observer.raiseEvent(this, "load", args);
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    },
    removeComponent: function _Application$removeComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.Application.removeComponent">Removes a top-level =
component from the application.</summary>
        /// <param name=3D"component" type=3D"Sys.Component">The =
component to remove.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (id) delete this._components[id];
    },
    unregisterDisposableObject: function =
_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject">Unregisters a =
disposable object from the application.</summary>
        /// <param name=3D"object" type=3D"Sys.IDisposable">The object =
to unregister.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            var i =3D object.__msdisposeindex;
            if (typeof(i) =3D=3D=3D "number") {
                var disposableObjects =3D this._disposableObjects;
                delete disposableObjects[i];
                delete object.__msdisposeindex;
                if (++this._deleteCount > 1000) {
                    var newArray =3D [];
                    for (var j =3D 0, l =3D disposableObjects.length; j =
< l; j++) {
                        object =3D disposableObjects[j];
                        if (typeof(object) !=3D=3D "undefined") {
                            object.__msdisposeindex =3D newArray.length;
                            newArray.push(object);
                        }
                    }
                    this._disposableObjects =3D newArray;
                    this._deleteCount =3D 0;
                }
            }
        }
    },
    _addComponentToSecondPass: function =
_Application$_addComponentToSecondPass(component, references) {
        this._secondPassComponents.push({component: component, =
references: references});
    },
    _disposeComponents: function _Application$_disposeComponents(list) {
        if (list) {
            for (var i =3D list.length - 1; i >=3D 0; i--) {
                var item =3D list[i];
                if (typeof(item.dispose) =3D=3D=3D "function") {
                    item.dispose();
                }
            }
        }
    },
    _raiseInit: function _Application$_raiseInit() {
        this.beginCreateComponents();
        Sys.Observer.raiseEvent(this, "init");
        this.endCreateComponents();
    },
    _unloadHandler: function _Application$_unloadHandler(event) {
        this.dispose();
    }
}
$type.registerClass('Sys._Application', Sys.Component, Sys.IContainer);

Sys.Application =3D new Sys._Application();
window.$find =3D Sys.Application.findComponent;

Sys.onReady(function() {
    Sys.Application._doInitialize();
});


$type =3D Sys.UI.Behavior =3D function Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor"></summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element the =
behavior is associated with.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    Sys.UI.Behavior.initializeBase(this);
    this._element =3D element;
    var behaviors =3D (element._behaviors =3D element._behaviors || []);
    behaviors.push(this);
}
$type.prototype =3D {
    get_element: function Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element">The DOM element this behavior is =
associated with</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    },
    get_id: function Behavior$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id');
        if (baseId) return baseId;
        var element =3D this._element;
        if (!element || !element.id) return '';
        return element.id + '$' + this.get_name();
    },
    get_name: function Behavior$get_name() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.name"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._name) return this._name;
        var name =3D Object.getTypeName(this);
        var i =3D name.lastIndexOf('.');
        if (i >=3D 0) name =3D name.substr(i + 1);
        if (!this._initialized) this._name =3D name;
        return name;
    },
    set_name: function Behavior$set_name(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || =
(value.charAt(value.length - 1) =3D=3D=3D ' '))
            throw Error.argument('value', Sys.Res.invalidId);
        if (typeof(this._element[value]) !=3D=3D 'undefined')
            throw =
Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, =
value));
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
        this._name =3D value;
    },
    initialize: function Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    },
    dispose: function Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        var e =3D this._element;
        if (e) {
            var name =3D this.get_name();
            if (name) {
                e[name] =3D null;
            }
            var behaviors =3D e._behaviors;
            Array.remove(behaviors, this);
            if (!behaviors.length) {
                e._behaviors =3D null;
            }
            delete this._element;
        }
    }
}
$type.registerClass('Sys.UI.Behavior', Sys.Component);

$type.getBehaviorByName =3D function Behavior$getBehaviorByName(element, =
name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName">Gets a =
behavior with the specified name from the dom element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element to =
inspect.</param>
    /// <param name=3D"name" type=3D"String">The name of the behavior to =
look for.</param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true">The =
behaviors or null if it was not found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    var b =3D element[name];
    return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
}

$type.getBehaviors =3D function Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors">Gets a =
collection containing the behaviors associated with an =
element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM =
element.</param>
    /// <returns type=3D"Array" elementType=3D"Sys.UI.Behavior">An array =
containing the behaviors associated with the DOM element.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    return behaviors ? Array.clone(behaviors) : [];
}

Sys.UI.Behavior.getBehaviorsByType =3D function =
Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType">Gets =
an array of behaviors with the specified type from the dom =
element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element to =
inspect.</param>
    /// <param name=3D"type" type=3D"Type">The type of behavior to look =
for.</param>
    /// <returns type=3D"Array" elementType=3D"Sys.UI.Behavior">An array =
containing the behaviors of the specified type found on the element.  =
The array is empty if no behavior of this type was found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "type", type: Type}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    var results =3D [];
    if (behaviors) {
        for (var i =3D 0, l =3D behaviors.length; i < l; i++) {
            var behavior =3D behaviors[i];
            if (type.isInstanceOfType(behavior)) {
                results.push(behavior);
            }
        }
    }
    return results;
}
$type =3D Sys.UI.VisibilityMode =3D function VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor">Describes how =
a DOM element should disappear when its visible property is set to =
false.</summary>
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide">The element =
disappears but its space remains</field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse">The element =
disappears and the space it occupied is collapsed.</field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    hide: 0,
    collapse: 1
}
$type.registerEnum("Sys.UI.VisibilityMode");

$type =3D Sys.UI.Control =3D function Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor"></summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element the =
behavior is associated with.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (element.control) throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);

    this._element =3D element;
    element.control =3D this;
    var role =3D this.get_role();
    if (role) {
        element.setAttribute("role", role);
    }
}
$type.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,

    get_element: function Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element">The DOM element this behavior is =
associated with</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    },
    get_id: function Control$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id || (this._element ? this._element.id : "");
    },
    get_parent: function Control$get_parent() {
        /// <value type=3D"Sys.UI.Control" =
locid=3D"P:J#Sys.UI.Control.parent"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parent) return this._parent;
        if (!this._element) return null;
       =20
        var parentElement =3D this._element.parentNode;
        while (parentElement) {
            if (parentElement.control) {
                return parentElement.control;
            }
            parentElement =3D parentElement.parentNode;
        }
        return null;
    },
    set_parent: function Control$set_parent(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.Control}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        var parents =3D [this];
        var current =3D value;
        while (current) {
            if (Array.contains(parents, current)) throw =
Error.invalidOperation(Sys.Res.circularParentChain);
            parents.push(current);
            current =3D current.get_parent();
        }
        this._parent =3D value;
    },
    get_role: function Control$get_role() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.role"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return null;
    },
    get_visibilityMode: function Control$get_visibilityMode() {
        /// <value type=3D"Sys.UI.VisibilityMode" =
locid=3D"P:J#Sys.UI.Control.visibilityMode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisibilityMode(this._element);
    },
    set_visibilityMode: function Control$set_visibilityMode(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.VisibilityMode}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisibilityMode(this._element, value);
    },
    get_visible: function Control$get_visible() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI.Control.visible"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisible(this._element);
    },
    set_visible: function Control$set_visible(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisible(this._element, value)
    },
    addCssClass: function Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass">Adds a CSS =
class to the control if it doesn't already have it.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to add.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.addCssClass(this._element, className);
    },
    dispose: function Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D null;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    },
    onBubbleEvent: function Control$onBubbleEvent(source, args) {
        /// <summary =
locid=3D"M:J#Sys.UI.Control.onBubbleEvent"></summary>
        /// <param name=3D"source">The object that triggered the =
event.</param>
        /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
        /// <returns type=3D"Boolean">False, because the event was not =
handled and should bubble up further. Derived classes should override =
that and return true whenever they handle the event to prevent it from =
bubbling up.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    },
    raiseBubbleEvent: function Control$raiseBubbleEvent(source, args) {
        /// <summary =
locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent"></summary>
        /// <param name=3D"source">The object that triggered the =
event.</param>
        /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        this._raiseBubbleEvent(source, args);
    },
    _raiseBubbleEvent: function Control$_raiseBubbleEvent(source, args) =
{
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    },
    removeCssClass: function Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass">Removes =
a CSS class from the control.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to remove.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.removeCssClass(this._element, className);
    },
    toggleCssClass: function Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass">Toggles =
a CSS class on and off on the control.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to toggle.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.toggleCssClass(this._element, className);
    }
}
$type.registerClass('Sys.UI.Control', Sys.Component);



$type =3D Sys.HistoryEventArgs =3D function HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor"></summary>
    /// <param name=3D"state" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object}
    ]);
    if (e) throw e;
    Sys.HistoryEventArgs.initializeBase(this);
    this._state =3D state;
}
$type.prototype =3D {
    get_state: function HistoryEventArgs$get_state() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.HistoryEventArgs.state"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._state;
    }
}
$type.registerClass('Sys.HistoryEventArgs', Sys.EventArgs);
$type =3D Sys.Application;
$type._currentEntry =3D '';
$type._initialState =3D null;
$type._state =3D {};

$prototype =3D Sys._Application.prototype;
$prototype.get_stateString =3D function _Application$get_stateString() {
    /// <summary =
locid=3D"M:J#Sys._Application.get_stateString"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var hash =3D null;
   =20
    if (isBrowser("Firefox")) {
        var href =3D window.location.href;
        var hashIndex =3D href.indexOf('#');
        if (hashIndex !=3D=3D -1) {
            hash =3D href.substring(hashIndex + 1);
        }
        else {
            hash =3D "";
        }
        return hash;
    }
    else {
        hash =3D window.location.hash;
    }
   =20
    if (hash.length && (hash.charAt(0) =3D=3D=3D '#')) {
        hash =3D hash.substring(1);
    }

    return hash;
};

$prototype.get_enableHistory =3D function =
_Application$get_enableHistory() {
    /// <summary =
locid=3D"M:J#Sys._Application.get_enableHistory"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return !!this._enableHistory;
};

$prototype.set_enableHistory =3D function =
_Application$set_enableHistory(value) {
    if (this._initialized && !this._initializing) {
        throw =
Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
    }
    else if (this._historyEnabledInScriptManager && !value) {
        throw =
Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
    }
    this._enableHistory =3D value;
};

$prototype.add_navigate =3D function _Application$add_navigate(handler) =
{
    /// <summary locid=3D"E:J#Sys.Application.navigate"></summary>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    this._addHandler("navigate", handler);
};

$prototype.remove_navigate =3D function =
_Application$remove_navigate(handler) {
    /// <summary =
locid=3D"M:J#Sys._Application.remove_navigate"></summary>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    this._removeHandler("navigate", handler);
};

$prototype.addHistoryPoint =3D function =
_Application$addHistoryPoint(state, title) {
    /// <summary =
locid=3D"M:J#Sys.Application.addHistoryPoint"></summary>
    /// <param name=3D"state" type=3D"Object">A dictionary of state bits =
that will be added to the main state   to form the global state of the =
new history point.   The state must be a string dictionary. The =
application is responsible   for converting the state bits from and into =
the relevant types.</param>
    /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The title for the new history point.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object},
        {name: "title", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (!this._enableHistory) throw =
Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDis=
abled);
    for (var n in state) {
        var v =3D state[n];
        var t =3D typeof(v);
        if ((v !=3D=3D null) && ((t =3D=3D=3D 'object') || (t =3D=3D=3D =
'function') || (t =3D=3D=3D 'undefined'))) {
            throw Error.argument('state', =
Sys.Res.stateMustBeStringDictionary);
        }
    }
    this._ensureHistory();
    var initialState =3D this._state;
    for (var key in state) {
        var value =3D state[key];
        if (value =3D=3D=3D null) {
            if (typeof(initialState[key]) !=3D=3D 'undefined') {
                delete initialState[key];
            }
        }
        else {
            initialState[key] =3D value;
        }
    }
    var entry =3D this._serializeState(initialState);
    this._historyPointIsNew =3D true;
    this._setState(entry, title);
    this._raiseNavigate();
};

$prototype.setServerId =3D function _Application$setServerId(clientId, =
uniqueId) {
    /// <summary locid=3D"M:J#Sys.Application.setServerId"></summary>
    /// <param name=3D"clientId" type=3D"String"></param>
    /// <param name=3D"uniqueId" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "clientId", type: String},
        {name: "uniqueId", type: String}
    ]);
    if (e) throw e;
    this._clientId =3D clientId;
    this._uniqueId =3D uniqueId;
};

$prototype.setServerState =3D function =
_Application$setServerState(value) {
    /// <summary locid=3D"M:J#Sys.Application.setServerState"></summary>
    /// <param name=3D"value" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    this._ensureHistory();
    this._state.__s =3D value;
    this._updateHiddenField(value);
};

$prototype._deserializeState =3D function =
_Application$_deserializeState(entry) {
    var result =3D {};
    entry =3D entry || '';
    var serverSeparator =3D entry.indexOf('&&');
    if ((serverSeparator !=3D=3D -1) && (serverSeparator + 2 < =
entry.length)) {
        result.__s =3D entry.substr(serverSeparator + 2);
        entry =3D entry.substr(0, serverSeparator);
    }
    var tokens =3D entry.split('&');
    for (var i =3D 0, l =3D tokens.length; i < l; i++) {
        var token =3D tokens[i];
        var equal =3D token.indexOf('=3D');
        if ((equal !=3D=3D -1) && (equal + 1 < token.length)) {
            var name =3D token.substr(0, equal);
            var value =3D token.substr(equal + 1);
            result[name] =3D decodeURIComponent(value);
        }
    }
    return result;
};

$prototype._enableHistoryInScriptManager =3D function =
_Application$_enableHistoryInScriptManager() {
    this._enableHistory =3D true;
    this._historyEnabledInScriptManager =3D true;
};

$prototype._ensureHistory =3D function _Application$_ensureHistory() {
    if (!this._historyInitialized && this._enableHistory) {
        if (isBrowser("InternetExplorer") && (Sys.Browser.documentMode < =
8)) {
            this._historyFrame =3D Sys.get('#__historyFrame');
            if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
            this._ignoreIFrame =3D true;
        }
        this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
       =20
        var e;
        try {
            this._initialState =3D =
this._deserializeState(this.get_stateString());
        }
        catch(e) {}
       =20
        this._historyInitialized =3D true;
    }
};

$prototype._navigate =3D function _Application$_navigate(entry) {
    this._ensureHistory();

    var state =3D this._deserializeState(entry);
   =20
    if (this._uniqueId) {
        var oldServerEntry =3D this._state.__s || '';
        var newServerEntry =3D state.__s || '';
        if (newServerEntry !=3D=3D oldServerEntry) {
            this._updateHiddenField(newServerEntry);
            __doPostBack(this._uniqueId, newServerEntry);
            this._state =3D state;
            return;
        }
    }
    this._setState(entry);
    this._state =3D state;
    this._raiseNavigate();
};

$prototype._onIdle =3D function _Application$_onIdle() {
    delete this._timerCookie;
   =20
    var entry =3D this.get_stateString();
    if (entry !=3D=3D this._currentEntry) {
        if (!this._ignoreTimer) {
            this._historyPointIsNew =3D false;
            this._navigate(entry);
        }
    }
    else {
        this._ignoreTimer =3D false;
    }
    this._timerCookie =3D window.setTimeout(this._timerHandler, 100);
};

$prototype._onIFrameLoad =3D function _Application$_onIFrameLoad(entry) =
{
    this._ensureHistory();
    if (!this._ignoreIFrame) {
        this._historyPointIsNew =3D false;
        this._navigate(entry);
    }
    this._ignoreIFrame =3D false;
};

$prototype._onPageRequestManagerBeginRequest =3D function =
_Application$_onPageRequestManagerBeginRequest(sender, args) {
    this._ignoreTimer =3D true;
    this._originalTitle =3D document.title;
};

$prototype._onPageRequestManagerEndRequest =3D function =
_Application$_onPageRequestManagerEndRequest(sender, args) {
    var dataItem =3D args.get_dataItems()[this._clientId];
    var originalTitle =3D this._originalTitle;
    this._originalTitle =3D null;

    var eventTarget =3D Sys.get("#__EVENTTARGET");
    if (eventTarget && eventTarget.value =3D=3D=3D this._uniqueId) {
        eventTarget.value =3D '';
    }
    if (typeof(dataItem) !=3D=3D 'undefined') {
        this.setServerState(dataItem);
        this._historyPointIsNew =3D true;
    }
    else {
        this._ignoreTimer =3D false;
    }
    var entry =3D this._serializeState(this._state);
    if (entry !=3D=3D this._currentEntry) {
        this._ignoreTimer =3D true;
        if (typeof(originalTitle) =3D=3D=3D "string") {
            if (!isBrowser("InternetExplorer") || Sys.Browser.version > =
7) {
                var newTitle =3D document.title;
                document.title =3D originalTitle;
                this._setState(entry);
                document.title =3D newTitle;
            }
            else {
                this._setState(entry);
            }
            this._raiseNavigate();
        }
        else {
            this._setState(entry);
            this._raiseNavigate();
        }
    }
};

$prototype._raiseNavigate =3D function _Application$_raiseNavigate() {
    var isNew =3D this._historyPointIsNew;
    var stateClone =3D {};
    for (var key in this._state) {
        if (key !=3D=3D '__s') {
            stateClone[key] =3D this._state[key];
        }
    }
    var args =3D new Sys.HistoryEventArgs(stateClone);
    Sys.Observer.raiseEvent(this, "navigate", args);
    if (!isNew) {
        var err;
        try {
            if (isBrowser("Firefox") && window.location.hash &&
                (!window.frameElement || window.top.location.hash)) {
                (Sys.Browser.version < 3.5) ?
                    window.history.go(0) :
                    location.hash =3D this.get_stateString();
            }
        }
        catch(err) {
        }
    }
};

$prototype._serializeState =3D function =
_Application$_serializeState(state) {
    var serialized =3D [];
    for (var key in state) {
        var value =3D state[key];
        if (key =3D=3D=3D '__s') {
            var serverState =3D value;
        }
        else {
            if (key.indexOf('=3D') !=3D=3D -1) throw =
Error.argument('state', Sys.Res.stateFieldNameInvalid);
            serialized.push(key + '=3D' + encodeURIComponent(value));
        }
    }
    return serialized.join('&') + (serverState ? '&&' + serverState : =
'');
};

$prototype._setState =3D function _Application$_setState(entry, title) {
    if (this._enableHistory) {
        entry =3D entry || '';
        if (entry !=3D=3D this._currentEntry) {
            if (window.theForm) {
                var action =3D window.theForm.action;
                var hashIndex =3D action.indexOf('#');
                window.theForm.action =3D ((hashIndex !=3D=3D -1) ? =
action.substring(0, hashIndex) : action) + '#' + entry;
            }
       =20
            if (this._historyFrame && this._historyPointIsNew) {
                this._ignoreIFrame =3D true;
                var frameDoc =3D =
this._historyFrame.contentWindow.document;
                frameDoc.open("javascript:'<html></html>'");
                frameDoc.write("<html><head><title>" + (title || =
document.title) +
                    "</title><scri" + "pt =
type=3D\"text/javascript\">parent.Sys.Application._onIFrameLoad(" +=20
                    =
Sys.Serialization.JavaScriptSerializer.serialize(entry) +
                    ");</scri" + "pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            this._currentEntry =3D entry;
            if (this._historyFrame || this._historyPointIsNew) {
                var currentHash =3D this.get_stateString();
                if (entry !=3D=3D currentHash) {
                    var loc =3D document.location;
                    if (loc.href.length - loc.hash.length + entry.length =
> 2048) {
                        throw =
Error.invalidOperation(String.format(Sys.Res.urlTooLong, 2048));
                    }
                    window.location.hash =3D entry;
                    this._currentEntry =3D this.get_stateString();
                    if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                        document.title =3D title;
                    }
                }
            }
            this._historyPointIsNew =3D false;
        }
    }
};

$prototype._updateHiddenField =3D function =
_Application$_updateHiddenField(value) {
    if (this._clientId) {
        var serverStateField =3D =
document.getElementById(this._clientId);
        if (serverStateField) {
            serverStateField.value =3D value;
        }
    }
};



if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var ex, progIDs =3D [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                return new ActiveXObject(progIDs[i]);
            }
            catch (ex) {
            }
        }
        return null;
    }
}

Type.registerNamespace('Sys.Net');

$type =3D Sys.Net.WebRequestExecutor =3D function WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor">Base =
class for WebRequestExecutors which handle the actual execution of a =
WebRequest</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}


$type.prototype =3D {
    get_started: function WebRequestExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_responseAvailable: function =
WebRequestExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_timedOut: function WebRequestExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_aborted: function WebRequestExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_responseData: function WebRequestExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_statusCode: function WebRequestExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_statusText: function WebRequestExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    get_xml: function WebRequestExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    executeRequest: function WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest">Begins execution =
of the request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    abort: function WebRequestExecutor$abort() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.abort">Aborts the =
request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    getAllResponseHeaders: function =
WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders">Returns =
all the responses header.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    getResponseHeader: function =
WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader">Returns a =
response header.</summary>
        /// <param name=3D"header" type=3D"String">The requested =
header.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    },
    get_webRequest: function WebRequestExecutor$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    },
    _set_webRequest: function WebRequestExecutor$_set_webRequest(value) =
{
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    },
    get_object: function WebRequestExecutor$get_object() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.object">The =
JSON eval'd response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var result =3D this._resultObject;
        if (!result) {
            this._resultObject =3D result =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return result;
    }
}
$type.registerClass('Sys.Net.WebRequestExecutor');
Sys.Net.XMLDOM =3D function XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor">Creates an XML =
document from an XML string.</summary>
    /// <param name=3D"markup" type=3D"String">The XML string to =
parse.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var ex, progIDs =3D [ 'Msxml2.DOMDocument.3.0', =
'Msxml2.DOMDocument' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                var xmlDOM =3D new ActiveXObject(progIDs[i]);
                xmlDOM.async =3D false;
                xmlDOM.loadXML(markup);
                xmlDOM.setProperty('SelectionLanguage', 'XPath');
                return xmlDOM;
            }
            catch (ex) {
            }
        }
    }
    else {
        try {
            var domParser =3D new window.DOMParser();
            return domParser.parseFromString(markup, 'text/xml');
        }
        catch (ex) {
        }
    }
    return null;
}

$type =3D Sys.Net.XMLHttpExecutor =3D function XMLHttpExecutor() {
    /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor">XMLHttpExecutor</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();

    Sys.Net.XMLHttpExecutor.initializeBase(this);

    var _this =3D this;

    this._onReadyStateChange =3D (function () {
        /*
            readyState values:
            0 =3D uninitialized
            1 =3D loading
            2 =3D loaded
            3 =3D interactive
            4 =3D complete
        */
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 /*complete*/) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
                _this._webRequest.completed(Sys.EventArgs.Empty);
                if (_this._xmlHttpRequest) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
        }
    });

    this._clearTimer =3D (function() {
        if (_this._timer) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });

    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            var xhr =3D _this._xmlHttpRequest;
            xhr.onreadystatechange =3D Function.emptyMethod;
            xhr.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });

}

$type.prototype =3D {

    get_timedOut: function XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut">True if the executor has =
timed out.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._timedOut;
    },

    get_started: function XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started">True if the executor has =
started.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._started;
    },

    get_responseAvailable: function =
XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable">True if a =
response is available.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._responseAvailable;
    },

    get_aborted: function XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted">True if the executor has =
been aborted.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._aborted;
    },

    executeRequest: function XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest">Invokes the =
request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var request =3D this.get_webRequest();
        this._webRequest =3D request;

        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (!this._webRequest) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }

        var body =3D request.get_body();
        var headers =3D request.get_headers();
        var xhr =3D new XMLHttpRequest();
        this._xmlHttpRequest =3D xhr;
        xhr.onreadystatechange =3D this._onReadyStateChange;
        var verb =3D request.get_httpVerb();
        xhr.open(verb, request.getResolvedUrl(), true /*async*/);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    xhr.setRequestHeader(header, val);
            }
        }

        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                xhr.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }

            if (!body) {
                body =3D "";
            }
        }

        var timeout =3D request.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        xhr.send(body);
        this._started =3D true;
    },

    getResponseHeader: function =
XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader">Returns a =
response header.</summary>
        /// <param name=3D"header" type=3D"String">The requested =
header.</param>
        /// <returns type=3D"String">The value of the header.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getResponseHeader'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getResponseHeader'));
        }

        var er, result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (er) {
        }
        if (!result) result =3D "";
        return result;
    },

    getAllResponseHeaders: function =
XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders">Returns all =
the responses header.</summary>
        /// <returns type=3D"String">The text of all the =
headers.</returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getAllResponseHeaders'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getAllResponseHeaders'));
        }

        return this._xmlHttpRequest.getAllResponseHeaders();
    },

    get_responseData: function XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData">The text of the =
response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_responseData'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_responseData'));
        }

        return this._xmlHttpRequest.responseText;
    },

    get_statusCode: function XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode">The status code of the =
response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusCode'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusCode'));
        }
        var ex, result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    },

    get_statusText: function XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText">The status text of the =
repsonse.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusText'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusText'));
        }

        return this._xmlHttpRequest.statusText;
    },

    get_xml: function XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml">The =
response in xml format.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_xml'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_xml'));
        }
        var xhr =3D this._xmlHttpRequest;
        var xml =3D xhr.responseXML;
        if (!xml || !xml.documentElement) {

            xml =3D Sys.Net.XMLDOM(xhr.responseText);

            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            xml.setProperty('SelectionLanguage', 'XPath');
        }

        if (xml.documentElement.namespaceURI =3D=3D=3D =
"http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
            xml.documentElement.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        if (xml.documentElement.firstChild && =
xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        return xml;
    },

    abort: function XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort">Aborts =
the request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }

        if (this._aborted || this._responseAvailable || this._timedOut)
            return;

        this._aborted =3D true;

        this._clearTimer();
        var xhr =3D this._xmlHttpRequest;
        if (xhr && !this._responseAvailable) {

            xhr.onreadystatechange =3D Function.emptyMethod;
            xhr.abort();
           =20
            this._xmlHttpRequest =3D null;           =20

            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
}
$type.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
$type =3D Sys.Net._WebRequestManager =3D function _WebRequestManager() {
    /// <summary =
locid=3D"P:J#Sys.Net.WebRequestManager.#ctor"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}

$type.prototype =3D {
    add_invokingRequest: function =
_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "invokingRequest", handler);
    },
    remove_invokingRequest: function =
_WebRequestManager$remove_invokingRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "invokingRequest", =
handler);
    },

    add_completedRequest: function =
_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "completedRequest", handler);
    },
    remove_completedRequest: function =
_WebRequestManager$remove_completedRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "completedRequest", =
handler);
    },
    get_defaultTimeout: function _WebRequestManager$get_defaultTimeout() =
{
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout">The default =
timeout for requests in milliseconds.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout || 0;
    },
    set_defaultTimeout: function =
_WebRequestManager$set_defaultTimeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }

        this._defaultTimeout =3D value;
    },

    get_defaultExecutorType: function =
_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType">The default =
executor type name.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    },
    set_defaultExecutorType: function =
_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    },

    executeRequest: function =
_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest">Executes a =
request.</summary>
        /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest">The =
webRequest to execute.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "webRequest", type: Sys.Net.WebRequest}
        ]);
        if (e) throw e;
        var executor =3D webRequest.get_executor();
        if (!executor) {
            var er, failed;
            try {
                var executorType =3D =
window.eval(this._defaultExecutorType);
                executor =3D new executorType();
            }
            catch (er) {
                failed =3D true;
            }

            if (failed  || =
!Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
                throw Error.argument("defaultExecutorType", =
String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
            }

            webRequest.set_executor(executor);
        }

        if (!executor.get_aborted()) {
            var evArgs =3D new =
Sys.Net.NetworkRequestEventArgs(webRequest);
            Sys.Observer.raiseEvent(this, "invokingRequest", evArgs);
            if (!evArgs.get_cancel()) {
                executor.executeRequest();
            }
        }
    }
}

$type.registerClass('Sys.Net._WebRequestManager');

Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
$type =3D Sys.Net.NetworkRequestEventArgs =3D function =
NetworkRequestEventArgs(webRequest) {
    /// <summary =
locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor">This class is raised =
by the WebRequestManager when a WebRequest is about to be =
executed.</summary>
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest">The =
identifier for the event.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "webRequest", type: Sys.Net.WebRequest}
    ]);
    if (e) throw e;
    Sys.Net.NetworkRequestEventArgs.initializeBase(this);
    this._webRequest =3D webRequest;
}

$type.prototype =3D {
    get_webRequest: function NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest">The request =
about to be executed.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
}

$type.registerClass('Sys.Net.NetworkRequestEventArgs', =
Sys.CancelEventArgs);
$type =3D Sys.Net.WebRequest =3D function WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor">WebRequest =
class</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._url =3D "";
    this._headers =3D { };
    this._body =3D null;
    this._userContext =3D null;
    this._httpVerb =3D null;
}

$type.prototype =3D {
    add_completed: function WebRequest$add_completed(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequest.completed"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "completed", handler);
    },
    remove_completed: function WebRequest$remove_completed(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "completed", handler);
    },

    completed: function WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed">The =
completed method should be called when the request is =
completed.</summary>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs">The event =
args to raise the event with.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        function raise(source, sender, eventName) {
            var handler =3D Sys.Observer._getContext(source, =
true).events.getHandler(eventName);
            if (handler) {
                handler(sender, eventArgs);
            }
        }
        raise(Sys.Net.WebRequestManager, this._executor, =
"completedRequest");
        raise(this, this._executor, "completed");
        Sys.Observer.clearEventHandlers(this, "completed");
    },

    get_url: function WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url">The url.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    },
    set_url: function WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    },

    get_headers: function WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers">The headers =
dictionary for the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    },

    get_httpVerb: function WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb">The httpVerb for the =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._httpVerb =3D=3D=3D null) {
            if (this._body =3D=3D=3D null) {
                return "GET";
            }
            return "POST";
        }
        return this._httpVerb;
    },
    set_httpVerb: function WebRequest$set_httpVerb(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (value.length =3D=3D=3D 0) {
            throw Error.argument('value', Sys.Res.invalidHttpVerb);
        }
        this._httpVerb =3D value;
    },

    get_body: function WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body">The body of the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    },
    set_body: function WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    },

    get_userContext: function WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext">The userContext of the =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    },
    set_userContext: function WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    },

    get_executor: function WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor">The executor for the =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor || null;
    },
    set_executor: function WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor && this._executor.get_started()) {
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        value._set_webRequest(this);
    },

    get_timeout: function WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout">The timeout in milliseconds for =
the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout || =
Sys.Net.WebRequestManager.get_defaultTimeout();
    },
    set_timeout: function WebRequest$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    },

    getResolvedUrl: function WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#raise">The getResolvedUrl method =
returns the url resolved against the base url of the page if =
set.</summary>
        /// <returns type=3D"String">The resolved url for the =
request.</returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    },

    invoke: function WebRequest$invoke() {
        /// <summary locid=3D"M:J#raise">Invokes the request</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._invokeCalled) {
            throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
        }
        Sys.Net.WebRequestManager.executeRequest(this);
        this._invokeCalled =3D true;
    }
}

$type._resolveUrl =3D function WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') > 0) {
        return url;
    }

    if (!baseUrl || !baseUrl.length) {
        var baseElement =3D Sys.get('base');
        if (baseElement && baseElement.href && baseElement.href.length) =
{
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }

    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart > 0) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart > 0) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);

    if (!url || !url.length) {
        return baseUrl;
    }

    if (url.charAt(0) =3D=3D=3D '/') {
        var slashslash =3D baseUrl.indexOf('://');
        if (slashslash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
        }

        var nextSlash =3D baseUrl.indexOf('/', slashslash + 3);
        if (nextSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
        }

        return baseUrl.substr(0, nextSlash) + url;
    }
    else {
        var lastSlash =3D baseUrl.lastIndexOf('/');
        if (lastSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
        }

        return baseUrl.substr(0, lastSlash+1) + url;
    }
}

$type._createQueryString =3D function =
WebRequest$_createQueryString(queryString, encodeMethod, addParams) {
    encodeMethod =3D encodeMethod || encodeURIComponent;
    var i =3D 0, obj, val, arg, sb =3D new Sys.StringBuilder();
    if (queryString) {
        for (arg in queryString) {
            obj =3D queryString[arg];
            if (typeof(obj) =3D=3D=3D "function") continue;
            val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
            if (i++) {
                sb.append('&');
            }
            sb.append(arg);
            sb.append('=3D');
            sb.append(encodeMethod(val));
        }
    }
    if (addParams) {
        if (i) {
            sb.append('&');
        }
        sb.append(addParams);
    }
    return sb.toString();
}

$type._createUrl =3D function WebRequest$_createUrl(url, queryString, =
addParams) {
    if (!queryString && !addParams) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString, null, =
addParams);
    return qs.length
        ? url + ((url && url.indexOf('?') >=3D 0) ? "&" : "?") + qs
        : url;
}

$type.registerClass('Sys.Net.WebRequest');



Type.registerNamespace('Sys.Net');

$type =3D Sys.Net.WebServiceProxy =3D function WebServiceProxy() {
    var type =3D Object.getType(this);
   =20
    if (type._staticInstance && =
(typeof(type._staticInstance.get_enableJsonp) =3D=3D=3D "function")) {
        this._jsonp =3D (type._staticInstance.get_enableJsonp());
    }
}
$type.prototype =3D {
    get_timeout: function WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout">The timeout in =
milliseconds for the service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout || 0;
    },
    set_timeout: function WebServiceProxy$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange('value', value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    },
    get_defaultUserContext: function =
WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext">The default =
userContext for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return (typeof(this._userContext) =3D=3D=3D "undefined") ? null =
: this._userContext;
    },
    set_defaultUserContext: function =
WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    },
    get_defaultSucceededCallback: function =
WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback">Returns =
the default succeededCallback for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded || null;
    },
    set_defaultSucceededCallback: function =
WebServiceProxy$set_defaultSucceededCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    },
    get_defaultFailedCallback: function =
WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback">Returns the =
default failedCallback for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed || null;
    },
    set_defaultFailedCallback: function =
WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    },
    get_enableJsonp: function WebServiceProxy$get_enableJsonp() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceProxy.enableJsonp">Specifies whether the =
service supports JSONP for cross domain calling.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._jsonp;
    },
    set_enableJsonp: function WebServiceProxy$set_enableJsonp(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._jsonp =3D value;
    },
    get_path: function WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path">The path to this =
service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || null;
    },
    set_path: function WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    },
    get_jsonpCallbackParameter: function =
WebServiceProxy$get_jsonpCallbackParameter() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.jsonpCallbackParameter">Specifies =
the parameter name that contains the callback function name for a JSONP =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._callbackParameter || "callback";
    },
    set_jsonpCallbackParameter: function =
WebServiceProxy$set_jsonpCallbackParameter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._callbackParameter =3D value;
    },
    _invoke: function WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebServiceProxy._invoke"></summary>
        /// <param name=3D"servicePath" type=3D"String">Path to the =
webservice</param>
        /// <param name=3D"methodName" type=3D"String">Method to =
invoke</param>
        /// <param name=3D"useGet" type=3D"Boolean">Controls whether =
requests use HttpGet</param>
        /// <param name=3D"params">Method args.</param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true">Success callback</param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true">Failure callback</param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
        /// <returns type=3D"Sys.Net.WebRequest" =
mayBeNull=3D"true">Returns the request that was sent</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "servicePath", type: String},
            {name: "methodName", type: String},
            {name: "useGet", type: Boolean},
            {name: "params"},
            {name: "onSuccess", type: Function, mayBeNull: true, =
optional: true},
            {name: "onFailure", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;

        onSuccess =3D onSuccess || this.get_defaultSucceededCallback();
        onFailure =3D onFailure || this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout(), =
this.get_enableJsonp(), this.get_jsonpCallbackParameter());
    }
}
$type.registerClass('Sys.Net.WebServiceProxy');

$type.invoke =3D function WebServiceProxy$invoke(servicePath, =
methodName, useGet, params, onSuccess, onFailure, userContext, timeout, =
enableJsonp, jsonpCallbackParameter) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke"></summary>
    /// <param name=3D"servicePath" type=3D"String">Path to the =
webservice</param>
    /// <param name=3D"methodName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">Method to invoke</param>
    /// <param name=3D"useGet" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Controls whether requests use HttpGet</param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true">Method args.</param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Failure callback</param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
    /// <param name=3D"timeout" type=3D"Number" optional=3D"true" =
mayBeNull=3D"true">Timeout in milliseconds</param>
    /// <param name=3D"enableJsonp" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether to use JSONP if the servicePath is for a =
different domain (default is true).</param>
    /// <param name=3D"jsonpCallbackParameter" type=3D"String" =
optional=3D"true" mayBeNull=3D"true">The name of the callback parameter =
for JSONP request (default is callback).</param>
    /// <returns type=3D"Sys.Net.WebRequest" mayBeNull=3D"true">Returns =
the request that was sent (null for JSONP requests).</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String, mayBeNull: true, optional: =
true},
        {name: "useGet", type: Boolean, mayBeNull: true, optional: =
true},
        {name: "params", mayBeNull: true, optional: true},
        {name: "onSuccess", type: Function, mayBeNull: true, optional: =
true},
        {name: "onFailure", type: Function, mayBeNull: true, optional: =
true},
        {name: "userContext", mayBeNull: true, optional: true},
        {name: "timeout", type: Number, mayBeNull: true, optional: =
true},
        {name: "enableJsonp", type: Boolean, mayBeNull: true, optional: =
true},
        {name: "jsonpCallbackParameter", type: String, mayBeNull: true, =
optional: true}
    ]);
    if (e) throw e;
    var schemeHost =3D (enableJsonp !=3D=3D false) ? =
Sys.Net.WebServiceProxy._xdomain.exec(servicePath) : null,
        tempCallback, jsonp =3D schemeHost && (schemeHost.length =
=3D=3D=3D 3) &&=20
            ((schemeHost[1] !=3D=3D location.protocol) || (schemeHost[2] =
!=3D=3D location.host));
    useGet =3D jsonp || useGet;
    if (jsonp) {
        jsonpCallbackParameter =3D jsonpCallbackParameter || "callback";
        tempCallback =3D "_jsonp" + Sys._jsonp++;
    }
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    var error, timeoutcookie =3D null, body =3D null,
        url =3D Sys.Net.WebRequest._createUrl(methodName
            ? (servicePath+"/"+encodeURIComponent(methodName))
            : servicePath, urlParams, jsonp ? (jsonpCallbackParameter + =
"=3DSys." + tempCallback) : null);
    if (jsonp) {
        function jsonpComplete(data, statusCode) {
            if (timeoutcookie !=3D=3D null) {
                window.clearTimeout(timeoutcookie);
                timeoutcookie =3D null;
            }
            delete Sys[tempCallback];
            tempCallback =3D null;=20
            if ((typeof(statusCode) !=3D=3D "undefined") && (statusCode =
!=3D=3D 200)) {
                if (onFailure) {
                    error =3D new Sys.Net.WebServiceError(false,
                            data.Message || =
String.format(Sys.Res.webServiceFailedNoMsg, methodName),
                            data.StackTrace || null,
                            data.ExceptionType || null,
                            data);
                    error._statusCode =3D statusCode;
                    onFailure(error, userContext, methodName);
                }
                else {
                    if (data.StackTrace && data.Message) {
                        error =3D data.StackTrace + "-- " + =
data.Message;
                    }
                    else {
                        error =3D data.StackTrace || data.Message;
                    }
                    error =3D String.format(error ? =
Sys.Res.webServiceFailed : Sys.Res.webServiceFailedNoMsg, methodName, =
error);
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(data, userContext, methodName);
            }
        }
        Sys[tempCallback] =3D jsonpComplete;
        Sys._loadJsonp(url, function() {
            if (tempCallback) {
                jsonpComplete({ Message: =
String.format(Sys.Res.webServiceFailedNoMsg, methodName) }, -1);
            }
        });
        return null;
    }
    var request =3D new Sys.Net.WebRequest();
    request.set_url(url);
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);
        if (body =3D=3D=3D "{}") body =3D "";
    }
    request.set_body(body);
    request.add_completed(onComplete);
    if (timeout > 0) request.set_timeout(timeout);
    request.invoke();
   =20
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var ex, statusCode =3D response.get_statusCode();
            var result =3D null;
            var isJson;

            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                isJson =3D contentType.startsWith("application/json");
                result =3D isJson ? response.get_object() :
                    (contentType.startsWith("text/xml") ? =
response.get_xml() : response.get_responseData());
            }
            catch (ex) {
            }

            var error =3D response.getResponseHeader("jsonerror");
            var errorObj =3D (error =3D=3D=3D "true");
            if (errorObj) {
                if (result) {
                    result =3D new Sys.Net.WebServiceError(false, =
result.Message, result.StackTrace, result.ExceptionType, result);
                }
            }
            else if (isJson) {
                result =3D (!result || (typeof(result.d) =3D=3D=3D =
"undefined")) ? result : result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false =
/*timedout*/, String.format(Sys.Res.webServiceFailedNoMsg, methodName));
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    if (result && errorObj) {
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        error =3D response.get_responseData();
                    }
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(result, userContext, methodName);
            }
        }
        else {
            var timedOut =3D response.get_timedOut(),
                msg =3D String.format((timedOut ? =
Sys.Res.webServiceTimedOut : Sys.Res.webServiceFailedNoMsg), =
methodName);
            if (onFailure) {
                onFailure(new Sys.Net.WebServiceError(timedOut, msg, "", =
""), userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }

    return request;
}

$type._createFailedError =3D function =
WebServiceProxy$_createFailedError(methodName, errorMessage) {
    var displayMessage =3D "Sys.Net.WebServiceFailedException: " + =
errorMessage;
    var e =3D Error.create(displayMessage, { 'name': =
'Sys.Net.WebServiceFailedException', 'methodName': methodName });
    e.popStackFrame();
    return e;
}

$type._defaultFailedCallback =3D function =
WebServiceProxy$_defaultFailedCallback(err, methodName) {
    var error =3D err.get_exceptionType() + "-- " + err.get_message();
    throw Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
}

$type._generateTypedConstructor =3D function =
WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}

Sys._jsonp =3D 0;

$type._xdomain =3D /^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;

Sys._loadJsonp =3D function _loadJsonp(src, callback) {
    var script =3D document.createElement('script');
    script.type =3D 'text/javascript';
    script.src =3D src;
    var attachEvent =3D script.attachEvent;
    function onEvent() {
        if (!attachEvent || /loaded|complete/.test(script.readyState)) {
            if (attachEvent) {
                script.detachEvent("onreadystatechange", onEvent);
            }
            else {
                script.removeEventListener("load", onEvent, false);
                script.removeEventListener("error", onEvent, false);
            }
            callback.apply(script);
            script =3D null;
        }
    }
    if (attachEvent) {
        script.attachEvent("onreadystatechange", onEvent);
    }
    else {
        script.addEventListener("load", onEvent, false);
        script.addEventListener("error", onEvent, false);
    }   =20
    Sys.get("head").appendChild(script);
}
$type =3D Sys.Net.WebServiceError =3D function WebServiceError(timedOut, =
message, stackTrace, exceptionType, errorObject) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor">Represents =
a webservice error</summary>
    /// <param name=3D"timedOut" type=3D"Boolean">Whether the service =
timed out.</param>
    /// <param name=3D"message" type=3D"String" mayBeNull=3D"true">The =
error message.</param>
    /// <param name=3D"stackTrace" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">The stack trace of the error.</param>
    /// <param name=3D"exceptionType" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">The server exception type.</param>
    /// <param name=3D"errorObject" type=3D"Object" mayBeNull=3D"true" =
optional=3D"true">The raw error information.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true, optional: =
true},
        {name: "exceptionType", type: String, mayBeNull: true, optional: =
true},
        {name: "errorObject", type: Object, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._errorObject =3D errorObject;
    this._statusCode =3D -1;
}

$type.prototype =3D {
    get_timedOut: function WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut">Whether the service =
failed due to timeout.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    },

    get_statusCode: function WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode">Int representing the =
status of the response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    },

    get_message: function WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message">Error message</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    },

    get_stackTrace: function WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace">Stack trace of the =
error.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace || "";
    },

    get_exceptionType: function WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType">Exception type of =
the error.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType || "";
    },
   =20
    get_errorObject: function WebServiceError$get_errorObject() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.Net.WebServiceError.errorObject">The raw error object =
returned by the service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorObject || null;
    }
}
$type.registerClass('Sys.Net.WebServiceError');

Type.registerNamespace("Sys.Services");
var ns =3D Sys.Services;
var service =3D "Service",
    role =3D "Role",
    auth =3D "Authentication",
    profile =3D "Profile";
function setPath(path) {
    this._path =3D path;
}
ns[auth+service] =3D {
    set_path: setPath,
    _setAuthenticated: function(auth) {
        this._auth =3D auth;
    }
};
ns["_" + auth + service] =3D {};

ns[profile + service] =3D { set_path: setPath };
ns["_" + profile + service] =3D {};
ns.ProfileGroup =3D function ns$ProfileGroup(properties) {
    this._propertygroup =3D properties;
}

ns[role + service] =3D { set_path: setPath };
ns["_" + role + service] =3D {};



Sys._domLoaded();
}

if (Sys.loader) {
	Sys.loader.registerScript("MicrosoftAjax", null, execute);
}
else {
	execute();
}

})(window, window.Sys);
var $get, $create, $addHandler, $addHandlers, $clearHandlers;

Type.registerNamespace('Sys');
Sys.Res=3D{
"argumentInteger":"Value must be an integer.",
"argumentType":"Object cannot be converted to the required type.",
"argumentNull":"Value cannot be null.",
"scriptAlreadyLoaded":"The script \u0027{0}\u0027 has been referenced =
multiple times. If referencing Microsoft AJAX scripts explicitly, set =
the MicrosoftAjaxMode property of the ScriptManager to Explicit.",
"scriptDependencyNotFound":"The script \u0027{0}\u0027 failed to load =
because it is dependent on script \u0027{1}\u0027.",
"formatBadFormatSpecifier":"Format specifier was invalid.",
"requiredScriptReferenceNotIncluded":"\u0027{0}\u0027 requires that you =
have included a script reference to \u0027{1}\u0027.",
"webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.",
"argumentDomElement":"Value must be a DOM element.",
"actualValue":"Actual value was {0}.",
"enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.",
"scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.",
"parameterCount":"Parameter count mismatch.",
"cannotDeserializeEmptyString":"Cannot deserialize empty string.",
"formatInvalidString":"Input string was not in a correct format.",
"argument":"Value does not fall within the expected range.",
"cannotDeserializeInvalidJson":"Cannot deserialize. The data does not =
correspond to valid JSON.",
"cannotSerializeNonFiniteNumbers":"Cannot serialize non finite =
numbers.",
"argumentUndefined":"Value cannot be undefined.",
"webServiceInvalidReturnType":"The server method \u0027{0}\u0027 =
returned an invalid type. Expected type: {1}",
"servicePathNotSet":"The path to the web service has not been set.",
"argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be =
converted to type \u0027{1}\u0027.",
"paramName":"Parameter name: {0}",
"nullReferenceInPath":"Null reference while evaluating data path: =
\u0027{0}\u0027.",
"format":"One of the identified items was in an invalid format.",
"assertFailedCaller":"Assertion Failed: {0}\r\nat {1}",
"argumentOutOfRange":"Specified argument was out of the range of valid =
values.",
"webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.",
"notImplemented":"The method or operation is not implemented.",
"assertFailed":"Assertion Failed: {0}",
"invalidOperation":"Operation is not valid due to the current state of =
the object.",
"breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?",
"invokeCalledTwice":"Cannot call invoke more than once.",
"argumentTypeName":"Value is not the name of an existing type.",
"cantBeCalledAfterDispose":"Can\u0027t be called after dispose.",
"webServiceFailed":"The server method \u0027{0}\u0027 failed with the =
following error: {1}",
"componentCantSetIdAfterAddedToApp":"The id property of a component =
can\u0027t be set after it\u0027s been added to the Application =
object.",
"behaviorDuplicateName":"A behavior with name \u0027{0}\u0027 already =
exists or it is the name of an existing property on the target =
element.",
"notATypeName":"Value is not a valid type name.",
"elementNotFound":"An element with id \u0027{0}\u0027 could not be =
found.",
"stateMustBeStringDictionary":"The state object can only have null and =
string fields.",
"invalidExecutorType":"Could not create a valid =
Sys.Net.WebRequestExecutor from: {0}.",
"boolTrueOrFalse":"Value must be \u0027true\u0027 or =
\u0027false\u0027.",
"cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is =
false.",
"scriptLoadFailedNoHead":"ScriptLoader requires pages to contain a =
\u003chead\u003e element.",
"stringFormatInvalid":"The format string is invalid.",
"referenceNotFound":"Component \u0027{0}\u0027 was not found.",
"enumReservedName":"\u0027{0}\u0027 is a reserved name that can\u0027t =
be used as an enum value name.",
"circularParentChain":"The chain of control parents can\u0027t have =
circular references.",
"namespaceContainsNonObject":"Object {0} already exists and is not an =
object.",
"undefinedEvent":"\u0027{0}\u0027 is not an event.",
"invalidTimeout":"Value must be greater than or equal to zero.",
"cannotAbortBeforeStart":"Cannot abort when executor has not started.",
"observableConflict":"Object already contains a member with the name =
\u0027{0}\u0027.",
"invalidHttpVerb":"httpVerb cannot be set to an empty or null string.",
"nullWebRequest":"Cannot call executeRequest with a null webRequest.",
"historyCannotEnableHistory":"Cannot set enableHistory after =
initialization.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"scriptLoadFailedDebug":"The script \u0027{0}\u0027 failed to load. =
Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable =
\u0027Display a notification about every script error\u0027 under =
advanced settings.",
"propertyNotWritable":"\u0027{0}\u0027 is not a writable property.",
"enumInvalidValueName":"\u0027{0}\u0027 is not a valid name for an enum =
value.",
"cannotCallOnceStarted":"Cannot call {0} once started.",
"controlAlreadyDefined":"A control is already associated with the =
element.",
"addHandlerCantBeUsedForError":"Can\u0027t add a handler for the error =
event using this method. Please set the window.onerror property =
instead.",
"badBaseUrl1":"Base URL does not contain ://.",
"badBaseUrl2":"Base URL does not contain another /.",
"badBaseUrl3":"Cannot find last / in base URL.",
"setExecutorAfterActive":"Cannot set executor after it has become =
active.",
"cantAddNonFunctionhandler":"Can\u0027t add a handler that is not a =
function.",
"invalidNameSpace":"Value is not a valid namespace identifier.",
"notAnInterface":"Value is not a valid interface.",
"eventHandlerNotFunction":"Handler must be a function.",
"propertyNotAnArray":"\u0027{0}\u0027 is not an Array property.",
"namespaceContainsClass":"Object {0} already exists as a class, enum, or =
interface.",
"typeRegisteredTwice":"Type {0} has already been registered. The type =
may be defined multiple times or the script file that defines it may =
have already been loaded. A possible cause is a change of settings =
during a partial update.",
"cantSetNameAfterInit":"The name property can\u0027t be set on this =
object after initialization.",
"historyMissingFrame":"For the history feature to work in IE, the page =
must have an iFrame element with id \u0027__historyFrame\u0027 pointed =
to a page that gets its title from the \u0027title\u0027 query string =
parameter and calls Sys.Application._onIFrameLoad() on the parent =
window. This can be done by setting EnableHistory to true on =
ScriptManager.",
"appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 =
can\u0027t be added to the application.",
"historyCannotAddHistoryPointWithHistoryDisabled":"A history point can =
only be added if enableHistory is set to true.",
"expectedElementOrId":"Value must be a DOM element or DOM element id.",
"selectorNotFound":"An element with selector \u0027{0}\u0027 could not =
be found.",
"cannotCallOutsideHandler":"Cannot call {0} outside of a completed event =
handler.",
"methodNotFound":"No method found with name \u0027{0}\u0027.",
"arrayParseBadFormat":"Value must be a valid string representation for =
an array. It must start with a \u0027[\u0027 and end with a =
\u0027]\u0027.",
"cannotSerializeObjectWithCycle":"Cannot serialize object with cyclic =
reference within child properties.",
"stateFieldNameInvalid":"State field names must not contain any =
\u0027=3D\u0027 characters.",
"stringFormatBraceMismatch":"The format string contains an unmatched =
opening or closing brace.",
"enumValueNotInteger":"An enumeration definition can only contain =
integer values.",
"propertyNullOrUndefined":"Cannot set the properties of \u0027{0}\u0027 =
because it returned a null value.",
"expectedDomElementOrSelector":"\u0027{0}\u0027 must be a DOM element or =
DOM element selector.",
"argumentDomNode":"Value must be a DOM element or a text node.",
"componentCantSetIdTwice":"The id property of a component can\u0027t be =
set more than once.",
"createComponentOnDom":"Value must be null for Components that are not =
Controls or Behaviors.",
"createNoDom":"Value must not be null for Controls and Behaviors.",
"cantAddWithoutId":"Can\u0027t add a component that doesn\u0027t have an =
id.",
"urlTooLong":"The history state must be small enough to not make the url =
larger than {0} characters.",
"notObservable":"Instances of type \u0027{0}\u0027 cannot be observed.",
"badTypeName":"Value is not the name of the type being registered or the =
name is a reserved word."
};

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=1nnHPLWZ24xqjudYd4xyAr7DSyixZwmXmmiqJn-Ya6IMvaYRKlmY6K6TsKV-hXSz5yQEQ8ExJh8-wcwJWbB-aK9EirLTLkVCXxC1SPBZpcgwZt0PiZoDcRFM6_7FG8ZaERqVhUqVIFkf19_nr35agQ2&t=6b9ad1b8

=EF=BB=BF// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation
(function() {

function execute() {

Type._registerScript("MicrosoftAjaxWebForms.js", [
	"MicrosoftAjaxCore.js",
	"MicrosoftAjaxSerialization.js",
	"MicrosoftAjaxNetwork.js",
	"MicrosoftAjaxComponentModel.js"]);
var $type, $prototype;
Type.registerNamespace('Sys.WebForms');

$type =3D Sys.WebForms.BeginRequestEventArgs =3D function =
BeginRequestEventArgs(request, postBackElement, updatePanelsToUpdate) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor">The arguments for =
the PageRequestManager's beginRequest event. The beginRequest event is =
raised when a request is about to be made.</summary>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest">The web =
request for the EventArgs.</param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true">The postback element that initiated the async =
postback.</param>
    /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs for UpdatePanel controls that are requested to update their =
rendering by the client. Server-side processing may update additional =
UpdatePanels.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true},
        {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
    this._updatePanelsToUpdate =3D updatePanelsToUpdate;
}

$type.prototype =3D {
    get_postBackElement: function =
BeginRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.postBackElement"></value>=

        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    },
    get_request: function BeginRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    },
    get_updatePanelsToUpdate: function =
BeginRequestEventArgs$get_updatePanelsToUpdate() {
        /// <value type=3D"Array" elementType=3D"String" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.updatePanelsToUpdate"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updatePanelsToUpdate ? =
Array.clone(this._updatePanelsToUpdate) : [];
    }
}

$type.registerClass('Sys.WebForms.BeginRequestEventArgs', =
Sys.EventArgs);
$type =3D Sys.WebForms.EndRequestEventArgs =3D function =
EndRequestEventArgs(error, dataItems, response) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor">The arguments for =
the PageRequestManager's endRequest event. The endRequest event is =
raised when a response has finished processing.</summary>
    /// <param name=3D"error" type=3D"Error" mayBeNull=3D"true"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    /// <param name=3D"response" =
type=3D"Sys.Net.WebRequestExecutor"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "error", type: Error, mayBeNull: true},
        {name: "dataItems", type: Object, mayBeNull: true},
        {name: "response", type: Sys.Net.WebRequestExecutor}
    ]);
    if (e) throw e;

    Sys.WebForms.EndRequestEventArgs.initializeBase(this);
    this._errorHandled =3D false;
    this._error =3D error;
    this._dataItems =3D dataItems || new Object();
    this._response =3D response;
}

$type.prototype =3D {
    get_dataItems: function EndRequestEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    },

    get_error: function EndRequestEventArgs$get_error() {
        /// <value type=3D"Error" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.error"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._error;
    },

    get_errorHandled: function EndRequestEventArgs$get_errorHandled() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.errorHandled"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorHandled;
    },
    set_errorHandled: function =
EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    },

    get_response: function EndRequestEventArgs$get_response() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.response"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._response;
    }
}

$type.registerClass('Sys.WebForms.EndRequestEventArgs', Sys.EventArgs);
$type =3D Sys.WebForms.InitializeRequestEventArgs =3D function =
InitializeRequestEventArgs(request, postBackElement, =
updatePanelsToUpdate) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor">The =
arguments for the PageRequestManager's initializeRequest event. The =
initializeRequest event is raised when a request is being prepared and =
can be cancelled.</summary>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest">The web =
request to be packaged in this EventArgs.</param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true">The postback element that initiated the async =
postback.</param>
    /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs for UpdatePanel controls that are requested to update their =
rendering by the client. Server-side processing may update additional =
UpdatePanels.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true},
        {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
    this._updatePanelsToUpdate =3D updatePanelsToUpdate;
}

$type.prototype =3D {
    get_postBackElement: function =
InitializeRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.postBackElement"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    },
    get_request: function InitializeRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    },
    get_updatePanelsToUpdate: function =
InitializeRequestEventArgs$get_updatePanelsToUpdate() {
        /// <value type=3D"Array" elementType=3D"String" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.updatePanelsToUpdate=
"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updatePanelsToUpdate ? =
Array.clone(this._updatePanelsToUpdate) : [];
    },
    set_updatePanelsToUpdate: function =
InitializeRequestEventArgs$set_updatePanelsToUpdate(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Array, elementType: String}]);
        if (e) throw e;
        this._updated =3D true;
        this._updatePanelsToUpdate =3D value;
    }
}

$type.registerClass('Sys.WebForms.InitializeRequestEventArgs', =
Sys.CancelEventArgs);
$type =3D Sys.WebForms.PageLoadedEventArgs =3D function =
PageLoadedEventArgs(panelsUpdated, panelsCreated, dataItems) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor">The arguments for =
the PageRequestManager's pageLoaded event. The pageLoaded event is =
raised after the DOM has been updated.</summary>
    /// <param name=3D"panelsUpdated" type=3D"Array">An array of =
UpdatePanels that were updated.</param>
    /// <param name=3D"panelsCreated" type=3D"Array">An array of =
UpdatePanels that were created.</param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdated", type: Array},
        {name: "panelsCreated", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadedEventArgs.initializeBase(this);

    this._panelsUpdated =3D panelsUpdated;
    this._panelsCreated =3D panelsCreated;
    this._dataItems =3D dataItems || new Object();
}

$type.prototype =3D {
    get_dataItems: function PageLoadedEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    },

    get_panelsCreated: function PageLoadedEventArgs$get_panelsCreated() =
{
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsCreated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsCreated;
    },

    get_panelsUpdated: function PageLoadedEventArgs$get_panelsUpdated() =
{
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsUpdated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdated;
    }
}

$type.registerClass('Sys.WebForms.PageLoadedEventArgs', Sys.EventArgs);
$type =3D Sys.WebForms.PageLoadingEventArgs =3D function =
PageLoadingEventArgs(panelsUpdating, panelsDeleting, dataItems) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor">The arguments for =
the PageRequestManager's pageLoading event. The pageLoading event is =
raised before the DOM has been updated.</summary>
    /// <param name=3D"panelsUpdating" type=3D"Array">An array of =
UpdatePanels that are going to be updated.</param>
    /// <param name=3D"panelsDeleting" type=3D"Array">An array of =
UpdatePanels that are going to be deleted.</param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdating", type: Array},
        {name: "panelsDeleting", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadingEventArgs.initializeBase(this);

    this._panelsUpdating =3D panelsUpdating;
    this._panelsDeleting =3D panelsDeleting;
    this._dataItems =3D dataItems || new Object();
}

$type.prototype =3D {
    get_dataItems: function PageLoadingEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    },

    get_panelsDeleting: function =
PageLoadingEventArgs$get_panelsDeleting() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsDeleting"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsDeleting;
    },

    get_panelsUpdating: function =
PageLoadingEventArgs$get_panelsUpdating() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdating;
    }
}

$type.registerClass('Sys.WebForms.PageLoadingEventArgs', Sys.EventArgs);

$type =3D Sys._ScriptLoaderTask =3D function =
_ScriptLoaderTask(scriptElement, completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor"></summary>
    /// <param name=3D"scriptElement" domElement=3D"true">The script =
element to add to the DOM.</param>
    /// <param name=3D"completedCallback" type=3D"Function">Callback to =
call when the script has loaded or failed to load.</param>
    var e =3D Function._validateParams(arguments, [
        { name: "scriptElement", domElement: true },
        { name: "completedCallback", type: Function }
    ]);
    if (e) throw e;
    this._scriptElement =3D scriptElement;
    this._completedCallback =3D completedCallback;
}
$type.prototype =3D {
    get_scriptElement: function _ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement">The script =
element.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    },

    dispose: function _ScriptLoaderTask$dispose() {
        if (this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoaderTask._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    },

    execute: function _ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute">Begins =
loading the given script element.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._addScriptElementHandlers();
        var headElements =3D document.getElementsByTagName('head');
        if (headElements.length =3D=3D=3D 0) {
            throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
        }
        else {
            headElements[0].appendChild(this._scriptElement);
        }
    },

    _addScriptElementHandlers: function =
_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);

        if (document.addEventListener) {
            if (!this._scriptElement.readyState)
                this._scriptElement.readyState =3D 'loaded';
            $addHandler(this._scriptElement, 'load', =
this._scriptLoadDelegate);
        }
        else {
            $addHandler(this._scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
        }
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    },

    _removeScriptElementHandlers: function =
_ScriptLoaderTask$_removeScriptElementHandlers() {
        if (this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (document.addEventListener) {
                $removeHandler(scriptElement, 'load', =
this._scriptLoadDelegate);
            }
            else {
                $removeHandler(scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
            }
            if (this._scriptErrorDelegate) {
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    },

    _scriptErrorHandler: function =
_ScriptLoaderTask$_scriptErrorHandler() {
        if (this._disposed) {
            return;
        }

        this._completedCallback(this.get_scriptElement(), false);
    },

    _scriptLoadHandler: function _ScriptLoaderTask$_scriptLoadHandler() =
{
        if (this._disposed) {
            return;
        }

        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }

        this._completedCallback(scriptElement, true);
    }
}
$type.registerClass("Sys._ScriptLoaderTask", null, Sys.IDisposable);

$type._clearScript =3D function =
_ScriptLoaderTask$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}

$type =3D Sys._ScriptLoader =3D function _ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
$type.prototype =3D {
    dispose: function _ScriptLoader$dispose() {
        this._stopSession();
        this._loading =3D false;
        if(this._events) {
            delete this._events;
        }
        this._sessions =3D null;
        this._currentSession =3D null;
        this._scriptLoadedDelegate =3D null;       =20
    },
   =20
    loadScripts: function _ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts">Begins =
loading scripts that have been queued.</summary>
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true">Timeout in seconds for loading all scripts.</param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when all scripts have =
successfully loaded.</param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when a script fails to =
load.</param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when scripts have not =
finished loading within the given timeout.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptTimeout", type: Number, integer: true},
            {name: "allScriptsLoadedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadFailedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadTimeoutCallback", type: Function, =
mayBeNull: true}
        ]);
        if (e) throw e;
        var session =3D {
            allScriptsLoadedCallback: allScriptsLoadedCallback,
            scriptLoadFailedCallback: scriptLoadFailedCallback,
            scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
            scriptsToLoad: this._scriptsToLoad,
            scriptTimeout: scriptTimeout };
        this._scriptsToLoad =3D null;
        this._sessions.push(session);
       =20
        if (!this._loading) {
            this._nextSession();
        }
    },
   =20
    queueCustomScriptTag: function =
_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag">Queues a script =
reference with the given set of custom script element =
attributes.</summary>
        /// <param name=3D"scriptAttributes" mayBeNull=3D"false">A JSON =
object that describtes the attributes to apply to the script =
element.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    },

    queueScriptBlock: function =
_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock">Queues a script =
reference with literal script.</summary>
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false">Literal script to execute.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptContent", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {text: scriptContent});
    },

    queueScriptReference: function =
_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference">Queues a script =
reference to the given script URL.</summary>
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false">URL to the script to reference.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptUrl", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {src: scriptUrl});
    },
   =20
    _createScriptElement: function =
_ScriptLoader$_createScriptElement(queuedScript) {
        var scriptElement =3D document.createElement('script');

        scriptElement.type =3D 'text/javascript';

        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    },
   =20
    _loadScriptsInternal: function _ScriptLoader$_loadScriptsInternal() =
{
        var session =3D this._currentSession;
        if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(session.scriptsToLoad);
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20

            if (typeof(nextScript.src) =3D=3D=3D "string") {
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                this._currentTask.execute();
            }
            else {
                var headElements =3D =
document.getElementsByTagName('head');
                if (headElements.length =3D=3D=3D 0) {
                     throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
                }
                else {
                     headElements[0].appendChild(scriptElement);
                }
               =20
               =20
                Sys._ScriptLoaderTask._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    },

    _nextSession: function _ScriptLoader$_nextSession() {
        if (this._sessions.length =3D=3D=3D 0) {
            this._loading =3D false;
            this._currentSession =3D null;
            return;
        }
        this._loading =3D true;
       =20
        var session =3D Array.dequeue(this._sessions);
        this._currentSession =3D session;
        this._loadScriptsInternal();
    },

    _raiseError: function _ScriptLoader$_raiseError() {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src);
        }
    },
   =20
    _scriptLoadedHandler: function =
_ScriptLoader$_scriptLoadedHandler(scriptElement, loaded) {
        if (loaded) {
            Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
            this._currentTask.dispose();
            this._currentTask =3D null;
            this._loadScriptsInternal();
        }
        else {
            this._raiseError();
        }
    },
    _stopSession: function _ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }   =20
}
$type.registerClass('Sys._ScriptLoader', null, Sys.IDisposable);

$type.getInstance =3D function _ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}

$type.isScriptLoaded =3D function =
_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}

$type.readLoadedScripts =3D function _ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];

        var existingScripts =3D document.getElementsByTagName('script');
        for (var i =3D existingScripts.length - 1; i >=3D 0; i--) {
            var scriptNode =3D existingScripts[i];
            var scriptSrc =3D scriptNode.src;
            if (scriptSrc.length) {
                if (!Array.contains(referencedScripts, scriptSrc)) {
                    Array.add(referencedScripts, scriptSrc);
                }
            }
        }
    }
}

$type._errorScriptLoadFailed =3D function =
_ScriptLoader$_errorScriptLoadFailed(scriptUrl) {
    var errorMessage;
    errorMessage =3D Sys.Res.scriptLoadFailedDebug;

    var displayMessage =3D "Sys.ScriptLoadFailedException: " + =
String.format(errorMessage, scriptUrl);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
    e.popStackFrame();
    return e;
}

$type._getLoadedScripts =3D function _ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
$type =3D Sys.WebForms.PageRequestManager =3D function =
PageRequestManager() {
    this._form =3D null;
    this._activeDefaultButton =3D null;
    this._activeDefaultButtonClicked =3D false;
    this._updatePanelIDs =3D null;
    this._updatePanelClientIDs =3D null;
    this._updatePanelHasChildrenAsTriggers =3D null;
    this._asyncPostBackControlIDs =3D null;
    this._asyncPostBackControlClientIDs =3D null;
    this._postBackControlIDs =3D null;
    this._postBackControlClientIDs =3D null;
    this._scriptManagerID =3D null;
    this._pageLoadedHandler =3D null;

    this._additionalInput =3D null;
    this._onsubmit =3D null;
    this._onSubmitStatements =3D [];
    this._originalDoPostBack =3D null;
    this._originalDoPostBackWithOptions =3D null;
    this._originalFireDefaultButton =3D null;
    this._originalDoCallback =3D null;
    this._isCrossPost =3D false;
    this._postBackSettings =3D null;
    this._request =3D null;
    this._onFormSubmitHandler =3D null;
    this._onFormElementClickHandler =3D null;
    this._onWindowUnloadHandler =3D null;
    this._asyncPostBackTimeout =3D null;

    this._controlIDToFocus =3D null;
    this._scrollPosition =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
   =20
    this._transientFields =3D ["__VIEWSTATEENCRYPTED", =
"__VIEWSTATEFIELDCOUNT"];
}

$type.prototype =3D {
    get_isInAsyncPostBack: function =
PageRequestManager$get_isInAsyncPostBack() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.PageRequestManager.isInAsyncPostBack"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request !=3D=3D null;
    },

    add_beginRequest: function =
PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest">Adds a =
beginRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "beginRequest", handler);
    },
    remove_beginRequest: function =
PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "beginRequest", handler);
    },

    add_endRequest: function PageRequestManager$add_endRequest(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest">Adds a =
endRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "endRequest", handler);
    },
    remove_endRequest: function =
PageRequestManager$remove_endRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "endRequest", handler);
    },

    add_initializeRequest: function =
PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest">Adds a =
initializeRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "initializeRequest", =
handler);
    },
    remove_initializeRequest: function =
PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "initializeRequest", =
handler);
    },

    add_pageLoaded: function PageRequestManager$add_pageLoaded(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded">Adds a =
pageLoaded event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "pageLoaded", handler);
    },
    remove_pageLoaded: function =
PageRequestManager$remove_pageLoaded(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "pageLoaded", handler);
    },

    add_pageLoading: function =
PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading">Adds a =
pageLoading event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "pageLoading", handler);
    },
    remove_pageLoading: function =
PageRequestManager$remove_pageLoading(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "pageLoading", handler);
    },

    abortPostBack: function PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    },

    beginAsyncPostBack: function =
PageRequestManager$beginAsyncPostBack(updatePanelsToUpdate, eventTarget, =
eventArgument, causesValidation, validationGroup) {
        /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.beginAsyncPostBack">Begins =
an asynchronous postback.</summary>
        /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs or ClientIDs of UpdatePanel controls that should have their =
rendering updated.</param>
        /// <param name=3D"eventTarget" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"eventArgument" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"causesValidation" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"validationGroup" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "eventTarget", type: String, mayBeNull: true, =
optional: true},
            {name: "eventArgument", type: String, mayBeNull: true, =
optional: true},
            {name: "causesValidation", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "validationGroup", type: String, mayBeNull: true, =
optional: true}
        ]);
        if (e) throw e;
        if (causesValidation && (typeof(Page_ClientValidate) =3D=3D=3D =
'function') && !Page_ClientValidate(validationGroup || null)) {
            return;
        }
        this._postBackSettings =3D this._createPostBackSettings(true, =
updatePanelsToUpdate, eventTarget);
        var form =3D this._form;
        form.__EVENTTARGET.value =3D (eventTarget || "");
        form.__EVENTARGUMENT.value =3D (eventArgument || "");
        this._isCrossPost =3D false;
        this._additionalInput =3D null;
        this._onFormSubmit();
    },
   =20
    _cancelPendingCallbacks: function =
PageRequestManager$_cancelPendingCallbacks() {
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    window.__synchronousCallBackIndex =3D -1;
                }
                window.__pendingCallbacks[i] =3D null;
                var callbackFrameID =3D "__CALLBACKFRAME" + i;
                var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
                if (xmlRequestFrame) {
                    =
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
                }
            }
        }
    },
   =20
    _commitControls: function =
PageRequestManager$_commitControls(updatePanelData, =
asyncPostBackTimeout) {
        if (updatePanelData) {
            this._updatePanelIDs =3D updatePanelData.updatePanelIDs;
            this._updatePanelClientIDs =3D =
updatePanelData.updatePanelClientIDs;
            this._updatePanelHasChildrenAsTriggers =3D =
updatePanelData.updatePanelHasChildrenAsTriggers;
            this._asyncPostBackControlIDs =3D =
updatePanelData.asyncPostBackControlIDs;
            this._asyncPostBackControlClientIDs =3D =
updatePanelData.asyncPostBackControlClientIDs;
            this._postBackControlIDs =3D =
updatePanelData.postBackControlIDs;
            this._postBackControlClientIDs =3D =
updatePanelData.postBackControlClientIDs;
        }
        if (typeof(asyncPostBackTimeout) !=3D=3D 'undefined' && =
asyncPostBackTimeout !=3D=3D null) {
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
    },
   =20
    _createHiddenField: function =
PageRequestManager$_createHiddenField(id, value) {
        var container, field =3D document.getElementById(id);

        if (field) {
            if (!field._isContained) {
                field.parentNode.removeChild(field);
            }
            else {
                container =3D field.parentNode;
            }
        }
        if (!container) {
            container =3D document.createElement('span');
            container.style.cssText =3D "display:none !important";
            this._form.appendChild(container);
        }
        container.innerHTML =3D "<input type=3D'hidden' />";
        field =3D container.childNodes[0];
        field._isContained =3D true;
        field.id =3D field.name =3D id;
        field.value =3D value;
    },

    _createPageRequestManagerTimeoutError: function =
PageRequestManager$_createPageRequestManagerTimeoutError() {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerTimeoutException: " + =
Sys.WebForms.Res.PRM_TimeoutError;
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerTimeoutException'});
        e.popStackFrame();
        return e;
    },

    _createPageRequestManagerServerError: function =
PageRequestManager$_createPageRequestManagerServerError(httpStatusCode, =
message) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerServerErrorException: " +
            (message || String.format(Sys.WebForms.Res.PRM_ServerError, =
httpStatusCode));
        var e =3D Error.create(displayMessage, {
            name: 'Sys.WebForms.PageRequestManagerServerErrorException',
            httpStatusCode: httpStatusCode
        });
        e.popStackFrame();
        return e;
    },

    _createPageRequestManagerParserError: function =
PageRequestManager$_createPageRequestManagerParserError(parserErrorMessag=
e) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerParserErrorException: " + =
String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage);
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerParserErrorException'});
        e.popStackFrame();
        return e;
    },

    _createPanelID: function =
PageRequestManager$_createPanelID(panelsToUpdate, postBackSettings) {
        var asyncTarget =3D postBackSettings.asyncTarget,
            toUpdate =3D this._ensureUniqueIds(panelsToUpdate || =
postBackSettings.panelsToUpdate),
            panelArg =3D (toUpdate instanceof Array)
                ? toUpdate.join(',')
                : (toUpdate || this._scriptManagerID);
        if (asyncTarget) {
            panelArg +=3D "|" + asyncTarget;
        }
        return encodeURIComponent(this._scriptManagerID) + '=3D' + =
encodeURIComponent(panelArg) + '&';
    },

    _createPostBackSettings: function =
PageRequestManager$_createPostBackSettings(async, panelsToUpdate, =
asyncTarget, sourceElement) {
        return { async:async, asyncTarget: asyncTarget, panelsToUpdate: =
panelsToUpdate, sourceElement: sourceElement };
    },

    _convertToClientIDs: function =
PageRequestManager$_convertToClientIDs(source, destinationIDs, =
destinationClientIDs, version4) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i +=3D =
(version4 ? 2 : 1)) {
                var uniqueID =3D source[i],
                    clientID =3D (version4 ? source[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
                Array.add(destinationIDs, uniqueID);
                Array.add(destinationClientIDs, clientID);
            }
        }
    },

    dispose: function PageRequestManager$dispose() {
        Sys.Observer.clearEventHandlers(this);
        if (this._form) {
            Sys.UI.DomEvent.removeHandler(this._form, 'submit', =
this._onFormSubmitHandler);
            Sys.UI.DomEvent.removeHandler(this._form, 'click', =
this._onFormElementClickHandler);
            Sys.UI.DomEvent.removeHandler(window, 'unload', =
this._onWindowUnloadHandler);
            Sys.UI.DomEvent.removeHandler(window, 'load', =
this._pageLoadedHandler);
        }

        if (this._originalDoPostBack) {
            window.__doPostBack =3D this._originalDoPostBack;
            this._originalDoPostBack =3D null;
        }
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
this._originalDoPostBackWithOptions;
            this._originalDoPostBackWithOptions =3D null;
        }
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
this._originalFireDefaultButton;
            this._originalFireDefaultButton =3D null;
        }
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D this._originalDoCallback;
            this._originalDoCallback =3D null;
        }

        this._form =3D null;
        this._updatePanelIDs =3D null;
        this._updatePanelClientIDs =3D null;
        this._asyncPostBackControlIDs =3D null;
        this._asyncPostBackControlClientIDs =3D null;
        this._postBackControlIDs =3D null;
        this._postBackControlClientIDs =3D null;
        this._asyncPostBackTimeout =3D null;
        this._scrollPosition =3D null;
    },
   =20
    _doCallback: function PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    },

    _doPostBack: function PageRequestManager$_doPostBack(eventTarget, =
eventArgument) {
        this._additionalInput =3D null;

        var form =3D this._form;
        if ((eventTarget =3D=3D=3D null) || (typeof(eventTarget) =
=3D=3D=3D "undefined") || (this._isCrossPost)) {
            this._postBackSettings =3D =
this._createPostBackSettings(false);
            this._isCrossPost =3D false;
        }
        else {
            var mpUniqueID =3D this._masterPageUniqueID;
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement && mpUniqueID) {
                if (clientID.indexOf(mpUniqueID + "$") =3D=3D=3D 0) {
                    postBackElement =3D =
document.getElementById(clientID.substr(mpUniqueID.length + 1));
                }
            }
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, null, eventTarget);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            if (mpUniqueID) {
                                mpUniqueID +=3D "$";
                                if (eventTarget.indexOf(mpUniqueID) =
=3D=3D=3D 0) {
                                    nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget.substr(mpUniqueID.length));
                                }
                            }
                            if (nearestUniqueIDMatch) {
                                this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                            }
                            else {
                                this._postBackSettings =3D =
this._createPostBackSettings(false);
                            }
                        }
                    }
                }
            }
            else {
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }

        if (!this._postBackSettings.async) {
            form.onsubmit =3D this._onsubmit;
            this._originalDoPostBack(eventTarget, eventArgument);
            form.onsubmit =3D null;
            return;
        }

        form.__EVENTTARGET.value =3D eventTarget;
        form.__EVENTARGUMENT.value =3D eventArgument;
        this._onFormSubmit();
    },

    _doPostBackWithOptions: function =
PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    },

    _elementContains: function =
PageRequestManager$_elementContains(container, element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    },

    _endPostBack: function PageRequestManager$_endPostBack(error, =
executor, data) {
        if (this._request =3D=3D=3D executor.get_webRequest()) {
            this._processingRequest =3D false;
            this._additionalInput =3D null;
            this._request =3D null;
        }

        var eventArgs =3D new Sys.WebForms.EndRequestEventArgs(error, =
data ? data.dataItems : {}, executor);
        Sys.Observer.raiseEvent(this, "endRequest", eventArgs);
        if (error && !eventArgs.get_errorHandled()) {
            throw error;
        }
    },

    _ensureUniqueIds: function PageRequestManager$_ensureUniqueIds(ids) =
{
        if (!ids) return ids;
        ids =3D ids instanceof Array ? ids : [ids];
        var uniqueIds =3D [];
        for (var i =3D 0, l =3D ids.length; i < l; i++) {
            var id =3D ids[i], index =3D =
Array.indexOf(this._updatePanelClientIDs, id);
            uniqueIds.push(index > -1 ? this._updatePanelIDs[index] : =
id);
        }
        return uniqueIds;
    },

    _findNearestElement: function =
PageRequestManager$_findNearestElement(uniqueID) {
        while (uniqueID.length > 0) {
            var clientID =3D this._uniqueIDToClientID(uniqueID);
            var element =3D document.getElementById(clientID);
            if (element) {
                return element;
            }
            var indexOfLastDollar =3D uniqueID.lastIndexOf('$');
            if (indexOfLastDollar =3D=3D=3D -1) {
                return null;
            }
            uniqueID =3D uniqueID.substring(0, indexOfLastDollar);
        }
        return null;
    },

    _findText: function PageRequestManager$_findText(text, location) {
        var startIndex =3D Math.max(0, location - 20);
        var endIndex =3D Math.min(text.length, location + 20);
        return text.substring(startIndex, endIndex);
    },
   =20
    _fireDefaultButton: function =
PageRequestManager$_fireDefaultButton(event, target) {
        if (event.keyCode =3D=3D=3D 13) {
            var src =3D event.srcElement || event.target;
            if (!src || (src.tagName.toLowerCase() !=3D=3D "textarea")) =
{
                var defaultButton =3D document.getElementById(target);

                if (defaultButton && (typeof(defaultButton.click) =
!=3D=3D "undefined")) {
                   =20
                   =20
                    this._activeDefaultButton =3D defaultButton;
                    this._activeDefaultButtonClicked =3D false;
                    try {
                        defaultButton.click();
                    }
                    finally {
                        this._activeDefaultButton =3D null;
                    }
                   =20
                   =20
                    event.cancelBubble =3D true;
                    if (typeof(event.stopPropagation) =3D=3D=3D =
"function") {
                        event.stopPropagation();
                    }
                    return false;
                }
            }
        }
        return true;
    },

    _getPageLoadedEventArgs: function =
PageRequestManager$_getPageLoadedEventArgs(initialLoad, data) {

        var updated =3D [];
        var created =3D [];
        var version4 =3D data ? data.version4 : false;
        var upData =3D data ? data.updatePanelData : null;

        var newIDs, newClientIDs, childIDs, refreshedIDs;

        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            newClientIDs =3D this._updatePanelClientIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            newClientIDs =3D upData.updatePanelClientIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }

        var i, l, uniqueID, clientID;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i +=3D =
(version4 ? 2 : 1)) {
                uniqueID =3D refreshedIDs[i];
                clientID =3D (version4 ? refreshedIDs[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
                Array.add(updated, document.getElementById(clientID));
            }
        }

        for (i =3D 0, l =3D newIDs.length; i < l; i++) {
            if (initialLoad || Array.indexOf(childIDs, newIDs[i]) =
!=3D=3D -1) {
                Array.add(created, =
document.getElementById(newClientIDs[i]));
            }
        }

        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    },

    _getPageLoadingEventArgs: function =
PageRequestManager$_getPageLoadingEventArgs(data) {

        var updated =3D [],
            deleted =3D [],
            upData =3D data.updatePanelData,
            oldIDs =3D upData.oldUpdatePanelIDs,
            oldClientIDs =3D upData.oldUpdatePanelClientIDs,
            newIDs =3D upData.updatePanelIDs,
            childIDs =3D upData.childUpdatePanelIDs,
            refreshedIDs =3D upData.panelsToRefreshIDs,
            i, l, uniqueID, clientID,
            version4 =3D data.version4;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i +=3D (version4 =
? 2 : 1)) {
            uniqueID =3D refreshedIDs[i];
            clientID =3D (version4 ? refreshedIDs[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
            Array.add(updated, document.getElementById(clientID));
        }

        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            uniqueID =3D oldIDs[i];
            if (Array.indexOf(refreshedIDs, uniqueID) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, uniqueID) =3D=3D=3D -1 || =
Array.indexOf(childIDs, uniqueID) > -1)) {
                Array.add(deleted, =
document.getElementById(oldClientIDs[i]));
            }
        }

        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    },

    _getPostBackSettings: function =
PageRequestManager$_getPostBackSettings(element, elementUniqueID) {

        var originalElement =3D element;

        var proposedSettings =3D null;

        while (element) {
            if (element.id) {
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, null, elementUniqueID, =
originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {

                                return =
this._createPostBackSettings(true, [this._updatePanelIDs[indexOfPanel]], =
elementUniqueID, originalElement);
                            }
                            else {
                                return =
this._createPostBackSettings(true, null, elementUniqueID, =
originalElement);
                            }
                        }
                    }
                }

                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, null, elementUniqueID, =
originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false);
                    }
                }
            }

            element =3D element.parentNode;
        }

        if (!proposedSettings) {
            return this._createPostBackSettings(false);
        }
        else {
            return proposedSettings;
        }
    },

    _getScrollPosition: function PageRequestManager$_getScrollPosition() =
{
        var d =3D document.documentElement;
        if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
            return {
                x: d.scrollLeft,
                y: d.scrollTop
            };
        }
        else {
            d =3D document.body;
            if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
                return {
                    x: d.scrollLeft,
                    y: d.scrollTop
                };
            }
            else {
                if (this._validPosition(window.pageXOffset) || =
this._validPosition(window.pageYOffset)) {
                    return {
                        x: window.pageXOffset,
                        y: window.pageYOffset
                    };
                }
                else {
                    return {
                        x: 0,
                        y: 0
                    };
                }
            }
        }
    },

    _initializeInternal: function =
PageRequestManager$_initializeInternal(scriptManagerID, formElement, =
updatePanelIDs, asyncPostBackControlIDs, postBackControlIDs, =
asyncPostBackTimeout, masterPageUniqueID) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._masterPageUniqueID =3D masterPageUniqueID;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D Sys.UI.DomElement.resolveElement(formElement);
        this._onsubmit =3D this._form.onsubmit;
        this._form.onsubmit =3D null;
        this._onFormSubmitHandler =3D Function.createDelegate(this, =
this._onFormSubmit);
        this._onFormElementClickHandler =3D =
Function.createDelegate(this, this._onFormElementClick);
        this._onWindowUnloadHandler =3D Function.createDelegate(this, =
this._onWindowUnload);
        Sys.UI.DomEvent.addHandler(this._form, 'submit', =
this._onFormSubmitHandler);
        Sys.UI.DomEvent.addHandler(this._form, 'click', =
this._onFormElementClickHandler);
        Sys.UI.DomEvent.addHandler(window, 'unload', =
this._onWindowUnloadHandler);

        this._originalDoPostBack =3D window.__doPostBack;
        if (this._originalDoPostBack) {
            window.__doPostBack =3D Function.createDelegate(this, =
this._doPostBack);
        }
        this._originalDoPostBackWithOptions =3D =
window.WebForm_DoPostBackWithOptions;
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
Function.createDelegate(this, this._doPostBackWithOptions);
        }
        this._originalFireDefaultButton =3D =
window.WebForm_FireDefaultButton;
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
Function.createDelegate(this, this._fireDefaultButton);
        }
        this._originalDoCallback =3D window.WebForm_DoCallback;
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D Function.createDelegate(this, =
this._doCallback);
        }

        this._pageLoadedHandler =3D Function.createDelegate(this, =
this._pageLoadedInitialLoad);
        Sys.UI.DomEvent.addHandler(window, 'load', =
this._pageLoadedHandler);
        if (updatePanelIDs) {
            this._updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout, =
true);
        }
    },

    _matchesParentIDInList: function =
PageRequestManager$_matchesParentIDInList(clientID, parentIDList) {
        for (var i =3D 0, l =3D parentIDList.length; i < l; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    },
   =20
    _onFormElementActive: function =
PageRequestManager$_onFormElementActive(element, offsetX, offsetY) {
        if (element.disabled) {
            return;
        }

        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);

        if (element.name) {
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    },

    _onFormElementClick: function =
PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    },

    _onFormSubmit: function PageRequestManager$_onFormSubmit(evt) {
        var i, l, continueSubmit =3D true,
            isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;

        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }

        if (continueSubmit) {
            for (i =3D 0, l =3D this._onSubmitStatements.length; i < l; =
i++) {
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }

        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }

        var form =3D this._form;
        if (isCrossPost) {
            return;
        }

        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }

        if (!this._postBackSettings || !this._postBackSettings.async) {
            return;
        }

        var formBody =3D new Sys.StringBuilder(),
            count =3D form.elements.length,
            panelID =3D this._createPanelID(null, =
this._postBackSettings);
        formBody.append(panelID);

        for (i =3D 0; i < count; i++) {
            var element =3D form.elements[i];
            var name =3D element.name;
            if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D =
null) || (name.length =3D=3D=3D 0) || (name =3D=3D=3D =
this._scriptManagerID)) {
                continue;
            }

            var tagName =3D element.tagName.toUpperCase();

            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if ((type =3D=3D=3D 'text') ||
                    (type =3D=3D=3D 'password') ||
                    (type =3D=3D=3D 'hidden') ||
                    (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D =
'radio')) && element.checked)) {
                    formBody.append(encodeURIComponent(name));
                    formBody.append('=3D');
                    formBody.append(encodeURIComponent(element.value));
                    formBody.append('&');
                }
            }
            else if (tagName =3D=3D=3D 'SELECT') {
                var optionCount =3D element.options.length;
                for (var j =3D 0; j < optionCount; j++) {
                    var option =3D element.options[j];
                    if (option.selected) {
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }

        formBody.append("__ASYNCPOST=3Dtrue&");

        if (this._additionalInput) {
            formBody.append(this._additionalInput);
            this._additionalInput =3D null;
        }
       =20
        var request =3D new Sys.Net.WebRequest();
        var action =3D form.action;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            var fragmentIndex =3D action.indexOf('#');
            if (fragmentIndex !=3D=3D -1) {
                action =3D action.substr(0, fragmentIndex);
            }
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        request.set_url(action);
        request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue';
        request.get_headers()['Cache-Control'] =3D 'no-cache';
        request.set_timeout(this._asyncPostBackTimeout);
        request.add_completed(Function.createDelegate(this, =
this._onFormSubmitCompleted));
        request.set_body(formBody.toString());
        var panelsToUpdate, eventArgs;
        panelsToUpdate =3D this._postBackSettings.panelsToUpdate;
        eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement, panelsToUpdate);
        Sys.Observer.raiseEvent(this, "initializeRequest", eventArgs);
        continueSubmit =3D !eventArgs.get_cancel();

        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
       =20
        if (eventArgs && eventArgs._updated) {
            panelsToUpdate =3D eventArgs.get_updatePanelsToUpdate();
            request.set_body(request.get_body().replace(panelID, =
this._createPanelID(panelsToUpdate, this._postBackSettings)));
        }

        this._scrollPosition =3D this._getScrollPosition();


        this.abortPostBack();

        eventArgs =3D new Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement,
            panelsToUpdate || this._postBackSettings.panelsToUpdate);
        Sys.Observer.raiseEvent(this, "beginRequest", eventArgs);
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }

        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();

        if (evt) {
            evt.preventDefault();
        }
    },

    _onFormSubmitCompleted: function =
PageRequestManager$_onFormSubmitCompleted(sender, eventArgs) {
        this._processingRequest =3D true;


        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender, =
null);
            return;
        }

        if (sender.get_aborted()) {
            this._endPostBack(null, sender, null);
            return;
        }

        if (!this._request || (sender.get_webRequest() !=3D=3D =
this._request)) {
            return;
        }

        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender, null);
            return;
        }

        var data =3D this._parseDelta(sender);
        if (!data) return;
       =20
        var i, l;

        if (data.asyncPostBackControlIDsNode && =
data.postBackControlIDsNode &&
            data.updatePanelIDsNode && data.panelsToRefreshNode && =
data.childUpdatePanelIDsNode) {
           =20
            var oldUpdatePanelIDs =3D this._updatePanelIDs,
                oldUpdatePanelClientIDs =3D this._updatePanelClientIDs;
            var childUpdatePanelIDsString =3D =
data.childUpdatePanelIDsNode.content;
            var childUpdatePanelIDs =3D childUpdatePanelIDsString.length =
? childUpdatePanelIDsString.split(',') : [];

            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(data.asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(data.postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(data.updatePanelIDsNode);
            var panelsToRefreshIDs =3D =
this._splitNodeIntoArray(data.panelsToRefreshNode);

            var v4 =3D data.version4;
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i+=3D =
(v4 ? 2 : 1)) {
                var panelClientID =3D (v4 ? panelsToRefreshIDs[i+1] : =
"") || this._uniqueIDToClientID(panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender, data);
                    return;
                }
            }
           =20
            var updatePanelData =3D this._processUpdatePanelArrays(
                updatePanelIDsArray,
                asyncPostBackControlIDsArray,
                postBackControlIDsArray, v4);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.oldUpdatePanelClientIDs =3D =
oldUpdatePanelClientIDs;
            updatePanelData.childUpdatePanelIDs =3D childUpdatePanelIDs;
            updatePanelData.panelsToRefreshIDs =3D panelsToRefreshIDs;
            data.updatePanelData =3D updatePanelData;
        }

        data.dataItems =3D {};
        var node;
        for (i =3D 0, l =3D data.dataItemNodes.length; i < l; i++) {
            node =3D data.dataItemNodes[i];
            data.dataItems[node.id] =3D node.content;
        }
        for (i =3D 0, l =3D data.dataItemJsonNodes.length; i < l; i++) {
            node =3D data.dataItemJsonNodes[i];
            data.dataItems[node.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(node.content);
        }

        var handler =3D Sys.Observer._getContext(this, =
true).events.getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs(data));
        }


       =20
        Sys._ScriptLoader.readLoadedScripts();

        Sys.Application.beginCreateComponents();

        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, data.scriptBlockNodes, true, =
false);
       =20
        this._processingRequest =3D true;

        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadComplete, data)),
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadFailed, data)),
            null);       =20
    },
   =20
    _onWindowUnload: function PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    },

    _pageLoaded: function PageRequestManager$_pageLoaded(initialLoad, =
data) {
        Sys.Observer.raiseEvent(this, "pageLoaded", =
this._getPageLoadedEventArgs(initialLoad, data));
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    },

    _pageLoadedInitialLoad: function =
PageRequestManager$_pageLoadedInitialLoad(evt) {
        this._pageLoaded(true, null);
    },
   =20
    _parseDelta: function PageRequestManager$_parseDelta(executor) {
        var reply =3D executor.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;
        var delta =3D [];

        while (replyIndex < reply.length) {
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            len =3D parseInt(reply.substring(replyIndex, =
delimiterIndex), 10);
            if ((len % 1) !=3D=3D 0) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex =3D delimiterIndex + 1;

            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;

            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;

            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;

            if (reply.charAt(replyIndex) !=3D=3D '|') {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }

            replyIndex++;

            Array.add(delta, {type: type, id: id, content: content});
        }

        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), =
executor, null);
            return null;
        }

        var updatePanelNodes =3D [];
        var hiddenFieldNodes =3D [];
        var arrayDeclarationNodes =3D [];
        var scriptBlockNodes =3D [];
        var scriptStartupNodes =3D [];
        var expandoNodes =3D [];
        var onSubmitNodes =3D [];
        var dataItemNodes =3D [];
        var dataItemJsonNodes =3D [];
        var scriptDisposeNodes =3D [];
        var asyncPostBackControlIDsNode, postBackControlIDsNode,
            updatePanelIDsNode, asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode, panelsToRefreshNode, =
formActionNode,
            versionNode;

        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "#":
                    versionNode =3D deltaNode;
                    break;
                case "updatePanel":
                    Array.add(updatePanelNodes, deltaNode);
                    break;
                case "hiddenField":
                    Array.add(hiddenFieldNodes, deltaNode);
                    break;
                case "arrayDeclaration":
                    Array.add(arrayDeclarationNodes, deltaNode);
                    break;
                case "scriptBlock":
                    Array.add(scriptBlockNodes, deltaNode);
                    break;
                case "scriptStartupBlock":
                    Array.add(scriptStartupNodes, deltaNode);
                    break;
                case "expando":
                    Array.add(expandoNodes, deltaNode);
                    break;
                case "onSubmit":
                    Array.add(onSubmitNodes, deltaNode);
                    break;
                case "asyncPostBackControlIDs":
                    asyncPostBackControlIDsNode =3D deltaNode;
                    break;
                case "postBackControlIDs":
                    postBackControlIDsNode =3D deltaNode;
                    break;
                case "updatePanelIDs":
                    updatePanelIDsNode =3D deltaNode;
                    break;
                case "asyncPostBackTimeout":
                    asyncPostBackTimeoutNode =3D deltaNode;
                    break;
                case "childUpdatePanelIDs":
                    childUpdatePanelIDsNode =3D deltaNode;
                    break;
                case "panelsToRefreshIDs":
                    panelsToRefreshNode =3D deltaNode;
                    break;
                case "formAction":
                    formActionNode =3D deltaNode;
                    break;
                case "dataItem":
                    Array.add(dataItemNodes, deltaNode);
                    break;
                case "dataItemJson":
                    Array.add(dataItemJsonNodes, deltaNode);
                    break;
                case "scriptDispose":
                    Array.add(scriptDisposeNodes, deltaNode);
                    break;
                case "pageRedirect":
                    if (versionNode && parseFloat(versionNode.content) =
>=3D 4) {
                        deltaNode.content =3D =
unescape(deltaNode.content);
                    }
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        anchor.attachEvent("onclick", cancelBubble);
                        anchor.href =3D deltaNode.content;
                        this._form.parentNode.insertBefore(anchor, =
this._form);
                        anchor.click();
                        anchor.detachEvent("onclick", cancelBubble);
                        this._form.parentNode.removeChild(anchor);
                       =20
                        function cancelBubble(e) {
                            e.cancelBubble =3D true;
                        }
                    }
                    else {
                        window.location.href =3D deltaNode.content;
                    }
                    return null;
                case "error":
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), executor, null);
                    return null;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), executor, null);
                    return null;
            } // switch
        } // for (var i =3D 0, l =3D delta.length; i < l; i++)
        return {
            version4: versionNode ? (parseFloat(versionNode.content) =
>=3D 4) : false,
            executor: executor,
            updatePanelNodes: updatePanelNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptStartupNodes: scriptStartupNodes,
            expandoNodes: expandoNodes,
            onSubmitNodes: onSubmitNodes,
            dataItemNodes: dataItemNodes,
            dataItemJsonNodes: dataItemJsonNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            asyncPostBackControlIDsNode: asyncPostBackControlIDsNode,
            postBackControlIDsNode: postBackControlIDsNode,
            updatePanelIDsNode: updatePanelIDsNode,
            asyncPostBackTimeoutNode: asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode: childUpdatePanelIDsNode,
            panelsToRefreshNode: panelsToRefreshNode,
            formActionNode: formActionNode };
    },
   =20
    _processUpdatePanelArrays: function =
PageRequestManager$_processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, version4) {
        var newUpdatePanelIDs, newUpdatePanelClientIDs, =
newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length,
                m =3D version4 ? 2 : 1;
            newUpdatePanelIDs =3D new Array(l/m);
            newUpdatePanelClientIDs =3D new Array(l/m);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l/m);
           =20
            for (var i =3D 0, j =3D 0; i < l; i +=3D m, j++) {
                var ct,
                    uniqueID =3D updatePanelIDs[i],
                    clientID =3D version4 ? updatePanelIDs[i+1] : "";
                ct =3D (uniqueID.charAt(0) =3D=3D=3D 't');
                uniqueID =3D uniqueID.substr(1);
                if (!clientID) {
                    clientID =3D this._uniqueIDToClientID(uniqueID);
                }
                newUpdatePanelHasChildrenAsTriggers[j] =3D ct;
                newUpdatePanelIDs[j] =3D uniqueID;
                newUpdatePanelClientIDs[j] =3D clientID;
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }

        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs, version4);

        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs, version4);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    },
   =20
    _queueScripts: function =
PageRequestManager$_queueScripts(scriptLoader, scriptBlockNodes, =
queueIncludes, queueBlocks) {
        for (var i =3D 0, l =3D scriptBlockNodes.length; i < l; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    var scriptTagAttributes =3D window.eval("(" + =
scriptBlockNodes[i].content + ")");

                    if (scriptTagAttributes.src) {
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        continue;
                    }

                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }

                    =
scriptLoader.queueScriptReference(scriptBlockNodes[i].content);
                    break;
            }
        }       =20
    },

    _registerDisposeScript: function =
PageRequestManager$_registerDisposeScript(panelID, disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    },
   =20
    _scriptIncludesLoadComplete: function =
PageRequestManager$_scriptIncludesLoadComplete(scriptLoader, data) {
        if (data.executor.get_webRequest() !=3D=3D this._request) {
            return;
        }
       =20
        this._commitControls(data.updatePanelData,
            data.asyncPostBackTimeoutNode ? =
data.asyncPostBackTimeoutNode.content : null);

        if (data.formActionNode) {
            this._form.action =3D data.formActionNode.content;
        }
       =20
        var i, l, node;

        for (i =3D 0, l =3D data.updatePanelNodes.length; i < l; i++) {
            node =3D data.updatePanelNodes[i];
            var updatePanelElement =3D document.getElementById(node.id);

            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, node.id)), data.executor, data);
                return;
            }

            this._updatePanel(updatePanelElement, node.content);
        }

        for (i =3D 0, l =3D data.scriptDisposeNodes.length; i < l; i++) =
{
            node =3D data.scriptDisposeNodes[i];
            this._registerDisposeScript(node.id, node.content);
        }

        for (i =3D 0, l =3D this._transientFields.length; i < l; i++) {
            var field =3D =
document.getElementById(this._transientFields[i]);
            if (field) {
                var toRemove =3D field._isContained ? field.parentNode : =
field;
                toRemove.parentNode.removeChild(toRemove);
            }
        }
        for (i =3D 0, l =3D data.hiddenFieldNodes.length; i < l; i++) {
            node =3D data.hiddenFieldNodes[i];
            this._createHiddenField(node.id, node.content);
        }
       =20
        if (data.scriptsFailed) {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(data.scriptsFailed.src, =
data.scriptsFailed.multipleCallbacks);
        }
       =20

        this._queueScripts(scriptLoader, data.scriptBlockNodes, false, =
true);

        var arrayScript =3D '';
        for (i =3D 0, l =3D data.arrayDeclarationNodes.length; i < l; =
i++) {
            node =3D data.arrayDeclarationNodes[i];
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + node.id + "', " + =
node.content + ");\r\n";
        }

        var expandoScript =3D '';
        for (i =3D 0, l =3D data.expandoNodes.length; i < l; i++) {
            node =3D data.expandoNodes[i];
            expandoScript +=3D node.id + " =3D " + node.content + =
"\r\n";
        }

        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptStartupNodes, true, =
true);

        var onSubmitStatementScript =3D '';
        for (i =3D 0, l =3D data.onSubmitNodes.length; i < l; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }
            onSubmitStatementScript +=3D data.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }

        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptsLoadComplete, data)), null, null);

    },
   =20
    _scriptIncludesLoadFailed: function =
PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    },

    _scriptsLoadComplete: function =
PageRequestManager$_scriptsLoadComplete(scriptLoader, data) {
        var response =3D data.executor;

        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }

        if (this._scrollPosition) {
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }

        Sys.Application.endCreateComponents();

        this._pageLoaded(false, data);

        this._endPostBack(null, response, data);

        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                var targetControl =3D $get(this._controlIDToFocus);

                focusTarget =3D targetControl;
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                if (focusTarget && (typeof(focusTarget.contentEditable) =
!=3D=3D "undefined")) {
                    oldContentEditableSetting =3D =
focusTarget.contentEditable;
                    focusTarget.contentEditable =3D false;
                }
                else {
                    focusTarget =3D null;
                }
            }
            WebForm_AutoFocus(this._controlIDToFocus);
            if (focusTarget) {
                focusTarget.contentEditable =3D =
oldContentEditableSetting;
            }
            this._controlIDToFocus =3D null;
        }
    },

    _splitNodeIntoArray: function =
PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    },

    _uniqueIDToClientID: function =
PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    },
   =20
    _updateControls: function =
PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout, =
version4) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, version4),
            asyncPostBackTimeout);
    },
   =20
    _updatePanel: function =
PageRequestManager$_updatePanel(updatePanelElement, rendering) {
        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0, l =3D disposeScripts.length; i < l; =
i++) {
                    window.eval(disposeScripts[i]);
                }

                delete this._scriptDisposes[updatePanelID];
            }
        }

        Sys.Application.disposeElement(updatePanelElement, true);

        updatePanelElement.innerHTML =3D rendering;
    },

    _validPosition: function PageRequestManager$_validPosition(position) =
{
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
}

$type.getInstance =3D function PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance">Gets the =
current instance of the PageRequestManager.</summary>
    /// <returns type=3D"Sys.WebForms.PageRequestManager"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var prm =3D Sys.WebForms.PageRequestManager._instance;
    if (!prm) {
        prm =3D Sys.WebForms.PageRequestManager._instance =3D new =
Sys.WebForms.PageRequestManager();
    }
    return prm;
}

$type._addArrayElement =3D function =
PageRequestManager$_addArrayElement(arrayName) {
    if (!window[arrayName]) {
        window[arrayName] =3D new Array();
    }

    for (var i =3D 1, l =3D arguments.length; i < l; i++) {
        Array.add(window[arrayName], arguments[i]);
    }
}

$type._initialize =3D function PageRequestManager$_initialize() {
    var prm =3D Sys.WebForms.PageRequestManager.getInstance();
    prm._initializeInternal.apply(prm, arguments);
}

$type.registerClass('Sys.WebForms.PageRequestManager');
$type =3D Sys.UI._UpdateProgress =3D function _UpdateProgress(element) {
    Sys.UI._UpdateProgress.initializeBase(this,[element]);
    this._displayAfter =3D 500;
    this._dynamicLayout =3D true;
    this._associatedUpdatePanelId =3D null;
    this._beginRequestHandlerDelegate =3D null;
    this._startDelegate =3D null;
    this._endRequestHandlerDelegate =3D null;
    this._pageRequestManager =3D null;
    this._timerCookie =3D null;
}
$type.prototype =3D {
    get_displayAfter: function _UpdateProgress$get_displayAfter() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.UI._UpdateProgress.displayAfter"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._displayAfter;
    },
    set_displayAfter: function _UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    },
    get_dynamicLayout: function _UpdateProgress$get_dynamicLayout() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI._UpdateProgress.dynamicLayout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dynamicLayout;
    },
    set_dynamicLayout: function _UpdateProgress$set_dynamicLayout(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    },
    get_associatedUpdatePanelId: function =
_UpdateProgress$get_associatedUpdatePanelId() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.UI._UpdateProgress.associatedUpdatePanelId"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._associatedUpdatePanelId;
    },
    set_associatedUpdatePanelId: function =
_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    },
    get_role: function _UpdateProgress$get_role() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI._UpdateProgress.role"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return "status";
    },
    _clearTimeout: function _UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    },
    _getUniqueID: function _UpdateProgress$_getUniqueID(clientID) {
        var i =3D =
Array.indexOf(this._pageRequestManager._updatePanelClientIDs, clientID);
        return i =3D=3D=3D -1 ? null : =
this._pageRequestManager._updatePanelIDs[i];
    },
    _handleBeginRequest: function =
_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement(),
            showProgress =3D true,
            upID =3D this._associatedUpdatePanelId;
        if (this._associatedUpdatePanelId) {
            var updating =3D arg.get_updatePanelsToUpdate();
            if (updating && updating.length) {
                showProgress =3D (Array.contains(updating, upID) || =
Array.contains(updating, this._getUniqueID(upID)))
            }
            else {
                showProgress =3D false;
            }
        }
        while (!showProgress && curElem) {
            if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D =
curElem.id) {
                showProgress =3D true;=20
            }
            curElem =3D curElem.parentNode;=20
        }=20
        if (showProgress) {
            this._timerCookie =3D window.setTimeout(this._startDelegate, =
this._displayAfter);
        }
    },
    _startRequest: function _UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            var element =3D this.get_element();
            if (this._dynamicLayout) {
                element.style.display =3D 'block';
            }
            else {
                element.style.visibility =3D 'visible';
            }
            if (this.get_role() =3D=3D=3D "status") {
                element.setAttribute("aria-hidden", "false");
            }
        }
        this._timerCookie =3D null;
    },
    _handleEndRequest: function =
_UpdateProgress$_handleEndRequest(sender, arg) {
        var element =3D this.get_element();
        if (this._dynamicLayout) {
            element.style.display =3D 'none';
        }
        else {
            element.style.visibility =3D 'hidden';
        }
        if (this.get_role() =3D=3D=3D "status") {
            element.setAttribute("aria-hidden", "true");
        }
        this._clearTimeout();
    },
    dispose: function _UpdateProgress$dispose() {
        if (this._beginRequestHandlerDelegate !=3D=3D null) {
            =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
            =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
            this._beginRequestHandlerDelegate =3D null;
            this._endRequestHandlerDelegate =3D null;
        }
        this._clearTimeout();
        Sys.UI._UpdateProgress.callBaseMethod(this,"dispose");
    },
    initialize: function _UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
        if (this.get_role() =3D=3D=3D "status") {
            this.get_element().setAttribute("aria-hidden", "true");
        }
    	this._beginRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleBeginRequest);
    	this._endRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleEndRequest);
    	this._startDelegate =3D Function.createDelegate(this, =
this._startRequest);
    	if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
           this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
    	}
    	if (this._pageRequestManager !=3D=3D null ) {
    	    =
this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega=
te);
    	    =
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);=

    	}
    }
}
$type.registerClass('Sys.UI._UpdateProgress', Sys.UI.Control);

}

if (window.Sys && Sys.loader) {
	Sys.loader.registerScript("WebForms", ["ComponentModel", =
"Serialization", "Network"], execute);
}
else {
	execute();
}

})();

Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.",
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed.",
"PRM_TimeoutError":"The server request timed out.",
"PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once."
};

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=3MD7fbO6LyAmIMK7bdeiCzGiQI7ZzX-AjXdNTSBj3ExQPIlK2fKeFYKBU73WzkZs_uHsvNphxWnpk4K1mA6WARPHJnyWg8Jya4B1ZrpdZ04889VPRZciRlMoxDydN7zb18nGPb3cqo8uRWvlGYhX6Q2&t=6b9ad1b8

=EF=BB=BF// Name:        Common.Common.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation



/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />

(function() {
var scriptName =3D "ExtendedCommon";

function execute() {


var version =3D Sys.version;
if (!version && !Sys._versionChecked) {
    Sys._versionChecked =3D true;
    throw new Error("AjaxControlToolkit requires ASP.NET Ajax 4.0 =
scripts. Ensure the correct version of the scripts are referenced. If =
you are using an ASP.NET ScriptManager, switch to the =
ToolkitScriptManager in AjaxControlToolkit.dll.");
}

Type.registerNamespace('Sys.Extended.UI');


Sys.Extended.UI.BoxSide =3D function() {
    /// <summary>
    /// The BoxSide enumeration describes the sides of a DOM element
    /// </summary>
    /// <field name=3D"Top" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Right" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Bottom" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Left" type=3D"Number" integer=3D"true" =
static=3D"true" />
}
Sys.Extended.UI.BoxSide.prototype =3D {
    Top : 0,
    Right : 1,
    Bottom : 2,
    Left : 3
}
Sys.Extended.UI.BoxSide.registerEnum("Sys.Extended.UI.BoxSide", false);


Sys.Extended.UI._CommonToolkitScripts =3D function() {
    /// <summary>
    /// The _CommonToolkitScripts class contains functionality utilized =
across a number
    /// of controls (but not universally)
    /// </summary>
    /// <remarks>
    /// You should not create new instances of _CommonToolkitScripts.  =
Instead you should use the shared instance CommonToolkitScripts (or =
Sys.Extended.UI.CommonToolkitScripts).
    /// </remarks>
}
Sys.Extended.UI._CommonToolkitScripts.prototype =3D {
    _borderStyleNames: ["borderTopStyle", "borderRightStyle", =
"borderBottomStyle", "borderLeftStyle"],
    _borderWidthNames: ["borderTopWidth", "borderRightWidth", =
"borderBottomWidth", "borderLeftWidth"],
    _paddingWidthNames: ["paddingTop", "paddingRight", "paddingBottom", =
"paddingLeft"],
    _marginWidthNames: ["marginTop", "marginRight", "marginBottom", =
"marginLeft"],

    getCurrentStyle: function(element, attribute, defaultValue) {
        /// <summary>
        /// CommonToolkitScripts.getCurrentStyle is used to compute the =
value of a style attribute on an
        /// element that is currently being displayed.  This is =
especially useful for scenarios where
        /// several CSS classes and style attributes are merged, or when =
you need information about the
        /// size of an element (such as its padding or margins) that is =
not exposed in any other fashion.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Live DOM element to check style of
        /// </param>
        /// <param name=3D"attribute" type=3D"String">
        /// The style attribute's name is expected to be in a =
camel-cased form that you would use when
        /// accessing a JavaScript property instead of the hyphenated =
form you would use in a CSS
        /// stylesheet (i.e. it should be "backgroundColor" and not =
"background-color").
        /// </param>
        /// <param name=3D"defaultValue" type=3D"Object" =
mayBeNull=3D"true" optional=3D"true">
        /// In the event of a problem (i.e. a null element or an =
attribute that cannot be found) we
        /// return this object (or null if none if not specified).
        /// </param>
        /// <returns type=3D"Object">
        /// Current style of the element's attribute
        /// </returns>

        var currentValue =3D null;
        if (element) {
            if (element.currentStyle) {
                currentValue =3D element.currentStyle[attribute];
            } else if (document.defaultView && =
document.defaultView.getComputedStyle) {
                var style =3D =
document.defaultView.getComputedStyle(element, null);
                if (style) {
                    currentValue =3D style[attribute];
                }
            }

            if (!currentValue && element.style.getPropertyValue) {
                currentValue =3D =
element.style.getPropertyValue(attribute);
            }
            else if (!currentValue && element.style.getAttribute) {
                currentValue =3D element.style.getAttribute(attribute);
            }
        }

        if ((!currentValue || currentValue =3D=3D "" || typeof =
(currentValue) =3D=3D=3D 'undefined')) {
            if (typeof (defaultValue) !=3D 'undefined') {
                currentValue =3D defaultValue;
            }
            else {
                currentValue =3D null;
            }
        }
        return currentValue;
    },

    getInheritedBackgroundColor: function(element) {
        /// <summary>
        /// CommonToolkitScripts.getInheritedBackgroundColor provides =
the ability to get the displayed
        /// background-color of an element.  In most cases calling =
CommonToolkitScripts.getCurrentStyle
        /// won't do the job because it will return "transparent" unless =
the element has been given a
        /// specific background color.  This function will walk up the =
element's parents until it finds
        /// a non-transparent color.  If we get all the way to the top =
of the document or have any other
        /// problem finding a color, we will return the default value =
'#FFFFFF'.  This function is
        /// especially important when we're using opacity in IE (because =
ClearType will make text look
        /// horrendous if you fade it with a transparent background =
color).
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Live DOM element to get the background color of
        /// </param>
        /// <returns type=3D"String">
        /// Background color of the element
        /// </returns>

        if (!element) return '#FFFFFF';
        var background =3D this.getCurrentStyle(element, =
'backgroundColor');
        try {
            while (!background || background =3D=3D '' || background =
=3D=3D 'transparent' || background =3D=3D 'rgba(0, 0, 0, 0)') {
                element =3D element.parentNode;
                if (!element) {
                    background =3D '#FFFFFF';
                } else {
                    background =3D this.getCurrentStyle(element, =
'backgroundColor');
                }
            }
        } catch (ex) {
            background =3D '#FFFFFF';
        }
        return background;
    },

    getLocation: function(element) {
        /// <summary>Gets the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Point">
        ///   A Point object with two fields, x and y, which contain the =
pixel coordinates of the element.
        /// </returns>
        return Sys.UI.DomElement.getLocation(element);
    },

    setLocation: function(element, point) {
        /// <summary>
        /// Sets the current location for an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"point" type=3D"Object">
        /// Point object (of the form {x,y})
        /// </param>
        /// <remarks>
        /// This method does not attempt to set the positioning mode of =
an element.
        /// The position is relative from the elements nearest =
position:relative or
        /// position:absolute element.
        /// </remarks>
        Sys.UI.DomElement.setLocation(element, point.x, point.y);
    },

    getContentSize: function(element) {
        /// <summary>
        /// Gets the "content-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* =
of the borders and
        /// padding of an element. The "content-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var size =3D this.getSize(element);
        var borderBox =3D this.getBorderBox(element);
        var paddingBox =3D this.getPaddingBox(element);
        return {
            width: size.width - borderBox.horizontal - =
paddingBox.horizontal,
            height: size.height - borderBox.vertical - =
paddingBox.vertical
        }
    },

    getSize: function(element) {
        /// <summary>
        /// Gets the "border-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        return {
            width: element.offsetWidth,
            height: element.offsetHeight
        };
    },

    setContentSize: function(element, size) {
        /// <summary>
        /// Sets the "content-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"size" type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </param>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* =
of the borders and
        /// padding of an element. The "content-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        if (this.getCurrentStyle(element, 'MozBoxSizing') =3D=3D =
'border-box' || this.getCurrentStyle(element, 'BoxSizing') =3D=3D =
'border-box') {
            var borderBox =3D this.getBorderBox(element);
            var paddingBox =3D this.getPaddingBox(element);
            size =3D {
                width: size.width + borderBox.horizontal + =
paddingBox.horizontal,
                height: size.height + borderBox.vertical + =
paddingBox.vertical
            };
        }
        element.style.width =3D size.width.toString() + 'px';
        element.style.height =3D size.height.toString() + 'px';
    },

    setSize: function(element, size) {
        /// <summary>
        /// Sets the "border-box" size of an element.
        /// </summary>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and=20
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">DOM =
element</param>
        /// <param name=3D"size" type=3D"Object">Size of the element (in =
the form {width,height})</param>
        /// <returns />

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        var borderBox =3D this.getBorderBox(element);
        var paddingBox =3D this.getPaddingBox(element);
        var contentSize =3D {
            width: size.width - borderBox.horizontal - =
paddingBox.horizontal,
            height: size.height - borderBox.vertical - =
paddingBox.vertical
        };
        this.setContentSize(element, contentSize);
    },

    getBounds: function(element) {
        /// <summary>Gets the coordinates, width and height of an =
element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Bounds">
        ///   A Bounds object with four fields, x, y, width and height, =
which contain the pixel coordinates,
        ///   width and height of the element.
        /// </returns>
        return Sys.UI.DomElement.getBounds(element);
    },

    setBounds: function(element, bounds) {
        /// <summary>
        /// Sets the "border-box" bounds of an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"bounds" type=3D"Object">
        /// Bounds of the element (of the form {x,y,width,height})
        /// </param>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!bounds) {
            throw Error.argumentNull('bounds');
        }
        this.setSize(element, bounds);
        $common.setLocation(element, bounds);
    },

    getClientBounds: function() {
        /// <summary>
        /// Gets the width and height of the browser client window =
(excluding scrollbars)
        /// </summary>
        /// <returns type=3D"Sys.UI.Bounds">
        /// Browser's client width and height
        /// </returns>

        var clientWidth;
        var clientHeight;

        if (document.compatMode =3D=3D "CSS1Compat") {
            clientWidth =3D document.documentElement.clientWidth;
            clientHeight =3D document.documentElement.clientHeight;
        }
        else {
            clientWidth =3D document.body.clientWidth;
            clientHeight =3D document.body.clientHeight;
        }
        return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);
    },

    getMarginBox: function(element) {
        /// <summary>
        /// Gets the entire margin box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's margin box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getMargin(element, Sys.Extended.UI.BoxSide.Top),
            right: this.getMargin(element, =
Sys.Extended.UI.BoxSide.Right),
            bottom: this.getMargin(element, =
Sys.Extended.UI.BoxSide.Bottom),
            left: this.getMargin(element, Sys.Extended.UI.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    getBorderBox: function(element) {
        /// <summary>
        /// Gets the entire border box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's border box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getBorderWidth(element, =
Sys.Extended.UI.BoxSide.Top),
            right: this.getBorderWidth(element, =
Sys.Extended.UI.BoxSide.Right),
            bottom: this.getBorderWidth(element, =
Sys.Extended.UI.BoxSide.Bottom),
            left: this.getBorderWidth(element, =
Sys.Extended.UI.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    getPaddingBox: function(element) {
        /// <summary>
        /// Gets the entire padding box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's padding box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getPadding(element, Sys.Extended.UI.BoxSide.Top),
            right: this.getPadding(element, =
Sys.Extended.UI.BoxSide.Right),
            bottom: this.getPadding(element, =
Sys.Extended.UI.BoxSide.Bottom),
            left: this.getPadding(element, Sys.Extended.UI.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    isBorderVisible: function(element, boxSide) {
        /// <summary>
        /// Gets whether the current border style for an element on a =
specific boxSide is not 'none'.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"Sys.Extended.UI.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Boolean">
        /// Whether the current border style for an element on a =
specific boxSide is not 'none'.
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < Sys.Extended.UI.BoxSide.Top || boxSide > =
Sys.Extended.UI.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'Sys.Extended.UI.BoxSide'));
        }
        var styleName =3D this._borderStyleNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return styleValue !=3D "none";
    },

    getMargin: function(element, boxSide) {
        /// <summary>
        /// Gets the margin thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"Sys.Extended.UI.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Margin thickness on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < Sys.Extended.UI.BoxSide.Top || boxSide > =
Sys.Extended.UI.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'Sys.Extended.UI.BoxSide'));
        }
        var styleName =3D this._marginWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        try { return this.parsePadding(styleValue); } catch (ex) { =
return 0; }
    },

    getBorderWidth: function(element, boxSide) {
        /// <summary>
        /// Gets the border thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"Sys.Extended.UI.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Border thickness on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < Sys.Extended.UI.BoxSide.Top || boxSide > =
Sys.Extended.UI.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'Sys.Extended.UI.BoxSide'));
        }
        if (!this.isBorderVisible(element, boxSide)) {
            return 0;
        }
        var styleName =3D this._borderWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return this.parseBorderWidth(styleValue);
    },

    getPadding: function(element, boxSide) {
        /// <summary>
        /// Gets the padding thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"Sys.Extended.UI.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Padding on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < Sys.Extended.UI.BoxSide.Top || boxSide > =
Sys.Extended.UI.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'Sys.Extended.UI.BoxSide'));
        }
        var styleName =3D this._paddingWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return this.parsePadding(styleValue);
    },

    parseBorderWidth: function(borderWidth) {
        /// <summary>
        /// Parses a border-width string into a pixel size
        /// </summary>
        /// <param name=3D"borderWidth" type=3D"String" =
mayBeNull=3D"true">
        /// Type of border ('thin','medium','thick','inherit',px =
unit,null,'')
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Number of pixels in the border-width
        /// </returns>
        if (!this._borderThicknesses) {

            var borderThicknesses =3D {};
            var div0 =3D document.createElement('div');
            div0.style.visibility =3D 'hidden';
            div0.style.position =3D 'absolute';
            div0.style.fontSize =3D '1px';
            document.body.appendChild(div0)
            var div1 =3D document.createElement('div');
            div1.style.height =3D '0px';
            div1.style.overflow =3D 'hidden';
            div0.appendChild(div1);
            var base =3D div0.offsetHeight;
            div1.style.borderTop =3D 'solid black';
            div1.style.borderTopWidth =3D 'thin';
            borderThicknesses['thin'] =3D div0.offsetHeight - base;
            div1.style.borderTopWidth =3D 'medium';
            borderThicknesses['medium'] =3D div0.offsetHeight - base;
            div1.style.borderTopWidth =3D 'thick';
            borderThicknesses['thick'] =3D div0.offsetHeight - base;
            div0.removeChild(div1);
            document.body.removeChild(div0);
            this._borderThicknesses =3D borderThicknesses;
        }

        if (borderWidth) {
            switch (borderWidth) {
                case 'thin':
                case 'medium':
                case 'thick':
                    return this._borderThicknesses[borderWidth];
                case 'inherit':
                    return 0;
            }
            var unit =3D this.parseUnit(borderWidth);
            Sys.Debug.assert(unit.type =3D=3D 'px', =
String.format(Sys.Extended.UI.Resources.Common_InvalidBorderWidthUnit, =
unit.type));
            return unit.size;
        }
        return 0;
    },

    parsePadding: function(padding) {
        /// <summary>
        /// Parses a padding string into a pixel size
        /// </summary>
        /// <param name=3D"padding" type=3D"String" mayBeNull=3D"true">
        /// Padding to parse ('inherit',px unit,null,'')
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Number of pixels in the padding
        /// </returns>

        if (padding) {
            if (padding =3D=3D 'inherit') {
                return 0;
            }
            var unit =3D this.parseUnit(padding);
            if (unit.type !=3D=3D 'px') {
                =
Sys.Debug.fail(String.format(Sys.Extended.UI.Resources.Common_InvalidPadd=
ingUnit, unit.type));
            }
            return unit.size;
        }
        return 0;
    },

    parseUnit: function(value) {
        /// <summary>
        /// Parses a unit string into a unit object
        /// </summary>
        /// <param name=3D"value" type=3D"String" mayBeNull=3D"true">
        /// Value to parse (of the form px unit,% unit,em unit,...)
        /// </param>
        /// <returns type=3D"Object">
        /// Parsed unit (of the form {size,type})
        /// </returns>

        if (!value) {
            throw Error.argumentNull('value');
        }

        value =3D value.trim().toLowerCase();
        var l =3D value.length;
        var s =3D -1;
        for (var i =3D 0; i < l; i++) {
            var ch =3D value.substr(i, 1);
            if ((ch < '0' || ch > '9') && ch !=3D '-' && ch !=3D '.' && =
ch !=3D ',') {
                break;
            }
            s =3D i;
        }
        if (s =3D=3D -1) {
            throw =
Error.create(Sys.Extended.UI.Resources.Common_UnitHasNoDigits);
        }
        var type;
        var size;
        if (s < (l - 1)) {
            type =3D value.substring(s + 1).trim();
        } else {
            type =3D 'px';
        }
        size =3D parseFloat(value.substr(0, s + 1));
        if (type =3D=3D 'px') {
            size =3D Math.floor(size);
        }
        return {
            size: size,
            type: type
        };
    },

    getElementOpacity: function(element) {
        /// <summary>
        /// Get the element's opacity
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <returns type=3D"Number">
        /// Opacity of the element
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }

        var hasOpacity =3D false;
        var opacity;

        if (element.filters) {
            var filters =3D element.filters;
            if (filters.length !=3D=3D 0) {
                var alphaFilter =3D =
filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    opacity =3D alphaFilter.opacity / 100.0;
                    hasOpacity =3D true;
                }
            }
        }
        else {
            opacity =3D this.getCurrentStyle(element, 'opacity', 1);
            hasOpacity =3D true;
        }

        if (hasOpacity =3D=3D=3D false) {
            return 1.0;
        }
        return parseFloat(opacity);
    },

    setElementOpacity: function(element, value) {
        /// <summary>
        /// Set the element's opacity
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <param name=3D"value" type=3D"Number">
        /// Opacity of the element
        /// </param>

        if (!element) {
            throw Error.argumentNull('element');
        }

        if (element.filters) {
            var filters =3D element.filters;
            var createFilter =3D true;
            if (filters.length !=3D=3D 0) {
                var alphaFilter =3D =
filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    createFilter =3D false;
                    alphaFilter.opacity =3D value * 100;
                }
            }
            if (createFilter) {
                element.style.filter =3D =
'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (value * 100) + =
')';
            }
        }
        else {
            element.style.opacity =3D value;
        }
    },

    getVisible: function(element) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <returns type=3D"Boolean" mayBeNull=3D"false">
        /// True if the element is visible, false otherwise
        /// </returns>


        return (element &&
                ("none" !=3D $common.getCurrentStyle(element, =
"display")) &&
                ("hidden" !=3D $common.getCurrentStyle(element, =
"visibility")));
    },

    setVisible: function(element, value) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <param name=3D"value" type=3D"Boolean" mayBeNull=3D"false">
        /// True to make the element visible, false to hide it
        /// </param>


        if (element && value !=3D $common.getVisible(element)) {
            if (value) {
                if (element.style.removeAttribute) {
                    element.style.removeAttribute("display");
                } else {
                    element.style.removeProperty("display");
                }
            } else {
                element.style.display =3D 'none';
            }
            element.style.visibility =3D value ? 'visible' : 'hidden';
        }
    },

    resolveFunction: function(value) {
        /// <summary>
        /// Returns a function reference that corresponds to the =
provided value
        /// </summary>
        /// <param name=3D"value" type=3D"Object">
        /// The value can either be a Function, the name of a function =
(that can be found using window['name']),
        /// or an expression that evaluates to a function.
        /// </param>
        /// <returns type=3D"Function">
        /// Reference to the function, or null if not found
        /// </returns>

        if (value) {
            if (value instanceof Function) {
                return value;
            } else if (String.isInstanceOfType(value) && value.length > =
0) {
                var func;
                if ((func =3D window[value]) instanceof Function) {
                    return func;
                } else if ((func =3D eval(value)) instanceof Function) {
                    return func;
                }
            }
        }
        return null;
    },

    addCssClasses: function(element, classNames) {
        /// <summary>
        /// Adds multiple css classes to a DomElement
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"classNames" type=3D"Array">The class names to =
add</param>

        for (var i =3D 0; i < classNames.length; i++) {
            Sys.UI.DomElement.addCssClass(element, classNames[i]);
        }
    },
    removeCssClasses: function(element, classNames) {
        /// <summary>
        /// Removes multiple css classes to a DomElement
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"classNames" type=3D"Array">The class names to =
remove</param>

        for (var i =3D 0; i < classNames.length; i++) {
            Sys.UI.DomElement.removeCssClass(element, classNames[i]);
        }
    },
    setStyle: function(element, style) {
        /// <summary>
        /// Sets the style of the element using the supplied style =
template object
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"style" type=3D"Object">The template</param>

        $common.applyProperties(element.style, style);
    },
    removeHandlers: function(element, events) {
        /// <summary>
        /// Removes a set of event handlers from an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"events" type=3D"Object">The template object =
that contains event names and delegates</param>
        /// <remarks>
        /// This is NOT the same as $clearHandlers which removes all =
delegates from a DomElement.  This rather removes select delegates=20
        /// from a specified element and has a matching signature as =
$addHandlers
        /// </remarks>
        for (var name in events) {
            $removeHandler(element, name, events[name]);
        }
    },

    overlaps: function(r1, r2) {
        /// <summary>
        /// Determine if two rectangles overlap
        /// </summary>
        /// <param name=3D"r1" type=3D"Object">
        /// Rectangle
        /// </param>
        /// <param name=3D"r2" type=3D"Object">
        /// Rectangle
        /// </param>
        /// <returns type=3D"Boolean">
        /// True if the rectangles overlap, false otherwise
        /// </returns>

        return r1.x < (r2.x + r2.width)
                && r2.x < (r1.x + r1.width)
                && r1.y < (r2.y + r2.height)
                && r2.y < (r1.y + r1.height);
    },

    containsPoint: function(rect, x, y) {
        /// <summary>
        /// Tests whether a point (x,y) is contained within a rectangle
        /// </summary>
        /// <param name=3D"rect" type=3D"Object">The rectangle</param>
        /// <param name=3D"x" type=3D"Number">The x coordinate of the =
point</param>
        /// <param name=3D"y" type=3D"Number">The y coordinate of the =
point</param>

        return x >=3D rect.x && x < (rect.x + rect.width) && y >=3D =
rect.y && y < (rect.y + rect.height);
    },

    isKeyDigit: function(keyCode) {
        /// <summary>
        /// Gets whether the supplied key-code is a digit
        /// </summary>
        /// <param name=3D"keyCode" type=3D"Number" integer=3D"true">The =
key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type=3D"Boolean" />

        return (0x30 <=3D keyCode && keyCode <=3D 0x39);
    },

    isKeyNavigation: function(keyCode) {
        /// <summary>
        /// Gets whether the supplied key-code is a navigation key
        /// </summary>
        /// <param name=3D"keyCode" type=3D"Number" integer=3D"true">The =
key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type=3D"Boolean" />

        return (Sys.UI.Key.left <=3D keyCode && keyCode <=3D =
Sys.UI.Key.down);
    },

    padLeft: function(text, size, ch, truncate) {
        /// <summary>
        /// Pads the left hand side of the supplied text with the =
specified pad character up to the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true" =
optional=3D"true">The size to pad the text (default is 2)</param>
        /// <param name=3D"ch" type=3D"String" optional=3D"true">The =
single character to use as the pad character (default is ' ')</param>
        /// <param name=3D"truncate" type=3D"Boolean" =
optional=3D"true">Whether to truncate the text to size (default is =
false)</param>

        return $common._pad(text, size || 2, ch || ' ', 'l', truncate || =
false);
    },

    padRight: function(text, size, ch, truncate) {
        /// <summary>
        /// Pads the right hand side of the supplied text with the =
specified pad character up to the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true" =
optional=3D"true">The size to pad the text (default is 2)</param>
        /// <param name=3D"ch" type=3D"String" optional=3D"true">The =
single character to use as the pad character (default is ' ')</param>
        /// <param name=3D"truncate" type=3D"Boolean" =
optional=3D"true">Whether to truncate the text to size (default is =
false)</param>

        return $common._pad(text, size || 2, ch || ' ', 'r', truncate || =
false);
    },

    _pad: function(text, size, ch, side, truncate) {
        /// <summary>
        /// Pads supplied text with the specified pad character up to =
the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true">The =
size to pad the text</param>
        /// <param name=3D"ch" type=3D"String">The single character to =
use as the pad character</param>
        /// <param name=3D"side" type=3D"String">Either 'l' or 'r' to =
siginfy whether to pad the Left or Right side respectively</param>
        /// <param name=3D"truncate" type=3D"Boolean">Whether to =
truncate the text to size</param>

        text =3D text.toString();
        var length =3D text.length;
        var builder =3D new Sys.StringBuilder();
        if (side =3D=3D 'r') {
            builder.append(text);
        }
        while (length < size) {
            builder.append(ch);
            length++;
        }
        if (side =3D=3D 'l') {
            builder.append(text);
        }
        var result =3D builder.toString();
        if (truncate && result.length > size) {
            if (side =3D=3D 'l') {
                result =3D result.substr(result.length - size, size);
            } else {
                result =3D result.substr(0, size);
            }
        }
        return result;
    },

    __DOMEvents: {
        focusin: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focusin", true, false, window, 1); } },
        focusout: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focusout", true, false, window, 1); } },
        activate: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("activate", true, true, window, 1); } },
        focus: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focus", false, false, window, 1); } },
        blur: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("blur", false, false, window, 1); } },
        click: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        dblclick: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mousedown: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseup: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseover: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mousemove: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseout: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        load: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("load", false, false); } },
        unload: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("unload", false, false); } },
        select: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("select", true, false); } },
        change: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("change", true, false); } },
        submit: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("submit", true, true); } },
        reset: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("reset", true, false); } },
        resize: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("resize", true, false); } },
        scroll: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("scroll", true, false); } }
    },

    tryFireRawEvent: function(element, rawEvent) {
        /// <summary>
        /// Attempts to fire a raw DOM event on an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to fire the event</param>
        /// <param name=3D"rawEvent" type=3D"Object">The raw DOM event =
object to fire. Must not be Sys.UI.DomEvent</param>
        /// <returns type=3D"Boolean">True if the event was successfully =
fired, otherwise false</returns>

        try {
            if (element.fireEvent) {
                element.fireEvent("on" + rawEvent.type, rawEvent);
                return true;
            } else if (element.dispatchEvent) {
                element.dispatchEvent(rawEvent);
                return true;
            }
        } catch (e) {
        }
        return false;
    },

    tryFireEvent: function(element, eventName, properties) {
        /// <summary>
        /// Attempts to fire a DOM event on an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to fire the event</param>
        /// <param name=3D"eventName" type=3D"String">The name of the =
event to fire (without an 'on' prefix)</param>
        /// <param name=3D"properties" type=3D"Object">Properties to add =
to the event</param>
        /// <returns type=3D"Boolean">True if the event was successfully =
fired, otherwise false</returns>

        try {
            if (document.createEventObject) {
                var e =3D document.createEventObject();
                $common.applyProperties(e, properties || {});
                element.fireEvent("on" + eventName, e);
                return true;
            } else if (document.createEvent) {
                var def =3D $common.__DOMEvents[eventName];
                if (def) {
                    var e =3D document.createEvent(def.eventGroup);
                    def.init(e, properties || {});
                    element.dispatchEvent(e);
                    return true;
                }
            }
        } catch (e) {
        }
        return false;
    },

    wrapElement: function(innerElement, newOuterElement, =
newInnerParentElement) {
        /// <summary>
        /// Wraps an inner element with a new outer element at the same =
DOM location as the inner element
        /// </summary>
        /// <param name=3D"innerElement" type=3D"Sys.UI.DomElement">The =
element to be wrapped</param>
        /// <param name=3D"newOuterElement" =
type=3D"Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />

        var parent =3D innerElement.parentNode;
        parent.replaceChild(newOuterElement, innerElement);
        (newInnerParentElement || =
newOuterElement).appendChild(innerElement);
    },

    unwrapElement: function(innerElement, oldOuterElement) {
        /// <summary>
        /// Unwraps an inner element from an outer element at the same =
DOM location as the outer element
        /// </summary>
        /// <param name=3D"innerElement" type=3D"Sys.UI.DomElement">The =
element to be wrapped</param>
        /// <param name=3D"newOuterElement" =
type=3D"Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />

        var parent =3D oldOuterElement.parentNode;
        if (parent !=3D null) {
            $common.removeElement(innerElement);
            parent.replaceChild(innerElement, oldOuterElement);
        }
    },

    removeElement: function(element) {
        /// <summary>
        /// Removes an element from the DOM tree
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to be removed</param>
        /// <returns />

        var parent =3D element.parentNode;
        if (parent !=3D null) {
            parent.removeChild(element);
        }
    },

    applyProperties: function(target, properties) {
        /// <summary>
        /// Quick utility method to copy properties from a template =
object to a target object
        /// </summary>
        /// <param name=3D"target" type=3D"Object">The object to apply =
to</param>
        /// <param name=3D"properties" type=3D"Object">The template to =
copy values from</param>

        for (var p in properties) {
            var pv =3D properties[p];
            if (pv !=3D null && Object.getType(pv) =3D=3D=3D Object) {
                var tv =3D target[p];
                $common.applyProperties(tv, pv);
            } else {
                target[p] =3D pv;
            }
        }
    },

    createElementFromTemplate: function(template, appendToParent, =
nameTable) {
        /// <summary>
        /// Creates an element for the current document based on a =
template object
        /// </summary>
        /// <param name=3D"template" type=3D"Object">The template from =
which to create the element</param>
        /// <param name=3D"appendToParent" type=3D"Sys.UI.DomElement" =
optional=3D"true" mayBeNull=3D"true">A DomElement under which to append =
this element</param>
        /// <param name=3D"nameTable" type=3D"Object" optional=3D"true" =
mayBeNull=3D"true">An object to use as the storage for the element using =
template.name as the key</param>
        /// <returns type=3D"Sys.UI.DomElement" />
        /// <remarks>
        /// This method is useful if you find yourself using the same or =
similar DomElement constructions throughout a class.  You can even set =
the templates
        /// as static properties for a type to cut down on overhead.  =
This method is often called with a JSON style template:
        /// <code>
        /// var elt =3D $common.createElementFromTemplate({
        ///     nodeName : "div",
        ///     properties : {
        ///         style : {
        ///             height : "100px",
        ///             width : "100px",
        ///             backgroundColor : "white"
        ///         },
        ///         expandoAttribute : "foo"
        ///     },
        ///     events : {
        ///         click : function() { alert("foo"); },
        ///         mouseover : function() { elt.backgroundColor =3D =
"silver"; },
        ///         mouseout : function() { elt.backgroundColor =3D =
"white"; }
        ///     },
        ///     cssClasses : [ "class0", "class1" ],
        ///     visible : true,
        ///     opacity : .5
        /// }, someParent);
        /// </code>
        /// </remarks>

        if (typeof (template.nameTable) !=3D 'undefined') {
            var newNameTable =3D template.nameTable;
            if (String.isInstanceOfType(newNameTable)) {
                newNameTable =3D nameTable[newNameTable];
            }
            if (newNameTable !=3D null) {
                nameTable =3D newNameTable;
            }
        }

        var elementName =3D null;
        if (typeof (template.name) !=3D=3D 'undefined') {
            elementName =3D template.name;
        }

        var elt =3D document.createElement(template.nodeName);

        if (typeof (template.name) !=3D=3D 'undefined' && nameTable) {
            nameTable[template.name] =3D elt;
        }

        if (typeof (template.parent) !=3D=3D 'undefined' && =
appendToParent =3D=3D null) {
            var newParent =3D template.parent;
            if (String.isInstanceOfType(newParent)) {
                newParent =3D nameTable[newParent];
            }
            if (newParent !=3D null) {
                appendToParent =3D newParent;
            }
        }

        if (typeof (template.properties) !=3D=3D 'undefined' && =
template.properties !=3D null) {
            $common.applyProperties(elt, template.properties);
        }

        if (typeof (template.cssClasses) !=3D=3D 'undefined' && =
template.cssClasses !=3D null) {
            $common.addCssClasses(elt, template.cssClasses);
        }

        if (typeof (template.events) !=3D=3D 'undefined' && =
template.events !=3D null) {
            $addHandlers(elt, template.events);
        }

        if (typeof (template.visible) !=3D=3D 'undefined' && =
template.visible !=3D null) {
            this.setVisible(elt, template.visible);
        }

        if (appendToParent) {
            appendToParent.appendChild(elt);
        }

        if (typeof (template.opacity) !=3D=3D 'undefined' && =
template.opacity !=3D null) {
            $common.setElementOpacity(elt, template.opacity);
        }

        if (typeof (template.children) !=3D=3D 'undefined' && =
template.children !=3D null) {
            for (var i =3D 0; i < template.children.length; i++) {
                var subtemplate =3D template.children[i];
                $common.createElementFromTemplate(subtemplate, elt, =
nameTable);
            }
        }

        var contentPresenter =3D elt;
        if (typeof (template.contentPresenter) !=3D=3D 'undefined' && =
template.contentPresenter !=3D null) {
            contentPresenter =3D nameTable[contentPresenter];
        }

        if (typeof (template.content) !=3D=3D 'undefined' && =
template.content !=3D null) {
            var content =3D template.content;
            if (String.isInstanceOfType(content)) {
                content =3D nameTable[content];
            }
            if (content.parentNode) {
                $common.wrapElement(content, elt, contentPresenter);
            } else {
                contentPresenter.appendChild(content);
            }
        }

        return elt;
    },

    prepareHiddenElementForATDeviceUpdate: function() {
        /// <summary>
        /// JAWS, an Assistive Technology device responds to updates to =
form elements=20
        /// and refreshes its document buffer to what is showing live
        /// in the browser. To ensure that Toolkit controls that make =
XmlHttpRequests to
        /// retrieve content are useful to users with visual =
disabilities, we update a
        /// hidden form element to ensure that JAWS conveys what is in
        /// the browser. See this article for more details:=20
        /// =
http://juicystudio.com/article/improving-ajax-applications-for-jaws-users=
.php
        /// This method creates a hidden input on the screen for any =
page that uses a Toolkit
        /// control that will perform an XmlHttpRequest.
        /// </summary>  =20
        var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');
        if (!objHidden) {
            var objHidden =3D document.createElement('input');
            objHidden.setAttribute('type', 'hidden');
            objHidden.setAttribute('value', '1');
            objHidden.setAttribute('id', =
'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            objHidden.setAttribute('name', =
'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            if (document.forms[0]) {
                document.forms[0].appendChild(objHidden);
            }
        }
    },

    updateFormToRefreshATDeviceBuffer: function() {
        /// <summary>
        /// Updates the hidden buffer to ensure that the latest document =
stream is picked up
        /// by the screen reader.
        /// </summary>
        var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');

        if (objHidden) {
            if (objHidden.getAttribute('value') =3D=3D '1') {
                objHidden.setAttribute('value', '0');
            } else {
                objHidden.setAttribute('value', '1');
            }
        }
    },

    appendElementToFormOrBody: function(element) {
        /// <summary>
        /// Tries to append an element to the current form. If no form =
exists, the element will be appended to the body element.
        /// </summary>
        /// <param name=3D"element" type=3D"Object">The element to =
append.</param>
        if (document.forms && document.forms[0]) {
            document.forms[0].appendChild(element);
        } else {
            document.body.appendChild(element);
        }
    }
}

CommonToolkitScripts =3D Sys.Extended.UI.CommonToolkitScripts =3D new =
Sys.Extended.UI._CommonToolkitScripts();
$common =3D CommonToolkitScripts;

Sys.UI.DomElement.getVisible =3D $common.getVisible;
Sys.UI.DomElement.setVisible =3D $common.setVisible;
Sys.UI.Control.overlaps =3D $common.overlaps;

Sys.Extended.UI._DomUtility =3D function() {
    /// <summary>
    /// Utility functions for manipulating the DOM
    /// </summary>
}
Sys.Extended.UI._DomUtility.prototype =3D {
    isDescendant : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the =
ancestor
        /// </summary>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Ancestor =
node</param>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type=3D"Boolean" />
       =20
        for (var n =3D descendant.parentNode; n !=3D null; n =3D =
n.parentNode) {
            if (n =3D=3D ancestor) return true;
        }
        return false;
    },
    isDescendantOrSelf : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the =
ancestor or the same as the ancestor
        /// </summary>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Ancestor =
node</param>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type=3D"Boolean" />

        if (ancestor =3D=3D=3D descendant)=20
            return true;
        return Sys.Extended.UI.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isAncestor : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the =
descendant
        /// </summary>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Descendant node</param>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Possible =
ancestor node</param>
        /// <returns type=3D"Boolean" />

        return Sys.Extended.UI.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isAncestorOrSelf : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the =
descendant or the same as the descendant
        /// </summary>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Descendant node</param>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Possible =
ancestor node</param>
        /// <returns type=3D"Boolean" />
       =20
        if (descendant =3D=3D=3D ancestor)
            return true;
           =20
        return Sys.Extended.UI.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isSibling : function(self, sibling) {
        /// <summary>
        /// Whether the specified element is a sibling of the self =
element
        /// </summary>
        /// <param name=3D"self" type=3D"Sys.UI.DomElement">Self =
node</param>
        /// <param name=3D"sibling" type=3D"Sys.UI.DomElement">Possible =
sibling node</param>
        /// <returns type=3D"Boolean" />
       =20
        var parent =3D self.parentNode;
        for (var i =3D 0; i < parent.childNodes.length; i++) {
            if (parent.childNodes[i] =3D=3D sibling) return true;
        }
        return false;
    }
}
Sys.Extended.UI._DomUtility.registerClass("Sys.Extended.UI._DomUtility");=

Sys.Extended.UI.DomUtility =3D new Sys.Extended.UI._DomUtility();


Sys.Extended.UI.TextBoxWrapper =3D function(element) {
    /// <summary>
    /// Class that wraps a TextBox (INPUT type=3D"text") to abstract-out =
the
    /// presence of a watermark (which may be visible to the user but =
which
    /// should never be read by script.
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// The DOM element the behavior is associated with
    /// </param>
    Sys.Extended.UI.TextBoxWrapper.initializeBase(this, [element]);
    this._current =3D element.value;
    this._watermark =3D null;
    this._isWatermarked =3D false;
}

Sys.Extended.UI.TextBoxWrapper.prototype =3D {

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        this.get_element().TextBoxWrapper =3D null;
        Sys.Extended.UI.TextBoxWrapper.callBaseMethod(this, 'dispose');
    },

    get_Current : function() {
        /// <value type=3D"String">
        /// Current value actually in the TextBox (i.e., TextBox.value)
        /// </value>
        this._current =3D this.get_element().value;
        return this._current;
    },
    set_Current : function(value) {
        this._current =3D value;
        this._updateElement();
    },

    get_Value : function() {
        /// <value type=3D"String">
        /// Conceptual "value" of the TextBox - its contents if no =
watermark is present
        /// or "" if one is
        /// </value>
        if (this.get_IsWatermarked()) {
            return "";
        } else {
            return this.get_Current();
        }
    },
    set_Value : function(text) {
        this.set_Current(text);
        if (!text || (0 =3D=3D text.length)) {
            if (null !=3D this._watermark) {
                this.set_IsWatermarked(true);
            }
        } else {
            this.set_IsWatermarked(false);
        }
    },

    get_Watermark : function() {
        /// <value type=3D"String">
        /// Text of the watermark for the TextBox
        /// </value>
        return this._watermark;
    },
    set_Watermark : function(value) {
        this._watermark =3D value;
        this._updateElement();
    },

    get_IsWatermarked : function() {
        /// <value type=3D"Boolean">
        /// true iff the TextBox is watermarked
        /// </value>
        return this._isWatermarked;
    },
    set_IsWatermarked : function(isWatermarked) {
        if (this._isWatermarked !=3D isWatermarked) {
            this._isWatermarked =3D isWatermarked;
            this._updateElement();
            this._raiseWatermarkChanged();
        }
    },

    _updateElement : function() {
        /// <summary>
        /// Updates the actual contents of the TextBox according to what =
should be there
        /// </summary>
        var element =3D this.get_element();
        if (this._isWatermarked) {
            if (element.value !=3D this._watermark) {
                element.value =3D this._watermark;
            }
        } else {
            if (element.value !=3D this._current) {
                element.value =3D this._current;
            }
        }
    },

    add_WatermarkChanged : function(handler) {
        /// <summary>
        /// Adds a handler for the WatermarkChanged event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().addHandler("WatermarkChanged", handler);
    },
    remove_WatermarkChanged : function(handler) {
        /// <summary>
        /// Removes a handler for the WatermarkChanged event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().removeHandler("WatermarkChanged", handler);
    },
    _raiseWatermarkChanged : function() {
        /// <summary>
        /// Raises the WatermarkChanged event
        /// </summary>
        var onWatermarkChangedHandler =3D =
this.get_events().getHandler("WatermarkChanged");
        if (onWatermarkChangedHandler) {
            onWatermarkChangedHandler(this, Sys.EventArgs.Empty);
        }
    }
}
Sys.Extended.UI.TextBoxWrapper.get_Wrapper =3D function(element) {
    /// <summary>
    /// Gets (creating one if necessary) the TextBoxWrapper for the =
specified TextBox
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// TextBox for which to get the wrapper
    /// </param>
    /// <returns type=3D"Sys.Extended.UI.TextBoxWrapper">
    /// TextBoxWrapper instance
    /// </returns>
    if (null =3D=3D element.TextBoxWrapper) {
        element.TextBoxWrapper =3D new =
Sys.Extended.UI.TextBoxWrapper(element);
    }
    return element.TextBoxWrapper;
}
Sys.Extended.UI.TextBoxWrapper.registerClass('Sys.Extended.UI.TextBoxWrap=
per', Sys.UI.Behavior);

Sys.Extended.UI.TextBoxWrapper.validatorGetValue =3D function(id) {
    /// <summary>
    /// Wrapper for ASP.NET's validatorGetValue to return the value from =
the wrapper if present
    /// </summary>
    /// <param name=3D"id" type=3D"String">
    /// id of the element
    /// </param>
    /// <returns type=3D"Object">
    /// Value from the wrapper or result of original ValidatorGetValue
    /// </returns>
    var control =3D $get(id);
    if (control && control.TextBoxWrapper) {
        return control.TextBoxWrapper.get_Value();
    }
    return =
Sys.Extended.UI.TextBoxWrapper._originalValidatorGetValue(id);
}

if (typeof(ValidatorGetValue) =3D=3D 'function') {
    Sys.Extended.UI.TextBoxWrapper._originalValidatorGetValue =3D =
ValidatorGetValue;
    ValidatorGetValue =3D =
Sys.Extended.UI.TextBoxWrapper.validatorGetValue;
}


if (Sys.CultureInfo && Sys.CultureInfo.prototype._getAbbrMonthIndex) {
    Sys.CultureInfo.prototype._getAbbrMonthIndex =3D function(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;
    Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;
}

} // execute

if (window.Sys && Sys.loader) {
    Sys.loader.registerScript(scriptName, ["ComponentModel"], execute);
}
else {
    execute();
}

})();

var $common, CommonToolkitScripts;

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=FVFhOHu8VIDNFpfqaiDVdPPWG6qaagSKvXZDs7kgPf6ykwB-7x9vORweLKCh4TMVhFvnYB_2pV_0yLfkg2c0Z6L9hEzJTWU-zyVSHUNxLoxauGE3Jmyt5ZUzyWE88k_HrudZDExw3EsRZAVlFPh9nQ2&t=6b9ad1b8

=EF=BB=BF// Name:        Compat.Timer.Timer.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation



/// <reference name=3D"MicrosoftAjax.js" />

(function() {
var scriptName =3D "ExtendedTimer";

function execute() {

var version =3D Sys.version;
if (!version && !Sys._versionChecked) {
    Sys._versionChecked =3D true;
    throw new Error("AjaxControlToolkit requires ASP.NET Ajax 4.0 =
scripts. Ensure the correct version of the scripts are referenced. If =
you are using an ASP.NET ScriptManager, switch to the =
ToolkitScriptManager in AjaxControlToolkit.dll.");
}

/////////////////////////////////////////////////////////////////////////=
//////

Sys.Timer =3D function() {
    Sys.Timer.initializeBase(this);
   =20
    this._interval =3D 1000;
    this._enabled =3D false;
    this._timer =3D null;
}

Sys.Timer.prototype =3D {
    get_interval: function() {
       =20
        return this._interval;
    },
    set_interval: function(value) {
       =20
        if (this._interval !=3D=3D value) {
            this._interval =3D value;
            this.raisePropertyChanged('interval');
           =20
            if (!this.get_isUpdating() && (this._timer !=3D=3D null)) {
                this._stopTimer();
                this._startTimer();
            }
        }
    },
   =20
    get_enabled: function() {
       =20
        return this._enabled;
    },
    set_enabled: function(value) {
       =20
        if (value !=3D=3D this.get_enabled()) {
            this._enabled =3D value;
            this.raisePropertyChanged('enabled');
            if (!this.get_isUpdating()) {
                if (value) {
                    this._startTimer();
                }
                else {
                    this._stopTimer();
                }
            }
        }
    },

   =20
    add_tick: function(handler) {
       =20
       =20
        this.get_events().addHandler("tick", handler);
    },

    remove_tick: function(handler) {
       =20
       =20
        this.get_events().removeHandler("tick", handler);
    },

    dispose: function() {
        this.set_enabled(false);
        this._stopTimer();
       =20
        Sys.Timer.callBaseMethod(this, 'dispose');
    },
   =20
    updated: function() {
        Sys.Timer.callBaseMethod(this, 'updated');

        if (this._enabled) {
            this._stopTimer();
            this._startTimer();
        }
    },

    _timerCallback: function() {
        var handler =3D this.get_events().getHandler("tick");
        if (handler) {
            handler(this, Sys.EventArgs.Empty);
        }
    },

    _startTimer: function() {
        this._timer =3D window.setInterval(Function.createDelegate(this, =
this._timerCallback), this._interval);
    },

    _stopTimer: function() {
        window.clearInterval(this._timer);
        this._timer =3D null;
    }
}

Sys.Timer.descriptor =3D {
    properties: [   {name: 'interval', type: Number},
                    {name: 'enabled', type: Boolean} ],
    events: [ {name: 'tick'} ]
}

Sys.Timer.registerClass('Sys.Timer', Sys.Component);

} // execute

if (window.Sys && Sys.loader) {
    Sys.loader.registerScript(scriptName, ["ComponentModel"], execute);
}
else {
    execute();
}

})();

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=LCfMSzDBR-CDTesQrpcKTb-y2gXn6ag_o_Fqo3RS2SDAp2ut8tA1spByDmvOlMTaYOI-O2v_XE_QHpv0Mof3XkhRDIyyi-gDzK5iS9bnt7mfz4N7nLdTg_nGWY1CEuw8lXrxxB3r2yAyL31dgjluEA2&t=6b9ad1b8

=EF=BB=BF// Name:        Animation.Animations.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation



/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />
/// <reference path=3D"../Compat/Timer/Timer.js" />
/// <reference path=3D"../Common/Common.js" />

(function() {
var scriptName =3D "ExtendedAnimations";

function execute() {

Type.registerNamespace('Sys.Extended.UI.Animation');

$AA =3D Sys.Extended.UI.Animation;

$AA.registerAnimation =3D function(name, type) {
    /// <summary>
    /// Register an animation with the AJAX Control Toolkit animation =
framework. This serves a dual purpose:
    /// 1) to add standard utility methods to the animation type (such =
as a <code>play</code> method that creates
    /// an animation, plays it, and disposes it when the animation is =
over), and 2) to associate a name with the
    /// type that will be used when creating animations from a JSON =
description.  This method can also be called
    /// by other animation libraries to seamlessly interoperate with the =
AJAX Control Toolkit's animation
    /// framework.
    /// </summary>
    /// <param name=3D"name" type=3D"String">
    /// Name of the animation that will be used as the XML tag name in =
the XML animation description.  It
    /// should be a valid XML tag (i.e. an alpha-numeric sequence with =
no spaces, special characters, etc.).
    /// </param>
    /// <param name=3D"type" type=3D"Type">
    /// The type of the new animation must inherit from <see =
cref=3D"Sys.Extended.UI.Animation.Animation" />.
    /// </param>
    /// <returns />

    if (type && ((type =3D=3D=3D $AA.Animation) || (type.inheritsFrom && =
type.inheritsFrom($AA.Animation)))) {
        if (!$AA.__animations) {
            $AA.__animations =3D { };
        }
       =20
        $AA.__animations[name.toLowerCase()] =3D type;
       =20
        type.play =3D function() {
            /// <summary>
            /// Create an animation, play it immediately, and dispose it =
when finished.
            /// </summary>
            /// <param parameterArray=3D"true" elementType=3D"Object">
            /// The play function takes the same parameters as the =
type's constructor
            /// </param>
            /// <returns />
       =20
            var animation =3D new type();
            type.apply(animation, arguments);
            animation.initialize();
           =20
            var handler =3D Function.createDelegate(animation,
                function() {
                    /// <summary>
                    /// Dispose the animation after playing
                    /// </summary>
                    /// <returns />
                    animation.remove_ended(handler);
                    handler =3D null;
                    animation.dispose();
                });
            animation.add_ended(handler);
           =20
            animation.play();           =20
        }
    } else {
        throw Error.argumentType('type', type, $AA.Animation, =
Sys.Extended.UI.Resources.Animation_InvalidBaseType);
    }
}

$AA.buildAnimation =3D function(json, defaultTarget) {
    /// <summary>
    /// The <code>buildAnimation</code> function is used to turn a JSON =
animation description
    /// into an actual animation object that can be played.
    /// </summary>
    /// <param name=3D"json" type=3D"String" mayBeNull=3D"true">
    /// JSON description of the animation in the format expected by =
createAnimation
    /// </param>
    /// <param name=3D"defaultTarget" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" domElement=3D"true">
    /// Target of the animation if none is specified in the JSON =
description.  The semantics of
    /// target assignment are provided in more detail in =
createAnimation.
    /// </param>
    /// <returns type=3D"Sys.Extended.UI.Animation.Animation" =
mayBeNull=3D"true">
    /// Animation created from the JSON description
    /// </returns>
   =20
    if (!json || json =3D=3D=3D '') {
        return null;
    }

    var obj;
    json =3D '(' + json + ')';
    if (! Sys.Debug.isDebug) {
        try { obj =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(json); } catch (ex) { =
}=20
    } else {
        obj =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(json);
    }
   =20
    return $AA.createAnimation(obj, defaultTarget);   =20
}

$AA.createAnimation =3D function(obj, defaultTarget) {
    /// <summary>
    /// The <code>createAnimation</code> function builds a new
    /// <see cref=3D"Sys.Extended.UI.Animation.Animation" /> instance =
from an object
    /// that describes it.
    /// </summary>
    /// <param name=3D"obj" type=3D"Object">
    /// The object provides a description of the animation to be be =
generated in
    /// a very specific format. It has two special properties: =
<code>AnimationName</code>
    /// and <code>AnimationChildren</code>.  The =
<code>AnimationName</code> is required
    /// and used to find the type of animation to create (this name =
should map to
    /// one of the animation names supplied to =
<code>registerAnimation</code>).  The
    /// <code>AnimationChildren</code> property supplies an optional =
array for
    /// animations that use child animations (such as
    /// <see cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" /> and
    /// <see cref=3D"Sys.Extended.UI.Animation.SequenceAnimation" />). =
The elements of
    /// the <code>AnimationChildren</code> array are valid
    /// <see cref=3D"Sys.Extended.UI.Animation.Animation" /> objects =
that meet these same
    /// requirements.  In order for an animation to support child =
animations, it must
    /// derive from the <see =
cref=3D"Sys.Extended.UI.Animation.ParentAnimation" /> class
    /// which provides common methods like <code>add</code>, =
<code>clear</code>, etc. The
    /// remaining properties of the object are used to set parameters =
specific to the type
    /// of animation being created (e.g. <code>duration</code>, =
<code>minimumOpacity</code>,
    /// <code>startValue</code>, etc.) and should have a corresponding =
property on the
    /// animation.  You can also assign an arbitrary JavaScript =
expression to any property
    /// by adding 'Script' to the end of its name (i.e., Height=3D"70" =
can be replaced by
    /// HeightScript=3D"$get('myElement').offsetHeight") and have the =
property set to the
    /// result of evaluating the expression before the animation is =
played each time.
    /// </param>
    /// <param name=3D"defaultTarget" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" domElement=3D"true">
    /// The function also takes a <code>defaultTarget</code> parameter =
that is used as the
    /// target of the animation if the object does not specify one.  =
This parameter should be
    /// an instance of <see cref=3D"Sys.UI.DomElement" /> and not just =
the name of an element.
    /// </param>
    /// <returns type=3D"Sys.Extended.UI.Animation.Animation">
    /// <see cref=3D"Sys.Extended.UI.Animation.Animation" /> created =
from the description
    /// </returns>
    /// <remarks>
    /// Exceptions are thrown when the <code>AnimationName</code> cannot =
be found.  Also,
    /// any exceptions raised by setting properties or providing =
properties with invalid
    /// names will only be raised when debugging.
    /// </remarks>

    if (!obj || !obj.AnimationName) {
        throw Error.argument('obj', =
Sys.Extended.UI.Resources.Animation_MissingAnimationName);
    }
    var type =3D $AA.__animations[obj.AnimationName.toLowerCase()];
    if (!type) {
        throw Error.argument('type', =
String.format(Sys.Extended.UI.Resources.Animation_UknownAnimationName, =
obj.AnimationName));
    }
    var animation =3D new type();
   =20
    if (defaultTarget) {
        animation.set_target(defaultTarget);
    }
   =20
    if (obj.AnimationChildren && obj.AnimationChildren.length) {
        if ($AA.ParentAnimation.isInstanceOfType(animation)) {
            for (var i =3D 0; i < obj.AnimationChildren.length; i++) {
                var child =3D =
$AA.createAnimation(obj.AnimationChildren[i]);
                if (child) {
                    animation.add(child);
                }
            }
        } else {
            throw Error.argument('obj', =
String.format(Sys.Extended.UI.Resources.Animation_ChildrenNotAllowed, =
type.getName()));
        }
    }
   =20
    var properties =3D type.__animationProperties;
    if (!properties) {
        type.__animationProperties =3D { };
        type.resolveInheritance();
        for (var name in type.prototype) {
            if (name.startsWith('set_')) {
                type.__animationProperties[name.substr(4).toLowerCase()] =
=3D name;
            }
        }
       =20
        delete type.__animationProperties['id'];
        properties =3D type.__animationProperties;
    }
   =20
    for (var property in obj) {
        var prop =3D property.toLowerCase();
        if (prop =3D=3D 'animationname' || prop =3D=3D =
'animationchildren') {
            continue;
        }
       =20
        var value =3D obj[property];
       =20
        var setter =3D properties[prop];
        if (setter && String.isInstanceOfType(setter) && =
animation[setter]) {
            if (! Sys.Debug.isDebug) {
                try { animation[setter](value); } catch (ex) { }
            } else {
                animation[setter](value);
            }
        } else {
            if (prop.endsWith('script')) {
                setter =3D properties[prop.substr(0, property.length - =
6)];
                if (setter && String.isInstanceOfType(setter) && =
animation[setter]) {
                    animation.DynamicProperties[setter] =3D value;
                } else if ( Sys.Debug.isDebug) {
                    throw Error.argument('obj', =
String.format(Sys.Extended.UI.Resources.Animation_NoDynamicPropertyFound,=
 property, property.substr(0, property.length - 5)));
                }
            } else if ( Sys.Debug.isDebug) {
                throw Error.argument('obj', =
String.format(Sys.Extended.UI.Resources.Animation_NoPropertyFound, =
property));
            }
        }
    }
   =20
    return animation;
}




$AA.Animation =3D function(target, duration, fps) {
    /// <summary>
    /// <code>Animation</code> is an abstract base class used as a =
starting point for all the other animations.
    /// It provides the basic mechanics for the animation (playing, =
pausing, stopping, timing, etc.)
    /// and leaves the actual animation to be done in the abstract =
methods <code>getAnimatedValue</code>
    /// and <code>setValue</code>.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <field name=3D"DynamicProperties" type=3D"Object">
    /// The DynamicProperties collection is used to associate JavaScript =
expressions with
    /// properties.  The expressions are evaluated just before the =
animation is played
    /// everytime (in the base onStart method).  The object itself maps =
strings with the
    /// names of property setters (like "set_verticalOffset") to =
JavaScript expressions
    /// (like "$find('MyBehavior').get_element().offsetHeight").  Note =
specifically that
    /// the dynamic properties are JavaScript expressions and not =
abitrary statements (i.e.
    /// you can't include things like "return foo;"), although you can =
include anything
    /// inside an anonymous function definition that you immediately =
invoke (i.e.,
    /// "(function() { return foo; })()").  A dynamic property can be =
set in the generic
    /// XML animation description by appending Script onto any =
legitimate property name
    /// (for example, instead of Height=3D"70" we could use
    /// =
HeightScript=3D"$find('MyBehavior').get_element().offsetHeight").  Any =
exceptions
    /// raised when setting dynamic properties (including both =
JavaScript evaluation errors
    /// and other exceptions raised by property setters) will only be =
propogated when
    /// debugging.
    /// </field>
    /// <remarks>
    /// Animations need to be as fast as possible - even in debug mode.  =
Don't add validation code to
    /// methods involved in every step of the animation.
    /// </remarks>
    /// <animation>Animation</animation>
    $AA.Animation.initializeBase(this);
   =20
    this._duration =3D 1;
   =20
    this._fps =3D 25;
   =20
    this._target =3D null;
   =20
    this._tickHandler =3D null;
   =20
    this._timer =3D null;
   =20
    this._percentComplete =3D 0;
   =20
    this._percentDelta =3D null;
   =20
    this._owner =3D null;
   =20
    this._parentAnimation =3D null;
   =20
    this.DynamicProperties =3D { };
   =20
    if (target) {
        this.set_target(target);
    }
    if (duration) {
        this.set_duration(duration);
    }
    if (fps) {=20
        this.set_fps(fps);
    }
}
$AA.Animation.prototype =3D {
    dispose: function() {
        /// <summary>
        /// Dispose the animation
        /// </summary>
        /// <returns />

        if (this._timer) {
            this._timer.dispose();
            this._timer =3D null;
        }

        this._tickHandler =3D null;
        this._target =3D null;

        $AA.Animation.callBaseMethod(this, 'dispose');
    },

    play: function() {
        /// <summary>
        /// Play the animation from the beginning or where it was left =
off when paused.
        /// </summary>
        /// <returns />
        /// <remarks>
        /// If this animation is the child of another, you must call =
<code>play</code> on its parent instead.
        /// </remarks>

        if (!this._owner) {
            var resume =3D true;
            if (!this._timer) {
                resume =3D false;

                if (!this._tickHandler) {
                    this._tickHandler =3D Function.createDelegate(this, =
this._onTimerTick);
                }

                this._timer =3D new Sys.Timer();
                this._timer.add_tick(this._tickHandler);

                this.onStart();

                this._timer.set_interval(1000 / this._fps);
                this._percentDelta =3D 100 / (this._duration * =
this._fps);
                this._updatePercentComplete(0, true);
            }

            this._timer.set_enabled(true);

            this.raisePropertyChanged('isPlaying');
            if (!resume) {
                this.raisePropertyChanged('isActive');
            }
        }
    },

    pause: function() {
        /// <summary>
        /// Pause the animation if it is playing.  Calling =
<code>play</code> will resume where
        /// the animation left off.
        /// </summary>
        /// <returns />
        /// <remarks>
        /// If this animation is the child of another, you must call =
<code>pause</code> on its parent instead.
        /// </remarks>

        if (!this._owner) {
            if (this._timer) {
                this._timer.set_enabled(false);

                this.raisePropertyChanged('isPlaying');
            }
        }
    },

    stop: function(finish) {
        /// <summary>
        /// Stop playing the animation.
        /// </summary>
        /// <param name=3D"finish" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
        /// Whether or not stopping the animation should leave the =
target element in a state
        /// consistent with the animation playing completely by =
performing the last step.
        /// The default value is true.
        /// </param>
        /// <returns />
        /// <remarks>
        /// If this animation is the child of another, you must call =
<code>stop</code> on
        /// its parent instead.
        /// </remarks>

        if (!this._owner) {
            var t =3D this._timer;
            this._timer =3D null;
            if (t) {
                t.dispose();

                if (this._percentComplete !=3D=3D 100) {
                    this._percentComplete =3D 100;
                    this.raisePropertyChanged('percentComplete');
                    if (finish || finish =3D=3D=3D undefined) {
                        this.onStep(100);
                    }
                }
                this.onEnd();

                this.raisePropertyChanged('isPlaying');
                this.raisePropertyChanged('isActive');
            }
        }
    },

    onStart: function() {
        /// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />

        this.raiseStarted();

        for (var property in this.DynamicProperties) {
            try {
                this[property](eval(this.DynamicProperties[property]));
            } catch (ex) {
                if (Sys.Debug.isDebug) {
                    throw ex;
                }
            }
        }
    },

    onStep: function(percentage) {
        /// <summary>
        /// The <code>onStep</code> method is called repeatedly to =
progress the animation through each frame
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">Percentage of the =
animation already complete</param>
        /// <returns />

        this.setValue(this.getAnimatedValue(percentage));
        this.raiseStep();
    },

    onEnd: function() {
        /// <summary>
        /// The <code>onEnd</code> method is called just after the =
animation is played each time.
        /// </summary>
        /// <returns />

        this.raiseEnded();
    },

    getAnimatedValue: function(percentage) {
        /// <summary>
        /// Determine the state of the animation after the given =
percentage of its duration has elapsed
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">Percentage of the =
animation already complete</param>
        /// <returns type=3D"Object">
        /// State of the animation after the given percentage of its =
duration has elapsed that will
        /// be passed to <code>setValue</code>
        /// </returns>
        throw Error.notImplemented();
    },

    setValue: function(value) {
        /// <summary>
        /// Set the current state of the animation
        /// </summary>
        /// <param name=3D"value" type=3D"Object">Current state of the =
animation (as retreived from <code>getAnimatedValue</code>)</param>
        /// <returns />
        throw Error.notImplemented();
    },

    interpolate: function(start, end, percentage) {
        /// <summary>
        /// The <code>interpolate</code> function is used to find the =
appropriate value between starting and
        /// ending values given the current percentage.
        /// </summary>
        /// <param name=3D"start" type=3D"Number">
        /// Start of the range to interpolate
        /// </param>
        /// <param name=3D"end" type=3D"Number">
        /// End of the range to interpolate
        /// </param>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage completed in the range to interpolate
        /// </param>
        /// <returns type=3D"Number">
        /// Value the desired percentage between the start and end =
values
        /// </returns>
        /// <remarks>
        /// In the future, we hope to make several implementations of =
this available so we can dynamically
        /// change the apparent speed of the animations, although it may =
make more sense to modify the
        /// <code>_updatePercentComplete</code> function instead.
        /// </remarks>
        return start + (end - start) * (percentage / 100);
    },

    _onTimerTick: function() {
        /// <summary>
        /// Handler for the tick event to move the animation along =
through its duration
        /// </summary>
        /// <returns />
        this._updatePercentComplete(this._percentComplete + =
this._percentDelta, true);
    },

    _updatePercentComplete: function(percentComplete, animate) {
        /// <summary>
        /// Update the animation and its target given the current =
percentage of its duration that
        /// has already elapsed
        /// </summary>
        /// <param name=3D"percentComplete" type=3D"Number">
        /// Percentage of the animation duration that has already =
elapsed
        /// </param>
        /// <param name=3D"animate" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
        /// Whether or not updating the animation should visually modify =
the animation's target
        /// </param>
        /// <returns />

        if (percentComplete > 100) {
            percentComplete =3D 100;
        }

        this._percentComplete =3D percentComplete;
        this.raisePropertyChanged('percentComplete');

        if (animate) {
            this.onStep(percentComplete);
        }

        if (percentComplete =3D=3D=3D 100) {
            this.stop(false);
        }
    },

    setOwner: function(owner) {
        /// <summary>
        /// Make this animation the child of another animation
        /// </summary>
        /// <param name=3D"owner" =
type=3D"Sys.Extended.UI.Animation.Animation">
        /// Parent animation
        /// </param>
        /// <returns />
        this._owner =3D owner;
    },

    raiseStarted: function() {
        /// <summary>
        /// Raise the <code>started</code> event
        /// </summary>
        /// <returns />
        var handlers =3D this.get_events().getHandler('started');
        if (handlers) {
            handlers(this, Sys.EventArgs.Empty);
        }
    },

    add_started: function(handler) {
        /// <summary>
        /// Adds an event handler for the <code>started</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to add to the event.
        /// </param>
        /// <returns />
        this.get_events().addHandler("started", handler);
    },

    remove_started: function(handler) {
        /// <summary>
        /// Removes an event handler for the <code>started</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to remove from the event.
        /// </param>
        /// <returns />
        this.get_events().removeHandler("started", handler);
    },

    raiseEnded: function() {
        /// <summary>
        /// Raise the <code>ended</code> event
        /// </summary>
        /// <returns />
        var handlers =3D this.get_events().getHandler('ended');
        if (handlers) {
            handlers(this, Sys.EventArgs.Empty);
        }
    },

    add_ended: function(handler) {
        /// <summary>
        /// Adds an event handler for the <code>ended</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to add to the event.
        /// </param>
        /// <returns />
        this.get_events().addHandler("ended", handler);
    },

    remove_ended: function(handler) {
        /// <summary>
        /// Removes an event handler for the <code>ended</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to remove from the event.
        /// </param>
        /// <returns />
        this.get_events().removeHandler("ended", handler);
    },

    raiseStep: function() {
        /// <summary>
        /// Raise the <code>step</code> event
        /// </summary>
        /// <returns />
        var handlers =3D this.get_events().getHandler('step');
        if (handlers) {
            handlers(this, Sys.EventArgs.Empty);
        }
    },

    add_step: function(handler) {
        /// <summary>
        /// Adds an event handler for the <code>step</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to add to the event.
        /// </param>
        /// <returns />
        this.get_events().addHandler("step", handler);
    },

    remove_step: function(handler) {
        /// <summary>
        /// Removes an event handler for the <code>step</code> event.
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// The handler to remove from the event.
        /// </param>
        /// <returns />
        this.get_events().removeHandler("step", handler);
    },

    get_target: function() {
        /// <value type=3D"Sys.UI.DomElement" domElement=3D"true" =
mayBeNull=3D"true">
        /// Target of the animation.  If the target of this animation is =
null and
        /// the animation has a parent, then it will recursively use the =
target of
        /// the parent animation instead.
        /// </value>
        /// <remarks>
        /// Do not set this property in a generic Xml animation =
description. It should be set
        /// using either the extender's TargetControlID or the =
AnimationTarget property (the latter
        /// maps to Sys.Extended.UI.Animation.set_animationTarget).  The =
only valid way to
        /// set this property in the generic Xml animation description =
is to use the dynamic
        /// property TargetScript=3D"$get('myElement')".
        /// <remarks>
        if (!this._target && this._parentAnimation) {
            return this._parentAnimation.get_target();
        }
        return this._target;
    },
    set_target: function(value) {
        if (this._target !=3D value) {
            this._target =3D value;
            this.raisePropertyChanged('target');
        }
    },

    set_animationTarget: function(id) {
        /// <value type=3D"string" mayBeNull=3D"false">
        /// ID of a Sys.UI.DomElement or Sys.UI.Control to use as the =
target of the animation
        /// </value>
        /// <remarks>
        /// If no Sys.UI.DomElement or Sys.UI.Control can be found for =
the given ID, an
        /// argument exception will be thrown.
        /// <remarks>

        var target =3D null;
        var element =3D $get(id);
        if (element) {
            target =3D element;
        } else {
            var ctrl =3D $find(id);
            if (ctrl) {
                element =3D ctrl.get_element();
                if (element) {
                    target =3D element;
                }
            }
        }

        if (target) {
            this.set_target(target);
        } else {
            throw Error.argument('id', =
String.format(Sys.Extended.UI.Resources.Animation_TargetNotFound, id));
        }
    },

    get_duration: function() {
        /// <value type=3D"Number">
        /// Length of the animation in seconds.  The default is 1.
        /// </value>
        return this._duration;
    },
    set_duration: function(value) {
        value =3D this._getFloat(value);
        if (this._duration !=3D value) {
            this._duration =3D value;
            this.raisePropertyChanged('duration');
        }
    },

    get_fps: function() {
        /// <value type=3D"Number" integer=3D"true">
        /// Number of steps per second.  The default is 25.
        /// </value>
        return this._fps;
    },
    set_fps: function(value) {
        value =3D this._getInteger(value);
        if (this.fps !=3D value) {
            this._fps =3D value;
            this.raisePropertyChanged('fps');
        }
    },

    get_isActive: function() {
        /// <value type=3D"Boolean">
        /// <code>true</code> if animation is active, <code>false</code> =
if not.
        /// </value>
        return (this._timer !=3D=3D null);
    },

    get_isPlaying: function() {
        /// <value type=3D"Boolean">
        /// <code>true</code> if animation is playing, =
<code>false</code> if not.
        /// </value>
        return (this._timer !=3D=3D null) && this._timer.get_enabled();
    },

    get_percentComplete: function() {
        /// <value type=3D"Number">
        /// Percentage of the animation already played.
        /// </value>
        return this._percentComplete;
    },

    _getBoolean: function(value) {
        /// <summary>
        /// Helper to convert strings to booleans for property setters
        /// </summary>
        /// <param name=3D"value" type=3D"Object">
        /// Value to convert if it's a string
        /// </param>
        /// <returns type=3D"Object">
        /// Value that has been converted if it was a string
        /// </returns>
        if (String.isInstanceOfType(value)) {
            return Boolean.parse(value);
        }
        return value;
    },

    _getInteger: function(value) {
        /// <summary>
        /// Helper to convert strings to integers for property setters
        /// </summary>
        /// <param name=3D"value" type=3D"Object">Value to convert if =
it's a string</param>
        /// <returns type=3D"Object">Value that has been converted if it =
was a string</returns>
        if (String.isInstanceOfType(value)) {
            return parseInt(value);
        }
        return value;
    },

    _getFloat: function(value) {
        /// <summary>
        /// Helper to convert strings to floats for property setters
        /// </summary>
        /// <param name=3D"value" type=3D"Object">Value to convert if =
it's a string</param>
        /// <returns type=3D"Object">Value that has been converted if it =
was a string</returns>
        if (String.isInstanceOfType(value)) {
            return parseFloat(value);
        }
        return value;
    },

    _getEnum: function(value, type) {
        /// <summary>
        /// Helper to convert strings to enum values for property =
setters
        /// </summary>
        /// <param name=3D"value" type=3D"Object">Value to convert if =
it's a string</param>
        /// <param name=3D"type" type=3D"Type">Type of the enum to =
convert to</param>
        /// <returns type=3D"Object">Value that has been converted if it =
was a string</returns>
        if (String.isInstanceOfType(value) && type && type.parse) {
            return type.parse(value);
        }
        return value;
    }
}
$AA.Animation.registerClass('Sys.Extended.UI.Animation.Animation', =
Sys.Component);
$AA.registerAnimation('animation', $AA.Animation);


$AA.ParentAnimation =3D function(target, duration, fps, animations) {
    /// <summary>
    /// The <code>ParentAnimation</code> serves as a base class for all =
animations that contain children (such as
    /// <see cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" />, =
<see cref=3D"Sys.Extended.UI.SequenceAnimation" />,
    /// etc.).  It does not actually play the animations, so any classes =
that inherit from it must do so.  Any animation
    /// that requires nested child animations must inherit from this =
class, although it will likely want to inherit off of
    /// <see cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" /> or =
<see cref=3D"Sys.Extended.UI.SequenceAnimation" />
    /// which will actually play their child animations.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations to be played
    /// </param>
    /// <animation>Parent</animation>
    $AA.ParentAnimation.initializeBase(this, [target, duration, fps]);
   =20
    this._animations =3D [];
   =20
    if (animations && animations.length) {
        for (var i =3D 0; i < animations.length; i++) {
            this.add(animations[i]);
        }
    }
}
$AA.ParentAnimation.prototype =3D {
    initialize : function() {
    	/// <summary>
        /// Initialize the parent along with any child animations that =
have not yet been initialized themselves
    	/// </summary>
    	/// <returns />
        $AA.ParentAnimation.callBaseMethod(this, 'initialize');
       =20
        if (this._animations) {
            for (var i =3D 0; i < this._animations.length; i++) {
                var animation =3D this._animations[i];
                if (animation && !animation.get_isInitialized) {
                    animation.initialize();
                }
            }
        }
    },
   =20
    dispose : function() {
    	/// <summary>
        /// Dispose of the child animations
    	/// </summary>
    	/// <returns />

        this.clear();
        this._animations =3D null;
        $AA.ParentAnimation.callBaseMethod(this, 'dispose');
    },
   =20
    get_animations : function() {
    	/// <value elementType=3D"Sys.Extended.UI.Animation.Animation">
        /// Array of child animations to be played (there are no =
assumptions placed on order because it will matter for some
        /// derived animations like <see =
cref=3D"Sys.Extended.UI.Animation.SequenceAnimation" />, but not for
        /// others like <see =
cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" />).  To manipulate =
the child
        /// animations, use the functions <code>add</code>, =
<code>clear</code>, <code>remove</code>, and <code>removeAt</code>.
    	/// </value>
        return this._animations;
    },
   =20
    add : function(animation) {
    	/// <summary>
        /// Add an animation as a child of this animation.
    	/// </summary>
    	/// <param name=3D"animation" =
type=3D"Sys.Extended.UI.Animation.Animation">Child animation to =
add</param>
    	/// <returns />

        if (this._animations) {
            if (animation) {
                animation._parentAnimation =3D this;
            }
            Array.add(this._animations, animation);
            this.raisePropertyChanged('animations');
        }
    },
   =20
    remove : function(animation) {
        /// <summary>
        /// Remove the animation from the array of child animations.
        /// </summary>
        /// <param name=3D"animation" =
type=3D"Sys.Extended.UI.Animation.Animation">
        /// Child animation to remove
        /// </param>
        /// <returns />
        /// <remarks>
        /// This will dispose the removed animation.
        /// </remarks>

        if (this._animations) {
            if (animation) {
                animation.dispose();
            }
            Array.remove(this._animations, animation);
            this.raisePropertyChanged('animations');
        }
    },
   =20
    removeAt : function(index) {
        /// <summary>
        /// Remove the animation at a given index from the array of =
child animations.
        /// </summary>
        /// <param name=3D"index" type=3D"Number" integer=3D"true">
        /// Index of the child animation to remove
        /// </param>
        /// <returns />
       =20
        if (this._animations) {
            var animation =3D this._animations[index];
            if (animation) {
                animation.dispose();
            }
            Array.removeAt(this._animations, index);
            this.raisePropertyChanged('animations');
        }
    },
   =20
    clear : function() {
    	/// <summary>
        /// Clear the array of child animations.
    	/// </summary>
    	/// <remarks>
    	/// This will dispose the cleared child animations.
    	/// </remarks>
    	/// <returns />

        if (this._animations) {
            for (var i =3D this._animations.length - 1; i >=3D 0; i--) {
                this._animations[i].dispose();
                this._animations[i] =3D null;
            }
            Array.clear(this._animations);
            this._animations =3D [];
            this.raisePropertyChanged('animations');
        }
    }
}
$AA.ParentAnimation.registerClass('Sys.Extended.UI.Animation.ParentAnimat=
ion', $AA.Animation);
$AA.registerAnimation('parent', $AA.ParentAnimation);


$AA.ParallelAnimation =3D function(target, duration, fps, animations) {
    /// <summary>
    /// The <code>ParallelAnimation</code> plays several animations =
simultaneously.  It inherits from
    /// <see cref=3D"Sys.Extended.UI.Animation.ParentAnimation" />, but =
makes itself the owner of all
    /// its child animations to allow the use a single timer and =
syncrhonization mechanisms shared with
    /// all the children (in other words, the <code>duration</code> =
properties of any child animations
    /// are ignored in favor of the parent's <code>duration</code>).  It =
is very useful in creating
    /// sophisticated effects through combination of simpler animations.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations
    /// </param>
    /// <animation>Parallel</animation>
    $AA.ParallelAnimation.initializeBase(this, [target, duration, fps, =
animations]);
}
$AA.ParallelAnimation.prototype =3D {
    add : function(animation) {
    	/// <summary>
        /// Add an animation as a child of this animation and make =
ourselves its owner.
    	/// </summary>
    	/// <param name=3D"animation" =
type=3D"Sys.Extended.UI.Animation.Animation">Child animation to =
add</param>
    	/// <returns />
        $AA.ParallelAnimation.callBaseMethod(this, 'add', [animation]);
        animation.setOwner(this);
    },
   =20
    onStart : function() {
        /// <summary>
        /// Get the child animations ready to play
        /// </summary>
        /// <returns />

        $AA.ParallelAnimation.callBaseMethod(this, 'onStart');
        var animations =3D this.get_animations();
        for (var i =3D 0; i < animations.length; i++) {
            animations[i].onStart();
        }
    },
   =20
    onStep : function(percentage) {
        /// <summary>
        /// Progress the child animations through each frame
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage of the animation already complete
        /// </param>
        /// <returns />

        var animations =3D this.get_animations();
        for (var i =3D 0; i < animations.length; i++) {
            animations[i].onStep(percentage);
        }
    },
   =20
    onEnd : function() {
        /// <summary>
        /// Finish playing all of the child animations
        /// </summary>
        /// <returns />

        var animations =3D this.get_animations();
        for (var i =3D 0; i < animations.length; i++) {
            animations[i].onEnd();
        }
        $AA.ParallelAnimation.callBaseMethod(this, 'onEnd');
    }
}
$AA.ParallelAnimation.registerClass('Sys.Extended.UI.Animation.ParallelAn=
imation', $AA.ParentAnimation);
$AA.registerAnimation('parallel', $AA.ParallelAnimation);


$AA.SequenceAnimation =3D function(target, duration, fps, animations, =
iterations) {
    /// <summary>
    /// The <code>SequenceAnimation</code> runs several animations one =
after the other.  It can also
    /// repeat the sequence of animations for a specified number of =
iterations (which defaults to a
    /// single iteration, but will repeat forever if you specify zero or =
less iterations).  Also, the
    /// <code>SequenceAnimation</code> cannot be a child of a <see =
cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" />
    /// (or any animation inheriting from it).
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations
    /// </param>
    /// <param name=3D"iterations" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of times to repeatedly play the sequence.  If zero or =
less iterations are specified, the sequence
    /// will repeat forever.  The default value is 1 iteration.
    /// </param>
    /// <remarks>
    /// The <code>SequenceAnimation</code> ignores the =
<code>duration</code> and <code>fps</code>
    /// properties, and will let each of its child animations use any =
settings they please.
    /// </remarks>
    /// <animation>Sequence</animation>
    $AA.SequenceAnimation.initializeBase(this, [target, duration, fps, =
animations]);

    this._handler =3D null;
   =20
    this._paused =3D false;
    this._playing =3D false;
   =20
    this._index =3D 0;
   =20
    this._remainingIterations =3D 0;
   =20
    this._iterations =3D (iterations !=3D=3D undefined) ? iterations : =
1;
}
$AA.SequenceAnimation.prototype =3D {
    dispose : function() {
    	/// <summary>
        /// Dispose the animation
        /// </summary>
        /// <returns />
        this._handler =3D null;
        $AA.SequenceAnimation.callBaseMethod(this, 'dispose');
    },
   =20
    stop : function() {
        /// <summary>
        /// Stop playing the entire sequence of animations
        /// </summary>
        /// <returns />
        /// <remarks>
        /// Stopping this animation will perform the last step of each =
child animation, thereby leaving their
        /// target elements in a state consistent with the animation =
playing completely. If this animation is
        /// the child of another, you must call <code>stop</code> on its =
parent instead.
        /// </remarks>

        if (this._playing) {
            var animations =3D this.get_animations();
            if (this._index < animations.length) {
                animations[this._index].remove_ended(this._handler);
                for (var i =3D this._index; i < animations.length; i++) =
{
                    animations[i].stop();
                }
            }
            this._playing =3D false;
            this._paused =3D false;
            this.raisePropertyChanged('isPlaying');
            this.onEnd();
        }
    },
   =20
    pause : function() {
        /// <summary>
        /// Pause the animation if it is playing.  Calling =
<code>play</code> will resume where
        /// the animation left off.
        /// </summary>
        /// <returns />
        /// <remarks>
        /// If this animation is the child of another, you must call =
<code>pause</code> on its parent instead.
        /// </remarks>

        if (this.get_isPlaying()) {
            var current =3D this.get_animations()[this._index];
            if (current !=3D null) {
                current.pause();
            }
            this._paused =3D true;
            this.raisePropertyChanged('isPlaying');
        }
    },
   =20
    play : function() {
        /// <summary>
        /// Play the sequence of animations from the beginning or where =
it was left off when paused
        /// </summary>
        /// <returns />
        /// <remarks>
        /// If this animation is the child of another, you must call =
<code>play</code> on its parent instead
        /// </remarks>

        var animations =3D this.get_animations();
        if (!this._playing) {
            this._playing =3D true;
            if (this._paused) {
                this._paused =3D false;
                var current =3D animations[this._index];
                if (current !=3D null) {
                    current.play();
                    this.raisePropertyChanged('isPlaying');
                }
            } else {
                this.onStart();
                this._index =3D 0;
                var first =3D animations[this._index];
                if (first) {
                    first.add_ended(this._handler);
                    first.play();
                    this.raisePropertyChanged('isPlaying');
                } else {
                    this.stop();
                }
            }
        }
    },
   =20
    onStart : function() {
        /// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time
        /// </summary>
        /// <returns />
        $AA.SequenceAnimation.callBaseMethod(this, 'onStart');
        this._remainingIterations =3D this._iterations - 1;
       =20
        if (!this._handler) {
            this._handler =3D Function.createDelegate(this, =
this._onEndAnimation);
        }
    },
   =20
    _onEndAnimation : function() {
    	/// <summary>
        /// Wait for the end of each animation, and then continue by =
playing the other animations remaining
        /// in the sequence.  Stop when it reaches the last animation =
and there are no remaining iterations.
    	/// </summary>
    	/// <returns />

        var animations =3D this.get_animations();
        var current =3D animations[this._index++];
        if (current) {
            current.remove_ended(this._handler);
        }
       =20
        if (this._index < animations.length) {
            var next =3D animations[this._index];
            next.add_ended(this._handler);
            next.play();
        } else if (this._remainingIterations >=3D 1 || this._iterations =
<=3D 0) {
            this._remainingIterations--;
            this._index =3D 0;
            var first =3D animations[0];
            first.add_ended(this._handler);
            first.play();
        } else {
            this.stop();
        }
    },
   =20
    onStep : function(percentage) {
        /// <summary>
        /// Raises an invalid operation exception because this will only =
be called if a <code>SequenceAnimation</code>
        /// has been nested inside an <see =
cref=3D"Sys.Extended.UI.Animation.ParallelAnimation" /> (or a derived =
type).
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">Percentage of the =
animation already complete</param>
        /// <returns />
        throw =
Error.invalidOperation(Sys.Extended.UI.Resources.Animation_CannotNestSequ=
ence);
    },
   =20
    onEnd : function() {
        /// <summary>
        /// The <code>onEnd</code> method is called just after the =
animation is played each time.
        /// </summary>
        /// <returns />
        this._remainingIterations =3D 0;
        $AA.SequenceAnimation.callBaseMethod(this, 'onEnd');
    },
   =20
    get_isActive : function() {
    	/// <value type=3D"Boolean">
        /// <code>true</code> if animation is active, <code>false</code> =
if not.
        /// </value>
        return true;
    },
   =20
    get_isPlaying : function() {
    	/// <value type=3D"Boolean">
        /// <code>true</code> if animation is playing, =
<code>false</code> if not.
        /// </value>
        return this._playing && !this._paused;
    },
   =20
    get_iterations : function() {
        /// <value type=3D"Number" integer=3D"true">
        /// Number of times to repeatedly play the sequence.  If zero or =
less iterations are specified, the sequence
        /// will repeat forever.  The default value is 1 iteration.
        /// </value>
        return this._iterations;
    },
    set_iterations : function(value) {
        value =3D this._getInteger(value);
        if (this._iterations !=3D value) {
            this._iterations =3D value;
            this.raisePropertyChanged('iterations');
        }
    },
   =20
    get_isInfinite : function() {
    	/// <value type=3D"Boolean">
        /// <code>true</code> if this animation will repeat forever, =
<code>false</code> otherwise.
    	/// </value>
        return this._iterations <=3D 0;
    }
}
$AA.SequenceAnimation.registerClass('Sys.Extended.UI.Animation.SequenceAn=
imation', $AA.ParentAnimation);
$AA.registerAnimation('sequence', $AA.SequenceAnimation);


$AA.SelectionAnimation =3D function(target, duration, fps, animations) {
    /// <summary>
    /// The <code>SelectionAnimation</code> will run a single animation =
chosen from of its child animations. It is
    /// important to note that the <code>SelectionAnimation</code> =
ignores the <code>duration</code> and <code>fps</code>
    /// properties, and will let each of its child animations use any =
settings they please.  This is a base class with no
    /// functional implementation, so consider using <see =
cref=3D"Sys.Extended.UI.Animation.ConditionAnimation" /> or
    /// <see cref=3D"Sys.Extended.UI.Animation.CaseAnimation" /> =
instead.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations
    /// </param>
    /// <animation>Selection</animation>
    $AA.SelectionAnimation.initializeBase(this, [target, duration, fps, =
animations]);
   =20
    this._selectedIndex =3D -1;
   =20
    this._selected =3D null;
}
$AA.SelectionAnimation.prototype =3D {   =20
    getSelectedIndex : function() {
        /// <summary>
        /// Get the index of the animation that is selected to be =
played.  If this returns an index outside the bounds of
        /// the child animations array, then nothing is played.
        /// </summary>
        /// <returns type=3D"Number" integer=3D"true">
        /// Index of the selected child animation to play
        /// </returns>
        throw Error.notImplemented();
    },
   =20
    onStart : function() {
    	/// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />
	    $AA.SelectionAnimation.callBaseMethod(this, 'onStart');
	   =20
	    var animations =3D this.get_animations();
	    this._selectedIndex =3D this.getSelectedIndex();
	    if (this._selectedIndex >=3D 0 && this._selectedIndex < =
animations.length) {
	        this._selected =3D animations[this._selectedIndex];
	        if (this._selected) {
	            this._selected.setOwner(this);
	            this._selected.onStart();
	        }
	    }
    },
   =20
    onStep : function(percentage) {
    	/// <summary>
        /// The <code>onStep</code> method is called repeatedly to =
progress the animation through each frame
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">Percentage of the =
animation already complete</param>
        /// <returns />

        if (this._selected) {
    	    this._selected.onStep(percentage);
    	}
    },
   =20
    onEnd : function() {
    	/// <summary>
        /// The <code>onEnd</code> method is called just after the =
animation is played each time.
        /// </summary>
        /// <returns />

        if (this._selected) {
    	    this._selected.onEnd();
    	    this._selected.setOwner(null);
    	}
    	this._selected =3D null;
    	this._selectedIndex =3D null;
	    $AA.SelectionAnimation.callBaseMethod(this, 'onEnd');
    }
}
$AA.SelectionAnimation.registerClass('Sys.Extended.UI.Animation.Selection=
Animation', $AA.ParentAnimation);
$AA.registerAnimation('selection', $AA.SelectionAnimation);


$AA.ConditionAnimation =3D function(target, duration, fps, animations, =
conditionScript) {
    /// <summary>
    /// The <code>ConditionAnimation</code> is used as a control =
structure to play a specific child animation
    /// depending on the result of executing the =
<code>conditionScript</code>.  If the <code>conditionScript</code>
    /// evaluates to <code>true</code>, the first child animation is =
played.  If it evaluates to <code>false</code>,
    /// the second child animation is played (although nothing is played =
if a second animation is not present).
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations
    /// </param>
    /// <param name=3D"conditionScript" type=3D"String" =
mayBeNull=3D"true" optional=3D"true">
    /// JavaScript that should evaluate to <code>true</code> or =
<code>false</code> to determine which child
    /// animation to play.
    /// </param>
    /// <animation>Condition</animation>
    $AA.ConditionAnimation.initializeBase(this, [target, duration, fps, =
animations]);
   =20
    this._conditionScript =3D conditionScript;  =20
}
$AA.ConditionAnimation.prototype =3D {   =20
   getSelectedIndex : function() {
       /// <summary>
       /// Get the index of the animation that is selected to be played. =
 If this returns an index outside the bounds of
       /// the child animations array, then nothing is played.
       /// </summary>
       /// <returns type=3D"Number" integer=3D"true">
       /// Index of the selected child animation to play
       /// </returns>

        var selected =3D -1;
        if (this._conditionScript && this._conditionScript.length > 0) {
            try {
                selected =3D eval(this._conditionScript) ? 0 : 1;
            } catch(ex) {
            }
        }
        return selected;
    },
   =20
    get_conditionScript : function() {
    	/// <value type=3D"String">
        /// JavaScript that should evaluate to <code>true</code> or =
<code>false</code> to determine which
        /// child animation to play.
    	/// </value>
        return this._conditionScript;
    },
    set_conditionScript : function(value) {
        if (this._conditionScript !=3D value) {
            this._conditionScript =3D value;
            this.raisePropertyChanged('conditionScript');
        }
    }
}
$AA.ConditionAnimation.registerClass('Sys.Extended.UI.Animation.Condition=
Animation', $AA.SelectionAnimation);
$AA.registerAnimation('condition', $AA.ConditionAnimation);


$AA.CaseAnimation =3D function(target, duration, fps, animations, =
selectScript) {
    /// <summary>
    /// The <code>CaseAnimation</code> is used as a control structure to =
play a specific child animation depending on
    /// the result of executing the <code>selectScript</code>, which =
should return the index of the child animation to
    /// play (this is similar to the <code>case</code> or =
<code>select</code> statements in C#/VB, etc.).  If the provided
    /// index is outside the bounds of the child animations array (or if =
nothing was returned) then we will not play anything.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"animations" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" =
elementType=3D"Sys.Extended.UI.Animation.Animation">
    /// Array of child animations
    /// </param>
    /// <param name=3D"selectScript" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// JavaScript that should evaluate to the index of the appropriate =
child animation to play.  If this returns an index outside the bounds of =
the child animations array, then nothing is played.
    /// </param>
    /// <animation>Case</animation>
    $AA.CaseAnimation.initializeBase(this, [target, duration, fps, =
animations]);

    this._selectScript =3D selectScript;
}
$AA.CaseAnimation.prototype =3D {
    getSelectedIndex : function() {
        /// <summary>
        /// Get the index of the animation that is selected to be =
played.  If this returns an index outside the bounds of
        /// the child animations array, then nothing is played.
        /// </summary>
        /// <returns type=3D"Number" integer=3D"true">
        /// Index of the selected child animation to play
        /// </returns>

        var selected =3D -1;
        if (this._selectScript && this._selectScript.length > 0) {
            try {
                var result =3D eval(this._selectScript)
                if (result !=3D=3D undefined)
                    selected =3D result;
            } catch (ex) {
            }
        }
        return selected;
    },
   =20
    get_selectScript : function() {
        /// <value type=3D"String">
        /// JavaScript that should evaluate to the index of the =
appropriate child animation to play.  If this returns an index outside =
the bounds of the child animations array, then nothing is played.
        /// </value>
        return this._selectScript;
    },
    set_selectScript : function(value) {
        if (this._selectScript !=3D value) {
            this._selectScript =3D value;
            this.raisePropertyChanged('selectScript');
        }
    }
}
$AA.CaseAnimation.registerClass('Sys.Extended.UI.Animation.CaseAnimation'=
, $AA.SelectionAnimation);
$AA.registerAnimation('case', $AA.CaseAnimation);


$AA.FadeEffect =3D function() {
    /// <summary>
    /// The FadeEffect enumeration determines whether a fade animation =
is used to fade in or fade out.
    /// </summary>
    /// <field name=3D"FadeIn" type=3D"Number" integer=3D"true" />
    /// <field name=3D"FadeOut" type=3D"Number" integer=3D"true" />
    throw Error.invalidOperation();
}
$AA.FadeEffect.prototype =3D {
    FadeIn : 0,
    FadeOut : 1
}
$AA.FadeEffect.registerEnum("Sys.Extended.UI.Animation.FadeEffect", =
false);


$AA.FadeAnimation =3D function(target, duration, fps, effect, =
minimumOpacity, maximumOpacity, forceLayoutInIE) {
    /// <summary>
    /// The <code>FadeAnimation</code> is used to fade an element in or =
out of view, depending on the
    /// provided <see cref=3D"Sys.Extended.UI.Animation.FadeEffect" />, =
by settings its opacity.
    /// The minimum and maximum opacity values can be specified to =
precisely control the fade.
    /// You may also consider using <see =
cref=3D"Sys.Extended.UI.Animation.FadeInAnimation" /> or
    /// <see cref=3D"Sys.Extended.UI.Animation.FadeOutAnimation" /> if =
you know the only direction you
    /// are fading.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"effect" =
type=3D"Sys.Extended.UI.Animation.FadeEffect" mayBeNull=3D"true" =
optional=3D"true">
    /// Determine whether to fade the element in or fade the element =
out.  The possible values are <code>FadeIn</code>
    /// and <code>FadeOut</code>.  The default value is =
<code>FadeOut</code>.
    /// </param>
    /// <param name=3D"minimumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 0.
    /// </param>
    /// <param name=3D"maximumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 1.
    /// </param>
    /// <param name=3D"forceLayoutInIE" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true">
    /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
    /// background color (the latter is required in case the user has =
ClearType enabled). The default value is <code>true</code>.
    /// This is obviously ignored when working in other browsers.
    /// </param>
    /// <animation>Fade</animation>
    $AA.FadeAnimation.initializeBase(this, [target, duration, fps]);

    this._effect =3D (effect !=3D=3D undefined) ? effect : =
$AA.FadeEffect.FadeIn;
   =20
    this._max =3D (maximumOpacity !=3D=3D undefined) ? maximumOpacity : =
1;
    this._min =3D (minimumOpacity !=3D=3D undefined) ? minimumOpacity : =
0;
   =20
    this._start =3D this._min;
    this._end =3D this._max;
   =20
    this._layoutCreated =3D false;

    this._forceLayoutInIE =3D (forceLayoutInIE =3D=3D=3D undefined || =
forceLayoutInIE =3D=3D=3D null) ? true : forceLayoutInIE;
   =20
    this._currentTarget =3D null;

    this._resetOpacities(); =20
}
$AA.FadeAnimation.prototype =3D {
    _resetOpacities : function() {
    	/// <summary>
        /// Set the starting and ending opacity values based on the =
effect (i.e. when we're fading
        /// in we go from <code>_min</code> to <code>_max</code>, but we =
go <code>_max</code> to
        /// <code>_min</code> when fading out)
    	/// </summary>
    	/// <returns />

        if (this._effect =3D=3D $AA.FadeEffect.FadeIn) {
            this._start =3D this._min;
            this._end =3D this._max;
        } else {
            this._start =3D this._max;
            this._end =3D this._min;
        }
    },
   =20
    _createLayout : function() {
    	/// <summary>
        /// Create a layout when using Internet Explorer (which entails =
setting a width and also
        /// a background color if it currently has neither)
    	/// </summary>
    	/// <returns />

        var element =3D this._currentTarget;
        if (element) {
            this._originalWidth =3D $common.getCurrentStyle(element, =
'width');
            var originalHeight =3D $common.getCurrentStyle(element, =
'height');
            this._originalBackColor =3D $common.getCurrentStyle(element, =
'backgroundColor');

            if ((!this._originalWidth || this._originalWidth =3D=3D '' =
|| this._originalWidth =3D=3D 'auto') &&
                (!originalHeight || originalHeight =3D=3D '' || =
originalHeight =3D=3D 'auto')) {
                element.style.width =3D element.offsetWidth + 'px';
            }
           =20
            if (!this._originalBackColor || this._originalBackColor =
=3D=3D '' || this._originalBackColor =3D=3D 'transparent' || =
this._originalBackColor =3D=3D 'rgba(0, 0, 0, 0)') {
                element.style.backgroundColor =3D =
$common.getInheritedBackgroundColor(element);
            }
           =20
            this._layoutCreated =3D true;
        }
    },
   =20
    onStart : function() {
    	/// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />      =20
        $AA.FadeAnimation.callBaseMethod(this, 'onStart');
       =20
        this._currentTarget =3D this.get_target();
        this.setValue(this._start);
       =20
        if (this._forceLayoutInIE && !this._layoutCreated && =
Sys.Browser.agent =3D=3D Sys.Browser.InternetExplorer) {
            this._createLayout();
        }
    },
   =20
    getAnimatedValue : function(percentage) {
    	/// <summary>
        /// Determine the current opacity after the given percentage of =
its duration has elapsed
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">Percentage of the =
animation already complete</param>
        /// <returns type=3D"Number">
        /// Current opacity after the given percentage of its duration =
has elapsed that will
        /// be passed to <code>setValue</code>
        /// </returns>
        return this.interpolate(this._start, this._end, percentage);
    },
   =20
    setValue : function(value) {
        /// <summary>
        /// Set the current opacity of the element.
        /// </summary>
        /// <param name=3D"value" type=3D"Number">
        /// Current opacity (as retreived from =
<code>getAnimatedValue</code>)
        /// </param>
        /// <returns />
        /// <remarks>
        /// This method will be replaced by a dynamically generated =
function that requires no logic
        /// to determine whether it should use filters or the style's =
opacity.
        /// </remarks>
        if (this._currentTarget) {
            $common.setElementOpacity(this._currentTarget, value);
        }
    },
   =20
   =20
    get_effect : function() {
    	/// <value type=3D"Sys.Extended.UI.Animation.FadeEffect">
        /// Determine whether to fade the element in or fade the element =
out.  The possible values are
        /// <code>FadeIn</code> and <code>FadeOut</code>.  The default =
value is <code>FadeOut</code>.
    	/// </value>
        return this._effect;
    },
    set_effect : function(value) {
        value =3D this._getEnum(value, $AA.FadeEffect);
        if (this._effect !=3D value) {
            this._effect =3D value;
            this._resetOpacities();
            this.raisePropertyChanged('effect');
        }
    },
   =20
    get_minimumOpacity : function() {
        /// <value type=3D"Number">
        /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1.
        /// The default value is 0.
        /// </value>
	    return this._min;
    },
    set_minimumOpacity : function(value) {
        value =3D this._getFloat(value);
        if (this._min !=3D value) {
            this._min =3D value;
            this._resetOpacities();
            this.raisePropertyChanged('minimumOpacity');
        }
    },
   =20
    get_maximumOpacity : function() {
        /// <value type=3D"Number">
        /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1.
        /// The default value is 1.
        /// </value>
        return this._max;
    },
    set_maximumOpacity : function(value) {
        value =3D this._getFloat(value);
        if (this._max !=3D value) {
            this._max =3D value;
            this._resetOpacities();
            this.raisePropertyChanged('maximumOpacity');
        }
    },
   =20
    get_forceLayoutInIE : function() {
        /// <value type=3D"Boolean">
        /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
        /// background color (the latter is required in case the user =
has ClearType enabled). The default value is <code>true</code>.
        /// This is obviously ignored when working in other browsers.
        /// </value>
        return this._forceLayoutInIE;
    },
    set_forceLayoutInIE : function(value) {
        value =3D this._getBoolean(value);
        if (this._forceLayoutInIE !=3D value) {
            this._forceLayoutInIE =3D value;
            this.raisePropertyChanged('forceLayoutInIE');
        }
    },
   =20
    set_startValue : function(value) {
        /// <value type=3D"Number">
        /// Set the start value (so that child animations can set the =
current opacity as the start value when fading in or out)
        /// </value>
        value =3D this._getFloat(value);
        this._start =3D value;
    }
}
$AA.FadeAnimation.registerClass('Sys.Extended.UI.Animation.FadeAnimation'=
, $AA.Animation);
$AA.registerAnimation('fade', $AA.FadeAnimation);


$AA.FadeInAnimation =3D function(target, duration, fps, minimumOpacity, =
maximumOpacity, forceLayoutInIE) {
    /// <summary>
    /// The <code>FadeInAnimation</code> will fade the target in by =
moving from hidden to visible.
    /// It starts the animation the target's current opacity.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"minimumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 0.
    /// </param>
    /// <param name=3D"maximumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 1.
    /// </param>
    /// <param name=3D"forceLayoutInIE" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true">
    /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
    /// background color (the latter is required in case the user has =
ClearType enabled). The default value is <code>true</code>.
    /// This is obviously ignored when working in other browsers.
    /// </param>
    /// <animation>FadeIn</animation>
    $AA.FadeInAnimation.initializeBase(this, [target, duration, fps, =
$AA.FadeEffect.FadeIn, minimumOpacity, maximumOpacity, =
forceLayoutInIE]);
}
$AA.FadeInAnimation.prototype =3D {
    onStart : function() {
    	/// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />
        $AA.FadeInAnimation.callBaseMethod(this, 'onStart');
       =20
        if (this._currentTarget) {
            =
this.set_startValue($common.getElementOpacity(this._currentTarget));
        }
    }
}
$AA.FadeInAnimation.registerClass('Sys.Extended.UI.Animation.FadeInAnimat=
ion', $AA.FadeAnimation);
$AA.registerAnimation('fadeIn', $AA.FadeInAnimation);


$AA.FadeOutAnimation =3D function(target, duration, fps, minimumOpacity, =
maximumOpacity, forceLayoutInIE) {
    /// <summary>
    /// The FadeInAnimation will fade the element out by moving from =
visible to hidden. It starts the animation
    /// at the element's current opacity.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"minimumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 0.
    /// </param>
    /// <param name=3D"maximumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 1.
    /// </param>
    /// <param name=3D"forceLayoutInIE" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true">
    /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
    /// background color (the latter is required in case the user has =
ClearType enabled). The default value is <code>true</code>.
    /// This is obviously ignored when working in other browsers.
    /// </param>
    /// <animation>FadeOut</animation>
    $AA.FadeOutAnimation.initializeBase(this, [target, duration, fps, =
$AA.FadeEffect.FadeOut, minimumOpacity, maximumOpacity, =
forceLayoutInIE]);
}
$AA.FadeOutAnimation.prototype =3D {
    onStart : function() {
    	/// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />
        $AA.FadeOutAnimation.callBaseMethod(this, 'onStart');

        if (this._currentTarget) {
            =
this.set_startValue($common.getElementOpacity(this._currentTarget));
        }
    }
}
$AA.FadeOutAnimation.registerClass('Sys.Extended.UI.Animation.FadeOutAnim=
ation', $AA.FadeAnimation);
$AA.registerAnimation('fadeOut', $AA.FadeOutAnimation);


$AA.PulseAnimation =3D function(target, duration, fps, iterations, =
minimumOpacity, maximumOpacity, forceLayoutInIE) {
    /// <summary>
    /// The PulseAnimation fades an element in and our repeatedly to =
create a pulsating
    /// effect.  The iterations determines how many pulses there will be =
(which defaults
    /// to three, but it will repeat infinitely if given zero or less).  =
The duration
    /// property defines the duration of each fade in or fade out, not =
the duration of
    /// the animation as a whole.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"iterations" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of times to repeatedly play the sequence.  If zero or =
less iterations are specified, the sequence
    /// will repeat forever.  The default value is 1 iteration.
    /// </param>
    /// <param name=3D"minimumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 0.
    /// </param>
    /// <param name=3D"maximumOpacity" type=3D"Number" =
mayBeNull=3D"true" optional=3D"true">
    /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 1.
    /// </param>
    /// <param name=3D"forceLayoutInIE" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true">
    /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
    /// background color (the latter is required in case the user has =
ClearType enabled). The default value is <code>true</code>.
    /// This is obviously ignored when working in other browsers.
    /// </param>
    /// <animation>Pulse</animation>
    $AA.PulseAnimation.initializeBase(this, [target, duration, fps, =
null, ((iterations !=3D=3D undefined) ? iterations : 3)]);

    this._out =3D new $AA.FadeOutAnimation(target, duration, fps, =
minimumOpacity, maximumOpacity, forceLayoutInIE);
    this.add(this._out);
   =20
    this._in =3D new $AA.FadeInAnimation(target, duration, fps, =
minimumOpacity, maximumOpacity, forceLayoutInIE);
    this.add(this._in);
}
$AA.PulseAnimation.prototype =3D {
  =20
    get_minimumOpacity : function() {
        /// <value type=3D"Number">
        /// Minimum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 0.
        /// </value>
        return this._out.get_minimumOpacity();
    },
    set_minimumOpacity : function(value) {
        value =3D this._getFloat(value);
        this._out.set_minimumOpacity(value);
        this._in.set_minimumOpacity(value);
        this.raisePropertyChanged('minimumOpacity');
    },
   =20
    get_maximumOpacity : function() {
        /// <value type=3D"Number">
        /// Maximum opacity to use when fading in or out. Its value can =
range from between 0 to 1. The default value is 1.
        /// </value>
        return this._out.get_maximumOpacity();
    },
    set_maximumOpacity : function(value) {
        value =3D this._getFloat(value);
        this._out.set_maximumOpacity(value);
        this._in.set_maximumOpacity(value);
        this.raisePropertyChanged('maximumOpacity');
    },
   =20
    get_forceLayoutInIE : function() {
        /// <value type=3D"Boolean">
        /// Whether or not we should force a layout to be created for =
Internet Explorer by giving it a width and setting its
        /// background color (the latter is required in case the user =
has ClearType enabled). The default value is <code>true</code>.
        /// This is obviously ignored when working in other browsers.
        /// </value>
        return this._out.get_forceLayoutInIE();
    },
    set_forceLayoutInIE : function(value) {
        value =3D this._getBoolean(value);
        this._out.set_forceLayoutInIE(value);
        this._in.set_forceLayoutInIE(value);
        this.raisePropertyChanged('forceLayoutInIE');
    },
   =20
    set_duration : function(value) {
        /// <value type=3D"Number">
        /// Override the <code>duration</code> property
        /// </value>
        value =3D this._getFloat(value);
        $AA.PulseAnimation.callBaseMethod(this, 'set_duration', =
[value]);
        this._in.set_duration(value);
        this._out.set_duration(value);
    },
   =20
    set_fps : function(value) {
        /// <value type=3D"Number" integer=3D"true">
        /// Override the <code>fps</code> property
        /// </value>
        value =3D this._getInteger(value);
        $AA.PulseAnimation.callBaseMethod(this, 'set_fps', [value]);
        this._in.set_fps(value);
        this._out.set_fps(value);
    }
   =20
}
$AA.PulseAnimation.registerClass('Sys.Extended.UI.Animation.PulseAnimatio=
n', $AA.SequenceAnimation);
$AA.registerAnimation('pulse', $AA.PulseAnimation);


$AA.PropertyAnimation =3D function(target, duration, fps, property, =
propertyKey) {
    /// <summary>
    /// The <code>PropertyAnimation</code> is a useful base animation =
that will assign the value from
    /// <code>getAnimatedValue</code> to a specified =
<code>property</code>. You can provide the name of
    /// a <code>property</code> alongside an optional =
<code>propertyKey</code> (which indicates the value
    /// <code>property[propertyKey]</code>, like =
<code>style['backgroundColor']</code>).
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"property" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Property of the <code>target</code> element to set when =
animating
    /// </param>
    /// <param name=3D"propertyKey" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
    /// </param>
    /// <animation>Property</animation>
    $AA.PropertyAnimation.initializeBase(this, [target, duration, fps]);

    this._property =3D property;
   =20
    this._propertyKey =3D propertyKey;
   =20
    this._currentTarget =3D null;
}
$AA.PropertyAnimation.prototype =3D {
    onStart : function() {
    	/// <summary>
        /// The <code>onStart</code> method is called just before the =
animation is played each time.
        /// </summary>
        /// <returns />
        $AA.PropertyAnimation.callBaseMethod(this, 'onStart');

        this._currentTarget =3D this.get_target();
    },

    setValue : function(value) {
        /// <summary>
        /// Set the current value of the property
        /// </summary>
        /// <param name=3D"value" type=3D"Object" mayBeNull=3D"true">
        /// Value to assign
        /// </param>
        /// <returns />

        var element =3D this._currentTarget;
        if (element && this._property && this._property.length > 0) {=20
            if (this._propertyKey && this._propertyKey.length > 0 && =
element[this._property]) {
                element[this._property][this._propertyKey] =3D value;
            } else {
                element[this._property] =3D value;
            }
        }
    },
   =20
    getValue : function() {
        /// <summary>
        /// Get the current value from the property
        /// </summary>
        /// <returns type=3D"Object" mayBeNull=3D"true">
        /// Current value of the property
        /// </returns>

        var element =3D this.get_target();
        if (element && this._property && this._property.length > 0) {=20
            var property =3D element[this._property];
            if (property) {
                if (this._propertyKey && this._propertyKey.length > 0) {
                    return property[this._propertyKey];
                }
                return property;
            }
        }
        return null;
    },
   =20
    get_property : function() {
        /// <value type=3D"String">
        /// Property of the <code>target</code> element to set when =
animating
        /// </value>
        return this._property;
    },
    set_property : function(value) {
        if (this._property !=3D value) {
            this._property =3D value;
            this.raisePropertyChanged('property');
        }
    },
   =20
    get_propertyKey : function() {
        /// <value type=3D"String" mayBeNull=3D"true" optional=3D"true">
        /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
        /// </value>
        return this._propertyKey;
    },
    set_propertyKey : function(value) {
        if (this._propertyKey !=3D value) {
            this._propertyKey =3D value;
            this.raisePropertyChanged('propertyKey');
        }
    }
}
$AA.PropertyAnimation.registerClass('Sys.Extended.UI.Animation.PropertyAn=
imation', $AA.Animation);
$AA.registerAnimation('property', $AA.PropertyAnimation);


$AA.DiscreteAnimation =3D function(target, duration, fps, property, =
propertyKey, values) {
    /// <summary>
    /// The <code>DiscreteAnimation</code> inherits from <see =
cref=3D"Sys.Extended.UI.Animation.PropertyAnimation" />
    /// and sets the value of the <code>property</code> to the elements =
in a provided array of <code>values</code>.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"property" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Property of the <code>target</code> element to set when =
animating
    /// </param>
    /// <param name=3D"propertyKey" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
    /// </param>
    /// <param name=3D"values" mayBeNull=3D"true" optional=3D"true" =
parameterArray=3D"true" elementType=3D"Object">
    /// Array of possible values of the property that will be iterated =
over as the animation is played
    /// </param>
    /// <animation>Discrete</animation>
    $AA.DiscreteAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey]);

    this._values =3D (values && values.length) ? values : [];
}
$AA.DiscreteAnimation.prototype =3D {
    getAnimatedValue : function(percentage) {
        /// <summary>
        /// Assign the value whose index corresponds to the current =
percentage
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage of the animation already complete
        /// </param>
        /// <returns type=3D"Object">
        /// State of the animation after the given percentage of its =
duration has elapsed that will
        /// be passed to <code>setValue</code>
        /// </returns>
        var index =3D Math.floor(this.interpolate(0, this._values.length =
- 1, percentage));
        return this._values[index];
    },
   =20
    get_values : function() {
        /// <value parameterArray=3D"true" elementType=3D"Object">
        /// Array of possible values of the property that will be =
iterated over as the animation is played
        /// </value>
        return this._values;
    },
    set_values : function(value) {
        if (this._values !=3D value) {
            this._values =3D value;
            this.raisePropertyChanged('values');
        }
    }
}
$AA.DiscreteAnimation.registerClass('Sys.Extended.UI.Animation.DiscreteAn=
imation', $AA.PropertyAnimation);
$AA.registerAnimation('discrete', $AA.DiscreteAnimation);


$AA.InterpolatedAnimation =3D function(target, duration, fps, property, =
propertyKey, startValue, endValue) {
    /// <summary>
    /// The <code>InterpolatedAnimation</code> assigns a range of values =
between <code>startValue</code>
    /// and <code>endValue</code> to the designated property.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"property" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Property of the <code>target</code> element to set when =
animating.  The default value is 'style'.
    /// </param>
    /// <param name=3D"propertyKey" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
    /// </param>
    /// <param name=3D"startValue" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Start of the range of values
    /// </param>
    /// <param name=3D"endValue" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// End of the range of values
    /// </param>
    /// <animation>Interpolated</animation>
    $AA.InterpolatedAnimation.initializeBase(this, [target, duration, =
fps, ((property !=3D=3D undefined) ? property : 'style'), propertyKey]);

    this._startValue =3D startValue;
    this._endValue =3D endValue;
}
$AA.InterpolatedAnimation.prototype =3D {
    get_startValue : function() {
        /// <value type=3D"Number">
        /// Start of the range of values
        /// </value>
        return this._startValue;
    },
    set_startValue : function(value) {
        value =3D this._getFloat(value);
        if (this._startValue !=3D value) {
            this._startValue =3D value;
            this.raisePropertyChanged('startValue');
        }
    },
   =20
    get_endValue : function() {
        /// <value type=3D"Number">
        /// End of the range of values
        /// </value>
        return this._endValue;
    },
    set_endValue : function(value) {
        value =3D this._getFloat(value);
        if (this._endValue !=3D value) {
            this._endValue =3D value;
            this.raisePropertyChanged('endValue');
        }
    }  =20
}
$AA.InterpolatedAnimation.registerClass('Sys.Extended.UI.Animation.Interp=
olatedAnimation', $AA.PropertyAnimation);
$AA.registerAnimation('interpolated', $AA.InterpolatedAnimation);


$AA.ColorAnimation =3D function(target, duration, fps, property, =
propertyKey, startValue, endValue) {
    /// <summary>
    /// The <code>ColorAnimation</code> transitions the value of the =
<code>property</code> between
    /// two colors (although it does ignore the alpha channel). The =
colors must be 7-character hex strings
    /// (like <code>#246ACF</code>).
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"property" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Property of the <code>target</code> element to set when =
animating.  The default value is 'style'.
    /// </param>
    /// <param name=3D"propertyKey" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
    /// </param>
    /// <param name=3D"startValue" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Start of the range of colors
    /// </param>
    /// <param name=3D"endValue" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// End of the range of colors
    /// </param>
    /// <animation>Color</animation>
    $AA.ColorAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey, startValue, endValue]);
   =20
    this._start =3D null;
    this._end =3D null;
   =20
    this._interpolateRed =3D false;
    this._interpolateGreen =3D false;
    this._interpolateBlue =3D false;
}
$AA.ColorAnimation.prototype =3D {
    onStart : function() {
        /// <summary>
        /// Determine which dimensions of color will be animated
        /// </summary>
        /// <returns />
        $AA.ColorAnimation.callBaseMethod(this, 'onStart');
      =20
        this._start =3D =
$AA.ColorAnimation.getRGB(this.get_startValue());
        this._end =3D $AA.ColorAnimation.getRGB(this.get_endValue());
       =20
        this._interpolateRed =3D (this._start.Red !=3D this._end.Red);
        this._interpolateGreen =3D (this._start.Green !=3D =
this._end.Green);
        this._interpolateBlue =3D (this._start.Blue !=3D =
this._end.Blue);
    },
   =20
    getAnimatedValue : function(percentage) {
        /// <summary>
        /// Get the interpolated color values
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage of the animation already complete
        /// </param>
        /// <returns type=3D"String">
        /// Current color formatted as a 7-character hex string (like =
<code>#246ACF</code>).
        /// </returns>

        var r =3D this._start.Red;
        var g =3D this._start.Green;
        var b =3D this._start.Blue;
       =20
        if (this._interpolateRed)
            r =3D Math.round(this.interpolate(r, this._end.Red, =
percentage));
       =20
        if (this._interpolateGreen)
            g =3D Math.round(this.interpolate(g, this._end.Green, =
percentage));
       =20
        if (this._interpolateBlue)
            b =3D Math.round(this.interpolate(b, this._end.Blue, =
percentage));
       =20
        return $AA.ColorAnimation.toColor(r, g, b);
    },
   =20
    set_startValue : function(value) {
        /// <value type=3D"String">
        /// Starting color of the transition formatted as a 7-character =
hex string (like <code>#246ACF</code>).
        /// </value>

        if (this._startValue !=3D value) {
            this._startValue =3D value;
            this.raisePropertyChanged('startValue');
        }
    },
   =20
    set_endValue : function(value) {
        /// <value type=3D"String">
        /// Ending color of the transition formatted as a 7-character =
hex string (like <code>#246ACF</code>).
        /// </value>

        if (this._endValue !=3D value) {
            this._endValue =3D value;
            this.raisePropertyChanged('endValue');
        }
    }  =20
}
$AA.ColorAnimation.getRGB =3D function(color) {
    /// <summary>
    /// Convert the color to an RGB triplet
    /// </summary>
    /// <param name=3D"color" type=3D"String">
    /// Color formatted as a 7-character hex string (like =
<code>#246ACF</code>)
    /// </param>
    /// <returns type=3D"Object">
    /// Object representing the color with <code>Red</code>, =
<code>Green</code>, and <code>Blue</code> properties.
    /// </returns>

    if (!color || color.length !=3D 7) {
        throw =
String.format(Sys.Extended.UI.Resources.Animation_InvalidColor, color);
    }
    return { 'Red': parseInt(color.substr(1,2), 16),
             'Green': parseInt(color.substr(3,2), 16),
             'Blue': parseInt(color.substr(5,2), 16) };
}
$AA.ColorAnimation.toColor =3D function(red, green, blue) {
    /// <summary>
    /// Convert an RBG triplet into a 7-character hex string (like =
<code>#246ACF</code>)
    /// </summary>
    /// <param name=3D"red" type=3D"Number" integer=3D"true">
    /// Value of the color's red dimension
    /// </param>
    /// <param name=3D"green" type=3D"Number" integer=3D"true">
    /// Value of the color's green dimension
    /// </param>
    /// <param name=3D"blue" type=3D"Number" integer=3D"true">
    /// Value of the color's blue dimension
    /// </param>
    /// <returns type=3D"String">
    /// Color as a 7-character hex string (like <code>#246ACF</code>)
    /// </returns>

    var r =3D red.toString(16);
    var g =3D green.toString(16);
    var b =3D blue.toString(16);
    if (r.length =3D=3D 1) r =3D '0' + r;
    if (g.length =3D=3D 1) g =3D '0' + g;
    if (b.length =3D=3D 1) b =3D '0' + b;
    return '#' + r + g + b;
}
$AA.ColorAnimation.registerClass('Sys.Extended.UI.Animation.ColorAnimatio=
n', $AA.InterpolatedAnimation);
$AA.registerAnimation('color', $AA.ColorAnimation);


$AA.LengthAnimation =3D function(target, duration, fps, property, =
propertyKey, startValue, endValue, unit) {
    /// <summary>
    /// The <code>LengthAnimation</code> is identical to <see =
cref=3D"Sys.Extended.UI.Animation.InterpolatedAnimation" />
    /// except it adds a <code>unit</code> to the value before assigning =
it to the <code>property</code>.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"property" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Property of the <code>target</code> element to set when =
animating.  The default value is 'style'.
    /// </param>
    /// <param name=3D"propertyKey" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Optional key of the property to be set (which indicates the =
value property[propertyKey], like style['backgroundColor']). Note that =
for the style property, the key must be in a JavaScript friendly format =
(i.e. backgroundColor instead of background-color).
    /// </param>
    /// <param name=3D"startValue" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Start of the range of values
    /// </param>
    /// <param name=3D"endValue" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// End of the range of values
    /// </param>
    /// <param name=3D"unit" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Unit of the interpolated values.  The default value is =
<code>'px'</code>.
    /// </param>
    /// <animation>Length</animation>
    $AA.LengthAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey, startValue, endValue]);
   =20
    this._unit =3D (unit !=3D null) ? unit : 'px';
}
$AA.LengthAnimation.prototype =3D {

    getAnimatedValue : function(percentage) {
        /// <summary>
        /// Get the interpolated length value
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage of the animation already complete
        /// </param>
        /// <returns type=3D"String">
        /// Interpolated length
        /// </returns>

        var value =3D this.interpolate(this.get_startValue(), =
this.get_endValue(), percentage);
        return Math.round(value) + this._unit;
    },
   =20
    get_unit : function() {
        /// <value type=3D"String">
        /// Unit of the interpolated values.  The default value is =
<code>'px'</code>.
        /// </value>
        return this._unit;
    },
    set_unit : function(value) {
        if (this._unit !=3D value) {
            this._unit =3D value;
            this.raisePropertyChanged('unit');
        }
    }
}
$AA.LengthAnimation.registerClass('Sys.Extended.UI.Animation.LengthAnimat=
ion', $AA.InterpolatedAnimation);
$AA.registerAnimation('length', $AA.LengthAnimation);


$AA.MoveAnimation =3D function(target, duration, fps, horizontal, =
vertical, relative, unit) {
    /// <summary>
    /// The <code>MoveAnimation</code> is used to move the =
<code>target</code> element. If the
    /// <code>relative</code> flag is set to <code>true</code>, then it =
treats the <code>horizontal</code>
    /// and <code>vertical</code> properties as offsets to move the =
element. If the <code>relative</code>
    /// flag is <code>false</code>, then it will treat the =
<code>horizontal</code> and <code>vertical</code>
    /// properties as coordinates on the page where the =
<code>target</code> element should be moved. It is
    /// important to note that the <code>target</code> must be =
positioned (i.e. <code>absolutely</code>) so
    /// that settings its <code>top</code>/<code>left<code> style =
attributes will change its location.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"horizontal" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// If <code>relative</code>  is <code>true</code>, this is the =
offset to move horizontally. Otherwise this is the x
    /// coordinate on the page where the <code>target</code> should be =
moved.
    /// </param>
    /// <param name=3D"vertical" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// If <code>relative</code> is <code>true</code>, this is the =
offset to move vertically. Otherwise this is the y
    /// coordinate on the page where the <code>target</code> should be =
moved.
    /// </param>
    /// <param name=3D"relative" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
    /// <code>true</code> if we are moving relative to the current =
position, <code>false</code> if we are moving absolutely
    /// </param>
    /// <param name=3D"unit" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Length unit for the size of the <code>target</code>. The default =
value is <code>'px'</code>.
    /// </param>
    /// <animation>Move</animation>
    $AA.MoveAnimation.initializeBase(this, [target, duration, fps, =
null]);

    this._horizontal =3D horizontal ? horizontal : 0;
    this._vertical =3D vertical ? vertical : 0;
    this._relative =3D (relative =3D=3D=3D undefined) ? true : relative;
   =20
    this._horizontalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'left', null, null, unit);
    this._verticalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'top', null, null, unit);
    this.add(this._verticalAnimation);
    this.add(this._horizontalAnimation);
}
$AA.MoveAnimation.prototype =3D {
   =20
    onStart : function() {
        /// <summary>
        /// Use the <code>target</code>'s current position as the =
starting point for the animation
        /// </summary>
        /// <returns />
        $AA.MoveAnimation.callBaseMethod(this, 'onStart');
       =20
        var element =3D this.get_target();
        this._horizontalAnimation.set_startValue(element.offsetLeft);
        this._horizontalAnimation.set_endValue(this._relative ? =
element.offsetLeft + this._horizontal : this._horizontal);
        this._verticalAnimation.set_startValue(element.offsetTop);=20
        this._verticalAnimation.set_endValue(this._relative ? =
element.offsetTop + this._vertical : this._vertical);
    },
   =20
    get_horizontal : function() {
        /// <value type=3D"Number">
        /// If <code>relative</code>  is <code>true</code>, this is the =
offset to move horizontally. Otherwise this is the x
        /// coordinate on the page where the <code>target</code> should =
be moved.
        /// </value>
        return this._horizontal;
    },
    set_horizontal : function(value) {
        value =3D this._getFloat(value);
        if (this._horizontal !=3D value) {
            this._horizontal =3D value;
            this.raisePropertyChanged('horizontal');
        }
    },
   =20
    get_vertical : function() {
        /// <value type=3D"Number">
        /// If <code>relative</code> is <code>true</code>, this is the =
offset to move vertically. Otherwise this is the y
        /// coordinate on the page where the <code>target</code> should =
be moved.
        /// </value>
        return this._vertical;
    },
    set_vertical : function(value) {
        value =3D this._getFloat(value);
        if (this._vertical !=3D value) {
            this._vertical =3D value;
            this.raisePropertyChanged('vertical');
        }
    },
   =20
    get_relative : function() {
        /// <value type=3D"Boolean">
        /// <code>true</code> if we are moving relative to the current =
position, <code>false</code> if we are moving absolutely
        /// </value>
        return this._relative;
    },
    set_relative : function(value) {
        value =3D this._getBoolean(value);
        if (this._relative !=3D value) {
            this._relative =3D value;
            this.raisePropertyChanged('relative');
        }
    },
   =20
    get_unit : function() {
        /// <value type=3D"String" mayBeNull=3D"true">
        /// Length unit for the size of the <code>target</code>. The =
default value is <code>'px'</code>.
        /// </value>
        this._horizontalAnimation.get_unit();
    },
    set_unit : function(value) {
        var unit =3D this._horizontalAnimation.get_unit();
        if (unit !=3D value) {
            this._horizontalAnimation.set_unit(value);
            this._verticalAnimation.set_unit(value);
            this.raisePropertyChanged('unit');
        }
    }
}
$AA.MoveAnimation.registerClass('Sys.Extended.UI.Animation.MoveAnimation'=
, $AA.ParallelAnimation);
$AA.registerAnimation('move', $AA.MoveAnimation);


$AA.ResizeAnimation =3D function(target, duration, fps, width, height, =
unit) {
    /// <summary>
    /// The <code>ResizeAnimation</code> changes the size of the =
<code>target</code> from its
    /// current value to the specified <code>width</code> and =
<code>height</code>.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"width" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// New width of the <code>target</code>
    /// </param>
    /// <param name=3D"height" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// New height of the <code>target</code>
    /// </param>
    /// <param name=3D"unit" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Length unit for the size of the <code>target</code>. The default =
value is <code>'px'</code>.
    /// </param>
    /// <animation>Resize</animation>
    $AA.ResizeAnimation.initializeBase(this, [target, duration, fps, =
null]);

    this._width =3D width;
    this._height =3D height;
   =20
    this._horizontalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'width', null, null, unit);
    this._verticalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'height', null, null, unit);
    this.add(this._horizontalAnimation);
    this.add(this._verticalAnimation);
}
$AA.ResizeAnimation.prototype =3D {
   =20
    onStart : function() {
        /// <summary>
        /// Use the <code>target</code>'s current size as the starting =
point for the animation
        /// </summary>
        /// <returns />

        $AA.ResizeAnimation.callBaseMethod(this, 'onStart');
       =20
        var element =3D this.get_target();
        this._horizontalAnimation.set_startValue(element.offsetWidth);
        this._verticalAnimation.set_startValue(element.offsetHeight);
        this._horizontalAnimation.set_endValue((this._width !=3D=3D null =
&& this._width !=3D=3D undefined) ?
            this._width : element.offsetWidth);
        this._verticalAnimation.set_endValue((this._height !=3D=3D null =
&& this._height !=3D=3D undefined) ?
            this._height : element.offsetHeight);
    },
   =20
    get_width : function() {
        /// <value type=3D"Number">
        /// New width of the <code>target</code>
        /// </value>

        return this._width;
    },
    set_width : function(value) {
        value =3D this._getFloat(value);
        if (this._width !=3D value) {
            this._width =3D value;
            this.raisePropertyChanged('width');
        }
    },
   =20
    get_height : function() {
        /// <value type=3D"Number">
        /// New height of the <code>target</code>
        /// </value>

        return this._height;
    },
    set_height : function(value) {
        value =3D this._getFloat(value);
        if (this._height !=3D value) {
            this._height =3D value;  =20
            this.raisePropertyChanged('height');
        }
    },
   =20
    get_unit : function() {
        /// <value type=3D"String">
        /// Length unit for the size of the <code>target</code>. The =
default value is <code>'px'</code>.
        /// </value>

        this._horizontalAnimation.get_unit();
    },
    set_unit : function(value) {
        var unit =3D this._horizontalAnimation.get_unit();
        if (unit !=3D value) {
            this._horizontalAnimation.set_unit(value);
            this._verticalAnimation.set_unit(value);
            this.raisePropertyChanged('unit');
        }
    }
}
$AA.ResizeAnimation.registerClass('Sys.Extended.UI.Animation.ResizeAnimat=
ion', $AA.ParallelAnimation);
$AA.registerAnimation('resize', $AA.ResizeAnimation);









$AA.ScaleAnimation =3D function(target, duration, fps, scaleFactor, =
unit, center, scaleFont, fontUnit) {
    /// <summary>
    /// The <code>ScaleAnimation</code> scales the size of the =
<code>target</code> element by the given <code>scaleFactor</code>
    /// (i.e. a <code>scaleFactor</code> of <code>.5</code> will shrink =
it in half and a <code>scaleFactor</code> of <code>2.0</code>
    /// will double it).  If <code>scaleFont</code> is =
<code>true</code>, the size of the font will also scale with the =
element.  If
    /// <code>center</code> is <code>true</code>, then the element's =
center will not move as it is scaled.  It is important to note that
    /// the target must be positioned (i.e. absolutely) so that setting =
its <code>top</code>/<code>left</code> properties will change
    /// its location in order for <code>center</code> to have an effect.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 1.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"scaleFactor" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// The amount to scale the <code>target</code> (a =
<code>scaleFactor</code> of <code>.5</code> will
    /// shrink it in half and a <code>scaleFactor</code> of =
<code>2.0</code> will double it). The default value is
    /// <code>1</code>, which does no scaling.
    /// </param>
    /// <param name=3D"unit" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Length unit for the size of the <code>target</code>.  The =
default value is <code>'px'</code>.
    /// </param>
    /// <param name=3D"center" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
    /// Whether the <code>target</code> should stay centered while =
scaling
    /// </param>
    /// <param name=3D"scaleFont" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
    /// Whether the font should be scaled along with the size
    /// </param>
    /// <param name=3D"fontUnit" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Unit of the font, which is only used if <code>scaleFont</code> =
is <code>true</code>.
    /// The default value is <code>'pt'</code>.
    /// </param>
    /// <animation>Scale</animation>
    $AA.ScaleAnimation.initializeBase(this, [target, duration, fps]);

    this._scaleFactor =3D (scaleFactor !=3D=3D undefined) ? scaleFactor =
: 1;
    this._unit =3D (unit !=3D=3D undefined) ? unit : 'px';
   =20
    this._center =3D center;
   =20
    this._scaleFont =3D scaleFont;
    this._fontUnit =3D (fontUnit !=3D=3D undefined) ? fontUnit : 'pt';
   =20
    this._element =3D null;
    this._initialHeight =3D null;
    this._initialWidth =3D null;
    this._initialTop =3D null;
    this._initialLeft =3D null;
    this._initialFontSize =3D null;
}
$AA.ScaleAnimation.prototype =3D {   =20
    getAnimatedValue : function(percentage) {
        /// <summary>
        /// Get the amount to scale the <code>target</code>
        /// </summary>
        /// <param name=3D"percentage" type=3D"Number">
        /// Percentage of the animation already complete
        /// </param>
        /// <returns type=3D"Number">
        /// Percentage to scale the <code>target</code>
        /// </returns>
        return this.interpolate(1.0, this._scaleFactor, percentage);
    },
   =20
    onStart : function() {
        /// <summary>
        /// Cache the initial size because it will be used to determine =
how much to scale the element at each step of the animation
        /// </summary>
        /// <returns />
        $AA.ScaleAnimation.callBaseMethod(this, 'onStart');
       =20
        this._element =3D this.get_target();
        if (this._element) {
            this._initialHeight =3D this._element.offsetHeight;
            this._initialWidth =3D this._element.offsetWidth;
            if (this._center) {
                this._initialTop =3D this._element.offsetTop;
                this._initialLeft =3D this._element.offsetLeft;
            }
            if (this._scaleFont) {
                this._initialFontSize =3D parseFloat(
                    $common.getCurrentStyle(this._element, 'fontSize'));
            }
        }
    },
   =20
    setValue : function(scale) {
        /// <summary>
        /// Scale the <code>target</code> by the given percentage
        /// </summary>
        /// <param name=3D"scale" type=3D"Number">
        /// Percentage to scale the <code>target</code>
        /// </param>
        /// <returns />

        if (this._element) {
            var width =3D Math.round(this._initialWidth * scale);
            var height =3D Math.round(this._initialHeight * scale);
            this._element.style.width =3D width + this._unit;=20
            this._element.style.height =3D height + this._unit;
           =20
            if (this._center) {
                this._element.style.top =3D (this._initialTop +
                    Math.round((this._initialHeight - height) / 2)) + =
this._unit;
                this._element.style.left =3D (this._initialLeft +
                    Math.round((this._initialWidth - width) / 2)) + =
this._unit;
            }
           =20
            if (this._scaleFont) {
                var size =3D this._initialFontSize * scale;
                if (this._fontUnit =3D=3D 'px' || this._fontUnit =3D=3D =
'pt') {
                    size =3D Math.round(size);
                }
                this._element.style.fontSize =3D size + this._fontUnit;
            }
        }
    },
   =20
    onEnd : function() {
        /// <summary>
        /// Wipe the cached values after the animation completes
        /// </summary>
        /// <returns />

        this._element =3D null;
        this._initialHeight =3D null;
        this._initialWidth =3D null;
        this._initialTop =3D null;
        this._initialLeft =3D null;
        this._initialFontSize =3D null;
        $AA.ScaleAnimation.callBaseMethod(this, 'onEnd');
    },
   =20
    get_scaleFactor : function() {
        /// <value type=3D"Number">
        /// The amount to scale the <code>target</code> (a =
<code>scaleFactor</code> of <code>.5</code> will
        /// shrink it in half and a <code>scaleFactor</code> of =
<code>2.0</code> will double it). The default value is
        /// <code>1</code>, which does no scaling.
        /// </value>

        return this._scaleFactor;
    },
    set_scaleFactor : function(value) {
        value =3D this._getFloat(value);
        if (this._scaleFactor !=3D value) {
            this._scaleFactor =3D value;
            this.raisePropertyChanged('scaleFactor');
        }
    },
   =20
    get_unit : function() {
        /// <value type=3D"String">
        /// Length unit for the size of the <code>target</code>.  The =
default value is <code>'px'</code>.
        /// </value>
        return this._unit;
    },
    set_unit : function(value) {
        if (this._unit !=3D value) {
            this._unit =3D value;
            this.raisePropertyChanged('unit');
        }
    },
   =20
    get_center : function() {
        /// <value type=3D"Boolean">
        /// Whether the <code>target</code> should stay centered while =
scaling
        /// </value>
        return this._center;
    },
    set_center : function(value) {
        value =3D this._getBoolean(value);
        if (this._center !=3D value) {
            this._center =3D value;
            this.raisePropertyChanged('center');
        }
    },
   =20
    get_scaleFont : function() {
        /// <value type=3D"Boolean">
        /// Whether the font should be scaled along with the size
        /// </value>
        return this._scaleFont;
    },
    set_scaleFont : function(value) {
        value =3D this._getBoolean(value);
        if (this._scaleFont !=3D value) {
            this._scaleFont =3D value;
            this.raisePropertyChanged('scaleFont');
        }
    },
   =20
    get_fontUnit : function() {
        /// <value type=3D"String">
        /// Unit of the font, which is only used if =
<code>scaleFont</code> is <code>true</code>.
        /// The default value is <code>'pt'</code>.
        /// </value>
        return this._fontUnit;
    },
    set_fontUnit : function(value) {
        if (this._fontUnit !=3D value) {=20
            this._fontUnit =3D value;=20
            this.raisePropertyChanged('fontUnit');
        }
    }
}
$AA.ScaleAnimation.registerClass('Sys.Extended.UI.Animation.ScaleAnimatio=
n', $AA.Animation);
$AA.registerAnimation('scale', $AA.ScaleAnimation);


$AA.Action =3D function(target, duration, fps) {
    /// <summary>
    /// <code>Action</code> is a base class for all "non-animating" =
animations that provides empty implementations
    /// for abstract methods and adds a <code>doAction</code> method =
that will be called to perform the action's
    /// operation.  While regular animations perform an operation in a =
sequence of small steps spread over an interval,
    /// the actions perform a single operation instantaneously.  By =
default, all actions have a <code>duration</code>
    /// of zero.  The actions are very useful for defining complex =
animations.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <animation>Action</animation>
    $AA.Action.initializeBase(this, [target, duration, fps]);

    if (duration =3D=3D=3D undefined) {
        this.set_duration(0);
    }
}
$AA.Action.prototype =3D {
   =20
    onEnd : function() {
        /// <summary>
        /// Call the <code>doAction</code> method when the animation =
completes
        /// </summary>
        /// <returns />
        this.doAction();
        $AA.Action.callBaseMethod(this, 'onEnd');
    },
   =20
    doAction : function() {
        /// <summary>
        /// The <code>doAction</code> method must be implemented by all =
actions
        /// </summary>
        /// <returns />
        throw Error.notImplemented();
    },
   =20
    getAnimatedValue : function() {
        /// <summary>
        /// Empty implementation of required abstract method
        /// </summary>
    },
    setValue : function() {
        /// <summary>
        /// Empty implementation of required abstract method
        /// </summary>
    }
}
$AA.Action.registerClass('Sys.Extended.UI.Animation.Action', =
$AA.Animation);
$AA.registerAnimation('action', $AA.Action);


$AA.EnableAction =3D function(target, duration, fps, enabled) {
    /// <summary>
    /// The <code>EnableAction</code> changes whether or not the =
<code>target</code> is disabled.
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"enabled" type=3D"Boolean" mayBeNull=3D"true" =
optional=3D"true">
    /// Whether or not the <code>target</code> is disabled. The default =
value is <code>true</code>.
    /// </param>
    /// <animation>EnableAction</animation>
    $AA.EnableAction.initializeBase(this, [target, duration, fps]);

    this._enabled =3D (enabled !=3D=3D undefined) ? enabled : true;
}
$AA.EnableAction.prototype =3D {
    doAction : function() {
    	/// <summary>
        /// Set the enabled property of the <code>target</code>
    	/// </summary>
    	/// <returns />
    =09
        var element =3D this.get_target();
        if (element) {
            element.disabled =3D !this._enabled;
        }
    },
   =20
    get_enabled : function() {
        /// <value type=3D"Boolean">
        /// Whether or not the <code>target</code> is disabled. The =
default value is <code>true</code>.
        /// </value>
        return this._enabled;
    },
    set_enabled : function(value) {
        value =3D this._getBoolean(value);
        if (this._enabled !=3D value) {
            this._enabled =3D value;
            this.raisePropertyChanged('enabled');
        }
    }
}
$AA.EnableAction.registerClass('Sys.Extended.UI.Animation.EnableAction', =
$AA.Action);
$AA.registerAnimation('enableAction', $AA.EnableAction);


$AA.HideAction =3D function(target, duration, fps, visible) {
    /// <summary>
    /// The <code>HideAction</code> simply hides the <code>target</code> =
from view
    /// (by setting its style's <code>display</code> attribute to =
<code>'none'</code>)
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"visible" type=3D"Boolean" mayBeNull=3D"False">
    /// True to show the target, false to hide it.  The default value is =
false.
    /// </param>
    /// <animation>HideAction</animation>
    $AA.HideAction.initializeBase(this, [target, duration, fps]);

    this._visible =3D visible;
}
$AA.HideAction.prototype =3D {
    doAction : function() {
        /// <summary>
        /// Hide the <code>target</code>
        /// </summary>
        /// <returns />
        var element =3D this.get_target();
        if (element) {
            $common.setVisible(element, this._visible);
        }
    },
   =20
    get_visible : function() {
        /// <value type=3D"Boolean" mayBeNull=3D"False">
        /// True to show the target, false to hide it.  The default =
value is false.
        /// </value>
        return this._visible;
    },
    set_visible : function(value) {
        if (this._visible !=3D value) {
            this._visible =3D value;
            this.raisePropertyChanged('visible');
        }
    }
}
$AA.HideAction.registerClass('Sys.Extended.UI.Animation.HideAction', =
$AA.Action);
$AA.registerAnimation('hideAction', $AA.HideAction);


$AA.StyleAction =3D function(target, duration, fps, attribute, value) {
    /// <summary>
    /// The <code>StyleAction<code> is used to set a particular =
<code>attribute</code> of the <code>target</code>'s style
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"attribute" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Style attribute to set (this must be in a JavaScript friendly =
format, i.e. <code>backgroundColor</code>
    /// instead of <code>background-color</code>)
    /// </param>
    /// <param name=3D"value" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// Value to set the <code>attribute</code>
    /// </param>
    /// <animation>StyleAction</animation>
    $AA.StyleAction.initializeBase(this, [target, duration, fps]);

    this._attribute =3D attribute;
   =20
    this._value =3D value;
   =20
}
$AA.StyleAction.prototype =3D {
    doAction : function() {
    	/// <summary>
        /// Assign the <code>value</code> to the style's =
<code>attribute</code>
    	/// </summary>
    	/// <returns />
        var element =3D this.get_target();
        if (element) {
            element.style[this._attribute] =3D this._value;
        }
    },
   =20
    get_attribute : function() {
        /// <value type=3D"String">
        /// Style attribute to set (this must be in a JavaScript =
friendly format, i.e. <code>backgroundColor</code>
        /// instead of <code>background-color</code>)
        /// </value>
        return this._attribute;
    },
    set_attribute : function(value) {
        if (this._attribute !=3D value) {
            this._attribute =3D value;
            this.raisePropertyChanged('attribute');
        }
    },
   =20
    get_value : function() {
        /// <value type=3D"String">
        /// Value to set the <code>attribute</code>
        /// </value>
        return this._value;
    },
    set_value : function(value) {
        if (this._value !=3D value) {
            this._value =3D value;
            this.raisePropertyChanged('value');
        }
    }
}
$AA.StyleAction.registerClass('Sys.Extended.UI.Animation.StyleAction', =
$AA.Action);
$AA.registerAnimation('styleAction', $AA.StyleAction);


$AA.OpacityAction =3D function(target, duration, fps, opacity) {
    /// <summary>
    /// <code>OpacityAction</code> allows you to set the =
<code>opacity</code> of the <code>target</code>
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"opacity" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Opacity to set the <code>target</code>
    /// </param>
    /// <animation>OpacityAction</animation>
    $AA.OpacityAction.initializeBase(this, [target, duration, fps]);
   =20
    this._opacity =3D opacity;
}
$AA.OpacityAction.prototype =3D {
    doAction : function() {
    	/// <summary>
        /// Set the opacity
    	/// </summary>
    	/// <returns />
        var element =3D this.get_target();
        if (element) {
            $common.setElementOpacity(element, this._opacity);
        }
    },
   =20
    get_opacity : function() {
        /// <value type=3D"Number">
        /// Opacity to set the <code>target</code>
        /// </value>
        return this._opacity;
    },
    set_opacity : function(value) {
        value =3D this._getFloat(value);
        if (this._opacity !=3D value) {
            this._opacity =3D value;
            this.raisePropertyChanged('opacity');
        }
    }
}
$AA.OpacityAction.registerClass('Sys.Extended.UI.Animation.OpacityAction'=
, $AA.Action);
$AA.registerAnimation('opacityAction', $AA.OpacityAction);


$AA.ScriptAction =3D function(target, duration, fps, script) {
    /// <summary>
    /// The <code>ScriptAction</code> is used to execute arbitrary =
JavaScript
    /// </summary>
    /// <param name=3D"target" type=3D"Sys.UI.DomElement" =
mayBeNull=3D"true" optional=3D"true" domElement=3D"true">
    /// Target of the animation
    /// </param>
    /// <param name=3D"duration" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">
    /// Length of the animation in seconds.  The default is 0.
    /// </param>
    /// <param name=3D"fps" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true" integer=3D"true">
    /// Number of steps per second.  The default is 25.
    /// </param>
    /// <param name=3D"script" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">
    /// JavaScript to execute
    /// </param>
    /// <animation>ScriptAction</animation>
    $AA.ScriptAction.initializeBase(this, [target, duration, fps]);

    this._script =3D script;
}
$AA.ScriptAction.prototype =3D {
    doAction : function() {
    	/// <summary>
        /// Execute the script
    	/// </summary>
    	/// <returns />
        try {
            eval(this._script);
        } catch (ex) {
        }
    },
   =20
    get_script : function() {
        /// <value type=3D"String">
        /// JavaScript to execute
        /// </value>
        return this._script;
    },
    set_script : function(value) {
        if (this._script !=3D value) {
            this._script =3D value;
            this.raisePropertyChanged('script');
        }
    }
}
$AA.ScriptAction.registerClass('Sys.Extended.UI.Animation.ScriptAction', =
$AA.Action);
$AA.registerAnimation('scriptAction', $AA.ScriptAction);

} // execute

if (window.Sys && Sys.loader) {
    Sys.loader.registerScript(scriptName, ["ExtendedCommon", =
"ExtendedTimer"], execute);
}
else {
    execute();
}

})();

var $AA;

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=H3o_AZ-FpFYBFU5-FKzafEVT9ss1hLkGaMruVlgcSoXnRMBTDiplDYKbzb66jC_DLJ_dc0Uktepuph-YDMvIpELXFf015Dub5FipdYUIF0I7qlb1YO4RlRSvX4kvPf3agTcMKbMcP-9_KVCakitsVA2&t=6b9ad1b8

=EF=BB=BF// Name:        ExtenderBase.BaseScripts.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation

/// <reference name=3D"MicrosoftAjax.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />

(function() {
var scriptName =3D "ExtendedBase";

function execute() {

var version =3D Sys.version;
if (!version && !Sys._versionChecked) {
    Sys._versionChecked =3D true;
    throw new Error("AjaxControlToolkit requires ASP.NET Ajax 4.0 =
scripts. Ensure the correct version of the scripts are referenced. If =
you are using an ASP.NET ScriptManager, switch to the =
ToolkitScriptManager in AjaxControlToolkit.dll.");
}

Type.registerNamespace('Sys.Extended.UI');

Sys.Extended.UI.BehaviorBase =3D function(element) {
    /// <summary>
    /// Base behavior for all extender behaviors
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// Element the behavior is associated with
    /// </param>
    Sys.Extended.UI.BehaviorBase.initializeBase(this,[element]);
   =20
    this._clientStateFieldID =3D null;
    this._pageRequestManager =3D null;
    this._partialUpdateBeginRequestHandler =3D null;
    this._partialUpdateEndRequestHandler =3D null;
}
Sys.Extended.UI.BehaviorBase.prototype =3D {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>

        Sys.Extended.UI.BehaviorBase.callBaseMethod(this, 'initialize');
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        Sys.Extended.UI.BehaviorBase.callBaseMethod(this, 'dispose');

        if (this._pageRequestManager) {
            if (this._partialUpdateBeginRequestHandler) {
                =
this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequ=
estHandler);
                this._partialUpdateBeginRequestHandler =3D null;
            }
            if (this._partialUpdateEndRequestHandler) {
                =
this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestH=
andler);
                this._partialUpdateEndRequestHandler =3D null;
            }
            this._pageRequestManager =3D null;
        }
    },

    get_ClientStateFieldID : function() {
        /// <value type=3D"String">
        /// ID of the hidden field used to store client state
        /// </value>
        return this._clientStateFieldID;
    },
    set_ClientStateFieldID : function(value) {
        if (this._clientStateFieldID !=3D value) {
            this._clientStateFieldID =3D value;
            this.raisePropertyChanged('ClientStateFieldID');
        }
    },

    get_ClientState : function() {
        /// <value type=3D"String">
        /// Client state
        /// </value>
        if (this._clientStateFieldID) {
            var input =3D =
document.getElementById(this._clientStateFieldID);
            if (input) {
                return input.value;
            }
        }
        return null;
    },
    set_ClientState : function(value) {
        if (this._clientStateFieldID) {
            var input =3D =
document.getElementById(this._clientStateFieldID);
            if (input) {
                input.value =3D value;
            }
        }
    },

    registerPartialUpdateEvents : function() {
        /// <summary>
        /// Register for beginRequest and endRequest events on the =
PageRequestManager,
        /// (which cause _partialUpdateBeginRequest and =
_partialUpdateEndRequest to be
        /// called when an UpdatePanel refreshes)
        /// </summary>

        if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){
            this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
            if (this._pageRequestManager) {
                this._partialUpdateBeginRequestHandler =3D =
Function.createDelegate(this, this._partialUpdateBeginRequest);
                =
this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequest=
Handler);
                this._partialUpdateEndRequestHandler =3D =
Function.createDelegate(this, this._partialUpdateEndRequest);
                =
this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHand=
ler);
            }
        }
    },

    _partialUpdateBeginRequest : function(sender, beginRequestEventArgs) =
{
        /// <summary>
        /// Method that will be called when a partial update (via an =
UpdatePanel) begins,
        /// if registerPartialUpdateEvents() has been called.
        /// </summary>
        /// <param name=3D"sender" type=3D"Object">
        /// Sender
        /// </param>
        /// <param name=3D"beginRequestEventArgs" =
type=3D"Sys.WebForms.BeginRequestEventArgs">
        /// Event arguments
        /// </param>

    },
   =20
    _partialUpdateEndRequest : function(sender, endRequestEventArgs) {
        /// <summary>
        /// Method that will be called when a partial update (via an =
UpdatePanel) finishes,
        /// if registerPartialUpdateEvents() has been called.
        /// </summary>
        /// <param name=3D"sender" type=3D"Object">
        /// Sender
        /// </param>
        /// <param name=3D"endRequestEventArgs" =
type=3D"Sys.WebForms.EndRequestEventArgs">
        /// Event arguments
        /// </param>

    }
}
Sys.Extended.UI.BehaviorBase.registerClass('Sys.Extended.UI.BehaviorBase'=
, Sys.UI.Behavior);


Sys.Extended.UI.DynamicPopulateBehaviorBase =3D function(element) {
    /// <summary>
    /// DynamicPopulateBehaviorBase is used to add =
DynamicPopulateBehavior funcitonality
    /// to other extenders.  It will dynamically populate the contents =
of the target element
    /// when its populate method is called.
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// DOM Element the behavior is associated with
    /// </param>
    Sys.Extended.UI.DynamicPopulateBehaviorBase.initializeBase(this, =
[element]);
   =20
    this._DynamicControlID =3D null;
    this._DynamicContextKey =3D null;
    this._DynamicServicePath =3D null;
    this._DynamicServiceMethod =3D null;
    this._cacheDynamicResults =3D false;
    this._dynamicPopulateBehavior =3D null;
    this._populatingHandler =3D null;
    this._populatedHandler =3D null;
}
Sys.Extended.UI.DynamicPopulateBehaviorBase.prototype =3D {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>

        Sys.Extended.UI.DynamicPopulateBehaviorBase.callBaseMethod(this, =
'initialize');

        this._populatingHandler =3D Function.createDelegate(this, =
this._onPopulating);
        this._populatedHandler =3D Function.createDelegate(this, =
this._onPopulated);
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        if (this._populatedHandler) {
            if (this._dynamicPopulateBehavior) {
                =
this._dynamicPopulateBehavior.remove_populated(this._populatedHandler);
            }
            this._populatedHandler =3D null;
        }
        if (this._populatingHandler) {
            if (this._dynamicPopulateBehavior) {
                =
this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);=

            }
            this._populatingHandler =3D null;
        }

        if (this._dynamicPopulateBehavior) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior =3D null;
        }
        Sys.Extended.UI.DynamicPopulateBehaviorBase.callBaseMethod(this, =
'dispose');
    },

    populate : function(contextKeyOverride) {
        /// <summary>
        /// Demand-create the DynamicPopulateBehavior and use it to =
populate the target element
        /// </summary>
        /// <param name=3D"contextKeyOverride" type=3D"String" =
mayBeNull=3D"true" optional=3D"true">
        /// An arbitrary string value to be passed to the web method. =
For example, if the element to be populated is within a data-bound =
repeater, this could be the ID of the current row.
        /// </param>

        if (this._dynamicPopulateBehavior && =
(this._dynamicPopulateBehavior.get_element() !=3D =
$get(this._DynamicControlID))) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior =3D null;
        }
       =20
        if (!this._dynamicPopulateBehavior && this._DynamicControlID && =
this._DynamicServiceMethod) {
            this._dynamicPopulateBehavior =3D =
$create(Sys.Extended.UI.DynamicPopulateBehavior,
                {
                    "id" : this.get_id() + "_DynamicPopulateBehavior",
                    "ContextKey" : this._DynamicContextKey,
                    "ServicePath" : this._DynamicServicePath,
                    "ServiceMethod" : this._DynamicServiceMethod,
                    "cacheDynamicResults" : this._cacheDynamicResults
                }, null, null, $get(this._DynamicControlID));

            =
this._dynamicPopulateBehavior.add_populating(this._populatingHandler);
            =
this._dynamicPopulateBehavior.add_populated(this._populatedHandler);
        }
       =20
        if (this._dynamicPopulateBehavior) {
            this._dynamicPopulateBehavior.populate(contextKeyOverride ? =
contextKeyOverride : this._DynamicContextKey);
        }
    },

    _onPopulating : function(sender, eventArgs) {
        /// <summary>
        /// Handler for DynamicPopulate behavior's Populating event
        /// </summary>
        /// <param name=3D"sender" type=3D"Object">
        /// DynamicPopulate behavior
        /// </param>
        /// <param name=3D"eventArgs" type=3D"Sys.CancelEventArgs" =
mayBeNull=3D"false">
        /// Event args
        /// </param>
        this.raisePopulating(eventArgs);
    },

    _onPopulated : function(sender, eventArgs) {
        /// <summary>
        /// Handler for DynamicPopulate behavior's Populated event
        /// </summary>
        /// <param name=3D"sender" type=3D"Object">
        /// DynamicPopulate behavior
        /// </param>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs" =
mayBeNull=3D"false">
        /// Event args
        /// </param>
        this.raisePopulated(eventArgs);
    },

    get_dynamicControlID : function() {
        /// <value type=3D"String">
        /// ID of the element to populate with dynamic content
        /// </value>
        return this._DynamicControlID;
    },
    get_DynamicControlID : this.get_dynamicControlID,
    set_dynamicControlID : function(value) {
        if (this._DynamicControlID !=3D value) {
            this._DynamicControlID =3D value;
            this.raisePropertyChanged('dynamicControlID');
            this.raisePropertyChanged('DynamicControlID');
        }
    },
    set_DynamicControlID : this.set_dynamicControlID,

    get_dynamicContextKey : function() {
        /// <value type=3D"String">
        /// An arbitrary string value to be passed to the web method.
        /// For example, if the element to be populated is within a
        /// data-bound repeater, this could be the ID of the current =
row.
        /// </value>
        return this._DynamicContextKey;
    },
    get_DynamicContextKey : this.get_dynamicContextKey,
    set_dynamicContextKey : function(value) {
        if (this._DynamicContextKey !=3D value) {
            this._DynamicContextKey =3D value;
            this.raisePropertyChanged('dynamicContextKey');
            this.raisePropertyChanged('DynamicContextKey');
        }
    },
    set_DynamicContextKey : this.set_dynamicContextKey,

    get_dynamicServicePath : function() {
        /// <value type=3D"String" mayBeNull=3D"true" optional=3D"true">
        /// The URL of the web service to call.  If the ServicePath is =
not defined, then we will invoke a PageMethod instead of a web service.
        /// </value>
        return this._DynamicServicePath;
    },
    get_DynamicServicePath : this.get_dynamicServicePath,
    set_dynamicServicePath : function(value) {
        if (this._DynamicServicePath !=3D value) {
            this._DynamicServicePath =3D value;
            this.raisePropertyChanged('dynamicServicePath');
            this.raisePropertyChanged('DynamicServicePath');
        }
    },
    set_DynamicServicePath : this.set_dynamicServicePath,

    get_dynamicServiceMethod : function() {
        /// <value type=3D"String">
        /// The name of the method to call on the page or web service
        /// </value>
        /// <remarks>
        /// The signature of the method must exactly match the =
following:
        ///     [WebMethod]
        ///     string DynamicPopulateMethod(string contextKey)
        ///     {
        ///         ...
        ///     }
        /// </remarks>
        return this._DynamicServiceMethod;
    },
    get_DynamicServiceMethod : this.get_dynamicServiceMethod,
    set_dynamicServiceMethod : function(value) {
        if (this._DynamicServiceMethod !=3D value) {
            this._DynamicServiceMethod =3D value;
            this.raisePropertyChanged('dynamicServiceMethod');
            this.raisePropertyChanged('DynamicServiceMethod');
        }
    },
    set_DynamicServiceMethod : this.set_dynamicServiceMethod,
   =20
    get_cacheDynamicResults : function() {
        /// <value type=3D"Boolean" mayBeNull=3D"false">
        /// Whether the results of the dynamic population should be =
cached and
        /// not fetched again after the first load
        /// </value>
        return this._cacheDynamicResults;
    },
    set_cacheDynamicResults : function(value) {
        if (this._cacheDynamicResults !=3D value) {
            this._cacheDynamicResults =3D value;
            this.raisePropertyChanged('cacheDynamicResults');
        }
    },
   =20
    add_populated : function(handler) {
        /// <summary>
        /// Add a handler on the populated event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().addHandler("populated", handler);
    },
    remove_populated : function(handler) {
        /// <summary>
        /// Remove a handler from the populated event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().removeHandler("populated", handler);
    },
    raisePopulated : function(arg) {
        /// <summary>
        /// Raise the populated event
        /// </summary>
        /// <param name=3D"arg" type=3D"Sys.EventArgs">
        /// Event arguments
        /// </param>
        var handler =3D this.get_events().getHandler("populated"); =20
        if (handler) handler(this, arg);
    },
   =20
    add_populating : function(handler) {
        /// <summary>
        /// Add an event handler for the populating event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populating', handler);
    },
    remove_populating : function(handler) {
        /// <summary>
        /// Remove an event handler from the populating event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populating', handler);
    },
    raisePopulating : function(eventArgs) {
        /// <summary>
        /// Raise the populating event
        /// </summary>
        /// <param name=3D"eventArgs" type=3D"Sys.CancelEventArgs" =
mayBeNull=3D"false">
        /// Event arguments for the populating event
        /// </param>
        /// <returns />
       =20
        var handler =3D this.get_events().getHandler('populating');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
Sys.Extended.UI.DynamicPopulateBehaviorBase.registerClass('Sys.Extended.U=
I.DynamicPopulateBehaviorBase', Sys.Extended.UI.BehaviorBase);


Sys.Extended.UI.ControlBase =3D function(element) {
    Sys.Extended.UI.ControlBase.initializeBase(this, [element]);
    this._clientStateField =3D null;
    this._callbackTarget =3D null;
    this._onsubmit$delegate =3D Function.createDelegate(this, =
this._onsubmit);
    this._oncomplete$delegate =3D Function.createDelegate(this, =
this._oncomplete);
    this._onerror$delegate =3D Function.createDelegate(this, =
this._onerror);
}

Sys.Extended.UI.ControlBase.__doPostBack =3D function(eventTarget, =
eventArgument) {
    if =
(!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) =
{
        for (var i =3D 0; i < =
Sys.Extended.UI.ControlBase.onsubmitCollection.length; i++) {
            Sys.Extended.UI.ControlBase.onsubmitCollection[i]();
        }
    }
    Function.createDelegate(window, =
Sys.Extended.UI.ControlBase.__doPostBackSaved)(eventTarget, =
eventArgument);
}

Sys.Extended.UI.ControlBase.prototype =3D {
    initialize: function() {
        Sys.Extended.UI.ControlBase.callBaseMethod(this, "initialize");
        if (this._clientStateField) {
            this.loadClientState(this._clientStateField.value);
        }
        if (typeof (Sys.WebForms) !=3D=3D "undefined" && typeof =
(Sys.WebForms.PageRequestManager) !=3D=3D "undefined") {
            =
Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatemen=
ts, this._onsubmit$delegate);
            if (Sys.Extended.UI.ControlBase.__doPostBackSaved =3D=3D =
null || typeof Sys.Extended.UI.ControlBase.__doPostBackSaved =3D=3D =
"undefined") {
                Sys.Extended.UI.ControlBase.__doPostBackSaved =3D =
window.__doPostBack;
                window.__doPostBack =3D =
Sys.Extended.UI.ControlBase.__doPostBack;
                Sys.Extended.UI.ControlBase.onsubmitCollection =3D new =
Array();
            }
            Array.add(Sys.Extended.UI.ControlBase.onsubmitCollection, =
this._onsubmit$delegate);
        } else {
            $addHandler(document.forms[0], "submit", =
this._onsubmit$delegate);
        }
    },
    dispose: function() {
        if (typeof (Sys.WebForms) !=3D=3D "undefined" && typeof =
(Sys.WebForms.PageRequestManager) !=3D=3D "undefined") {
            Array.remove(Sys.Extended.UI.ControlBase.onsubmitCollection, =
this._onsubmit$delegate);
            =
Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitState=
ments, this._onsubmit$delegate);
        } else {
            $removeHandler(document.forms[0], "submit", =
this._onsubmit$delegate);
        }
        Sys.Extended.UI.ControlBase.callBaseMethod(this, "dispose");
    },

    findElement: function(id) {
        return $get(this.get_id() + '_' + id.split(':').join('_'));
    },
    get_clientStateField: function() {
        return this._clientStateField;
    },
    set_clientStateField: function(value) {
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Extended.UI.Resources.ExtenderBase_CannotSetCl=
ientStateField);
        if (this._clientStateField !=3D value) {
            this._clientStateField =3D value;
            this.raisePropertyChanged('clientStateField');
        }
    },
    loadClientState: function(value) {
        /// <remarks>override this method to intercept client state =
loading after a callback</remarks>
    },
    saveClientState: function() {
        /// <remarks>override this method to intercept client state =
acquisition before a callback</remarks>
        return null;
    },
    _invoke: function(name, args, cb) {
        /// <summary>invokes a callback method on the server =
control</summary>       =20
        if (!this._callbackTarget) {
            throw =
Error.invalidOperation(Sys.Extended.UI.Resources.ExtenderBase_ControlNotR=
egisteredForCallbacks);
        }
        if (typeof (WebForm_DoCallback) =3D=3D=3D "undefined") {
            throw =
Error.invalidOperation(Sys.Extended.UI.Resources.ExtenderBase_PageNotRegi=
steredForCallbacks);
        }
        var ar =3D [];
        for (var i =3D 0; i < args.length; i++)
            ar[i] =3D args[i];
        var clientState =3D this.saveClientState();
        if (clientState !=3D null && =
!String.isInstanceOfType(clientState)) {
            throw =
Error.invalidOperation(Sys.Extended.UI.Resources.ExtenderBase_InvalidClie=
ntStateType);
        }
        var payload =3D =
Sys.Serialization.JavaScriptSerializer.serialize({ name: name, args: ar, =
state: this.saveClientState() });
        WebForm_DoCallback(this._callbackTarget, payload, =
this._oncomplete$delegate, cb, this._onerror$delegate, true);
    },
    _oncomplete: function(result, context) {
        result =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(result);
        if (result.error) {
            throw Error.create(result.error);
        }
        this.loadClientState(result.state);
        context(result.result);
    },
    _onerror: function(message, context) {
        throw Error.create(message);
    },
    _onsubmit: function() {
        if (this._clientStateField) {
            this._clientStateField.value =3D this.saveClientState();
        }
        return true;
    }

}
Sys.Extended.UI.ControlBase.registerClass("Sys.Extended.UI.ControlBase", =
Sys.UI.Control);

} // execute

if (window.Sys && Sys.loader) {
    Sys.loader.registerScript(scriptName, ["ComponentModel", =
"Serialization"], execute);
}
else {
    execute();
}

})();

Type.registerNamespace('Sys.Extended.UI');
Sys.Extended.UI.Resources=3D{
"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios =
must have 4 elements",
"HTMLEditor_toolbar_button_FontSize_defaultValue":"default",
"HTMLEditor_toolbar_button_DesignMode_title":"Design mode",
"Animation_ChildrenNotAllowed":"Sys.Extended.UI.Animation.createAnimation=
 cannot add child animations to type \"{0}\" that does not derive from =
Sys.Extended.UI.Animation.ParentAnimation",
"PasswordStrength_RemainingSymbols":"{0} symbol characters",
"HTMLEditor_toolbar_button_FixedForeColor_title":"Foreground color",
"HTMLEditor_toolbar_popup_LinkProperties_field_URL":"URL",
"ExtenderBase_CannotSetClientStateField":"clientStateField can only be =
set before initialization",
"HTMLEditor_toolbar_button_Bold_title":"Bold",
"RTE_PreviewHTML":"Preview HTML",
"HTMLEditor_toolbar_popup_LinkProperties_button_OK":"OK",
"HTMLEditor_toolbar_button_JustifyRight_title":"Justify Right",
"RTE_JustifyCenter":"Justify Center",
"PasswordStrength_RemainingUpperCase":"{0} more upper case characters",
"HTMLEditor_toolbar_popup_LinkProperties_button_Cancel":"Cancel",
"Animation_TargetNotFound":"Sys.Extended.UI.Animation.Animation.set_anima=
tionTarget requires the ID of a Sys.UI.DomElement or Sys.UI.Control.  No =
element or control could be found corresponding to \"{0}\"",
"AsyncFileUpload_UnhandledException":"Unhandled Exception",
"RTE_FontColor":"Font Color",
"RTE_LabelColor":"Label Color",
"Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is invalid =
for parseBorderWidth",
"HTMLEditor_toolbar_button_JustifyFull_title":"Justify",
"RTE_Heading":"Heading",
"AsyncFileUpload_ConfirmToSeeErrorPage":"Do you want to see the response =
page?",
"Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before =
initialization",
"HTMLEditor_toolbar_button_StrikeThrough_title":"Strike through",
"RTE_OrderedList":"Ordered List",
"HTMLEditor_toolbar_button_OnPastePlainText":"Plain text pasting is =
switched on. Just now: {0}",
"HTMLEditor_toolbar_button_RemoveLink_title":"Remove Link",
"HTMLEditor_toolbar_button_FontName_defaultValue":"default",
"HTMLEditor_toolbar_button_FontName_label":"Font",
"ReorderList_DropWatcherBehavior_NoChild":"Could not find child of list =
with id \"{0}\"",
"CascadingDropDown_MethodTimeout":"[Method timeout]",
"RTE_Columns":"Columns",
"RTE_InsertImage":"Insert Image",
"RTE_InsertTable":"Insert Table",
"RTE_Values":"Values",
"RTE_OK":"OK",
"ExtenderBase_PageNotRegisteredForCallbacks":"This Page has not been =
registered for callbacks",
"HTMLEditor_toolbar_button_InsertLink_title":"Insert/Edit URL link",
"Animation_NoDynamicPropertyFound":"Sys.Extended.UI.Animation.createAnima=
tion found no property corresponding to \"{0}\" or \"{1}\"",
"Animation_InvalidBaseType":"Sys.Extended.UI.Animation.registerAnimation =
can only register types that inherit from =
Sys.Extended.UI.Animation.Animation",
"RTE_UnorderedList":"Unordered List",
"AsyncFileUpload_UnknownServerError":"Unknown Server error",
"ResizableControlBehavior_InvalidHandler":"{0} handler not a function, =
function name, or function text",
"Animation_InvalidColor":"Color must be a 7-character hex representation =
(e.g. #246ACF), not \"{0}\"",
"RTE_CellColor":"Cell Color",
"PasswordStrength_RemainingMixedCase":"Mixed case characters",
"HTMLEditor_toolbar_button_HtmlMode_title":"HTML text",
"RTE_Italic":"Italic",
"CascadingDropDown_NoParentElement":"Failed to find parent element =
\"{0}\"",
"ValidatorCallout_DefaultErrorMessage":"This control is invalid",
"HTMLEditor_toolbar_button_DecreaseIndent_title":"Decrease Indent",
"RTE_Indent":"Indent",
"ReorderList_DropWatcherBehavior_CallbackError":"Reorder failed, see =
details below.\\r\\n\\r\\n{0}",
"PopupControl_NoDefaultProperty":"No default property supported for =
control \"{0}\" of type \"{1}\"",
"RTE_Normal":"Normal",
"PopupExtender_NoParentElement":"Couldn\u0027t find parent element =
\"{0}\"",
"RTE_ViewValues":"View Values",
"RTE_Legend":"Legend",
"RTE_Labels":"Labels",
"RTE_CellSpacing":"Cell Spacing",
"PasswordStrength_RemainingNumbers":"{0} more numbers",
"HTMLEditor_toolbar_popup_LinkProperties_field_Target":"Target",
"HTMLEditor_toolbar_button_PreviewMode_title":"Preview",
"RTE_Border":"Border",
"RTE_Create":"Create",
"RTE_BackgroundColor":"Background Color",
"RTE_Cancel":"Cancel",
"HTMLEditor_toolbar_button_PasteText_title":"Paste Plain Text",
"RTE_JustifyFull":"Justify Full",
"RTE_JustifyLeft":"Justify Left",
"RTE_Cut":"Cut",
"AsyncFileUpload_UploadingProblem":"The requested file uploading =
problem.",
"ResizableControlBehavior_CannotChangeProperty":"Changes to {0} not =
supported",
"RTE_ViewSource":"View Source",
"Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid for =
parsePadding",
"RTE_Paste":"Paste",
"ExtenderBase_ControlNotRegisteredForCallbacks":"This Control has not =
been registered for callbacks",
"Calendar_Today":"Today: {0}",
"MultiHandleSlider_CssHeightWidthRequired":"You must specify a CSS width =
and height for all handle styles as well as the rail.",
"Common_DateTime_InvalidFormat":"Invalid format",
"HTMLEditor_toolbar_button_Copy_title":"Copy",
"ListSearch_DefaultPrompt":"Type to search",
"CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"",
"RTE_ViewEditor":"View Editor",
"HTMLEditor_toolbar_popup_LinkProperties_field_Target_Current":"Current =
window",
"RTE_BarColor":"Bar Color",
"AsyncFileUpload_InternalErrorMessage":"The AsyncFileUpload control has =
encountered an error with the uploader in this page. Please refresh the =
page and try again.",
"HTMLEditor_toolbar_button_Underline_title":"Underline",
"PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very =
Weak;Weak;Poor;Almost OK;Barely =
Acceptable;Average;Good;Strong;Excellent;Unbreakable!",
"HTMLEditor_toolbar_button_SuperScript_title":"Super script",
"HTMLEditor_toolbar_button_Ltr_title":"Left to right direction",
"HTMLEditor_toolbar_button_RemoveAlignment_title":"Remove Alignment",
"HTMLEditor_toolbar_button_OrderedList_title":"Ordered List",
"HTMLEditor_toolbar_popup_LinkProperties_field_Target_New":"New window",
"HTMLEditor_toolbar_popup_LinkProperties_field_Target_Top":"Top window",
"HTMLEditor_toolbar_button_JustifyCenter_title":"Justify Center",
"RTE_Inserttexthere":"Insert text here",
"Animation_UknownAnimationName":"Sys.Extended.UI.Animation.createAnimatio=
n could not find an Animation corresponding to the name \"{0}\"",
"ExtenderBase_InvalidClientStateType":"saveClientState must return a =
value of type String",
"HTMLEditor_toolbar_button_JustifyLeft_title":"Justify Left",
"Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}",
"HTMLEditor_toolbar_button_Undo_title":"Undo",
"HTMLEditor_toolbar_button_Redo_title":"Redo",
"Tabs_OwnerExpected":"owner must be set before initialize",
"DynamicPopulate_WebServiceTimeout":"Web service call timed out",
"PasswordStrength_RemainingLowerCase":"{0} more lower case characters",
"HTMLEditor_toolbar_button_BulletedList_title":"Bulleted List",
"HTMLEditor_toolbar_button_Paste_title":"Paste",
"Animation_MissingAnimationName":"Sys.Extended.UI.Animation.createAnimati=
on requires an object with an AnimationName property",
"HTMLEditor_toolbar_button_PasteWord_title":"Paste from MS Word (with =
cleanup)",
"HTMLEditor_toolbar_button_Italic_title":"Italic",
"RTE_JustifyRight":"Justify Right",
"Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs =
collection",
"RTE_CellPadding":"Cell Padding",
"HTMLEditor_toolbar_button_ForeColorClear_title":"Clear foreground =
color",
"RTE_ClearFormatting":"Clear Formatting",
"AlwaysVisible_ElementRequired":"Sys.Extended.UI.AlwaysVisibleControlBeha=
vior must have an element",
"HTMLEditor_toolbar_button_SubScript_title":"Sub script",
"Slider_NoSizeProvided":"Please set valid values for the height and =
width attributes in the slider\u0027s CSS classes",
"DynamicPopulate_WebServiceError":"Web Service call failed: {0}",
"PasswordStrength_StrengthPrompt":"Strength: ",
"HTMLEditor_toolbar_button_Rtl_title":"Right to left direction",
"PasswordStrength_RemainingCharacters":"{0} more characters",
"HTMLEditor_toolbar_button_BackColorClear_title":"Clear background =
color",
"PasswordStrength_Satisfied":"Nothing more required",
"RTE_Hyperlink":"Hyperlink",
"Animation_NoPropertyFound":"Sys.Extended.UI.Animation.createAnimation =
found no property corresponding to \"{0}\"",
"PasswordStrength_InvalidStrengthDescriptionStyles":"Text Strength =
description style classes must match the number of text descriptions.",
"HTMLEditor_toolbar_button_Use_verb":"Use {0}",
"HTMLEditor_toolbar_popup_LinkProperties_field_Target_Parent":"Parent =
window",
"PasswordStrength_GetHelpRequirements":"Get help on password =
requirements",
"HTMLEditor_toolbar_button_FixedBackColor_title":"Background color",
"PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text =
strength descriptions specified",
"RTE_Underline":"Underline",
"HTMLEditor_toolbar_button_IncreaseIndent_title":"Increase Indent",
"AsyncFileUpload_ServerResponseError":"Server Response Error",
"Tabs_PropertySetAfterInitialization":"{0} cannot be changed after =
initialization",
"RTE_Rows":"Rows",
"RTE_Redo":"Redo",
"RTE_Size":"Size",
"RTE_Undo":"Undo",
"RTE_Bold":"Bold",
"RTE_Copy":"Copy",
"RTE_Font":"Font",
"HTMLEditor_toolbar_button_FontSize_label":"Size",
"HTMLEditor_toolbar_button_Cut_title":"Cut",
"CascadingDropDown_MethodError":"[Method error {0}]",
"HTMLEditor_toolbar_button_InsertLink_message_EmptyURL":"URL can not be =
empty",
"RTE_BorderColor":"Border Color",
"HTMLEditor_toolbar_button_RemoveStyles_title":"Remove styles",
"RTE_Paragraph":"Paragraph",
"RTE_InsertHorizontalRule":"Insert Horizontal Rule",
"HTMLEditor_toolbar_button_Paragraph_title":"Make Paragraph",
"Common_UnitHasNoDigits":"No digits",
"RTE_Outdent":"Outdent",
"Common_DateTime_InvalidTimeSpan":"\"{0}\" is not a valid TimeSpan =
format",
"Animation_CannotNestSequence":"Sys.Extended.UI.Animation.SequenceAnimati=
on cannot be nested inside Sys.Extended.UI.Animation.ParallelAnimation",
"HTMLEditor_toolbar_button_InsertHR_title":"Insert horizontal rule",
"HTMLEditor_toolbar_button_OnPasteFromMSWord":"Pasting from MS Word is =
switched on. Just now: {0}",
"Shared_BrowserSecurityPreventsPaste":"Your browser security settings =
don\u0027t permit the automatic execution of paste operations. Please =
use the keyboard shortcut Ctrl+V instead."
};

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.packagingeurope.com/ScriptResource.axd?d=7q9lPRY3ovcgDhPMgHqH73vpyTXUVgCcM9Vj4m853y5D1inRInKJuklYujT0IuxDt0J24Pz1hf5khUrzQljFMxZoeFnjH2wJ09x9PgQgEtgAqrmWoXzpZMsBGBsnXfxWkEUlsB6r387g5CrxAAFWrGX2H6DitoJJTdVv8Wrmgu1Uu2XfE9r06EgR82nkJdgW0&t=6b9ad1b8

=EF=BB=BF// Name:        =
AlwaysVisibleControl.AlwaysVisibleControlBehavior.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50401.0
// FileVersion: 4.1.50401
// (c) 2010 CodePlex Foundation



/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />
/// <reference path=3D"../ExtenderBase/BaseScripts.js" />
/// <reference path=3D"../Compat/Timer/Timer.js" />
/// <reference path=3D"../Common/Common.js" />
/// <reference path=3D"../Animation/Animations.js" />

(function() {
var scriptName =3D "ExtendedAlwaysVisible";

function execute() {


Type.registerNamespace('Sys.Extended.UI');

Sys.Extended.UI.HorizontalSide =3D function() {
    /// <summary>
    /// The HorizontalSide enumeration describes the horizontal side
    /// of the window used to anchor the element
    /// </summary>
    /// <field name=3D"Left" type=3D"Number" integer=3D"true" />
    /// <field name=3D"Center" type=3D"Number" integer=3D"true" />
    /// <field name=3D"Right" type=3D"Number" integer=3D"true" />
    throw Error.invalidOperation();
}
Sys.Extended.UI.HorizontalSide.prototype =3D {
    Left : 0,
    Center : 1,
    Right : 2
}
Sys.Extended.UI.HorizontalSide.registerEnum("Sys.Extended.UI.HorizontalSi=
de", false);


Sys.Extended.UI.VerticalSide =3D function() {
    /// <summary>
    /// The VerticalSide enumeration describes the vertical side
    /// of the window used to anchor the element
    /// </summary>
    /// <field name=3D"Top" type=3D"Number" integer=3D"true" />
    /// <field name=3D"Middle" type=3D"Number" integer=3D"true" />
    /// <field name=3D"Bottom" type=3D"Number" integer=3D"true" />
    throw Error.invalidOperation();
}
Sys.Extended.UI.VerticalSide.prototype =3D {
    Top : 0,
    Middle : 1,
    Bottom : 2
}
Sys.Extended.UI.VerticalSide.registerEnum("Sys.Extended.UI.VerticalSide",=
 false);


Sys.Extended.UI.AlwaysVisibleControlBehavior =3D function(element) {
    /// <summary>
    /// The AlwaysVisibleControl behavior is used to fix a particular =
control a specified distance
    /// from the top/left corner at all times regardless of how the =
users scrolls or sizes the window.
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// The DOM element the behavior is associated with
    /// </param>
    Sys.Extended.UI.AlwaysVisibleControlBehavior.initializeBase(this, =
[element]);
   =20
    this._horizontalOffset =3D 0;
   =20
    this._horizontalSide =3D Sys.Extended.UI.HorizontalSide.Left;
   =20
    this._verticalOffset =3D 0;
   =20
    this._verticalSide =3D Sys.Extended.UI.VerticalSide.Top;
   =20
    this._scrollEffectDuration =3D .1;
   =20
    this._repositionHandler =3D null;
   =20
    this._animate =3D false;
   =20
    this._animation =3D null;
}
Sys.Extended.UI.AlwaysVisibleControlBehavior.prototype =3D {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        /// <returns />
        =
Sys.Extended.UI.AlwaysVisibleControlBehavior.callBaseMethod(this, =
'initialize');
       =20
        var element =3D this.get_element();
        if (!element) throw =
Error.invalidOperation(Sys.Extended.UI.Resources.AlwaysVisible_ElementReq=
uired);
       =20
        this._repositionHandler =3D Function.createDelegate(this, =
this._reposition);
       =20
        if (Sys.Browser.agent =3D=3D Sys.Browser.InternetExplorer && =
Sys.Browser.version < 7) {
            this._animate =3D true;
        }
        if (this._animate) {
            this._animation =3D new =
Sys.Extended.UI.Animation.MoveAnimation(
                element, this._scrollEffectDuration, 25, 0, 0, false, =
'px');

            element.style.position =3D 'absolute';
        } else {
            element.style.position =3D 'fixed';
        }
       =20
        $addHandler(window, 'resize', this._repositionHandler);
       =20
        if (this._animate) {
            $addHandler(window, 'scroll', this._repositionHandler);
        }
       =20
        this._reposition();
    },
   =20
    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        /// <returns />
   =20
        if (this._repositionHandler) {
            if (this._animate) {
                $removeHandler(window, 'scroll', =
this._repositionHandler);
            }
            $removeHandler(window, 'resize', this._repositionHandler);
            this._repositionHandler =3D null;
        }
       =20
        if (this._animation) {
            this._animation.dispose();
            this._animation =3D null;
        }
       =20
        =
Sys.Extended.UI.AlwaysVisibleControlBehavior.callBaseMethod(this, =
'dispose');
    },

    _reposition : function(eventObject) {
        /// <summary>
        /// Handler to reposition the element and place it where it =
actually belongs
        /// whenever the browser is scrolled or resized
        /// </summary>
        /// <param name=3D"eventObject" type=3D"Sys.UI.DomEvent">
        /// Event info
        /// </param>
        /// <returns />

        var element =3D this.get_element();
        if (!element) return;
       =20
        this.raiseRepositioning(Sys.EventArgs.Empty);
       =20
        var x =3D 0;
        var y =3D 0;
       =20
        if (this._animate) {
            if (document.documentElement && =
document.documentElement.scrollTop) {
                x =3D document.documentElement.scrollLeft;
                y =3D document.documentElement.scrollTop;
            } else {
                x =3D document.body.scrollLeft;
                y =3D document.body.scrollTop;
            }
        }
       =20
        var clientBounds =3D $common.getClientBounds();
        var width =3D clientBounds.width;
        var height =3D clientBounds.height;
       =20
        switch (this._horizontalSide) {
            case Sys.Extended.UI.HorizontalSide.Center :
                x =3D Math.max(0, Math.floor(x + width / 2.0 - =
element.offsetWidth / 2.0 - this._horizontalOffset));
                break;
            case Sys.Extended.UI.HorizontalSide.Right :
                x =3D Math.max(0, x + width - element.offsetWidth - =
this._horizontalOffset);
                break;
            case Sys.Extended.UI.HorizontalSide.Left :
            default :
                x +=3D this._horizontalOffset;
                break;
        }           =20
          =20
        switch (this._verticalSide) {
            case Sys.Extended.UI.VerticalSide.Middle :
                y =3D Math.max(0, Math.floor(y + height / 2.0 - =
element.offsetHeight / 2.0 - this._verticalOffset));
                break;
            case Sys.Extended.UI.VerticalSide.Bottom :
                y =3D Math.max(0, y + height - element.offsetHeight - =
this._verticalOffset);
                break;
            case Sys.Extended.UI.VerticalSide.Top :
            default :
                y +=3D this._verticalOffset;
                break;
        }
       =20
        if (this._animate && this._animation) {
            this._animation.stop();
            this._animation.set_horizontal(x);
            this._animation.set_vertical(y);
            this._animation.play();
        } else {
            element.style.left =3D x + 'px';
            element.style.top =3D y + 'px';
        }
       =20
        this.raiseRepositioned(Sys.EventArgs.Empty);
    },
   =20
    get_HorizontalOffset : function() {
        /// <value type=3D"Number" integer=3D"true">
        /// Distance to the horizontal edge of the browser in pixels =
from the same side of the target control. The default is 0 pixels.
        /// </value>
        return this._horizontalOffset;
    },
    set_HorizontalOffset : function(value) {
        if (this._horizontalOffset !=3D value) {
            this._horizontalOffset =3D value;
            this._reposition();
            this.raisePropertyChanged('HorizontalOffset');
        }
    },
   =20
    get_HorizontalSide : function() {
        /// <value type=3D"Sys.Extended.UI.HorizontalSide" =
integer=3D"true">
        /// Horizontal side of the browser to anchor the control =
against.  The default is the Left side.
        /// </value>
        return this._horizontalSide;
    },
    set_HorizontalSide : function(value) {
        if (this._horizontalSide !=3D value) {
            this._horizontalSide =3D value;
            this._reposition();
            this.raisePropertyChanged('HorizontalSide');
        }
    },
   =20
    get_VerticalOffset : function() {
        /// <value type=3D"Number" integer=3D"true">
        /// Distance to the vertical edge of the browser in pixels from =
the same side of the target control. The default is 0 pixels.
        /// </value>
        return this._verticalOffset;
    },
    set_VerticalOffset : function(value) {
        if (this._verticalOffset !=3D value) {
            this._verticalOffset =3D value;
            this._reposition();
            this.raisePropertyChanged('VerticalOffset');
        }
    },
   =20
    get_VerticalSide : function() {
        /// <value type=3D"Sys.Extended.UI.VerticalSide" =
integer=3D"true">
        /// Vertical side of the browser to anchor the control against.  =
The default is the Top side.
        /// </value>
        return this._verticalSide;
    },
    set_VerticalSide : function(value) {
        if (this._verticalSide !=3D value) {
            this._verticalSide =3D value;
            this._reposition();
            this.raisePropertyChanged('VerticalSide');
        }
    },
   =20
    get_ScrollEffectDuration : function() {
        /// <value type=3D"Number">
        /// Length in seconds for the scrolling effect to last when the =
target control is repositioned. The default is .1 seconds.
        /// </value>
        return this._scrollEffectDuration;
    },
    set_ScrollEffectDuration : function(value) {
        if (this._scrollEffectDuration !=3D value) {
            this._scrollEffectDuration =3D value;
            if (this._animation) {
                this._animation.set_duration(value);=20
            }
            this.raisePropertyChanged('ScrollEffectDuration');
        }
    },
   =20
    get_useAnimation : function() {
        /// <value type=3D"Boolean">
        /// Whether or not to animate the element into position. (note:
        /// this value should always be true in IE6).
        /// </value>
        return this._animate;
    },
    set_useAnimation : function(value) {
        value |=3D (Sys.Browser.agent =3D=3D =
Sys.Browser.InternetExplorer && Sys.Browser.version < 7);
        if (this._animate !=3D value) {
            this._animate =3D value;
            this.raisePropertyChanged('useAnimation');
        }
    },
   =20
    add_repositioning : function(handler) {
        /// <summary>
        /// Add an event handler for the repositioning event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('repositioning', handler);
    },
    remove_repositioning : function(handler) {
        /// <summary>
        /// Remove an event handler from the repositioning event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('repositioning', handler);
    },
    raiseRepositioning : function(eventArgs) {
        /// <summary>
        /// Raise the repositioning event
        /// </summary>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs" =
mayBeNull=3D"false">
        /// Event arguments for the repositioning event
        /// </param>
        /// <returns />
       =20
        var handler =3D this.get_events().getHandler('repositioning');
        if (handler) {
            handler(this, eventArgs);
        }
    },
   =20
    add_repositioned : function(handler) {
        /// <summary>
        /// Add an event handler for the repositioned event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('repositioned', handler);
    },
    remove_repositioned : function(handler) {
        /// <summary>
        /// Remove an event handler from the repositioned event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('repositioned', handler);
    },
    raiseRepositioned : function(eventArgs) {
        /// <summary>
        /// Raise the repositioned event
        /// </summary>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs" =
mayBeNull=3D"false">
        /// Event arguments for the repositioned event
        /// </param>
        /// <returns />
       =20
        var handler =3D this.get_events().getHandler('repositioned');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
Sys.Extended.UI.AlwaysVisibleControlBehavior.registerClass('Sys.Extended.=
UI.AlwaysVisibleControlBehavior', Sys.Extended.UI.BehaviorBase);
Sys.registerComponent(Sys.Extended.UI.AlwaysVisibleControlBehavior, { =
name: "alwaysVisible" });

} // execute

if (window.Sys && Sys.loader) {
    Sys.loader.registerScript(scriptName, ["ExtendedAnimations", =
"ExtendedBase"], execute);
}
else {
    execute();
}

})();

------=_NextPart_000_007D_01CC5130.144666E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://d.yimg.com/mi/ywa.js

if(typeof =
YWA=3D=3D=3D"undefined"){YWA=3D{};YWA.initialize=3Dfunction(){var =
nan;YWA.ud=3D"undefined";YWA.EXCLPRM=3D"";YWA.ONLOAD=3Dtrue;YWA.PID=3DYWA=
.ud;YWA.flashVer=3D"";YWA.isOnloadOverwrite=3Dfalse;YWA.windowOnload=3Dnu=
ll;YWA.errorId=3D"";YWA.isNewYWATEnabled=3Dfalse;YWA.windowOnerror=3Dnull=
;if(typeof =
window.ITTs=3D=3D=3D"undefined"){window.ITTs=3D[];}nan=3Dnavigator.appNam=
e;YWA.net=3D(nan=3D=3D=3D"Netscape");YWA.mic=3D(nan.substring(0,9)=3D=3D=3D=
"Microsoft"&&(typeof =
navigator.plugins=3D=3D=3DYWA.ud||navigator.plugins.length=3D=3D=3D0));YW=
A.mac=3D(navigator.userAgent.indexOf("Mac")>=3D0);YWA.gec=3D(navigator.us=
erAgent.indexOf("Firefox")>=3D0||navigator.userAgent.indexOf("Netscape")>=
=3D0);YWA.addOLH();};YWA.ywaOLH=3Dfunction(evt){if(YWA.windowOnload){YWA.=
windowOnload.call(window,evt);}if(YWA.ONLOAD){YWA.addOCHs();}window.onloa=
d=3DYWA.windowOnload;};YWA.addOLH=3Dfunction(){if(YWA.isOnloadOverwrite){=
return ;}var =
a=3D[];if(window.screen||a.toSource||(a.shift&&YWA.mic)){if(window.onload=
){if(!YWA.windowOnload){YWA.windowOnload=3Dwindow.onload;}}window.onload=3D=
YWA.ywaOLH;}YWA.isOnloadOverwrite=3Dtrue;};YWA.initialize();}YWA.ywaOCH=3D=
function(evt){var =
idx,rv,ittl;rv=3Dtrue;for(idx=3D0,ittl=3Dwindow.ITTs.length;idx<ittl;idx+=
=3D1){window.ITTs[idx].oco(this);}if(this.ywaOnClick){rv=3Dthis.ywaOnClic=
k(evt);}return =
rv;};YWA.addOCHs=3Dfunction(){if(YWA.isOnloadOverwrite){var =
i,ln;for(i=3D0,ln=3Ddocument.links.length;i<ln;i+=3D1){if(document.links[=
i].onclick){document.links[i].ywaOnClick=3Ddocument.links[i].onclick;}doc=
ument.links[i].onclick=3DYWA.ywaOCH;}}};YWA.ywaOEH=3Dfunction(){if(YWA.er=
rorId!=3D=3D""){window.ITTs[YWA.errorId].track(false,true);}};YWA.getTrac=
kerIdx=3Dfunction(pid){var =
idx,ittl;for(idx=3D0,ittl=3Dwindow.ITTs.length;idx<ittl;idx+=3D1){if(wind=
ow.ITTs[idx].PID=3D=3D=3Dpid){return idx;}}return =
-1;};YWA.getTracker=3Dfunction(pid){var =
rst,idx;YWA.isNewYWATEnabled=3Dtrue;if(!YWA.is(pid)){pid=3DYWA.PID;}idx=3D=
YWA.getTrackerIdx(pid);if(idx>=3D0){rst=3Dwindow.ITTs[idx];}else{rst=3Dne=
w YWAT(pid);}YWA.isNewYWATEnabled=3Dfalse;return =
rst;};YWA.is=3Dfunction(o){return(typeof =
o!=3D=3DYWA.ud);};YWA.getExcludePrm=3Dfunction(){return =
YWA.EXCLPRM;};YWA.setExcludePrm=3Dfunction(e){YWA.EXCLPRM=3DYWA.is(e)?e:"=
";};YWA.getOnload=3Dfunction(){return =
YWA.ONLOAD;};YWA.setOnload=3Dfunction(o){YWA.ONLOAD=3DYWA.is(o)?o:true;};=
YWA.getPID=3Dfunction(){if(YWA.is(document.scripts)){var =
idx,src,jsFile,prePath,sl;jsFile=3D"ywa.js";prePath=3D"ywa-";for(sl=3Ddoc=
ument.scripts.length,idx=3Dsl-1;idx>=3D0;idx-=3D1){src=3Ddocument.scripts=
[idx].src;if(YWA.is(src)&&src.indexOf(jsFile)=3D=3D=3Dsrc.length-jsFile.l=
ength){src=3Dsrc.substr(0,src.length-jsFile.length-1);src=3Dsrc.substr(sr=
c.lastIndexOf("/")+1+prePath.length);return"1000"+src;}}}return =
YWA.ud;};YWA.getPID();YWA.getExcludeDomains=3Dfunction(){return"";};YWA.g=
etExcludeProtocol=3Dfunction(){return"";};YWA.getDownloadExts=3Dfunction(=
){return"\\.pdf$|\\.doc$|\\.dot$|\\.xls$|\\.xlt$|\\.xlw$|\\.ppt$|\\.pps$|=
\\.zip$|\\.rar$|\\.gz$|\\.gzip$|\\.wav$|\\.mp[3-4]?$|\\.mpeg$";};YWA.getE=
rrorObj=3Dfunction(msg){var err;err=3Dnew =
Error(msg);if(!err.msg){err.msg=3Dmsg;}return =
err;};YWA.gcpn=3Dfunction(x){var =
k,l,z,i,j;z=3Dlocation.search;i=3Dz.indexOf("?"+x+"=3D");j=3Dz.indexOf("&=
"+x+"=3D");if((i=3D=3D=3D0)||(j>-1)){k=3D(i=3D=3D=3D0)?0:j;l=3Dz.indexOf(=
"&",k+1);return =
z.substring(k+2+x.length,(l>-1)?l:z.length);}return"";};YWA.getFileName=3D=
function(x){var =
i;i=3Dx.indexOf("?");if(i>0){x=3Dx.substring(0,i);}return =
x.substring(x.lastIndexOf("/")+1,x.length);};YWA.gh=3Dfunction(x){var =
i;i=3Dx.host.indexOf(":");return(i>=3D0)?x.host.substring(0,i):x.host;};Y=
WA.ghs=3Dfunction(x){var =
i;i=3Dx.indexOf("//");if(i>=3D0){x=3Dx.substring(i+2,x.length);i=3Dx.inde=
xOf("/");if(i>=3D0){return x.substring(0,i);}return =
x.substring(i+2,x.length);}return"";};YWA.gpr=3Dfunction(x){var =
y,i;y=3Dx.protocol;i=3Dy.indexOf(":");return(i>=3D0)?y:y+":";};YWA.gp=3Df=
unction(x){var =
y,i;y=3Dx.pathname;i=3Dy.indexOf("/");return(i=3D=3D=3D0)?y:"/"+y;};YWA.m=
xDmnRGXP=3Dfunction(v){if(v.toUpperCase().indexOf("REGEXP:")=3D=3D=3D0){r=
eturn new RegExp(v.substring(7),"i");}else{return new =
RegExp(YWA.mxRgXpStr(v),"i");}};YWA.mxRgXpStr=3Dfunction(e){while(e.index=
Of(" ")>=3D0){e=3De.replace(" ","");}var =
i,j,b,bl,r,a,al;r=3D"";a=3De.split(",");for(i=3D0,al=3Da.length;i<al;i+=3D=
1){b=3Da[i].split(".");for(j=3D0,bl=3Db.length;j<bl;j+=3D1){if(b[j].index=
Of("*")>=3D0){b[j]=3D".+";}}if(bl>0){a[i]=3Db.join("\\.");}}if(al>0){r+=3D=
a.join("$|^");}if(r.length>0){return"^"+r+"$";}return"";};function =
YWAT(pid){if(!YWA.isNewYWATEnabled){throw YWA.getErrorObj("Invalid =
method to get a tracking object.");}var =
i,heads;this.version=3D"5.17";this.EXCLDOMAINS=3D"";this.DWNLEXTS=3D"";th=
is.EXCLPRM=3DYWA.getExcludePrm();this.EXCLPRTCL=3D"";this.ONLOAD=3DYWA.ge=
tOnload();this.DOMAINS=3D"";this.DEBUG=3Dfalse;this.RUN=3Dfalse;if(!YWA.i=
s(pid)){this.PID=3DYWA.getPID();this.RUN=3Dthis.PID=3D=3D=3DYWA.ud;}else{=
this.PID=3Dpid;}if(window.location.protocol.indexOf("https:")=3D=3D=3D0){=
this.BD=3D"https://a.analytics.yahoo.com";}else{this.BD=3D"http://a.analy=
tics.yahoo.com";}this.BU=3Dthis.BD+"/p.pl?a=3D"+this.PID+"&v=3D"+this.ver=
sion;this.FU=3D"";this.URL=3Dthis.getClnUrl(document.URL?document.URL:doc=
ument.location);this.REFERRER=3D"";this.TOPLOCATION=3D"";this.cfn=3D[];th=
is.cfv=3D[];this.IT=3D"";this.date=3Dnew =
Date();this.PIXELDELAY=3Dfalse;this.DOCUMENTNAME=3Ddocument.title;this.CA=
MPAIGN=3D"";this.CMPPARM=3D"";this.PROMO=3D"";this.PROMOPARM=3D"";this.TP=
SC=3Dtrue;this.EXCL=3D"";this.FPCR=3D"";this.FPCN=3D"fpc"+this.PID;this.F=
PCV=3D"";this.FPCD=3D"";this.ENC=3D"";this.itvs=3D"";this.itsid=3D"";this=
.itvid=3D"";this.place=3Ddocument.body;try{heads=3Ddocument.getElementsBy=
TagName("head");if(YWA.is(heads)&&heads.length>0){this.place=3Dheads[0];}=
}catch(e){}this.FLV=3Dthis.flash();if(!YWA.is(window.ITTs)){window.ITTs=3D=
[];}this.idx=3Dwindow.ITTs.length;window.ITTs[this.idx]=3Dthis;this.ita=3D=
["DOCUMENTNAME","b","DOCUMENTGROUP","c","MEMBERID","m","URL","f","ACTION"=
,"x","AMOUNT","xa","ORDERID","oc","TAX","xt","SHIPPING","xs","DISCOUNT","=
xd","SKU","p","PRODUCTS","u","UNITS","q","AMOUNTS","r","CMPQUERY","cq","I=
SK","isk","ISR","isr"];this.prmord=3D["a","v","b","c","m","f","e","t","n"=
,"d","cp","cq","scp","ci","enc","x","sid","ca","oc","p","q","r","xa","xd"=
,"xs","xt","el","fn","flv","fpc","isk","isr","g","h","ittidx","ix","j","k=
","l","tp","nr","js","cf01","cf02","cf03","cf04","cf05","cf06","cf07","cf=
08","cf09","cf10","cf11","cf12","cf13","cf14","cf15","cf16","cf17","cf18"=
,"cf19","cf20","cf21","cf22","cf23","cf24","cf25","cf26","cf27","cf28","c=
f29","cf30","cf31","cf32","cf33","cf34","cf35","cf36","cf37","cf38","cf39=
","cf40","cf41","cf42","cf43","cf44","cf45","cf46","cf47","cf48","cf49","=
cf50","cf51","cf52","cf53","cf54","cf55","cf56","cf57","cf58","cf59","cf6=
0","cf61","cf62","cf63","cf64","cf65","cf66","cf67","cf68","cf69","cf70",=
"cf71","cf72","cf73","cf74","cf75","cf76","cf77","cf78","cf79","cf80","cf=
81","cf82","cf83","cf84","cf85","cf86","cf87","cf88","cf89","cf90","cf91"=
,"cf92","cf93","cf94","cf95","cf96","cf97","cf98","cf99","cf100"];for(i=3D=
0;i<10;i+=3D1){this.ita[this.ita.length]=3D"P"+(1+i);this.ita[this.ita.le=
ngth]=3D"p"+(1+i);}for(i=3D0;i<99;i+=3D1){this.ita[this.ita.length]=3D"CF=
"+((i<9)?"0":"")+(1+i);this.ita[this.ita.length]=3D"cf"+(1+i);}this.imgsl=
=3D0;if(YWA.is(document.charset)){this.ENC=3Ddocument.charset;}else{if(YW=
A.is(document.characterSet)){this.ENC=3Ddocument.characterSet;}else{this.=
ENC=3D"";}}this.FPCR=3D"&ittidx=3D"+this.idx+"&fpc=3D"+encodeURIComponent=
(this.getCookie(this.FPCN));this.hasFPC=3Dfalse;}YWAT.prototype.getDocume=
ntName=3Dfunction(){return =
this.DOCUMENTNAME;};YWAT.prototype.setDocumentName=3Dfunction(dn){this.DO=
CUMENTNAME=3Ddn;};YWAT.prototype.getDocumentGroup=3Dfunction(){return =
this.DOCUMENTGROUP;};YWAT.prototype.setDocumentGroup=3Dfunction(dg){this.=
DOCUMENTGROUP=3Ddg;};YWAT.prototype.getMemberId=3Dfunction(){return =
this.MEMBERID;};YWAT.prototype.setMemberId=3Dfunction(m){this.MEMBERID=3D=
m;};YWAT.prototype.getAction=3Dfunction(){return =
this.ACTION;};YWAT.prototype.setAction=3Dfunction(a){this.ACTION=3Da;};YW=
AT.prototype.getAmount=3Dfunction(){return =
this.AMOUNT;};YWAT.prototype.setAmount=3Dfunction(a){this.AMOUNT=3Da;};YW=
AT.prototype.getOrderId=3Dfunction(){return =
this.ORDERID;};YWAT.prototype.setOrderId=3Dfunction(oi){this.ORDERID=3Doi=
;};YWAT.prototype.getTax=3Dfunction(){return =
this.TAX;};YWAT.prototype.setTax=3Dfunction(t){this.TAX=3Dt;};YWAT.protot=
ype.getShipping=3Dfunction(){return =
this.SHIPPING;};YWAT.prototype.setShipping=3Dfunction(s){this.SHIPPING=3D=
s;};YWAT.prototype.getDiscount=3Dfunction(){return =
this.DISCOUNT;};YWAT.prototype.setDiscount=3Dfunction(d){this.DISCOUNT=3D=
d;};YWAT.prototype.getSKU=3Dfunction(){return =
this.SKU;};YWAT.prototype.setSKU=3Dfunction(s){this.SKU=3Ds;};YWAT.protot=
ype.getUnits=3Dfunction(){return =
this.UNITS;};YWAT.prototype.setUnits=3Dfunction(u){this.UNITS=3Du;};YWAT.=
prototype.getAmounts=3Dfunction(){return =
this.AMOUNTS;};YWAT.prototype.setAmounts=3Dfunction(a){this.AMOUNTS=3Da;}=
;YWAT.prototype.getCmpQuery=3Dfunction(){return =
this.CMPQUERY;};YWAT.prototype.setCmpQuery=3Dfunction(c){this.CMPQUERY=3D=
c;};YWAT.prototype.getISK=3Dfunction(){return =
this.ISK;};YWAT.prototype.setISK=3Dfunction(i){this.ISK=3Di;};YWAT.protot=
ype.getISR=3Dfunction(){return =
this.ISR;};YWAT.prototype.setISR=3Dfunction(i){this.ISR=3Di;};YWAT.protot=
ype.getEF=3Dfunction(n){n=3DparseInt(n,10);return =
this["P"+n];};YWAT.prototype.setEF=3Dfunction(n,v){n=3DparseInt(n,10);thi=
s["P"+n]=3Dv;};YWAT.prototype.getCF=3Dfunction(n){n=3DparseInt(n,10);retu=
rn =
this["CF"+((n<10)?"0":"")+n];};YWAT.prototype.setCF=3Dfunction(n,v){n=3Dp=
arseInt(n,10);this["CF"+((n<10)?"0":"")+n]=3Dv;};YWAT.prototype.getDebug=3D=
function(){return =
this.DEBUG;};YWAT.prototype.setDebug=3Dfunction(d){this.DEBUG=3DYWA.is(d)=
?d:false;};YWAT.prototype.getRun=3Dfunction(){return =
this.RUN;};YWAT.prototype.setRun=3Dfunction(r){if(!YWA.is(r)||r){this.RUN=
=3Dthis.PID!=3D=3DYWA.ud;}else{this.RUN=3Dfalse;}};YWAT.prototype.getUrl=3D=
function(){return =
this.URL;};YWAT.prototype.setUrl=3Dfunction(u){this.URL=3Dthis.getClnUrl(=
u);};YWAT.prototype.getEncoding=3Dfunction(){return =
this.ENC;};YWAT.prototype.setEncoding=3Dfunction(e){if(YWA.is(e)){this.EN=
C=3De;}else{this.ENC=3D"";}};YWAT.prototype.getCookieDomain=3Dfunction(){=
return =
this.FPCD;};YWAT.prototype.setCookieDomain=3Dfunction(d){if(YWA.is(d)&&d!=
=3D=3D""){this.FPCD=3Dd;}else{this.FPCD=3D"";}};YWAT.prototype.getTPSC=3D=
function(){return =
this.TPSC;};YWAT.prototype.setTPSC=3Dfunction(n){this.TPSC=3DYWA.is(n)?n:=
true;};YWAT.prototype.getReferrer=3Dfunction(){return =
this.REFERRER;};YWAT.prototype.setReferrer=3Dfunction(r){if(YWA.is(r)&&r.=
length>0){this.REFERRER=3Dr;}};YWAT.prototype.getPixelDelay=3Dfunction(){=
return =
this.PIXELDELAY;};YWAT.prototype.setPixelDelay=3Dfunction(d){this.PIXELDE=
LAY=3DYWA.is(d)?d:false;};YWAT.prototype.getDomains=3Dfunction(){return =
this.DOMAINS;};YWAT.prototype.setDomains=3Dfunction(d){this.DOMAINS=3D(YW=
A.is(d)&&d!=3D=3D"")?d:YWA.ud;};YWAT.prototype.getFlashUrl=3Dfunction(){r=
eturn =
this.FU;};YWAT.prototype.setFlashUrl=3Dfunction(u){this.FU=3DYWA.is(u)?u:=
"";};YWAT.prototype.getExcludeDomains=3Dfunction(){var =
d;d=3DYWA.getExcludeDomains();d+=3D(d.length>0&&this.EXCLDOMAINS.length>0=
?",":"")+this.EXCLDOMAINS;return =
d;};YWAT.prototype.addExcludeDomain=3Dfunction(d){this.EXCLDOMAINS+=3D(th=
is.EXCLDOMAINS.length>0?",":"")+d;};YWAT.prototype.removeExcluseDomain=3D=
function(d){var =
i,ds1,ds2,ds1l;ds1=3Dthis.EXCLDOMAINS.split(",");ds2=3D[];for(i=3D0,ds1l=3D=
ds1.length;i<ds1l;i+=3D1){if(ds1[i]!=3D=3Dd){ds2[ds2.length]=3Dds1[i];}}t=
his.EXCLDOMAINS=3Dds2.join(",");};YWAT.prototype.getDownloadExts=3Dfuncti=
on(){var =
e;e=3DYWA.getDownloadExts();e+=3D(e.length>0&&this.DWNLEXTS.length>0?"|":=
"")+this.DWNLEXTS;return =
e;};YWAT.prototype.addDownloadExt=3Dfunction(e){var =
i,c,e1,e2,e1l;e1=3De.toLowerCase();e2=3D"";for(i=3D0,e1l=3De1.length;i<e1=
l;i+=3D1){c=3De1.charAt(i);if((c>=3D"a"&&c<=3D"z")||(c>=3D"0"&&c<=3D"9")|=
|c=3D=3D=3D"-"||c=3D=3D=3D"_"){e2+=3Dc;}}this.DWNLEXTS+=3D(this.DWNLEXTS.=
length>0?"|":"")+"\\."+e2+"$";};YWAT.prototype.removeDownloadExt=3Dfuncti=
on(e){var =
i,es1,es2,es1l;es1=3Dthis.DWNLEXTS.split("|");es2=3D[];for(i=3D0,es1l=3De=
s1.length;i<es1l;i+=3D1){if(es1[i]!=3D=3D"\\."+e.toLowerCase()+"$"){es2[e=
s2.length]=3Des1[i];}}this.DWNLEXTS=3Des2.join("|");};YWAT.prototype.getE=
xcludeProtocol=3Dfunction(){var =
p;p=3DYWA.getExcludeProtocol();p+=3D(p.length>0&&this.EXCLPRTCL.length>0?=
",":"")+this.EXCLPRTCL;return =
p;};YWAT.prototype.addExcludeProtocol=3Dfunction(e){this.EXCLPRTCL+=3D(th=
is.EXCLPRTCL.length>0?",":"")+e.toLowerCase();};YWAT.prototype.removeExcl=
udeProtocol=3Dfunction(e){var =
i,es1,es2,es1l;es1=3Dthis.EXCLPRTCL.split(",");es2=3D[];for(i=3D0,es1l=3D=
es1.length;i<es1l;i+=3D1){if(es1[i]!=3D=3De.toLowerCase()){es2[es2.length=
]=3Des1[i];}}this.EXCLPRTCL=3Des2.join(",");};YWAT.prototype.isProtocolEx=
cluded=3Dfunction(){var ep;ep=3D","+this.getExcludeProtocol()+",";return =
ep.indexOf(","+window.location.protocol+",")>=3D0;};YWAT.prototype.pp=3Df=
unction(){var =
i,ital,its;its=3D[];for(i=3D0,ital=3Dthis.ita.length;i+1<ital;i+=3D2){if(=
(YWA.is(this[this.ita[i]]))&&(this[this.ita[i]]!=3D=3D"")){its[i]=3D"&"+t=
his.ita[i+1]+"=3D"+encodeURIComponent(this[this.ita[i]]);}}this.IT+=3Dits=
.join("");};YWAT.prototype.reset=3Dfunction(){var =
i,ital;for(i=3D8,ital=3Dthis.ita.length;i+1<ital;i+=3D2){if((YWA.is(this[=
this.ita[i]]))&&(this[this.ita[i]]!=3D=3D"")){this[this.ita[i]]=3D"";}}};=
YWAT.prototype.flash=3Dfunction(){if(YWA.flashVer=3D=3D=3D""){var =
swVer2,fd,np;fd=3D"";np=3Dnavigator.plugins;if(typeof =
np!=3D=3DYWA.ud&&np!=3D=3Dnull&&np.length>0){if(np["Shockwave Flash =
2.0"]||np["Shockwave Flash"]){swVer2=3Dnp["Shockwave Flash 2.0"]?" =
2.0":"";fd=3Dnp["Shockwave =
Flash"+swVer2].description;}}else{sVBSwfVer=3Dfunction(i){var =
swC,swV;swV=3D0;swC=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);if(swC!=3D=3Dnull&&type=
of swC!=3D=3D"undefined"){swV=3DswC.GetVariable("$version");}return =
swV;};try{fd=3DsVBSwfVer(1);}catch(e){fd=3D"unknown";}}YWA.flashVer=3Dfd;=
}return =
YWA.flashVer;};YWAT.prototype.setCookie=3Dfunction(name,value,off){var =
expiry,cookie,d;d=3Dnew =
Date();d.setTime(d.getTime()+(off*1000));expiry=3D(off>0)?"; =
expires=3D"+d.toGMTString():"";if(off<0){expiry=3D"; expires=3DThu, =
01-Jan-1970 00:00:01 GMT";}cookie=3Dname+"=3D"+value+expiry+"; =
path=3D/"+((this.FPCD!=3D=3D"")?("; =
domain=3D"+this.FPCD):(""));document.cookie=3Dcookie;};YWAT.prototype.del=
eteCookie=3Dfunction(name){return =
this.setCookie(name,"1",-1);};YWAT.prototype.getCookie=3Dfunction(name){v=
ar =
start,end,dc,pos;dc=3Ddocument.cookie;pos=3Ddc.indexOf(name+"=3D");if(pos=
!=3D=3D-1){start=3Dpos+name.length+1;end=3Ddc.indexOf(";",start);if(end=3D=
=3D=3D-1){end=3Ddc.length;}return =
dc.substring(start,end);}return"";};YWAT.prototype.FPCSupport=3Dfunction(=
){if(this.getCookie(this.FPCN)!=3D=3D""){return true;}var =
dr,dn,d,dt;dn=3D"itfpctmp";d=3Dnew =
Date();dt=3D"fpc-"+d.getTime();this.setCookie(dn,dt,180);dr=3Dthis.getCoo=
kie(dn);if(dr=3D=3D=3Ddt){this.deleteCookie(dn);return true;}return =
false;};YWAT.prototype.trunc=3Dfunction(x,z){var =
url,qry,prms,x2,idx1,idx2,isAmp,prmordl,prmsl;if(x.length<=3Dz){return =
x;}url=3Dx.split("?");if(url.length>1){x2=3Durl[0]+"?";qry=3Durl[1];prms=3D=
qry.split("&");prms.sort();isAmp=3Dfalse;prmsl=3Dprms.length;for(idx1=3D0=
,prmordl=3Dthis.prmord.length;idx1<prmordl;idx1+=3D1){for(idx2=3D0;idx2<p=
rmsl;idx2+=3D1){if(prms[idx2].indexOf(this.prmord[idx1]+"=3D")=3D=3D=3D0)=
{if(x2.length+"&".length+prms[idx2].length>z){return =
x2+"&trnc=3D1";}x2+=3D(isAmp?"&":"")+prms[idx2];isAmp=3Dtrue;break;}}}ret=
urn x2;}else{return x;}};YWAT.prototype.chkl0=3Dfunction(x,y,z,Z,r){var =
i,d,l1,l2,k,bbf,iq,ik,x2,xl,yl;for(i=3D0,yl=3Dy.length,xl=3Dx.length;i<yl=
&&xl>z;i+=3D1){d=3Dx.length-z;l1=3Dx.indexOf("&"+y[i]+"=3D");if(l1>0){l1+=
=3Dy[i].length+2;l2=3Dx.indexOf("&",l1);if(l2>0){bbf=3Dl1;iq=3Dx.toLowerC=
ase().indexOf("%3f",l1);ik=3Dx.toLowerCase().indexOf("%3d",l1);if(l2-l1>d=
+r.length+Z){l1+=3Dl2-l1-d-r.length;for(k=3D1;k<10;k+=3D1){if(x.charAt(l1=
-k)=3D=3D=3D"%"){l1-=3Dk;break;}}}else{if(l2-l1>Z){l1+=3DZ;for(k=3D1;k<10=
;k+=3D1){if(x.charAt(l1-k)=3D=3D=3D"%"){l1-=3Dk;break;}}}else{continue;}}=
x2=3Dx.substring(0,l1);if(iq>0&&iq<l2){if(ik<0||ik>l2){x2+=3D"%3D";}x2+=3D=
"%26";}x2+=3Dr;x2+=3Dx.substring(l2);x=3Dx2;}}}if(x.length>z){return =
this.chkl(x,y,z,Z/2,r);}return =
x;};YWAT.prototype.chkl=3Dfunction(x,y,z,Z,r){x=3Dthis.chkl0(x,y,z,Z,r);i=
f(x.length>z){x=3Dthis.chkl0(x,y,z,Z/2,r);}return =
x;};YWAT.prototype.trk=3Dfunction(s){var =
s2,i;s2=3Dthis.trunc(this.BU+(!this.TPSC?"&tp=3D0":"")+"&enc=3D"+encodeUR=
IComponent(this.ENC)+this.IT+s+"&ix=3D"+this.imgsl+this.FPCR,2000);if(!th=
is.isProtocolExcluded()){this.imgsl+=3D1;if(this.DEBUG){window.alert(s2);=
}else{i=3Dnew =
Image();if(YWA.net||this.PIXELDELAY){window.setTimeout(function(){i.src=3D=
s2;},1);}else{i.src=3Ds2;}window.setTimeout(function(){i=3Dnull;},10000);=
}}else{if(this.DEBUG){window.alert("'"+s2+"' isn't tracked because of =
excluded protocol.");}}this.reset();this.IT=3D"";return =
s2;};YWAT.prototype.gcpn=3Dfunction(x){return =
YWA.gcpn(x);};YWAT.prototype.getFileName=3Dfunction(x){return =
YWA.getFileName(x);};YWAT.prototype.gh=3Dfunction(x){return =
YWA.gh(x);};YWAT.prototype.ghs=3Dfunction(x){return =
YWA.ghs(x);};YWAT.prototype.gpr=3Dfunction(x){return =
YWA.gpr(x);};YWAT.prototype.gp=3Dfunction(x){return =
YWA.gp(x);};YWAT.prototype.mxDmnRGXP=3Dfunction(v){return =
YWA.mxDmnRGXP(v);};YWAT.prototype.mxRgXpStr=3Dfunction(e){return =
YWA.mxRgXpStr(e);};YWAT.prototype.customfield_reset=3Dfunction(){this.cfn=
.length=3D0;this.cfv.length=3D0;};YWAT.prototype.customfield_set=3Dfuncti=
on(n,v){this.cfn[this.cfn.length]=3Dn;this.cfv[this.cfv.length]=3Dv;};YWA=
T.prototype.cf_ts=3Dfunction(){var =
i,u,cfnl,cfvl;u=3D"&cf=3D1";for(i=3D0,cfnl=3Dthis.cfn.length,cfvl=3Dthis.=
cfv.length;i<cfnl&&i<cfvl;i+=3D1){u+=3D"&cn"+i+"=3D"+encodeURIComponent(t=
his.cfn[i])+"&cv"+i+"=3D"+encodeURIComponent(this.cfv[i]);}return =
u;};YWAT.prototype.submit_customfield=3Dfunction(){if(this.cfn.length>0&&=
this.cfv.length>0){var =
u;u=3Dthis.cf_ts();this.customfield_reset();this.pp();this.trk(u);}};YWAT=
.prototype.submit_action=3Dfunction(){this.pp();this.trk("&ca=3D1");};YWA=
T.prototype.submit_icmp=3Dfunction(){this.pp();this.trk("&ci=3D1");};YWAT=
.prototype.exitlink=3Dfunction(ln){this.pp();this.trk("&el=3D"+encodeURIC=
omponent(ln));};YWAT.prototype.el=3Dfunction(x){var =
pt;if(YWA.gh(location)=3D=3D=3DYWA.gh(x)){return =
true;}if(!this.isProtocolExcluded()){pt=3D(YWA.is(this.DOMAINS)&&this.DOM=
AINS!=3D=3D"")?YWA.mxDmnRGXP(this.DOMAINS):YWA.mxDmnRGXP(YWA.gh(location)=
);}else{pt=3DYWA.mxDmnRGXP("protocolexclusion");}if(pt.test(YWA.gh(x))){r=
eturn =
true;}if(x.href.indexOf("java")!=3D=3D0){this.exitlink(x.href);}return =
true;};YWAT.prototype.download=3Dfunction(fn){this.pp();this.trk("&fn=3D"=
+encodeURIComponent(fn));};YWAT.prototype.oco=3Dfunction(x){var =
pt,fn,excl;if(!this.ONLOAD){return =
true;}excl=3Dthis.getExcludeDomains();if(excl!=3D=3D""){pt=3DYWA.mxDmnRGX=
P(excl);if(pt.test(YWA.gh(x))){if(this.DEBUG){window.alert("'"+YWA.gh(x)+=
"' isn't tracked as exitlink.");}return =
true;}}if(YWA.is(x.pathname)){fn=3DYWA.getFileName(x.pathname);if(fn!=3D=3D=
""){pt=3Dnew =
RegExp(this.getDownloadExts(),"i");if(pt.test(fn)&&(fn.indexOf(".")!=3D=3D=
-1)){if(((this.EXCL!=3D=3D"")&&(!YWA.mxDmnRGXP(this.EXCL).test(x.pathname=
)))||(this.EXCL.length=3D=3D=3D0)){this.download(x.href);}}else{this.el(x=
);}}else{this.el(x);}}};YWAT.prototype.track=3Dfunction(d,i){var =
cs,pt,t,r,its;t=3D"";r=3Ddocument.referrer;YWA.errorId=3Dthis.idx;its=3D[=
];if(YWA.is(this.REFERRER)&&this.REFERRER.length>0){r=3Dthis.REFERRER;}el=
se{if((navigator.userAgent.indexOf("Mac")>=3D0)&&(navigator.userAgent.ind=
exOf("MSIE =
4")>=3D0)){r=3Ddocument.referrer;}else{if(d){YWA.windowOnerror=3Dwindow.o=
nerror;window.onerror=3DYWA.ywaOEH;if(document.location!=3D=3Dtop.locatio=
n){try{r=3Dtop.document.referrer;t=3Dtop.location.href;}catch(e2){its[0]=3D=
"&nr=3Dwebkit";}}}else{its[0]=3D"&nr=3Dt";}}}if(YWA.windowOnerror){window=
.onerror=3DYWA.windowOnerror;}else{window.onerror=3Dnull;}this.pp();if(r.=
length>0){pt=3DYWA.is(this.DOMAINS)?YWA.mxDmnRGXP(this.DOMAINS):YWA.mxDmn=
RGXP(YWA.gh(location));its[1]=3D"&e=3D"+encodeURIComponent(this.trunc(pt.=
test(YWA.ghs(r))?this.getClnUrl(r):r,200));}if(t.length>0){its[2]=3D"&t=3D=
"+encodeURIComponent(t);}cs=3Dthis.FPCSupport();this.date=3Dnew =
Date();its[3]=3D"&flv=3D"+encodeURIComponent(this.FLV);its[4]=3D"&d=3D"+e=
ncodeURIComponent(this.date.toGMTString());its[5]=3D"&n=3D"+encodeURIComp=
onent(parseInt(this.date.getTimezoneOffset()/60,10));its[6]=3D"&g=3D"+enc=
odeURIComponent(YWA.net?navigator.language:navigator.userLanguage);its[7]=
=3D"&h=3D"+encodeURIComponent((navigator.javaEnabled()?"Y":"N"));try{its[=
8]=3D"&j=3D"+encodeURIComponent(screen.width+"x"+screen.height);its[9]=3D=
"&k=3D"+encodeURIComponent(YWA.mic?screen.colorDepth:screen.pixelDepth);}=
catch(e){}its[10]=3D"&l=3D"+((cs)?"true":"false");if(this.CAMPAIGN!=3D=3D=
""){its[11]=3D"&cp=3D"+encodeURIComponent(this.CAMPAIGN);}if(this.CMPPARM=
!=3D=3D""){its[12]=3D"&cp=3D"+encodeURIComponent(YWA.gcpn(this.CMPPARM));=
}if(this.PROMO!=3D=3D""){its[13]=3D"&scp=3D"+encodeURIComponent(this.PROM=
O);}if(this.PROMOPARM!=3D=3D""){its[14]=3D"&scp=3D"+encodeURIComponent(YW=
A.gcpn(this.PROMOPARM));}this.IT+=3Dits.join("");if(this.RUN){return =
;}if(cs&&i){this.fpc();}else{this.trk("");}YWA.errorId=3D"";};YWAT.protot=
ype.submitPT=3Dfunction(){return =
this.submit(false);};YWAT.prototype.submit=3Dfunction(fpc){var =
t;t=3D(typeof =
fpc).toLowerCase();if(t=3D=3D=3D"undefined"||t!=3D=3D"boolean"){fpc=3Dtru=
e;}fpc=3D(this.hasFPC?false:fpc);return =
this.track(true,fpc);};YWAT.prototype.fpc=3Dfunction(){this.getFPCvars();=
};YWAT.prototype.ywaW3C=3Dfunction(mode){var =
idScr,m_url,urls;urls=3D[];urls[0]=3Dthis.BD;urls[1]=3D"/fpc.pl?a=3D";url=
s[2]=3Dthis.PID;urls[3]=3D"&v=3D";urls[4]=3Dthis.version;if(!this.TPSC){u=
rls[5]=3D"&tp=3D0";}urls[6]=3D"&enc=3D";urls[7]=3DencodeURIComponent(this=
.ENC);urls[8]=3Dthis.IT;urls[9]=3Dthis.FPCR;m_url=3Dthis.trunc(urls.join(=
""),2000);if(!this.isProtocolExcluded()){if(mode=3D=3D=3D0){if(!this.DEBU=
G){idScr=3Ddocument.createElement("SCRIPT");idScr.defer=3Dtrue;idScr.type=
=3D"text/javascript";idScr.src=3Dm_url;this.place.appendChild(idScr);this=
.hasFPC=3Dtrue;}else{window.alert(m_url);}}else{this.trk("");}}else{if(th=
is.DEBUG){window.alert("'"+m_url+"' isn't tracked because of excluded =
protocol.");}}this.reset();this.IT=3D"";};YWAT.prototype.getFPCvars=3Dfun=
ction(){var =
cs=3Dthis.FPCSupport();if(cs&&!this.hasFPC){this.ywaW3C(0);}else{this.ywa=
W3C(1);}};YWAT.prototype.setFPCookies=3Dfunction(){if(this.FPCV!=3D=3D"")=
{this.setCookie(this.FPCN,this.FPCV,31536000);}};YWAT.prototype.page=3Dfu=
nction(docName,docGroup,memberid,action,amount){var =
u;u=3Dthis.URL;this.URL=3Dthis.FU!=3D=3D""?this.FU:"FLASH";this.DOCUMENTN=
AME=3DdocName;this.DOCUMENTGROUP=3DdocGroup;this.MEMBERID=3Dmemberid;this=
.ACTION=3Daction;this.AMOUNT=3Damount;this.submit();this.URL=3Du;};YWAT.p=
rototype.getClnUrl=3Dfunction(u){var =
u2,p,exc,exc2,excl,i,r,k,pn,re,nonexc,pl,accept,specchars,a;nonexc=3D"_S_=
PEPOS,_S_PEPRM";specchars=3D["[","]"];if(!YWA.is(this.EXCLPRM)){return =
u;}u2=3Du.split("?");if(u2.length=3D=3D=3D1){return =
u;}p=3Du2[1].split("&");exc=3D((this.EXCLPRM.indexOf(";")>=3D0)?this.EXCL=
PRM.split(";"):this.EXCLPRM.split(","));exc2=3D[];i=3D0;for(k=3D0,excl=3D=
exc.length;k<excl;k+=3D1){if(k<excl-1||k=3D=3D=3Dexcl-1&&exc[k]!=3D=3D"")=
{exc2[i]=3Dexc[k];i+=3D1;}}excl=3Di;r=3D"";for(k=3D0,pl=3Dp.length;k<pl;k=
+=3D1){pn=3Dp[k].split("=3D")[0];for(i=3D0;i<specchars.length;i+=3D1){a=3D=
pn.indexOf(specchars[i]);if(a>=3D0){pn=3Dpn.substring(0,a)+"\\"+pn.substr=
ing(a,pn.length);}}accept=3Dtrue;re=3Dnew =
RegExp("\\b"+pn+"\\b","gi");for(i=3D0;i<excl;i+=3D1){accept=3Daccept&&(pn=
.length>0&&!re.test(exc2[i])||pn.length=3D=3D=3D0&&exc2[i]!=3D=3D"");}if(=
accept){r+=3D((r.length>0)?"&":"")+p[k];}}return =
u2[0]+((r.length>0)?"?"+r:"");};
------=_NextPart_000_007D_01CC5130.144666E0--

