How to use Min method in Mocha

Best JavaScript code snippet using mocha

Run Mocha automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

DBVT.js

Source: DBVT.js Github

copy
1// Class: altern.collisions.dbvt.DBVT
2
3var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
4
5$global.Object.defineProperty(exports, "__esModule", {value: true});
6
7var __map_reserved = {};
8
9// Imports
10
11var $hxClasses = require("./../../../hxClasses_stub").default;
12var $import = require("./../../../import_stub").default;
13function altern_ray_IRaycastImpl() {return require("./../../../altern/ray/IRaycastImpl");}
14function systems_collisions_ITCollidable() {return require("./../../../systems/collisions/ITCollidable");}
15function altern_collisions_dbvt_DBVTNode() {return require("./../../../altern/collisions/dbvt/DBVTNode");}
16function util_geom_GeomUtil() {return require("./../../../util/geom/GeomUtil");}
17function jeash_geom_Vector3D() {return require("./../../../jeash/geom/Vector3D");}
18function altern_collisions_dbvt__$AbstractAABB_AbstractAABB_$Impl_$() {return require("./../../../altern/collisions/dbvt/_AbstractAABB/AbstractAABB_Impl_");}
19
20// Constructor
21
22class DBVT {
23	constructor() {
24		this._stack = [];
25		this.freeNodes = [];
26		this.numFreeNodes = 0;
27		this.aabb = (altern_collisions_dbvt__$AbstractAABB_AbstractAABB_$Impl_$().default)._new();
28	}
29	purge() {
30		this._stack.length = 0;
31	}
32	moveLeaf(leaf) {
33		this.deleteLeaf(leaf);
34		this.insertLeaf(leaf);
35	}
36	insertLeaf(leaf) {
37		if(this.root == null) {
38			this.root = leaf;
39			return;
40		}
41		var lb = leaf.aabb;
42		var sibling = this.root;
43		var oldArea;
44		var newArea;
45		while(sibling.proxy == null) {
46			var c1 = sibling.child1;
47			var c2 = sibling.child2;
48			var b = sibling.aabb;
49			var c1b = c1.aabb;
50			var c2b = c2.aabb;
51			var h = b.maxY - b.minY;
52			var d = b.maxZ - b.minZ;
53			oldArea = 2 * ((b.maxX - b.minX) * (h + d) + h * d);
54			var this1 = this.aabb;
55			if(lb.minX < b.minX) {
56				this1.minX = lb.minX;
57			} else {
58				this1.minX = b.minX;
59			}
60			if(lb.maxX > b.maxX) {
61				this1.maxX = lb.maxX;
62			} else {
63				this1.maxX = b.maxX;
64			}
65			if(lb.minY < b.minY) {
66				this1.minY = lb.minY;
67			} else {
68				this1.minY = b.minY;
69			}
70			if(lb.maxY > b.maxY) {
71				this1.maxY = lb.maxY;
72			} else {
73				this1.maxY = b.maxY;
74			}
75			if(lb.minZ < b.minZ) {
76				this1.minZ = lb.minZ;
77			} else {
78				this1.minZ = b.minZ;
79			}
80			if(lb.maxZ > b.maxZ) {
81				this1.maxZ = lb.maxZ;
82			} else {
83				this1.maxZ = b.maxZ;
84			}
85			var margin = 0;
86			this1.minX -= margin;
87			this1.minY -= margin;
88			this1.minZ -= margin;
89			this1.maxX += margin;
90			this1.maxY += margin;
91			this1.maxZ += margin;
92			var this2 = this.aabb;
93			var h1 = this2.maxY - this2.minY;
94			var d1 = this2.maxZ - this2.minZ;
95			newArea = 2 * ((this2.maxX - this2.minX) * (h1 + d1) + h1 * d1);
96			var creatingCost = newArea * 2;
97			var incrementalCost = (newArea - oldArea) * 2;
98			var discendingCost1 = incrementalCost;
99			var this3 = this.aabb;
100			if(lb.minX < c1b.minX) {
101				this3.minX = lb.minX;
102			} else {
103				this3.minX = c1b.minX;
104			}
105			if(lb.maxX > c1b.maxX) {
106				this3.maxX = lb.maxX;
107			} else {
108				this3.maxX = c1b.maxX;
109			}
110			if(lb.minY < c1b.minY) {
111				this3.minY = lb.minY;
112			} else {
113				this3.minY = c1b.minY;
114			}
115			if(lb.maxY > c1b.maxY) {
116				this3.maxY = lb.maxY;
117			} else {
118				this3.maxY = c1b.maxY;
119			}
120			if(lb.minZ < c1b.minZ) {
121				this3.minZ = lb.minZ;
122			} else {
123				this3.minZ = c1b.minZ;
124			}
125			if(lb.maxZ > c1b.maxZ) {
126				this3.maxZ = lb.maxZ;
127			} else {
128				this3.maxZ = c1b.maxZ;
129			}
130			var margin1 = 0;
131			this3.minX -= margin1;
132			this3.minY -= margin1;
133			this3.minZ -= margin1;
134			this3.maxX += margin1;
135			this3.maxY += margin1;
136			this3.maxZ += margin1;
137			if(c1.proxy != null) {
138				var this4 = this.aabb;
139				var h2 = this4.maxY - this4.minY;
140				var d2 = this4.maxZ - this4.minZ;
141				discendingCost1 += 2 * ((this4.maxX - this4.minX) * (h2 + d2) + h2 * d2);
142			} else {
143				var this5 = this.aabb;
144				var h3 = this5.maxY - this5.minY;
145				var d3 = this5.maxZ - this5.minZ;
146				var h4 = c1b.maxY - c1b.minY;
147				var d4 = c1b.maxZ - c1b.minZ;
148				discendingCost1 += 2 * ((this5.maxX - this5.minX) * (h3 + d3) + h3 * d3) - 2 * ((c1b.maxX - c1b.minX) * (h4 + d4) + h4 * d4);
149			}
150			var discendingCost2 = incrementalCost;
151			var this6 = this.aabb;
152			if(lb.minX < c2b.minX) {
153				this6.minX = lb.minX;
154			} else {
155				this6.minX = c2b.minX;
156			}
157			if(lb.maxX > c2b.maxX) {
158				this6.maxX = lb.maxX;
159			} else {
160				this6.maxX = c2b.maxX;
161			}
162			if(lb.minY < c2b.minY) {
163				this6.minY = lb.minY;
164			} else {
165				this6.minY = c2b.minY;
166			}
167			if(lb.maxY > c2b.maxY) {
168				this6.maxY = lb.maxY;
169			} else {
170				this6.maxY = c2b.maxY;
171			}
172			if(lb.minZ < c2b.minZ) {
173				this6.minZ = lb.minZ;
174			} else {
175				this6.minZ = c2b.minZ;
176			}
177			if(lb.maxZ > c2b.maxZ) {
178				this6.maxZ = lb.maxZ;
179			} else {
180				this6.maxZ = c2b.maxZ;
181			}
182			var margin2 = 0;
183			this6.minX -= margin2;
184			this6.minY -= margin2;
185			this6.minZ -= margin2;
186			this6.maxX += margin2;
187			this6.maxY += margin2;
188			this6.maxZ += margin2;
189			if(c2.proxy != null) {
190				var this7 = this.aabb;
191				var h5 = this7.maxY - this7.minY;
192				var d5 = this7.maxZ - this7.minZ;
193				discendingCost2 += 2 * ((this7.maxX - this7.minX) * (h5 + d5) + h5 * d5);
194			} else {
195				var this8 = this.aabb;
196				var h6 = this8.maxY - this8.minY;
197				var d6 = this8.maxZ - this8.minZ;
198				var h7 = c2b.maxY - c2b.minY;
199				var d7 = c2b.maxZ - c2b.minZ;
200				discendingCost2 += 2 * ((this8.maxX - this8.minX) * (h6 + d6) + h6 * d6) - 2 * ((c2b.maxX - c2b.minX) * (h7 + d7) + h7 * d7);
201			}
202			if(discendingCost1 < discendingCost2) {
203				if(creatingCost < discendingCost1) {
204					break;
205				} else {
206					sibling = c1;
207				}
208			} else if(creatingCost < discendingCost2) {
209				break;
210			} else {
211				sibling = c2;
212			}
213		}
214		var oldParent = sibling.parent;
215		var newParent;
216		if(this.numFreeNodes > 0) {
217			newParent = this.freeNodes[--this.numFreeNodes];
218		} else {
219			newParent = new (altern_collisions_dbvt_DBVTNode().default)();
220		}
221		newParent.parent = oldParent;
222		newParent.child1 = leaf;
223		newParent.child2 = sibling;
224		var this9 = newParent.aabb;
225		var aabb1 = leaf.aabb;
226		var aabb2 = sibling.aabb;
227		if(aabb1.minX < aabb2.minX) {
228			this9.minX = aabb1.minX;
229		} else {
230			this9.minX = aabb2.minX;
231		}
232		if(aabb1.maxX > aabb2.maxX) {
233			this9.maxX = aabb1.maxX;
234		} else {
235			this9.maxX = aabb2.maxX;
236		}
237		if(aabb1.minY < aabb2.minY) {
238			this9.minY = aabb1.minY;
239		} else {
240			this9.minY = aabb2.minY;
241		}
242		if(aabb1.maxY > aabb2.maxY) {
243			this9.maxY = aabb1.maxY;
244		} else {
245			this9.maxY = aabb2.maxY;
246		}
247		if(aabb1.minZ < aabb2.minZ) {
248			this9.minZ = aabb1.minZ;
249		} else {
250			this9.minZ = aabb2.minZ;
251		}
252		if(aabb1.maxZ > aabb2.maxZ) {
253			this9.maxZ = aabb1.maxZ;
254		} else {
255			this9.maxZ = aabb2.maxZ;
256		}
257		var margin3 = 0;
258		this9.minX -= margin3;
259		this9.minY -= margin3;
260		this9.minZ -= margin3;
261		this9.maxX += margin3;
262		this9.maxY += margin3;
263		this9.maxZ += margin3;
264		newParent.height = sibling.height + 1;
265		sibling.parent = newParent;
266		leaf.parent = newParent;
267		if(sibling == this.root) {
268			this.root = newParent;
269		} else if(oldParent.child1 == sibling) {
270			oldParent.child1 = newParent;
271		} else {
272			oldParent.child2 = newParent;
273		}
274		while(true) {
275			newParent = this.balance(newParent);
276			var c11 = newParent.child1;
277			var c21 = newParent.child2;
278			var this10 = newParent.aabb;
279			var aabb11 = c11.aabb;
280			var aabb21 = c21.aabb;
281			if(aabb11.minX < aabb21.minX) {
282				this10.minX = aabb11.minX;
283			} else {
284				this10.minX = aabb21.minX;
285			}
286			if(aabb11.maxX > aabb21.maxX) {
287				this10.maxX = aabb11.maxX;
288			} else {
289				this10.maxX = aabb21.maxX;
290			}
291			if(aabb11.minY < aabb21.minY) {
292				this10.minY = aabb11.minY;
293			} else {
294				this10.minY = aabb21.minY;
295			}
296			if(aabb11.maxY > aabb21.maxY) {
297				this10.maxY = aabb11.maxY;
298			} else {
299				this10.maxY = aabb21.maxY;
300			}
301			if(aabb11.minZ < aabb21.minZ) {
302				this10.minZ = aabb11.minZ;
303			} else {
304				this10.minZ = aabb21.minZ;
305			}
306			if(aabb11.maxZ > aabb21.maxZ) {
307				this10.maxZ = aabb11.maxZ;
308			} else {
309				this10.maxZ = aabb21.maxZ;
310			}
311			var margin4 = 0;
312			this10.minX -= margin4;
313			this10.minY -= margin4;
314			this10.minZ -= margin4;
315			this10.maxX += margin4;
316			this10.maxY += margin4;
317			this10.maxZ += margin4;
318			var h11 = c11.height;
319			var h21 = c21.height;
320			if(h11 < h21) {
321				newParent.height = h21 + 1;
322			} else {
323				newParent.height = h11 + 1;
324			}
325			newParent = newParent.parent;
326			if(!(newParent != null)) {
327				break;
328			}
329		}
330	}
331	getBalance(node) {
332		if(node.proxy != null) {
333			return 0;
334		}
335		return node.child1.height - node.child2.height;
336	}
337	deleteLeaf(leaf) {
338		if(leaf == this.root) {
339			this.root = null;
340			return;
341		}
342		var parent = leaf.parent;
343		var sibling;
344		if(parent.child1 == leaf) {
345			sibling = parent.child2;
346		} else {
347			sibling = parent.child1;
348		}
349		if(parent == this.root) {
350			this.root = sibling;
351			sibling.parent = null;
352			return;
353		}
354		var grandParent = parent.parent;
355		sibling.parent = grandParent;
356		if(grandParent.child1 == parent) {
357			grandParent.child1 = sibling;
358		} else {
359			grandParent.child2 = sibling;
360		}
361		if(this.numFreeNodes < 16384) {
362			this.freeNodes[this.numFreeNodes++] = parent;
363		}
364		while(true) {
365			grandParent = this.balance(grandParent);
366			var c1 = grandParent.child1;
367			var c2 = grandParent.child2;
368			var this1 = grandParent.aabb;
369			var aabb1 = c1.aabb;
370			var aabb2 = c2.aabb;
371			if(aabb1.minX < aabb2.minX) {
372				this1.minX = aabb1.minX;
373			} else {
374				this1.minX = aabb2.minX;
375			}
376			if(aabb1.maxX > aabb2.maxX) {
377				this1.maxX = aabb1.maxX;
378			} else {
379				this1.maxX = aabb2.maxX;
380			}
381			if(aabb1.minY < aabb2.minY) {
382				this1.minY = aabb1.minY;
383			} else {
384				this1.minY = aabb2.minY;
385			}
386			if(aabb1.maxY > aabb2.maxY) {
387				this1.maxY = aabb1.maxY;
388			} else {
389				this1.maxY = aabb2.maxY;
390			}
391			if(aabb1.minZ < aabb2.minZ) {
392				this1.minZ = aabb1.minZ;
393			} else {
394				this1.minZ = aabb2.minZ;
395			}
396			if(aabb1.maxZ > aabb2.maxZ) {
397				this1.maxZ = aabb1.maxZ;
398			} else {
399				this1.maxZ = aabb2.maxZ;
400			}
401			var margin = 0;
402			this1.minX -= margin;
403			this1.minY -= margin;
404			this1.minZ -= margin;
405			this1.maxX += margin;
406			this1.maxY += margin;
407			this1.maxZ += margin;
408			var h1 = c1.height;
409			var h2 = c2.height;
410			if(h1 < h2) {
411				grandParent.height = h2 + 1;
412			} else {
413				grandParent.height = h1 + 1;
414			}
415			grandParent = grandParent.parent;
416			if(!(grandParent != null)) {
417				break;
418			}
419		}
420	}
421	balance(node) {
422		var nh = node.height;
423		if(nh < 2) {
424			return node;
425		}
426		var p = node.parent;
427		var l = node.child1;
428		var r = node.child2;
429		var lh = l.height;
430		var rh = r.height;
431		var balance = lh - rh;
432		var t;
433		if(balance > 1) {
434			var ll = l.child1;
435			var lr = l.child2;
436			var llh = ll.height;
437			var lrh = lr.height;
438			if(llh > lrh) {
439				l.child2 = node;
440				node.parent = l;
441				node.child1 = lr;
442				lr.parent = node;
443				var this1 = node.aabb;
444				var aabb1 = lr.aabb;
445				var aabb2 = r.aabb;
446				if(aabb1.minX < aabb2.minX) {
447					this1.minX = aabb1.minX;
448				} else {
449					this1.minX = aabb2.minX;
450				}
451				if(aabb1.maxX > aabb2.maxX) {
452					this1.maxX = aabb1.maxX;
453				} else {
454					this1.maxX = aabb2.maxX;
455				}
456				if(aabb1.minY < aabb2.minY) {
457					this1.minY = aabb1.minY;
458				} else {
459					this1.minY = aabb2.minY;
460				}
461				if(aabb1.maxY > aabb2.maxY) {
462					this1.maxY = aabb1.maxY;
463				} else {
464					this1.maxY = aabb2.maxY;
465				}
466				if(aabb1.minZ < aabb2.minZ) {
467					this1.minZ = aabb1.minZ;
468				} else {
469					this1.minZ = aabb2.minZ;
470				}
471				if(aabb1.maxZ > aabb2.maxZ) {
472					this1.maxZ = aabb1.maxZ;
473				} else {
474					this1.maxZ = aabb2.maxZ;
475				}
476				var margin = 0;
477				this1.minX -= margin;
478				this1.minY -= margin;
479				this1.minZ -= margin;
480				this1.maxX += margin;
481				this1.maxY += margin;
482				this1.maxZ += margin;
483				t = lrh - rh;
484				node.height = lrh - (t & t >> 31) + 1;
485				var this2 = l.aabb;
486				var aabb11 = ll.aabb;
487				var aabb21 = node.aabb;
488				if(aabb11.minX < aabb21.minX) {
489					this2.minX = aabb11.minX;
490				} else {
491					this2.minX = aabb21.minX;
492				}
493				if(aabb11.maxX > aabb21.maxX) {
494					this2.maxX = aabb11.maxX;
495				} else {
496					this2.maxX = aabb21.maxX;
497				}
498				if(aabb11.minY < aabb21.minY) {
499					this2.minY = aabb11.minY;
500				} else {
501					this2.minY = aabb21.minY;
502				}
503				if(aabb11.maxY > aabb21.maxY) {
504					this2.maxY = aabb11.maxY;
505				} else {
506					this2.maxY = aabb21.maxY;
507				}
508				if(aabb11.minZ < aabb21.minZ) {
509					this2.minZ = aabb11.minZ;
510				} else {
511					this2.minZ = aabb21.minZ;
512				}
513				if(aabb11.maxZ > aabb21.maxZ) {
514					this2.maxZ = aabb11.maxZ;
515				} else {
516					this2.maxZ = aabb21.maxZ;
517				}
518				var margin1 = 0;
519				this2.minX -= margin1;
520				this2.minY -= margin1;
521				this2.minZ -= margin1;
522				this2.maxX += margin1;
523				this2.maxY += margin1;
524				this2.maxZ += margin1;
525				t = llh - nh;
526				l.height = llh - (t & t >> 31) + 1;
527			} else {
528				l.child1 = node;
529				node.parent = l;
530				node.child1 = ll;
531				ll.parent = node;
532				var this3 = node.aabb;
533				var aabb12 = ll.aabb;
534				var aabb22 = r.aabb;
535				if(aabb12.minX < aabb22.minX) {
536					this3.minX = aabb12.minX;
537				} else {
538					this3.minX = aabb22.minX;
539				}
540				if(aabb12.maxX > aabb22.maxX) {
541					this3.maxX = aabb12.maxX;
542				} else {
543					this3.maxX = aabb22.maxX;
544				}
545				if(aabb12.minY < aabb22.minY) {
546					this3.minY = aabb12.minY;
547				} else {
548					this3.minY = aabb22.minY;
549				}
550				if(aabb12.maxY > aabb22.maxY) {
551					this3.maxY = aabb12.maxY;
552				} else {
553					this3.maxY = aabb22.maxY;
554				}
555				if(aabb12.minZ < aabb22.minZ) {
556					this3.minZ = aabb12.minZ;
557				} else {
558					this3.minZ = aabb22.minZ;
559				}
560				if(aabb12.maxZ > aabb22.maxZ) {
561					this3.maxZ = aabb12.maxZ;
562				} else {
563					this3.maxZ = aabb22.maxZ;
564				}
565				var margin2 = 0;
566				this3.minX -= margin2;
567				this3.minY -= margin2;
568				this3.minZ -= margin2;
569				this3.maxX += margin2;
570				this3.maxY += margin2;
571				this3.maxZ += margin2;
572				t = llh - rh;
573				node.height = llh - (t & t >> 31) + 1;
574				var this4 = l.aabb;
575				var aabb13 = node.aabb;
576				var aabb23 = lr.aabb;
577				if(aabb13.minX < aabb23.minX) {
578					this4.minX = aabb13.minX;
579				} else {
580					this4.minX = aabb23.minX;
581				}
582				if(aabb13.maxX > aabb23.maxX) {
583					this4.maxX = aabb13.maxX;
584				} else {
585					this4.maxX = aabb23.maxX;
586				}
587				if(aabb13.minY < aabb23.minY) {
588					this4.minY = aabb13.minY;
589				} else {
590					this4.minY = aabb23.minY;
591				}
592				if(aabb13.maxY > aabb23.maxY) {
593					this4.maxY = aabb13.maxY;
594				} else {
595					this4.maxY = aabb23.maxY;
596				}
597				if(aabb13.minZ < aabb23.minZ) {
598					this4.minZ = aabb13.minZ;
599				} else {
600					this4.minZ = aabb23.minZ;
601				}
602				if(aabb13.maxZ > aabb23.maxZ) {
603					this4.maxZ = aabb13.maxZ;
604				} else {
605					this4.maxZ = aabb23.maxZ;
606				}
607				var margin3 = 0;
608				this4.minX -= margin3;
609				this4.minY -= margin3;
610				this4.minZ -= margin3;
611				this4.maxX += margin3;
612				this4.maxY += margin3;
613				this4.maxZ += margin3;
614				t = nh - lrh;
615				l.height = nh - (t & t >> 31) + 1;
616			}
617			if(p != null) {
618				if(p.child1 == node) {
619					p.child1 = l;
620				} else {
621					p.child2 = l;
622				}
623			} else {
624				this.root = l;
625			}
626			l.parent = p;
627			return l;
628		} else if(balance < -1) {
629			var rl = r.child1;
630			var rr = r.child2;
631			var rlh = rl.height;
632			var rrh = rr.height;
633			if(rlh > rrh) {
634				r.child2 = node;
635				node.parent = r;
636				node.child2 = rr;
637				rr.parent = node;
638				var this5 = node.aabb;
639				var aabb14 = l.aabb;
640				var aabb24 = rr.aabb;
641				if(aabb14.minX < aabb24.minX) {
642					this5.minX = aabb14.minX;
643				} else {
644					this5.minX = aabb24.minX;
645				}
646				if(aabb14.maxX > aabb24.maxX) {
647					this5.maxX = aabb14.maxX;
648				} else {
649					this5.maxX = aabb24.maxX;
650				}
651				if(aabb14.minY < aabb24.minY) {
652					this5.minY = aabb14.minY;
653				} else {
654					this5.minY = aabb24.minY;
655				}
656				if(aabb14.maxY > aabb24.maxY) {
657					this5.maxY = aabb14.maxY;
658				} else {
659					this5.maxY = aabb24.maxY;
660				}
661				if(aabb14.minZ < aabb24.minZ) {
662					this5.minZ = aabb14.minZ;
663				} else {
664					this5.minZ = aabb24.minZ;
665				}
666				if(aabb14.maxZ > aabb24.maxZ) {
667					this5.maxZ = aabb14.maxZ;
668				} else {
669					this5.maxZ = aabb24.maxZ;
670				}
671				var margin4 = 0;
672				this5.minX -= margin4;
673				this5.minY -= margin4;
674				this5.minZ -= margin4;
675				this5.maxX += margin4;
676				this5.maxY += margin4;
677				this5.maxZ += margin4;
678				t = lh - rrh;
679				node.height = lh - (t & t >> 31) + 1;
680				var this6 = r.aabb;
681				var aabb15 = rl.aabb;
682				var aabb25 = node.aabb;
683				if(aabb15.minX < aabb25.minX) {
684					this6.minX = aabb15.minX;
685				} else {
686					this6.minX = aabb25.minX;
687				}
688				if(aabb15.maxX > aabb25.maxX) {
689					this6.maxX = aabb15.maxX;
690				} else {
691					this6.maxX = aabb25.maxX;
692				}
693				if(aabb15.minY < aabb25.minY) {
694					this6.minY = aabb15.minY;
695				} else {
696					this6.minY = aabb25.minY;
697				}
698				if(aabb15.maxY > aabb25.maxY) {
699					this6.maxY = aabb15.maxY;
700				} else {
701					this6.maxY = aabb25.maxY;
702				}
703				if(aabb15.minZ < aabb25.minZ) {
704					this6.minZ = aabb15.minZ;
705				} else {
706					this6.minZ = aabb25.minZ;
707				}
708				if(aabb15.maxZ > aabb25.maxZ) {
709					this6.maxZ = aabb15.maxZ;
710				} else {
711					this6.maxZ = aabb25.maxZ;
712				}
713				var margin5 = 0;
714				this6.minX -= margin5;
715				this6.minY -= margin5;
716				this6.minZ -= margin5;
717				this6.maxX += margin5;
718				this6.maxY += margin5;
719				this6.maxZ += margin5;
720				t = rlh - nh;
721				r.height = rlh - (t & t >> 31) + 1;
722			} else {
723				r.child1 = node;
724				node.parent = r;
725				node.child2 = rl;
726				rl.parent = node;
727				var this7 = node.aabb;
728				var aabb16 = l.aabb;
729				var aabb26 = rl.aabb;
730				if(aabb16.minX < aabb26.minX) {
731					this7.minX = aabb16.minX;
732				} else {
733					this7.minX = aabb26.minX;
734				}
735				if(aabb16.maxX > aabb26.maxX) {
736					this7.maxX = aabb16.maxX;
737				} else {
738					this7.maxX = aabb26.maxX;
739				}
740				if(aabb16.minY < aabb26.minY) {
741					this7.minY = aabb16.minY;
742				} else {
743					this7.minY = aabb26.minY;
744				}
745				if(aabb16.maxY > aabb26.maxY) {
746					this7.maxY = aabb16.maxY;
747				} else {
748					this7.maxY = aabb26.maxY;
749				}
750				if(aabb16.minZ < aabb26.minZ) {
751					this7.minZ = aabb16.minZ;
752				} else {
753					this7.minZ = aabb26.minZ;
754				}
755				if(aabb16.maxZ > aabb26.maxZ) {
756					this7.maxZ = aabb16.maxZ;
757				} else {
758					this7.maxZ = aabb26.maxZ;
759				}
760				var margin6 = 0;
761				this7.minX -= margin6;
762				this7.minY -= margin6;
763				this7.minZ -= margin6;
764				this7.maxX += margin6;
765				this7.maxY += margin6;
766				this7.maxZ += margin6;
767				t = lh - rlh;
768				node.height = lh - (t & t >> 31) + 1;
769				var this8 = r.aabb;
770				var aabb17 = node.aabb;
771				var aabb27 = rr.aabb;
772				if(aabb17.minX < aabb27.minX) {
773					this8.minX = aabb17.minX;
774				} else {
775					this8.minX = aabb27.minX;
776				}
777				if(aabb17.maxX > aabb27.maxX) {
778					this8.maxX = aabb17.maxX;
779				} else {
780					this8.maxX = aabb27.maxX;
781				}
782				if(aabb17.minY < aabb27.minY) {
783					this8.minY = aabb17.minY;
784				} else {
785					this8.minY = aabb27.minY;
786				}
787				if(aabb17.maxY > aabb27.maxY) {
788					this8.maxY = aabb17.maxY;
789				} else {
790					this8.maxY = aabb27.maxY;
791				}
792				if(aabb17.minZ < aabb27.minZ) {
793					this8.minZ = aabb17.minZ;
794				} else {
795					this8.minZ = aabb27.minZ;
796				}
797				if(aabb17.maxZ > aabb27.maxZ) {
798					this8.maxZ = aabb17.maxZ;
799				} else {
800					this8.maxZ = aabb27.maxZ;
801				}
802				var margin7 = 0;
803				this8.minX -= margin7;
804				this8.minY -= margin7;
805				this8.minZ -= margin7;
806				this8.maxX += margin7;
807				this8.maxY += margin7;
808				this8.maxZ += margin7;
809				t = nh - rrh;
810				r.height = nh - (t & t >> 31) + 1;
811			}
812			if(p != null) {
813				if(p.child1 == node) {
814					p.child1 = r;
815				} else {
816					p.child2 = r;
817				}
818			} else {
819				this.root = r;
820			}
821			r.parent = p;
822			return r;
823		}
824		return node;
825	}
826	fix(node) {
827		var c1 = node.child1;
828		var c2 = node.child2;
829		var this1 = node.aabb;
830		var aabb1 = c1.aabb;
831		var aabb2 = c2.aabb;
832		if(aabb1.minX < aabb2.minX) {
833			this1.minX = aabb1.minX;
834		} else {
835			this1.minX = aabb2.minX;
836		}
837		if(aabb1.maxX > aabb2.maxX) {
838			this1.maxX = aabb1.maxX;
839		} else {
840			this1.maxX = aabb2.maxX;
841		}
842		if(aabb1.minY < aabb2.minY) {
843			this1.minY = aabb1.minY;
844		} else {
845			this1.minY = aabb2.minY;
846		}
847		if(aabb1.maxY > aabb2.maxY) {
848			this1.maxY = aabb1.maxY;
849		} else {
850			this1.maxY = aabb2.maxY;
851		}
852		if(aabb1.minZ < aabb2.minZ) {
853			this1.minZ = aabb1.minZ;
854		} else {
855			this1.minZ = aabb2.minZ;
856		}
857		if(aabb1.maxZ > aabb2.maxZ) {
858			this1.maxZ = aabb1.maxZ;
859		} else {
860			this1.maxZ = aabb2.maxZ;
861		}
862		var margin = 0;
863		this1.minX -= margin;
864		this1.minY -= margin;
865		this1.minZ -= margin;
866		this1.maxX += margin;
867		this1.maxY += margin;
868		this1.maxZ += margin;
869		var h1 = c1.height;
870		var h2 = c2.height;
871		if(h1 < h2) {
872			node.height = h2 + 1;
873		} else {
874			node.height = h1 + 1;
875		}
876	}
877	collectGeometryAndTransforms(collider,baseTransform) {
878		var s = 0;
879		var stack = this._stack;
880		stack[s++] = this.root;
881		var colliderSphere = DBVT.COLLIDER_SPHERE;
882		colliderSphere.x = collider.sphere.x;
883		colliderSphere.y = collider.sphere.y;
884		colliderSphere.z = collider.sphere.z;
885		colliderSphere.w = collider.sphere.w;
886		while(--s >= 0) {
887			var node = stack[s];
888			if(colliderSphere.x + colliderSphere.w > node.aabb.minX && colliderSphere.x - colliderSphere.w < node.aabb.maxX && colliderSphere.y + colliderSphere.w > node.aabb.minY && colliderSphere.y - colliderSphere.w < node.aabb.maxY && colliderSphere.z + colliderSphere.w > node.aabb.minZ && colliderSphere.z - colliderSphere.w < node.aabb.maxZ) {
889				if(node.child1 != null) {
890					stack[s++] = node.child1;
891				}
892				if(node.child2 != null) {
893					stack[s++] = node.child2;
894				}
895				if(node.proxy != null && node.proxy.collidable != null) {
896					if(node.proxy.transform != null) {
897						node.proxy.globalToLocalTransform.combine(node.proxy.inverseTransform,collider.matrix);
898						collider.calculateSphere(node.proxy.globalToLocalTransform);
899						node.proxy.localToGlobalTransform.combine(collider.inverseMatrix,node.proxy.transform);
900						node.proxy.collidable.collectGeometryAndTransforms(collider,node.proxy.localToGlobalTransform);
901					} else {
902						node.proxy.collidable.collectGeometryAndTransforms(collider,baseTransform);
903					}
904				}
905			}
906		}
907	}
908	intersectRay(origin,direction,output) {
909		var s = 0;
910		var stack = this._stack;
911		stack[s++] = this.root;
912		var minData = null;
913		var minTime = output.w != 0 ? output.w : direction.w != 0 ? direction.w : 1e22;
914		while(--s >= 0) {
915			var node = stack[s];
916			if((util_geom_GeomUtil().default).boundIntersectRay(origin,direction,node.aabb.minX,node.aabb.minY,node.aabb.minZ,node.aabb.maxX,node.aabb.maxY,node.aabb.maxZ,output)) {
917				if(node.child1 != null) {
918					stack[s++] = node.child1;
919				}
920				if(node.child2 != null) {
921					stack[s++] = node.child2;
922				}
923				if(node.proxy != null && node.proxy.raycastable != null) {
924					var childOrigin = output;
925					var childDirection = direction;
926					if(node.proxy.transform != null) {
927						childOrigin = new (jeash_geom_Vector3D().default)();
928						childDirection = new (jeash_geom_Vector3D().default)();
929						var childInverseTransform = node.proxy.inverseTransform;
930						childOrigin.x = childInverseTransform.a * origin.x + childInverseTransform.b * origin.y + childInverseTransform.c * origin.z + childInverseTransform.d;
931						childOrigin.y = childInverseTransform.e * origin.x + childInverseTransform.f * origin.y + childInverseTransform.g * origin.z + childInverseTransform.h;
932						childOrigin.z = childInverseTransform.i * origin.x + childInverseTransform.j * origin.y + childInverseTransform.k * origin.z + childInverseTransform.l;
933						childDirection.x = childInverseTransform.a * direction.x + childInverseTransform.b * direction.y + childInverseTransform.c * direction.z;
934						childDirection.y = childInverseTransform.e * direction.x + childInverseTransform.f * direction.y + childInverseTransform.g * direction.z;
935						childDirection.z = childInverseTransform.i * direction.x + childInverseTransform.j * direction.y + childInverseTransform.k * direction.z;
936						childDirection.w = minTime;
937					}
938					var data = node.proxy.raycastable.intersectRay(childOrigin,childDirection,output);
939					if(data != null && data.w < minTime) {
940						minTime = data.w;
941						minData = data;
942					}
943				}
944			}
945		}
946		return minData;
947	}
948	static get COLLIDER_SPHERE() { return COLLIDER_SPHERE; }
949	static set COLLIDER_SPHERE(value) { COLLIDER_SPHERE = value; }
950}
951
952
953// Meta
954
955DBVT.__name__ = ["altern","collisions","dbvt","DBVT"];
956DBVT.__interfaces__ = [(altern_ray_IRaycastImpl().default),(systems_collisions_ITCollidable().default)];
957DBVT.prototype.__class__ = DBVT.prototype.constructor = $hxClasses["altern.collisions.dbvt.DBVT"] = DBVT;
958
959// Init
960
961
962
963// Statics
964
965var COLLIDER_SPHERE = new (jeash_geom_Vector3D().default)();
966
967// Export
968
969exports.default = DBVT;
Full Screen

