﻿if(top!=self){top.location.replace(document.location);alert("For security reasons, framing is not allowed; click OK to remove the frames.")}function checkForJQuery(){if(!window.jQuery){if(document.readyState!="complete"){setTimeout(checkForJQuery,1000);return}var f="This site";var d=document.getElementById("hlogo");if(d){var c=d.getElementsByTagName("a");if(c.length){f=c[0].innerHTML||f}}var e=document.createElement("div");e.id="noscript-padding";var g=document.createElement("div");g.id="noscript-warning";g.innerHTML=f+" works best with JavaScript enabled";document.body.insertBefore(e,document.body.firstChild);document.body.appendChild(g)}}checkForJQuery();$(function(){$.ajaxSetup({cache:false});master.bind_hidePopupsOnEscPress()});String.prototype.format=function(){var d=this.toString();if(!arguments.length){return d}var c=typeof arguments[0]=="string"?arguments:arguments[0];for(var a in c){d=d.replace(new RegExp("\\{"+a+"\\}","gi"),c[a])}return d};$.fn.extend({fadeOutAndRemove:function(a){return this.each(function(){var c=$(this);c.fadeOut("fast",function(){c.remove()})})},charCounter:function(a){return this.each(function(){$(this).bind("blur focus keyup",function(){var h=a.min;var g=a.max;var e=a.setIsValid||function(){};var d=this.value?this.value.length:0;var c=d>g*0.8?"supernova":d>g*0.6?"hot":d>g*0.4?"warm":"cool";var i="";if(d==0){i="enter at least "+h+" characters";e(false)}else{if(d<h){i=(h-d)+" more to go..";e(false)}else{i=(g-d)+" character"+(g-d!=1?"s":"")+" left";e(d<=g)}}var f=$(this).parents("form").find("span.text-counter");f.text(i);if(!f.hasClass(c)){f.removeClass("supernova hot warm cool").addClass(c)}})})},selectRange:function(c,a){return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(c,a)}else{if(this.createTextRange){var d=this.createTextRange();d.collapse(true);d.moveEnd("character",a);d.moveStart("character",c);d.select()}}})},addSpinner:function(a){return this.each(function(){master.addSpinner(this,a)})},addSpinnerAfter:function(a){return this.each(function(){$(this).after(master.getSpinnerImg(a))})},showErrorPopup:function(c,a){return this.each(function(){master.showErrorPopup(this,c,a)})},center:function(){this.css("position","absolute");this.css("top",($(window).height()-this.height())/2+$(window).scrollTop()+"px");this.css("left",($(window).width()-this.width())/2+$(window).scrollLeft()+"px");return this},helpOverlay:function(){master.bindHelpOverlayEvents(this);return this},hideHelpOverlay:function(){master.hideHelpOverlay(this);return this},enable:function(){if(arguments.length==0||arguments[0]){this.removeAttr("disabled").css("cursor","pointer")}else{this.attr("disabled","disabled").css("cursor","default")}return this},disable:function(){return this.enable(false)},loadPopup:function(c){var a=this;a.addSpinnerAfter({padding:"0 3px"});$.ajax({type:"GET",url:c.url,dataType:"html",success:function(d){var e=$(d);e.find(".popup-actions-cancel, .popup-close a").click(function(){e.fadeOutAndRemove()});e.find("input:radio[disabled=disabled] + label.action-label").addClass("action-disabled");if(c.hideDescriptions){e.find("ul.action-list > li:not(.action-selected) .action-desc").hide()}var f=e.find("input:radio:not(.action-subform input)");f.closest("li").bind("hide-action",function(){var j=$(this);var i=".action-subform"+(c.hideDescriptions?", .action-desc":"");j.removeClass("action-selected").find(i).slideUp("fast")}).bind("show-action",function(){var i=$(this);if(i.hasClass("action-selected")){return}i.siblings(".action-selected").trigger("hide-action");i.addClass("action-selected").find(".action-subform").slideDown("fast",function(){if(c.subformShow){c.subformShow($(this))}if(c.subformFocusInput){var j=$(this).find("input[type=text], textarea").not(".actual-edit-overlay").eq(0);if(j.length){j.focus()}}});if(c.hideDescriptions){i.find(".action-desc").slideDown("fast")}if(c.actionSelected){c.actionSelected(i)}e.find(".popup-submit").enable()});f.click(function(){$(this).closest("li").trigger("show-action")});e.appendTo(a.parent());if(c.loaded){c.loaded(e)}var g=function(){};if(c.subformShow){var h=e.find("li.action-selected .action-subform");if(h.length>0){g=function(){h.each(function(){c.subformShow($(this))})}}}e.center().fadeIn("fast",g)},error:function(){a.parent().showErrorPopup("Unable to load popup - please try again")},complete:master.removeSpinner});return a}});var master=function(){var c=function(e){return e.parent().find("span.edit-field-overlay")};function a(h,j,k){for(var f=0;f<k.lenght;f++){var g=k[f];try{j.css(g,h.css(g))}catch(e){}}}function d(h,f){if(!h.is(":visible")){return}if(h.val().length!=0){h.css("opacity",1).css("filter","").removeClass("edit-field-overlayed");return}else{h.css("opacity",f?0.5:0.3);h.addClass("edit-field-overlayed")}var e=h.prev(".actual-edit-overlay");if(e.length==0){var g=c(h).text();e=h.clone().attr("class","actual-edit-overlay").attr("name",null).attr("id",null).attr("disabled","disabled").val(g).css({position:"absolute",backgroundColor:"white",color:"black",opacity:1,width:h.width(),height:h.height()});a(h,e,["font-family","font-size","line-height","text-align"]);h.css({zIndex:1,position:"relative"});e.insertBefore(h);var n=h.offset().top-e.offset().top;if(n!=0){var k=parseInt(e.css("margin-top"));var i=k+n;if(!h.is("textarea")){i=parseInt(e.prevAll(":visible").eq(0).css("margin-bottom"))+k}e.css("margin-top",i)}var l=h.offset().left-e.offset().left;if(l!=0){var j=parseInt(e.css("margin-left"));e.css("margin-left",j+l)}}}return{bindHelpOverlayEvents:function(e){e.bind("keydown contextmenu",function(){master.hideHelpOverlay($(this))}).focus(function(){d($(this),true)}).blur(function(){d($(this))}).each(function(){d($(this))})},hideHelpOverlay:function(e){e.css("opacity",1);e.css("filter","");e.removeClass("edit-field-overlayed")},onClickDraftSave:function(e){$(e).click(function(){var f=this.href;if(!heartbeat.draftSaved()){heartbeat.ping(function(){window.onbeforeunload=null;window.location.href=f});return false}window.onbeforeunload=null;return true});return true},showErrorPopup:function(e,h,f){var g=$('<div class="error-notification supernovabg"><h2>'+h+"</h2>"+(f?"":"(click on this box to dismiss)")+"</div>");var i=function(){g.fadeOutAndRemove()};$(e).append(g);g.click(i).fadeIn("fast");setTimeout(i,(f?Math.max(2500,h.length*40):1000*30))},addSpinner:function(e,f){$(e).append(master.getSpinnerImg(f))},getSpinnerImg:function(e){var f=$('<img class="ajax-loader" src="/content/img/progress-dots.gif" title="loading..." alt="loading..." />');if(e){f.css(e)}return f},removeSpinner:function(){$("img.ajax-loader").remove()},bind_hidePopupsOnEscPress:function(){$(document).keyup(function(e){if(e.which==27){$("#lightbox, .error-notification, .popup, .post-moderator-menu").fadeOutAndRemove();if(genuwine.isVisible()){genuwine.click()}profileLink.hide()}})},bind_submitOnEnterPress:function(e){e.find("textarea").keyup(function(f){if(f.which==13&&!f.shiftKey){e.submit()}}).keypress(function(f){if(f.which==13&&!f.shiftKey){return false}})},loadTicks:function(){var e=$("#edit-block");if(e.find("input[name=i1l]").length==0){$.get("/questions/ticks",function(f){e.append("<input type='hidden' name='i1l' value='"+f+"' />")})}}}}();var gauth=function(){return{informStackAuth:function(f){if(!gauth.enabled()){return}var d=document.domain;if(d.substr(0,5)=="meta."){d=d.substr(4,d.length-4)}var g=$.cookie("gauth");if(g==null){$.cookie("gauth",null,{path:"/",domain:d});return}if(d.charAt(0)!="."){d="."+d}$.cookie("gauth",null,{path:"/",domain:d});var c=g.indexOf(":");var a=g.substr(0,c);var e=g.substr(c+1);var h=f+"/auth/global/write?authToken="+encodeURIComponent(a)+"&nonce="+encodeURIComponent(e);$(document).ready(function(){$("#footer").append("<iframe style='display:none' src='"+h+"'></iframe>")})},checkStackAuth:function(d){if(!gauth.enabled()){return}var a=$.cookie("gauthed");if(a!=null){return}$.cookie("gauthed","1",{path:"/"});var c=function(f){var h=f.origin;if(h!=d){return}if(f.data=="No Local Storage"){gauth.noGAuthStorage();return}if(f.data=="No Session"){gauth.noGAuthSession();return}var i=f.data.substr(0,f.data.indexOf(","));var g=f.data.substr(f.data.indexOf(",")+1);$.post("/users/login/global",{authToken:i,nonce:g},function(e,k,j){gauth.globallyAuthed(e)},"json")};if(window.attachEvent){window.attachEvent("onmessage",c)}else{window.addEventListener("message",c,false)}$.post("/users/login/global/request","",function(e,f,h){var g=d+"/auth/global/read?request="+encodeURIComponent(e.token)+"&nonce="+encodeURIComponent(e.nonce);$(document).ready(function(){$("#footer").append("<iframe id='global-auth-frame' style='display:none' src='"+g+"'></iframe>")})},"json")},enabled:function(){$.cookie("enabledCheck","1");if($.cookie("enabledCheck")==null){return false}$.cookie("enabledCheck",null);if(typeof(localStorage)=="undefined"){return false}return true},noGAuthStorage:function(){},noGAuthSession:function(){},closeGAuthNotification:function(){var a=$("#overlay-header");a.animate({opacity:"0",height:"hide"},"fast",function(){a.css("z-index",-4)})},globallyAuthed:function(h){if(h==undefined||h.Message==undefined){return}var c=""+window.location;var f="/users/login";var k=false;var d=c.indexOf("returnurl=");var l=null;if(d!=-1){var e=c.indexOf("&",d);if(e==-1){e=c.length}l=decodeURIComponent(c.substring(d+"returnurl=".length,e))}if(c.indexOf(f)!=-1){k=true;if(l==null){l="/"}}var a="color: #999;cursor: pointer;font-size: 10px;font-weight: normal;";var g=h.Message;if(k){g+='<br><span id="ga_loaded">You are being redirected</span>'}else{if(l==null){g+='  <a href="javascript:location.reload(true)">Click here</a> to refresh the page.'}else{g+='  <a style="'+a+'" href="javascript:window.location=\''+l+"'\">Return</a>"}}if(!k){g+='<br><a style="'+a+'" href="javascript:gauth.closeGAuthNotification()">close this message</a>'}if($.browser.msie){$("#overlay-header").css("background","#FFF").css("opacity","0")}$("#overlay-header").html(g).css("z-index",250).animate({opacity:"1",height:"show"},{duration:"slow",complete:function(){if(k){window.location=l}}})}}}();var genuwine=function(){var a;return{url:"",init:function(c){var d=$(".genu");a=c;genuwine.url=d.attr("href");d.removeAttr("href").add(".unreadCount").click(genuwine.click);$(document).click(function(f){if(genuwine.isVisible()&&!$.contains($("#portalLink")[0],f.target)){genuwine.click()}})},isVisible:function(){return $(".genu").hasClass("genu-on")},click:function(){var c=$(".genu");var e=$("#seWrapper");if(e.length==0){genuwine.appendWrapper();e=$("#seWrapper");var d;if(inboxUnviewedCount>0){d=$("#seTabInbox");genuwine.ensureInbox(d)}else{d=$("#seTabHot");genuwine.ensureHot(d)}d.addClass("seCurrent")}var f=c.hasClass("genu-on");if(f){$(".unreadCountTab").hide();$(".itemBoxNew").removeClass("itemBoxNew");e.fadeOut("fast")}else{e.fadeIn("fast");$(".unreadCount").hide()}c.toggleClass("genu-on",!f);if(inboxUnviewedCount==-1){$(c).ready(function(){$("#seTabInbox").hide()})}},appendWrapper:function(){var c='<div id="seWrapper" style="position:absolute; display:none;"><div class="seIntro"><a href="'+genuwine.url+'">Stack Exchange</a> is a network of free, community-driven Q&A sites.</div><div class="seNav"><ul class="seNavLinks"><li><a id="seTabHot" onclick="genuwine.tabClick($(this))">Hot Questions</a></li><li><a id="seTabSites" onclick="genuwine.tabClick($(this))">All Sites</a></li><li><a id="seTabInbox" onclick="genuwine.tabClick($(this))">Inbox</a></li></ul></div><div class="seContainer"></div><div class="seFooter"><a>close</a></div></div>';$(c).appendTo("#portalLink");$(".seFooter").live("click",genuwine.click)},tabClick:function(c){$(".seNavLinks a").removeClass("seCurrent");c.addClass("seCurrent");switch(c.attr("id")){case"seTabHot":genuwine.ensureHot(c);$("#seContainerSites, #seContainerInbox").hide();$("#seContainerHot").fadeIn("fast");break;case"seTabSites":genuwine.ensureSites(c);$("#seContainerHot, #seContainerInbox").hide();$("#seContainerSites").fadeIn("fast");break;case"seTabInbox":genuwine.ensureInbox(c);$("#seContainerHot, #seContainerSites").hide();$("#seContainerInbox").fadeIn("fast");break}},ensureHot:function(c){if($("#seContainerHot").length==0){genuwine.loadHot(c)}},loadHot:function(c){genuwine.load(c,genuwine.url+"/genuwine?callback=?","jsonp",genuwine.renderHot)},renderHot:function(g,j){var c=$("<div/>");var e='<div id="seContainerHot" style="display:none">';for(var f=0;f<j.length;f++){var h=j[f];var l=h.SiteId;var d='href="http://'+l+"/questions/"+h.Id+'"';var k=parseInt(h.DisplayScore,10);e+='<div class="itemBox"><a '+d+' class="seNumAnswer">'+k+'</a><div class="siteInfo"><p><a '+d+">"+c.text(h.Title).html()+'</a></p><a href="http://'+l+'" class="siteLink">'+l+"</a></div></div>"}e+="</div>";genuwine.render(g,e)},ensureSites:function(c){if($("#seContainerSites").length==0){genuwine.loadSites(c)}},loadSites:function(d){var c=document.location.host;genuwine.load(d,genuwine.url+"/genuwine/sites?callback=?&host="+c+(!!a?("&guid="+a):""),"jsonp",genuwine.renderSites)},renderSites:function(f,j){var d='<div id="seContainerSites" style="display:none">';for(var e=0;e<j.length;e++){var h=j[e];var g=h.Name;var c='href="http://'+h.Id+'"';d+='<div class="itemBox"><a '+c+' class="siteFavicon"><img src="'+h.FaviconUrl+'" alt="'+g+'"></a><div class="siteInfo"><p><a '+c+">"+g+"</a></p><a "+c+' class="siteLink">'+h.Description+"</a></div></div>"}d+="</div>";genuwine.render(f,d)},ensureInbox:function(c){if(inboxUnviewedCount==-1){return}if($("#seContainerInbox").length==0){genuwine.loadInbox(c)}if(inboxUnviewedCount>0&&c.find(".unreadCountTab").length==0){c.prepend('<span class="unreadCountTab">'+inboxUnviewedCount+"</span>")}},loadInbox:function(c){genuwine.load(c,"/inbox/genuwine","json",genuwine.renderInbox,true)},renderInbox:function(k,g){var e='<div id="seContainerInbox" style="display:none">';for(var f=0;f<g.length;f++){var j=g[f];var d='href="'+j.Url+'"';var l='title="'+j.CreationDate+'"';var c=j.Count;var h=j.IsNew?" itemBoxNew":"";if(j.Type!="careers message"){e+='<div class="itemBox'+h+'"><a '+d+' class="siteLinkFavicon"><img src="'+j.FaviconUrl+'" alt="'+j.SiteUrl+'"></a><div class="siteInfo"><p>'+(c>1?c+" ":"")+j.Type+" on <a "+d+" "+l+">"+j.Title+'</a></p><p class="inboxSummary">'+(j.Summary||"")+"</p></div></div>"}else{e+='<div class="itemBox'+h+'"><a '+d+' class="siteLinkFavicon"><img src="'+j.FaviconUrl+'" alt="'+j.SiteUrl+'"></a><div class="siteInfo"><p><a '+d+' style="font-weight:normal"><b>'+j.Title+'</b> wants to contact you on <b>Stack Overflow Careers</b></a></p><p class="inboxSummary">'+(j.Summary||"")+"</p></div></div>"}}e+="</div>";genuwine.render(k,e)},currentlyLoading:{},load:function(e,i,c,g,d){var h=e.attr("id");if(genuwine.currentlyLoading[h]){genuwine.addSpinnerToContainer();return}genuwine.currentlyLoading[h]=true;genuwine.addSpinnerToContainer();var f=function(){genuwine.currentlyLoading[h]=false;master.showErrorPopup($(".seContainer"),"An error occurred while loading - please try again.")};$.ajax({type:"GET",url:i,dataType:c,success:function(j){if(j&&(j.length>0||d)){g(e,j)}else{f()}},error:f,complete:master.removeSpinner})},render:function(e,c){var d=$(c);d.appendTo(".seContainer");if(e.hasClass("seCurrent")){d.fadeIn("fast")}},addSpinnerToContainer:function(){master.removeSpinner();master.addSpinner(".seContainer",{position:"relative",left:"10px",top:"10px"})}}}();var profileLink=function(){var f;var a;var c;var g;var d=false;var e;var l=function(){return $(".profile-link")};var n=function(){return $(".profile-triangle")};var k=function(){return $(".profile-popup")};var q=function(u){if(!u){u=l()}return u.hasClass("profile-link-on")};var t=function(u,v){v.toggleClass("profile-link-on",u);n().toggleClass("profile-triangle-on",u)};var h=function(u){var v=$('<div class="profile-popup" style="position:absolute; display:none;"><div class="profile-wrapper"><div class="profile-gravatar"><a href="'+f+'">'+a+'</a><ul class="profile-links"><li><a href="'+f+'">profile</a></li>'+(u.hasClass("child-meta")?"":'<li><a href="/privileges">privileges</a></li>')+'<li><a href="/users/logout">logout</a></li></ul></div><div class="profile-stats"></div><div class="profile-footer"><span class="popup-clock"></span> <a>close</a></div></div></div>');v.insertBefore(u).find(".profile-footer").click(profileLink.click);if(!d){i(v)}return v};var s=function(u){if(u.data("loading")){return}u.data("loading",true);var v=u.find(".profile-stats");v.addSpinner();$.ajax({type:"GET",url:"/users/profile-link-stats",dataType:"html",success:function(w){$(w).hide().appendTo(v).fadeIn("fast")},error:function(x,y,w){u.data("loading",false)},complete:master.removeSpinner})};var j=function(){var w=new Date(),u=w.getUTCHours(),v=w.getUTCMinutes();if(u<10){u="0"+u}if(v<10){v="0"+v}$(".profile-popup .popup-clock").text("UTC time "+u+":"+v)};var r=function(v){var u=v.find(".popup-clock");setInterval(j,1000);j()};var p=function(){if(c){clearTimeout(c);c=null}g=setTimeout(profileLink.show,250)};var o=function(){if(g){clearTimeout(g);g=null}c=setTimeout(profileLink.hide,1000)};var i=function(u){u.hover(p,o)};return{init:function(u,v){var w=l(),x=n();f=w.attr("href");a=u;d=v;x.click(profileLink.click);if(!v){i(w.add(x))}$(document).click(function(y){if(q(w)&&y.target!=w[0]&&y.target!=x[0]&&!$.contains($(".profile-wrapper")[0],y.target)){profileLink.hide()}})},click:function(){var u=l();clearTimeout(c);c=null;clearTimeout(g);g=null;if(q(u)){profileLink.hide()}else{profileLink.show()}},show:function(u,v){if(!u){u=l()}if(!v){v=k()}if(!v.length){v=h(u)}if(!q(u)){v.fadeIn("fast");r(v);s(v);t(true,u);e=new Date()}},hide:function(u,v){if(!e||new Date().getTime()-e.getTime()<500){return}if(!u){u=l()}if(!v){v=k()}if(q(u)){v.fadeOut("fast");t(false,u)}}}}();var share=function(){function a(e,c,d){if(!window.open(e,c,d)){window.location.href=e}}return{twitter:function(c,e,d){c.click(function(){a("http://twitter.com/share?url="+encodeURIComponent(e)+"&ref=twitbtn&text="+encodeURIComponent(d),"sharetwitter","toolbar=1,status=1,resizable=1,scrollbars=1,width=800,height=526")})},facebook:function(c,e,d){c.click(function(){a("http://www.facebook.com/sharer.php?u="+encodeURIComponent(e)+"&ref=fbshare&t="+encodeURIComponent(d),"sharefacebook","toolbar=1,status=1,resizable=1,scrollbars=1,width=626,height=436")})}}}();function moveScroller(){var c=$("#scroller").width();var a=function(){var f=$(window).scrollTop();var d=$("#scroller-anchor").offset().top;var e=$("#scroller");if(f>d){e.css({position:"fixed",top:"0px",width:c})}else{if(f<=d){e.css({position:"relative",top:""})}}};$(window).scroll(a);a()}function enableSubmitButton(a){setSubmitButtonDisabled(a,false)}function disableSubmitButton(a){setSubmitButtonDisabled(a,true)}function setSubmitButtonDisabled(a,c){$(a).find("input[type='submit']").attr("disabled",c?"disabled":"")}function setConfirmUnload(c,a){window.onbeforeunload=c?function(){if(a&&$.trim(a.val())){return c}}:null}function showAjaxError(d,e){var a=$('<div class="error-notification supernovabg"><h2>'+e+"</h2>(click on this box to dismiss)</div>");var c=function(){$(".error-notification").fadeOut("fast",function(){$(this).remove()})};a.click(function(f){c()});$(d).append(a);a.fadeIn("fast");setTimeout(c,1000*30)}function styleCode(){if(typeof MathJax!="undefined"){MathJax.Hub.Queue(["Typeset",MathJax.Hub])}if(typeof prettyPrint=="undefined"){return}var a=false;$("pre code").parent().each(function(){if(!$(this).hasClass("prettyprint")){if(postTagPrettifyLang($(this))){$(this).addClass("prettyprint");a=true}}if($(this).hasClass("prettyprint-override")){$(this).removeClass("prettyprint-override").addClass("prettyprint");a=true}});if(a){if(typeof jtab!="undefined"){jtab.renderimplicit();return}prettyPrint()}}function postTagMultiSelect(c){var a="";$.each(c.split(","),function(d,e){a=a+"a.post-tag:containsExact('"+e+"'),"});if(a.length>0){a=a.substring(0,a.length-1)}return a}function postTagPrettifyLang(c){var a=$("#prettify-lang").text();if(a!=""){c.addClass(a);return true}return false}function appendLoader(a){$(a).append('<img class="ajax-loader" src="/content/img/progress-dots.gif" title="loading..." alt="loading..." />')}function removeLoader(){$("img.ajax-loader").remove()}function savePreference(c,e,a){var d="";if(typeof forUserId!="undefined"){d=forUserId}$.post("/users/save-preference",{fkey:fkey,key:c,value:e,forUserId:d},a)}var notify=function(){var f=0;var d=-1;var c="m";var a=function(l){var j="<div"+(l.messageTypeId?' id="notify-'+l.messageTypeId+'"':"")+' style="display:none"><span class="notify-close"><a title="dismiss this notification">&times;</a></span><span class="notify-text">'+l.text+"</span>";if(l.showProfile){var n=escape("/users/"+l.userId);j+=' See your <a href="/messages/mark-as-read?messagetypeid='+l.messageTypeId+"&returnurl="+escape(n)+'">profile</a>.'}j+="</div>";var k=$(j);k.find(".notify-close").click(function(){notify.close(l.messageTypeId)});$("#notify-container").append(k)};var g=function(j){$.cookie(c,(j?j:"0"),{expires:90,path:"/"})};var i=function(){var j=parseInt($.cookie(c));if(isNaN(j)){j=0}if(j<5){$(".module.newuser").show();g(++j)}};var h=function(){$("#notify-container div").fadeIn("slow")};var e=function(){$("body").animate({marginTop:"2.5em"},"fast","linear")};return{showFirstTime:function(j){if($.cookie(c)){i()}else{$(".module.newuser").show();if(!/\/users\/(login|authenticate)/i.test(window.location)){e();a({messageTypeId:d,text:"Nuevo!!.. Lector USB del Patrón de Venas de los dedos, Mayor seguridad (con SDK) "+j+' &mdash;  <a onclick="notify.closeFirstTime(); return false;" href="http://www.biometricos.cl/equipos_biometria/lectores_usb_de_venas_del_dedo.php">Ver</a>!'});h()}}},showMessages:function(k){f=k.length;for(var j=0;j<f;j++){a(k[j])}h()},show:function(j,k){e();a({text:j,messageTypeId:k});h()},close:function(k){var j=$("#notify-"+k);var l=0;if(k==d){g()}else{if(k>d){$.post("/messages/mark-as-read",{messagetypeid:k})}}if(--f>0){l=parseInt($("body").css("margin-top").match(/\d+/));l=l-(l/(f+1))}j.fadeOut("fast",function(){$("body").animate({marginTop:l+"px"},"fast","linear");j.remove()})},closeFirstTime:function(){g();document.location="http://www.biometricos.cl/equipos_biometria/lectores_usb_de_venas_del_dedo.php"},getMessageText:function(j){return $("#notify-"+j+" .notify-text").text()}}}();function applyPrefs(h,a){var j=$("#ignoredTags > a");var l=$("#interestingTags > a");var k=$("#inferredTags > a");if(h&&j.length==0&&l.length==0&&k.length==0){return}$("div.question-summary").removeClass("tagged-ignored tagged-ignored-hidden tagged-interesting");var e=getTagsSelector(j);var g=getTagsSelector(l);var f=getTagsSelector(k);if(a){for(var c=0;c<a.length;c++){var o=a[c];if(o.indexOf("#")>-1){o=o.replace(/#/g,"ñ")}if(o.indexOf("+")>-1){o=o.replace(/\+/g,"ç")}if(o.indexOf(".")>-1){o=o.replace(/\./g,"û")}var n=new RegExp("div.t-"+o+"(,|$)","g");e=e.replace(n,"");g=g.replace(n,"");f=f.replace(n,"")}}if(e.length>0){var d=$("#hideIgnored").is(":checked")?"tagged-ignored-hidden":"tagged-ignored";$(e).closest("div.question-summary").addClass(d)}if(g.length>0){$(g).closest("div.question-summary").addClass("tagged-interesting")}if(f.length>0){$(f).closest("div.question-summary").addClass("tagged-interesting")}}function getTagsSelector(a){var c="";var d="";a.each(function(){var e=false;d=$(this).text();if(d.indexOf("#")>-1){d=d.replace(/#/g,"ñ")}if(d.indexOf("+")>-1){d=d.replace(/\+/g,"ç")}if(d.indexOf(".")>-1){d=d.replace(/\./g,"û")}if(d.indexOf("*")>-1){e=true}if(e){c+="div.tags:regex(class, t-"+d.replace(/\*/g,".*")+"),"}else{c+="div.t-"+d+","}});if(c.length>0){c=c.substring(0,c.length-1)}return c}function sanitizeAndSplitTags(j,a){if(!sanitizeAndSplitTags.noDiac){var c={"àåáâäãåą":"a","èéêëę":"e","ìíîïı":"i","òóôõöøő":"o","ùúûü":"u","çćč":"c","żźž":"z","śşš":"s","ñń":"n","ýŸ":"y","ł":"l","đ":"d","ß":"ss","ğ":"g","Þ":"th"};sanitizeAndSplitTags.noDiac=function(k){for(var i in c){k=k.replace(new RegExp("["+i+"]","g"),c[i])}return k}}j=$.trim(j).replace(/([A-Za-z0-9])\+(?=[A-Za-z0-9])/g,"$1 ");var g=j.split(/[\s|,;]+/);var f=[];for(var d=0;d<g.length;d++){var h=sanitizeAndSplitTags.noDiac(g[d].toLowerCase()).replace(/_/g,"-");var e="[^a-z0-9.#+"+(a?"*":"")+"-]";h=h.replace(new RegExp(e,"g"),"");h=h.replace(/^[#+-]+/,"");h=h.replace(/[.-]+$/,"");if(h.length>0&&$.inArray(h,f)==-1){f.push(h)}}return f}function saveTags(k,h,g,j,e,a){var l=$(k).val();var n=sanitizeAndSplitTags(l,true);var c=false;for(var f=0;f<n.length;f++){if($.trim(n[f]).length!=0){$(h).children().each(function(){if($(this).text()==n[f]){$(this).fadeTo(500,0.1).fadeTo(500,1);c=true;return}});if(!c){var d=$.URLEncode(n[f]);$(h).append('<a id="'+n[f]+'" href="/questions/tagged/'+d+'" class="'+j+'" title="show questions tagged \''+n[f]+"'\">"+n[f]+"</a> ");initDeleteBindings(g)}c=false}}$(k).val("");if(e){$(k).focus()}if(!a){savePreference(g,$(h).text())}applyPrefs()}function initTagPrefs(){initDeleteBindings(0);$("#ignoredAdd").click(function(){saveTags("#ignoredTag","#ignoredTags",25,"post-tag",true)});$("#interestingAdd").click(function(){saveTags("#interestingTag","#interestingTags",20,"post-tag",true)});$("#hideIgnored").click(function(){savePreference(30,$(this).is(":checked"));applyPrefs()});bindTagFilterAutoComplete("#ignoredTag");bindTagFilterAutoComplete("#interestingTag")}function initDeleteBindings(c){var a="<span class=\"delete-tag\" onmouseover=\"$(this).attr('class', 'delete-tag-hover')\" onmouseout=\"$(this).attr('class', 'delete-tag')\" title=\"remove this tag\"></span>";if(c==0){$("#ignoredTags > .post-tag").after(a)}if(c==25){$("#ignoredTags > .post-tag:last").after(a)}$("#ignoredTags > .delete-tag").click(function(){$(this).prev().remove();$(this).remove();savePreference(25,$("#ignoredTags").text());applyPrefs()});if(c==0){$("#interestingTags > .post-tag").after(a)}if(c==20){$("#interestingTags > .post-tag:last").after(a)}$("#interestingTags > .delete-tag").click(function(){$(this).prev().remove();$(this).remove();savePreference(20,$("#interestingTags").text());applyPrefs()})}function favoriteTag(c,e){var a=$("#tag-menu");if($("#interestingTags").length>0){if(e=="True"){var d=$("#interestingTags a").filter(function(){return $(this).text()==c});d.add(d.next()).remove();applyPrefs()}else{$("#interestingTag").val(c);saveTags("#interestingTag","#interestingTags",20,"post-tag",false,true)}}master.addSpinner(a);$.ajax({type:"POST",url:"/tags/"+encodeURIComponent(c)+"/favorite",data:{unfavorite:e,fkey:fkey},dataType:"html",success:function(f){a.html($(""+f))},error:function(g,h,f){},complete:master.removeSpinner})}function subscribeTagSE(c,d){var a=$("#tag-menu");master.addSpinner(a);$.ajax({type:"POST",url:"/tags/"+encodeURIComponent(c)+"/subscription",data:{unsubscribe:d,fkey:fkey},dataType:"html",success:function(e){a.html($(""+e))},error:function(f,g,e){},complete:master.removeSpinner})}function initTagMenu(){if(initTagMenu.initialized){return}initTagMenu.initialized=true;if(typeof isMobile!="undefined"){return}var d;var a=false;var c=$(".post-tag");$(".post-tag").live("mouseenter",function(){if($(this).attr("href").charAt(0)!="/"){return false}var e=$(this).attr("title","");d=setTimeout(function(){$("#tag-menu").remove();var f=$("<div id='tag-menu'/>").hide().css({position:"absolute",left:e.offset().left+"px",top:(e.offset().top+e.outerHeight()+3)+"px"}).appendTo("body").hover(function(){a=true},function(){a=false;$("#tag-menu").remove()});var g=e.text();master.addSpinner(f);$.ajax({type:"GET",url:"/tags/"+encodeURIComponent(g)+"/subscriber-info",dataType:"html",success:function(h){$(""+h).prependTo(f)},error:function(i,j,h){},complete:master.removeSpinner});f.show()},500);return false});$(".post-tag").live("mouseleave",function(){clearTimeout(d);setTimeout(function(){if(!a){$("#tag-menu").remove()}},100)})}var chat_ad=function(){var c,n,k=180,j=30,l=480,h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];if(/^\/questions\/\d+/i.test(window.location.pathname)){l=0}return{init:function(t,s,r){c=t;n=s;d(r,null,null)}};function i(r){return r<10?"0"+r:r}function a(s){var r=new Date();r.setTime(s*1000);return[r.getUTCFullYear(),"-",i(r.getUTCMonth()+1),"-",i(r.getUTCDate())," ",i(r.getUTCHours()),":",i(r.getUTCMinutes()),":",i(r.getUTCSeconds()),"Z"].join("")}function e(u){var y=Math.floor((new Date()).getTime()/1000);var t=y-u;var x=t%60;var w=Math.floor(t/60);var v=Math.floor(t/3600);if(t<1){return"just now"}if(t<60){return x==1?"1 sec ago":x+" secs ago"}if(t<3600){return w==1?"1 min ago":w+" mins ago"}if(t<86400){return v==1?"1 hour ago":v+" hours ago"}var s=Math.floor(t/86400);if(s==1){return"yesterday"}else{if(s<=2){return s+" days ago"}}var r=new Date(u*1000);return h[r.getMonth()]+" "+r.getDate()+" at "+r.getHours()+":"+i(r.getMinutes())}function f(s){var r=$("<div />");r.text(s);return r.html().replace('"',"&quot;")}function g(){$.get(n,null,function(r,t,s){d(r,t,s)})}function p(y){var r=$('<div class="ad502-users" />');for(var u=0;u<y.length&&u<7;u++){var w=y[u];var v=w.name;if(w.lastPost){v+=": "+e(w.lastPost)}var s=c+"/users/"+w.id;var t="http://www.gravatar.com/avatar/"+w.emailhash+"?s=23&d=identicon&r=PG";var x=$('<a href="'+s+'" />');$("<img />").attr("title",v).attr("src",t).appendTo(x);r.append(x)}return r}function q(s){var t=s.user;var r=s.userid;if(r){return'<a href="'+c+"/users/"+r+'">'+f(t)+"</a>"}return f(t)}function o(){if(k<=l){window.setTimeout(g,k*1000)}k+=j}function d(r,z,t){var y=$("#ad502-rooms");if(r.error){o();return}y.html("");var v=r.rooms;for(var s=0;s<v.length&&s<2;s++){var u=v[s];var x=c+"/rooms/"+u.id;var w=$('<div class="ad502-room"></div>');w.append($('<h3 class="ad502-room-h3"><span class="ad502-room-title" title="'+f(u.name)+'"><a href="'+x+'">'+f(u.name)+"</a></span></h3>"));if(u.messages&&u.messages.length>0){w.append($('<span title="'+a(u.lastPost)+'" class="ad502-last-message">'+e(u.lastPost)+" - "+q(u.messages[0])+"</span><br>"))}w.append(p(u.users));y.append(w)}if(r.activeUsers>1){$("#h-chat-link").text(r.activeUsers+" People Chatting")}else{$("#h-chat-link").text("Visit Chat")}$("#h-chat-link").attr("title",r.activeUsers+" users active in "+r.activeRooms+" rooms the last 60 minutes");o()}}();jQuery.cookie=function(j,o,k){if(typeof o!="undefined"){k=k||{};if(o===null){o="";k.expires=-1}var g="";if(k.expires&&(typeof k.expires=="number"||k.expires.toUTCString)){var e;if(typeof k.expires=="number"){e=new Date();e.setTime(e.getTime()+(k.expires*24*60*60*1000))}else{e=k.expires}g="; expires="+e.toUTCString()}var l=k.path?"; path="+(k.path):"";var f=k.domain?"; domain="+(k.domain):"";var n=k.secure?"; secure":"";document.cookie=[j,"=",encodeURIComponent(o),g,l,f,n].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var c=document.cookie.split(";");for(var h=0;h<c.length;h++){var a=jQuery.trim(c[h]);if(a.substring(0,j.length+1)==(j+"=")){d=decodeURIComponent(a.substring(j.length+1));break}}}return d}};jQuery.expr[":"].regex=function(c,d,e){var f=e[3].split(","),i=/^(data|css):/,a={method:f[0].match(i)?f[0].split(":")[0]:"attr",property:f.shift().replace(i,"")},h="ig",g=new RegExp(f.join("").replace(/^\s+|\s+$/g,""),h);return g.test(jQuery(c)[a.method](a.property))};$.extend($.expr[":"],{containsExact:function(c,d,e){return $.trim(c.innerHTML.toLowerCase())===e[3].toLowerCase()},containsExactCase:function(c,d,e){return $.trim(c.innerHTML)===e[3]},containsRegex:function(c,d,e){var g=/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})$/,f=g.exec(e[3]);return RegExp(f[1],f[2]).test($.trim(c.innerHTML))}});$.extend({URLEncode:function(a){var i="";var k=0;a=a.toString();var j=/(^[a-zA-Z0-9_.]*)/;while(k<a.length){var g=j.exec(a.substr(k));if(g!=null&&g.length>1&&g[1]!=""){i+=g[1];k+=g[1].length}else{if(a[k]==" "){i+="+"}else{var e=a.charCodeAt(k);var f=e.toString(16);i+="%"+(f.length<2?"0":"")+f.toUpperCase()}k++}}return i},URLDecode:function(e){var c=e;var a,f;var d=/(%[^%]{2})/;while((m=d.exec(c))!=null&&m.length>1&&m[1]!=""){b=parseInt(m[1].substr(1),16);f=String.fromCharCode(b);c=c.replace(m[1],f)}return c}});function expandPostBody(g,d,a,c){$(g).prepend('<a class="load-body expander-arrow-small-hide" style=""></a>&nbsp;').closest("tr").after('<tr class="loaded-body">'+d+'<td class="body-container" '+(c>0?'colspan="'+c+'" ':"")+"/></tr>");$('tr:has("td.body-container")').children().css("padding","0px");$(".load-body").die("click").live("click",function(){var k=$(this).closest("tr").next().show().find(".body-container");var j;if(k.find(".ajax-loader").length>0){return}if(k.is(".body-loaded")){j=k.find("div");if($(this).is(".hide-body")){f(k,j)}else{h(k,j)}return}k.addSpinner({"padding-left":"5px"});var i=$(this).closest("td").attr("id");var l;if(i.indexOf("enable-load-body-")>-1){l="/posts/"+i.substr("enable-load-body-".length)+"/body"}else{if(i.indexOf("enable-load-revision-")>-1){l="/revisions/"+i.substr("enable-load-revision-".length)}else{l=$(this).closest("td").data("load-url")}}$.ajax({type:"GET",url:l,dataType:"html",success:function(n){j=$('<div style="display:none">'+n+"</div>");k.append(j).trigger("bodyloaded");if(a){a(k)}h(k,j)},error:function(o,p,n){k.showErrorPopup((o.responseText&&o.responseText.length<100?o.responseText:"Error occurred when loading post body"))},complete:master.removeSpinner})});function h(j,i){j.css("padding","").height(i.height()).addClass("body-loaded");e(j).addClass("hide-body expander-arrow-small-show");i.fadeIn("fast")}function f(j,i){i.fadeOut("fast",function(){j.height(0).css("padding","0px");e(j).removeClass("hide-body expander-arrow-small-show")})}function e(i){return i.closest("tr").prev().find(".load-body")}}var pseudoModerator=function(){return{initDashboard:function(){$("#postflag-bar .nav-button.prev, #postflag-bar .nav-button.next").css("cursor","pointer").click(function(){location.href=$(this).find("a").attr("href")});if($("table.flagged-posts").length){var d=$(".flagged-post-link:first");if(d&&d.length&&(!location.hash||!location.hash.length)){location.href=d.attr("href")}var a=function(f,g,e){$(f).click(function(){var h=$(this);var j=$(h).closest('tr[id^="flagged-"]');var i=(h.closest(".comment").attr("id")||j.attr("id")).replace("flagged-","").replace("comment-","");var k="";if(i&&i.length){$.ajax({type:"POST",url:g.replace("{id}",i).replace("{rticks}",renderTimeTicks),data:{fkey:fkey},success:function(n){if(n=="ok"||n.Success||n.success){if(e){e(h,j)}var l=h.closest(".flag-issue");if(!l||!l.length){l=h}if(!l.hasClass("keep")){l.fadeOutAndRemove()}}else{showAjaxError(h.parent(),n.Message)}},error:function(n,o,l){showAjaxError(h.parent(),(n.responseText&&n.responseText.length<100?n.responseText:"An unknown error occurred"))}})}return false})};function c(e){if(!e.hasClass("m-flag")&&!e.hasClass("so-flag")&&!e.hasClass("c-flag")&&!e.hasClass("keep")){if(e.next().hasClass("loaded-body")){e=e.add(e.next())}e.fadeOutAndRemove();return true}return false}$("table.flagged-posts.moderator .comment-text .comment-date").each(function(){$(this).parent().append(" ").append($("<a/>").attr("href","#").addClass("cancel-comment-flag").text("dismiss"))});a("table.flagged-posts.moderator .comment-text .cancel-comment-flag","/admin/comment/{id}/clear-flags",function(e,f){$(e).closest("tr.message-divider").fadeOut(function(){var g=$(this);g.remove();if(f.find(".comments tr").length==0){f.find(".comments").remove();f.removeClass("c-flag");c(f)}})});a("table.flagged-posts.moderator .comment.local .cancel-comment-flag","/admin/comment/{id}/clear-flags",function(e,f){if(f.find(".comment.local").length==1){f.removeClass("c-flag");c(f)}});a("table.flagged-posts.moderator .cancel-flag.valid","/tools/flagged/delete-all/{id}?valid=true",function(e,f){f.removeClass("so-flag");c(f)});a("table.flagged-posts.moderator .cancel-flag.invalid","/tools/flagged/delete-all/{id}?valid=false",function(e,f){f.removeClass("so-flag");c(f)});a("table.flagged-posts.moderator .cancel-mod-flag.valid","/messages/delete-moderator-messages/{id}/{rticks}?valid=true",function(e,f){f.removeClass("m-flag");f.find(".mod-message").fadeOutAndRemove();c(f)});a("table.flagged-posts.moderator .cancel-mod-flag.invalid","/messages/delete-moderator-messages/{id}/{rticks}?valid=false",function(e,f){f.removeClass("m-flag");f.find(".mod-message").fadeOutAndRemove();c(f)});a("table.flagged-posts.moderator .delete-post","/posts/{id}/vote/10",function(e,f){f.addClass("keep").find(".answer-link").addClass("deleted-answer");f.find("a.cancel-mod-flag.valid").click();f.find("a.cancel-flag.valid").click();f.find(".delete-post").addClass("fullhide");f.find(".undelete-post").removeClass("fullhide");f.find(".mod-post-header").children(":not(.keep)").hide();f.find(".mod-audit").hide()});a("table.flagged-posts.moderator .undelete-post","/posts/{id}/vote/11",function(e,f){f.find(".answer-link").removeClass("deleted-answer");f.find(".delete-post").removeClass("fullhide");f.find(".undelete-post").addClass("fullhide");f.find(".mod-post-header").children().show();f.find(".mod-audit").show()});if($("table.flagged-posts.moderator table.comments").length){comments.init(true,function(e){if(e.closest("table.comments").find("td.comment-summary").length==1){var f=e.closest(".messageDivider");f.removeClass("c-flag");c(f)}e.closest(".message-divider").fadeOutAndRemove()})}a("table.flagged-posts .flag-spam","/posts/{id}/vote/12");a("table.flagged-posts .flag-offensive","/posts/{id}/vote/4");$("table.flagged-posts .expand-body").click(function(){var e=$(this);if(!e.hasClass("expand-body")){return}var g=$(e).closest('tr[id^="flagged-"]');var f=(e.attr("id")||g.attr("id")).replace("flagged-","").replace("comment-","");g.find(".post-summary").load("/posts/"+f+"/body",function(){e.removeClass("expand-body").attr("title","")});return false}).attr("title","click to show the full/formatted post")}}}}();window.PR_SHOULD_USE_CONTINUATION=true;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var a=navigator&&navigator.userAgent&&navigator.userAgent.match(/\bMSIE ([678])\./);a=a?+a[1]:false;window._pr_isIE6=function(){return a};return a};(function(){var n="break continue do else for if return while ";var e=n+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile ";var h=e+"catch class delete false import new operator private protected public this throw true try typeof ";var i=h+"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 using virtual wchar_t where ";var t=h+"abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ";var k=t+"as base by checked decimal delegate descending dynamic 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 ";var f="all and by catch class else extends false finally for if in is isnt loop new no not null of off on or return super then true try unless until when while yes ";var u=h+"debugger eval export function get null set undefined var with Infinity NaN ";var A="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 ";var ag=n+"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 ";var ak=n+"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 ";var al=n+"case done elif esac eval fi function in local set then until ";var a=(i+k+u+A+ag+ak+al);var aa="str";var P="kwd";var J="com";var ad="typ";var Q="lit";var W="pun";var V="pln";var ab="tag";var L="dec";var Z="src";var E="atn";var F="atv";var U="nocode";var ai=function(){var aq=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"];var ap="(?:^^|[+-]";for(var ao=0;ao<aq.length;++ao){ap+="|"+aq[ao].replace(/([^=<>:&a-z])/g,"\\$1")}ap+=")\\s*";return ap}();var B=/&/g;var R=/</g;var M=/>/g;var X=/\"/g;function d(ao){return ao.replace(B,"&amp;").replace(R,"&lt;").replace(M,"&gt;").replace(X,"&quot;")}function an(ao){return ao.replace(B,"&amp;").replace(R,"&lt;").replace(M,"&gt;")}var S=/&lt;/g;var N=/&gt;/g;var D=/&apos;/g;var Y=/&quot;/g;var C=/&amp;/g;var T=/&nbsp;/g;function p(aq){var at=aq.indexOf("&");if(at<0){return aq}for(--at;(at=aq.indexOf("&#",at+1))>=0;){var ap=aq.indexOf(";",at);if(ap>=0){var ar=aq.substring(at+3,ap);var au=10;if(ar&&ar.charAt(0)==="x"){ar=ar.substring(1);au=16}var ao=parseInt(ar,au);if(!isNaN(ao)){aq=(aq.substring(0,at)+String.fromCharCode(ao)+aq.substring(ap+1))}}}return aq.replace(S,"<").replace(N,">").replace(D,"'").replace(Y,'"').replace(T," ").replace(C,"&")}function s(ao){return"XMP"===ao.tagName}var y=/[\r\n]/g;function r(ap,ao){if("PRE"===ap.tagName){return true}if(!y.test(ao)){return true}var aq="";if(ap.currentStyle){aq=ap.currentStyle.whiteSpace}else{if(window.getComputedStyle){aq=window.getComputedStyle(ap,null).whiteSpace}}return !aq||aq==="pre"}function z(av,ax,aw){switch(av.nodeType){case 1:var au=av.tagName.toLowerCase();ax.push("<",au);var ap=av.attributes;var at=ap.length;if(at){if(aw){var ay=[];for(var ar=at;--ar>=0;){ay[ar]=ap[ar]}ay.sort(function(az,aA){return(az.name<aA.name)?-1:az.name===aA.name?0:1});ap=ay}for(var ar=0;ar<at;++ar){var ao=ap[ar];if(!ao.specified){continue}ax.push(" ",ao.name.toLowerCase(),'="',d(ao.value),'"')}}ax.push(">");for(var aq=av.firstChild;aq;aq=aq.nextSibling){z(aq,ax,aw)}if(av.firstChild||!/^(?:br|link|img)$/.test(au)){ax.push("</",au,">")}break;case 3:case 4:ax.push(an(av.nodeValue));break}}function g(az){var ap=0;var ax=false;var av=false;for(var au=0,aw=az.length;au<aw;++au){var ay=az[au];if(ay.ignoreCase){av=true}else{if(/[a-z]/i.test(ay.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){ax=true;av=false;break}}}function ar(aB){if(aB.charAt(0)!=="\\"){return aB.charCodeAt(0)}switch(aB.charAt(1)){case"b":return 8;case"t":return 9;case"n":return 10;case"v":return 11;case"f":return 12;case"r":return 13;case"u":case"x":return parseInt(aB.substring(2),16)||aB.charCodeAt(1);case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":return parseInt(aB.substring(1),8);default:return aB.charCodeAt(1)}}function at(aC){if(aC<32){return(aC<16?"\\x0":"\\x")+aC.toString(16)}var aB=String.fromCharCode(aC);if(aB==="\\"||aB==="-"||aB==="["||aB==="]"){aB="\\"+aB}return aB}function aq(aB){var aC=aB.substring(1,aB.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var aF=[];var aN=[];var aH=aC[0]==="^";for(var aG=aH?1:0,aJ=aC.length;aG<aJ;++aG){var aL=aC[aG];switch(aL){case"\\B":case"\\b":case"\\D":case"\\d":case"\\S":case"\\s":case"\\W":case"\\w":aF.push(aL);continue}var aO=ar(aL);var aE;if(aG+2<aJ&&"-"===aC[aG+1]){aE=ar(aC[aG+2]);aG+=2}else{aE=aO}aN.push([aO,aE]);if(!(aE<65||aO>122)){if(!(aE<65||aO>90)){aN.push([Math.max(65,aO)|32,Math.min(aE,90)|32])}if(!(aE<97||aO>122)){aN.push([Math.max(97,aO)&~32,Math.min(aE,122)&~32])}}}aN.sort(function(aP,aQ){return(aP[0]-aQ[0])||(aQ[1]-aP[1])});var aD=[];var aI=[NaN,NaN];for(var aG=0;aG<aN.length;++aG){var aM=aN[aG];if(aM[0]<=aI[1]+1){aI[1]=Math.max(aI[1],aM[1])}else{aD.push(aI=aM)}}var aK=["["];if(aH){aK.push("^")}aK.push.apply(aK,aF);for(var aG=0;aG<aD.length;++aG){var aM=aD[aG];aK.push(at(aM[0]));if(aM[1]>aM[0]){if(aM[1]+1>aM[0]){aK.push("-")}aK.push(at(aM[1]))}}aK.push("]");return aK.join("")}function ao(aJ){var aI=aJ.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var aG=aI.length;var aB=[];for(var aF=0,aE=0;aF<aG;++aF){var aH=aI[aF];if(aH==="("){++aE}else{if("\\"===aH.charAt(0)){var aD=+aH.substring(1);if(aD&&aD<=aE){aB[aD]=-1}}}}for(var aF=1;aF<aB.length;++aF){if(-1===aB[aF]){aB[aF]=++ap}}for(var aF=0,aE=0;aF<aG;++aF){var aH=aI[aF];if(aH==="("){++aE;if(aB[aE]===undefined){aI[aF]="(?:"}}else{if("\\"===aH.charAt(0)){var aD=+aH.substring(1);if(aD&&aD<=aE){aI[aF]="\\"+aB[aE]}}}}for(var aF=0,aE=0;aF<aG;++aF){if("^"===aI[aF]&&"^"!==aI[aF+1]){aI[aF]=""}}if(aJ.ignoreCase&&ax){for(var aF=0;aF<aG;++aF){var aH=aI[aF];var aC=aH.charAt(0);if(aH.length>=2&&aC==="["){aI[aF]=aq(aH)}else{if(aC!=="\\"){aI[aF]=aH.replace(/[a-zA-Z]/g,function(aL){var aK=aL.charCodeAt(0);return"["+String.fromCharCode(aK&~32,aK|32)+"]"})}}}}return aI.join("")}var aA=[];for(var au=0,aw=az.length;au<aw;++au){var ay=az[au];if(ay.global||ay.multiline){throw new Error(""+ay)}aA.push("(?:"+ao(ay)+")")}return new RegExp(aA.join("|"),av?"gi":"g")}var O=null;function o(aq){if(null===O){var at=document.createElement("PRE");at.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));O=!/</.test(at.innerHTML)}if(O){var ap=aq.innerHTML;if(s(aq)){ap=an(ap)}else{if(!r(aq,ap)){ap=ap.replace(/(<br\s*\/?>)[\r\n]+/g,"$1").replace(/(?:[\r\n]+[ \t]*)+/g," ")}}return ap}var ar=[];for(var ao=aq.firstChild;ao;ao=ao.nextSibling){z(ao,ar)}return ar.join("")}function x(aq){var ap="                ";var ao=0;return function(ax){var aw=null;var ay=0;for(var at=0,au=ax.length;at<au;++at){var ar=ax.charAt(at);switch(ar){case"\t":if(!aw){aw=[]}aw.push(ax.substring(ay,at));var av=aq-(ao%aq);ao+=av;for(;av>=0;av-=ap.length){aw.push(ap.substring(0,av))}ay=at+1;break;case"\n":ao=0;break;default:++ao}}if(!aw){return ax}aw.push(ax.substring(ay));return aw.join("")}}var I=new RegExp("[^<]+|<!--[\\s\\S]*?-->|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z](?:[^>\"']|'[^']*'|\"[^\"]*\")*>|<","g");var K=/^<\!--/;var H=/^<!\[CDATA\[/;var G=/^<br\b/i;var ac=/^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;function m(az){var av=az.match(I);var aA=[];var aB=0;var ap=[];if(av){for(var aq=0,aw=av.length;aq<aw;++aq){var au=av[aq];if(au.length>1&&au.charAt(0)==="<"){if(K.test(au)){continue}if(H.test(au)){aA.push(au.substring(9,au.length-3));aB+=au.length-12}else{if(G.test(au)){aA.push("\n");++aB}else{if(au.indexOf(U)>=0&&q(au)){var ax=au.match(ac)[2];var ao=1;var ar;end_tag_loop:for(ar=aq+1;ar<aw;++ar){var ay=av[ar].match(ac);if(ay&&ay[2]===ax){if(ay[1]==="/"){if(--ao===0){break end_tag_loop}}else{++ao}}}if(ar<aw){ap.push(aB,av.slice(aq,ar+1).join(""));aq=ar}else{ap.push(aB,au)}}else{ap.push(aB,au)}}}}else{var at=p(au);aA.push(at);aB+=at.length}}}return{source:aA.join(""),tags:ap}}function q(ao){return !!ao.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,' $1="$2$3$4"').match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}function b(ao,at,aq,ar){if(!at){return}var ap={source:at,basePos:ao};aq(ap);ar.push.apply(ar,ap.decorations)}function j(au,ap){var at={};var av;(function(){var aw=au.concat(ap);var ax=[];var aE={};for(var az=0,aB=aw.length;az<aB;++az){var aC=aw[az];var aF=aC[3];if(aF){for(var ay=aF.length;--ay>=0;){at[aF.charAt(ay)]=aC}}var aD=aC[1];var aA=""+aD;if(!aE.hasOwnProperty(aA)){ax.push(aD);aE[aA]=null}}ax.push(/[\0-\uffff]/);av=g(ax)})();var ar=ap.length;var aq=/\S/;var ao=function(aD){var aJ=aD.source,aw=aD.basePos;var ax=[aw,V];var aI=0;var aO=aJ.match(av)||[];var aL={};for(var aM=0,aG=aO.length;aM<aG;++aM){var aN=aO[aM];var aK=aL[aN];var aF=void 0;var aC;if(typeof aK==="string"){aC=false}else{var aH=at[aN.charAt(0)];if(aH){aF=aN.match(aH[1]);aK=aH[0]}else{for(var aB=0;aB<ar;++aB){aH=ap[aB];aF=aN.match(aH[1]);if(aF){aK=aH[0];break}}if(!aF){aK=V}}aC=aK.length>=5&&"lang-"===aK.substring(0,5);if(aC&&!(aF&&typeof aF[1]==="string")){aC=false;aK=Z}if(!aC){aL[aN]=aK}}var aP=aI;aI+=aN.length;if(!aC){ax.push(aw+aP,aK)}else{var ay=aF[1];var aA=aN.indexOf(ay);var az=aA+ay.length;if(aF[2]){az=aN.length-aF[2].length;aA=az-ay.length}var aE=aK.substring(5);b(aw+aP,aN.substring(0,aA),ao,ax);b(aw+aP+aA,ay,v(aE,ay),ax);b(aw+aP+az,aN.substring(az),ao,ax)}}aD.decorations=ax};return ao}function am(ar){var au=[],ao=[];if(ar.tripleQuotedStrings){au.push([aa,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(ar.multiLineStrings){au.push([aa,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{au.push([aa,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(ar.verbatimStrings){ao.push([aa,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var ap=ar.hashComments;if(ap){if(ar.cStyleComments){if(ap>1){au.push([J,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{au.push([J,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}ao.push([aa,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{au.push([J,/^#[^\r\n]*/,null,"#"])}}if(ar.cStyleComments){ao.push([J,/^\/\/[^\r\n]*/,null]);ao.push([J,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(ar.regexLiterals){var at=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");ao.push(["lang-regex",new RegExp("^"+ai+"("+at+")")])}var aq=ar.keywords.replace(/^\s+|\s+$/g,"");if(aq.length){ao.push([P,new RegExp("^(?:"+aq.replace(/\s+/g,"|")+")\\b"),null])}au.push([V,/^\s+/,null," \r\n\t\xA0"]);ao.push([Q,/^@[a-z_$][a-z_$@0-9]*/i,null],[ad,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,null],[V,/^[a-z_$][a-z_$@0-9]*/i,null],[Q,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[W,/^.[^\s\w\.$@\'\"\`\/\#]*/,null]);return j(au,ao)}var l=am({keywords:a,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function ah(ay){var aK=ay.source;var au=ay.extractedTags;var aq=ay.decorations;var aF=ay.numberLines;var aJ=ay.sourceNode;var av=[];var aH=0;var aG=null;var ap=null;var aN=0;var ar=0;var aM=x(window.PR_TAB_WIDTH);var ao=/([\r\n ]) /g;var aL=/(^| ) /gm;var aE=/\r\n?|\n/g;var aO=/[ \r\n]$/;var az=true;var ax=window._pr_isIE6();var aB=(ax?(aJ&&aJ.tagName==="PRE"?(ax===6?"&#160;\r\n":ax===7?"&#160;<br />\r":ax===8?"&#160;<br />":"&#160;\r"):"&#160;<br />"):"<br />");var aA;if(aF){var aC=[];for(var aw=0;aw<10;++aw){aC[aw]=aB+'</li><li class="L'+aw+'">'}var aD=typeof aF==="number"?aF-1:0;av.push('<ol class="linenums"><li class="L',(aD)%10,'"');if(aD){av.push(' value="',aD+1,'"')}av.push(">");aA=function(){var aP=aC[++aD%10];return aG?("</span>"+aP+'<span class="'+aG+'">'):aP}}else{aA=aB}function at(aQ){if(aQ>aH){if(aG&&aG!==ap){av.push("</span>");aG=null}if(!aG&&ap){aG=ap;av.push('<span class="',aG,'">')}var aP=an(aM(aK.substring(aH,aQ))).replace(az?aL:ao,"$1&#160;");az=aO.test(aP);av.push(aP.replace(aE,aA));aH=aQ}}while(true){var aI;if(aN<au.length){if(ar<aq.length){aI=au[aN]<=aq[ar]}else{aI=true}}else{aI=false}if(aI){at(au[aN]);if(aG){av.push("</span>");aG=null}av.push(au[aN+1]);aN+=2}else{if(ar<aq.length){at(aq[ar]);ap=aq[ar+1];ar+=2}else{break}}}at(aK.length);if(aG){av.push("</span>")}if(aF){av.push("</li></ol>")}ay.prettyPrintedHtml=av.join("")}var w={};function aj(aq,ap){for(var ar=ap.length;--ar>=0;){var ao=ap[ar];if(!w.hasOwnProperty(ao)){w[ao]=aq}else{if("console" in window){console.warn("cannot override language handler %s",ao)}}}}function v(ao,ap){if(!(ao&&w.hasOwnProperty(ao))){ao=/^\s*</.test(ap)?"default-markup":"default-code"}return w[ao]}aj(l,["default-code"]);aj(j([],[[V,/^[^<?]+/],[L,/^<!\w[^>]*(?:>|$)/],[J,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[W,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);aj(j([[V,/^[\s]+/,null," \t\r\n"],[F,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[ab,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[E,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[W,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);aj(j([],[[F,/^[\s\S]+/]]),["uq.val"]);aj(am({keywords:i,hashComments:true,cStyleComments:true}),["c","cc","cpp","cxx","cyc","m"]);aj(am({keywords:"null true false"}),["json"]);aj(am({keywords:k,hashComments:true,cStyleComments:true,verbatimStrings:true}),["cs"]);aj(am({keywords:t,cStyleComments:true}),["java"]);aj(am({keywords:al,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);aj(am({keywords:ag,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);aj(am({keywords:A,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);aj(am({keywords:ak,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);aj(am({keywords:u,cStyleComments:true,regexLiterals:true}),["js"]);aj(am({keywords:f,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);aj(j([],[[aa,/^[\s\S]+/]]),["regex"]);function c(ap){var au=ap.sourceCodeHtml;var aq=ap.langExtension;ap.prettyPrintedHtml=au;try{var at=m(au);var ar=at.source;ap.source=ar;ap.basePos=0;ap.extractedTags=at.tags;v(aq,ar)(ap);ah(ap)}catch(ao){if("console" in window){console.log(ao&&ao.stack?ao.stack:ao)}}}function af(ar,ap,aq){var ao={sourceCodeHtml:ar,langExtension:ap,numberLines:aq};c(ao);return ao.prettyPrintedHtml}function ae(ay){function ao(aB){return document.getElementsByTagName(aB)}var aq=[ao("pre"),ao("code"),ao("xmp")];var at=[];for(var au=0;au<aq.length;++au){for(var av=0,ax=aq[au].length;av<ax;++av){at.push(aq[au][av])}}aq=null;var ap=Date;if(!ap.now){ap={now:function(){return(new Date).getTime()}}}var aw=0;var az;function ar(){var aD=(window.PR_SHOULD_USE_CONTINUATION?ap.now()+250:Infinity);for(;aw<at.length&&ap.now()<aD;aw++){var aC=at[aw];if(aC.className&&aC.className.indexOf("prettyprint")>=0){var aE=aC.className.match(/\blang-(\w+)\b/);if(aE){aE=aE[1]}var aF=false;for(var aH=aC.parentNode;aH;aH=aH.parentNode){if((aH.tagName==="pre"||aH.tagName==="code"||aH.tagName==="xmp")&&aH.className&&aH.className.indexOf("prettyprint")>=0){aF=true;break}}if(!aF){var aB=o(aC);aB=aB.replace(/(?:\r\n?|\n)$/,"");var aG=aC.className.match(/\blinenums\b(?::(\d+))?/);az={sourceCodeHtml:aB,langExtension:aE,sourceNode:aC,numberLines:aG?aG[1]&&aG[1].length?+aG[1]:true:false};c(az);aA()}}}if(aw<at.length){setTimeout(ar,250)}else{if(ay){ay()}}}function aA(){var aF=az.prettyPrintedHtml;if(!aF){return}var aD=az.sourceNode;if(!s(aD)){aD.innerHTML=aF}else{var aG=document.createElement("PRE");for(var aE=0;aE<aD.attributes.length;++aE){var aB=aD.attributes[aE];if(aB.specified){var aC=aB.name.toLowerCase();if(aC==="class"){aG.className=aB.value}else{aG.setAttribute(aB.name,aB.value)}}}aG.innerHTML=aF;aD.parentNode.replaceChild(aG,aD);aD=aG}}ar()}window.PR_normalizedHtml=z;window.prettyPrintOne=af;window.prettyPrint=ae;window.PR={combinePrefixPatterns:g,createSimpleLexer:j,registerLangHandler:aj,sourceDecorator:am,PR_ATTRIB_NAME:E,PR_ATTRIB_VALUE:F,PR_COMMENT:J,PR_DECLARATION:L,PR_KEYWORD:P,PR_LITERAL:Q,PR_NOCODE:U,PR_PLAIN:V,PR_PUNCTUATION:W,PR_SOURCE:Z,PR_STRING:aa,PR_TAG:ab,PR_TYPE:ad}})();PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\x0C\r "],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,"'"],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),["hs"]);PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],[PR.PR_COMMENT,/^;[^\r\n]*/,null,";"],[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_STRING,/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[[PR.PR_KEYWORD,/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,null],[PR.PR_LITERAL,/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],[PR.PR_LITERAL,/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],[PR.PR_PLAIN,/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["cl","el","lisp","scm"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),["lua"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/,null,"\"'"]],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"]);PR.registerLangHandler(PR.createSimpleLexer([],[]),["none"]);PR.registerLangHandler(PR.sourceDecorator({keywords:("bool bytes default double enum extend extensions false fixed32 fixed64 float group import int32 int64 max message option optional package repeated required returns rpc service sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 uint64"),cStyleComments:true}),["proto"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_STRING,/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,null,'"'],[PR.PR_LITERAL,/^`(?:[^\r\n\\`]|\\.)*`?/,null,"`"],[PR.PR_PUNCTUATION,/^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[[PR.PR_STRING,/^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],[PR.PR_LITERAL,/^'[a-zA-Z_$][\w$]*(?!['$\w])/],[PR.PR_KEYWORD,/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],[PR.PR_LITERAL,/^(?:true|false|null|this)\b/],[PR.PR_LITERAL,/^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],[PR.PR_TYPE,/^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],[PR.PR_PLAIN,/^[$a-zA-Z_][\w$]*/],[PR.PR_COMMENT,/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],[PR.PR_PUNCTUATION,/^(?:\.+|\/)/]]),["scala"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,"\"'"]],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),["sql"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,"\t\n\r \xA0"],[PR.PR_COMMENT,/^%[^\r\n]*/,null,"%"]],[[PR.PR_DECLARATION,/^\\([egx]?def|(new|renew|provide)(command|environment))\b/],[PR.PR_KEYWORD,/^\\[a-zA-Z@:]+/],[PR.PR_KEYWORD,/^\\./],[PR.PR_TYPE,/^[$&]/],[PR.PR_LITERAL,/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],[PR.PR_PUNCTUATION,/^[{}()\[\]=]+/]]),["latex","tex"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \xA0\u2028\u2029"],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201C\u201D'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,"'\u2018\u2019"]],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),["vb","vbs"]);

