PageSourceSearch

https://lepeupledurock.com/_static/??-eJyNjs1OAzEMhF+IxCyl0D0gHqXK…yYUtdGP35NX4VAX89fod3obXnfbcTNux5fpEwIWm6Y=

js lepeupledurock.com collected 2026-09-25 11:20:03 UTC 22,689 bytes, 521 lines download raw bytes

1!function(e){var o={};function n(t){if(o[t])return o[t].exports;var r=o[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=o,n.d=function(e,o,t){n.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:t})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,o){if(1&o&&(e=n(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var r in e)n.d(t,r,function(o){return e[o]}.bind(null,r));return t},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,"a",o),o},n.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},n.p="",n(n.s=273)}({273:function(e,o){!function(){"use strict";let e,o;function n(e){return new Promise((o,n)=>{const t=document.createElement("script");t.onload=()=>o(),t.onerror=e=>n(e),t.src=e,document.body.appendChild(t)})}function t(){if(e)return e;const o=window.wpcom_coblocks_js;return e=n(o.coblocks_lightbox_js),e}function r(){if(o)return o;window.wpcomJQueryUsageLoggerDisabled=!0;const e=window.wpcom_coblocks_js,t=window.jQuery?Promise.resolve():n(e.jquery_core_js).then(()=>n(e.jquery_migrate_js)),r=t.then(()=>window.imagesLoaded?Promise.resolve():n(e.imagesloaded_js)),c=t.then(()=>window.Masonry?Promise.resolve():n(e.masonry_js)),u=Promise.all([t,r,c]).then(()=>n(e.coblocks_masonry_js));return o=u,o}function c(){document.querySelector(".wp-block-coblocks-gallery-masonry")&&r(),document.querySelector(".has-lightbox")&&t(),document.body.classList.contains("block-editor-page")&&(r(),t())}"loading"!==document.readyState?c():document.addEventListener("DOMContentLoaded",c)}()}});;
2/**
3 * Handles toggling the main navigation menu for small screens.
4 */
5jQuery( document ).ready( function( $ ) {
6	var $masthead = $( '.site' ),
7	    timeout = false;
8
9	$.fn.smallMenu = function() {
10		$masthead.find( '.site-navigation' ).removeClass( 'main-navigation' ).addClass( 'main-small-navigation' );
11		$masthead.find( '.site-navigation h1' ).removeClass( 'assistive-text' ).addClass( 'menu-toggle' );
12
13		$( '.menu-toggle' ).unbind( 'click' ).click( function() {
14			$masthead.find( '.menu' ).toggle();
15			$( this ).toggleClass( 'toggled-on' );
16		} );
17	};
18
19	// Check viewport width on first load.
20	if ( $( window ).width() < 600 )
21		$.fn.smallMenu();
22
23	// Check viewport width when user resizes the browser window.
24	$( window ).resize( function() {
25		var browserWidth = $( window ).width();
26
27		if ( false !== timeout )
28			clearTimeout( timeout );
29
30		timeout = setTimeout( function() {
31			if ( browserWidth < 600 ) {
32				$.fn.smallMenu();
33			} else {
34				$masthead.find( '.site-navigation' ).removeClass( 'main-small-navigation' ).addClass( 'main-navigation' );
35				$masthead.find( '.site-navigation h1' ).removeClass( 'menu-toggle' ).addClass( 'assistive-text' );
36				$masthead.find( '.menu' ).removeAttr( 'style' );
37			}
38		}, 200 );
39	} );
40	var container = $( '.site-navigation' );
41
42	// Fix child menus for touch devices.
43	function fixMenuTouchTaps( container ) {
44		var touchStartFn,
45		    parentLink = container.find( '.menu-item-has-children > a, .page_item_has_children > a' );
46
47		if ( 'ontouchstart' in window ) {
48			touchStartFn = function( e ) {
49				var menuItem = this.parentNode;
50
51				if ( ! menuItem.classList.contains( 'focus' ) ) {
52					e.preventDefault();
53					for( var i = 0; i < menuItem.parentNode.children.length; ++i ) {
54						if ( menuItem === menuItem.parentNode.children[i] ) {
55							continue;
56						}
57						menuItem.parentNode.children[i].classList.remove( 'focus' );
58					}
59					menuItem.classList.add( 'focus' );
60				} else {
61					menuItem.classList.remove( 'focus' );
62				}
63			};
64
65			for ( var i = 0; i < parentLink.length; ++i ) {
66				parentLink[i].addEventListener( 'touchstart', touchStartFn, false )
67			}
68		}
69	}
70
71	fixMenuTouchTaps( container );
72} );;
73/*! This file is auto-generated */
74window.addComment=function(v){var I,C,h,E=v.document,b={commentReplyClass:"comment-reply-link",commentReplyTitleId:"reply-title",cancelReplyId:"cancel-comment-reply-link",commentFormId:"commentform",temporaryFormId:"wp-temp-form-div",parentIdFieldId:"comment_parent",postIdFieldId:"comment_post_ID"},e=v.MutationObserver||v.WebKitMutationObserver||v.MozMutationObserver,i="querySelector"in E&&"addEventListener"in v,n=!!E.documentElement.dataset;function t(){o(),e&&new e(d).observe(E.body,{childList:!0,subtree:!0})}function o(e){if(i&&(I=g(b.cancelReplyId),C=g(b.commentFormId),I)){I.addEventListener("click",l);function t(e){if((e.metaKey||e.ctrlKey)&&13===e.keyCode&&"a"!==E.activeElement.tagName.toLowerCase())return C.removeEventListener("keydown",t),e.preventDefault(),C.submit.click(),!1}C&&C.addEventListener("keydown",t);for(var n=function(e){var t=b.commentReplyClass;e&&e.childNodes||(e=E);e=E.getElementsByClassName?e.getElementsByClassName(t):e.querySelectorAll("."+t);return e}(e),o=0,d=n.length;o<d;o++)n[o].addEventListener("click",r)}}function l(e){var t,n,o=g(b.temporaryFormId);
74o&&h&&(g(b.parentIdFieldId).value="0",t=o.textContent,o.parentNode.replaceChild(h,o),this.style.display="none",n=(o=(o=g(b.commentReplyTitleId))&&o.firstChild)&&o.nextSibling,o&&o.nodeType===Node.TEXT_NODE&&t&&(n&&"A"===n.nodeName&&n.id!==b.cancelReplyId&&(n.style.display=""),o.textContent=t),e.preventDefault())}function r(e){var t=g(b.commentReplyTitleId),t=t&&t.firstChild.textContent,n=this,o=a(n,"belowelement"),d=a(n,"commentid"),i=a(n,"respondelement"),l=a(n,"postid"),n=a(n,"replyto")||t;o&&d&&i&&l&&!1===v.addComment.moveForm(o,d,i,l,n)&&e.preventDefault()}function d(e){for(var t=e.length;t--;)if(e[t].addedNodes.length)return void o()}function a(e,t){return n?e.dataset[t]:e.getAttribute("data-"+t)}function g(e){return E.getElementById(e)}return i&&"loading"!==E.readyState?t():i&&v.addEventListener("DOMContentLoaded",t,!1),{init:o,moveForm:function(e,t,n,o,d){var i,l,r,a,m,c,s,e=g(e),n=(h=g(n),g(b.parentIdFieldId)),y=g(b.postIdFieldId),p=g(b.commentReplyTitleId),u=(p=p&&p.firstChild)&&p.nextSibling;if(e&&h&&n){void 0===d&&(d=p&&p.textContent),a=h,m=b.temporaryFormId,c=g(m),s=(s=g(b.commentReplyTitleId))?s.firstChild.textContent:"",c||((c=E.createElement("div")).id=m,c.style.display="none",c.textContent=s,a.parentNode.insertBefore(c,a)),o&&y&&(y.value=o),n.value=t,I.style.display="",e.parentNode.insertBefore(h,e.nextSibling),p&&p.nodeType===Node.TEXT_NODE&&(u&&"A"===u.nodeName&&u.id!==b.cancelReplyId&&(u.style.display="none"),p.textContent=d),I.onclick=function(){return!1};try{for(var f=0;f<C.elements.length;f++)if(i=C.elements[f],l=!1,"getComputedStyle"in v?r=v.getComputedStyle(i):E.documentElement.currentStyle&&(r=i.currentStyle),(i.offsetWidth<=0&&i.offsetHeight<=0||"hidden"===r.visibility)&&(l=!0),"hidden"!==i.type&&!i.disabled&&!l){i.focus();break}}catch(e){}return!1}}}}(window);;
75/* global FB, jpfbembed */
76( function ( window ) {
77	var facebookEmbed = function () {
78		var fbroot, src, newScript, firstScript;
79
80		if ( 'undefined' !== typeof FB && FB.XFBML ) {
81			FB.XFBML.parse();
82		} else {
83			fbroot = document.createElement( 'div' );
84			fbroot.id = 'fb-root';
85			document.getElementsByTagName( 'body' )[ 0 ].appendChild( fbroot );
86
87			src = '//connect.facebook.net/' + jpfbembed.locale + '/sdk.js#xfbml=1';
88			if ( jpfbembed.appid ) {
89				src += '&appId=' + jpfbembed.appid;
90			}
91			src += '&version=v2.3';
92
93			newScript = document.createElement( 'script' );
94			newScript.setAttribute( 'src', src );
95			firstScript = document.querySelector( 'script' );
96			firstScript.parentNode.insertBefore( newScript, firstScript );
97		}
98	};
99
100	window.fbAsyncInit = function () {
101		FB.init( {
102			appId: jpfbembed.appid,
103			version: 'v2.3',
104		} );
105
106		FB.XFBML.parse();
107	};
108
109	if ( 'undefined' !== typeof infiniteScroll ) {
110		document.body.addEventListener( 'post-load', facebookEmbed );
111	}
112
113	facebookEmbed();
114} )( window );
115;
116!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JetpackScriptDataModule=t():e.JetpackScriptDataModule=t()}(globalThis,()=>(()=>{"use strict";var e={729(e,t,r){r.d(t,{$8:()=>n.$8,IT:()=>n.IT,KS:()=>n.KS,L2:()=>n.L2,Sy:()=>n.Sy,au:()=>n.au,d_:()=>n.d_,e5:()=>n.e5,hT:()=>n.hT,lI:()=>n.lI,mH:()=>n.mH,oQ:()=>n.oQ,sV:()=>n.sV});var n=r(336)},336(e,t,r){function n(){return window.JetpackScriptData}function o(){return n()?.site}function i(e=""){return`${n()?.site.admin_url}${e}`}function a(e=""){return i(`admin.php?page=jetpack${e}`)}function u(e=""){return i(`admin.php?page=my-jetpack${e}`)}function p(){return n()?.site.plan?.features?.active??[]}function c(e){return-1!==p().indexOf(e)}function s(){return"wpcom"===n()?.site?.host}function f(){return"woa"===n()?.site?.host}function d(){return n()?.site?.is_wpcom_platform}function l(){return"unknown"===n()?.site?.host}function S(){return s()?"simple":f()?"woa":"jetpack"}function m(e){return n()?.user.current_user.capabilities[e]}r.d(t,{$8:()=>d,IT:()=>c,KS:()=>S,L2:()=>l,Sy:()=>s,au:()=>n,d_:()=>m,e5:()=>u,hT:()=>i,lI:()=>f,mH:()=>p,oQ:()=>a,sV:()=>o})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}
116),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{currentUserCan:()=>o.d_,getActiveFeatures:()=>o.mH,getAdminUrl:()=>o.hT,getJetpackAdminPageUrl:()=>o.oQ,getMyJetpackUrl:()=>o.e5,getScriptData:()=>o.au,getSiteData:()=>o.sV,getSiteType:()=>o.KS,isJetpackSelfHostedSite:()=>o.L2,isSimpleSite:()=>o.Sy,isWoASite:()=>o.lI,isWpcomPlatformSite:()=>o.$8,siteHasFeature:()=>o.IT});var o=r(729);return n})());;
117/**
118 * Observe how the user enters content into the comment form in order to determine whether it's a bot or not.
119 *
120 * Note that no actual input is being saved here, only counts and timings between events.
121 */
122
123( function() {
124	// Passive event listeners are guaranteed to never call e.preventDefault(),
125	// but they're not supported in all browsers.  Use this feature detection
126	// to determine whether they're available for use.
127	var supportsPassive = false;
128
129	try {
130		var opts = Object.defineProperty( {}, 'passive', {
131			get : function() {
132				supportsPassive = true;
133			}
134		} );
135
136		window.addEventListener( 'testPassive', null, opts );
137		window.removeEventListener( 'testPassive', null, opts );
138	} catch ( e ) {}
139
140	function init() {
141		var input_begin = '';
142
143		var keydowns = {};
144		var lastKeyup = null;
145		var lastKeydown = null;
146		var keypresses = [];
147
148		var modifierKeys = [];
149		var correctionKeys = [];
150
151		var lastMouseup = null;
152		var lastMousedown = null;
153		var mouseclicks = [];
154		var mouseclickCoordinates = [];
155
156		var mousemoveTimer = null;
157		var lastMousemoveX = null;
158		var lastMousemoveY = null;
159		var lastMousemoveTime = null;
160		var mousemoveStart = null;
161		var mousemoves = [];
162		var intervalsBetweenMousemovesAndClicks = [];
163
164		var touchmoveCountTimer = null;
165		var touchmoveCount = 0;
166
167		var lastTouchEnd = null;
168		var lastTouchStart = null;
169		var touchEvents = [];
170
171		var scrollCountTimer = null;
172		var scrollCount = 0;
173
174		var correctionKeyCodes = [ 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown' ];
175		var modifierKeyCodes = [ 'Shift', 'CapsLock' ];
176
177		var forms = document.querySelectorAll( 'form[method=post]' );
178
179		for ( var i = 0; i < forms.length; i++ ) {
180			var form = forms[i];
181
182			var formAction = form.getAttribute( 'action' );
183
184			// Ignore forms that POST directly to other domains; these could be things like payment forms.
185			if ( formAction ) {
186				// Check that the form is posting to an external URL, not a path.
187				if ( formAction.indexOf( 'http://' ) == 0 || formAction.indexOf( 'https://' ) == 0 ) {
188					if ( formAction.indexOf( 'http://' + window.location.hostname + '/' ) != 0 && formAction.indexOf( 'https://' + window.location.hostname + '/' ) != 0 ) {
189						continue;
190					}
191				}
192			}
193
194			form.addEventListener( 'submit', function () {
195				var ak_bkp = prepare_array_for_request( keypresses );
196				var ak_bmc = prepare_array_for_request( mouseclicks );
197				var ak_bte = prepare_array_for_request( touchEvents );
198				var ak_bmm = prepare_array_for_request( mousemoves );
199				var ak_bcc = prepare_array_for_request( mouseclickCoordinates );
200				var ak_bibmac = intervalsBetweenMousemovesAndClicks.slice( 0, 100 ).join( ';' );
201
202				var input_fields = {
203					// When did the user begin entering any input?
204					'bib': input_begin,
205
206					// When was the form submitted?
207					'bfs': Date.now(),
208
209					// How many keypresses did they make?
210					'bkpc': keypresses.length,
211
212					// How quickly did they press a sample of keys, and how long between them?
213					'bkp': ak_bkp,
214
215					// How quickly did they click the mouse, and how long between clicks?
216					'bmc': ak_bmc,
217
218					// How many mouseclicks did they make?
219					'bmcc': mouseclicks.length,
220
221					// When did they press modifier keys (like Shift or Capslock)?
222					'bmk': modifierKeys.join( ';' ),
223
224					// When did they correct themselves? e.g., press Backspace, or use the arrow keys to move the cursor back
225					'bck': correctionKeys.join( ';' ),
226
227					// How many times did they move the mouse?
228					'bmmc': mousemoves.length,
229
230					// How many times did they move around using a touchscreen?
231					'btmc': touchmoveCount,
232
233					// How many times did they scroll?
234					'bsc': scrollCount,
235
236					// How quickly did they perform touch events, and how long between them?
237					'bte': ak_bte,
238
239					// How many touch events were there?
240					'btec' : touchEvents.length,
241
242					// How quickly did they move the mouse, and how long between moves?
243					'bmm' : ak_bmm,
244
245					// Click coordinates
246					'bcc' : ak_bcc,
247
248					// Milliseconds between last mouse movement and each click
249					'bibmac' : ak_bibmac
250				};
251
252				var akismet_field_prefix = 'ak_';
253
254				if ( this.getElementsByClassName ) {
255					// Check to see if we've used an alternate field name prefix. We store this as an attribute of the container around some of the Akismet fields.
256					var possible_akismet_containers = this.getElementsByClassName( 'akismet-fields-container' );
257
258					for ( var containerIndex = 0; containerIndex < possible_akismet_containers.length; containerIndex++ ) {
259						var container = possible_akismet_containers.item( containerIndex );
260
261						if ( container.getAttribute( 'data-prefix' ) ) {
262							akismet_field_prefix = container.getAttribute( 'data-prefix' );
263							break;
264						}
265					}
266				}
267
268				for ( var field_name in input_fields ) {
269					var field = document.createElement( 'input' );
270					field.setAttribute( 'type', 'hidden' );
271					field.setAttribute( 'name', akismet_field_prefix + field_name );
272					field.setAttribute( 'value', input_fields[ field_name ] );
273					this.appendChild( field );
274				}
275			}, supportsPassive ? { passive: true } : false  );
276
277			form.addEventListener( 'keydown', function ( e ) {
278				// If you hold a key down, some browsers send multiple keydown events in a row.
279				// Ignore any keydown events for a key that hasn't come back up yet.
280				if ( e.key in keydowns ) {
281					return;
282				}
283
284				var keydownTime = ( new Date() ).getTime();
285				keydowns[ e.key ] = [ keydownTime ];
286
287				if ( ! input_begin ) {
288					input_begin = keydownTime;
289				}
290
291				// In some situations, we don't want to record an interval since the last keypress -- for example,
292				// on the first keypress, or on a keypress after focus has changed to another element. Normally,
293				// we want to record the time between the last keyup and this keydown. But if they press a
294				// key while already pressing a key, we want to record the time between the two keydowns.
295
296				var lastKeyEvent = Math.max( lastKeydown, lastKeyup );
297
298				if ( lastKeyEvent ) {
299					keydowns[ e.key ].push( keydownTime - lastKeyEvent );
300				}
301
302				lastKeydown = keydownTime;
303			}, supportsPassive ? { passive: true } : false  );
304
305			form.addEventListener( 'keyup', function ( e ) {
306				if ( ! ( e.key in keydowns ) ) {
307					// This key was pressed before this script was loaded, or a mouseclick happened during the keypress, or...
308					return;
309				}
310
311				var keyupTime = ( new Date() ).getTime();
312
313				if ( 'TEXTAREA' === e.target.nodeName || 'INPUT' === e.target.nodeName ) {
314					if ( -1 !== modifierKeyCodes.indexOf( e.key ) ) {
315						modifierKeys.push( keypresses.length - 1 );
316					} else if ( -1 !== correctionKeyCodes.indexOf( e.key ) ) {
317						correctionKeys.push( keypresses.length - 1 );
318					} else {
319						// ^ Don't record timings for keys like Shift or backspace, since they
320						// typically get held down for longer than regular typing.
321
322						var keydownTime = keydowns[ e.key ][0];
323
324						var keypress = [];
325
326						// Keypress duration.
327						keypress.push( keyupTime - keydownTime );
328
329						// Amount of time between this keypress and the previous keypress.
330						if ( keydowns[ e.key ].length > 1 ) {
331							keypress.push( keydowns[ e.key ][1] );
332						}
333
334						keypresses.push( keypress );
335					}
336				}
337
338				delete keydowns[ e.key ];
339
340				lastKeyup = keyupTime;
341			}, supportsPassive ? { passive: true } : false  );
342
343			form.addEventListener( "focusin", function ( e ) {
344				lastKeydown = null;
345				lastKeyup = null;
346				keydowns = {};
347			}, supportsPassive ? { passive: true } : false  );
348
349			form.addEventListener( "focusout", function ( e ) {
350				lastKeydown = null;
351				lastKeyup = null;
352				keydowns = {};
353			}, supportsPassive ? { passive: true } : false  );
354		}
355
356		document.addEventListener( 'mousedown', function ( e ) {
357			lastMousedown = ( new Date() ).getTime();
358
359			if ( lastMousemoveTime ) {
360				intervalsBetweenMousemovesAndClicks.push( lastMousedown - lastMousemoveTime );
361			}
362
363			var mouseclickCoordinate = [];
364
365			var rect = e.target.getBoundingClientRect();
366			var relativeX = e.clientX - rect.left;
367			var relativeY = e.clientY - rect.top;
368
369			// Pixel offset of the click within the target element.
370			mouseclickCoordinate.push( Math.round( relativeX ) );
371			mouseclickCoordinate.push( Math.round( relativeY ) );
372
373			// Percentage offset of the click within the target element.
374			mouseclickCoordinate.push( rect.width > 0 ? Math.round( relativeX / rect.width * 100 ) : 0 );
375			mouseclickCoordinate.push( rect.height > 0 ? Math.round( relativeY / rect.height * 100 ) : 0 );
376
377			mouseclickCoordinates.push( mouseclickCoordinate );
378		}, supportsPassive ? { passive: true } : false  );
379
380		document.addEventListener( 'mouseup', function ( e ) {
381			if ( ! lastMousedown ) {
382				// If the mousedown happened before this script was loaded, but the mouseup happened after...
383				return;
384			}
385
386			var now = ( new Date() ).getTime();
387
388			var mouseclick = [];
389			mouseclick.push( now - lastMousedown );
390
391			if ( lastMouseup ) {
392				mouseclick.push( lastMousedown - lastMouseup );
393			}
394
395			mouseclicks.push( mouseclick );
396
397			lastMouseup = now;
398
399			// If the mouse has been clicked, don't record this time as an interval between keypresses.
400			lastKeydown = null;
401			lastKeyup = null;
402			keydowns = {};
403		}, supportsPassive ? { passive: true } : false  );
404
405		document.addEventListener( 'mousemove', function ( e ) {
406			lastMousemoveTime = ( new Date() ).getTime();
407
408			if ( mousemoveTimer ) {
409				clearTimeout( mousemoveTimer );
410				mousemoveTimer = null;
411			}
412			else {
413				mousemoveStart = lastMousemoveTime;
414				lastMousemoveX = e.offsetX;
415				lastMousemoveY = e.offsetY;
416			}
417
418			mousemoveTimer = setTimeout( function ( theEvent, originalMousemoveStart ) {
419				var now = ( new Date() ).getTime() - 500; // To account for the timer delay.
420
421				var mousemove = [];
422				mousemove.push( now - originalMousemoveStart );
423				mousemove.push(
424					Math.round(
425						Math.sqrt(
426							Math.pow( theEvent.offsetX - lastMousemoveX, 2 ) +
427							Math.pow( theEvent.offsetY - lastMousemoveY, 2 )
428						)
429					)
430				);
431
432				if ( mousemove[1] > 0 ) {
433					// If there was no measurable distance, then it wasn't really a move.
434					mousemoves.push( mousemove );
435				}
436
437				mousemoveStart = null;
438				mousemoveTimer = null;
439			}, 500, e, mousemoveStart );
440		}, supportsPassive ? { passive: true } : false  );
441
442		document.addEventListener( 'touchmove', function ( e ) {
443			if ( touchmoveCountTimer ) {
444				clearTimeout( touchmoveCountTimer );
445			}
446
447			touchmoveCountTimer = setTimeout( function () {
448				touchmoveCount++;
449			}, 500 );
450		}, supportsPassive ? { passive: true } : false );
451
452		document.addEventListener( 'touchstart', function ( e ) {
453			lastTouchStart = ( new Date() ).getTime();
454		}, supportsPassive ? { passive: true } : false );
455
456		document.addEventListener( 'touchend', function ( e ) {
457			if ( ! lastTouchStart ) {
458				// If the touchstart happened before this script was loaded, but the touchend happened after...
459				return;
460			}
461
462			var now = ( new Date() ).getTime();
463
464			var touchEvent = [];
465			touchEvent.push( now - lastTouchStart );
466
467			if ( lastTouchEnd ) {
468				touchEvent.push( lastTouchStart - lastTouchEnd );
469			}
470
471			touchEvents.push( touchEvent );
472
473			lastTouchEnd = now;
474
475			// Don't record this time as an interval between keypresses.
476			lastKeydown = null;
477			lastKeyup = null;
478			keydowns = {};
479		}, supportsPassive ? { passive: true } : false );
480
481		document.addEventListener( 'scroll', function ( e ) {
482			if ( scrollCountTimer ) {
483				clearTimeout( scrollCountTimer );
484			}
485
486			scrollCountTimer = setTimeout( function () {
487				scrollCount++;
488			}, 500 );
489		}, supportsPassive ? { passive: true } : false );
490	}
491
492	/**
493	 * For the timing/coordinate data that is collected, don't send more than `limit` data points in the request.
494	 * Choose a random slice and send those, with each batch separated by semicolons and the items in each batch
495	 * separated by commas.
496	 */
497	function prepare_array_for_request( a, limit ) {
498		if ( ! limit ) {
499			limit = 100;
500		}
501
502		var rv = '';
503
504		if ( a.length > 0 ) {
505			var random_starting_point = Math.max( 0, Math.floor( Math.random() * a.length - limit ) );
506
507			for ( var i = 0; i < limit && i < a.length; i++ ) {
508				var entry = a[ random_starting_point + i ];
509				rv += entry.join( ',' ) + ';';
510			}
511		}
512
513		return rv;
514	}
515
516	if ( document.readyState !== 'loading' ) {
517		init();
518	} else {
519		document.addEventListener( 'DOMContentLoaded', init );
520	}
521})();;

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.