(function(a,c,b){if(typeofdefine==="function"&&define.amd){define(b)}else{if(typeofmodule!=="undefined"&&module.exports){module.exports=b()}else{if(c.exports){c.exports=b()}else{c[a]=b()}}}})("Fingerprint2",this,function(){if(!Array.prototype.indexOf){Array.prototype.indexOf=function(searchElement,fromIndex){vark;if(this==null){thrownewTypeError("'this' is null or undefined")}varO=Object(this);varlen=O.length>>>0;if(len===0){return-1}varn=+fromIndex||0;if(Math.abs(n)===Infinity){n=0}if(n>=len){return-1}k=Math.max(n>=0?n:len-Math.abs(n),0);while(k<len){if(kinO&&O[k]===searchElement){returnk}k++}return-1}}varFingerprint2=function(options){if(!(thisinstanceofFingerprint2)){returnnewFingerprint2(options)}vardefaultOptions={swfContainerId:"fingerprintjs2",swfPath:"flash/compiled/FontList.swf",detectScreenOrientation:true,sortPluginsFor:[/palemoon/i],userDefinedFonts:[]};this.options=this.extend(options,defaultOptions);this.nativeForEach=Array.prototype.forEach;this.nativeMap=Array.prototype.map};Fingerprint2.prototype={extend:function(source,target){if(source==null){returntarget}for(varkinsource){if(source[k]!=null&&target[k]!==source[k]){target[k]=source[k]}}returntarget},log:function(msg){if(window.console){console.log(msg)}},get:function(done){varkeys=[];keys=this.userAgentKey(keys);keys=this.languageKey(keys);keys=this.colorDepthKey(keys);keys=this.pixelRatioKey(keys);keys=this.hardwareConcurrencyKey(keys);keys=this.screenResolutionKey(keys);keys=this.availableScreenResolutionKey(keys);keys=this.timezoneOffsetKey(keys);keys=this.sessionStorageKey(keys);keys=this.localStorageKey(keys);keys=this.indexedDbKey(keys);keys=this.addBehaviorKey(keys);keys=this.openDatabaseKey(keys);keys=this.cpuClassKey(keys);keys=this.platformKey(keys);keys=this.doNotTrackKey(keys);keys=this.pluginsKey(keys);keys=this.canvasKey(keys);keys=this.webglKey(keys);keys=this.adBlockKey(keys);keys=this.hasLiedLanguagesKey(keys);keys=this.hasLiedResolutionKey(keys);keys=this.hasLiedOsKey(keys);keys=this.hasLiedBrowserKey(keys);keys=this.touchSupportKey(keys);varthat=this;this.fontsKey(keys,function(newKeys){varvalues=[];that.each(newKeys,function(pair){varvalue=pair.value;if(typeofpair.value.join!=="undefined"){value=pair.value.join(";")}values.push(value)});varmurmur=that.x64hash128(values.join("~~~"),31);returndone(murmur,newKeys)})},userAgentKey:function(keys){if(!this.options.excludeUserAgent){keys.push({key:"user_agent",value:this.getUserAgent()})}returnkeys},getUserAgent:function(){returnnavigator.userAgent},languageKey:function(keys){if(!this.options.excludeLanguage){keys.push({key:"language",value:navigator.language||navigator.userLanguage||navigator.browserLanguage||navigator.systemLanguage||""})}returnkeys},colorDepthKey:function(keys){if(!this.options.excludeColorDepth){keys.push({key:"color_depth",value:screen.colorDepth||-1})}returnkeys},pixelRatioKey:function(keys){if(!this.options.excludePixelRatio){keys.push({key:"pixel_ratio",value:this.getPixelRatio()})}returnkeys},getPixelRatio:function(){returnwindow.devicePixelRatio||""},screenResolutionKey:function(keys){if(!this.options.excludeScreenResolution){returnthis.getScreenResolution(keys)}returnkeys},getScreenResolution:function(keys){varresolution;if(this.options.detectScreenOrientation){resolution=(screen.height>screen.width)?[screen.height,screen.width]:[screen.width,screen.height]}else{resolution=[screen.width,screen.height]}if(typeofresolution!=="undefined"){keys.push({key:"resolution",value:resolution})}returnkeys},availableScreenResolutionKey:function(keys){if(!this.options.excludeAvailableScreenResolution){returnthis.getAvailableScreenResolution(keys)}returnkeys},getAvailableScreenResolution:function(keys){varavailable;if(screen.availWidth&&screen.availHeight){if(this.options.detectScreenOrientation){available=(screen.availHeight>screen.availWidth)?[screen.availHeight,screen.availWidth]:[screen.availWidth,screen.availHeight]}else{available=[screen.availHeight,screen.availWidth]}}if(typeofavailable!=="undefined"){keys.push({key:"availa