diff --git a/.gitignore b/.gitignore index 5055698..12d544c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ yarn-debug.log* plugins/gatsby-plugin-matomo coverage .env +static/matomo.js diff --git a/gatsby-config.js b/gatsby-config.js index 3bcbab5..4d83f8b 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -55,7 +55,7 @@ module.exports = { siteId: `${matomoSite}`, siteUrl: `${website}`, matomoUrl: `${matomoUrl}`, - localScript: '/piwik.js', + localScript: '/matomo.js', trackLoad: false } }, diff --git a/gatsby-node.js b/gatsby-node.js index 36be08f..3b0e10b 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -9,6 +9,7 @@ const yaml = require('js-yaml') const reposYaml = yaml.load(fs.readFileSync('./content/repos.yml', 'utf8')) const { performance } = require('perf_hooks') const chalk = require('chalk') +const { execSync } = require('child_process') function truncate(n, useWordBoundary) { if (this.length <= n) { @@ -22,6 +23,13 @@ function truncate(n, useWordBoundary) { ) } +// +// Fetch matomo.js +// +execSync(`node ./scripts/fetch-matomo-js > static/matomo.js`, { + stdio: 'inherit' +}) + // // Get GitHub repos // diff --git a/scripts/fetch-matomo-js.js b/scripts/fetch-matomo-js.js new file mode 100644 index 0000000..3955170 --- /dev/null +++ b/scripts/fetch-matomo-js.js @@ -0,0 +1,11 @@ +#!/usr/bin/env node +'use strict' + +const axios = require('axios') + +const url = + 'https://raw.githubusercontent.com/matomo-org/matomo/4.x-dev/matomo.js' + +axios(url).then((response) => { + process.stdout.write(`${response.data}`) +}) diff --git a/static/piwik.js b/static/piwik.js deleted file mode 100644 index f15eae0..0000000 --- a/static/piwik.js +++ /dev/null @@ -1,103 +0,0 @@ -/*!! - * Piwik - free/libre analytics platform - * - * JavaScript tracking client - * - * @link https://piwik.org - * @source https://github.com/matomo-org/matomo/blob/master/js/piwik.js - * @license https://piwik.org/free-software/bsd/ BSD-3 Clause (also in js/LICENSE.txt) - * @license magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt BSD-3-Clause - */ -;if(typeof JSON_PIWIK!=="object"&&typeof window.JSON==="object"&&window.JSON.stringify&&window.JSON.parse){JSON_PIWIK=window.JSON}else{(function(){var a={}; -/*!! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ -(function(){var c=typeof define==="function"&&define.amd;var e={"function":true,object:true};var h=e[typeof a]&&a&&!a.nodeType&&a;var i=e[typeof window]&&window||this,b=h&&e[typeof module]&&module&&!module.nodeType&&typeof global=="object"&&global;if(b&&(b.global===b||b.window===b||b.self===b)){i=b}function j(ab,V){ab||(ab=i.Object());V||(V=i.Object()); -var K=ab.Number||i.Number,R=ab.String||i.String,x=ab.Object||i.Object,S=ab.Date||i.Date,T=ab.SyntaxError||i.SyntaxError,aa=ab.TypeError||i.TypeError,J=ab.Math||i.Math,Y=ab.JSON||i.JSON;if(typeof Y=="object"&&Y){V.stringify=Y.stringify;V.parse=Y.parse}var n=x.prototype,u=n.toString,r,m,L;var B=new S(-3509827334573292);try{B=B.getUTCFullYear()==-109252&&B.getUTCMonth()===0&&B.getUTCDate()===1&&B.getUTCHours()==10&&B.getUTCMinutes()==37&&B.getUTCSeconds()==6&&B.getUTCMilliseconds()==708}catch(v){}function o(ac){if(o[ac]!==L){return o[ac]}var ad;if(ac=="bug-string-char-index"){ad="a"[0]!="a"}else{if(ac=="json"){ad=o("json-stringify")&&o("json-parse")}else{var ak,ah='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if(ac=="json-stringify"){var ai=V.stringify,aj=typeof ai=="function"&&B;if(aj){(ak=function(){return 1}).toJSON=ak;try{aj=ai(0)==="0"&&ai(new K())==="0"&&ai(new R())=='""'&&ai(u)===L&&ai(L)===L&&ai()===L&&ai(ak)==="1"&&ai([ak])=="[1]"&&ai([L])=="[null]"&&ai(null)=="null"&&ai([L,u,null])=="[null,null,null]"&&ai({a:[ak,true,false,null,"\x00\b\n\f\r\t"]})==ah&&ai(null,ak)==="1"&&ai([1,2],null,1)=="[\n 1,\n 2\n]"&&ai(new S(-8640000000000000))=='"-271821-04-20T00:00:00.000Z"'&&ai(new S(8640000000000000))=='"+275760-09-13T00:00:00.000Z"'&&ai(new S(-62198755200000))=='"-000001-01-01T00:00:00.000Z"'&&ai(new S(-1))=='"1969-12-31T23:59:59.999Z"' -}catch(ae){aj=false}}ad=aj}if(ac=="json-parse"){var ag=V.parse;if(typeof ag=="function"){try{if(ag("0")===0&&!ag(false)){ak=ag(ah);var af=ak.a.length==5&&ak.a[0]===1;if(af){try{af=!ag('"\t"')}catch(ae){}if(af){try{af=ag("01")!==1}catch(ae){}}if(af){try{af=ag("1.")!==1}catch(ae){}}}}}catch(ae){af=false}}ad=af}}}return o[ac]=!!ad}if(!o("json")){var U="[object Function]",Q="[object Date]",N="[object Number]",O="[object String]",E="[object Array]",A="[object Boolean]";var F=o("bug-string-char-index");if(!B){var s=J.floor;var Z=[0,31,59,90,120,151,181,212,243,273,304,334];var D=function(ac,ad){return Z[ad]+365*(ac-1970)+s((ac-1969+(ad=+(ad>1)))/4)-s((ac-1901+ad)/100)+s((ac-1601+ad)/400)}}if(!(r=n.hasOwnProperty)){r=function(ae){var ac={},ad;if((ac.__proto__=null,ac.__proto__={toString:1},ac).toString!=u){r=function(ah){var ag=this.__proto__,af=ah in (this.__proto__=null,this);this.__proto__=ag;return af}}else{ad=ac.constructor;r=function(ag){var af=(this.constructor||ad).prototype;return ag in this&&!(ag in af&&this[ag]===af[ag]) -}}ac=null;return r.call(this,ae)}}m=function(ae,ah){var af=0,ac,ad,ag;(ac=function(){this.valueOf=0}).prototype.valueOf=0;ad=new ac();for(ag in ad){if(r.call(ad,ag)){af++}}ac=ad=null;if(!af){ad=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"];m=function(aj,an){var am=u.call(aj)==U,al,ak;var ai=!am&&typeof aj.constructor!="function"&&e[typeof aj.hasOwnProperty]&&aj.hasOwnProperty||r;for(al in aj){if(!(am&&al=="prototype")&&ai.call(aj,al)){an(al)}}for(ak=ad.length;al=ad[--ak];ai.call(aj,al)&&an(al)){}}}else{if(af==2){m=function(aj,am){var ai={},al=u.call(aj)==U,ak;for(ak in aj){if(!(al&&ak=="prototype")&&!r.call(ai,ak)&&(ai[ak]=1)&&r.call(aj,ak)){am(ak)}}}}else{m=function(aj,am){var al=u.call(aj)==U,ak,ai;for(ak in aj){if(!(al&&ak=="prototype")&&r.call(aj,ak)&&!(ai=ak==="constructor")){am(ak)}}if(ai||r.call(aj,(ak="constructor"))){am(ak)}}}}return m(ae,ah)};if(!o("json-stringify")){var q={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"}; -var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00";var C=function(ai){var ad='"',ag=0,ah=ai.length,ac=!F||ah>10;var af=ac&&(F?ai.split(""):ai);for(;ag-1/0&&at<1/0){if(D){ay=s(at/86400000);for(ap=s(ay/365.2425)+1970-1;D(ap+1,0)<=ay;ap++){}for(az=s((ay-D(ap,0))/30.42);D(ap,az+1)<=ay;az++){}ay=1+ay-D(ap,az);ak=(at%86400000+86400000)%86400000;aw=s(ak/3600000)%24;au=s(ak/60000)%60;aq=s(ak/1000)%60;an=ak%1000}else{ap=at.getUTCFullYear();az=at.getUTCMonth();ay=at.getUTCDate();aw=at.getUTCHours();au=at.getUTCMinutes();aq=at.getUTCSeconds();an=at.getUTCMilliseconds()}at=(ap<=0||ap>=10000?(ap<0?"-":"+")+t(6,ap<0?-ap:ap):t(4,ap))+"-"+t(2,az+1)+"-"+t(2,ay)+"T"+t(2,aw)+":"+t(2,au)+":"+t(2,aq)+"."+t(3,an)+"Z" -}else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah0){for(ad="",af>10&&(af=10); -ad.length=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++; -return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y(); -if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON_PIWIK=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Matomo=window.Piwik=(function(){var r,b={},y={},G=document,h=navigator,X=screen,T=window,i=T.performance||T.mozPerformance||T.msPerformance||T.webkitPerformance,t=T.encodeURIComponent,S=T.decodeURIComponent,l=unescape,I=[],E,e,ae=[],x=0,U=0,m=false; -function p(al){try{return S(al)}catch(am){return unescape(al)}}function J(am){var al=typeof am;return al!=="undefined"}function A(al){return typeof al==="function"}function W(al){return typeof al==="object"}function w(al){return typeof al==="string"||al instanceof String}function B(am){if(!am){return true}var al;var an=true;for(al in am){if(Object.prototype.hasOwnProperty.call(am,al)){an=false}}return an}function ah(al){var am=typeof console;if(am!=="undefined"&&console&&console.error){console.error(al)}}function ad(){var aq,ap,at,am,al;for(aq=0;aq0;if(ao){ar=at.split("::");an=ar[0];at=ar[1];if("object"===typeof e[an]&&"function"===typeof e[an][at]){e[an][at].apply(e[an],am)}else{if(al){ae.push(al)}}}else{for(ap=0;ap0;if(au){ar=at.split(".");if(an&&"object"===typeof an[ar[0]]){an=an[ar[0]]; -at=ar[1]}else{if(al){ae.push(al);break}}}if(an[at]){an[at].apply(an,am)}else{var av="The method '"+at+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: https://developer.piwik.org/api-reference/tracking-javascript';ah(av);if(!au){throw new TypeError(av)}}if(at==="addTracker"){break}if(at==="setTrackerUrl"||at==="setSiteId"){break}}else{at.apply(I[ap],am)}}}}}function ak(ao,an,am,al){if(ao.addEventListener){ao.addEventListener(an,am,al);return true}if(ao.attachEvent){return ao.attachEvent("on"+an,am)}ao["on"+an]=am}function n(al){if(G.readyState==="complete"){al()}else{if(T.addEventListener){T.addEventListener("load",al,false)}else{if(T.attachEvent){T.attachEvent("onload",al)}}}}function q(ao){var al=false;if(G.attachEvent){al=G.readyState==="complete"}else{al=G.readyState!=="loading"}if(al){ao();return}var an;if(G.addEventListener){ak(G,"DOMContentLoaded",function am(){G.removeEventListener("DOMContentLoaded",am,false);if(!al){al=true;ao()}})}else{if(G.attachEvent){G.attachEvent("onreadystatechange",function am(){if(G.readyState==="complete"){G.detachEvent("onreadystatechange",am); -if(!al){al=true;ao()}}});if(G.documentElement.doScroll&&T===T.top){(function am(){if(!al){try{G.documentElement.doScroll("left")}catch(ap){setTimeout(am,0);return}al=true;ao()}}())}}}ak(T,"load",function(){if(!al){al=true;ao()}},false)}function aa(am,ar,at){if(!am){return""}var al="",ao,an,ap,aq;for(ao in b){if(Object.prototype.hasOwnProperty.call(b,ao)){aq=b[ao]&&"function"===typeof b[ao][am];if(aq){an=b[ao][am];ap=an(ar||{},at);if(ap){al+=ap}}}}return al}function af(){var al;m=true;aa("unload");if(r){do{al=new Date()}while(al.getTimeAlias()=0;aq--){ap=ar[aq].split("=")[0];if(ap===an){ar.splice(aq,1)}}var av=ar.join("&");if(av){at=at+"?"+av}if(au){at+="#"+au}}return at}function f(an,am){var al="[\\?&#]"+am+"=([^&#]*)";var ap=new RegExp(al);var ao=ap.exec(an);return ao?S(ao[1]):""}function a(al){if(al&&String(al)===al){return al.replace(/^\s+|\s+$/g,"")}return al}function D(al){return unescape(t(al))}function aj(aB){var an=function(aH,aG){return(aH<>>(32-aG))},aC=function(aJ){var aH="",aI,aG;for(aI=7;aI>=0;aI--){aG=(aJ>>>(aI*4))&15;aH+=aG.toString(16)}return aH},aq,aE,aD,am=[],av=1732584193,at=4023233417,ar=2562383102,ap=271733878,ao=3285377520,aA,az,ay,ax,aw,aF,al,au=[];aB=D(aB);al=aB.length;for(aE=0;aE>>29);au.push((al<<3)&4294967295);for(aq=0;aqaq.offsetWidth+aq.scrollLeft||at+aw-axaq.offsetHeight+aq.scrollTop||ay+au-axau?-1:1});if(al.length<=1){return al}var am=0;var ao=0;var ap=[];var an;an=al[am++];while(an){if(an===al[am]){ao=ap.push(am) -}an=al[am++]||null}while(ao--){al.splice(ap[ao],1)}return al},getAttributeValueFromNode:function(ap,an){if(!this.hasNodeAttribute(ap,an)){return}if(ap&&ap.getAttribute){return ap.getAttribute(an)}if(!ap||!ap.attributes){return}var ao=(typeof ap.attributes[an]);if("undefined"===ao){return}if(ap.attributes[an].value){return ap.attributes[an].value}if(ap.attributes[an].nodeValue){return ap.attributes[an].nodeValue}var am;var al=ap.attributes;if(!al){return}for(am=0;am1000){break}al++}},findPieceNode:function(am){var al;al=ac.findFirstNodeHavingAttribute(am,this.CONTENT_PIECE_ATTR);if(!al){al=ac.findFirstNodeHavingClass(am,this.CONTENT_PIECE_CLASS)}if(al){return al}return am},findTargetNodeNoDefault:function(al){if(!al){return}var am=ac.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_TARGET_ATTR); -if(am){return am}am=ac.findFirstNodeHavingAttribute(al,this.CONTENT_TARGET_ATTR);if(am){return am}am=ac.findFirstNodeHavingClass(al,this.CONTENT_TARGET_CLASS);if(am){return am}},findTargetNode:function(al){var am=this.findTargetNodeNoDefault(al);if(am){return am}return al},findContentName:function(am){if(!am){return}var ap=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_NAME_ATTR);if(ap){return ac.getAttributeValueFromNode(ap,this.CONTENT_NAME_ATTR)}var al=this.findContentPiece(am);if(al){return this.removeDomainIfIsInLink(al)}if(ac.hasNodeAttributeWithValue(am,"title")){return ac.getAttributeValueFromNode(am,"title")}var an=this.findPieceNode(am);if(ac.hasNodeAttributeWithValue(an,"title")){return ac.getAttributeValueFromNode(an,"title")}var ao=this.findTargetNode(am);if(ac.hasNodeAttributeWithValue(ao,"title")){return ac.getAttributeValueFromNode(ao,"title")}},findContentPiece:function(am){if(!am){return}var ao=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_PIECE_ATTR); -if(ao){return ac.getAttributeValueFromNode(ao,this.CONTENT_PIECE_ATTR)}var al=this.findPieceNode(am);var an=this.findMediaUrlInNode(al);if(an){return this.toAbsoluteUrl(an)}},findContentTarget:function(an){if(!an){return}var ao=this.findTargetNode(an);if(ac.hasNodeAttributeWithValue(ao,this.CONTENT_TARGET_ATTR)){return ac.getAttributeValueFromNode(ao,this.CONTENT_TARGET_ATTR)}var am;if(ac.hasNodeAttributeWithValue(ao,"href")){am=ac.getAttributeValueFromNode(ao,"href");return this.toAbsoluteUrl(am)}var al=this.findPieceNode(an);if(ac.hasNodeAttributeWithValue(al,"href")){am=ac.getAttributeValueFromNode(al,"href");return this.toAbsoluteUrl(am)}},isSameDomain:function(al){if(!al||!al.indexOf){return false}if(0===al.indexOf(this.getLocation().origin)){return true}var am=al.indexOf(this.getLocation().host);if(8>=am&&0<=am){return true}return false},removeDomainIfIsInLink:function(an){var am="^https?://[^/]+";var al="^.*//[^/]+";if(an&&an.search&&-1!==an.search(new RegExp(am))&&this.isSameDomain(an)){an=an.replace(new RegExp(al),""); -if(!an){an="/"}}return an},findMediaUrlInNode:function(ap){if(!ap){return}var an=["img","embed","video","audio"];var al=ap.nodeName.toLowerCase();if(-1!==M(an,al)&&ac.findFirstNodeHavingAttributeWithValue(ap,"src")){var ao=ac.findFirstNodeHavingAttributeWithValue(ap,"src");return ac.getAttributeValueFromNode(ao,"src")}if(al==="object"&&ac.hasNodeAttributeWithValue(ap,"data")){return ac.getAttributeValueFromNode(ap,"data")}if(al==="object"){var aq=ac.findNodesByTagName(ap,"param");if(aq&&aq.length){var am;for(am=0;am0}var am=ao.clientWidth;if(T.innerWidth&&am>T.innerWidth){am=T.innerWidth}var al=ao.clientHeight;if(T.innerHeight&&al>T.innerHeight){al=T.innerHeight}return((ap.bottom>0||an)&&ap.right>0&&ap.left=0){dd=dd.slice(0,dc)}dc=dd.lastIndexOf("/");if(dc!==dd.length-1){dd=dd.slice(0,dc+1)}return dd+db}function cB(dd,db){var dc;dd=String(dd).toLowerCase();db=String(db).toLowerCase();if(dd===db){return true}if(db.slice(0,1)==="."){if(dd===db.slice(1)){return true}dc=dd.length-db.length;if((dc>0)&&(dd.slice(dc)===db)){return true}}return false}function cg(db){var dc=document.createElement("a"); -if(db.indexOf("//")!==0&&db.indexOf("http")!==0){if(db.indexOf("*")===0){db=db.substr(1)}if(db.indexOf(".")===0){db=db.substr(1)}db="http://"+db}dc.href=v.toAbsoluteUrl(db);if(dc.pathname){return dc.pathname}return""}function aZ(dc,db){if(!ag(db,"/")){db="/"+db}if(!ag(dc,"/")){dc="/"+dc}var dd=(db==="/"||db==="/*");if(dd){return true}if(dc===db){return true}db=String(db).toLowerCase();dc=String(dc).toLowerCase();if(R(db,"*")){db=db.slice(0,-1);dd=(!db||db==="/");if(dd){return true}if(dc===db){return true}return dc.indexOf(db)===0}if(!R(dc,"/")){dc+="/"}if(!R(db,"/")){db+="/"}return dc.indexOf(db)===0}function ao(df,dh){var dc,db,dd,de,dg;for(dc=0;dc0)&&(de.slice(dd)===db)){return true}}}return false}function cl(db,dd){db=db.replace("send_image=0","send_image=1"); -var dc=new Image(1,1);dc.onload=function(){E=0;if(typeof dd==="function"){dd({request:db,trackerUrl:aA,success:true})}};dc.onerror=function(){if(typeof dd==="function"){dd({request:db,trackerUrl:aA,success:false})}};dc.src=aA+(aA.indexOf("?")<0?"?":"&")+db}function aG(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a2(de,di){var dd=aG();if(!dd){return false}var dh={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dg=false;var dc=aA;try{var db=new Blob([de],dh);if(de.length<=2000){db=new Blob([],dh);dc=dc+(dc.indexOf("?")<0?"?":"&")+de}dg=h.sendBeacon(dc,db)}catch(df){return false}if(dg&&typeof di==="function"){di({request:de,trackerUrl:aA,success:true,isSendBeacon:true})}return dg}function cY(dc,dd,db){if(!J(db)||null===db){db=true}if(m&&a2(dc,dd)){return}setTimeout(function(){if(m&&a2(dc,dd)){return}var dg;try{var df=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;df.open("POST",aA,true); -df.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dh=m&&a2(dc,dd);if(!dh&&db){cl(dc,dd)}else{if(typeof dd==="function"){dd({request:dc,trackerUrl:aA,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dd==="function")){dd({request:dc,trackerUrl:aA,success:true,xhr:this})}}};df.setRequestHeader("Content-Type",cs);df.send(dc)}catch(de){dg=m&&a2(dc,dd);if(!dg&&db){cl(dc,dd)}else{if(typeof dd==="function"){dd({request:dc,trackerUrl:aA,success:false})}}}},50)}function cb(dc){var db=new Date();var dd=db.getTime()+dc;if(!r||dd>r){r=dd}}function cj(db){if(b7||!a1||!bw){return}b7=setTimeout(function dc(){b7=null;if(!a8){a8=(!G.hasFocus||G.hasFocus())}if(!a8){cj(a1);return}if(bM()){return}var dd=new Date(),de=a1-(dd.getTime()-cS);de=Math.min(a1,de);cj(de)},db||a1)}function bF(){if(!b7){return}clearTimeout(b7);b7=null}function a6(){a8=true;if(bM()){return}cj()}function av(){bF()}function c8(){if(aK||!a1){return}aK=true;ak(T,"focus",a6);ak(T,"blur",av); -cj()}function cx(df){var dc=new Date();var db=dc.getTime();cS=db;if(cw&&db2000){cY(dc,dd)}else{cl(dc,dd)}cb(db)})}if(!aK){c8()}else{cj()}}function cf(db){if(cK){return false}return(db&&db.length)}function cX(db,df){if(!df||df>=db.length){return[db]}var dc=0;var dd=db.length;var de=[];for(dc;dc=dc&&db<=(dc+aV)){return true}}return false}function c9(db){if(!cH){return""}var df=f(db,ar);if(!df){return""}df=String(df);var dd=new RegExp("^[a-zA-Z0-9]+$");if(df.length===32&&dd.test(df)){var dc=df.substr(16,32);if(cW(dc)){var de=df.substr(0,16); -return de}}return""}function cI(){if(!bJ){bJ=c9(bI)}var dd=new Date(),db=Math.round(dd.getTime()/1000),dc=aP("id"),dg=az(dc),df,de;if(dg){df=dg.split(".");df.unshift("0");if(bJ.length){df[1]=bJ}return df}if(bJ.length){de=bJ}else{if("0"===b0()){de=""}else{de=cL()}}df=["1",de,db,0,db,"",""];return df}function aU(){var di=cI(),de=di[0],df=di[1],dc=di[2],db=di[3],dg=di[4],dd=di[5];if(!J(di[6])){di[6]=""}var dh=di[6];return{newVisitor:de,uuid:df,createTs:dc,visitCount:db,currentVisitTs:dg,lastVisitTs:dd,lastEcommerceOrderTs:dh}}function aD(){var de=new Date(),dc=de.getTime(),df=aU().createTs;var db=parseInt(df,10);var dd=(db*1000)+cD-dc;return dd}function aI(db){if(!b1){return}var dd=new Date(),dc=Math.round(dd.getTime()/1000);if(!J(db)){db=aU()}var de=db.uuid+"."+db.createTs+"."+db.visitCount+"."+dc+"."+db.lastVisitTs+"."+db.lastEcommerceOrderTs;c6(aP("id"),de,aD(),bk,cR,bN)}function bH(){var db=az(aP("ref"));if(db.length){try{db=JSON_PIWIK.parse(db);if(W(db)){return db}}catch(dc){}}return["","",0,""] -}function bT(dd,dc,db){c6(dd,"",-86400,dc,db)}function br(dc){var db="testvalue";c6("test",db,10000,null,dc);if(az("test")===db){bT("test",null,dc);return true}return false}function aB(){var dc=bg;bg=false;var db,dd;for(db=0;dbdB){ds.visitCount++;ds.lastVisitTs=ds.currentVisitTs}if(!bq||!dj.length){for(dy in cm){if(Object.prototype.hasOwnProperty.call(cm,dy)){dj=f(dC,cm[dy]);if(dj.length){break}}}for(dy in bB){if(Object.prototype.hasOwnProperty.call(bB,dy)){db=f(dC,bB[dy]);if(db.length){break}}}}dF=d(bi);dm=dx.length?d(dx):"";if(dF.length&&!aR(dF)&&(!bq||!dm.length||aR(dm))){dx=bi}if(dx.length||dj.length){di=dl;dw=[dj,db,di,bX(dx.slice(0,df))];c6(dt,JSON_PIWIK.stringify(dw),cZ,bk,cR)}}dd+="&idsite="+b1+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dc.getHours()+"&m="+dc.getMinutes()+"&s="+dc.getSeconds()+"&url="+t(bX(dC))+(bi.length?"&urlref="+t(bX(bi)):"")+((bt&&bt.length)?"&uid="+t(bt):"")+"&_id="+ds.uuid+"&_idts="+ds.createTs+"&_idvc="+ds.visitCount+"&_idn="+ds.newVisitor+(dj.length?"&_rcn="+t(dj):"")+(db.length?"&_rck="+t(db):"")+"&_refts="+di+"&_viewts="+ds.lastVisitTs+(String(ds.lastEcommerceOrderTs).length?"&_ects="+ds.lastEcommerceOrderTs:"")+(String(dx).length?"&_ref="+t(bX(dx.slice(0,df))):"")+(dp?"&cs="+t(dp):"")+"&send_image=0"; -for(dy in c1){if(Object.prototype.hasOwnProperty.call(c1,dy)){dd+="&"+dy+"="+c1[dy]}}var dE=[];if(dz){for(dy in dz){if(Object.prototype.hasOwnProperty.call(dz,dy)&&/^dimension\d+$/.test(dy)){var dh=dy.replace("dimension","");dE.push(parseInt(dh,10));dE.push(String(dh));dd+="&"+dy+"="+dz[dy];delete dz[dy]}}}if(dz&&B(dz)){dz=null}for(dy in bh){if(Object.prototype.hasOwnProperty.call(bh,dy)){var dn=(-1===M(dE,dy));if(dn){dd+="&dimension"+dy+"="+bh[dy]}}}if(dz){dd+="&data="+t(JSON_PIWIK.stringify(dz))}else{if(al){dd+="&data="+t(JSON_PIWIK.stringify(al))}}function dk(dG,dH){var dI=JSON_PIWIK.stringify(dG);if(dI.length>2){return"&"+dH+"="+t(dI)}return""}var dD=da(bR);var du=da(ch);dd+=dk(dD,"cvar");dd+=dk(du,"e_cvar");if(aM){dd+=dk(aM,"_cvar");for(dy in dv){if(Object.prototype.hasOwnProperty.call(dv,dy)){if(aM[dy][0]===""||aM[dy][1]===""){delete aM[dy]}}}if(bL){c6(dq,JSON_PIWIK.stringify(aM),ck,bk,cR)}}if(aY){if(ci){dd+=">_ms="+ci}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){dd+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) -}}}if(aH){dd+="&pv_id="+aH}ds.lastEcommerceOrderTs=J(de)&&String(de).length?de:ds.lastEcommerceOrderTs;aI(ds);b8();dd+=aa(dA,{tracker:bD,request:dd});if(cT.length){dd+="&"+cT}if(A(b6)){dd=b6(dd)}return dd}bM=function a3(){var db=new Date();if(cS+a1<=db.getTime()){var dc=co("ping=1",null,"ping");bA(dc,bE);return true}return false};function bl(de,dd,dj,df,db,dm){var dh="idgoal=0",di,dc=new Date(),dk=[],dl,dg=String(de).length;if(dg){dh+="&ec_id="+t(de);di=Math.round(dc.getTime()/1000)}dh+="&revenue="+dd;if(String(dj).length){dh+="&ec_st="+dj}if(String(df).length){dh+="&ec_tx="+df}if(String(db).length){dh+="&ec_sh="+db}if(String(dm).length){dh+="&ec_dt="+dm}if(cU){for(dl in cU){if(Object.prototype.hasOwnProperty.call(cU,dl)){if(!J(cU[dl][1])){cU[dl][1]=""}if(!J(cU[dl][2])){cU[dl][2]=""}if(!J(cU[dl][3])||String(cU[dl][3]).length===0){cU[dl][3]=0}if(!J(cU[dl][4])||String(cU[dl][4]).length===0){cU[dl][4]=1}dk.push(cU[dl])}}dh+="&ec_items="+t(JSON_PIWIK.stringify(dk))}dh=co(dh,al,"ecommerce",di); -bA(dh,bE);if(dg){cU={}}}function bU(db,df,de,dd,dc,dg){if(String(db).length&&J(df)){bl(db,df,de,dd,dc,dg)}}function bn(db){if(J(db)){bl("",db,"","","","")}}function bV(dc,de,dd){aH=bc();var db=co("action_name="+t(ai(dc||be)),de,"log");bA(db,bE,dd)}function aW(dd,dc){var de,db="(^| )(piwik[_-]"+dc;if(dd){for(de=0;de0){dc+="&"}else{dc+="?"}var dd=bm();dc=F(dc,ar,dd);ac.setAnyAttribute(db,"href",dc)}function ax(de){var df=ac.getAttributeValueFromNode(de,"href");if(!df){return false}df=String(df);var dc=df.indexOf("//")===0||df.indexOf("http://")===0||df.indexOf("https://")===0;if(!dc){return false}var db=de.pathname||cg(de.href);var dd=(de.hostname||d(de.href)).toLowerCase();if(ao(dd,db)){if(!cB(cO,L(dd))){return true}return false}return false}function cA(db){var dc=c5(db);if(dc&&dc.type){dc.href=p(dc.href);cV(dc.href,dc.type,undefined,null,db);return}if(cH){db=aq(db);if(ax(db)){ce(db)}}}function cr(){return G.all&&!G.addEventListener}function cP(db){var dd=db.which;var dc=(typeof db.button);if(!dd&&dc!=="undefined"){if(cr()){if(db.button&1){dd=1}else{if(db.button&2){dd=3}else{if(db.button&4){dd=2}}}}else{if(db.button===0||db.button==="0"){dd=1}else{if(db.button&1){dd=2}else{if(db.button&2){dd=3}}}}}return dd}function bO(db){switch(cP(db)){case 1:return"left"; -case 2:return"middle";case 3:return"right"}}function aX(db){return db.target||db.srcElement}function ay(db){return function(de){de=de||T.event;var dd=bO(de);var df=aX(de);if(de.type==="click"){var dc=false;if(db&&dd==="middle"){dc=true}if(df&&!dc){cA(df)}}else{if(de.type==="mousedown"){if(dd==="middle"&&df){aN=dd;bv=df}else{aN=bv=null}}else{if(de.type==="mouseup"){if(dd===aN&&df===bv){cA(df)}aN=bv=null}else{if(de.type==="contextmenu"){cA(df)}}}}}}function an(dd,dc){var db=typeof dc;if(db==="undefined"){dc=true}ak(dd,"click",ay(dc),false);if(dc){ak(dd,"mouseup",ay(dc),false);ak(dd,"mousedown",ay(dc),false);ak(dd,"contextmenu",ay(dc),false)}}function by(dd,df){am=true;var de,dc=aW(bu,"ignore"),dg=G.links,db=null,dh=null;if(dg){for(de=0;de0){df=parseInt(df,10);di(df)}})}function cz(){var dc,de,df={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dc in df){if(Object.prototype.hasOwnProperty.call(df,dc)){de=h.mimeTypes[df[dc]];c1[dc]=(de&&de.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c1.java="1" -}if(A(T.GearsFactory)){c1.gears="1"}c1.cookie=b0()}var dd=parseInt(X.width,10);var db=parseInt(X.height,10);c1.res=parseInt(dd,10)+"x"+parseInt(db,10)}var bx={enabled:true,requests:[],timeout:null,sendRequests:function(){var db=this.requests;this.requests=[];if(db.length===1){bA(db[0],bE)}else{c7(db,bE)}},push:function(db){if(!db){return}if(m||!this.enabled){bA(db,bE);return}bx.requests.push(db);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bx.timeout=null;bx.sendRequests()},1750);var dc="RequestQueue"+at;if(!Object.prototype.hasOwnProperty.call(b,dc)){b[dc]={unload:function(){if(bx.timeout){clearTimeout(bx.timeout)}bx.sendRequests()}}}}};cz();bd();aI();this.getVisitorId=function(){return aU().uuid};this.getVisitorInfo=function(){return cI()};this.getAttributionInfo=function(){return bH()};this.getAttributionCampaignName=function(){return bH()[0]};this.getAttributionCampaignKeyword=function(){return bH()[1]};this.getAttributionReferrerTimestamp=function(){return bH()[2] -};this.getAttributionReferrerUrl=function(){return bH()[3]};this.setTrackerUrl=function(db){aA=db};this.getTrackerUrl=function(){return aA};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bC)};this.addTracker=function(db,dd){if(!dd){throw new Error("A siteId must be given to add a new tracker")}if(!J(db)||null===db){db=this.getTrackerUrl()}var dc=new Q(db,dd);I.push(dc);e.trigger("TrackerAdded",[this]);return dc};this.getSiteId=function(){return b1};this.setSiteId=function(db){bY(db)};this.resetUserId=function(){bt=""};this.setUserId=function(db){if(!J(db)||!db.length){return}bt=db};this.getUserId=function(){return bt};this.setCustomData=function(db,dc){if(W(db)){al=db}else{if(!al){al={}}al[db]=dc}};this.getCustomData=function(){return al};this.setCustomRequestProcessing=function(db){b6=db};this.appendToTrackingUrl=function(db){cT=db};this.getRequest=function(db){return co(db)};this.addPlugin=function(db,dc){b[db]=dc};this.setCustomDimension=function(db,dc){db=parseInt(db,10); -if(db>0){if(!J(dc)){dc=""}if(!w(dc)){dc=String(dc)}bh[db]=dc}};this.getCustomDimension=function(db){db=parseInt(db,10);if(db>0&&Object.prototype.hasOwnProperty.call(bh,db)){return bh[db]}};this.deleteCustomDimension=function(db){db=parseInt(db,10);if(db>0){delete bh[db]}};this.setCustomVariable=function(dc,db,df,dd){var de;if(!J(dd)){dd="visit"}if(!J(db)){return}if(!J(df)){df=""}if(dc>0){db=!w(db)?String(db):db;df=!w(df)?String(df):df;de=[db.slice(0,bo),df.slice(0,bo)];if(dd==="visit"||dd===2){cy();aM[dc]=de}else{if(dd==="page"||dd===3){bR[dc]=de}else{if(dd==="event"){ch[dc]=de}}}}};this.getCustomVariable=function(dc,dd){var db;if(!J(dd)){dd="visit"}if(dd==="page"||dd===3){db=bR[dc]}else{if(dd==="event"){db=ch[dc]}else{if(dd==="visit"||dd===2){cy();db=aM[dc]}}}if(!J(db)||(db&&db[0]==="")){return false}return db};this.deleteCustomVariable=function(db,dc){if(this.getCustomVariable(db,dc)){this.setCustomVariable(db,"","",dc)}};this.deleteCustomVariables=function(db){if(db==="page"||db===3){bR={} -}else{if(db==="event"){ch={}}else{if(db==="visit"||db===2){aM={}}}}};this.storeCustomVariablesInCookie=function(){bL=true};this.setLinkTrackingTimer=function(db){bE=db};this.getLinkTrackingTimer=function(){return bE};this.setDownloadExtensions=function(db){if(w(db)){db=db.split("|")}c0=db};this.addDownloadExtensions=function(dc){var db;if(w(dc)){dc=dc.split("|")}for(db=0;db1&&am!=="addTracker"){ah("The method "+am+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}ar[am]++ -}}}}return aq}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ab(al,an){var am=new Q(al,an);I.push(am);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){ad(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[am]);return am}ak(T,"beforeunload",af,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ao,an,am,al){var ap=typeof al;if(ap==="undefined"){al=false}ak(ao,an,am,al)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(am,al){if(!y[am]){y[am]=[]}y[am].push(al)},off:function(an,am){if(!y[an]){return}var al=0;for(al;al