PageSourceSearch

https://www.solidair.org/sites/default/files/js/js_xY9WP24WZxo6H137Yc_2IfSF_cczXgZj0iC2LhF7GRg.js

js solidair.org collected 2026-10-02 12:52:23 UTC 42,621 bytes, 774 lines download raw bytes

1Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Er is een AJAX HTTP fout opgetreden.","HTTP Result Code: !status":"HTTP-resultaatcode: !status","An AJAX HTTP request terminated abnormally.":"Een AJAX HTTP-aanvraag is onverwacht afgebroken","Debugging information follows.":"Debug informatie volgt.","Path: !uri":"Pad: !uri","StatusText: !statusText":"Statustekst: !statusText","ResponseText: !responseText":"Antwoordtekst: !responseText","ReadyState: !readyState":"ReadyState: !readyState","(active tab)":"(actieve tabblad)","Re-order rows by numerical weight instead of dragging.":"Herschik de rijen op basis van gewicht, in plaats van slepen.","Show row weights":"Gewicht van rijen tonen","Hide row weights":"Gewicht van rij verbergen","Drag to re-order":"Slepen om de volgorde te wijzigen","Changes made in this table will not be saved until the form is submitted.":"Wijzigingen in deze tabel worden pas opgeslagen wanneer het formulier wordt ingediend.","Hide":"Verbergen","Show":"Weergeven","Next":"Volgende","Status":"Status","Remove":"Verwijderen","File":"Bestand","Edit":"Bewerken","Size":"Grootte","- None -":"- Geen -","Default":"Standaard","Sunday":"zondag","Monday":"maandag","Tuesday":"dinsdag","Wednesday":"woensdag","Thursday":"donderdag","Friday":"vrijdag","Saturday":"zaterdag","Add":"Toevoegen","Filename":"Bestandsnaam","Upload":"Uploaden","Configure":"Instellen","All":"Alle","Done":"Gereed","N\/A":"n.v.t.","This field is required.":"Dit veld is verplicht.","Prev":"Vorige","Mon":"ma","Tue":"di","Wed":"wo","Thu":"do","Fri":"vr","Sat":"za","Sun":"zo","January":"januari","February":"februari","March":"maart","April":"april","May":"mei","June":"juni","July":"juli","August":"augustus","September":"september","October":"oktober","November":"november","December":"december","Key":"Sleutel","Select all rows in this table":"Selecteer alle regels van deze tabel","Deselect all rows in this table":"De-selecteer alle regels van deze tabel","Your search yielded no results":"De zoekopdracht heeft geen resultaten opgeleverd","Today":"Vandaag","Jan":"jan","Feb":"feb","Mar":"mrt","Apr":"apr","Jun":"jun","Jul":"jul","Aug":"aug","Sep":"sep","Oct":"okt","Nov":"nov","Dec":"dec","Su":"zo","Mo":"ma","Tu":"di","We":"wo","Th":"do","Fr":"vr","Sa":"za","Not published":"Niet gepubliceerd","Please wait...":"Even geduld...","- Select -":"- Selecteren -","mm\/dd\/yy":"mm\/dd\/jj","Only files with the following extensions are allowed: %files-allowed.":"Uitsluitend bestanden met de volgende extensies zijn toegelaten: %files-allowed.","By @name on @date":"Door @name op @date","By @name":"Door @name","Not in menu":"Niet in een menu","Alias: @alias":"Alias: @alias","No alias":"Geen alias","New revision":"Nieuwe revisie","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"Wijzigingen aan de blokken worden pas opgeslagen wanneer u de knop \u003Cem\u003EBlokken opslaan\u003C\/em\u003E aanklikt.","Show shortcuts":"Snelkoppelingen weergeven","This permission is inherited from the authenticated user role.":"Dit toegangsrecht is ge\u00ebrfd van de rol \u0027geverifieerde gebruiker\u0027.","No revision":"Geen revisie","@number comments per page":"@number reacties per pagina","Requires a title":"Een titel is verplicht","Not restricted":"Geen beperking","Not customizable":"Niet aanpasbaar","Restricted to certain pages":"Beperkt tot bepaalde pagina\u0027s","The block cannot be placed in this region.":"Het blok kan niet worden geplaatst in dit gebied.","Customize dashboard":"Dashboard aanpassen","Hide summary":"Samenvatting verbergen","Edit summary":"Samenvatting bewerken","Don\u0027t display post information":"Geen berichtinformatie weergeven","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Het bestand %filename kan niet ge\u00fcpload worden. Alleen bestanden met de volgende extensies zijn toegestaan: %extensions","Autocomplete popup":"Popup voor automatisch aanvullen","Searching for matches...":"Zoeken naar overeenkomsten...","Hide shortcuts":"Snelkoppelingen verbergen","Log messages":"Log berichten","Value":"Waarde","Automatic alias":"Automatische alias","Insert this token into your form":"Plaats deze token in uw formulier","First click a text field to insert your tokens into.":"Klik eerst een tekstveld aan om uw tokens in te plaatsen.","Translate Text":"Tekst vertalen","An HTTP error @status occured.":"Een HTTP-fout @status is opgetreden.","Remove group":"Groep verwijderen","Apply (all displays)":"Toepassen (alle weergaven)","Revert to default":"Terugzetten naar standaard","Apply (this display)":"Toepassen (deze weergave)","Change":"Wijzigen","New":"Nieuwe","One domain with multiple subdomains":"E\u00e9n domein met meerdere subdomeinen","Multiple top-level domains":"Meerdere topniveau domeinnamen","All pages with exceptions":"Alle pagina\u0027s met uitzonderingen","Excepted: @roles":"Uitgezonderd: @roles","@items enabled":"@items ingeschakeld","Not tracked":"Niet gevolgd","A single domain":"Een enkel domein","Universal web tracking opt-out":"Universele web tracking opt-out.","No privacy":"Geen privacy","@label: @value":"@label: @value","Colorbox":"Colorbox","Close":"Sluiten","Click update to save the configuration":"Klik op bijwerken om de instellingen op te slaan","Resume":"Hervatten","Pause":"Pauze","There was no action specified.":"Er is geen actie gespecificeerd.","Start upload":"Upload starten","Add files":"Bestanden toevoegen","Inclusion: @value":"Insluiting: @value","Priority: @value":"Prioriteit: @value","Downloads":"Downloads","An error occurred":"Er is een fout opgetreden","Available tokens":"Beschikbare tokens","No file in clipboard.":"Geen bestand in het klembord.","Outbound links":"Externe links","Mailto links":"Mailto-links","AdSense ads":"AdSense-advertenties","DoubleClick data":"DoubleClick-data","Anonymize IP":"IP-adres anonimiseren","You can not perform this operation.":"U kunt deze actie niet uitvoeren.","Do you want to refresh the current directory?":"Wilt u de huidige map verversen?","Delete selected files?":"Geselecteerde bestanden verwijderen?","Please select a thumbnail.":"Kies een miniatuur","Please select a file.":"Selecteer a.u.b. een bestand.","%filename is not an image.":"%filename is geen afbeelding.","You must select at least %num files.":"Selecteer tenminste %num bestanden.","You are not allowed to operate on more than %num files.":"U mag aan niet meer dan %num bestanden werken.","Insert file":"Bestand toevoegen","Change view":"Weergave aanpassen","Directory":"Map","You are not alllowed to create more than %num directories.":"U mag niet meer dan %num mappen aanmaken.","%dirname is not a valid directory name. It should contain only alphanumeric characters, hyphen and underscore.":"%dirname is geen geldige map. De naam mag enkel bestaan uit letters, een scheidingsteken ( - ) of een onderstreepingsteken ( _ ).","Subdirectory %dir already exists.":"Submap %dir bestaat al.","Subdirectory %dir does not exist.":"Submap %dir bestaat niet.","Are you sure want to delete this subdirectory with all directories and files in it?":"Weet u zeker dat u deze map met alle submappen en bestanden wilt verwijderen?","Open file browser":"Bestandsbrowser openen","No results":"Geen resultaten","Show more":"Meer tonen","Show fewer":"Minder tonen","Add item":"Item toevoegen"}} };;
2/*!
3	Colorbox 1.6.1
4	license: MIT
5	http://www.jacklmoore.com/colorbox
6*/
vendor: 4,647 bytes, line 7
7(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in y[0]&&!y[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),y.focus())}function c(t){c.str!==t&&(y.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!$){$=q=!0,c(_.get("className")),y.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=(l!==!1?Math.min(h,a(l,"x")):h)-z-D,_.h=(f!==!1?Math.min(s,a(f,"y")):s)-N-j,I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(S).hide(),y.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){y||(V=!1,E=t(i),y=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),M=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),x=n(se,"Wrapper"),b=n(se,"Content").append(S=n(se,"Title"),F=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),R=n("button","Slideshow"),M),B=t('<button type="button"/>').attr({id:Z+"Close"}),x.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),L=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(F).add(R)),e.body&&!y.parent().length&&t(e.body).append(v,y.append(x,L))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return y?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;$&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),$&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if(q=!0,U=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){M.show()},100),_.get("inline")){var c=t(e);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),U=_.get("
7createImg"),t(U).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(U.height=U.height/i.devicePixelRatio,U.width=U.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){U.height-=U.height*e,U.width-=U.width*e},_.mw&&U.width>_.mw&&(e=(U.width-_.mw)/U.width,o()),_.mh&&U.height>_.mh&&(e=(U.height-_.mh)/U.height,o())),_.h&&(U.style.marginTop=Math.max(_.mh-U.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(U.style.cursor="pointer",t(U).bind("click."+Z,function(){J.next()})),U.style.width=U.width+"px",U.style.height=U.height+"px",h(U)},1)}),U.src=e):e&&L.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,y,x,b,T,C,H,k,W,E,I,L,M,S,F,R,K,P,B,O,_,j,D,N,z,A,U,$,q,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullScreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){R.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),y.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),R.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),y.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,R.hide(),t(),ae.unbind(ne,e).unbind(ie,t),y.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),R.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(y[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(y[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=y.offset();if(E.unbind("resize."+Z),y.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,y.css({position:"fixed"})):(l=h,d=s,y.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),y.css({top:c.top,left
7:c.left,visibility:"visible"}),x[0].style.width=x[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||y.css(r),y.dequeue().animate(r,{duration:e||0,complete:function(){n(),q=!1,x[0].style.width=_.w+z+D+"px",x[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;$&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if($){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(L.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),L.hide(),t(U).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&y[0].style.removeAttribute("filter")}var n,o,a=W.length;$&&(o=function(){clearTimeout(Q),M.hide(),u(ne),_.get("onComplete")},S.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&F.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?y.fadeTo(g,1,i):i())},"fade"===_.get("transition")?y.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!q&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!q&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){$&&!G&&(G=!0,$=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),y.stop().fadeTo(_.get("fadeOut")||0,0,function(){y.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){y&&(y.stop(),t[Y].close(),y.stop(!1,!0).remove(),v.remove(),G=!1,y=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);;
8/**
9 * @file
10 * Colorbox module init js.
11 */
12
13(function ($) {
14
15Drupal.behaviors.initColorbox = {
16  attach: function (context, settings) {
17    if (!$.isFunction($('a, area, input', context).colorbox) || typeof settings.colorbox === 'undefined') {
18      return;
19    }
20
21    if (settings.colorbox.mobiledetect && window.matchMedia) {
22      // Disable Colorbox for small screens.
23      var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
24      if (mq.matches) {
25        return;
26      }
27    }
28
29    // Use "data-colorbox-gallery" if set otherwise use "rel".
30    settings.colorbox.rel = function () {
31      if ($(this).data('colorbox-gallery')) {
32        return $(this).data('colorbox-gallery');
33      }
34      else {
35        return $(this).attr('rel');
36      }
37    };
38
39    $('.colorbox', context)
40      .once('init-colorbox').each(function(){
41        // Only images are supported for the "colorbox" class.
42        // The "photo" setting forces the href attribute to be treated as an image.
43        var extendParams = {
44          photo: true
45        };
46        // If a title attribute is supplied, sanitize it.
47        var title = $(this).attr('title');
48        if (title) {
49          extendParams.title = Drupal.checkPlain(title);
50        }
51        $(this).colorbox($.extend({}, settings.colorbox, extendParams));
52      });
53
54    $(context).bind('cbox_complete', function () {
55      Drupal.attachBehaviors('#cboxLoadedContent');
56    });
57  }
58};
59
60})(jQuery);
61;
62/**
63 * @file
64 * Colorbox module style js.
65 */
66
67(function ($) {
68
69Drupal.behaviors.initColorboxDefaultStyle = {
70  attach: function (context, settings) {
71    $(context).bind('cbox_complete', function () {
72      // Only run if there is a title.
73      if ($('#cboxTitle:empty', context).length == false) {
74        $('#cboxLoadedContent img', context).bind('mouseover', function () {
75          $('#cboxTitle', context).slideDown();
76        });
77        $('#cboxOverlay', context).bind('mouseover', function () {
78          $('#cboxTitle', context).slideUp();
79        });
80      }
81      else {
82        $('#cboxTitle', context).hide();
83      }
84    });
85  }
86};
87
88})(jQuery);
89;
90/**
91 * @file
92 * Colorbox module load js.
93 */
94(function ($) {
95
96Drupal.behaviors.initColorboxLoad = {
97  attach: function (context, settings) {
98    if (!$.isFunction($.colorbox) || typeof settings.colorbox === 'undefined') {
99      return;
100    }
101
102    if (settings.colorbox.mobiledetect && window.matchMedia) {
103      // Disable Colorbox for small screens.
104      var mq = window.matchMedia("(max-device-width: " + settings.colorbox.mobiledevicewidth + ")");
105      if (mq.matches) {
106        return;
107      }
108    }
109
110    $.urlParams = function (url) {
111      var p = {},
112          e,
113          a = /\+/g,  // Regex for replacing addition symbol with a space.
114          r = /([^&=]+)=?([^&]*)/g,
115          d = function (s) { return decodeURIComponent(s.replace(a, ' ')); },
116          q = url.split('?');
117      while (e = r.exec(q[1])) {
118        e[1] = d(e[1]);
119        e[2] = d(e[2]);
120        switch (e[2].toLowerCase()) {
121          case 'true':
122          case 'yes':
123            e[2] = true;
124            break;
125          case 'false':
126          case 'no':
127            e[2] = false;
128            break;
129        }
130        if (e[1] == 'width') { e[1] = 'innerWidth'; }
131        if (e[1] == 'height') { e[1] = 'innerHeight'; }
132        if (e[2]) {
133          e[2] = Drupal.checkPlain(e[2]);
134        }
135        p[e[1]] = e[2];
136      }
137      return p;
138    };
139
140    $('.colorbox-load', context)
141      .once('init-colorbox-load', function () {
142        var href = $(this).attr('href');
143        if (!hrefIsSafe(href)) {
144          return;
145        }
146
147        var params = $.urlParams(href);
148        if (!params.hasOwnProperty('title')) {
149          // If a title attribute is supplied, sanitize it.
150          var title = $(this).attr('title');
151          if (title) {
152            params.title = Drupal.checkPlain(title);
153          }
154        }
155        $(this).colorbox($.extend({}, settings.colorbox, params));
156      });
157  }
158};
159
160/**
161 * Returns true if the passed-in href string is safe for colorbox_load.
162 *
163 * @param href
164 *   The href string to be tested.
165 *
166 * @return
167 *   Boolean true if the href is safe.
168 */
169function hrefIsSafe(href) {
170  var normalizedUrl = Drupal.absoluteUrl(href);
171
172  // Only local, non-file-system URLs are allowed.
173  if (!Drupal.urlIsLocal(normalizedUrl)) {
174    return false;
175  }
176
177  // Reject uploaded files from the public or private file system.
178  if (normalizedUrl.indexOf(Drupal.settings.colorbox.file_public_path) !== -1 ||
179    normalizedUrl.match(/\/system\/files\//) ||
180    normalizedUrl.match(/[?|&]q=system\/files\//)) {
181    return false;
182  }
183
184  // All checks passed.
185  return true;
186}
187
188})(jQuery);
189;
190/**
191 * @file
192 * Some basic behaviors and utility functions for Views.
193 */
194(function ($) {
195
196  Drupal.Views = {};
197
198  /**
199   * JQuery UI tabs, Views integration component.
200   */
201  Drupal.behaviors.viewsTabs = {
202    attach: function (context) {
203      if ($.viewsUi && $.viewsUi.tabs) {
204        $('#views-tabset').once('views-processed').viewsTabs({
205          selectedClass: 'active'
206        });
207      }
208
209      $('a.views-remove-link').once('views-processed').click(function(event) {
210        var id = $(this).attr('id').replace('views-remove-link-', '');
211        $('#views-row-' + id).hide();
212        $('#views-removed-' + id).attr('checked', true);
213        event.preventDefault();
214      });
215      /**
216    * Here is to handle display deletion
217    * (checking in the hidden checkbox and hiding out the row).
218    */
219      $('a.display-remove-link')
220        .addClass('display-processed')
221        .click(function() {
222          var id = $(this).attr('id').replace('display-remove-link-', '');
223          $('#display-row-' + id).hide();
224          $('#display-removed-' + id).attr('checked', true);
225          return false;
226        });
227    }
228  };
229
230  /**
231 * Helper function to parse a querystring.
232 */
233  Drupal.Views.parseQueryString = function (query) {
234    var args = {};
235    var pos = query.indexOf('?');
236    if (pos != -1) {
237      query = query.substring(pos + 1);
238    }
239    var pairs = query.split('&');
240    for (var i in pairs) {
241      if (typeof(pairs[i]) == 'string') {
242        var pair = pairs[i].split('=');
243        // Ignore the 'q' path argument, if present.
244        if (pair[0] != 'q' && pair[1]) {
245          args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
246        }
247      }
248    }
249    return args;
250  };
251
252  /**
253 * Helper function to return a view's arguments based on a path.
254 */
255  Drupal.Views.parseViewArgs = function (href, viewPath) {
256
257    // Provide language prefix.
258    if (Drupal.settings.pathPrefix) {
259      var viewPath = Drupal.settings.pathPrefix + viewPath;
260    }
261    var returnObj = {};
262    var path = Drupal.Views.getPath(href);
263    // Ensure we have a correct path.
264    if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') {
265      var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length));
266      returnObj.view_args = args;
267      returnObj.view_path = path;
268    }
269    return returnObj;
270  };
271
272  /**
273 * Strip off the protocol plus domain from an href.
274 */
275  Drupal.Views.pathPortion = function (href) {
276    // Remove e.g. http://example.com if present.
277    var protocol = window.location.protocol;
278    if (href.substring(0, protocol.length) == protocol) {
279      // 2 is the length of the '//' that normally follows the protocol.
280      href = href.substring(href.indexOf('/', protocol.length + 2));
281    }
282    return href;
283  };
284
285  /**
286 * Return the Drupal path portion of an href.
287 */
288  Drupal.Views.getPath = function (href) {
289    href = Drupal.Views.pathPortion(href);
290    href = href.substring(Drupal.settings.basePath.length, href.length);
291    // 3 is the length of the '?q=' added to the url without clean urls.
292    if (href.substring(0, 3) == '?q=') {
293      href = href.substring(3, href.length);
294    }
295    var chars = ['#', '?', '&'];
296    for (var i in chars) {
297      if (href.indexOf(chars[i]) > -1) {
298        href = href.substr(0, href.indexOf(chars[i]));
299      }
300    }
301    return href;
302  };
303
304})(jQuery);
305;
306(function ($) {
307
308/**
309 * A progressbar object. Initialized with the given id. Must be inserted into
310 * the DOM afterwards through progressBar.element.
311 *
312 * method is the function which will perform the HTTP request to get the
313 * progress bar state. Either "GET" or "POST".
314 *
315 * e.g. pb = new progressBar('myProgressBar');
316 *      some_element.appendChild(pb.element);
317 */
318Drupal.progressBar = function (id, updateCallback, method, errorCallback) {
319  var pb = this;
320  this.id = id;
321  this.method = method || 'GET';
322  this.updateCallback = updateCallback;
323  this.errorCallback = errorCallback;
324
325  // The WAI-ARIA setting aria-live="polite" will announce changes after users
326  // have completed their current activity and not interrupt the screen reader.
327  this.element = $('<div class="progress" aria-live="polite"></div>').attr('id', id);
328  this.element.html('<div class="bar"><div class="filled"></div></div>' +
329                    '<div class="percentage"></div>' +
330                    '<div class="message">&nbsp;</div>');
331};
332
333/**
334 * Set the percentage and status message for the progressbar.
335 */
336Drupal.progressBar.prototype.setProgress = function (percentage, message) {
337  if (percentage >= 0 && percentage <= 100) {
338    $('div.filled', this.element).css('width', percentage + '%');
339    $('div.percentage', this.element).html(percentage + '%');
340  }
341  $('div.message', this.element).html(message);
342  if (this.updateCallback) {
343    this.updateCallback(percentage, message, this);
344  }
345};
346
347/**
348 * Start monitoring progress via Ajax.
349 */
350Drupal.progressBar.prototype.startMonitoring = function (uri, delay) {
351  this.delay = delay;
352  this.uri = uri;
353  this.sendPing();
354};
355
356/**
357 * Stop monitoring progress via Ajax.
358 */
359Drupal.progressBar.prototype.stopMonitoring = function () {
360  clearTimeout(this.timer);
361  // This allows monitoring to be stopped from within the callback.
362  this.uri = null;
363};
364
365/**
366 * Request progress data from server.
367 */
368Drupal.progressBar.prototype.sendPing = function () {
369  if (this.timer) {
370    clearTimeout(this.timer);
371  }
372  if (this.uri) {
373    var pb = this;
374    // When doing a post request, you need non-null data. Otherwise a
375    // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
376    $.ajax({
377      type: this.method,
378      url: this.uri,
379      data: '',
380      dataType: 'json',
381      success: function (progress) {
382        // Display errors.
383        if (progress.status == 0) {
384          pb.displayError(progress.data);
385          return;
386        }
387        // Update display.
388        pb.setProgress(progress.percentage, progress.message);
389        // Schedule next timer.
390        pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
391      },
392      error: function (xmlhttp) {
393        pb.displayError(Drupal.ajaxError(xmlhttp, pb.uri));
394      }
395    });
396  }
397};
398
399/**
400 * Display errors on the page.
401 */
402Drupal.progressBar.prototype.displayError = function (string) {
403  var error = $('<div class="messages error"></div>').html(string);
404  $(this.element).before(error).hide();
405
406  if (this.errorCallback) {
407    this.errorCallback(this);
408  }
409};
410
411})(jQuery);
412;
413/**
414 * @file
415 * Handles AJAX fetching of views, including filter submission and response.
416 */
417(function ($) {
418
419  /**
420   * Attaches the AJAX behavior to exposed filter forms and key views links.
421   */
422  Drupal.behaviors.ViewsAjaxView = {};
423  Drupal.behaviors.ViewsAjaxView.attach = function() {
424    if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) {
425      $.each(Drupal.settings.views.ajaxViews, function(i, settings) {
426        Drupal.views.instances[i] = new Drupal.views.ajaxView(settings);
427      });
428    }
429  };
430
431  Drupal.views = {};
432  Drupal.views.instances = {};
433
434  /**
435   * JavaScript object for a certain view.
436   */
437  Drupal.views.ajaxView = function(settings) {
438    var selector = '.view-dom-id-' + settings.view_dom_id;
439    this.$view = $(selector);
440
441    // Retrieve the path to use for views' ajax.
442    var ajax_path = Drupal.settings.views.ajax_path;
443
444    // If there are multiple views this might've ended up showing up multiple
445    // times.
446    if (ajax_path.constructor.toString().indexOf("Array") != -1) {
447      ajax_path = ajax_path[0];
448    }
449
450    // Check if there are any GET parameters to send to views.
451    var queryString = window.location.search || '';
452    if (queryString !== '') {
453      // Remove the question mark and Drupal path component if any.
454      var queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
455      if (queryString !== '') {
456        // If there is a '?' in ajax_path, clean url are on and & should be
457        // used to add parameters.
458        queryString = ((/\?/.test(ajax_path)) ? '&' : '?') + queryString;
459      }
460    }
461
462    this.element_settings = {
463      url: ajax_path + queryString,
464      submit: settings,
465      setClick: true,
466      event: 'click',
467      selector: selector,
468      progress: {
469        type: 'throbber'
470      }
471    };
472
473    this.settings = settings;
474
475    // Add the ajax to exposed forms.
476    this.$exposed_form = $('#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-'));
477    this.$exposed_form.once(jQuery.proxy(this.attachExposedFormAjax, this));
478
479    // Store Drupal.ajax objects here for all pager links.
480    this.links = [];
481
482    // Add the ajax to pagers.
483    this.$view
484      .once(jQuery.proxy(this.attachPagerAjax, this));
485
486    // Add a trigger to update this view specifically. In order to trigger a
487    // refresh use the following code.
488    //
489    // @code
490    // jQuery('.view-name').trigger('RefreshView');
491    // @endcode
492    // Add a trigger to update this view specifically.
493    var self_settings = this.element_settings;
494    self_settings.event = 'RefreshView';
495    this.refreshViewAjax = new Drupal.ajax(this.selector, this.$view, self_settings);
496  };
497
498  Drupal.views.ajaxView.prototype.attachExposedFormAjax = function() {
499    var button = $('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form);
500    button = button[0];
501
502    // Call the autocomplete submit before doing AJAX.
503    $(button).click(function () {
504      if (Drupal.autocompleteSubmit) {
505        Drupal.autocompleteSubmit();
506      }
507    });
508
509    this.exposedFormAjax = new Drupal.ajax($(button).attr('id'), button, this.element_settings);
510  };
511
512  /**
513   * Attach the ajax behavior to each link.
514   */
515  Drupal.views.ajaxView.prototype.attachPagerAjax = function() {
516    this.$view.find('ul.pager > li > a, th.views-field a, .attachment .views-summary a')
517      .each(jQuery.proxy(this.attachPagerLinkAjax, this));
518  };
519
520  /**
521   * Attach the ajax behavior to a singe link.
522   */
523  Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function(id, link) {
524    var $link = $(link);
525    // Don't attach to pagers inside nested views.
526    if ($link.closest('.view')[0] !== this.$view[0]) {
527      return;
528    }
529    var viewData = {};
530    var href = $link.attr('href');
531
532    // Provide a default page if none has been set. This must be done
533    // prior to merging with settings to avoid accidentally using the
534    // page landed on instead of page 1.
535    if (typeof(viewData.page) === 'undefined') {
536      viewData.page = 0;
537    }
538
539    // Construct an object using the settings defaults and then overriding
540    // with data specific to the link.
541    $.extend(
542    viewData,
543    this.settings,
544    Drupal.Views.parseQueryString(href),
545    // Extract argument data from the URL.
546    Drupal.Views.parseViewArgs(href, this.settings.view_base_path)
547    );
548
549    // For anchor tags, these will go to the target of the anchor rather
550    // than the usual location.
551    $.extend(viewData, Drupal.Views.parseViewArgs(href, this.settings.view_base_path));
552
553    this.element_settings.submit = viewData;
554    this.pagerAjax = new Drupal.ajax(false, $link, this.element_settings);
555    this.links.push(this.pagerAjax);
556  };
557
558  Drupal.ajax.prototype.commands.viewsScrollTop = function (ajax, response, status) {
559    // Scroll to the top of the view. This will allow users
560    // to browse newly loaded content after e.g. clicking a pager
561    // link.
562    var offset = $(response.selector).offset();
563    // We can't guarantee that the scrollable object should be
564    // the body, as the view could be embedded in something
565    // more complex such as a modal popup. Recurse up the DOM
566    // and scroll the first element that has a non-zero top.
567    var scrollTarget = response.selector;
568    while ($(scrollTarget).scrollTop() == 0 && $(scrollTarget).parent()) {
569      scrollTarget = $(scrollTarget).parent();
570    }
571    // Only scroll upward.
572    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
573      $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);
574    }
575  };
576
577})(jQuery);
578;
579(function ($) {
580
581Drupal.googleanalytics = {};
582
583$(document).ready(function() {
584
585  // Attach mousedown, keyup, touchstart events to document only and catch
586  // clicks on all elements.
587  $(document.body).bind("mousedown keyup touchstart", function(event) {
588
589    // Catch the closest surrounding link of a clicked element.
590    $(event.target).closest("a,area").each(function() {
591
592      // Is the clicked URL internal?
593      if (Drupal.googleanalytics.isInternal(this.href)) {
594        // Skip 'click' tracking, if custom tracking events are bound.
595        if ($(this).is('.colorbox') && (Drupal.settings.googleanalytics.trackColorbox)) {
596          // Do nothing here. The custom event will handle all tracking.
597          //console.info("Click on .colorbox item has been detected.");
598        }
599        // Is download tracking activated and the file extension configured for download tracking?
600        else if (Drupal.settings.googleanalytics.trackDownload && Drupal.googleanalytics.isDownload(this.href)) {
601          // Download link clicked.
602          ga("send", {
603            "hitType": "event",
604            "eventCategory": "Downloads",
605            "eventAction": Drupal.googleanalytics.getDownloadExtension(this.href).toUpperCase(),
606            "eventLabel": Drupal.googleanalytics.getPageUrl(this.href),
607            "transport": "beacon"
608          });
609        }
610        else if (Drupal.googleanalytics.isInternalSpecial(this.href)) {
611          // Keep the internal URL for Google Analytics website overlay intact.
612          ga("send", {
613            "hitType": "pageview",
614            "page": Drupal.googleanalytics.getPageUrl(this.href),
615            "transport": "beacon"
616          });
617        }
618      }
619      else {
620        if (Drupal.settings.googleanalytics.trackMailto && $(this).is("a[href^='mailto:'],area[href^='mailto:']")) {
621          // Mailto link clicked.
622          ga("send", {
623            "hitType": "event",
624            "eventCategory": "Mails",
625            "eventAction": "Click",
626            "eventLabel": this.href.substring(7),
627            "transport": "beacon"
628          });
629        }
630        else if (Drupal.settings.googleanalytics.trackOutbound && this.href.match(/^\w+:\/\//i)) {
631          if (Drupal.settings.googleanalytics.trackDomainMode !== 2 || (Drupal.settings.googleanalytics.trackDomainMode === 2 && !Drupal.googleanalytics.isCrossDomain(this.hostname, Drupal.settings.googleanalytics.trackCrossDomains))) {
632            // External link clicked / No top-level cross domain clicked.
633            ga("send", {
634              "hitType": "event",
635              "eventCategory": "Outbound links",
636              "eventAction": "Click",
637              "eventLabel": this.href,
638              "transport": "beacon"
639            });
640          }
641        }
642      }
643    });
644  });
645
646  // Track hash changes as unique pageviews, if this option has been enabled.
647  if (Drupal.settings.googleanalytics.trackUrlFragments) {
648    window.onhashchange = function() {
649      ga("send", {
650        "hitType": "pageview",
651        "page": location.pathname + location.search + location.hash
652      });
653    };
654  }
655
656  // Colorbox: This event triggers when the transition has completed and the
657  // newly loaded content has been revealed.
658  if (Drupal.settings.googleanalytics.trackColorbox) {
659    $(document).bind("cbox_complete", function () {
660      var href = $.colorbox.element().attr("href");
661      if (href) {
662        ga("send", {
663          "hitType": "pageview",
664          "page": Drupal.googleanalytics.getPageUrl(href)
665        });
666      }
667    });
668  }
669
670});
671
672/**
673 * Check whether the hostname is part of the cross domains or not.
674 *
675 * @param string hostname
676 *   The hostname of the clicked URL.
677 * @param array crossDomains
678 *   All cross domain hostnames as JS array.
679 *
680 * @return boolean
681 */
682Drupal.googleanalytics.isCrossDomain = function (hostname, crossDomains) {
683  /**
684   * jQuery < 1.6.3 bug: $.inArray crushes IE6 and Chrome if second argument is
685   * `null` or `undefined`, https://bugs.jquery.com/ticket/10076,
686   * https://github.com/jquery/jquery/commit/a839af034db2bd934e4d4fa6758a3fed8de74174
687   *
688   * @todo: Remove/Refactor in D8
689   */
690  if (!crossDomains) {
691    return false;
692  }
693  else {
694    return $.inArray(hostname, crossDomains) > -1 ? true : false;
695  }
696};
697
698/**
699 * Check whether this is a download URL or not.
700 *
701 * @param string url
702 *   The web url to check.
703 *
704 * @return boolean
705 */
706Drupal.googleanalytics.isDownload = function (url) {
707  var isDownload = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i");
708  return isDownload.test(url);
709};
710
711/**
712 * Check whether this is an absolute internal URL or not.
713 *
714 * @param string url
715 *   The web url to check.
716 *
717 * @return boolean
718 */
719Drupal.googleanalytics.isInternal = function (url) {
720  var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i");
721  return isInternal.test(url);
722};
723
724/**
725 * Check whether this is a special URL or not.
726 *
727 * URL types:
728 *  - gotwo.module /go/* links.
729 *
730 * @param string url
731 *   The web url to check.
732 *
733 * @return boolean
734 */
735Drupal.googleanalytics.isInternalSpecial = function (url) {
736  var isInternalSpecial = new RegExp("(\/go\/.*)$", "i");
737  return isInternalSpecial.test(url);
738};
739
740/**
741 * Extract the relative internal URL from an absolute internal URL.
742 *
743 * Examples:
744 * - https://mydomain.com/node/1 -> /node/1
745 * - https://example.com/foo/bar -> https://example.com/foo/bar
746 *
747 * @param string url
748 *   The web url to check.
749 *
750 * @return string
751 *   Internal website URL
752 */
753Drupal.googleanalytics.getPageUrl = function (url) {
754  var extractInternalUrl = new RegExp("^(https?):\/\/" + window.location.host, "i");
755  return url.replace(extractInternalUrl, '');
756};
757
758/**
759 * Extract the download file extension from the URL.
760 *
761 * @param string url
762 *   The web url to check.
763 *
764 * @return string
765 *   The file extension of the passed url. e.g. "zip", "txt"
766 */
767Drupal.googleanalytics.getDownloadExtension = function (url) {
768  var extractDownloadextension = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i");
769  var extension = extractDownloadextension.exec(url);
770  return (extension === null) ? '' : extension[1];
771};
772
773})(jQuery);
774;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.