E10SAddonsRollout.jsm

Source: E10SAddonsRollout.jsm Github

copy
1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5"use strict";
6
7this.EXPORTED_SYMBOLS = [ "isAddonPartOfE10SRollout" ];
8
9const Cu = Components.utils;
10Cu.import("resource://gre/modules/Preferences.jsm");
11Cu.import("resource://gre/modules/Services.jsm");
12
13const PREF_E10S_ADDON_BLOCKLIST = "extensions.e10s.rollout.blocklist";
14const PREF_E10S_ADDON_POLICY    = "extensions.e10s.rollout.policy";
15
16const ADDONS = {
17  "Greasemonkey": { // Greasemonkey
18    id: "{e4a8a97b-f2ed-450b-b12d-ee082ba24781}", minVersion: "3.8",
19  },
20
21  "DYTV": { // Download YouTube Videos as MP4
22    id: "{b9bfaf1c-a63f-47cd-8b9a-29526ced9060}", minVersion: "1.8.7",
23  },
24
25  "VDH": { // Video Download Helper
26    id: "{b9db16a4-6edc-47ec-a1f4-b86292ed211d}", minVersion: "5.6.1",
27  },
28
29  "Lightbeam": { // Lightbeam
30    id: "[email protected]", minVersion: "1.3.0.1",
31  },
32
33  "ABP": { // Adblock Plus
34    id: "{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}", minVersion: "2.7.3",
35  },
36
37  "uBlockOrigin": { // uBlock Origin
38    id: "[email protected]", minVersion: "1.7.6",
39  },
40
41  "Emoji": { // Emoji Cheatsheet
42    id: "[email protected]", minVersion: "1.1.1",
43  },
44
45  "ASP": { // Awesome Screenshot Plus
46    id: "[email protected]", minVersion: "3.0.10",
47  },
48
49  "PersonasPlus": { // PersonasPlus
50    id: "[email protected]", minVersion: "1.8.0",
51  },
52
53  "ACR": { // Add-on Compatibility Reporter
54    id: "[email protected]", minVersion: "2.2.0",
55  },
56
57  // Add-ons used for testing
58  "test1": {
59    id: "[email protected]", minVersion: "1.0",
60  },
61
62  "test2": {
63    id: "[email protected]", minVersion: "1.0",
64  },
65};
66
67// NOTE: Do not modify sets or policies after they have already been
68// published to users. They must remain unchanged to provide valid data.
69
70// Set 2 used during 48 Beta cycle. Kept here for historical reasons.
71const set2 = [ADDONS.Greasemonkey,
72              ADDONS.DYTV,
73              ADDONS.VDH,
74              ADDONS.Lightbeam,
75              ADDONS.ABP,
76              ADDONS.uBlockOrigin,
77              ADDONS.Emoji,
78              ADDONS.ASP,
79              ADDONS.PersonasPlus];
80
81const set49Release = [
82  ADDONS.Greasemonkey,
83  ADDONS.DYTV,
84  ADDONS.VDH,
85  ADDONS.Lightbeam,
86  ADDONS.ABP,
87  ADDONS.uBlockOrigin,
88  ADDONS.Emoji,
89  ADDONS.ASP,
90  ADDONS.PersonasPlus,
91  ADDONS.ACR
92];
93
94// These are only the add-ons in the Add-Ons Manager Discovery
95// pane. This set is here in case we need to reduce add-ons
96// exposure live on Release.
97const set49PaneOnly = [
98  ADDONS.ABP,
99  ADDONS.VDH,
100  ADDONS.Emoji,
101  ADDONS.ASP,
102  ADDONS.ACR
103]
104
105// ================== ADDONS FOR 51 RELEASE ==================
106//
107// During the 51 beta cycle, we tested e10s with all addons
108// except those explicitly marked as being incompatible.
109// For release, instead of opening this up, we assembled
110// the lists below with all addons that were seen on beta
111// and had over 50 installs.
112//
113// This list is in a new format to allow fast access and also
114// to allow controlling by the number of addons installed.
115
116const set51Release = {
117  "[email protected]": {minVersion: "7.102.10.4221", installs: 32092},
118  "[email protected]": {minVersion: "4.6.3-15", installs: 27758},
119  "[email protected]": {minVersion: "7.102.10.4117", installs: 17797},
120  "[email protected]": {minVersion: "0.1.7", installs: 13150},
121  "{4ED1F68A-5463-4931-9384-8FFF5ED91D92}": {minVersion: "5.0.248.0", installs: 12774},
122  "[email protected]": {minVersion: "7.102.10.4251", installs: 11909},
123  "[email protected]": {minVersion: "7.102.10.5033", installs: 11612},
124  "[email protected]": {minVersion: "5.0.141-4-20161031140250", installs: 10944},
125  "[email protected]": {minVersion: "2.4.1", installs: 10722},
126  "{82AF8DCA-6DE9-405D-BD5E-43525BDAD38A}": {minVersion: "8.0.0.9103", installs: 8856},
127  "[email protected]": {minVersion: "2.5.2", installs: 8225},
128  "[email protected]": {minVersion: "7.102.10.3584", installs: 7681},
129  "[email protected]": {minVersion: "4.6.2-42-20160922074409", installs: 7177},
130  "[email protected]": {minVersion: "7.102.10.4851", installs: 7115},
131  "[email protected]": {minVersion: "0.3.5", installs: 6926},
132  "[email protected]": {minVersion: "7.102.10.4836", installs: 6583},
133  "@DownloadManager": {minVersion: "0.2.1", installs: 6412},
134  "[email protected]": {minVersion: "1.0.6", installs: 5975},
135  "[email protected]": {minVersion: "7.102.10.4846", installs: 5605},
136  "[email protected]": {minVersion: "7.102.10.4163", installs: 5448},
137  "[email protected]": {minVersion: "7.102.10.4263", installs: 5241},
138  "[email protected]a.com": {minVersion: "8.5", installs: 4694},
139  "[email protected]": {minVersion: "7.102.10.4849", installs: 4526},
140  "[email protected]": {minVersion: "7.102.10.4914", installs: 4417},
141  "@mysmartprice-ff": {minVersion: "0.0.6", installs: 4381},
142  "[email protected]": {minVersion: "1.37.9", installs: 3899},
143  "{58d735b4-9d6c-4e37-b146-7b9f7e79e318}": {minVersion: "1.6", installs: 3733},
144  "[email protected]": {minVersion: "2.4.7.47", installs: 3720},
145  "[email protected]": {minVersion: "0.9.2.1-signed.1-signed", installs: 3602},
146  "[email protected]": {minVersion: "6.0.rev142", installs: 3545},
147  "[email protected]": {minVersion: "5.0.0.1005", installs: 3475},
148  "[email protected]": {minVersion: "8.20.4", installs: 3299},
149  "{19503e42-ca3c-4c27-b1e2-9cdb2170ee34}": {minVersion: "1.5.6.14", installs: 3106},
150  "{C1A2A613-35F1-4FCF-B27F-2840527B6556}": {minVersion: "2016.8.1.9", installs: 3083},
151  "[email protected]": {minVersion: "7.102.10.4812", installs: 3011},
152  "[email protected]": {minVersion: "7.102.10.4339", installs: 2828},
153  "[email protected]": {minVersion: "7.102.10.4968", installs: 2821},
154  "[email protected]": {minVersion: "1.0.9.1-signed.1-signed", installs: 2717},
155  "[email protected]": {minVersion: "1.97.37.1-signed.1-signed", installs: 2663},
156  "[email protected]": {minVersion: "8.7", installs: 2650},
157  "[email protected]": {minVersion: "7.102.10.4916", installs: 2631},
158  "@Email": {minVersion: "4.0.12", installs: 2583},
159  "[email protected]": {minVersion: "7.38.8.56523", installs: 2519},
160  "[email protected]": {minVersion: "7.102.10.3827", installs: 2445},
161  "[email protected]": {minVersion: "2.1.0.5.1.1-signed", installs: 2310},
162  "{a38384b3-2d1d-4f36-bc22-0f7ae402bcd7}": {minVersion: "1.0.0.51", installs: 2190},
163  "[email protected]": {minVersion: "7.38.8.45273", installs: 2185},
164  "[email protected]": {minVersion: "0.1.5", installs: 2155},
165  "[email protected]": {minVersion: "1.0.2", installs: 2124},
166  "[email protected]": {minVersion: "1.0.7", installs: 2038},
167  "[email protected]": {minVersion: "7.102.10.4831", installs: 2036},
168  "{7b8a500a-a464-4624-bd4f-73eaafe0f766}": {minVersion: "3", installs: 2027},
169  "[email protected]": {minVersion: "8.2.1", installs: 2005},
170  "[email protected]": {minVersion: "2.4", installs: 1929},
171  "[email protected]": {minVersion: "7.38.8.46590", installs: 1892},
172  "[email protected]": {minVersion: "1.97.43", installs: 1860},
173  "[email protected]": {minVersion: "7.38.8.56171", installs: 1824},
174  "[email protected]": {minVersion: "7.102.10.4108", installs: 1822},
175  "[email protected]": {minVersion: "7.38.9.3004", installs: 1730},
176  "[email protected]": {minVersion: "7.102.10.3585", installs: 1704},
177  "[email protected]": {minVersion: "2.25", installs: 1648},
178  "[email protected]": {minVersion: "3.8", installs: 1640},
179  "[email protected]": {minVersion: "7.102.10.4193", installs: 1638},
180  "[email protected]": {minVersion: "4.5.4.19.1", installs: 1625},
181  "[email protected]": {minVersion: "4.5.4.19.1", installs: 1624},
182  "[email protected]": {minVersion: "2.0.3", installs: 1610},
183  "@Maps": {minVersion: "4.0.0", installs: 1587},
184  "[email protected]": {minVersion: "7.102.10.4137", installs: 1493},
185  "{635abd67-4fe9-1b23-4f01-e679fa7484c1}": {minVersion: "5.0.2", installs: 1490},
186  "[email protected]": {minVersion: "10.1612.1.304", installs: 1463},
187  "{1BC9BA34-1EED-42ca-A505-6D2F1A935BBB}": {minVersion: "6.2.18.1", installs: 1436},
188  "[email protected]": {minVersion: "1.3.3.1-signed.1-signed", installs: 1410},
189  "[email protected]": {minVersion: "1.1.4", installs: 1399},
190  "{c45c406e-ab73-11d8-be73-000a95be3b12}": {minVersion: "1.2.11", installs: 1367},
191  "[email protected]": {minVersion: "4.5.4.19.1", installs: 1356},
192  "[email protected]": {minVersion: "7.102.10.4710", installs: 1337},
193  "@DiscreteSearch": {minVersion: "0.2.1", installs: 1306},
194  "{6AC85730-7D0F-4de0-B3FA-21142DD85326}": {minVersion: "2.8.2", installs: 1286},
195  "{063DA41A-2561-401B-91FA-AC75E460F4EB}": {minVersion: "1.0.7.1", installs: 1280},
196  "[email protected]": {minVersion: "1.2", installs: 1260},
197  "[email protected]": {minVersion: "7.102.10.4285", installs: 1230},
198  "[email protected]": {minVersion: "8.5", installs: 1220},
199  "[email protected]": {minVersion: "2.4.14", installs: 1172},
200  "[email protected]": {minVersion: "7.102.10.4730", installs: 1171},
201  "[email protected]": {minVersion: "7.102.10.4154", installs: 1166},
202  "[email protected]": {minVersion: "7.102.10.5047", installs: 1159},
203  "[email protected]": {minVersion: "7.102.10.4778", installs: 1150},
204  "[email protected]": {minVersion: "7.102.10.4739", installs: 1113},
205  "[email protected]": {minVersion: "7.102.10.4290", installs: 1109},
206  "{fe272bd1-5f76-4ea4-8501-a05d35d823fc}": {minVersion: "2.1.9.1-signed.1-let-fixed.1-signed", installs: 1108},
207  "[email protected]": {minVersion: "7.102.10.4993", installs: 1107},
208  "{068e178c-61a9-4a63-b74f-87404a6f5ea1}": {minVersion: "2", installs: 1104},
209  "@Package": {minVersion: "0.2.0", installs: 1092},
210  "[email protected]": {minVersion: "0.1", installs: 1071},
211  "[email protected]": {minVersion: "7.102.10.4112", installs: 1043},
212  "[email protected]": {minVersion: "7.102.10.3797", installs: 1035},
213  "[email protected]": {minVersion: "3.0.1-signed.1-signed", installs: 1023},
214  "[email protected]": {minVersion: "1.2.87", installs: 1000},
215  "[email protected]_easiestyoutube": {minVersion: "7.2.1-signed.1-let-fixed.1-signed", installs: 993},
216  "{cd617375-6743-4ee8-bac4-fbf10f35729e}": {minVersion: "2.9.6", installs: 987},
217  "@Converter": {minVersion: "4.1.0", installs: 986},
218  "{dd3d7613-0246-469d-bc65-2a3cc1668adc}": {minVersion: "1.1.8.1-signed.1-signed", installs: 983},
219  "[email protected]": {minVersion: "3.2", installs: 950},
220  "[email protected]": {minVersion: "0.1.9", installs: 945},
221  "[email protected]": {minVersion: "7.102.10.4837", installs: 930},
222  "[email protected]": {minVersion: "2016.12.02", installs: 930},
223  "{1A2D0EC4-75F5-4c91-89C4-3656F6E44B68}": {minVersion: "0.6.3.1-signed.1-signed", installs: 885},
224  "{64161300-e22b-11db-8314-0800200c9a66}": {minVersion: "0.9.6.18", installs: 875},
225  "[email protected]": {minVersion: "7.102.10.4951", installs: 827},
226  "[email protected]": {minVersion: "1.0.277.1-signed.1-signed", installs: 815},
227  "{e968fc70-8f95-4ab9-9e79-304de2a71ee1}": {minVersion: "0.7.3.1-signed.1-signed", installs: 805},
228  "[email protected]": {minVersion: "1.5.1-signed.1-signed", installs: 804},
229  "{75CEEE46-9B64-46f8-94BF-54012DE155F0}": {minVersion: "0.4.15", installs: 794},
230  "[email protected]": {minVersion: "1.4.1.371", installs: 786},
231  "[email protected]": {minVersion: "1.2.8", installs: 785},
232  "[email protected]": {minVersion: "7.38.8.46366", installs: 783},
233  "[email protected]": {minVersion: "7.39.8.51080", installs: 777},
234  "{a3a5c777-f583-4fef-9380-ab4add1bc2a5}": {minVersion: "2.4.2.1-signed", installs: 771},
235  "[email protected]": {minVersion: "4.0.10.15", installs: 770},
236  "[email protected]": {minVersion: "1.4.1.371", installs: 767},
237  "[email protected]": {minVersion: "1.2.3.1-signed.1-signed", installs: 748},
238  "[email protected]": {minVersion: "5.0.94.1", installs: 736},
239  "[email protected]": {minVersion: "7.102.10.4797", installs: 734},
240  "[email protected]": {minVersion: "7.102.10.4277", installs: 733},
241  "[email protected]": {minVersion: "0.1.6", installs: 732},
242  "[email protected]": {minVersion: "4.3.19", installs: 728},
243  "{e8deb9e5-5688-4655-838a-b7a121a9f16e}": {minVersion: "48.4", installs: 726},
244  "{195A3098-0BD5-4e90-AE22-BA1C540AFD1E}": {minVersion: "4.1.0.1-signed.1-signed", installs: 722},
245  "[email protected]": {minVersion: "1.22.550", installs: 719},
246  "[email protected]": {minVersion: "1.0.6.1-signed.1-signed", installs: 717},
247  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 715},
248  "[email protected]": {minVersion: "0.8.3.1-signed.1-signed", installs: 700},
249  "[email protected]": {minVersion: "3.15.3.1-signed.1-signed", installs: 693},
250  "[email protected]": {minVersion: "3.2.3", installs: 690},
251  "[email protected]": {minVersion: "7.102.10.4783", installs: 679},
252  "[email protected]": {minVersion: "7.102.10.3677", installs: 673},
253  "[email protected]": {minVersion: "19.1.1", installs: 666},
254  "[email protected]": {minVersion: "7.102.10.4936", installs: 644},
255  "[email protected]": {minVersion: "3.1", installs: 639},
256  "{B17C1C5A-04B1-11DB-9804-B622A1EF5492}": {minVersion: "1.3.2", installs: 633},
257  "[email protected]": {minVersion: "1.6", installs: 616},
258  "{ad0d925d-88f8-47f1-85ea-8463569e756e}": {minVersion: "2.0.5", installs: 604},
259  "{37964A3C-4EE8-47b1-8321-34DE2C39BA4D}": {minVersion: "2.5.4.174", installs: 603},
260  "[email protected]": {minVersion: "3.9.0", installs: 601},
261  "[email protected]": {minVersion: "0.2.0", installs: 598},
262  "[email protected]": {minVersion: "7.102.10.5014", installs: 595},
263  "[email protected]": {minVersion: "7.102.10.4744", installs: 594},
264  "{888d99e7-e8b5-46a3-851e-1ec45da1e644}": {minVersion: "45.0.0", installs: 581},
265  "[email protected]": {minVersion: "7.102.10.3646", installs: 580},
266  "{a6fd85ed-e919-4a43-a5af-8da18bda539f}": {minVersion: "2.9.1.1-signed", installs: 572},
267  "{0fc22c4c-93ed-48ea-ad12-dc8039cf3795}": {minVersion: "1.3", installs: 568},
268  "[email protected]": {minVersion: "1.0.13", installs: 565},
269  "[email protected]": {minVersion: "7.38.8.45860", installs: 563},
270  "[email protected]": {minVersion: "0.1.9", installs: 561},
271  "[email protected]": {minVersion: "3.2.7", installs: 557},
272  "[email protected]": {minVersion: "7.38.8.45270", installs: 551},
273  "{0545b830-f0aa-4d7e-8820-50a4629a56fe}": {minVersion: "31.0.9", installs: 531},
274  "[email protected]": {minVersion: "0.3.9.5", installs: 522},
275  "{77b819fa-95ad-4f2c-ac7c-486b356188a9}": {minVersion: "4.0.20130422.1-signed.1-signed", installs: 505},
276  "@true-key": {minVersion: "1.23.0.2433", installs: 501},
277  "[email protected]": {minVersion: "7.102.10.4932", installs: 499},
278  "{C7AE725D-FA5C-4027-BB4C-787EF9F8248A}": {minVersion: "1.0.0.4", installs: 494},
279  "[email protected]": {minVersion: "3.0.2", installs: 493},
280  "{3d7eb24f-2740-49df-8937-200b1cc08f8a}": {minVersion: "1.5.20", installs: 491},
281  "[email protected]": {minVersion: "7.38.8.56535", installs: 488},
282  "{7DD78D43-0962-4d9b-BC76-ABF13B3B2ED1}": {minVersion: "3.5.0.1428", installs: 484},
283  "[email protected]": {minVersion: "3.1", installs: 472},
284  "[email protected]": {minVersion: "4.0.10.15", installs: 463},
285  "[email protected]": {minVersion: "4.0.10.15", installs: 463},
286  "[email protected]": {minVersion: "1.1.1-signed.1-signed", installs: 463},
287  "[email protected]": {minVersion: "4.0.10.15", installs: 462},
288  "[email protected]": {minVersion: "4.0.10.15", installs: 461},
289  "{6d96bb5e-1175-4ebf-8ab5-5f56f1c79f65}": {minVersion: "0.9.8", installs: 457},
290  "[email protected]": {minVersion: "7.102.10.4983", installs: 456},
291  "{394DCBA4-1F92-4f8e-8EC9-8D2CB90CB69B}": {minVersion: "5.1.1", installs: 447},
292  "[email protected]": {minVersion: "7.102.10.4716", installs: 446},
293  "[email protected]": {minVersion: "2.2.1.1-signed", installs: 446},
294  "[email protected]": {minVersion: "0.9.7.1.1-signed.1-signed", installs: 442},
295  "@youtube_downloader": {minVersion: "0.0.9", installs: 435},
296  "[email protected]": {minVersion: "1.0.8", installs: 428},
297  "{d0bfdcce-52c7-4b32-bb45-948f62db8d3f}": {minVersion: "49.1", installs: 406},
298  "[email protected]": {minVersion: "7.102.10.4948", installs: 405},
299  "[email protected]": {minVersion: "1.2.4.1-signed.1-signed", installs: 405},
300  "[email protected]": {minVersion: "0.1.9", installs: 405},
301  "[email protected]": {minVersion: "1.2.3.1-signed", installs: 405},
302  "[email protected]": {minVersion: "3.1.2", installs: 401},
303  "[email protected]": {minVersion: "7.102.10.4817", installs: 397},
304  "{e001c731-5e37-4538-a5cb-8168736a2360}": {minVersion: "0.9.9.152", installs: 396},
305  "{95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}": {minVersion: "2.0.0.78", installs: 393},
306  "[email protected]": {minVersion: "7.102.10.4171", installs: 389},
307  "[email protected]": {minVersion: "1.5.2", installs: 387},
308  "[email protected]": {minVersion: "7.102.10.4260", installs: 383},
309  "[email protected]": {minVersion: "1.1.14", installs: 383},
310  "[email protected]": {minVersion: "7.102.10.4784", installs: 381},
311  "{c36177c0-224a-11da-8cd6-0800200c9a91}": {minVersion: "3.9.85.1-signed.1-signed", installs: 375},
312  "@searchincognito": {minVersion: "0.1.0", installs: 375},
313  "{f13b157f-b174-47e7-a34d-4815ddfdfeb8}": {minVersion: "0.9.89.1-signed.1-signed", installs: 373},
314  "[email protected]": {minVersion: "7.38.8.45962", installs: 372},
315  "{9c51bd27-6ed8-4000-a2bf-36cb95c0c947}": {minVersion: "11.0.1.1-signed.1-signed", installs: 370},
316  "[email protected]": {minVersion: "4.1.1-signed.1-signed", installs: 366},
317  "[email protected]": {minVersion: "0.1.1-signed.1-signed", installs: 366},
318  "{c2056674-a37f-4b29-9300-2004759d74fe}": {minVersion: "2.0.0.1090", installs: 361},
319  "[email protected]": {minVersion: "0.1.5", installs: 359},
320  "[email protected]": {minVersion: "2.1.3", installs: 355},
321  "[email protected]": {minVersion: "0.1.9", installs: 353},
322  "[email protected]": {minVersion: "1.2", installs: 350},
323  "[email protected]": {minVersion: "1.5", installs: 348},
324  "{F8A55C97-3DB6-4961-A81D-0DE0080E53CB}": {minVersion: "1.0.10", installs: 347},
325  "@FormsApp": {minVersion: "0.2.0", installs: 346},
326  "[email protected]": {minVersion: "3.9.3", installs: 343},
327  "[email protected]": {minVersion: "0.2.0", installs: 335},
328  "{e8f509f0-b677-11de-8a39-0800200c9a66}": {minVersion: "1.12.1-signed.1-let-fixed.1-signed", installs: 334},
329  "{37E4D8EA-8BDA-4831-8EA1-89053939A250}": {minVersion: "3.0.0.2.1-signed.1-signed", installs: 333},
330  "{c8d3bc80-0810-4d21-a2c2-be5f2b2832ac}": {minVersion: "0.98", installs: 332},
331  "{cb40da56-497a-4add-955d-3377cae4c33b}": {minVersion: "10.2.0.271", installs: 331},
332  "{5546F97E-11A5-46b0-9082-32AD74AAA920}": {minVersion: "0.76.1-signed.1-signed", installs: 325},
333  "[email protected]": {minVersion: "7.38.8.45925", installs: 324},
334  "[email protected]": {minVersion: "1.4.1.1-signed.1-signed", installs: 324},
335  "[email protected]": {minVersion: "3.6.1-signed.1-signed", installs: 317},
336  "[email protected]": {minVersion: "0.4.1-signed.1-signed", installs: 315},
337  "{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a}": {minVersion: "0.17.1-signed.1-signed", installs: 311},
338  "{D4DD63FA-01E4-46a7-B6B1-EDAB7D6AD389}": {minVersion: "0.9.10.1-signed.1-signed", installs: 311},
339  "{d7f46ca0-899d-11da-a72b-0800200c9a65}": {minVersion: "0.1.2.1-signed.1-signed", installs: 311},
340  "[email protected]": {minVersion: "1.6.0.1-signed", installs: 303},
341  "[email protected]": {minVersion: "7.38.8.56537", installs: 302},
342  "[email protected]": {minVersion: "7.38.8.45873", installs: 300},
343  "[email protected]": {minVersion: "0.1.9", installs: 300},
344  "[email protected]": {minVersion: "9.2.0.1026", installs: 293},
345  "[email protected]": {minVersion: "7.38.8.52880", installs: 289},
346  "{54e46280-0211-11e3-b778-0800200c9a66}": {minVersion: "0.3", installs: 285},
347  "[email protected]": {minVersion: "7.38.8.45977", installs: 284},
348  "[email protected]": {minVersion: "0.4.2.1-signed.1-signed", installs: 284},
349  "[email protected]": {minVersion: "1.1.2673", installs: 283},
350  "[email protected]": {minVersion: "7.102.10.5038", installs: 281},
351  "{b1df372d-8b32-4c7d-b6b4-9c5b78cf6fb1}": {minVersion: "0.87.1-signed.1-signed", installs: 281},
352  "[email protected]": {minVersion: "1.24.1-signed.1-signed", installs: 281},
353  "@90B817C8-8A5C-413B-9DDD-B2C61ED6E79A": {minVersion: "1.09", installs: 278},
354  "[email protected]": {minVersion: "5.2.1.1-signed.1-signed", installs: 278},
355  "[email protected]": {minVersion: "1.1.1.1-signed.1-signed", installs: 277},
356  "[email protected]": {minVersion: "2.3.1-signed.1-signed", installs: 275},
357  "{DEDA1132-B316-11DD-8BC1-4E5D56D89593}": {minVersion: "0.18", installs: 274},
358  "[email protected]": {minVersion: "7.102.10.3641", installs: 273},
359  "@youtubedownloadere": {minVersion: "0.0.1", installs: 273},
360  "[email protected]": {minVersion: "6.1.1", installs: 272},
361  "[email protected]": {minVersion: "7.102.10.4140", installs: 271},
362  "[email protected]": {minVersion: "1.0.21", installs: 271},
363  "{62DD0A97-FDD4-421b-94A5-D1A9434450C7}": {minVersion: "3.1", installs: 270},
364  "[email protected]": {minVersion: "3.2.9-compat-fixed-4", installs: 264},
365  "@phextension": {minVersion: "6.0.2", installs: 262},
366  "[email protected]": {minVersion: "0.1.9", installs: 262},
367  "{7f57cf46-4467-4c2d-adfa-0cba7c507e54}": {minVersion: "4.0.1", installs: 259},
368  "[email protected]": {minVersion: "1.0.4", installs: 255},
369  "[email protected]": {minVersion: "4.5.3.8", installs: 254},
370  "[email protected]": {minVersion: "4.5.3.8", installs: 254},
371  "{B821BF60-5C2D-41EB-92DC-3E4CCD3A22E4}": {minVersion: "4.3.1.10", installs: 252},
372  "@E9438230-A7DF-4D1F-8F2D-CA1D0F0F7924": {minVersion: "1.08.8.66", installs: 252},
373  "[email protected]": {minVersion: "2.1.8", installs: 250},
374  "{20a82645-c095-46ed-80e3-08825760534b}": {minVersion: "1.3.1.1-signed", installs: 246},
375  "{a192bf54-089f-4325-ac25-7eafcd17a342}": {minVersion: "3.2", installs: 246},
376  "[email protected]": {minVersion: "1.44.275", installs: 244},
377  "[email protected]": {minVersion: "3.1.8.1-signed.1-signed", installs: 244},
378  "[email protected]": {minVersion: "19.6.0.592", installs: 243},
379  "@windscribeff": {minVersion: "0.1.43", installs: 242},
380  "[email protected]": {minVersion: "3.3.3", installs: 240},
381  "{53A03D43-5363-4669-8190-99061B2DEBA5}": {minVersion: "1.5.14", installs: 239},
382  "@offersolymp": {minVersion: "0.0.2", installs: 238},
383  "[email protected]": {minVersion: "1.0.2", installs: 238},
384  "{62760FD6-B943-48C9-AB09-F99C6FE96088}": {minVersion: "4.2.9", installs: 236},
385  "[email protected]": {minVersion: "2.1.4", installs: 236},
386  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 236},
387  "[email protected]": {minVersion: "2.0.1-signed", installs: 235},
388  "[email protected]": {minVersion: "7.102.10.3738", installs: 234},
389  "[email protected]": {minVersion: "1.8.9.1-signed.1-signed", installs: 234},
390  "[email protected]": {minVersion: "7.38.8.45834", installs: 232},
391  "{ea4637dc-e014-4c17-9c2c-879322d23268}": {minVersion: "2.1.1-signed.1-signed", installs: 229},
392  "{4DC70064-89E2-4a55-8FC6-E8CDEAE3618C}": {minVersion: "0.7.7.1-signed.1-signed", installs: 228},
393  "[email protected]": {minVersion: "3.5", installs: 228},
394  "[email protected]": {minVersion: "1.5.9.1-signed.1-signed", installs: 228},
395  "[email protected]": {minVersion: "7.102.10.4865", installs: 227},
396  "@safesearchincognito": {minVersion: "0.1.8", installs: 226},
397  "[email protected]": {minVersion: "1.0.3", installs: 224},
398  "@stopads": {minVersion: "0.0.4", installs: 224},
399  "[email protected]": {minVersion: "1.0.1", installs: 224},
400  "[email protected]": {minVersion: "1.6.1-signed.1-signed", installs: 223},
401  "{146f1820-2b0d-49ef-acbf-d85a6986e10c}": {minVersion: "0.1.9.3.1-signed.1-signed", installs: 222},
402  "{b2bfe60c-eef8-4e20-8334-c53afdc1ffdd}": {minVersion: "3.2", installs: 222},
403  "{b7870b41-bfb3-44cd-8cc2-e392e51b0874}": {minVersion: "3.8", installs: 222},
404  "[email protected]": {minVersion: "0.1.9.3.1-signed", installs: 221},
405  "[email protected]": {minVersion: "0.8.5.1-signed.1-signed", installs: 221},
406  "{7a526449-3a92-426f-8ca4-47439918f2b1}": {minVersion: "3.2", installs: 219},
407  "[email protected]": {minVersion: "0.0.0.6", installs: 219},
408  "{54FBE89E-C878-46bb-A064-AB327EE26EBC}": {minVersion: "3.8", installs: 214},
409  "[email protected]": {minVersion: "0.2.2", installs: 214},
410  "{eb8fff7e-1dce-4f3f-a51d-d9513ed6bab4}": {minVersion: "3.8", installs: 211},
411  "[email protected]": {minVersion: "2.0.2", installs: 211},
412  "{7e80e173-7e63-464e-8252-fe170b15c15a}": {minVersion: "2.3", installs: 210},
413  "{35d6291e-1d4b-f9b4-c52f-77e6410d1326}": {minVersion: "4.11.1.0", installs: 209},
414  "{3c59c791-aeec-44bb-af60-ff112eea18e3}": {minVersion: "3.2", installs: 209},
415  "{90477448-b59c-48cd-98af-6a298cbc15d2}": {minVersion: "3.8", installs: 209},
416  "{24d26487-6274-48b1-b500-22f24884f971}": {minVersion: "2.3", installs: 208},
417  "{b7389dbc-6646-412f-bbd5-53168ee68a98}": {minVersion: "49", installs: 208},
418  "{22181a4d-af90-4ca3-a569-faed9118d6bc}": {minVersion: "11.0.0.1181", installs: 207},
419  "[email protected]": {minVersion: "0.76.1-signed.1-signed", installs: 207},
420  "@com.virtualjame.disableads": {minVersion: "0.1.0", installs: 206},
421  "{9AA46F4F-4DC7-4c06-97AF-6665170634FE}": {minVersion: "1.11.6.1-signed.1-signed", installs: 205},
422  "[email protected]": {minVersion: "1.1.5", installs: 204},
423  "[email protected]": {minVersion: "7.102.10.4176", installs: 202},
424  "[email protected]": {minVersion: "1.8.1-signed.1-signed", installs: 201},
425  "[email protected]": {minVersion: "0.8.1-signed.1-signed", installs: 201},
426  "[email protected]": {minVersion: "1.3.8", installs: 200},
427  "[email protected]": {minVersion: "7.102.10.4775", installs: 199},
428  "[email protected]": {minVersion: "0.1.9", installs: 199},
429  "[email protected]": {minVersion: "2.5.1-signed.1-signed", installs: 199},
430  "[email protected]": {minVersion: "1.0.1", installs: 199},
431  "[email protected]": {minVersion: "3.0.28", installs: 199},
432  "{65e41d20-f092-41b7-bb83-c6e8a9ab0f57}": {minVersion: "1.2.6", installs: 198},
433  "[email protected]": {minVersion: "1.11", installs: 197},
434  "{1b80ae74-4912-44fc-9f27-30f9252a5ad7}": {minVersion: "2.3", installs: 197},
435  "{c9b4cd26-6f0e-4972-a9e0-8b77e811aa8f}": {minVersion: "2.3", installs: 197},
436  "[email protected]": {minVersion: "2013.3.23.1", installs: 197},
437  "[email protected]": {minVersion: "0.2.23.1-signed.1-signed", installs: 197},
438  "[email protected]": {minVersion: "4.4.1.1-signed.1-signed", installs: 197},
439  "[email protected]": {minVersion: "7.102.10.4330", installs: 196},
440  "[email protected]": {minVersion: "1.3.4.1-signed.1-signed", installs: 196},
441  "[email protected]": {minVersion: "1.3.2", installs: 195},
442  "[email protected]": {minVersion: "0.9.1-signed.1-signed", installs: 195},
443  "{51aa69f8-8825-4def-916a-a766c5e3c0fd}": {minVersion: "3.8", installs: 194},
444  "{2bc72c53-9bde-4db2-8479-eda9a5e71f4e}": {minVersion: "3.2", installs: 193},
445  "{a95d8332-e4b4-6e7f-98ac-20b733364387}": {minVersion: "1.0.5", installs: 191},
446  "[email protected]": {minVersion: "1.1", installs: 191},
447  "{d3b9472c-f8b1-4a10-935b-1087bac8417f}": {minVersion: "3.8", installs: 189},
448  "[email protected]": {minVersion: "1.6", installs: 188},
449  "[email protected]": {minVersion: "1.00.17.1-signed.1-signed", installs: 187},
450  "{3e0e7d2a-070f-4a47-b019-91fe5385ba79}": {minVersion: "3.6.5.2", installs: 185},
451  "[email protected]": {minVersion: "0.4.0", installs: 185},
452  "@greatdealz": {minVersion: "0.0.3", installs: 184},
453  "[email protected]": {minVersion: "7.4.0.1-signed", installs: 183},
454  "{c2fc3c2b-a65a-453c-bf95-101fde56ed1d}": {minVersion: "2.3", installs: 182},
455  "{53152e75-fd90-472f-9d30-5cba3679eab9}": {minVersion: "48.3", installs: 180},
456  "[email protected]": {minVersion: "3.0.12.1.1-signed.1-signed", installs: 180},
457  "[email protected]": {minVersion: "7.102.10.14166", installs: 179},
458  "[email protected]": {minVersion: "0.92", installs: 179},
459  "[email protected]": {minVersion: "1.3.1-signed.1-signed", installs: 178},
460  "{60B7679C-BED9-11E5-998D-8526BB8E7F8B}": {minVersion: "6.3", installs: 177},
461  "@pdfit": {minVersion: "0.1.9", installs: 177},
462  "[email protected]": {minVersion: "0.2.1", installs: 177},
463  "[email protected]": {minVersion: "7.38.8.46626", installs: 175},
464  "{4BBDD651-70CF-4821-84F8-2B918CF89CA3}": {minVersion: "8.9.3.1", installs: 173},
465  "[email protected]": {minVersion: "1.0.3", installs: 172},
466  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 171},
467  "{c50ca3c4-5656-43c2-a061-13e717f73fc8}": {minVersion: "5.0.1.48.1-signed.1-signed", installs: 170},
468  "[email protected]": {minVersion: "1.2.0.1-signed.1-signed", installs: 170},
469  "[email protected]": {minVersion: "7.1.0", installs: 169},
470  "{4cc4a13b-94a6-7568-370d-5f9de54a9c7f}": {minVersion: "2.7.1-signed.1-signed", installs: 168},
471  "{aa84ce40-4253-a00a-8cd6-0800200f9a67}": {minVersion: "3.12.0", installs: 168},
472  "[email protected]": {minVersion: "3.9.9Lite.1-signed.1-signed", installs: 167},
473  "{6cc0f0f7-a6e2-4834-9682-24de2229b51e}": {minVersion: "23.6", installs: 166},
474  "{b749fc7c-e949-447f-926c-3f4eed6accfe}": {minVersion: "0.7.1.1.1-signed.1-signed", installs: 166},
475  "@mendeleyimporter": {minVersion: "1.6.8", installs: 166},
476  "[email protected]": {minVersion: "1.4.11", installs: 166},
477  "{4093c4de-454a-4329-8aff-c6b0b123c386}": {minVersion: "0.8.14.1-signed.1-signed", installs: 165},
478  "[email protected]": {minVersion: "5.12", installs: 164},
479  "[email protected]": {minVersion: "1.0.1.11", installs: 163},
480  "{b0e1b4a6-2c6f-4e99-94f2-8e625d7ae255}": {minVersion: "3.5.0.1-signed.1-signed", installs: 162},
481  "[email protected]": {minVersion: "3.0.6.1-signed", installs: 161},
482  "safesearchpl[email protected]": {minVersion: "1.4.1.371", installs: 161},
483  "[email protected]": {minVersion: "7.102.10.3833", installs: 159},
484  "[email protected]": {minVersion: "1.1.0.3", installs: 159},
485  "[email protected]": {minVersion: "0.20.1-signed.1-signed", installs: 157},
486  "[email protected]": {minVersion: "1.0.1-signed.1-signed", installs: 157},
487  "{00f7ab9f-62f4-4145-b2f9-38d579d639f6}": {minVersion: "49", installs: 156},
488  "[email protected]": {minVersion: "7.5", installs: 156},
489  "[email protected]": {minVersion: "219", installs: 156},
490  "[email protected]": {minVersion: "11.0.1", installs: 155},
491  "[email protected]": {minVersion: "1.1.42", installs: 155},
492  "{0538E3E3-7E9B-4d49-8831-A227C80A7AD3}": {minVersion: "2.2.2.1-signed.1-let-fixed.1-signed", installs: 154},
493  "{73007fef-a6e0-47d3-b4e7-dfc116ed6f65}": {minVersion: "1.15.1-signed.1-signed", installs: 153},
494  "{cd617372-6743-4ee4-bac4-fbf60f35719e}": {minVersion: "2.0.1-signed.1-signed", installs: 152},
495  "[email protected]": {minVersion: "0.1.9", installs: 152},
496  "[email protected]": {minVersion: "2.5.0", installs: 151},
497  "[email protected]": {minVersion: "7.102.10.5052", installs: 149},
498  "[email protected]": {minVersion: "2.1.0", installs: 149},
499  "[email protected]": {minVersion: "2.0.3", installs: 149},
500  "[email protected]": {minVersion: "4.5.3.8", installs: 148},
501  "[email protected]": {minVersion: "0.7.4", installs: 148},
502  "[email protected]": {minVersion: "16.0.528.1-signed.1-signed", installs: 147},
503  "{6E727987-C8EA-44DA-8749-310C0FBE3C3E}": {minVersion: "2.0.0.11", installs: 146},
504  "{1082eb84-f0f2-11e5-8e18-9bb85ab7992e}": {minVersion: "1.07", installs: 146},
505  "{c151d79e-e61b-4a90-a887-5a46d38fba99}": {minVersion: "2.8.8", installs: 146},
506  "[email protected]": {minVersion: "1.1.3", installs: 145},
507  "[email protected]": {minVersion: "1.1.1-signed.1-signed", installs: 144},
508  "[email protected]": {minVersion: "3.0.1.1-signed", installs: 144},
509  "[email protected]": {minVersion: "7.38.9.7920", installs: 143},
510  "[email protected]": {minVersion: "0.979.1-signed.1-signed", installs: 142},
511  "@A3592ADB-854A-443A-854E-EB92130D470D": {minVersion: "1.08.8.88", installs: 139},
512  "[email protected]": {minVersion: "0.1.9", installs: 139},
513  "[email protected]": {minVersion: "4.3.0", installs: 138},
514  "[email protected]": {minVersion: "0.4.1.1-signed.1-signed", installs: 137},
515  "[email protected]": {minVersion: "8.20.3.1", installs: 137},
516  "[email protected]": {minVersion: "7.102.10.3775", installs: 135},
517  "[email protected]": {minVersion: "1.0.0", installs: 134},
518  "{d57c9ff1-6389-48fc-b770-f78bd89b6e8a}": {minVersion: "1.46.1-signed.1-signed", installs: 133},
519  "@searchlock-fx": {minVersion: "1.1.6", installs: 133},
520  "[email protected]": {minVersion: "0.0.2", installs: 133},
521  "[email protected]": {minVersion: "1.31.1-signed.1-signed", installs: 133},
522  "{065829BC-17B5-4C0B-9429-3173C361092E}": {minVersion: "1.0.8", installs: 132},
523  "{ada4b710-8346-4b82-8199-5de2b400a6ae}": {minVersion: "2.1.5.5.3", installs: 132},
524  "[email protected]": {minVersion: "10.2.1.7.1-signed", installs: 131},
525  "{d48a39ba-8f80-4fce-8ee1-bc710561c55d}": {minVersion: "3.1.0.1-signed.1-signed", installs: 131},
526  "[email protected]": {minVersion: "1.0.2.1-signed.1-signed", installs: 130},
527  "[email protected]": {minVersion: "0.1.2", installs: 130},
528  "[email protected]": {minVersion: "2.3", installs: 129},
529  "[email protected]": {minVersion: "4.14.20", installs: 127},
530  "[email protected]": {minVersion: "7.38.8.45832", installs: 126},
531  "[email protected]": {minVersion: "3.4.6.1-signed.1-signed", installs: 126},
532  "[email protected]": {minVersion: "0.9.5.6", installs: 126},
533  "{ce7e73df-6a44-4028-8079-5927a588c948}": {minVersion: "1.1.4", installs: 125},
534  "{E71B541F-5E72-5555-A47C-E47863195841}": {minVersion: "3.0.3", installs: 125},
535  "{F5DDF39C-9293-4d5e-9AA8-E04E6DD5E9B4}": {minVersion: "1.6.3.1-signed.1-signed", installs: 125},
536  "@simplepopupblocker": {minVersion: "1.2.1", installs: 125},
537  "[email protected]": {minVersion: "0.13", installs: 125},
538  "[email protected]": {minVersion: "2.8", installs: 125},
539  "[email protected]": {minVersion: "7.38.8.46604", installs: 124},
540  "{71328583-3CA7-4809-B4BA-570A85818FBB}": {minVersion: "0.8.6.3.1-let-fixed", installs: 123},
541  "[email protected]": {minVersion: "1.9.3", installs: 123},
542  "@google-translate-menu": {minVersion: "1.0.1", installs: 122},
543  "[email protected]": {minVersion: "7.39.8.50909", installs: 121},
544  "{8620c15f-30dc-4dba-a131-7c5d20cf4a29}": {minVersion: "3.9", installs: 121},
545  "{eb4b28c8-7f2d-4327-a00c-40de4299ba44}": {minVersion: "1.7", installs: 121},
546  "[email protected]": {minVersion: "1.2.1-signed.1-signed", installs: 121},
547  "[email protected]": {minVersion: "0.4.1", installs: 121},
548  "{1B33E42F-EF14-4cd3-B6DC-174571C4349C}": {minVersion: "4.7", installs: 120},
549  "[email protected]": {minVersion: "7.38.8.46371", installs: 120},
550  "{95ab36d4-fb6f-47b0-8b8d-e5f3bd547953}": {minVersion: "4.20.13.1-signed.1-signed", installs: 120},
551  "[email protected]": {minVersion: "4.0.6", installs: 120},
552  "[email protected]": {minVersion: "1.4.2", installs: 120},
553  "{15e67a59-bd3d-49ae-90dd-b3d3fd14c2ed}": {minVersion: "1.0.3.1-signed.1-signed", installs: 119},
554  "{c37bac34-849a-4d28-be41-549b2c76c64e}": {minVersion: "2.6", installs: 119},
555  "{03B08592-E5B4-45ff-A0BE-C1D975458688}": {minVersion: "1.1.1-signed.1-signed", installs: 118},
556  "[email protected]": {minVersion: "1.0.2.1-signed.1-signed", installs: 118},
557  "[email protected]": {minVersion: "0.1.9", installs: 118},
558  "@kikikokicicidada": {minVersion: "2.1.2", installs: 117},
559  "{9D6218B8-03C7-4b91-AA43-680B305DD35C}": {minVersion: "4.0.5", installs: 116},
560  "[email protected]": {minVersion: "1.17.0", installs: 116},
561  "{22119944-ED35-4ab1-910B-E619EA06A115}": {minVersion: "7.9.21.5", installs: 115},
562  "[email protected]": {minVersion: "9.6.3", installs: 115},
563  "[email protected]": {minVersion: "2.2.1", installs: 115},
564  "[email protected]": {minVersion: "2.00.1-signed.1-signed", installs: 115},
565  "[email protected]": {minVersion: "0.1.9", installs: 115},
566  "[email protected]": {minVersion: "2.04.20110724.1-signed.1-signed", installs: 113},
567  "[email protected]": {minVersion: "1.3.2.1-signed.1-signed", installs: 113},
568  "[email protected]rg": {minVersion: "1.9.4", installs: 113},
569  "{d49a148e-817e-4025-bee3-5d541376de3b}": {minVersion: "3.1.1-signed.1-signed", installs: 112},
570  "[email protected]": {minVersion: "1.6.1-signed.1-signed", installs: 111},
571  "[email protected]": {minVersion: "2.9", installs: 110},
572  "[email protected]": {minVersion: "2.3.1-signed.1-signed", installs: 110},
573  "[email protected]": {minVersion: "1.0.1-signed.1-signed", installs: 110},
574  "{7CA9CF31-1C73-46CD-8377-85AB71EA771F}": {minVersion: "5.0.12", installs: 109},
575  "[email protected]": {minVersion: "1.2.3", installs: 108},
576  "{0AA9101C-D3C1-4129-A9B7-D778C6A17F82}": {minVersion: "2.09.1-signed", installs: 107},
577  "[email protected]": {minVersion: "1.0.1-signed.1-signed", installs: 107},
578  "[email protected]": {minVersion: "0.25.1-signed.1-signed", installs: 107},
579  "{19EB90DC-A456-458b-8AAC-616D91AAFCE1}": {minVersion: "1.0.1-signed", installs: 105},
580  "[email protected]": {minVersion: "4.5.0", installs: 105},
581  "[email protected]": {minVersion: "0.3.1.1-signed", installs: 105},
582  "[email protected]": {minVersion: "0.1.9", installs: 105},
583  "{7affbfae-c4e2-4915-8c0f-00fa3ec610a1}": {minVersion: "6.36.32", installs: 104},
584  "[email protected]": {minVersion: "0.19.6.9.1-signed.1-signed", installs: 104},
585  "[email protected]": {minVersion: "0.1.9", installs: 104},
586  "[email protected]": {minVersion: "0.7.2.1-signed.1-signed", installs: 104},
587  "[email protected]": {minVersion: "3.1.18", installs: 104},
588  "{8b86149f-01fb-4842-9dd8-4d7eb02fd055}": {minVersion: "0.26.1-signed.1-signed", installs: 103},
589  "[email protected]": {minVersion: "9.3.2.1-signed", installs: 103},
590  "[email protected]": {minVersion: "1.0.12.1-signed.1-signed", installs: 103},
591  "[email protected]": {minVersion: "7.102.10.3790", installs: 102},
592  "{b6b1a201-b252-484f-b9fe-68efbb273fbd}": {minVersion: "1.10.1-signed.1-signed", installs: 102},
593  "[email protected]": {minVersion: "4.9.1", installs: 102},
594  "[email protected]": {minVersion: "7.102.10.4735", installs: 101},
595  "{2e17e2b2-b8d4-4a67-8d7b-fafa6cc9d1d0}": {minVersion: "1.2.7.0.1-signed.1-signed", installs: 101},
596  "{ea61041c-1e22-4400-99a0-aea461e69d04}": {minVersion: "0.2.4.1-signed.1-signed", installs: 101},
597  "[email protected]": {minVersion: "1.4.0.1.1-signed.1-signed", installs: 101},
598  "[email protected]": {minVersion: "7.38.8.45918", installs: 100},
599  "{9aad3da6-6c46-4ef0-9109-6df5eaaf597c}": {minVersion: "1.4.1.1-signed.1-signed", installs: 100},
600  "{c2b1f3ae-5cd5-49b7-8a0c-2c3bcbbbb294}": {minVersion: "1.1.1-signed.1-signed", installs: 100},
601  "[email protected]": {minVersion: "1.6.8.1-signed", installs: 100},
602  "[email protected]": {minVersion: "7.102.10.3597", installs: 99},
603  "[email protected]": {minVersion: "10.6.2", installs: 99},
604  "{1a5dabbd-0e74-41da-b532-a364bb552cab}": {minVersion: "1.0.9.1-signed", installs: 98},
605  "[email protected]": {minVersion: "0.7.4.1-signed.1-signed", installs: 98},
606  "[email protected]": {minVersion: "0.8.2", installs: 98},
607  "[email protected]": {minVersion: "0.1.9", installs: 98},
608  "{3b56bcc7-54e5-44a2-9b44-66c3ef58c13e}": {minVersion: "0.9.7.4", installs: 97},
609  "[email protected]": {minVersion: "1.21", installs: 97},
610  "[email protected]": {minVersion: "12.9", installs: 97},
611  "[email protected]": {minVersion: "1.1.4", installs: 97},
612  "@Radio": {minVersion: "0.2.0", installs: 96},
613  "[email protected]": {minVersion: "7.102.10.4142", installs: 96},
614  "[email protected]": {minVersion: "2.0.4", installs: 96},
615  "[email protected]": {minVersion: "2.01.160101", installs: 96},
616  "{7c6cdf7c-8ea8-4be7-ae5a-0b3effe14d66}": {minVersion: "49.1", installs: 95},
617  "{FDBAD97E-A258-4fe3-9CF6-60CF386C4422}": {minVersion: "2.0.1.6", installs: 95},
618  "[email protected]": {minVersion: "1.5.1", installs: 95},
619  "[email protected]": {minVersion: "0.1.6", installs: 95},
620  "{9EB34849-81D3-4841-939D-666D522B889A}": {minVersion: "2.4.0.157", installs: 94},
621  "{158d7cb3-7039-4a75-8e0b-3bd0a464edd2}": {minVersion: "2.7.1-signed.1-signed", installs: 94},
622  "[email protected]": {minVersion: "0.1.1-signed.1-signed", installs: 94},
623  "[email protected]": {minVersion: "2.1.0.1-signed.1-signed", installs: 94},
624  "{f36c6cd1-da73-491d-b290-8fc9115bfa55}": {minVersion: "3.0.9.1-signed.1-let-fixed.1-signed", installs: 93},
625  "[email protected]": {minVersion: "1.4.12", installs: 93},
626  "[email protected]": {minVersion: "0.8.14", installs: 93},
627  "[email protected]": {minVersion: "4.0.0", installs: 93},
628  "[email protected]": {minVersion: "7.102.10.3607", installs: 92},
629  "[email protected]": {minVersion: "3.9.78", installs: 92},
630  "[email protected]": {minVersion: "2.0.1-signed.1-signed", installs: 92},
631  "{5F590AA2-1221-4113-A6F4-A4BB62414FAC}": {minVersion: "0.45.8.20130519.3.1-signed.1-signed", installs: 90},
632  "{3e9bb2a7-62ca-4efa-a4e6-f6f6168a652d}": {minVersion: "2.7.7.1-signed.1-signed", installs: 90},
633  "{ab4b5718-3998-4a2c-91ae-18a7c2db513e}": {minVersion: "1.2.0.1-signed.1-signed", installs: 90},
634  "[email protected]": {minVersion: "5.0.94.0", installs: 90},
635  "[email protected]": {minVersion: "2.0.5", installs: 90},
636  "[email protected]": {minVersion: "3.3.1-signed.1-signed", installs: 90},
637  "{a949831f-d9c0-45ae-8c60-91c2a86fbfb6}": {minVersion: "0.2.1-signed.1-signed", installs: 89},
638  "@vpn-unlimited-secure-proxy": {minVersion: "4.4", installs: 89},
639  "[email protected]": {minVersion: "0.6.1-signed.1-signed", installs: 89},
640  "[email protected]": {minVersion: "7.102.10.4129", installs: 88},
641  "{065ee92a-ad57-42a2-b6d5-466b6fd8e24d}": {minVersion: "0.11.6.1-signed.1-signed", installs: 88},
642  "{455D905A-D37C-4643-A9E2-F6FEFAA0424A}": {minVersion: "0.8.17.1-signed.1-signed", installs: 88},
643  "{7eb3f691-25b4-4a85-9038-9e57e2bcd537}": {minVersion: "0.4.4.1-signed.1-signed", installs: 88},
644  "[email protected]": {minVersion: "0.1.9", installs: 88},
645  "[email protected]": {minVersion: "0.9.13", installs: 88},
646  "[email protected]": {minVersion: "0.1.9", installs: 88},
647  "[email protected]": {minVersion: "0.2.38.1-signed.1-signed", installs: 88},
648  "[email protected]": {minVersion: "7.102.10.3604", installs: 87},
649  "[email protected]": {minVersion: "10.161.13.1002", installs: 87},
650  "[email protected]": {minVersion: "1.2.0", installs: 87},
651  "[email protected]": {minVersion: "2.8.2", installs: 87},
652  "[email protected]": {minVersion: "0.1.5", installs: 87},
653  "[email protected]": {minVersion: "0.8.3.0", installs: 87},
654  "[email protected]": {minVersion: "0.6.20", installs: 86},
655  "[email protected]": {minVersion: "0.0.16", installs: 86},
656  "[email protected]": {minVersion: "5.1.0.2", installs: 86},
657  "[email protected]": {minVersion: "1.6.3", installs: 86},
658  "{725fc0a6-1f6b-4cf9-ae17-748d111dc16d}": {minVersion: "1.1.0", installs: 85},
659  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 85},
660  "[email protected]": {minVersion: "1.1.0", installs: 85},
661  "[email protected]": {minVersion: "0.4.1-signed", installs: 84},
662  "[email protected]": {minVersion: "7.102.10.4280", installs: 84},
663  "{023e9ca0-63f3-47b1-bcb2-9badf9d9ef28}": {minVersion: "4.4.3.1-signed.1-signed", installs: 84},
664  "{25A1388B-6B18-46c3-BEBA-A81915D0DE8F}": {minVersion: "1.7.8.5.1-signed.1-signed", installs: 84},
665  "{75493B06-1504-4976-9A55-B6FE240FF0BF}": {minVersion: "3.4.0.0", installs: 84},
666  "[email protected]": {minVersion: "2.91", installs: 84},
667  "[email protected]": {minVersion: "0.5.1", installs: 84},
668  "[email protected]": {minVersion: "7.102.10.4792", installs: 83},
669  "{761a54f1-8ccf-4112-9e48-dbf72adf6244}": {minVersion: "2.3.1-signed.1-signed", installs: 83},
670  "{BBB77B49-9FF4-4d5c-8FE2-92B1D6CD696C}": {minVersion: "2.0.0.1083", installs: 83},
671  "{a3a5c777-f583-4fef-9380-ab4add1bc2a2}": {minVersion: "2.1.4", installs: 82},
672  "{eb80b076-a444-444c-a590-5aee5d977d80}": {minVersion: "2.6.18", installs: 82},
673  "[email protected]": {minVersion: "4.10.0", installs: 82},
674  "[email protected]": {minVersion: "1.3", installs: 82},
675  "[email protected]": {minVersion: "0.7.28.20141004.1-signed.1-signed", installs: 81},
676  "@autofillanyforms-easytatkal": {minVersion: "7.51.0", installs: 81},
677  "@youtuberightclick": {minVersion: "0.0.3", installs: 81},
678  "[email protected]": {minVersion: "0.4b2.2013051811.1-signed.1-let-fixed.1-signed", installs: 80},
679  "{e33788ea-0bb9-4502-9c77-bdc551afc8ad}": {minVersion: "1.0.4", installs: 80},
680  "[email protected]": {minVersion: "1.3.4", installs: 80},
681  "[email protected]": {minVersion: "2.7.0", installs: 80},
682  "[email protected]": {minVersion: "2.0.0", installs: 80},
683  "[email protected]": {minVersion: "7.38.8.45917", installs: 79},
684  "{6614d11d-d21d-b211-ae23-815234e1ebb5}": {minVersion: "3.9.13", installs: 79},
685  "[email protected].com": {minVersion: "0.1.9", installs: 79},
686  "{4204c864-50bf-467a-95b3-0912b7f15869}": {minVersion: "1.2.00.1-signed.1-signed", installs: 78},
687  "{987311C6-B504-4aa2-90BF-60CC49808D42}": {minVersion: "3.1-signed.1-signed", installs: 78},
688  "[email protected]": {minVersion: "2.1.1-signed.1-let-fixed.1-signed", installs: 77},
689  "[email protected]": {minVersion: "2.0.1-signed.1-signed", installs: 77},
690  "[email protected]": {minVersion: "0.1.5.1-signed.1-signed", installs: 77},
691  "[email protected]": {minVersion: "1.15", installs: 77},
692  "[email protected]": {minVersion: "7.102.10.4185", installs: 76},
693  "[email protected]": {minVersion: "7.36.8.15623", installs: 76},
694  "[email protected]": {minVersion: "1.9.6.1-signed.1-signed", installs: 76},
695  "[email protected]": {minVersion: "1.3.2", installs: 76},
696  "[email protected]": {minVersion: "3.1.1", installs: 76},
697  "[email protected]": {minVersion: "1.0.4", installs: 76},
698  "[email protected]": {minVersion: "7.3.0.2", installs: 76},
699  "[email protected]": {minVersion: "1.15.1-signed.1-signed", installs: 76},
700  "{02450954-cdd9-410f-b1da-db804e18c671}": {minVersion: "0.96.3.1-signed.1-signed", installs: 75},
701  "{4176DFF4-4698-11DE-BEEB-45DA55D89593}": {minVersion: "0.8.50.1-signed.1-signed", installs: 75},
702  "{DAD0F81A-CF67-4eed-98D6-26F6E47274CA}": {minVersion: "1.8.1-signed.1-signed", installs: 75},
703  "[email protected]": {minVersion: "0.0.0.1", installs: 75},
704  "[email protected]": {minVersion: "1.4.1-signed.1-signed", installs: 75},
705  "[email protected]": {minVersion: "1.23", installs: 75},
706  "[email protected]": {minVersion: "7.38.9.7654", installs: 74},
707  "[email protected]": {minVersion: "1.5.11", installs: 74},
708  "[email protected]": {minVersion: "0.1", installs: 74},
709  "[email protected]": {minVersion: "1.2", installs: 74},
710  "[email protected]": {minVersion: "0.1.9", installs: 74},
711  "{E173B749-DB5B-4fd2-BA0E-94ECEA0CA55B}": {minVersion: "7.4.1-signed", installs: 73},
712  "{9BAE5926-8513-417d-8E47-774955A7C60D}": {minVersion: "1.1.1d.1-signed.1-signed", installs: 73},
713  "{3cc6c6ba-654c-417e-a8af-6997ac388ae1}": {minVersion: "49", installs: 72},
714  "{daf44bf7-a45e-4450-979c-91cf07434c3d}": {minVersion: "2.0.5", installs: 72},
715  "{dbac9680-d559-4cd4-9765-059879e8c467}": {minVersion: "5.0.5", installs: 72},
716  "[email protected]": {minVersion: "4.5.0", installs: 72},
717  "[email protected]": {minVersion: "1.5.9", installs: 71},
718  "[email protected]": {minVersion: "0.7.1-signed.1-signed", installs: 71},
719  "[email protected]": {minVersion: "2.0.16.1-signed", installs: 71},
720  "[email protected]": {minVersion: "1.1.2", installs: 71},
721  "[email protected]": {minVersion: "1.0.1.1-signed.1-signed", installs: 71},
722  "[email protected]": {minVersion: "0.8.1-signed", installs: 70},
723  "[email protected]": {minVersion: "7.38.8.45828", installs: 70},
724  "{5e594888-3e8e-47da-b2c6-b0b545112f84}": {minVersion: "1.3.18", installs: 70},
725  "@greatdealzu": {minVersion: "0.0.3", installs: 70},
726  "[email protected]": {minVersion: "7.36.8.15938", installs: 70},
727  "[email protected]": {minVersion: "0.3.1-signed.1-signed", installs: 70},
728  "{6e84150a-d526-41f1-a480-a67d3fed910d}": {minVersion: "1.5.6.1-signed.1-signed", installs: 69},
729  "[email protected]": {minVersion: "1.4.3.1-signed.1-signed", installs: 69},
730  "[email protected]": {minVersion: "2.8.3.1-signed.1-signed", installs: 69},
731  "[email protected]": {minVersion: "7.2.0f90", installs: 69},
732  "{ef4e370e-d9f0-4e00-b93e-a4f274cfdd5a}": {minVersion: "1.4.10.1-signed", installs: 68},
733  "{d4e0dc9c-c356-438e-afbe-dca439f4399d}": {minVersion: "49.1", installs: 68},
734  "{E6C93316-271E-4b3d-8D7E-FE11B4350AEB}": {minVersion: "2.1.25.1-signed.1-signed", installs: 68},
735  "{fa8476cf-a98c-4e08-99b4-65a69cb4b7d4}": {minVersion: "1.7.6.1", installs: 68},
736  "[email protected]": {minVersion: "1.1.1-signed.1-signed", installs: 68},
737  "[email protected]": {minVersion: "7.102.10.4853", installs: 67},
738  "{6e764c17-863a-450f-bdd0-6772bd5aaa18}": {minVersion: "1.0.3.1-signed.1-signed", installs: 67},
739  "[email protected]": {minVersion: "0.7.2.9", installs: 67},
740  "[email protected]": {minVersion: "4.5.0", installs: 67},
741  "[email protected]": {minVersion: "1.2.3", installs: 67},
742  "[email protected]": {minVersion: "2.0.1.1-signed.1-signed", installs: 67},
743  "[email protected]": {minVersion: "1.0.3.1-signed.1-signed", installs: 67},
744  "[email protected]": {minVersion: "1.0.1.1-signed.1-signed", installs: 67},
745  "[email protected]": {minVersion: "127.25", installs: 67},
746  "{524B8EF8-C312-11DB-8039-536F56D89593}": {minVersion: "4.91.0.0", installs: 66},
747  "{9d1f059c-cada-4111-9696-41a62d64e3ba}": {minVersion: "0.17.0.1", installs: 66},
748  "{B068AC18-0121-4e67-9A7E-6386F93F4F7A}": {minVersion: "2.4", installs: 66},
749  "@lottadealsun": {minVersion: "0.0.1", installs: 66},
750  "@thebestyoutubedownloader": {minVersion: "1.0.0.7", installs: 66},
751  "[email protected]": {minVersion: "0.1.9", installs: 66},
752  "{11483926-db67-4190-91b1-ef20fcec5f33}": {minVersion: "0.4.9.1", installs: 65},
753  "{8AA36F4F-6DC7-4c06-77AF-5035170634FE}": {minVersion: "2016.9.16", installs: 65},
754  "[email protected]": {minVersion: "5.0.7", installs: 65},
755  "[email protected]": {minVersion: "4.5.13", installs: 65},
756  "[email protected]": {minVersion: "2.8.1.1-signed.1-signed", installs: 65},
757  "{95322c08-05ff-4f3c-85fd-8ceb821988dd}": {minVersion: "49", installs: 64},
758  "[email protected]": {minVersion: "4.9.1", installs: 64},
759  "[email protected]": {minVersion: "1.2.3.1-signed.1-signed", installs: 64},
760  "[email protected]": {minVersion: "1.3.1-signed.1-signed", installs: 64},
761  "[email protected]": {minVersion: "4.03.1-signed", installs: 64},
762  "[email protected]": {minVersion: "1.1.1.1-signed", installs: 64},
763  "{04426594-bce6-4705-b811-bcdba2fd9c7b}": {minVersion: "1.7.1-signed.1-signed", installs: 63},
764  "{f3f219f9-cbce-467e-b8fe-6e076d29665c}": {minVersion: "50", installs: 63},
765  "[email protected]": {minVersion: "2.2.1-signed.1-signed", installs: 63},
766  "[email protected]": {minVersion: "0.1.9", installs: 63},
767  "[email protected]": {minVersion: "0.1.9", installs: 63},
768  "{018f3160-1a6f-4650-84fd-aad8c13609c8}": {minVersion: "0.1.1-signed.1-signed", installs: 62},
769  "{2e710e6b-5e9d-44ba-8f4e-09a040978b49}": {minVersion: "1.7", installs: 62},
770  "{c1970c0d-dbe6-4d91-804f-c9c0de643a57}": {minVersion: "1.3.2.13.1-signed.1-signed", installs: 62},
771  "{c9b4529a-eeba-4e48-976e-f3d3f9026e04}": {minVersion: "1.1.1-signed.1-signed", installs: 62},
772  "{df4e4df5-5cb7-46b0-9aef-6c784c3249f8}": {minVersion: "1.3.0.1-signed.1-signed", installs: 62},
773  "@stremio": {minVersion: "1.0.2", installs: 62},
774  "[email protected]": {minVersion: "4.4.0", installs: 62},
775  "[email protected]": {minVersion: "2.2.1-signed.1-signed", installs: 62},
776  "[email protected]": {minVersion: "1.4.1-signed.1-signed", installs: 62},
777  "[email protected]": {minVersion: "1.4.0.6", installs: 62},
778  "[email protected]": {minVersion: "0.1.1-signed.1-signed", installs: 62},
779  "[email protected]": {minVersion: "1.0.1.1-signed.1-signed", installs: 62},
780  "[email protected]": {minVersion: "2.7.1", installs: 62},
781  "[email protected]": {minVersion: "0.96.1.1-signed", installs: 62},
782  "[email protected]": {minVersion: "1.0.1-signed.1-signed", installs: 62},
783  "[email protected]": {minVersion: "1.2.1-signed.1-signed", installs: 62},
784  "@News": {minVersion: "0.2.0", installs: 61},
785  "{45d8ff86-d909-11db-9705-005056c00008}": {minVersion: "1.3.4.8", installs: 61},
786  "{686fc9c5-c339-43db-b93a-5181a217f9a6}": {minVersion: "1.11", installs: 61},
787  "{ea2b95c2-9be8-48ed-bdd1-5fcd2ad0ff99}": {minVersion: "0.3.8.1.1-signed.1-signed", installs: 61},
788  "@chomikuj": {minVersion: "1.2.0", installs: 61},
789  "[email protected]": {minVersion: "3.7.0.0", installs: 61},
790  "[email protected]": {minVersion: "1.34.1-signed.1-signed", installs: 61},
791  "[email protected]": {minVersion: "2.0.21", installs: 61},
792  "[email protected]": {minVersion: "1.2.2.1-signed.1-signed", installs: 61},
793  "[email protected]": {minVersion: "5.8.0", installs: 61},
794  "[email protected]": {minVersion: "1.7.1-signed.1-signed", installs: 61},
795  "[email protected]": {minVersion: "3.2.11", installs: 60},
796  "{12b6fdcd-4423-4276-82a3-73fdbff5f7e4}": {minVersion: "50", installs: 60},
797  "{8F6A6FD9-0619-459f-B9D0-81DE065D4E21}": {minVersion: "1.13", installs: 60},
798  "[email protected]": {minVersion: "0.9.1-signed.1-signed", installs: 60},
799  "[email protected]": {minVersion: "0.5.1-signed.1-signed", installs: 60},
800  "[email protected]": {minVersion: "1.0.13", installs: 60},
801  "{902D2C4A-457A-4EF9-AD43-7014562929FF}": {minVersion: "0.6.4", installs: 59},
802  "@yset": {minVersion: "0.0.10", installs: 59},
803  "[email protected]": {minVersion: "0.3.4.1-signed.1-signed", installs: 59},
804  "[email protected]": {minVersion: "15.00.000.058", installs: 59},
805  "[email protected]": {minVersion: "2.0.4", installs: 59},
806  "[email protected]": {minVersion: "2.3.0", installs: 59},
807  "[email protected]": {minVersion: "0.9.2", installs: 59},
808  "[email protected]": {minVersion: "7.102.10.3818", installs: 58},
809  "{338e0b96-2285-4424-b4c8-e25560750fa3}": {minVersion: "3.1-signed.1-signed", installs: 58},
810  "{8b5bea8c-6194-4c7c-a440-d5ca181480c3}": {minVersion: "1.500.000.11", installs: 58},
811  "{e30e9060-21d5-11e3-8224-0800200c9a66}": {minVersion: "1.2.12", installs: 58},
812  "[email protected]": {minVersion: "3.2", installs: 58},
813  "[email protected]": {minVersion: "1.2.1-signed.1-signed", installs: 58},
814  "[email protected]": {minVersion: "0.4.7.1-signed.1-signed", installs: 58},
815  "@jetpack-easy-turism2": {minVersion: "7.1.0", installs: 57},
816  "[email protected]": {minVersion: "1.9.8.1", installs: 57},
817  "[email protected]": {minVersion: "0.1.3.1-signed.1-signed", installs: 57},
818  "[email protected]": {minVersion: "1.3.3.1-signed.1-signed", installs: 57},
819  "[email protected]": {minVersion: "2.0.14", installs: 57},
820  "[email protected]": {minVersion: "1.6.5.1-signed.1-signed", installs: 57},
821  "[email protected]": {minVersion: "0.2.1-signed.1-let-fixed.1-signed", installs: 56},
822  "[email protected]": {minVersion: "7.102.10.3580", installs: 56},
823  "{068c594c-1a69-4f51-888d-1e231eac59a3}": {minVersion: "1", installs: 56},
824  "{139C4B80-60ED-11E4-80EC-84041E5D46B0}": {minVersion: "1.3", installs: 56},
825  "{4c7097f7-08f2-4ef2-9b9f-f95fa4cbb064}": {minVersion: "1.1", installs: 56},
826  "{776f38cb-6255-4b92-b5cf-e5c71ff2b688}": {minVersion: "1.6", installs: 56},
827  "{79c50f9a-2ffe-4ee0-8a37-fae4f5dacd4f}": {minVersion: "5.1.3", installs: 56},
828  "{8BCA0E8A-E57B-425b-A05B-CD3868EB577E}": {minVersion: "1.4.1-signed.1-signed", installs: 56},
829  "[email protected]": {minVersion: "1.1.0.1-signed.1-signed", installs: 56},
830  "[email protected]": {minVersion: "3.0.2.1-signed", installs: 56},
831  "[email protected]": {minVersion: "4.0.4.1-signed", installs: 56},
832  "[email protected]": {minVersion: "1.3.1.1-signed.1-signed", installs: 56},
833  "{E4091D66-127C-11DB-903A-DE80D2EFDFE8}": {minVersion: "1.6.5.5.1-signed.1-signed", installs: 55},
834  "[email protected]": {minVersion: "1.00.1-signed.1-signed", installs: 55},
835  "[email protected]": {minVersion: "2.3.2-signed", installs: 55},
836  "[email protected]": {minVersion: "5.1.0", installs: 55},
837  "[email protected]": {minVersion: "3.8.7", installs: 55},
838  "[email protected]": {minVersion: "3.0.1-signed.1-signed", installs: 55},
839  "[email protected]": {minVersion: "0.3.1-signed.1-signed", installs: 55},
840  "[email protected]": {minVersion: "1.3", installs: 55},
841  "[email protected]": {minVersion: "4.31.1-signed.1-signed", installs: 54},
842  "{22870005-adef-4c9d-ae36-d0e1f2f27e5a}": {minVersion: "0.4.0.9.1.1-signed.1-signed", installs: 54},
843  "{DBBB3167-6E81-400f-BBFD-BD8921726F52}": {minVersion: "7125.2016.0115.2213", installs: 54},
844  "{e4f94d1e-2f53-401e-8885-681602c0ddd8}": {minVersion: "1.0.1-signed.1-signed", installs: 54},
845  "{FBF6D7FB-F305-4445-BB3D-FEF66579A033}": {minVersion: "6", installs: 54},
846  "[email protected]": {minVersion: "0.1.2.1-signed", installs: 54},
847  "[email protected]": {minVersion: "1.1.11.1-signed.1-signed", installs: 54},
848  "[email protected]": {minVersion: "4.8", installs: 54},
849  "[email protected]": {minVersion: "1.0.003", installs: 54},
850  "[email protected]": {minVersion: "6.0.1-signed.1-signed", installs: 54},
851  "[email protected]": {minVersion: "0.5.1-signed.1-signed", installs: 54},
852  "[email protected]": {minVersion: "1.2.1-signed.1-signed", installs: 54},
853  "[email protected]": {minVersion: "1.2.0.2.1-signed.1-signed", installs: 53},
854  "[email protected]": {minVersion: "7.7.1-signed.1-signed", installs: 53},
855  "[email protected]": {minVersion: "1.15", installs: 53},
856  "[email protected]": {minVersion: "1.4.0.73", installs: 53},
857  "{15fe27f3-e5ab-2d59-4c5c-dadc7945bdbd}": {minVersion: "2.1.1.1-signed.1-signed", installs: 52},
858  "[email protected]": {minVersion: "1.2.1.1-signed.1-signed", installs: 52},
859  "[email protected]": {minVersion: "1.0.4.1-signed.1-signed", installs: 52},
860  "[email protected]": {minVersion: "0.1.9", installs: 52},
861  "[email protected]": {minVersion: "3.0.1-signed.1-signed", installs: 52},
862  "[email protected]": {minVersion: "1.0.2.76", installs: 52},
863  "[email protected]": {minVersion: "1.0.1-signed.1-signed", installs: 52},
864  "[email protected]": {minVersion: "0.3.3", installs: 52},
865  "{C0CB8BA3-6C1B-47e8-A6AB-1FAB889562D9}": {minVersion: "0.7.6", installs: 51},
866  "@irctctatkal": {minVersion: "2.0.0", installs: 51},
867  "[email protected]": {minVersion: "0.1.7", installs: 51},
868  "[email protected]": {minVersion: "1.3.1-signed.1-signed", installs: 51},
869  "[email protected]": {minVersion: "8.1", installs: 51},
870  "[email protected]": {minVersion: "1.18.1-signed.1-signed", installs: 51},
871  "[email protected]": {minVersion: "4.28.1-signed.1-signed", installs: 51},
872  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 51},
873  "[email protected]": {minVersion: "0.2.1-signed.1-signed", installs: 51},
874  "[email protected]": {minVersion: "4.28.1-signed.1-signed", installs: 51},
875  "@Recipes": {minVersion: "0.2.0", installs: 50},
876  "{e6a9a96e-4a08-4719-b9bd-0e91c35aaabc}": {minVersion: "1.3.1.1-signed.1-signed", installs: 50},
877  "[email protected]": {minVersion: "0.8.0.10.1-signed.1-signed", installs: 50},
878  "[email protected]": {minVersion: "2.0.4.7", installs: 50},
879  "[email protected]": {minVersion: "1.0.2.1-signed.1-signed", installs: 50},
880  "[email protected]": {minVersion: "0.2.6.1-signed.1-signed", installs: 50},
881  "[email protected]": {minVersion: "1.0.0.22", installs: 50},
882  "[email protected]": {minVersion: "2.5.5", installs: 50},
883  "[email protected]": {minVersion: "1.6.5.1-signed.1-signed", installs: 50},
884  "[email protected]": {minVersion: "4.0.5", installs: 50},
885  "[email protected]": {minVersion: "135.3", installs: 50},
886  "[email protected]": {minVersion: "1.0.0.7", installs: 50},
887};
888
889// ================== END OF LIST FOR 51 ======================
890
891// We use these named policies to correlate the telemetry
892// data with them, in order to understand how each set
893// is behaving in the wild.
894const RolloutPolicy = {
895  // Used during 48 Beta cycle
896  "2a": { addons: set2, webextensions: true },
897  "2b": { addons: set2, webextensions: false },
898
899  // Set agreed for Release 49
900  "49a": { addons: set49Release, webextensions: true },
901  "49b": { addons: set49Release, webextensions: false },
902
903  // Smaller set that can be used for Release 49
904  "49limiteda": { addons: set49PaneOnly, webextensions: true },
905  "49limitedb": { addons: set49PaneOnly, webextensions: false },
906
907  // Beta testing on 50
908  "50allmpc": { addons: [], webextensions: true, mpc: true },
909
910  // Beta testing on 51
911  "51alladdons": { addons: [], webextensions: true, alladdons: true },
912
913  // 51 release
914  "51set1": { addonsv2: set51Release, installs:   50, webextensions: true, mpc: true },
915  "51set2": { addonsv2: set51Release, installs:  100, webextensions: true, mpc: true },
916  "51set3": { addonsv2: set51Release, installs:  300, webextensions: true, mpc: true },
917  "51set4": { addonsv2: set51Release, installs: 1000, webextensions: true, mpc: true },
918
919  // ESR
920  "esrA": { addons: [], mpc: true, webextensions: true },
921  "esrB": { addons: [], mpc: true, webextensions: false },
922  "esrC": { addons: [], mpc: false, webextensions: true },
923
924  "xpcshell-test": { addons: [ADDONS.test1, ADDONS.test2], webextensions: false },
925};
926
927Object.defineProperty(this, "isAddonPartOfE10SRollout", {
928  configurable: false,
929  enumerable: false,
930  writable: false,
931  value: function isAddonPartOfE10SRollout(aAddon) {
932    let blocklist = Preferences.get(PREF_E10S_ADDON_BLOCKLIST, "");
933    let policyId = Preferences.get(PREF_E10S_ADDON_POLICY, "");
934
935    if (!policyId || !RolloutPolicy.hasOwnProperty(policyId)) {
936      return false;
937    }
938
939    if (blocklist && blocklist.indexOf(aAddon.id) > -1) {
940      return false;
941    }
942
943    let policy = RolloutPolicy[policyId];
944
945    if (aAddon.mpcOptedOut == true) {
946      return false;
947    }
948
949    if (policy.alladdons) {
950      return true;
951    }
952
953    if (policy.webextensions && aAddon.type == "webextension") {
954      return true;
955    }
956
957    if (policy.mpc && aAddon.multiprocessCompatible) {
958      return true;
959    }
960
961    if (policy.addonsv2) {
962      if (aAddon.id in policy.addonsv2) {
963        let rolloutAddon = policy.addonsv2[aAddon.id];
964
965        if (rolloutAddon.installs >= policy.installs &&
966            Services.vc.compare(aAddon.version, rolloutAddon.minVersion) >= 0) {
967          return true;
968        }
969      }
970      return false;
971    }
972
973    for (let rolloutAddon of policy.addons) {
974      if (aAddon.id == rolloutAddon.id &&
975          Services.vc.compare(aAddon.version, rolloutAddon.minVersion) >= 0) {
976        return true;
977      }
978    }
979
980    return false;
981  },
982});
983
Full Screen