w.prototype._cluster=function(a, c){var b =[], d =this.options
, f = d.reduce
, h = d.minPoints;
d = d.radius /(d.extent * Math.pow(2, c));for(var g =0; g < a.length; g++){var k = a[g];if(!(k.zoom <= c)){
k.zoom = c;for(var l =this.trees[c +1], m = l.within(k.x, k.y, d), p = k.numPoints || k.weight , n = p, q =0, r = m; q < r.length; q +=1){var t = l.points[r[q]];
t.zoom > c &&(n += t.numPoints || t.weight)}if(n >= h){
q = k.x * p;
r = k.y * p;
p = f &&1< p ?this._map(k,!0):null;
t =(g <<5)+(c +1)+this.points.length;for(var v =0; v < m.length; v +=1){var u = l.points[m[v]];if(!(u.zoom <= c)){
u.zoom = c;var w = u.numPoints || u.weight;
q += u.x * w;
r += u.y * w;
u.parentId = t;
f &&(p ||(p =this._map(k,!0)),f(p,this._map(u)))}}
k.parentId = t;
b.push({x: q / n,y: r / n,zoom:Infinity,id: t,parentId:-1,numPoints: n,properties: p
})}elseif(b.push(k),1< n)for(k =0,
n = m; k < n.length; k +=1)
m = l.points[n[k]],
m.zoom <= c ||(m.zoom = c,
b.push(m))}}return b
}