if(window.jstiming){window.jstiming.beaconImageReferences_={};window.jstiming.reportCounter_=1;function getTick(b,a,f){a=b.t[a];b=b.t.start;if(!a||!(b||f))return undefined;if(f!=undefined)b=f;return a-b}window.jstiming.report=function(b,a,f){var e="";if(window.jstiming.pt){e+="&srt="+window.jstiming.pt;delete window.jstiming.pt}try{if(window.external&&window.external.tran)e+="&tran="+window.external.tran;else if(window.gtbExternal&&window.gtbExternal.tran)e+="&tran="+window.gtbExternal.tran()}catch(c){}if(b.dapperCookie_)e+=
"&"+b.dapperCookie_;var i=b.t,d=i.start,h=[];for(var r in i)r!="start"&&d&&h.push(r+"."+getTick(b,r));delete i.start;if(a)for(var m in a)e+="&"+m+"="+a[m];b=[f?f:"http://csi.gstatic.com/csi","?v=3","&s="+(window.jstiming.sn||"codesite")+"&action=",b.name,e,"&rt=",h.join(",")].join("");a=new Image;var z=window.jstiming.reportCounter_++;window.jstiming.beaconImageReferences_[z]=a;a.onload=a.onerror=function(){delete window.jstiming.beaconImageReferences_[z]};a.src=b;a=null;return b}};(function(){var b={dictionariesList:["products","programs","searchSuggest","searchResultTabs"],products:{includeInSearchSuggest:true,entries:{android:{title:"Android",groupsTitle:"Grupos de Android",url:"/android/",keywords:{"dispositivos m\u00f3viles":10}},gdata:{title:"API de datos de Google",groupsTitle:"Grupos de API de datos de Google",url:"/apis/gdata/",keywords:{apis:1,feed:1,entradas:6,"miembros destacados":10,"api de datos":10,java:1}},blogger:{title:"API de datos de Blogger (Labs)",groupsTitle:"Grupos del API de datos de Blogger",
url:"/apis/blogger/",keywords:{apis:1,feed:1,entradas:2,"miembros destacados":1,"api de datos":4}},chromium:{title:"Chromium",groupsTitle:"Grupos de Chromium",url:"/chromium/",keywords:{navegador:1,chrome:1,chromium:1,v8:1}},feedburner:{title:"API de Feedburner (Labs)",groupsTitle:"Grupos de FeedBurner",url:"/apis/feedburner/",keywords:{feed:10}},accounts:{title:"Autenticaci\u00f3n de cuentas de Google",groupsTitle:"Grupos de la autenticaci\u00f3n de cuentas de Google",url:"/apis/accounts/",keywords:{apis:1,
feed:1,entradas:1,"miembros destacados":1}},adsense:{title:"API de Google AdSense",groupsTitle:"Grupos del API de Google AdSense",url:"/apis/adsense/",keywords:{anuncios:1,api:1}},adwords:{title:"API de Google AdWords",groupsTitle:"Grupos del API de Google AdWords",url:"/apis/adwords/",keywords:{anuncios:2,api:1}},ajax:{title:"API AJAX de Google",groupsTitle:"Grupos de API AJAX de Google",url:"/apis/ajax/",keywords:{ajax:10,api:10}},ajaxfeeds:{title:"API AJAX de Google para feeds",groupsTitle:"API AJAX de Google para feeds Grupos",
url:"/apis/ajaxfeeds/",keywords:{ajax:8,apis:5,feed:6}},ajaxlanguage:{title:"API AJAX de idiomas de Google",groupsTitle:"API AJAX de idiomas de Google Grupos",url:"/apis/ajaxlanguage/",keywords:{ajax:8,apis:5,idioma:10}},ajaxsearch:{title:"API AJAX de Google para b\u00fasquedas",groupsTitle:"Grupos de API AJAX de Google para b\u00fasquedas",url:"/apis/ajaxsearch/",keywords:{ajax:9,apis:10,buscar:6,traducir:5}},analytics:{title:"Google Analytics",groupsTitle:"Grupos de Google Analytics",url:"/apis/analytics/",
keywords:{herramientas:1,api:1,"api de datos":1}},appengine:{title:"Google App Engine",groupsTitle:"Grupos de Google App Engine",url:"/appengine/",keywords:{apis:5,herramientas:1,java:8,eclipse:1,app:8,"app engine":10,complemento:1}},googleapps:{title:"Herramientas para desarrolladores de Google Apps",url:"/googleapps/",keywords:{"google apps":10,gadgets:1,enterprise:1,"app engine":1,empresa:1,cortafuegos:1,sdc:1}},apps:{title:"API de Google Apps",groupsTitle:"Grupos de API de Google Apps",url:"/apis/apps/",
keywords:{api:1}},base:{title:"API de datos de Google Base (Labs)",groupsTitle:"Grupos del API de datos de Google Base",url:"/apis/base/",keywords:{apis:1,feed:1,entradas:2,"miembros destacados":1,"api de datos":2}},books:{title:"API de B\u00fasqueda de libros de Google (Labs)",groupsTitle:"Grupos de API de Google Libros",url:"/apis/books/",keywords:{ajax:9,apis:10,buscar:1,feeds:1,libros:1}},calendar:{title:"Herramientas y API de Google Calendar",groupsTitle:"Grupos de Herramientas y API de Google Calendar",
url:"/apis/calendar/",keywords:{apis:1,feed:5,entradas:2,gadgets:3,"miembros destacados":1,"api de datos":3,herramientas:1}},chart:{title:"API de Google Chart",groupsTitle:"Grupos del API de Google Chart",url:"/apis/chart/",keywords:{apis:1,"gr\u00e1ficos":1}},checkout:{title:"API de Google Checkout",groupsTitle:"Grupos de API de Google Checkout",url:"/apis/checkout/",keywords:{api:5}},csearch:{title:"Google Code Search (Labs)",url:"http://www.google.com/codesearch",keywords:{buscar:1}},codesearch:{title:"API de datos de Google Code Search (Labs)",
groupsTitle:"Grupos del API de datos de Google Code Search",url:"/apis/codesearch/",keywords:{apis:1,feed:1,entradas:1,"miembros destacados":1,buscar:1}},customsearch:{title:"API del motor de b\u00fasqueda personalizado de Google",groupsTitle:"Grupos de API del motor de b\u00fasqueda personalizado de Google",url:"/apis/customsearch/",keywords:{api:1,anuncios:1,"personalizaci\u00f3n":1,buscar:3,"motor de b\u00fasqueda personalizado":1}},contacts:{title:"API de Google Contacts",groupsTitle:"Grupos de API de Google Contacts",
url:"/apis/contacts/",keywords:{apis:1,feed:1,entradas:2,"miembros destacados":1,"contactos ":1,"api de datos":4}},coupons:{title:"Feeds de vales de descuento de Google (Labs)",url:"/apis/coupons/",keywords:{feed:1}},desktop:{title:"API de Google Desktop (Labs)",groupsTitle:"Grupos de API de Google Desktop",url:"/apis/desktop/",keywords:{gadgets:1,buscar:1}},documents:{title:"API de datos para la lista de Google Docs",groupsTitle:"Grupos del API de datos para la lista de Google Docs",url:"/apis/documents/",
keywords:{apis:1,feed:1,entradas:2,"miembros destacados":1,"api de datos":3}},"in-stream":{title:"DoubleClick In-Stream (Labs)",url:"/apis/in-stream/",keywords:{api:1,DoubleClick:10,anuncios:1,"v\u00eddeo":1,flash:1}},earth:{title:"API de Google Earth",groupsTitle:"Grupos de API de Google Earth",url:"/apis/earth/",keywords:{api:4,desarrollador:1,"developer day":1,geo:6,mapas:6,kml:6}},eclipse:{title:"Complemento de Google para Eclipse",url:"/eclipse/",keywords:{java:3,gwt:1,"app engine":1,"plug-in":10}},
finance:{title:"API de datos de Google Finance (Labs)",url:"/apis/finance/",keywords:{api:4,feeds:1,"API de datos":1}},flashmaps:{title:"API de Google Maps para Flash",url:"/apis/maps/documentation/flash/",keywords:{ajax:7,apis:4,actionscript:1,geo:6,mapas:6}},friendconnect:{title:"Google Friend Connect API (Labs)",url:"/apis/friendconnect/",keywords:{apis:5,gadgets:5,social:10,amigo:10}},gadgets:{title:"API de gadgets",groupsTitle:"Grupos de API de gadgets",url:"/apis/gadgets/",keywords:{finanzas:1,
apis:8,gadgets:6}},gears:{title:"Gears (Labs)",groupsTitle:"Grupos de Gears",url:"/apis/gears/",keywords:{ajax:5,apis:9,herramientas:1}},health:{title:"Google Health API",groupsTitle:"Grupos de desarrolladores de Google Health",url:"/apis/health/",keywords:{"api de datos":3,feed:1,salud:1,java:1}},igoogle:{title:"Sitio del desarrollador de iGoogle (Labs)",groupsTitle:"Grupos de desarrolladores de iGoogle",url:"/apis/igoogle/",keywords:{anuncios:3,apis:1,gadgets:1,social:1}},themes:{title:"API de temas de iGoogle (Labs)",
url:"/apis/themes/",keywords:{api:1}},kml:{title:"KML",groupsTitle:"Grupos de KML",url:"/apis/kml/",keywords:{apis:1,geo:4,mapas:1}},mapplets:{title:"Mapplets de Google",url:"/apis/maps/documentation/mapplets/",keywords:{apis:1,gadgets:1,geo:5,mapas:1}},maps:{title:"API de Google Maps",groupsTitle:"Grupos de API de Google Maps",url:"/apis/maps/",keywords:{ajax:7,apis:4,geo:6,mapas:6}},o3d:{title:"API de O3D (Labs)",groupsTitle:"Grupos de O3D",url:"/apis/o3d/",keywords:{"gr\u00e1ficos":10,"software libre":1,
javascript:1,"3d":10}},opensocial:{title:"OpenSocial",groupsTitle:"Grupos de OpenSocial",url:"/apis/opensocial/",keywords:{social:10,"software libre":2,api:8}},orkut:{title:"Sitio del desarrollador de orkut",groupsTitle:"Grupos de orkut",url:"/apis/orkut/",keywords:{social:8}},safebrowsing:{title:"API de navegaci\u00f3n segura de Google (Labs)",groupsTitle:"Grupos de API de navegaci\u00f3n segura de Google",url:"/apis/safebrowsing/",keywords:{apis:1,feed:1,entradas:1,"miembros destacados":1}},securedataconnector:{title:"Google Secure Data Connector",
groupsTitle:"Grupo de debate del API de Google Apps",url:"/securedataconnector/",keywords:{"api de datos":3,sdc:10,gadgets:1,cortafuegos:10,enterprise:1,"app engine":1,network:1,"google apps":2}},sitemaps:{title:"Sitemaps de Google",url:"https://www.google.com/webmasters/tools/docs/en/about.html",keywords:{buscar:1,herramientas:1}},sketchup:{title:"API Ruby de Google SketchUp",groupsTitle:"Grupos del API Ruby de Google SketchUp",url:"/apis/sketchup/",keywords:{apis:1,geo:3}},socialgraph:{title:"API de gr\u00e1ficos sociales (Labs)",
groupsTitle:"Grupos de API de gr\u00e1ficos sociales",url:"/apis/socialgraph/",keywords:{social:9}},spreadsheets:{title:"API de datos de hojas de c\u00e1lculo de Google Docs (Labs)",groupsTitle:"Grupos de API de datos de hojas de c\u00e1lculo de Google Docs",url:"/apis/spreadsheets/",keywords:{apis:1,feed:1,entradas:2,"miembros destacados":1,"api de datos":4}},staticmaps:{title:"API de Google Static Maps",url:"/apis/maps/documentation/staticmaps/",keywords:{apis:1,geo:6,mapas:2}},talk:{title:"Google Talk para desarrolladores (Labs)",
groupsTitle:"Grupos de XMPP de Google Talk",url:"/apis/talk/",keywords:{api:1}},toolbar:{title:"API de la barra Google (Labs)",url:"http://www.google.com/tools/toolbar/buttons/apis",keywords:{apis:1,herramientas:1}},transit:{title:"Especificaci\u00f3n de feeds de Google Transit",groupsTitle:"Grupos de los feeds de Google Transit",url:"/transit/spec/transit_feed_specification.html",keywords:{feed:1,geo:1,mapas:1}},visualization:{title:"API de visualizaci\u00f3n de Google",groupsTitle:"API de visualizaci\u00f3n de Google Grupos",
url:"/apis/visualization/",keywords:{ajax:1,apis:3,"miembros destacados":1,gadgets:3}},webtoolkit:{title:"Google Web Toolkit",groupsTitle:"Grupos de Google Web Toolkit",url:"/webtoolkit/",keywords:{ajax:6,java:1,herramientas:6,eclipse:1,gwt:10}},picasa:{title:"API de Picasa (Labs)",groupsTitle:"Grupos de API de Picasa",url:"/apis/picasa/",keywords:{api:3,"miembros destacados":1}},picasaweb:{title:"API de datos de \u00c1lbumes web de Picasa",groupsTitle:"Grupos del API de datos de \u00c1lbumes web de Picasa",
url:"/apis/picasaweb/",keywords:{feed:1,entradas:1,"miembros destacados":1,"api de datos":3}},v8:{title:"V8",url:"/apis/v8/",keywords:{api:1,navegador:1,chrome:1,chromium:1,herramientas:1}},wave:{title:"API de Google Wave",groupsTitle:"Grupos de API de Google Wave",url:"/apis/wave",keywords:{ola:10,robots:5,gadgets:1,insertar:3,extensiones:1}},webelements:{title:"Elementos web de Google",url:"http://www.google.com/webelements/",keywords:{elementos:10,noticias:1,calendario:1,mapas:1,youtube:1,"hojas de c\u00e1lculo":1,
presentaciones:1,buscar:1}},webmastertools:{title:"API de datos de Herramientas para webmasters de Google (Labs)",groupsTitle:"Grupos de API de datos de Herramientas para webmasters",url:"/apis/webmastertools/",keywords:{"api de datos":1,buscar:1,herramientas:1}},youtube:{title:"API de YouTube",groupsTitle:"Grupos del API de datos de YouTube",url:"/apis/youtube/",keywords:{feed:4,entradas:2,"miembros destacados":6}}}},programs:{includeInSearchSuggest:true,entries:{opensource:{title:"Software libre",
url:"/opensource/",keywords:{"software libre":10}},soc:{title:"Google Summer of Code",url:"/soc/",keywords:{"software libre":5}},ghop:{title:"Concurso Highly Open Participation",url:"/opensource/ghop/2007-8/",keywords:{"software libre":2}},projectHosting:{title:"Alojamiento de proyectos",url:"/hosting/",keywords:{"software libre":6}},mac:{title:"Google Mac Developer Playground",url:"/mac/",keywords:{"software libre":2,osx:6,apple:6,iphone:6}},edu:{title:"Google Code University",groupsTitle:"Grupos de Google Code University",
url:"/edu/",keywords:{profesores:1}},doctype:{title:"Google DocType",groupsTitle:"Grupos de Google DocType",url:"/doctype/",keywords:{profesores:1}},speed:{title:"Exploremos la Web de forma m\u00e1s r\u00e1pida",groupsTitle:"Explorar la Web de forma m\u00e1s r\u00e1pida",url:"/speed/",keywords:{velocidad:8,rendimiento:9}},"page-speed":{title:"Page Speed",groupsTitle:"Comunidad de Page Speed",url:"/speed/page-speed/",keywords:{velocidad:8,rendimiento:9}},events:{title:"Eventos para desarrolladores",
url:"/events/",keywords:{desarrollador:1,gdd:1,"developer day":1}},googleio:{title:"Google I/O",url:"/events/io/",keywords:{api:1,"miembros destacados":1,"google io":10,eventos:10,io:10}},gtug:{title:"Grupos de usuarios que utilizan la tecnolog\u00eda de Google",url:"http://www.gtugs.org/",keywords:{gtug:10,eventos:9,grupo:1,"tecnolog\u00eda":1,usuario:1}},developerday:{title:"Developer Days",url:"/events/developerday/",keywords:{desarrollador:1,"developer days":1,gdd:10,eventos:2,"google developer day":10}},
campfire:{title:"Google Campfire One",url:"/campfire/",keywords:{desarrollador:1}}}},searchSuggest:{includeInSearchSuggest:true,entries:{adsenseforaudio:{title:"API de Google AdSense for Audio (obsoleta)",url:"/apis/adsenseforaudio/",keywords:{anuncios:1,apis:1}},gme:{title:"Google Mashup Editor (obsoleto)",url:"/gme/",keywords:{ajax:2,entradas:1,"miembros destacados":1,herramientas:5}},notebook:{title:"API de datos de Google Bloc de notas (obsoleta)",url:"/apis/notebook/",keywords:{apis:1,feed:1,
entradas:1,"miembros destacados":1,"api de datos":3}},gra:{title:"API de Google Radio Automation (obsoleta)",url:"/apis/gra/",keywords:{java:1,api:1,radio:10,"automatizaci\u00f3n":3}},soapsearch:{title:"API de Google SOAP Search (obsoleta)",url:"/apis/soapsearch/",keywords:{soap:1,apis:1,buscar:1}},support:{title:"Base de datos de conocimientos",url:"/support/",keywords:{"preguntas frecuentes":1}},codeblog:{title:"Blog de Google Code",url:"http://google-code-updates.blogspot.com/",keywords:{desarrollador:1}},
featuredprojects:{title:"Proyectos destacados",url:"http://google-code-featured.blogspot.com/",keywords:{desarrollador:1}},opensourceprojects:{title:"Proyectos de software libre",url:"/hosting/projects.html",keywords:{"software libre":1}},qualify:{title:"Cualificaci\u00f3n del desarrollador",url:"/qualify/",keywords:{cualificar:10,"certificaci\u00f3n":10,"formaci\u00f3n":10}},protocolbuffers:{title:"Protocol Buffers",groupsTitle:"Grupos de Protocol Buffers",url:"/apis/protocolbuffers/",keywords:{"serializaci\u00f3n":10,
"software libre":4,api:8,"datos estructurados":10,data:1}}}},searchResultTabs:{includeInSearchSuggest:false,entries:{google_code:{title:"Sitio web de Google Code"},discussion:{title:"Google Code Groups",groupsTitle:"Grupos de Google Code"},project_hosting:{title:"Alojamiento de proyectos"}}}};window.CODESITE_productDictionary_default=b;window.CODESITE_productDictionary=b})();(function(){window.CODESITE_CSIReportDelay=500;window.CODESITE_reportedToCSI=false;function b(){if(jQuery("body.gc-documentation").length>0)return"product_doc";if(window._homepageGadgetData_)return"codesite_home";if(jQuery("#gc-home").length>0)return"product_home";return"other"}function a(){var e=["codesite","sc"],c=b(),i=CODESITE_getProduct();if(i)if(i=="more")e.push("site_directory");else if(i=="search")e.push("cse");else if(i=="support")e.push(i);else if(i=="events")e.push(i);else if(c=="product_doc"){e.push(c);
e.push(i+"_doc")}else{if(c=="product_home"){e.push(c);e.push(i+"_home")}}else c=="codesite_home"&&e.push(c);e.push("intl_"+CODESITE_langLoc);return e.join(",")}function f(){if(!CODESITE_reportedToCSI){var e=a();CODESITE_CSITimer.load.name=e;CODESITE_CSITimer.toc.name=e;window.setTimeout(function(){for(var c in CODESITE_CSITimer)window.jstiming.report(CODESITE_CSITimer[c])},CODESITE_CSIReportDelay);window.CODESITE_reportedToCSI=true}}jQuery(document).ready(function(){CODESITE_CSITimer.load.tick("dom")});
jQuery(window).load(function(){CODESITE_CSITimer.load.tick("plt");f()})})(jQuery);window.CODESITE_langCode={en:"English",de:"Deutsch",es:"Espa\u00f1ol",fa:"\u0641\u0627\u0631\u0633\u06cc",ja:"\u65e5\u672c\u8a9e",ko:"\ud55c\uad6d\uc5b4","pt-BR":"Portugu\u00eas (Brasil)",ru:"P\u0443\u0441\u0441\u043a\u0438\u0439",vi:"Ti\u1ebfng Vi\u1ec7t","zh-CN":"\u4e2d\u6587 (\u7b80\u4f53)","zh-TW":"\u4e2d\u6587 (\u7e41\u9ad4)"};
window.CODESITE_prodLang=[{url:"/apis/orkut/",langloc:["en","es","ja","ko","pt-BR","ru","vi","zh-CN","zh-TW"]},{url:"/apis/maps/",langloc:["en","es","de","ja","ko","pt-BR","ru","zh-CN","zh-TW"]},{url:"/apis/ajaxlanguage/",langloc:["en","es","de","ja","fa","pt-BR","zh-CN"]}];(function(){var b=/\/\/([^\/]*)?(\/intl\/[^\/]*)?(\/.*)?/,a=/\/intl\/(([a-zA-Z]+)(-[a-zA-Z]+)?)(_[a-zA-Z]+)?/,f=a.exec(window.location.href);if(f==null){window.CODESITE_langLoc="en";window.CODESITE_langUrl=""}else{window.CODESITE_langLoc=f[1];window.CODESITE_langUrl=f[0].replace(/_ALL/,"")}jQuery(document).ready(window.CODESITE_langSelectInit=function(e,c){var i=e("#lang-dropdown")[0];if(i){var d=e("#menuIcon-lang-dropdown")[0],h=null;c=c||window.location;c=b.exec(c.href);for(var r=0;r<window.CODESITE_prodLang.length;r++)if(c[3].indexOf(window.CODESITE_prodLang[r].url)>=
0){h=window.CODESITE_prodLang[r].langloc;break}h||(h=["en","es","ja","ko","pt-BR","ru","zh-CN","zh-TW"]);i=new Menu(i,null,null,function(){CODESITE_click("/gb/sc/langselect/"+CODESITE_langLoc)},d);for(d=0;d<h.length;d++){c=h[d];r=CODESITE_localeRedirect(c,window.location,false);i.addItem(window.CODESITE_langCode[c],r)}e("body").append(i.menu)}});window.CODESITE_localeRedirect=function(e,c,i){c=c||window.location;var d=b.exec(c.href);i=i==null?true:false;var h=c.href;if(d){h=d[3]?"http://"+d[1]+"/intl/"+
e+d[3]:"http://"+d[1]+"/intl/"+e+"/";if(i)c.href=h}return h};window.CODESITE_redirectToI18nContent=function(e,c){c=c||CODESITE_localeRedirect;e=(e=a.exec(e.href))&&e[1]||"en";c(e,null);return false}})(jQuery);(function(){function b(c){return window.encodeURIComponent?encodeURIComponent(c):escape(c)}function a(c){return window.decodeURIComponent?decodeURIComponent(c):unescape(c)}RegExp.escape=function(){var c=["/",".","*","+","?","|","(",")","[","]","{","}","\\"],i=new RegExp("(\\"+c.join("|\\")+")","g");return function(d){return d.replace(i,"\\$1")}}();window.CODESITE_minWidth=function(){var c=[],i=function(){if(CODESITE_minWidth)for(var d=0,h=c[0]||null;d<c.length;++d,h=c[d])try{if(h.parent_.offsetWidth<=
h.minWidth_){h.style.width=h.minWidth_+"px";h.style.overflow="hidden"}else{h.style.width="";h.style.overflow=""}}catch(r){}};if(jQuery.browser.msie){jQuery(window).resize(i);jQuery(i)}return function(d,h){if(jQuery.browser.msie){d=jQuery(d)[0];d.minWidth_=h-0;d.parent_=d.parentNode;c.push(d)}}}();window.CODESITE_createImageBar=function(c,i){c=new google.feeds.Feed(c);c.setResultFormat(google.feeds.Feed.XML_FORMAT);c.setNumEntries(2);c.load(function(d){if(!d.error){var h=jQuery(i);d=jQuery("item",
d.xmlDocument);var r=0;if(d.length>=2)r=2;for(var m=['<div class="post techtalk"><div class="screenshot"><a href="@link"><img alt="@origTitle" src="@thumb" height="80" width="90"></a></div><div class="info"><div class="name"><a href="@link" title="@origTitle">@title</a></div><div class="author videodateformat">',CODESITE_msgs.imagebar.POSTED_ON," @date</div></div></div>"].join(""),z=jQuery('<div class="g-section g-tpl-50-50 gc-techtalk"><div class="g-unit g-first">&nbsp;</div><div class="g-unit">&nbsp;</div></div>'),
A=0;A<r;A++){var H=jQuery("title:first",d[A]).text(),E=H,N=jQuery("link:first",d[A]).text(),P=N.substring(31),I;if((I=d.eq(A).find("atom\\:updated, updated")).length){var O=I.eq(0).text().replace(/(\d{4})-(\d{2})-(\d{2})T.*/,"$2 $3 $1").split(" ");I=new Date;I.setFullYear(O[2],O[0]-1,O[1])}else if((I=d.eq(A).find("dc\\:date, date")).length)I=new Date(I.eq(0).text());O=google.feeds.getElementsByTagNameNS(d[A],"http://search.yahoo.com/mrss/","thumbnail")[0];var ia=O.getAttribute("url");O.getAttribute("width");
O.getAttribute("height");I=I.getMonth()+1+"/"+I.getDate()+"/"+I.getFullYear();H=jQuery(m.replace(/@link/g,N).replace(/@videoid/g,P).replace(/@thumb/g,ia).replace(/@origTitle/g,H).replace(/@title/g,E).replace(/@date/g,I));jQuery(".g-unit:eq("+A+")",z).prepend(H)}h.append(z)}})};window.CODESITE_loadFeedAPI=function(){google.load("feeds","1",{callback:CODESITE_initFeedAPI})};jQuery(function(){jQuery("#searchForm").show();jQuery("#searchForm2").hide()});window.CODESITE_initFeedAPI=function(){if(CODESITE_codeVideoDiv.length)if(typeof _homepageGadgetData_!==
"undefined"){CODESITE_createImageBar(_homepageGadgetData_.homepageVideoFeedUrl,"#gc-codevideo");CODESITE_minWidth("#codesiteContent",1000)}if(CODESITE_macRecentChangesDiv.length){var c=new BlogPreview(document.getElementById("recentchanges"));c.show("http://googlemacplayground.blogspot.com/atom.xml","changes")}};function f(){var c="http://google-code-feed-gadget.googlecode.com/svn/build/prod/feedgadget/feedgadget.xml",i="",d="#parent="+escape(/[^?]*/.exec(window.location));if(/gadgettest=1/.exec(window.location)){c=
c.replace("/prod/","/test/");i="&debug=1&nocache=1"}var h=/\/intl\/(.*?)\//.exec(document.location);h=h?["&lang=",h[1]].join(""):"";c="http://www.gmodules.com/gadgets/ifr?synd=code&url="+c+h+i+d+"&";function r(N){var P="",I;if(typeof N=="string"){if(N!="")P="&"+b(N)}else for(I in N)P+=["&",I,"=",b(N[I])].join("");return P}if(CODESITE_codeBlogDiv.length){var m=[];d=window._apiGadgetData_||window._homepageGadgetData_;h=d.blogOptions;var z=410,A="100%",H="__MSG_blogs__";i="";if(h){A=h.width||A;z=h.height||
z;H=h.up_gadgetTitle||H;i=h.xtraFeeds||i}if(d.blogFeedUrl&&d.blogFeedUrl.length){if(!d.blogFeedName||d.blogFeedName.length==0)d.blogFeedName="__MSG_blogs__";m.push(b([d.blogFeedName,":",jQuery.trim(d.blogFeedUrl)].join("")))}d.googleCodeBlogIntlFeedUrl&&d.googleCodeBlogIntlFeedUrl.length&&m.push(b(["__MSG_blogs.local__:",jQuery.trim(d.googleCodeBlogIntlFeedUrl)].join("")));d.googleCodeBlogFeedUrl&&d.googleCodeBlogFeedUrl.length&&m.push(b(["__MSG_blogs.googleCode__:",jQuery.trim(d.googleCodeBlogFeedUrl)].join("")));
d.relatedDeveloperBlogsFeedUrl&&d.relatedDeveloperBlogsFeedUrl.length&&m.push(b(["__MSG_blogs.related__:",jQuery.trim(d.relatedDeveloperBlogsFeedUrl)].join("")));if(i.length){i=a(i).split("|");for(d=0;d<i.length;d++)m.push(b(jQuery.trim(i[d])))}if(m.length)jQuery('<iframe frameborder="0">').attr({src:[c,"up_showaddbutton=true&up_random=true&up_defer=true&up_gadgetTitle=",b(H),"&up_feeds=",m.join("|"),r(h||"")].join(""),frameborder:"0",width:A,height:z}).css({border:"none"}).appendTo(CODESITE_codeBlogDiv)}if(CODESITE_featuredDiv.length){var E=
[];d=window._apiGadgetData_||window._homepageGadgetData_;h=d.groupOptions;z=410;A="100%";H="__MSG_groups.community__";i="";if(h){A=h.width||A;z=h.height||z;H=h.up_gadgetTitle||H;i=h.xtraFeeds||i}d.featuredProjectsFeedUrl&&d.featuredProjectsFeedUrl.length&&E.push(b(["featured:__MSG_featured.projects__:",jQuery.trim(d.featuredProjectsFeedUrl)].join("")));if(d.groupFeedUrl&&d.groupFeedUrl.length){if(!d.groupFeedName||d.groupFeedName.length==0)d.groupFeedName="__MSG_groups.community__";E.push(b([d.groupFeedName,
":",jQuery.trim(d.groupFeedUrl)].join("")))}d.featureFeedUrl&&d.featureFeedUrl.length&&E.push(b(["featured:__MSG_featured.projects__:",jQuery.trim(d.featureFeedUrl)].join("")));d.articleFeedUrl&&d.articleFeedUrl.length&&E.push(b(["__MSG_articles__:",jQuery.trim(d.articleFeedUrl)].join("")));d.userGroupsFeedUrl&&d.userGroupsFeedUrl.length&&E.push(b(["__MSG_groups.user__:",jQuery.trim(d.userGroupsFeedUrl)].join("")));if(i.length){i=a(i).split("|");for(d=0;d<i.length;d++)E.push(b(jQuery.trim(i[d])))}if(E.length)jQuery('<iframe frameborder="0">').attr({src:[c,
"up_showaddbutton=true&up_defer=true&up_gadgetTitle=",b(H),"&up_feeds=",E.join("|"),r(h||"")].join(""),frameborder:"0",width:A,height:z}).css({border:"none"}).appendTo(CODESITE_featuredDiv)}}jQuery(function(){try{prettyPrint()}catch(c){}});jQuery(function(){var c=jQuery("#gc-pagecontent"),i=jQuery("#gc-toc");if(c.length){var d=jQuery('<div id="gc-collapsible-arrow">'),h=jQuery('<div id="gc-collapsible">'),r=function(m){var z=c.offset();d.css({left:z.left+"px",top:(m.pageY||m.clientY)+"px"})};c.css("position",
"relative").append(h);jQuery(document.body).append(d);jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","-5px");c.is(".skip-collapsible")||h.mouseover(function(m){h.addClass("hover");if(i.is(":hidden")){h.css("left","-3px");d.addClass("collapsed")}else d.removeClass("collapsed");d.show();r(m)}).mousemove(function(m){r(m)}).mouseout(function(){h.removeClass("hover");h.css("left","");d.hide()}).click(function(){d.hide();h.removeClass("hover").css("left","");i.toggle();if(i.is(":visible")){c.css("margin-left",
"");jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","-5px")}else{c.css("margin-left","0px");jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","")}});h.height(c.height())}});jQuery(window.CODESITE_createVideoAndGadgets=function(){CODESITE_codeBlogDiv=jQuery("#gc-blog-gadget");CODESITE_featuredDiv=jQuery("#gc-community-gadget");CODESITE_codeVideoDiv=jQuery("#gc-codevideo");CODESITE_macRecentChangesDiv=jQuery("#recentchanges");if(CODESITE_codeVideoDiv.length||CODESITE_macRecentChangesDiv.length)if(typeof window.google===
"undefined"||typeof window.google.feeds==="undefined"){var c=document.createElement("script");c.src="http://www.google.com/jsapi?key=internal-codesite&callback=CODESITE_loadFeedAPI";c.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(c)}else CODESITE_loadFeedAPI();if(CODESITE_codeBlogDiv.length||CODESITE_featuredDiv.length)f()});window.CODESITE_getIntlUrl=function(c){var i=["/intl/","/p/","/u/","/hosting/","/support/","/soc/","/codejam/","/apis/youtube/dashboard/"];if(c.indexOf("/")==
0){for(var d in i)if(c.indexOf(i[d])>=0)return c;return CODESITE_langUrl+c}else return c};window.CODESITE_getProduct=function(c){c=c||window.location.href;var i=/https?:\/\/[^\/]*(\/intl\/[^\/]*)?(\/apis)?(\/([a-z0-9]*))?\//;c=i.exec(c);if(!c)return"";return(c=c[4])?c:""};jQuery(window).load(function(){window.setTimeout(function(){jQuery.ajax({type:"GET",url:"http://www.google-analytics.com/ga.js",dataType:"script",success:e,cache:true})},0)});function e(){if(window._gat)try{siteTracker=window._gat._getTracker("UA-18071-1");
siteTracker._trackPageview()}catch(c){}}window.CODESITE_click=function(c){window.setTimeout(function(){if(window.siteTracker)try{siteTracker._trackPageview(c)}catch(i){}},0)}})(jQuery);var CSE={QUERY_REGEX_HASH:/([^\#]*)\#(p=([^&]*)&)?q=(.*)$/,QUERY_REGEX_QUES:/([^\?]*)\?(p=([^&]*)&)?q=(.*)$/,CSE_URL:"http://code.google.com/cse/googlecode-context.xml",searchControl:{},recentQuery:"",showingSearchResults:false,iframeUrlInSync:true,init:function(){CSE.searchControl=new GSearchControl;CSE.searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);CSE.searchControl.setLinkTarget(GSearch.LINK_TARGET_TOP);var b=CSE.getProductParam();if(CODESITE_getSearchTabTitle(b)!=null){CSE.addSearcher(b,
false);CODESITE_getSearchTabTitle(b,true)!=null&&CSE.addSearcher(b,true)}CSE.addSearcher("google_code",false);CSE.addSearcher("discussion",true);CSE.addSearcher("project_hosting",false);b=new GvideoSearch;b.setQueryAddition("ytchannel:GoogleDevelopers");b.setResultSetSize(GSearch.SMALL_RESULTSET);b.setUserDefinedLabel(CODESITE_getSearchTabTitle("developer_videos"));CSE.searchControl.addSearcher(b);b=document.getElementById("searchControl");var a=new GdrawOptions;a.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
CSE.searchControl.draw(b,a);CSE.checkHash(CSE.QUERY_REGEX_HASH,window.location.href)},addSearcher:function(b,a){var f=new GwebSearch;a?f.setSiteRestriction({crefUrl:CSE.CSE_URL},b+"_groups"):f.setSiteRestriction({crefUrl:CSE.CSE_URL},b);f.setUserDefinedLabel(CODESITE_getSearchTabTitle(b,a));CSE.searchControl.addSearcher(f)},checkHash:function(b,a){if(b=b.exec(a)){b=decodeURI(b[4]);if(b!=""&&b!=CSE.recentQuery){jQuery("#gsearchInput").attr("value",b);CSE.executeQuery(b)}}else{if(CSE.showingSearchResults){jQuery("#searchControl").hide();
jQuery("#codesiteContent").show();CSE.recentQuery="";CSE.showingSearchResults=false;window.history.back(-1)}return false}return true},getProductParam:function(){var b=CSE.QUERY_REGEX_HASH.exec(window.location.href),a="";if(b&&b[4]){a=decodeURI(b[3]);if(CODESITE_getSearchTabTitle(a)==null)a=""}return a},executeQuery:function(b){if(b!="")if(CSE.iframeUrlInSync){var a=CSE.getProductParam();CSE.handleAnalytics(b,a);a=a!=""?"p="+encodeURI(a)+"&q="+encodeURI(b):"q="+encodeURI(b);jQuery.browser.msie&&CSE.handleIeHistory(a);
CSE.recentQuery=b;CODESITE_setURL("#"+a);jQuery("#searchControl").show();jQuery("#codesiteContent").hide();CSE.showingSearchResults=true;a=CSE.makeNoResultsHtml(b);CSE.searchControl.setNoResultsString(a);CSE.searchControl.execute(b)}},handleIeHistory:function(b){CSE.iframeUrlInSync=false;window.backiFrame.location.search=b;var a=window.setInterval(f,window.CODESITE_backButton.IFRAME_POLLING_INTERVAL);function f(){if(window.backiFrame.location.search.substring(1)==b){CSE.iframeUrlInSync=true;window.clearInterval(a)}}
},makeNoResultsHtml:function(b){for(var a=[CODESITE_msgs.search.NO_RESULTS_FOUND,"<b>",CSE.escapeHtml(b),"</b><br><br>",CODESITE_msgs.search.SUGGESTIONS_TITLE,":<br><br><ul>"].join(""),f=0,e=CODESITE_msgs.search.SUGGESTIONS_ITEMS.length;f<e;f++)a=[a,"<li>",CODESITE_msgs.search.SUGGESTIONS_ITEMS[f],"</li>"].join("");return[a,'</ul><br><a href="',CODESITE_msgs.search.SEARCH_URL,encodeURI(b),'">',CODESITE_msgs.search.TRY_WEBSEARCH,"</a>."].join("")},handleAnalytics:function(b,a){var f=jQuery("#searchControl").css("display")==
"block"?jQuery("div.gsc-tabhActive").text():"";b="/search/?q="+b+"&product="+a+"&tab="+f;if(window.siteTracker)try{siteTracker._trackPageview(b)}catch(e){}},escapeHtml:function(b){return b.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\'/g,"&#039;").replace(/\"/g,"&quot;")},pollHash:function(){if(jQuery.browser.msie)CSE.iframeUrlInSync&&CSE.checkHash(CSE.QUERY_REGEX_QUES,window.backiFrame.location.href)&&CSE.checkHash(CSE.QUERY_REGEX_HASH,window.location.href);else CSE.checkHash(CSE.QUERY_REGEX_HASH,
window.location.href)}};window.CODESITE_CSE=CSE;window.CODESITE_setURL=function(b){location.href=b};window.executeGSearch=function(b){if(b!="")if(CODESITE_CSE.iframeUrlInSync){var a=CODESITE_getProduct();if(a=="search")CODESITE_CSE.executeQuery(b);else{if(CODESITE_getSearchTabTitle(a)==null)a="";b=a!=""?"p="+encodeURI(a)+"&q="+encodeURI(b):"q="+encodeURI(b);CODESITE_setURL(CODESITE_langUrl+"/search/#"+b)}}};
window.CODESITE_getSearchTabTitle=function(b,a){if(!b)return null;var f=CODESITE_productDictionary.dictionariesList;for(var e in f){var c=CODESITE_productDictionary[f[e]].entries[b];if(c)if(a){if(c.groupsTitle)return c.groupsTitle}else return c.searchTabTitle||c.title}f=CODESITE_productDictionary.dictionariesList;for(e in f)if(c=CODESITE_productDictionary_default[f[e]].entries[b])if(a){if(c.groupsTitle)return c.groupsTitle}else return c.searchTabTitle||c.title;return null};(function(){function b(a,f){this.results_=[];this.buttonEl_=jQuery("#"+f);this.inputFieldEl_=jQuery("#"+a);var e=this;jQuery(this.buttonEl_).focus(function(){e.hideResultsWindow_()});this.searchResultsEl_=jQuery('<div id="cs-searchresults">');this.searchResultsEl_.click(function(c){(event||c).cancelBubble=true});this.searchResultsEl_.appendTo(document.body);jQuery('<div id="cs-recommended">').html(CODESITE_msgs.search.SUGGESTIONS).appendTo(this.searchResultsEl_);a=0;for(f=1;a<this.MAX_RESULTS_;a++,
f++)jQuery('<div id="searchResult'+f+'">').appendTo(this.searchResultsEl_);jQuery(document.body).click(function(c){return e.handleBodyClick_.call(e,c)});jQuery(document).keydown(function(c){return e.handleBodyKeyDown_.call(e,c)}).keypress(function(c){return e.handleBodyKeyPress_.call(e,c)}).keyup(function(c){return e.handleBodyKeyUp_.call(e,c)});jQuery(window).resize(function(c){e.handleBodyResize_.call(e,c)});window.onpageshow=function(c){c.persisted&&e.hideResultsWindow_()};this.inputFieldEl_.keyup(function(c){return e.handleInputKeyUp_.call(e,
c)}).focus(function(c){return e.handleInputFocus_.call(e,c)}).blur(function(c){return e.handleInputBlur_.call(e,c)}).click(function(c){return e.handleInputClick_.call(e,c)}).attr("autocomplete","off");this.initialized_=!!(this.inputFieldEl_.length&&this.searchResultsEl_.length&&this.buttonEl_.length)}b.prototype={results_:null,initialized_:false,searchActive_:true,resultsWindowHidden_:true,inputFieldEl_:0,searchResultsEl_:0,inputFieldHasFocus_:0,activeResult_:0,arrowKeyProcessed_:false,typedQuery_:"",
backgroundHover:"#3366CC",foregroundHover:"#ffffff",backgroundOff:"#ffffff",foregroundOff:"#000000",MAX_RESULTS_:7,FIRST_RESULT_:1,getQueryFromInputField_:function(){return jQuery.trim(this.inputFieldEl_.val().toLowerCase())},querySearch_:function(){if(this.searchActive_)if(this.typedQuery_.length==0)this.hideResultsWindow_();else{this.results_.splice(0,this.results_.length);var a=CODESITE_productDictionary.dictionariesList;for(var f in a){var e=CODESITE_productDictionary[a[f]];if(e.includeInSearchSuggest)for(var c in e.entries){var i=
e.entries[c],d=0,h=new RegExp("(?:\\s|^)"+RegExp.escape(this.typedQuery_)),r=i.title.toLowerCase().match(h);if(r!=null)d=2;for(var m in i.keywords){r=m.match(h);if(r!=null)d+=i.keywords[m];r=this.typedQuery_.split(" ");if(r.length>1)for(c=0;c<r.length;c++){var z=new RegExp("(?:\\s|^)"+r[c]);z=m.match(z);if(z!=null)d+=i.keywords[m]}}d>0&&this.results_.push({match:d,title:i.title,url:CODESITE_getIntlUrl(i.url)})}}this.results_.sort(this.sortMatches_);this.results_.length=Math.min(this.results_.length,
6);this.prepareResultsWindow_()}},sortMatches_:function(a,f){f=f.match;a=a.match;return f<a?-1:f>a?1:0},createSearchResultDiv:function(a){var f=a+1,e=this,c=jQuery("#searchResult"+f);c.attr("class","cs-searchresult").css({display:"block",textAlign:"left",zoom:"1"}).html(['<a tabindex="-1" id="searchResultLink',f,'" href="',this.results_[a].url,'">',this.results_[a].title,"</a>"].join("")).unbind().mouseover(function(){e.deactivateAllResults_();e.activateSearchResult_(f)}).mouseout(function(){e.deactivateSearchResult_(f)}).click(function(){window.location.href=
e.results_[a].url})},prepareResultsWindow_:function(){this.activeResult_=0;if(this.results_.length==0)this.hideResultsWindow_();else{for(var a=0;a<this.results_.length;a++)this.createSearchResultDiv(a);this.deactivateAllResults_();var f=this.results_.length+1;a=jQuery("#searchResult"+f);var e=this;a.attr("class","").css({textAlign:"right",display:"block",zoom:"1"}).html('<a style="color: #0000ff; text-decoration: underline;" id="searchResultLink'+f+'"> '+CODESITE_msgs.search.MORE+" &raquo;</a>").unbind().mouseup(function(){e.hideResultsWindow_();
executeGSearch(e.inputFieldEl_.val())}).mouseover(function(){e.deactivateAllResults_();e.activateSearchResult_(f)}).mouseout(function(){e.deactivateSearchResult_(f)});for(a=f+1;a<=this.MAX_RESULTS_;a++)jQuery("#searchResult"+a).hide();this.resultsWindowHidden_&&this.showResultsWindow_()}},updateDimensions_:function(){if(this.searchActive_){var a=this.inputFieldEl_.offset();a.left+=3;this.searchResultsEl_.css({left:a.left+"px",top:a.top+this.inputFieldEl_[0].offsetHeight+2+"px",width:this.inputFieldEl_.css("width")})}},
showResultsWindow_:function(){if(this.searchActive_){this.searchResultsEl_.css("visibility","hidden");this.updateDimensions_();this.searchResultsEl_.css("display","block");this.searchResultsEl_.css("visibility","visible");this.resultsWindowHidden_=false}},hideResultsWindow_:function(){if(!this.resultsWindowHidden_){this.searchResultsEl_.hide();this.resultsWindowHidden_=true;this.activeResult_=0}},activateSearchResult_:function(a){this.inputFieldEl_[0].blur();var f=jQuery("#searchResult"+a);a=jQuery("#searchResultLink"+
a);f.length&&f.css("backgroundColor",this.backgroundHover);a.length&&a.css("color","white")},deactivateSearchResult_:function(a){var f=jQuery("#searchResult"+a),e=jQuery("#searchResultLink"+a);f&&f.css("background",this.backgroundOff);if(e&&a==this.results_.length+1)e.css("color","#0000ff");else e&&e.css("color",this.foregroundOff)},deactivateAllResults_:function(){for(var a=0,f=this.results_.length+1;a<f;a++)this.deactivateSearchResult_(a+1)},activateNextSearchResult_:function(){if(this.results_.length>
0)if(this.activeResult_<=this.results_.length){this.deactivateSearchResult_(this.activeResult_);this.activeResult_++;this.activateSearchResult_(this.activeResult_)}},activatePrevSearchResult_:function(){if(this.results_.length>0)if(this.activeResult_==this.FIRST_RESULT_){this.deactivateSearchResult_(this.activeResult_);this.activeResult_=0;this.inputFieldEl_[0].focus()}else if(this.activeResult_>this.FIRST_RESULT_){this.deactivateSearchResult_(this.activeResult_);this.activeResult_--;this.activateSearchResult_(this.activeResult_)}},
handleInputKeyUp_:function(a){if(this.initialized_)if(this.searchActive_){a=a||window.event;a=a.which?a.which:a.keyCode;if(a==13){this.hideResultsWindow_();executeGSearch(this.inputFieldEl_.val())}else{a=this.getQueryFromInputField_();if(a!=this.typedQuery_){this.typedQuery_=a;this.querySearch_()}return true}}},handleBodyKeyDown_:function(a){var f=true,e=false;if(this.initialized_){a=a||window.event;var c=a.which?a.which:a.keyCode;a=a.target?a.target:a.srcElement;for(var i=jQuery("#searchResultLink"+
this.activeResult_),d=[this.inputFieldEl_[0],document.documentElement,document.body],h=0;h<d.length;h++)if(a==d[h])e=true;if(!e)return true;switch(c){case 13:if(this.activeResult_>=0){if(this.activeResult_==this.results_.length+1){this.hideResultsWindow_();executeGSearch(this.inputFieldEl_.val())}else if(i.length)location.href=i.attr("href");f=false}break;case 27:if(this.searchActive_){this.resultsWindowHidden_?this.inputFieldEl_.val(""):this.hideResultsWindow_();f=false}else{this.searchActive_=true;
this.inputFieldEl_[0].focus();f=true}break;case 40:case 63233:if(this.resultsWindowHidden_&&this.inputFieldHasFocus_&&c!=39){this.searchActive_=true;this.querySearch_();f=false}else if(!this.resultsWindowHidden_&&(this.activeResult_>0||c!=39)){this.deactivateAllResults_();this.activateNextSearchResult_();f=false;this.arrowKeyProcessed_=true}break;case 38:case 63235:if(!this.resultsWindowHidden_){this.deactivateAllResults_();this.activatePrevSearchResult_();f=false;this.arrowKeyProcessed_=true}break;
case 37:case 39:if(!this.inputFieldHasFocus_&&!this.resultsWindowHidden_){this.arrowKeyProcessed_=false;this.inputFieldEl_[0].focus()}}}return f},handleBodyKeyPress_:function(a){if(this.initialized_){a=a||window.event;a=a.which?a.which:a.keyCode;if(this.arrowKeyProcessed_&&a>=37&&a<=40)return false;return true}},handleBodyKeyUp_:function(a){var f=true;a=a||window.event;this.arrowKeyProcessed_=false;return f},handleBodyResize_:function(){this.updateDimensions_();return true},handleInputBlur_:function(){this.inputFieldHasFocus_=
0},handleInputFocus_:function(){this.inputFieldHasFocus_=0.5;this.initialized_&&this.deactivateAllResults_()},handleInputClick_:function(a){a=a||window.event;this.searchActive_=a.cancelBubble=true;if(this.inputFieldHasFocus_==1)this.resultsWindowHidden_&&this.querySearch_();else this.inputFieldHasFocus_=1},handleBodyClick_:function(a){a=a||window.event;(a=a.target?a.target:a.srcElement)&&a.parentNode&&this.hideResultsWindow_()}};window.CODESITE_asYouTypeSearch=b;jQuery(function(){try{new b("gsearchInput",
"gsearchButton")}catch(a){}})})(jQuery);(function(){var b={POLLING_INTERVAL:450,IFRAME_POLLING_INTERVAL:50,init:function(){var a=window.location.href.match(/\/search\//);if(jQuery.browser.msie||jQuery.browser.mozilla||navigator.userAgent.indexOf("Chrome")!=-1||jQuery.browser.safari&&navigator.userAgent.indexOf("Version/")!=-1)b.poll(a)},poll:function(a){a&&window.setInterval(function(){a&&window.CODESITE_CSE.pollHash()},b.POLLING_INTERVAL)}};window.CODESITE_backButton=b})(jQuery);jQuery(document).ready(function(){window.CODESITE_backButton.init()});(function(){var b=true,a=null,f=false;window.PR_SHOULD_USE_CONTINUATION=b;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var X=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);window._pr_isIE6=function(){return X};return X};var e="!",c="!=",i="!==",d="#",h="%",r="%=",m="&",z="&&",A="&&=",H="&=",E="(",N="*",P="*=",I="+=",O=",",ia="-=",ab="->",sa="/",bb="/=",cb=":",db="::",ta=";",Y="<",eb="<<",
fb="<<=",gb="<=",hb="=",ib="==",jb="===",Z=">",kb=">=",lb=">>",mb=">>=",nb=">>>",ob=">>>=",pb="?",ua="@",V="[",S="^",qb="^=",rb="^^",sb="^^=",tb="{",aa="|",ub="|=",vb="||",wb="||=",xb="~",yb="break",zb="case",Ab="continue",Bb="delete",Cb="do",Db="else",Eb="finally",Fb="instanceof",Gb="return",Hb="throw",Ib="try",Jb="typeof",Kb="(?:^^|[+-]",Lb="\\$1",Mb=")\\s*",va="&amp;",wa="&lt;",xa="&gt;",Nb="&quot;",Ob="&#",ya="x",Pb="'",za='"',Aa=" ",Qb="XMP",Rb="</",Sb='="',K="",Q="\\",Tb="b",Ub="t",Vb="n",Wb=
"v",Xb="f",Yb="r",Zb="u",$b="0",ac="1",bc="2",cc="3",dc="4",ec="5",fc="6",gc="7",hc="\\x0",ic="\\x",ja="-",ka="]",jc="\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]",ba="g",kc="\\B",lc="\\b",mc="\\D",nc="\\d",oc="\\S",pc="\\s",qc="\\W",rc="\\w",sc="(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)",Ba="(?:",tc=")",uc="gi",la="PRE",vc='<!DOCTYPE foo PUBLIC "foo bar">\n<foo />',
wc="\t",Ca="\n",xc="[^<]+|<!--[\\s\\S]*?--\>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z][^>]*>|<",Da="nocode",yc=' $1="$2$3$4"',R="pln",zc="string",ca="lang-",Ea="src",W="str",Ac="'\"",Bc="'\"`",Fa="\"'",T="com",Cc="lang-regex",Dc="(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)",Ga="kwd",Ec="^(?:",Fc=")\\b",Gc=" \r\n\t\u00a0",ma="lit",Ha="typ",Hc="0123456789",da="pun",Ic="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
na="</span>",Jc='<span class="',Kc='">',Lc="$1&nbsp;",Mc="&nbsp;<br />",Nc="<br />",Ia="console",Oc="cannot override language handler %s",Ja="default-markup",Ka="default-code",La="dec",ea="lang-js",fa="lang-css",Pc="lang-in.tag",Qc="htm",Rc="html",Sc="mxml",Tc="xhtml",Uc="xml",Vc="xsl",Wc=" \t\r\n",oa="atv",Ma="tag",Na="atn",Xc="lang-uq.val",Yc="in.tag",Zc="uq.val",$c="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",
ad="c",bd="cc",cd="cpp",dd="cxx",ed="cyc",fd="m",gd="null true false",hd="json",id="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
jd="cs",kd="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",ld="java",md="break continue do else for if return while case done elif esac eval fi function in local set then until ",
nd="bsh",od="csh",pd="sh",qd="break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",rd="cv",sd="py",td="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",ud="perl",vd="pl",wd="pm",xd="break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",
yd="rb",zd="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN ",Ad="js",Bd="regex",Oa="pre",Pa="code",Qa="xmp",Ra="prettyprint",Cd="class",Dd="br",Ed="\r";(function(){var X=function(){for(var g=
[e,c,i,d,h,r,m,z,A,H,E,N,P,I,O,ia,ab,sa,bb,cb,db,ta,Y,eb,fb,gb,hb,ib,jb,Z,kb,lb,mb,nb,ob,pb,ua,V,S,qb,rb,sb,tb,aa,ub,vb,wb,xb,yb,zb,Ab,Bb,Cb,Db,Eb,Fb,Gb,Hb,Ib,Jb],j=Kb,o=0;o<g.length;++o)j+=aa+g[o].replace(/([^=<>:&a-z])/g,Lb);j+=Mb;return j}(),Sa=/&/g,Ta=/</g,Ua=/>/g,Fd=/\"/g;function Gd(g){return g.replace(Sa,va).replace(Ta,wa).replace(Ua,xa).replace(Fd,Nb)}function pa(g){return g.replace(Sa,va).replace(Ta,wa).replace(Ua,xa)}var Hd=/&lt;/g,Id=/&gt;/g,Jd=/&apos;/g,Kd=/&quot;/g,Ld=/&amp;/g,Md=/&nbsp;/g;
function Nd(g){var j=g.indexOf(m);if(j<0)return g;for(--j;(j=g.indexOf(Ob,j+1))>=0;){var o=g.indexOf(ta,j);if(o>=0){var k=g.substring(j+3,o),t=10;if(k&&k.charAt(0)===ya){k=k.substring(1);t=16}k=parseInt(k,t);isNaN(k)||(g=g.substring(0,j)+String.fromCharCode(k)+g.substring(o+1))}}return g.replace(Hd,Y).replace(Id,Z).replace(Jd,Pb).replace(Kd,za).replace(Ld,m).replace(Md,Aa)}function Va(g){return Qb===g.tagName}function ga(g,j){switch(g.nodeType){case 1:var o=g.tagName.toLowerCase();j.push(Y,o);for(var k=
0;k<g.attributes.length;++k){var t=g.attributes[k];if(t.specified){j.push(Aa);ga(t,j)}}j.push(Z);for(k=g.firstChild;k;k=k.nextSibling)ga(k,j);if(g.firstChild||!/^(?:br|link|img)$/.test(o))j.push(Rb,o,Z);break;case 2:j.push(g.name.toLowerCase(),Sb,Gd(g.value),za);break;case 3:case 4:j.push(pa(g.nodeValue));break}}function Wa(g){for(var j=0,o=f,k=f,t=0,y=g.length;t<y;++t){var x=g[t];if(x.ignoreCase)k=b;else if(/[a-z]/i.test(x.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,K))){o=b;k=f;break}}function v(n){if(n.charAt(0)!==
Q)return n.charCodeAt(0);switch(n.charAt(1)){case Tb:return 8;case Ub:return 9;case Vb:return 10;case Wb:return 11;case Xb:return 12;case Yb:return 13;case Zb:case ya:return parseInt(n.substring(2),16)||n.charCodeAt(1);case $b:case ac:case bc:case cc:case dc:case ec:case fc:case gc:return parseInt(n.substring(1),8);default:return n.charCodeAt(1)}}function C(n){if(n<32)return(n<16?hc:ic)+n.toString(16);n=String.fromCharCode(n);if(n===Q||n===ja||n===V||n===ka)n=Q+n;return n}function B(n){var q=n.substring(1,
n.length-1).match(new RegExp(jc,ba));n=[];for(var s=[],w=q[0]===S,p=w?1:0,l=q.length;p<l;++p){var u=q[p];switch(u){case kc:case lc:case mc:case nc:case oc:case pc:case qc:case rc:n.push(u);continue}u=v(u);var D;if(p+2<l&&ja===q[p+1]){D=v(q[p+2]);p+=2}else D=u;s.push([u,D]);if(!(D<65||u>122)){D<65||u>90||s.push([Math.max(65,u)|32,Math.min(D,90)|32]);D<97||u>122||s.push([Math.max(97,u)&-33,Math.min(D,122)&-33])}}s.sort(function(L,Xa){return L[0]-Xa[0]||Xa[1]-L[1]});q=[];u=[NaN,NaN];for(p=0;p<s.length;++p){l=
s[p];if(l[0]<=u[1]+1)u[1]=Math.max(u[1],l[1]);else q.push(u=l)}s=[V];w&&s.push(S);s.push.apply(s,n);for(p=0;p<q.length;++p){l=q[p];s.push(C(l[0]));if(l[1]>l[0]){l[1]+1>l[0]&&s.push(ja);s.push(C(l[1]))}}s.push(ka);return s.join(K)}function G(n){var q=n.source.match(new RegExp(sc,ba)),s=q.length,w=[],p,l=0;for(p=0;l<s;++l){var u=q[l];if(u===E)++p;else if(Q===u.charAt(0)){var D=+u.substring(1);if(D&&D<=p)w[D]=-1}}for(l=1;l<w.length;++l)if(-1===w[l])w[l]=++j;for(p=l=0;l<s;++l){u=q[l];if(u===E){++p;if(w[p]===
undefined)q[l]=Ba}else if(Q===u.charAt(0))if((D=+u.substring(1))&&D<=p)q[l]=Q+w[p]}for(p=l=0;l<s;++l)if(S===q[l]&&S!==q[l+1])q[l]=K;if(n.ignoreCase&&o)for(l=0;l<s;++l){u=q[l];n=u.charAt(0);if(u.length>=2&&n===V)q[l]=B(u);else if(n!==Q)q[l]=u.replace(/[a-zA-Z]/g,function(L){L=L.charCodeAt(0);return V+String.fromCharCode(L&-33,L|32)+ka})}return q.join(K)}var F=[];t=0;for(y=g.length;t<y;++t){x=g[t];if(x.global||x.multiline)throw new Error(K+x);F.push(Ba+G(x)+tc)}return new RegExp(F.join(aa),k?uc:ba)}
var qa=a;function Od(g){if(a===qa){var j=document.createElement(la);j.appendChild(document.createTextNode(vc));qa=!/</.test(j.innerHTML)}if(qa){j=g.innerHTML;if(Va(g))j=pa(j);return j}j=[];for(g=g.firstChild;g;g=g.nextSibling)ga(g,j);return j.join(K)}function Pd(g){var j=0;return function(o){for(var k=a,t=0,y=0,x=o.length;y<x;++y){var v=o.charAt(y);switch(v){case wc:k||(k=[]);k.push(o.substring(t,y));t=g-j%g;for(j+=t;t>=0;t-=16)k.push("                ".substring(0,t));t=y+1;break;case Ca:j=0;break;
default:++j}}if(!k)return o;k.push(o.substring(t));return k.join(K)}}var Qd=new RegExp(xc,ba),Rd=/^<\!--/,Sd=/^<\[CDATA\[/,Td=/^<br\b/i,Ya=/^<(\/?)([a-zA-Z]+)/;function Ud(g){var j=g.match(Qd),o=[],k=0,t=[];if(j)for(var y=0,x=j.length;y<x;++y){var v=j[y];if(v.length>1&&v.charAt(0)===Y){if(!Rd.test(v))if(Sd.test(v)){o.push(v.substring(9,v.length-3));k+=v.length-12}else if(Td.test(v)){o.push(Ca);++k}else if(v.indexOf(Da)>=0&&Vd(v)){var C=v.match(Ya)[2],B=1,G;G=y+1;a:for(;G<x;++G){var F=j[G].match(Ya);
if(F&&F[2]===C)if(F[1]===sa){if(--B===0)break a}else++B}if(G<x){t.push(k,j.slice(y,G+1).join(K));y=G}else t.push(k,v)}else t.push(k,v)}else{v=Nd(v);o.push(v);k+=v.length}}return{source:o.join(K),tags:t}}function Vd(g){return!!g.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,yc).match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}function ra(g,j,o,k){if(j){g={source:j,b:g};o(g);k.push.apply(k,g.c)}}function U(g,j){var o={},k;(function(){for(var x=g.concat(j),v=[],C={},B=0,G=x.length;B<G;++B){var F=
x[B],n=F[3];if(n)for(var q=n.length;--q>=0;)o[n.charAt(q)]=F;F=F[1];n=K+F;if(!C.hasOwnProperty(n)){v.push(F);C[n]=a}}v.push(/[\0-\uffff]/);k=Wa(v)})();var t=j.length,y=function(x){var v=x.source,C=x.b,B=[C,R],G=0;v=v.match(k)||[];for(var F={},n=0,q=v.length;n<q;++n){var s=v[n],w=F[s],p,l;if(typeof w===zc)l=f;else{var u=o[s.charAt(0)];if(u){p=s.match(u[1]);w=u[0]}else{for(l=0;l<t;++l){u=j[l];if(p=s.match(u[1])){w=u[0];break}}p||(w=R)}if((l=w.length>=5&&ca===w.substring(0,5))&&!(p&&p[1])){l=f;w=Ea}l||
(F[s]=w)}u=G;G+=s.length;if(l){l=p[1];var D=s.indexOf(l),L=D+l.length;w=w.substring(5);ra(C+u,s.substring(0,D),y,B);ra(C+u+D,l,Za(w,l),B);ra(C+u+L,s.substring(L),y,B)}else B.push(C+u,w)}x.c=B};return y}function M(g){var j=[],o=[];if(g.tripleQuotedStrings)j.push([W,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,a,Ac]);else g.multiLineStrings?j.push([W,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
a,Bc]):j.push([W,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,a,Fa]);if(g.hashComments)g.cStyleComments?j.push([T,/^#(?:[^\r\n\/]|\/(?!\*)|\/\*[^\r\n]*?\*\/)*/,a,d]):j.push([T,/^#[^\r\n]*/,a,d]);if(g.cStyleComments){o.push([T,/^\/\/[^\r\n]*/,a]);o.push([T,/^\/\*[\s\S]*?(?:\*\/|$)/,a])}g.regexLiterals&&o.push([Cc,new RegExp(S+X+Dc)]);g=g.keywords.replace(/^\s+|\s+$/g,K);g.length&&o.push([Ga,new RegExp(Ec+g.replace(/\s+/g,aa)+Fc),a]);j.push([R,/^\s+/,a,Gc]);o.push([ma,/^@[a-z_$][a-z_$@0-9]*/i,
a,ua],[Ha,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,a],[R,/^[a-z_$][a-z_$@0-9]*/i,a],[ma,/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,a,Hc],[da,/^.[^\s\w\.$@\'\"\`\/\#]*/,a]);return U(j,o)}var Wd=M({keywords:Ic,hashComments:b,cStyleComments:b,multiLineStrings:b,regexLiterals:b});function Xd(g){var j=g.source,o=g.f,k=g.c,t=[],y=0,x=a,v=a,C=0,B=0,G=Pd(window.PR_TAB_WIDTH),F=/([\r\n ]) /g,n=/(^| ) /gm,q=/\r\n?|\n/g,s=/[ \r\n]$/,w=b;function p(u){if(u>y){if(x&&x!==v){t.push(na);
x=a}if(!x&&v){x=v;t.push(Jc,x,Kc)}var D=pa(G(j.substring(y,u))).replace(w?n:F,Lc);w=s.test(D);var L=window._pr_isIE6()?Mc:Nc;t.push(D.replace(q,L));y=u}}for(;1;){var l;if(l=C<o.length?B<k.length?o[C]<=k[B]:b:f){p(o[C]);if(x){t.push(na);x=a}t.push(o[C+1]);C+=2}else if(B<k.length){p(k[B]);v=k[B+1];B+=2}else break}p(j.length);x&&t.push(na);g.a=t.join(K)}var ha={};function J(g,j){for(var o=j.length;--o>=0;){var k=j[o];if(ha.hasOwnProperty(k))Ia in window&&console.i(Oc,k);else ha[k]=g}}function Za(g,j){g&&
ha.hasOwnProperty(g)||(g=/^\s*</.test(j)?Ja:Ka);return ha[g]}J(Wd,[Ka]);J(U([],[[R,/^[^<?]+/],[La,/^<!\w[^>]*(?:>|$)/],[T,/^<\!--[\s\S]*?(?:-\->|$)/],[ca,/^<\?([\s\S]+?)(?:\?>|$)/],[ca,/^<%([\s\S]+?)(?:%>|$)/],[da,/^(?:<[%?]|[%?]>)/],[ca,/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],[ea,/^<script\b[^>]*>([\s\S]+?)<\/script\b[^>]*>/i],[fa,/^<style\b[^>]*>([\s\S]+?)<\/style\b[^>]*>/i],[Pc,/^(<\/?[a-z][^<>]*>)/i]]),[Ja,Qc,Rc,Sc,Tc,Uc,Vc]);J(U([[R,/^[\s]+/,a,Wc],[oa,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,a,Fa]],
[[Ma,/^^<\/?[a-z](?:[\w:-]*\w)?|\/?>$/],[Na,/^(?!style\b|on)[a-z](?:[\w:-]*\w)?/],[Xc,/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[da,/^[=<>\/]+/],[ea,/^on\w+\s*=\s*\"([^\"]+)\"/i],[ea,/^on\w+\s*=\s*\'([^\']+)\'/i],[ea,/^on\w+\s*=\s*([^\"\'>\s]+)/i],[fa,/^sty\w+\s*=\s*\"([^\"]+)\"/i],[fa,/^sty\w+\s*=\s*\'([^\']+)\'/i],[fa,/^sty\w+\s*=\s*([^\"\'>\s]+)/i]]),[Yc]);J(U([],[[oa,/^[\s\S]+/]]),[Zc]);J(M({keywords:$c,hashComments:b,cStyleComments:b}),[ad,bd,cd,dd,ed,fd]);J(M({keywords:gd}),[hd]);J(M({keywords:id,
hashComments:b,cStyleComments:b}),[jd]);J(M({keywords:kd,cStyleComments:b}),[ld]);J(M({keywords:md,hashComments:b,multiLineStrings:b}),[nd,od,pd]);J(M({keywords:qd,hashComments:b,multiLineStrings:b,tripleQuotedStrings:b}),[rd,sd]);J(M({keywords:td,hashComments:b,multiLineStrings:b,regexLiterals:b}),[ud,vd,wd]);J(M({keywords:xd,hashComments:b,multiLineStrings:b,regexLiterals:b}),[yd]);J(M({keywords:zd,cStyleComments:b,regexLiterals:b}),[Ad]);J(U([],[[W,/^[\s\S]+/]]),[Bd]);function $a(g){var j=g.e,
o=g.d;g.a=j;try{var k=Ud(j),t=k.source;g.source=t;g.b=0;g.f=k.tags;Za(o,t)(g);Xd(g)}catch(y){if(Ia in window){console.log(y);console.h()}}}function Yd(g,j){g={e:g,d:j};$a(g);return g.a}function Zd(g){for(var j=window._pr_isIE6(),o=[document.getElementsByTagName(Oa),document.getElementsByTagName(Pa),document.getElementsByTagName(Qa)],k=[],t=0;t<o.length;++t)for(var y=0,x=o[t].length;y<x;++y)k.push(o[t][y]);o=a;var v=Date;v.now||(v={now:function(){return(new Date).getTime()}});var C=0,B;function G(){for(var n=
window.PR_SHOULD_USE_CONTINUATION?v.now()+250:Infinity;C<k.length&&v.now()<n;C++){var q=k[C];if(q.className&&q.className.indexOf(Ra)>=0){var s=q.className.match(/\blang-(\w+)\b/);if(s)s=s[1];for(var w=f,p=q.parentNode;p;p=p.parentNode)if((p.tagName===Oa||p.tagName===Pa||p.tagName===Qa)&&p.className&&p.className.indexOf(Ra)>=0){w=b;break}if(!w){w=Od(q);w=w.replace(/(?:\r\n?|\n)$/,K);B={e:w,d:s,g:q};$a(B);F()}}}if(C<k.length)setTimeout(G,250);else g&&g()}function F(){var n=B.a;if(n){var q=B.g;if(Va(q)){for(var s=
document.createElement(la),w=0;w<q.attributes.length;++w){var p=q.attributes[w];if(p.specified){var l=p.name.toLowerCase();if(l===Cd)s.className=p.value;else s.setAttribute(p.name,p.value)}}s.innerHTML=n;q.parentNode.replaceChild(s,q);q=s}else q.innerHTML=n;if(j&&q.tagName===la){n=q.getElementsByTagName(Dd);for(q=n.length;--q>=0;){s=n[q];s.parentNode.replaceChild(document.createTextNode(Ed),s)}}}}G()}window.PR_normalizedHtml=ga;window.prettyPrintOne=Yd;window.prettyPrint=Zd;window.PR={combinePrefixPatterns:Wa,
createSimpleLexer:U,registerLangHandler:J,sourceDecorator:M,PR_ATTRIB_NAME:Na,PR_ATTRIB_VALUE:oa,PR_COMMENT:T,PR_DECLARATION:La,PR_KEYWORD:Ga,PR_LITERAL:ma,PR_NOCODE:Da,PR_PLAIN:R,PR_PUNCTUATION:da,PR_SOURCE:Ea,PR_STRING:W,PR_TAG:Ma,PR_TYPE:Ha}})()})();(function(){function b(a){this.parentElem=a.parent;this.controlsElem=a.controls;this.contentElem=a.content;if(!(!this.parentElem||!this.controlsElem||!this.contentElem)){b.active[this.index=b.active.length]=this;var f=this;this.toggleElem=jQuery('<img src="images/cleardot.gif">').addClass("collapsible-control").mouseover(function(){var e=jQuery(this);e.addClass("collapsible-hover")}).mouseout(function(){var e=jQuery(this);e.removeClass("collapsible-hover")});this.controlsElem.mousedown(function(){var e=
jQuery(f.toggleElem),c=jQuery(f.contentElem);if(c.is(":visible")){e.addClass("collapsible-plus").removeClass("collapsible-minus");c.hide()}else{e.addClass("collapsible-minus").removeClass("collapsible-plus");c.show()}});if(this.parentElem.is(".closed"))a.opened=false;if(this.parentElem.is(".opened"))a.opened=true;if(a.opened===true)this.toggleElem.addClass("collapsible-minus");else{this.toggleElem.addClass("collapsible-plus");this.contentElem.hide()}this.controlsElem.prepend(this.toggleElem);this.parentElem.addClass("collapsible-done")}}
b.prototype={index:-1,parentElem:null,controlsElem:null,contentElem:null,toggleElem:null};jQuery.extend(b,{active:[],convert:function(){for(var a=jQuery(".collapsible"),f=0;f<a.length;f++)if(a[f].className.indexOf("collapsible-done")==-1){var e=jQuery(".collapsible-controls",a[f]),c=jQuery(".collapsible-content",a[f]);e.length&&c.length&&new b({parent:jQuery(a[f]),controls:e,content:c})}}});window.CODESITE_collapsible=b;jQuery(function(){CODESITE_collapsible.convert()})})();(function(){var b=function(h,r,m){this.numCompleteTranslations=0;this.contentContainers=h;this.originalText=[];this.translatedText=[];this.srcLang=r;this.destLang=m;for(h=0;h<this.contentContainers.length;h++)this.originalText.push(this.contentContainers[h].innerHTML)};b.prototype.translationComplete=function(h,r,m,z){if(m==200&&!z){for(m=0;m<r.length;m++)if(r[m].responseStatus!=200){r.slice(m);m--}this.translatedText[h]=r;this.numCompleteTranslations++;if(this.numCompleteTranslations==this.numTranslations){h=
[];for(m=0;m<this.translatedText.length;m++)h=h.concat(this.translatedText[m]);this.translatedText=h;for(m=0;m<this.translatedText.length;m++)if(this.translatedText[m].responseStatus==200)this.contentContainers[m].innerHTML=this.translatedText[m].responseData.translatedText}}};b.prototype.createScriptURLs=function(){var h=this.contentContainers,r=this.srcLang,m=this.destLang,z=[];r="http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&callback=CODESITE_newsBlogTH.translationComplete&langpair="+
r+"%7C"+m;m=0;for(var A=r+"&context="+m,H=0;H<h.length;H++){var E=encodeURIComponent(h[H].innerHTML);if(E)if((A+E).length<1800)A+="&q="+E;else{z.push(A);m++;A=r+"&context="+m;if((A+E).length<1800)A+="&q="+E}}z.push(A);return z};b.prototype.translate=function(){if(this.translatedText.length>0)for(var h=0;h<this.translatedText.length;h++){if(this.translatedText[h].responseStatus==200)this.contentContainers[h].innerHTML=this.translatedText[h].responseData.translatedText}else{var r=this.createScriptURLs();
this.numTranslations=r.length;for(h=0;h<r.length;h++)jQuery.ajax({type:"GET",url:r[h],dataType:"script"})}};b.prototype.revert=function(){for(var h=0;h<this.contentContainers.length;h++)jQuery(this.contentContainers[h]).text(this.originalText[h])};function a(){window.CODESITE_newsBlogTH.translate();jQuery("#gc-translate-direction").html("&nbsp;&larr;");jQuery(this).unbind();jQuery(this).click(f)}function f(){window.CODESITE_newsBlogTH.revert();jQuery("#gc-translate-direction").html("&nbsp;&rarr;");
jQuery(this).unbind();jQuery(this).click(a)}function e(h){switch(h){case "pt-BR":return"pt-PT";default:return h}}var c=document.getElementById("news")||null;if(c&&CODESITE_langLoc&&typeof window.CODESITE_langCode[CODESITE_langLoc]!=="undefined"){c=c.getElementsByTagName("p");for(var i=[],d=0;d<c.length;d++)c[d].className.indexOf("blog-entry-summary")!=-1&&i.push(c[d]);window.CODESITE_newsBlogTH=new b(i,"",e(CODESITE_langLoc));b=jQuery("#gc-translate-blogs");b.text(window.CODESITE_langCode[CODESITE_langLoc]);
b.click(a)}})(jQuery);(function(b){function a(){var f=window.location.pathname.replace(/\/index[.]html$/,"/");return"http://"+window.location.hostname+f}window.CODESITE_displayComments=function(){var f=b('<h2 id="commentWidgetTitle">User Notes</h2>'+CODESITE_zipItDesc+'<div id="commentwidget"></div>');b("#gc-pagecontent").append(f);f=a();google.annotations.create("CommentThread","commentwidget",{entity:{url:f},inline:true,collapsiblePoster:true,commentTemplate:'<div class="commentHeader"><z:Nickname/> - <z:DateTime/> <z:NumUsersFoundThisHelpful/></div><div class="commentContent"><z:CommentDisplay/></div><div class="commentHelpful">Was this note helpful? <z:VotingEditor/></div><div class="commentSpam"><z:ReportSpamLink/></div>'});
google.annotations.fetch()};window.CODESITE_initComments=function(f,e,c){f=f||"http://www.google.com";e=e||window.location;var i=c||b.getScript;if(e.pathname.indexOf("/intl/")==-1){c="&callback=CODESITE_displayComments&appid=92";if(e.hostname!="code.google.com")c+="&dev=1";var d=f+"/reviews/scripts/annotations_bootstrap.js?"+c;b(function(){i(d)})}}})(jQuery);
