]> git.openstreetmap.org Git - rails.git/blob - vendor/assets/iD/iD.js
Update to iD v1.7.1
[rails.git] / vendor / assets / iD / iD.js
1 (function(exports) {
2
3   var bootstrap = (typeof exports.bootstrap === "object") ?
4     exports.bootstrap :
5     (exports.bootstrap = {});
6
7   bootstrap.tooltip = function() {
8
9     var tooltip = function(selection) {
10         selection.each(setup);
11       },
12       animation = d3.functor(false),
13       html = d3.functor(false),
14       title = function() {
15         var title = this.getAttribute("data-original-title");
16         if (title) {
17           return title;
18         } else {
19           title = this.getAttribute("title");
20           this.removeAttribute("title");
21           this.setAttribute("data-original-title", title);
22         }
23         return title;
24       },
25       over = "mouseenter.tooltip",
26       out = "mouseleave.tooltip",
27       placements = "top left bottom right".split(" "),
28       placement = d3.functor("top");
29
30     tooltip.title = function(_) {
31       if (arguments.length) {
32         title = d3.functor(_);
33         return tooltip;
34       } else {
35         return title;
36       }
37     };
38
39     tooltip.html = function(_) {
40       if (arguments.length) {
41         html = d3.functor(_);
42         return tooltip;
43       } else {
44         return html;
45       }
46     };
47
48     tooltip.placement = function(_) {
49       if (arguments.length) {
50         placement = d3.functor(_);
51         return tooltip;
52       } else {
53         return placement;
54       }
55     };
56
57     tooltip.show = function(selection) {
58       selection.each(show);
59     };
60
61     tooltip.hide = function(selection) {
62       selection.each(hide);
63     };
64
65     tooltip.toggle = function(selection) {
66       selection.each(toggle);
67     };
68
69     tooltip.destroy = function(selection) {
70       selection
71         .on(over, null)
72         .on(out, null)
73         .attr("title", function() {
74           return this.getAttribute("data-original-title") || this.getAttribute("title");
75         })
76         .attr("data-original-title", null)
77         .select(".tooltip")
78         .remove();
79     };
80
81     function setup() {
82       var root = d3.select(this),
83           animate = animation.apply(this, arguments),
84           tip = root.append("div")
85             .attr("class", "tooltip");
86
87       if (animate) {
88         tip.classed("fade", true);
89       }
90
91       // TODO "inside" checks?
92
93       tip.append("div")
94         .attr("class", "tooltip-arrow");
95       tip.append("div")
96         .attr("class", "tooltip-inner");
97
98       var place = placement.apply(this, arguments);
99       tip.classed(place, true);
100
101       root.on(over, show);
102       root.on(out, hide);
103     }
104
105     function show() {
106       var root = d3.select(this),
107           content = title.apply(this, arguments),
108           tip = root.select(".tooltip")
109             .classed("in", true),
110           markup = html.apply(this, arguments),
111           innercontent = tip.select(".tooltip-inner")[markup ? "html" : "text"](content),
112           place = placement.apply(this, arguments),
113           outer = getPosition(root.node()),
114           inner = getPosition(tip.node()),
115           pos;
116
117       switch (place) {
118         case "top":
119           pos = {x: outer.x + (outer.w - inner.w) / 2, y: outer.y - inner.h};
120           break;
121         case "right":
122           pos = {x: outer.x + outer.w, y: outer.y + (outer.h - inner.h) / 2};
123           break;
124         case "left":
125           pos = {x: outer.x - inner.w, y: outer.y + (outer.h - inner.h) / 2};
126           break;
127         case "bottom":
128           pos = {x: Math.max(0, outer.x + (outer.w - inner.w) / 2), y: outer.y + outer.h};
129           break;
130       }
131
132       tip.style(pos ?
133         {left: ~~pos.x + "px", top: ~~pos.y + "px"} :
134         {left: null, top: null});
135
136       this.tooltipVisible = true;
137     }
138
139     function hide() {
140       d3.select(this).select(".tooltip")
141         .classed("in", false);
142
143       this.tooltipVisible = false;
144     }
145
146     function toggle() {
147       if (this.tooltipVisible) {
148         hide.apply(this, arguments);
149       } else {
150         show.apply(this, arguments);
151       }
152     }
153
154     return tooltip;
155   };
156
157   function getPosition(node) {
158     var mode = d3.select(node).style('position');
159     if (mode === 'absolute' || mode === 'static') {
160       return {
161         x: node.offsetLeft,
162         y: node.offsetTop,
163         w: node.offsetWidth,
164         h: node.offsetHeight
165       };
166     } else {
167       return {
168         x: 0,
169         y: 0,
170         w: node.offsetWidth,
171         h: node.offsetHeight
172       };
173     }
174   }
175
176 })(this);
177 !function(){
178   var d3 = {version: "3.5.5"}; // semver
179 d3.ascending = d3_ascending;
180
181 function d3_ascending(a, b) {
182   return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
183 }
184 d3.descending = function(a, b) {
185   return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
186 };
187 d3.min = function(array, f) {
188   var i = -1,
189       n = array.length,
190       a,
191       b;
192   if (arguments.length === 1) {
193     while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
194     while (++i < n) if ((b = array[i]) != null && a > b) a = b;
195   } else {
196     while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { a = b; break; }
197     while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
198   }
199   return a;
200 };
201 d3.max = function(array, f) {
202   var i = -1,
203       n = array.length,
204       a,
205       b;
206   if (arguments.length === 1) {
207     while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
208     while (++i < n) if ((b = array[i]) != null && b > a) a = b;
209   } else {
210     while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { a = b; break; }
211     while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
212   }
213   return a;
214 };
215 d3.extent = function(array, f) {
216   var i = -1,
217       n = array.length,
218       a,
219       b,
220       c;
221   if (arguments.length === 1) {
222     while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }
223     while (++i < n) if ((b = array[i]) != null) {
224       if (a > b) a = b;
225       if (c < b) c = b;
226     }
227   } else {
228     while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { a = c = b; break; }
229     while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
230       if (a > b) a = b;
231       if (c < b) c = b;
232     }
233   }
234   return [a, c];
235 };
236 function d3_number(x) {
237   return x === null ? NaN : +x;
238 }
239
240 function d3_numeric(x) {
241   return !isNaN(x);
242 }
243
244 d3.sum = function(array, f) {
245   var s = 0,
246       n = array.length,
247       a,
248       i = -1;
249   if (arguments.length === 1) {
250     while (++i < n) if (d3_numeric(a = +array[i])) s += a; // zero and null are equivalent
251   } else {
252     while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
253   }
254   return s;
255 };
256
257 d3.mean = function(array, f) {
258   var s = 0,
259       n = array.length,
260       a,
261       i = -1,
262       j = n;
263   if (arguments.length === 1) {
264     while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
265   } else {
266     while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
267   }
268   if (j) return s / j;
269 };
270 // R-7 per <http://en.wikipedia.org/wiki/Quantile>
271 d3.quantile = function(values, p) {
272   var H = (values.length - 1) * p + 1,
273       h = Math.floor(H),
274       v = +values[h - 1],
275       e = H - h;
276   return e ? v + e * (values[h] - v) : v;
277 };
278
279 d3.median = function(array, f) {
280   var numbers = [],
281       n = array.length,
282       a,
283       i = -1;
284   if (arguments.length === 1) {
285     while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
286   } else {
287     while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
288   }
289   if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
290 };
291
292 d3.variance = function(array, f) {
293   var n = array.length,
294       m = 0,
295       a,
296       d,
297       s = 0,
298       i = -1,
299       j = 0;
300   if (arguments.length === 1) {
301     while (++i < n) {
302       if (d3_numeric(a = d3_number(array[i]))) {
303         d = a - m;
304         m += d / ++j;
305         s += d * (a - m);
306       }
307     }
308   } else {
309     while (++i < n) {
310       if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
311         d = a - m;
312         m += d / ++j;
313         s += d * (a - m);
314       }
315     }
316   }
317   if (j > 1) return s / (j - 1);
318 };
319
320 d3.deviation = function() {
321   var v = d3.variance.apply(this, arguments);
322   return v ? Math.sqrt(v) : v;
323 };
324
325 function d3_bisector(compare) {
326   return {
327     left: function(a, x, lo, hi) {
328       if (arguments.length < 3) lo = 0;
329       if (arguments.length < 4) hi = a.length;
330       while (lo < hi) {
331         var mid = lo + hi >>> 1;
332         if (compare(a[mid], x) < 0) lo = mid + 1;
333         else hi = mid;
334       }
335       return lo;
336     },
337     right: function(a, x, lo, hi) {
338       if (arguments.length < 3) lo = 0;
339       if (arguments.length < 4) hi = a.length;
340       while (lo < hi) {
341         var mid = lo + hi >>> 1;
342         if (compare(a[mid], x) > 0) hi = mid;
343         else lo = mid + 1;
344       }
345       return lo;
346     }
347   };
348 }
349
350 var d3_bisect = d3_bisector(d3_ascending);
351 d3.bisectLeft = d3_bisect.left;
352 d3.bisect = d3.bisectRight = d3_bisect.right;
353
354 d3.bisector = function(f) {
355   return d3_bisector(f.length === 1
356       ? function(d, x) { return d3_ascending(f(d), x); }
357       : f);
358 };
359 d3.shuffle = function(array, i0, i1) {
360   if ((m = arguments.length) < 3) { i1 = array.length; if (m < 2) i0 = 0; }
361   var m = i1 - i0, t, i;
362   while (m) {
363     i = Math.random() * m-- | 0;
364     t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
365   }
366   return array;
367 };
368 d3.permute = function(array, indexes) {
369   var i = indexes.length, permutes = new Array(i);
370   while (i--) permutes[i] = array[indexes[i]];
371   return permutes;
372 };
373 d3.pairs = function(array) {
374   var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
375   while (i < n) pairs[i] = [p0 = p1, p1 = array[++i]];
376   return pairs;
377 };
378
379 d3.zip = function() {
380   if (!(n = arguments.length)) return [];
381   for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
382     for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
383       zip[j] = arguments[j][i];
384     }
385   }
386   return zips;
387 };
388
389 function d3_zipLength(d) {
390   return d.length;
391 }
392
393 d3.transpose = function(matrix) {
394   return d3.zip.apply(d3, matrix);
395 };
396 d3.keys = function(map) {
397   var keys = [];
398   for (var key in map) keys.push(key);
399   return keys;
400 };
401 d3.values = function(map) {
402   var values = [];
403   for (var key in map) values.push(map[key]);
404   return values;
405 };
406 d3.entries = function(map) {
407   var entries = [];
408   for (var key in map) entries.push({key: key, value: map[key]});
409   return entries;
410 };
411 d3.merge = function(arrays) {
412   var n = arrays.length,
413       m,
414       i = -1,
415       j = 0,
416       merged,
417       array;
418
419   while (++i < n) j += arrays[i].length;
420   merged = new Array(j);
421
422   while (--n >= 0) {
423     array = arrays[n];
424     m = array.length;
425     while (--m >= 0) {
426       merged[--j] = array[m];
427     }
428   }
429
430   return merged;
431 };
432 var abs = Math.abs;
433
434 d3.range = function(start, stop, step) {
435   if (arguments.length < 3) {
436     step = 1;
437     if (arguments.length < 2) {
438       stop = start;
439       start = 0;
440     }
441   }
442   if ((stop - start) / step === Infinity) throw new Error("infinite range");
443   var range = [],
444        k = d3_range_integerScale(abs(step)),
445        i = -1,
446        j;
447   start *= k, stop *= k, step *= k;
448   if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k);
449   else while ((j = start + step * ++i) < stop) range.push(j / k);
450   return range;
451 };
452
453 function d3_range_integerScale(x) {
454   var k = 1;
455   while (x * k % 1) k *= 10;
456   return k;
457 }
458 function d3_class(ctor, properties) {
459   for (var key in properties) {
460     Object.defineProperty(ctor.prototype, key, {
461       value: properties[key],
462       enumerable: false
463     });
464   }
465 }
466
467 d3.map = function(object, f) {
468   var map = new d3_Map;
469   if (object instanceof d3_Map) {
470     object.forEach(function(key, value) { map.set(key, value); });
471   } else if (Array.isArray(object)) {
472     var i = -1,
473         n = object.length,
474         o;
475     if (arguments.length === 1) while (++i < n) map.set(i, object[i]);
476     else while (++i < n) map.set(f.call(object, o = object[i], i), o);
477   } else {
478     for (var key in object) map.set(key, object[key]);
479   }
480   return map;
481 };
482
483 function d3_Map() {
484   this._ = Object.create(null);
485 }
486
487 var d3_map_proto = "__proto__",
488     d3_map_zero = "\0";
489
490 d3_class(d3_Map, {
491   has: d3_map_has,
492   get: function(key) {
493     return this._[d3_map_escape(key)];
494   },
495   set: function(key, value) {
496     return this._[d3_map_escape(key)] = value;
497   },
498   remove: d3_map_remove,
499   keys: d3_map_keys,
500   values: function() {
501     var values = [];
502     for (var key in this._) values.push(this._[key]);
503     return values;
504   },
505   entries: function() {
506     var entries = [];
507     for (var key in this._) entries.push({key: d3_map_unescape(key), value: this._[key]});
508     return entries;
509   },
510   size: d3_map_size,
511   empty: d3_map_empty,
512   forEach: function(f) {
513     for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
514   }
515 });
516
517 function d3_map_escape(key) {
518   return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
519 }
520
521 function d3_map_unescape(key) {
522   return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
523 }
524
525 function d3_map_has(key) {
526   return d3_map_escape(key) in this._;
527 }
528
529 function d3_map_remove(key) {
530   return (key = d3_map_escape(key)) in this._ && delete this._[key];
531 }
532
533 function d3_map_keys() {
534   var keys = [];
535   for (var key in this._) keys.push(d3_map_unescape(key));
536   return keys;
537 }
538
539 function d3_map_size() {
540   var size = 0;
541   for (var key in this._) ++size;
542   return size;
543 }
544
545 function d3_map_empty() {
546   for (var key in this._) return false;
547   return true;
548 }
549
550 d3.nest = function() {
551   var nest = {},
552       keys = [],
553       sortKeys = [],
554       sortValues,
555       rollup;
556
557   function map(mapType, array, depth) {
558     if (depth >= keys.length) return rollup
559         ? rollup.call(nest, array) : (sortValues
560         ? array.sort(sortValues)
561         : array);
562
563     var i = -1,
564         n = array.length,
565         key = keys[depth++],
566         keyValue,
567         object,
568         setter,
569         valuesByKey = new d3_Map,
570         values;
571
572     while (++i < n) {
573       if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
574         values.push(object);
575       } else {
576         valuesByKey.set(keyValue, [object]);
577       }
578     }
579
580     if (mapType) {
581       object = mapType();
582       setter = function(keyValue, values) {
583         object.set(keyValue, map(mapType, values, depth));
584       };
585     } else {
586       object = {};
587       setter = function(keyValue, values) {
588         object[keyValue] = map(mapType, values, depth);
589       };
590     }
591
592     valuesByKey.forEach(setter);
593     return object;
594   }
595
596   function entries(map, depth) {
597     if (depth >= keys.length) return map;
598
599     var array = [],
600         sortKey = sortKeys[depth++];
601
602     map.forEach(function(key, keyMap) {
603       array.push({key: key, values: entries(keyMap, depth)});
604     });
605
606     return sortKey
607         ? array.sort(function(a, b) { return sortKey(a.key, b.key); })
608         : array;
609   }
610
611   nest.map = function(array, mapType) {
612     return map(mapType, array, 0);
613   };
614
615   nest.entries = function(array) {
616     return entries(map(d3.map, array, 0), 0);
617   };
618
619   nest.key = function(d) {
620     keys.push(d);
621     return nest;
622   };
623
624   // Specifies the order for the most-recently specified key.
625   // Note: only applies to entries. Map keys are unordered!
626   nest.sortKeys = function(order) {
627     sortKeys[keys.length - 1] = order;
628     return nest;
629   };
630
631   // Specifies the order for leaf values.
632   // Applies to both maps and entries array.
633   nest.sortValues = function(order) {
634     sortValues = order;
635     return nest;
636   };
637
638   nest.rollup = function(f) {
639     rollup = f;
640     return nest;
641   };
642
643   return nest;
644 };
645
646 d3.set = function(array) {
647   var set = new d3_Set;
648   if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
649   return set;
650 };
651
652 function d3_Set() {
653   this._ = Object.create(null);
654 }
655
656 d3_class(d3_Set, {
657   has: d3_map_has,
658   add: function(key) {
659     this._[d3_map_escape(key += "")] = true;
660     return key;
661   },
662   remove: d3_map_remove,
663   values: d3_map_keys,
664   size: d3_map_size,
665   empty: d3_map_empty,
666   forEach: function(f) {
667     for (var key in this._) f.call(this, d3_map_unescape(key));
668   }
669 });
670 d3.behavior = {};
671 var d3_document = this.document;
672
673 function d3_documentElement(node) {
674   return node
675       && (node.ownerDocument // node is a Node
676       || node.document // node is a Window
677       || node).documentElement; // node is a Document
678 }
679
680 function d3_window(node) {
681   return node
682       && ((node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
683         || (node.document && node) // node is a Window
684         || node.defaultView); // node is a Document
685 }
686 // Copies a variable number of methods from source to target.
687 d3.rebind = function(target, source) {
688   var i = 1, n = arguments.length, method;
689   while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
690   return target;
691 };
692
693 // Method is assumed to be a standard D3 getter-setter:
694 // If passed with no arguments, gets the value.
695 // If passed with arguments, sets the value and returns the target.
696 function d3_rebind(target, source, method) {
697   return function() {
698     var value = method.apply(source, arguments);
699     return value === source ? target : value;
700   };
701 }
702 function d3_vendorSymbol(object, name) {
703   if (name in object) return name;
704   name = name.charAt(0).toUpperCase() + name.slice(1);
705   for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
706     var prefixName = d3_vendorPrefixes[i] + name;
707     if (prefixName in object) return prefixName;
708   }
709 }
710
711 var d3_vendorPrefixes = ["webkit", "ms", "moz", "Moz", "o", "O"];
712 var d3_arraySlice = [].slice,
713     d3_array = function(list) { return d3_arraySlice.call(list); }; // conversion for NodeLists
714 function d3_noop() {}
715
716 d3.dispatch = function() {
717   var dispatch = new d3_dispatch,
718       i = -1,
719       n = arguments.length;
720   while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
721   return dispatch;
722 };
723
724 function d3_dispatch() {}
725
726 d3_dispatch.prototype.on = function(type, listener) {
727   var i = type.indexOf("."),
728       name = "";
729
730   // Extract optional namespace, e.g., "click.foo"
731   if (i >= 0) {
732     name = type.slice(i + 1);
733     type = type.slice(0, i);
734   }
735
736   if (type) return arguments.length < 2
737       ? this[type].on(name)
738       : this[type].on(name, listener);
739
740   if (arguments.length === 2) {
741     if (listener == null) for (type in this) {
742       if (this.hasOwnProperty(type)) this[type].on(name, null);
743     }
744     return this;
745   }
746 };
747
748 function d3_dispatch_event(dispatch) {
749   var listeners = [],
750       listenerByName = new d3_Map;
751
752   function event() {
753     var z = listeners, // defensive reference
754         i = -1,
755         n = z.length,
756         l;
757     while (++i < n) if (l = z[i].on) l.apply(this, arguments);
758     return dispatch;
759   }
760
761   event.on = function(name, listener) {
762     var l = listenerByName.get(name),
763         i;
764
765     // return the current listener, if any
766     if (arguments.length < 2) return l && l.on;
767
768     // remove the old listener, if any (with copy-on-write)
769     if (l) {
770       l.on = null;
771       listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
772       listenerByName.remove(name);
773     }
774
775     // add the new listener, if any
776     if (listener) listeners.push(listenerByName.set(name, {on: listener}));
777
778     return dispatch;
779   };
780
781   return event;
782 }
783
784 d3.event = null;
785
786 function d3_eventPreventDefault() {
787   d3.event.preventDefault();
788 }
789
790 function d3_eventCancel() {
791   d3.event.preventDefault();
792   d3.event.stopPropagation();
793 }
794
795 function d3_eventSource() {
796   var e = d3.event, s;
797   while (s = e.sourceEvent) e = s;
798   return e;
799 }
800
801 // Like d3.dispatch, but for custom events abstracting native UI events. These
802 // events have a target component (such as a brush), a target element (such as
803 // the svg:g element containing the brush) and the standard arguments `d` (the
804 // target element's data) and `i` (the selection index of the target element).
805 function d3_eventDispatch(target) {
806   var dispatch = new d3_dispatch,
807       i = 0,
808       n = arguments.length;
809
810   while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
811
812   // Creates a dispatch context for the specified `thiz` (typically, the target
813   // DOM element that received the source event) and `argumentz` (typically, the
814   // data `d` and index `i` of the target element). The returned function can be
815   // used to dispatch an event to any registered listeners; the function takes a
816   // single argument as input, being the event to dispatch. The event must have
817   // a "type" attribute which corresponds to a type registered in the
818   // constructor. This context will automatically populate the "sourceEvent" and
819   // "target" attributes of the event, as well as setting the `d3.event` global
820   // for the duration of the notification.
821   dispatch.of = function(thiz, argumentz) {
822     return function(e1) {
823       try {
824         var e0 =
825         e1.sourceEvent = d3.event;
826         e1.target = target;
827         d3.event = e1;
828         dispatch[e1.type].apply(thiz, argumentz);
829       } finally {
830         d3.event = e0;
831       }
832     };
833   };
834
835   return dispatch;
836 }
837 d3.requote = function(s) {
838   return s.replace(d3_requote_re, "\\$&");
839 };
840
841 var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
842 var d3_subclass = {}.__proto__?
843
844 // Until ECMAScript supports array subclassing, prototype injection works well.
845 function(object, prototype) {
846   object.__proto__ = prototype;
847 }:
848
849 // And if your browser doesn't support __proto__, we'll use direct extension.
850 function(object, prototype) {
851   for (var property in prototype) object[property] = prototype[property];
852 };
853
854 function d3_selection(groups) {
855   d3_subclass(groups, d3_selectionPrototype);
856   return groups;
857 }
858
859 var d3_select = function(s, n) { return n.querySelector(s); },
860     d3_selectAll = function(s, n) { return n.querySelectorAll(s); },
861     d3_selectMatches = function(n, s) {
862       var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
863       d3_selectMatches = function(n, s) {
864         return d3_selectMatcher.call(n, s);
865       };
866       return d3_selectMatches(n, s);
867     };
868
869 // Prefer Sizzle, if available.
870 if (typeof Sizzle === "function") {
871   d3_select = function(s, n) { return Sizzle(s, n)[0] || null; };
872   d3_selectAll = Sizzle;
873   d3_selectMatches = Sizzle.matchesSelector;
874 }
875
876 d3.selection = function() {
877   return d3.select(d3_document.documentElement);
878 };
879
880 var d3_selectionPrototype = d3.selection.prototype = [];
881
882
883 d3_selectionPrototype.select = function(selector) {
884   var subgroups = [],
885       subgroup,
886       subnode,
887       group,
888       node;
889
890   selector = d3_selection_selector(selector);
891
892   for (var j = -1, m = this.length; ++j < m;) {
893     subgroups.push(subgroup = []);
894     subgroup.parentNode = (group = this[j]).parentNode;
895     for (var i = -1, n = group.length; ++i < n;) {
896       if (node = group[i]) {
897         subgroup.push(subnode = selector.call(node, node.__data__, i, j));
898         if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
899       } else {
900         subgroup.push(null);
901       }
902     }
903   }
904
905   return d3_selection(subgroups);
906 };
907
908 function d3_selection_selector(selector) {
909   return typeof selector === "function" ? selector : function() {
910     return d3_select(selector, this);
911   };
912 }
913
914 d3_selectionPrototype.selectAll = function(selector) {
915   var subgroups = [],
916       subgroup,
917       node;
918
919   selector = d3_selection_selectorAll(selector);
920
921   for (var j = -1, m = this.length; ++j < m;) {
922     for (var group = this[j], i = -1, n = group.length; ++i < n;) {
923       if (node = group[i]) {
924         subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
925         subgroup.parentNode = node;
926       }
927     }
928   }
929
930   return d3_selection(subgroups);
931 };
932
933 function d3_selection_selectorAll(selector) {
934   return typeof selector === "function" ? selector : function() {
935     return d3_selectAll(selector, this);
936   };
937 }
938 var d3_nsPrefix = {
939   svg: "http://www.w3.org/2000/svg",
940   xhtml: "http://www.w3.org/1999/xhtml",
941   xlink: "http://www.w3.org/1999/xlink",
942   xml: "http://www.w3.org/XML/1998/namespace",
943   xmlns: "http://www.w3.org/2000/xmlns/"
944 };
945
946 d3.ns = {
947   prefix: d3_nsPrefix,
948   qualify: function(name) {
949     var i = name.indexOf(":"),
950         prefix = name;
951     if (i >= 0) {
952       prefix = name.slice(0, i);
953       name = name.slice(i + 1);
954     }
955     return d3_nsPrefix.hasOwnProperty(prefix)
956         ? {space: d3_nsPrefix[prefix], local: name}
957         : name;
958   }
959 };
960
961 d3_selectionPrototype.attr = function(name, value) {
962   if (arguments.length < 2) {
963
964     // For attr(string), return the attribute value for the first node.
965     if (typeof name === "string") {
966       var node = this.node();
967       name = d3.ns.qualify(name);
968       return name.local
969           ? node.getAttributeNS(name.space, name.local)
970           : node.getAttribute(name);
971     }
972
973     // For attr(object), the object specifies the names and values of the
974     // attributes to set or remove. The values may be functions that are
975     // evaluated for each element.
976     for (value in name) this.each(d3_selection_attr(value, name[value]));
977     return this;
978   }
979
980   return this.each(d3_selection_attr(name, value));
981 };
982
983 function d3_selection_attr(name, value) {
984   name = d3.ns.qualify(name);
985
986   // For attr(string, null), remove the attribute with the specified name.
987   function attrNull() {
988     this.removeAttribute(name);
989   }
990   function attrNullNS() {
991     this.removeAttributeNS(name.space, name.local);
992   }
993
994   // For attr(string, string), set the attribute with the specified name.
995   function attrConstant() {
996     this.setAttribute(name, value);
997   }
998   function attrConstantNS() {
999     this.setAttributeNS(name.space, name.local, value);
1000   }
1001
1002   // For attr(string, function), evaluate the function for each element, and set
1003   // or remove the attribute as appropriate.
1004   function attrFunction() {
1005     var x = value.apply(this, arguments);
1006     if (x == null) this.removeAttribute(name);
1007     else this.setAttribute(name, x);
1008   }
1009   function attrFunctionNS() {
1010     var x = value.apply(this, arguments);
1011     if (x == null) this.removeAttributeNS(name.space, name.local);
1012     else this.setAttributeNS(name.space, name.local, x);
1013   }
1014
1015   return value == null
1016       ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
1017       ? (name.local ? attrFunctionNS : attrFunction)
1018       : (name.local ? attrConstantNS : attrConstant));
1019 }
1020 function d3_collapse(s) {
1021   return s.trim().replace(/\s+/g, " ");
1022 }
1023
1024 d3_selectionPrototype.classed = function(name, value) {
1025   if (arguments.length < 2) {
1026
1027     // For classed(string), return true only if the first node has the specified
1028     // class or classes. Note that even if the browser supports DOMTokenList, it
1029     // probably doesn't support it on SVG elements (which can be animated).
1030     if (typeof name === "string") {
1031       var node = this.node(),
1032           n = (name = d3_selection_classes(name)).length,
1033           i = -1;
1034       if (value = node.classList) {
1035         while (++i < n) if (!value.contains(name[i])) return false;
1036       } else {
1037         value = node.getAttribute("class");
1038         while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
1039       }
1040       return true;
1041     }
1042
1043     // For classed(object), the object specifies the names of classes to add or
1044     // remove. The values may be functions that are evaluated for each element.
1045     for (value in name) this.each(d3_selection_classed(value, name[value]));
1046     return this;
1047   }
1048
1049   // Otherwise, both a name and a value are specified, and are handled as below.
1050   return this.each(d3_selection_classed(name, value));
1051 };
1052
1053 function d3_selection_classedRe(name) {
1054   return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
1055 }
1056
1057 function d3_selection_classes(name) {
1058   return (name + "").trim().split(/^|\s+/);
1059 }
1060
1061 // Multiple class names are allowed (e.g., "foo bar").
1062 function d3_selection_classed(name, value) {
1063   name = d3_selection_classes(name).map(d3_selection_classedName);
1064   var n = name.length;
1065
1066   function classedConstant() {
1067     var i = -1;
1068     while (++i < n) name[i](this, value);
1069   }
1070
1071   // When the value is a function, the function is still evaluated only once per
1072   // element even if there are multiple class names.
1073   function classedFunction() {
1074     var i = -1, x = value.apply(this, arguments);
1075     while (++i < n) name[i](this, x);
1076   }
1077
1078   return typeof value === "function"
1079       ? classedFunction
1080       : classedConstant;
1081 }
1082
1083 function d3_selection_classedName(name) {
1084   var re = d3_selection_classedRe(name);
1085   return function(node, value) {
1086     if (c = node.classList) return value ? c.add(name) : c.remove(name);
1087     var c = node.getAttribute("class") || "";
1088     if (value) {
1089       re.lastIndex = 0;
1090       if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
1091     } else {
1092       node.setAttribute("class", d3_collapse(c.replace(re, " ")));
1093     }
1094   };
1095 }
1096
1097 d3_selectionPrototype.style = function(name, value, priority) {
1098   var n = arguments.length;
1099   if (n < 3) {
1100
1101     // For style(object) or style(object, string), the object specifies the
1102     // names and values of the attributes to set or remove. The values may be
1103     // functions that are evaluated for each element. The optional string
1104     // specifies the priority.
1105     if (typeof name !== "string") {
1106       if (n < 2) value = "";
1107       for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
1108       return this;
1109     }
1110
1111     // For style(string), return the computed style value for the first node.
1112     if (n < 2) {
1113       var node = this.node();
1114       return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
1115     }
1116
1117     // For style(string, string) or style(string, function), use the default
1118     // priority. The priority is ignored for style(string, null).
1119     priority = "";
1120   }
1121
1122   // Otherwise, a name, value and priority are specified, and handled as below.
1123   return this.each(d3_selection_style(name, value, priority));
1124 };
1125
1126 function d3_selection_style(name, value, priority) {
1127
1128   // For style(name, null) or style(name, null, priority), remove the style
1129   // property with the specified name. The priority is ignored.
1130   function styleNull() {
1131     this.style.removeProperty(name);
1132   }
1133
1134   // For style(name, string) or style(name, string, priority), set the style
1135   // property with the specified name, using the specified priority.
1136   function styleConstant() {
1137     this.style.setProperty(name, value, priority);
1138   }
1139
1140   // For style(name, function) or style(name, function, priority), evaluate the
1141   // function for each element, and set or remove the style property as
1142   // appropriate. When setting, use the specified priority.
1143   function styleFunction() {
1144     var x = value.apply(this, arguments);
1145     if (x == null) this.style.removeProperty(name);
1146     else this.style.setProperty(name, x, priority);
1147   }
1148
1149   return value == null
1150       ? styleNull : (typeof value === "function"
1151       ? styleFunction : styleConstant);
1152 }
1153
1154 d3_selectionPrototype.property = function(name, value) {
1155   if (arguments.length < 2) {
1156
1157     // For property(string), return the property value for the first node.
1158     if (typeof name === "string") return this.node()[name];
1159
1160     // For property(object), the object specifies the names and values of the
1161     // properties to set or remove. The values may be functions that are
1162     // evaluated for each element.
1163     for (value in name) this.each(d3_selection_property(value, name[value]));
1164     return this;
1165   }
1166
1167   // Otherwise, both a name and a value are specified, and are handled as below.
1168   return this.each(d3_selection_property(name, value));
1169 };
1170
1171 function d3_selection_property(name, value) {
1172
1173   // For property(name, null), remove the property with the specified name.
1174   function propertyNull() {
1175     delete this[name];
1176   }
1177
1178   // For property(name, string), set the property with the specified name.
1179   function propertyConstant() {
1180     this[name] = value;
1181   }
1182
1183   // For property(name, function), evaluate the function for each element, and
1184   // set or remove the property as appropriate.
1185   function propertyFunction() {
1186     var x = value.apply(this, arguments);
1187     if (x == null) delete this[name];
1188     else this[name] = x;
1189   }
1190
1191   return value == null
1192       ? propertyNull : (typeof value === "function"
1193       ? propertyFunction : propertyConstant);
1194 }
1195
1196 d3_selectionPrototype.text = function(value) {
1197   return arguments.length
1198       ? this.each(typeof value === "function"
1199       ? function() { var v = value.apply(this, arguments); this.textContent = v == null ? "" : v; } : value == null
1200       ? function() { if (this.textContent !== "") this.textContent = ""; }
1201       : function() { if (this.textContent !== value) this.textContent = value; })
1202       : this.node().textContent;
1203 };
1204
1205 d3_selectionPrototype.html = function(value) {
1206   return arguments.length
1207       ? this.each(typeof value === "function"
1208       ? function() { var v = value.apply(this, arguments); this.innerHTML = v == null ? "" : v; } : value == null
1209       ? function() { this.innerHTML = ""; }
1210       : function() { this.innerHTML = value; })
1211       : this.node().innerHTML;
1212 };
1213
1214 d3_selectionPrototype.append = function(name) {
1215   name = d3_selection_creator(name);
1216   return this.select(function() {
1217     return this.appendChild(name.apply(this, arguments));
1218   });
1219 };
1220
1221 function d3_selection_creator(name) {
1222
1223   function create() {
1224     var document = this.ownerDocument,
1225         namespace = this.namespaceURI;
1226     return namespace
1227         ? document.createElementNS(namespace, name)
1228         : document.createElement(name);
1229   }
1230
1231   function createNS() {
1232     return this.ownerDocument.createElementNS(name.space, name.local);
1233   }
1234
1235   return typeof name === "function" ? name
1236       : (name = d3.ns.qualify(name)).local ? createNS
1237       : create;
1238 }
1239
1240 d3_selectionPrototype.insert = function(name, before) {
1241   name = d3_selection_creator(name);
1242   before = d3_selection_selector(before);
1243   return this.select(function() {
1244     return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
1245   });
1246 };
1247
1248 // TODO remove(selector)?
1249 // TODO remove(node)?
1250 // TODO remove(function)?
1251 d3_selectionPrototype.remove = function() {
1252   return this.each(d3_selectionRemove);
1253 };
1254
1255 function d3_selectionRemove() {
1256   var parent = this.parentNode;
1257   if (parent) parent.removeChild(this);
1258 }
1259
1260 d3_selectionPrototype.data = function(value, key) {
1261   var i = -1,
1262       n = this.length,
1263       group,
1264       node;
1265
1266   // If no value is specified, return the first value.
1267   if (!arguments.length) {
1268     value = new Array(n = (group = this[0]).length);
1269     while (++i < n) {
1270       if (node = group[i]) {
1271         value[i] = node.__data__;
1272       }
1273     }
1274     return value;
1275   }
1276
1277   function bind(group, groupData) {
1278     var i,
1279         n = group.length,
1280         m = groupData.length,
1281         n0 = Math.min(n, m),
1282         updateNodes = new Array(m),
1283         enterNodes = new Array(m),
1284         exitNodes = new Array(n),
1285         node,
1286         nodeData;
1287
1288     if (key) {
1289       var nodeByKeyValue = new d3_Map,
1290           keyValues = new Array(n),
1291           keyValue;
1292
1293       for (i = -1; ++i < n;) {
1294         if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) {
1295           exitNodes[i] = node; // duplicate selection key
1296         } else {
1297           nodeByKeyValue.set(keyValue, node);
1298         }
1299         keyValues[i] = keyValue;
1300       }
1301
1302       for (i = -1; ++i < m;) {
1303         if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
1304           enterNodes[i] = d3_selection_dataNode(nodeData);
1305         } else if (node !== true) { // no duplicate data key
1306           updateNodes[i] = node;
1307           node.__data__ = nodeData;
1308         }
1309         nodeByKeyValue.set(keyValue, true);
1310       }
1311
1312       for (i = -1; ++i < n;) {
1313         if (nodeByKeyValue.get(keyValues[i]) !== true) {
1314           exitNodes[i] = group[i];
1315         }
1316       }
1317     } else {
1318       for (i = -1; ++i < n0;) {
1319         node = group[i];
1320         nodeData = groupData[i];
1321         if (node) {
1322           node.__data__ = nodeData;
1323           updateNodes[i] = node;
1324         } else {
1325           enterNodes[i] = d3_selection_dataNode(nodeData);
1326         }
1327       }
1328       for (; i < m; ++i) {
1329         enterNodes[i] = d3_selection_dataNode(groupData[i]);
1330       }
1331       for (; i < n; ++i) {
1332         exitNodes[i] = group[i];
1333       }
1334     }
1335
1336     enterNodes.update
1337         = updateNodes;
1338
1339     enterNodes.parentNode
1340         = updateNodes.parentNode
1341         = exitNodes.parentNode
1342         = group.parentNode;
1343
1344     enter.push(enterNodes);
1345     update.push(updateNodes);
1346     exit.push(exitNodes);
1347   }
1348
1349   var enter = d3_selection_enter([]),
1350       update = d3_selection([]),
1351       exit = d3_selection([]);
1352
1353   if (typeof value === "function") {
1354     while (++i < n) {
1355       bind(group = this[i], value.call(group, group.parentNode.__data__, i));
1356     }
1357   } else {
1358     while (++i < n) {
1359       bind(group = this[i], value);
1360     }
1361   }
1362
1363   update.enter = function() { return enter; };
1364   update.exit = function() { return exit; };
1365   return update;
1366 };
1367
1368 function d3_selection_dataNode(data) {
1369   return {__data__: data};
1370 }
1371
1372 d3_selectionPrototype.datum = function(value) {
1373   return arguments.length
1374       ? this.property("__data__", value)
1375       : this.property("__data__");
1376 };
1377
1378 d3_selectionPrototype.filter = function(filter) {
1379   var subgroups = [],
1380       subgroup,
1381       group,
1382       node;
1383
1384   if (typeof filter !== "function") filter = d3_selection_filter(filter);
1385
1386   for (var j = 0, m = this.length; j < m; j++) {
1387     subgroups.push(subgroup = []);
1388     subgroup.parentNode = (group = this[j]).parentNode;
1389     for (var i = 0, n = group.length; i < n; i++) {
1390       if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
1391         subgroup.push(node);
1392       }
1393     }
1394   }
1395
1396   return d3_selection(subgroups);
1397 };
1398
1399 function d3_selection_filter(selector) {
1400   return function() {
1401     return d3_selectMatches(this, selector);
1402   };
1403 }
1404
1405 d3_selectionPrototype.order = function() {
1406   for (var j = -1, m = this.length; ++j < m;) {
1407     for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
1408       if (node = group[i]) {
1409         if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
1410         next = node;
1411       }
1412     }
1413   }
1414   return this;
1415 };
1416
1417 d3_selectionPrototype.sort = function(comparator) {
1418   comparator = d3_selection_sortComparator.apply(this, arguments);
1419   for (var j = -1, m = this.length; ++j < m;) this[j].sort(comparator);
1420   return this.order();
1421 };
1422
1423 function d3_selection_sortComparator(comparator) {
1424   if (!arguments.length) comparator = d3_ascending;
1425   return function(a, b) {
1426     return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
1427   };
1428 }
1429
1430 d3_selectionPrototype.each = function(callback) {
1431   return d3_selection_each(this, function(node, i, j) {
1432     callback.call(node, node.__data__, i, j);
1433   });
1434 };
1435
1436 function d3_selection_each(groups, callback) {
1437   for (var j = 0, m = groups.length; j < m; j++) {
1438     for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
1439       if (node = group[i]) callback(node, i, j);
1440     }
1441   }
1442   return groups;
1443 }
1444
1445 d3_selectionPrototype.call = function(callback) {
1446   var args = d3_array(arguments);
1447   callback.apply(args[0] = this, args);
1448   return this;
1449 };
1450
1451 d3_selectionPrototype.empty = function() {
1452   return !this.node();
1453 };
1454
1455 d3_selectionPrototype.node = function() {
1456   for (var j = 0, m = this.length; j < m; j++) {
1457     for (var group = this[j], i = 0, n = group.length; i < n; i++) {
1458       var node = group[i];
1459       if (node) return node;
1460     }
1461   }
1462   return null;
1463 };
1464
1465 d3_selectionPrototype.size = function() {
1466   var n = 0;
1467   d3_selection_each(this, function() { ++n; });
1468   return n;
1469 };
1470
1471 function d3_selection_enter(selection) {
1472   d3_subclass(selection, d3_selection_enterPrototype);
1473   return selection;
1474 }
1475
1476 var d3_selection_enterPrototype = [];
1477
1478 d3.selection.enter = d3_selection_enter;
1479 d3.selection.enter.prototype = d3_selection_enterPrototype;
1480
1481 d3_selection_enterPrototype.append = d3_selectionPrototype.append;
1482 d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
1483 d3_selection_enterPrototype.node = d3_selectionPrototype.node;
1484 d3_selection_enterPrototype.call = d3_selectionPrototype.call;
1485 d3_selection_enterPrototype.size = d3_selectionPrototype.size;
1486
1487
1488 d3_selection_enterPrototype.select = function(selector) {
1489   var subgroups = [],
1490       subgroup,
1491       subnode,
1492       upgroup,
1493       group,
1494       node;
1495
1496   for (var j = -1, m = this.length; ++j < m;) {
1497     upgroup = (group = this[j]).update;
1498     subgroups.push(subgroup = []);
1499     subgroup.parentNode = group.parentNode;
1500     for (var i = -1, n = group.length; ++i < n;) {
1501       if (node = group[i]) {
1502         subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));
1503         subnode.__data__ = node.__data__;
1504       } else {
1505         subgroup.push(null);
1506       }
1507     }
1508   }
1509
1510   return d3_selection(subgroups);
1511 };
1512
1513 d3_selection_enterPrototype.insert = function(name, before) {
1514   if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);
1515   return d3_selectionPrototype.insert.call(this, name, before);
1516 };
1517
1518 function d3_selection_enterInsertBefore(enter) {
1519   var i0, j0;
1520   return function(d, i, j) {
1521     var group = enter[j].update,
1522         n = group.length,
1523         node;
1524     if (j != j0) j0 = j, i0 = 0;
1525     if (i >= i0) i0 = i + 1;
1526     while (!(node = group[i0]) && ++i0 < n);
1527     return node;
1528   };
1529 }
1530
1531 // TODO fast singleton implementation?
1532 d3.select = function(node) {
1533   var group;
1534   if (typeof node === "string") {
1535     group = [d3_select(node, d3_document)];
1536     group.parentNode = d3_document.documentElement;
1537   } else {
1538     group = [node];
1539     group.parentNode = d3_documentElement(node);
1540   }
1541   return d3_selection([group]);
1542 };
1543
1544 d3.selectAll = function(nodes) {
1545   var group;
1546   if (typeof nodes === "string") {
1547     group = d3_array(d3_selectAll(nodes, d3_document));
1548     group.parentNode = d3_document.documentElement;
1549   } else {
1550     group = nodes;
1551     group.parentNode = null;
1552   }
1553   return d3_selection([group]);
1554 };
1555
1556 d3_selectionPrototype.on = function(type, listener, capture) {
1557   var n = arguments.length;
1558   if (n < 3) {
1559
1560     // For on(object) or on(object, boolean), the object specifies the event
1561     // types and listeners to add or remove. The optional boolean specifies
1562     // whether the listener captures events.
1563     if (typeof type !== "string") {
1564       if (n < 2) listener = false;
1565       for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
1566       return this;
1567     }
1568
1569     // For on(string), return the listener for the first node.
1570     if (n < 2) return (n = this.node()["__on" + type]) && n._;
1571
1572     // For on(string, function), use the default capture.
1573     capture = false;
1574   }
1575
1576   // Otherwise, a type, listener and capture are specified, and handled as below.
1577   return this.each(d3_selection_on(type, listener, capture));
1578 };
1579
1580 function d3_selection_on(type, listener, capture) {
1581   var name = "__on" + type,
1582       i = type.indexOf("."),
1583       wrap = d3_selection_onListener;
1584
1585   if (i > 0) type = type.slice(0, i);
1586   var filter = d3_selection_onFilters.get(type);
1587   if (filter) type = filter, wrap = d3_selection_onFilter;
1588
1589   function onRemove() {
1590     var l = this[name];
1591     if (l) {
1592       this.removeEventListener(type, l, l.$);
1593       delete this[name];
1594     }
1595   }
1596
1597   function onAdd() {
1598     var l = wrap(listener, d3_array(arguments));
1599     if (typeof Raven !== 'undefined') l = Raven.wrap(l);
1600     onRemove.call(this);
1601     this.addEventListener(type, this[name] = l, l.$ = capture);
1602     l._ = listener;
1603   }
1604
1605   function removeAll() {
1606     var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"),
1607         match;
1608     for (var name in this) {
1609       if (match = name.match(re)) {
1610         var l = this[name];
1611         this.removeEventListener(match[1], l, l.$);
1612         delete this[name];
1613       }
1614     }
1615   }
1616
1617   return i
1618       ? listener ? onAdd : onRemove
1619       : listener ? d3_noop : removeAll;
1620 }
1621
1622 var d3_selection_onFilters = d3.map({
1623   mouseenter: "mouseover",
1624   mouseleave: "mouseout"
1625 });
1626
1627 if (d3_document) {
1628   d3_selection_onFilters.forEach(function(k) {
1629     if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
1630   });
1631 }
1632
1633 function d3_selection_onListener(listener, argumentz) {
1634   return function(e) {
1635     var o = d3.event; // Events can be reentrant (e.g., focus).
1636     d3.event = e;
1637     argumentz[0] = this.__data__;
1638     try {
1639       listener.apply(this, argumentz);
1640     } finally {
1641       d3.event = o;
1642     }
1643   };
1644 }
1645
1646 function d3_selection_onFilter(listener, argumentz) {
1647   var l = d3_selection_onListener(listener, argumentz);
1648   return function(e) {
1649     var target = this, related = e.relatedTarget;
1650     if (!related || (related !== target && !(related.compareDocumentPosition(target) & 8))) {
1651       l.call(target, e);
1652     }
1653   };
1654 }
1655
1656 var d3_event_dragSelect,
1657     d3_event_dragId = 0;
1658
1659 function d3_event_dragSuppress(node) {
1660   var name = ".dragsuppress-" + ++d3_event_dragId,
1661       click = "click" + name,
1662       w = d3.select(d3_window(node))
1663           .on("touchmove" + name, d3_eventPreventDefault)
1664           .on("dragstart" + name, d3_eventPreventDefault)
1665           .on("selectstart" + name, d3_eventPreventDefault);
1666
1667   if (d3_event_dragSelect == null) {
1668     d3_event_dragSelect = "onselectstart" in node ? false
1669         : d3_vendorSymbol(node.style, "userSelect");
1670   }
1671
1672   if (d3_event_dragSelect) {
1673     var style = d3_documentElement(node).style,
1674         select = style[d3_event_dragSelect];
1675     style[d3_event_dragSelect] = "none";
1676   }
1677
1678   return function(suppressClick) {
1679     w.on(name, null);
1680     if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
1681     if (suppressClick) { // suppress the next click, but only if it’s immediate
1682       var off = function() { w.on(click, null); };
1683       w.on(click, function() { d3_eventCancel(); off(); }, true);
1684       setTimeout(off, 0);
1685     }
1686   };
1687 }
1688
1689 d3.mouse = function(container) {
1690   return d3_mousePoint(container, d3_eventSource());
1691 };
1692
1693 // https://bugs.webkit.org/show_bug.cgi?id=44083
1694 var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
1695
1696 function d3_mousePoint(container, e) {
1697   if (e.changedTouches) e = e.changedTouches[0];
1698   var svg = container.ownerSVGElement || container;
1699   if (svg.createSVGPoint) {
1700     var point = svg.createSVGPoint();
1701     if (d3_mouse_bug44083 < 0) {
1702       var window = d3_window(container);
1703       if (window.scrollX || window.scrollY) {
1704         svg = d3.select("body").append("svg").style({
1705           position: "absolute",
1706           top: 0,
1707           left: 0,
1708           margin: 0,
1709           padding: 0,
1710           border: "none"
1711         }, "important");
1712         var ctm = svg[0][0].getScreenCTM();
1713         d3_mouse_bug44083 = !(ctm.f || ctm.e);
1714         svg.remove();
1715       }
1716     }
1717     if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY;
1718     else point.x = e.clientX, point.y = e.clientY;
1719     point = point.matrixTransform(container.getScreenCTM().inverse());
1720     return [point.x, point.y];
1721   }
1722   var rect = container.getBoundingClientRect();
1723   return [e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop];
1724 };
1725
1726 d3.touches = function(container, touches) {
1727   if (arguments.length < 2) touches = d3_eventSource().touches;
1728   return touches ? d3_array(touches).map(function(touch) {
1729     var point = d3_mousePoint(container, touch);
1730     point.identifier = touch.identifier;
1731     return point;
1732   }) : [];
1733 };
1734 var ε = 1e-6,
1735     ε2 = ε * ε,
1736     π = Math.PI,
1737     τ = 2 * π,
1738     τε = τ - ε,
1739     halfπ = π / 2,
1740     d3_radians = π / 180,
1741     d3_degrees = 180 / π;
1742
1743 function d3_sgn(x) {
1744   return x > 0 ? 1 : x < 0 ? -1 : 0;
1745 }
1746
1747 // Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
1748 // the 3D cross product in a quadrant I Cartesian coordinate system (+x is
1749 // right, +y is up). Returns a positive value if ABC is counter-clockwise,
1750 // negative if clockwise, and zero if the points are collinear.
1751 function d3_cross2d(a, b, c) {
1752   return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
1753 }
1754
1755 function d3_acos(x) {
1756   return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
1757 }
1758
1759 function d3_asin(x) {
1760   return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
1761 }
1762
1763 function d3_sinh(x) {
1764   return ((x = Math.exp(x)) - 1 / x) / 2;
1765 }
1766
1767 function d3_cosh(x) {
1768   return ((x = Math.exp(x)) + 1 / x) / 2;
1769 }
1770
1771 function d3_tanh(x) {
1772   return ((x = Math.exp(2 * x)) - 1) / (x + 1);
1773 }
1774
1775 function d3_haversin(x) {
1776   return (x = Math.sin(x / 2)) * x;
1777 }
1778
1779 var ρ = Math.SQRT2,
1780     ρ2 = 2,
1781     ρ4 = 4;
1782
1783 // p0 = [ux0, uy0, w0]
1784 // p1 = [ux1, uy1, w1]
1785 d3.interpolateZoom = function(p0, p1) {
1786   var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
1787       ux1 = p1[0], uy1 = p1[1], w1 = p1[2];
1788
1789   var dx = ux1 - ux0,
1790       dy = uy1 - uy0,
1791       d2 = dx * dx + dy * dy,
1792       d1 = Math.sqrt(d2),
1793       b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1),
1794       b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1),
1795       r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
1796       r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1),
1797       dr = r1 - r0,
1798       S = (dr || Math.log(w1 / w0)) / ρ;
1799
1800   function interpolate(t) {
1801     var s = t * S;
1802     if (dr) {
1803       // General case.
1804       var coshr0 = d3_cosh(r0),
1805           u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
1806       return [
1807         ux0 + u * dx,
1808         uy0 + u * dy,
1809         w0 * coshr0 / d3_cosh(ρ * s + r0)
1810       ];
1811     }
1812     // Special case for u0 ~= u1.
1813     return [
1814       ux0 + t * dx,
1815       uy0 + t * dy,
1816       w0 * Math.exp(ρ * s)
1817     ];
1818   }
1819
1820   interpolate.duration = S * 1000;
1821
1822   return interpolate;
1823 };
1824
1825 d3.behavior.zoom = function() {
1826   var view = {x: 0, y: 0, k: 1},
1827       translate0, // translate when we started zooming (to avoid drift)
1828       center0, // implicit desired position of translate0 after zooming
1829       center, // explicit desired position of translate0 after zooming
1830       size = [960, 500], // viewport size; required for zoom interpolation
1831       scaleExtent = d3_behavior_zoomInfinity,
1832       duration = 250,
1833       zooming = 0,
1834       mousedown = "mousedown.zoom",
1835       mousemove = "mousemove.zoom",
1836       mouseup = "mouseup.zoom",
1837       mousewheelTimer,
1838       touchstart = "touchstart.zoom",
1839       touchtime, // time of last touchstart (to detect double-tap)
1840       event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"),
1841       x0,
1842       x1,
1843       y0,
1844       y1;
1845
1846   // Lazily determine the DOM’s support for Wheel events.
1847   // https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/wheel
1848   if (!d3_behavior_zoomWheel) {
1849     d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); }, "wheel")
1850         : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { return d3.event.wheelDelta; }, "mousewheel")
1851         : (d3_behavior_zoomDelta = function() { return -d3.event.detail; }, "MozMousePixelScroll");
1852   }
1853
1854   function zoom(g) {
1855     g   .on(mousedown, mousedowned)
1856         .on(d3_behavior_zoomWheel + ".zoom", mousewheeled)
1857         .on("dblclick.zoom", dblclicked)
1858         .on(touchstart, touchstarted);
1859   }
1860
1861   zoom.event = function(g) {
1862     g.each(function() {
1863       var dispatch = event.of(this, arguments),
1864           view1 = view;
1865       if (d3_transitionInheritId) {
1866         d3.select(this).transition()
1867             .each("start.zoom", function() {
1868               view = this.__chart__ || {x: 0, y: 0, k: 1}; // pre-transition state
1869               zoomstarted(dispatch);
1870             })
1871             .tween("zoom:zoom", function() {
1872               var dx = size[0],
1873                   dy = size[1],
1874                   cx = center0 ? center0[0] : dx / 2,
1875                   cy = center0 ? center0[1] : dy / 2,
1876                   i = d3.interpolateZoom(
1877                     [(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k],
1878                     [(cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k]
1879                   );
1880               return function(t) {
1881                 var l = i(t), k = dx / l[2];
1882                 this.__chart__ = view = {x: cx - l[0] * k, y: cy - l[1] * k, k: k};
1883                 zoomed(dispatch);
1884               };
1885             })
1886             .each("interrupt.zoom", function() {
1887               zoomended(dispatch);
1888             })
1889             .each("end.zoom", function() {
1890               zoomended(dispatch);
1891             });
1892       } else {
1893         this.__chart__ = view;
1894         zoomstarted(dispatch);
1895         zoomed(dispatch);
1896         zoomended(dispatch);
1897       }
1898     });
1899   }
1900
1901   zoom.translate = function(_) {
1902     if (!arguments.length) return [view.x, view.y];
1903     view = {x: +_[0], y: +_[1], k: view.k}; // copy-on-write
1904     rescale();
1905     return zoom;
1906   };
1907
1908   zoom.scale = function(_) {
1909     if (!arguments.length) return view.k;
1910     view = {x: view.x, y: view.y, k: +_}; // copy-on-write
1911     rescale();
1912     return zoom;
1913   };
1914
1915   zoom.scaleExtent = function(_) {
1916     if (!arguments.length) return scaleExtent;
1917     scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]];
1918     return zoom;
1919   };
1920
1921   zoom.center = function(_) {
1922     if (!arguments.length) return center;
1923     center = _ && [+_[0], +_[1]];
1924     return zoom;
1925   };
1926
1927   zoom.size = function(_) {
1928     if (!arguments.length) return size;
1929     size = _ && [+_[0], +_[1]];
1930     return zoom;
1931   };
1932
1933   zoom.duration = function(_) {
1934     if (!arguments.length) return duration;
1935     duration = +_; // TODO function based on interpolateZoom distance?
1936     return zoom;
1937   };
1938
1939   zoom.x = function(z) {
1940     if (!arguments.length) return x1;
1941     x1 = z;
1942     x0 = z.copy();
1943     view = {x: 0, y: 0, k: 1}; // copy-on-write
1944     return zoom;
1945   };
1946
1947   zoom.y = function(z) {
1948     if (!arguments.length) return y1;
1949     y1 = z;
1950     y0 = z.copy();
1951     view = {x: 0, y: 0, k: 1}; // copy-on-write
1952     return zoom;
1953   };
1954
1955   function location(p) {
1956     return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k];
1957   }
1958
1959   function point(l) {
1960     return [l[0] * view.k + view.x, l[1] * view.k + view.y];
1961   }
1962
1963   function scaleTo(s) {
1964     view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
1965   }
1966
1967   function translateTo(p, l) {
1968     l = point(l);
1969     view.x += p[0] - l[0];
1970     view.y += p[1] - l[1];
1971   }
1972
1973   function zoomTo(that, p, l, k) {
1974     that.__chart__ = {x: view.x, y: view.y, k: view.k};
1975
1976     scaleTo(Math.pow(2, k));
1977     translateTo(center0 = p, l);
1978
1979     that = d3.select(that);
1980     if (duration > 0) that = that.transition().duration(duration);
1981     that.call(zoom.event);
1982   }
1983
1984   function rescale() {
1985     if (x1) x1.domain(x0.range().map(function(x) { return (x - view.x) / view.k; }).map(x0.invert));
1986     if (y1) y1.domain(y0.range().map(function(y) { return (y - view.y) / view.k; }).map(y0.invert));
1987   }
1988
1989   function zoomstarted(dispatch) {
1990     if (!zooming++) dispatch({type: "zoomstart"});
1991   }
1992
1993   function zoomed(dispatch) {
1994     rescale();
1995     dispatch({type: "zoom", scale: view.k, translate: [view.x, view.y]});
1996   }
1997
1998   function zoomended(dispatch) {
1999     if (!--zooming) dispatch({type: "zoomend"});
2000     center0 = null;
2001   }
2002
2003   function mousedowned() {
2004     var that = this,
2005         target = d3.event.target,
2006         dispatch = event.of(that, arguments),
2007         dragged = 0,
2008         subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended),
2009         location0 = location(d3.mouse(that)),
2010         dragRestore = d3_event_dragSuppress(that);
2011
2012     d3_selection_interrupt.call(that);
2013     zoomstarted(dispatch);
2014
2015     function moved() {
2016       dragged = 1;
2017       translateTo(d3.mouse(that), location0);
2018       zoomed(dispatch);
2019     }
2020
2021     function ended() {
2022       subject.on(mousemove, null).on(mouseup, null);
2023       dragRestore(dragged && d3.event.target === target);
2024       zoomended(dispatch);
2025     }
2026   }
2027
2028   // These closures persist for as long as at least one touch is active.
2029   function touchstarted() {
2030     var that = this,
2031         dispatch = event.of(that, arguments),
2032         locations0 = {}, // touchstart locations
2033         distance0 = 0, // distance² between initial touches
2034         scale0, // scale when we started touching
2035         zoomName = ".zoom-" + d3.event.changedTouches[0].identifier,
2036         touchmove = "touchmove" + zoomName,
2037         touchend = "touchend" + zoomName,
2038         targets = [],
2039         subject = d3.select(that),
2040         dragRestore = d3_event_dragSuppress(that);
2041
2042     started();
2043     zoomstarted(dispatch);
2044
2045     // Workaround for Chrome issue 412723: the touchstart listener must be set
2046     // after the touchmove listener.
2047     subject.on(mousedown, null).on(touchstart, started); // prevent duplicate events
2048
2049     // Updates locations of any touches in locations0.
2050     function relocate() {
2051       var touches = d3.touches(that);
2052       scale0 = view.k;
2053       touches.forEach(function(t) {
2054         if (t.identifier in locations0) locations0[t.identifier] = location(t);
2055       });
2056       return touches;
2057     }
2058
2059     // Temporarily override touchstart while gesture is active.
2060     function started() {
2061
2062       // Listen for touchmove and touchend on the target of touchstart.
2063       var target = d3.event.target;
2064       d3.select(target).on(touchmove, moved).on(touchend, ended);
2065       targets.push(target);
2066
2067       // Only track touches started on the same subject element.
2068       var changed = d3.event.changedTouches;
2069       for (var i = 0, n = changed.length; i < n; ++i) {
2070         locations0[changed[i].identifier] = null;
2071       }
2072
2073       var touches = relocate(),
2074           now = Date.now();
2075
2076       if (touches.length === 1) {
2077         if (now - touchtime < 500) { // dbltap
2078           var p = touches[0];
2079           zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
2080           d3_eventPreventDefault();
2081         }
2082         touchtime = now;
2083       } else if (touches.length > 1) {
2084         var p = touches[0], q = touches[1],
2085             dx = p[0] - q[0], dy = p[1] - q[1];
2086         distance0 = dx * dx + dy * dy;
2087       }
2088     }
2089
2090     function moved() {
2091       var touches = d3.touches(that),
2092           p0, l0,
2093           p1, l1;
2094
2095       d3_selection_interrupt.call(that);
2096
2097       for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
2098         p1 = touches[i];
2099         if (l1 = locations0[p1.identifier]) {
2100           if (l0) break;
2101           p0 = p1, l0 = l1;
2102         }
2103       }
2104
2105       if (l1) {
2106         var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1,
2107             scale1 = distance0 && Math.sqrt(distance1 / distance0);
2108         p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
2109         l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
2110         scaleTo(scale1 * scale0);
2111       }
2112
2113       touchtime = null;
2114       translateTo(p0, l0);
2115       zoomed(dispatch);
2116     }
2117
2118     function ended() {
2119       // If there are any globally-active touches remaining, remove the ended
2120       // touches from locations0.
2121       if (d3.event.touches.length) {
2122         var changed = d3.event.changedTouches;
2123         for (var i = 0, n = changed.length; i < n; ++i) {
2124           delete locations0[changed[i].identifier];
2125         }
2126         // If locations0 is not empty, then relocate and continue listening for
2127         // touchmove and touchend.
2128         for (var identifier in locations0) {
2129           return void relocate(); // locations may have detached due to rotation
2130         }
2131       }
2132       // Otherwise, remove touchmove and touchend listeners.
2133       d3.selectAll(targets).on(zoomName, null);
2134       subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
2135       dragRestore();
2136       zoomended(dispatch);
2137     }
2138   }
2139
2140   function mousewheeled() {
2141     var dispatch = event.of(this, arguments);
2142     if (mousewheelTimer) clearTimeout(mousewheelTimer);
2143     else translate0 = location(center0 = center || d3.mouse(this)), d3_selection_interrupt.call(this), zoomstarted(dispatch);
2144     mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(dispatch); }, 50);
2145     d3_eventPreventDefault();
2146     scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
2147     translateTo(center0, translate0);
2148     zoomed(dispatch);
2149   }
2150
2151   function dblclicked() {
2152     var p = d3.mouse(this),
2153         k = Math.log(view.k) / Math.LN2;
2154
2155     zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
2156   }
2157
2158   return d3.rebind(zoom, event, "on");
2159 };
2160
2161 var d3_behavior_zoomInfinity = [0, Infinity], // default scale extent
2162     d3_behavior_zoomDelta, // initialized lazily
2163     d3_behavior_zoomWheel;
2164 function d3_functor(v) {
2165   return typeof v === "function" ? v : function() { return v; };
2166 }
2167
2168 d3.functor = d3_functor;
2169
2170 d3.touch = function(container, touches, identifier) {
2171   if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
2172   if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
2173     if ((touch = touches[i]).identifier === identifier) {
2174       return d3_mousePoint(container, touch);
2175     }
2176   }
2177 };
2178
2179 var d3_timer_queueHead,
2180     d3_timer_queueTail,
2181     d3_timer_interval, // is an interval (or frame) active?
2182     d3_timer_timeout, // is a timeout active?
2183     d3_timer_active, // active timer object
2184     d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { setTimeout(callback, 17); };
2185
2186 // The timer will continue to fire until callback returns true.
2187 d3.timer = function(callback, delay, then) {
2188   var n = arguments.length;
2189   if (n < 2) delay = 0;
2190   if (n < 3) then = Date.now();
2191
2192   // Add the callback to the tail of the queue.
2193   var time = then + delay, timer = {c: callback, t: time, f: false, n: null};
2194   if (d3_timer_queueTail) d3_timer_queueTail.n = timer;
2195   else d3_timer_queueHead = timer;
2196   d3_timer_queueTail = timer;
2197
2198   // Start animatin'!
2199   if (!d3_timer_interval) {
2200     d3_timer_timeout = clearTimeout(d3_timer_timeout);
2201     d3_timer_interval = 1;
2202     d3_timer_frame(d3_timer_step);
2203   }
2204 };
2205
2206 function d3_timer_step() {
2207   var now = d3_timer_mark(),
2208       delay = d3_timer_sweep() - now;
2209   if (delay > 24) {
2210     if (isFinite(delay)) {
2211       clearTimeout(d3_timer_timeout);
2212       d3_timer_timeout = setTimeout(d3_timer_step, delay);
2213     }
2214     d3_timer_interval = 0;
2215   } else {
2216     d3_timer_interval = 1;
2217     d3_timer_frame(d3_timer_step);
2218   }
2219 }
2220
2221 d3.timer.flush = function() {
2222   d3_timer_mark();
2223   d3_timer_sweep();
2224 };
2225
2226 function d3_timer_mark() {
2227   var now = Date.now();
2228   d3_timer_active = d3_timer_queueHead;
2229   while (d3_timer_active) {
2230     if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t);
2231     d3_timer_active = d3_timer_active.n;
2232   }
2233   return now;
2234 }
2235
2236 // Flush after callbacks to avoid concurrent queue modification.
2237 // Returns the time of the earliest active timer, post-sweep.
2238 function d3_timer_sweep() {
2239   var t0,
2240       t1 = d3_timer_queueHead,
2241       time = Infinity;
2242   while (t1) {
2243     if (t1.f) {
2244       t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
2245     } else {
2246       if (t1.t < time) time = t1.t;
2247       t1 = (t0 = t1).n;
2248     }
2249   }
2250   d3_timer_queueTail = t0;
2251   return time;
2252 }
2253 d3.geo = {};
2254 function d3_identity(d) {
2255   return d;
2256 }
2257 function d3_true() {
2258   return true;
2259 }
2260
2261 function d3_geo_spherical(cartesian) {
2262   return [
2263     Math.atan2(cartesian[1], cartesian[0]),
2264     d3_asin(cartesian[2])
2265   ];
2266 }
2267
2268 function d3_geo_sphericalEqual(a, b) {
2269   return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
2270 }
2271
2272 // General spherical polygon clipping algorithm: takes a polygon, cuts it into
2273 // visible line segments and rejoins the segments by interpolating along the
2274 // clip edge.
2275 function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
2276   var subject = [],
2277       clip = [];
2278
2279   segments.forEach(function(segment) {
2280     if ((n = segment.length - 1) <= 0) return;
2281     var n, p0 = segment[0], p1 = segment[n];
2282
2283     // If the first and last points of a segment are coincident, then treat as
2284     // a closed ring.
2285     // TODO if all rings are closed, then the winding order of the exterior
2286     // ring should be checked.
2287     if (d3_geo_sphericalEqual(p0, p1)) {
2288       listener.lineStart();
2289       for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
2290       listener.lineEnd();
2291       return;
2292     }
2293
2294     var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true),
2295         b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
2296     a.o = b;
2297     subject.push(a);
2298     clip.push(b);
2299     a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
2300     b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
2301     a.o = b;
2302     subject.push(a);
2303     clip.push(b);
2304   });
2305   clip.sort(compare);
2306   d3_geo_clipPolygonLinkCircular(subject);
2307   d3_geo_clipPolygonLinkCircular(clip);
2308   if (!subject.length) return;
2309
2310   for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
2311     clip[i].e = entry = !entry;
2312   }
2313
2314   var start = subject[0],
2315       points,
2316       point;
2317   while (1) {
2318     // Find first unvisited intersection.
2319     var current = start,
2320         isSubject = true;
2321     while (current.v) if ((current = current.n) === start) return;
2322     points = current.z;
2323     listener.lineStart();
2324     do {
2325       current.v = current.o.v = true;
2326       if (current.e) {
2327         if (isSubject) {
2328           for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
2329         } else {
2330           interpolate(current.x, current.n.x, 1, listener);
2331         }
2332         current = current.n;
2333       } else {
2334         if (isSubject) {
2335           points = current.p.z;
2336           for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
2337         } else {
2338           interpolate(current.x, current.p.x, -1, listener);
2339         }
2340         current = current.p;
2341       }
2342       current = current.o;
2343       points = current.z;
2344       isSubject = !isSubject;
2345     } while (!current.v);
2346     listener.lineEnd();
2347   }
2348 }
2349
2350 function d3_geo_clipPolygonLinkCircular(array) {
2351   if (!(n = array.length)) return;
2352   var n,
2353       i = 0,
2354       a = array[0],
2355       b;
2356   while (++i < n) {
2357     a.n = b = array[i];
2358     b.p = a;
2359     a = b;
2360   }
2361   a.n = b = array[0];
2362   b.p = a;
2363 }
2364
2365 function d3_geo_clipPolygonIntersection(point, points, other, entry) {
2366   this.x = point;
2367   this.z = points;
2368   this.o = other; // another intersection
2369   this.e = entry; // is an entry?
2370   this.v = false; // visited
2371   this.n = this.p = null; // next & previous
2372 }
2373
2374 function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
2375   return function(rotate, listener) {
2376     var line = clipLine(listener),
2377         rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
2378
2379     var clip = {
2380       point: point,
2381       lineStart: lineStart,
2382       lineEnd: lineEnd,
2383       polygonStart: function() {
2384         clip.point = pointRing;
2385         clip.lineStart = ringStart;
2386         clip.lineEnd = ringEnd;
2387         segments = [];
2388         polygon = [];
2389       },
2390       polygonEnd: function() {
2391         clip.point = point;
2392         clip.lineStart = lineStart;
2393         clip.lineEnd = lineEnd;
2394
2395         segments = d3.merge(segments);
2396         var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
2397         if (segments.length) {
2398           if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
2399           d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
2400         } else if (clipStartInside) {
2401           if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
2402           listener.lineStart();
2403           interpolate(null, null, 1, listener);
2404           listener.lineEnd();
2405         }
2406         if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
2407         segments = polygon = null;
2408       },
2409       sphere: function() {
2410         listener.polygonStart();
2411         listener.lineStart();
2412         interpolate(null, null, 1, listener);
2413         listener.lineEnd();
2414         listener.polygonEnd();
2415       }
2416     };
2417
2418     function point(λ, φ) {
2419       var point = rotate(λ, φ);
2420       if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
2421     }
2422     function pointLine(λ, φ) {
2423       var point = rotate(λ, φ);
2424       line.point(point[0], point[1]);
2425     }
2426     function lineStart() { clip.point = pointLine; line.lineStart(); }
2427     function lineEnd() { clip.point = point; line.lineEnd(); }
2428
2429     var segments;
2430
2431     var buffer = d3_geo_clipBufferListener(),
2432         ringListener = clipLine(buffer),
2433         polygonStarted = false,
2434         polygon,
2435         ring;
2436
2437     function pointRing(λ, φ) {
2438       ring.push([λ, φ]);
2439       var point = rotate(λ, φ);
2440       ringListener.point(point[0], point[1]);
2441     }
2442
2443     function ringStart() {
2444       ringListener.lineStart();
2445       ring = [];
2446     }
2447
2448     function ringEnd() {
2449       pointRing(ring[0][0], ring[0][1]);
2450       ringListener.lineEnd();
2451
2452       var clean = ringListener.clean(),
2453           ringSegments = buffer.buffer(),
2454           segment,
2455           n = ringSegments.length;
2456
2457       ring.pop();
2458       polygon.push(ring);
2459       ring = null;
2460
2461       if (!n) return;
2462
2463       // No intersections.
2464       if (clean & 1) {
2465         segment = ringSegments[0];
2466         var n = segment.length - 1,
2467             i = -1,
2468             point;
2469         if (n > 0) {
2470           if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
2471           listener.lineStart();
2472           while (++i < n) listener.point((point = segment[i])[0], point[1]);
2473           listener.lineEnd();
2474         }
2475         return;
2476       }
2477
2478       // Rejoin connected segments.
2479       // TODO reuse bufferListener.rejoin()?
2480       if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
2481
2482       segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
2483     }
2484
2485     return clip;
2486   };
2487 }
2488
2489 function d3_geo_clipSegmentLength1(segment) {
2490   return segment.length > 1;
2491 }
2492
2493 function d3_geo_clipBufferListener() {
2494   var lines = [],
2495       line;
2496   return {
2497     lineStart: function() { lines.push(line = []); },
2498     point: function(λ, φ) { line.push([λ, φ]); },
2499     lineEnd: d3_noop,
2500     buffer: function() {
2501       var buffer = lines;
2502       lines = [];
2503       line = null;
2504       return buffer;
2505     },
2506     rejoin: function() {
2507       if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
2508     }
2509   };
2510 }
2511
2512 // Intersection points are sorted along the clip edge. For both antimeridian
2513 // cutting and circle clipping, the same comparison is used.
2514 function d3_geo_clipSort(a, b) {
2515   return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1])
2516        - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
2517 }
2518
2519 var d3_geo_clipAntimeridian = d3_geo_clip(
2520     d3_true,
2521     d3_geo_clipAntimeridianLine,
2522     d3_geo_clipAntimeridianInterpolate,
2523     [-π, -π / 2]);
2524
2525 // Takes a line and cuts into visible segments. Return values:
2526 //   0: there were intersections or the line was empty.
2527 //   1: no intersections.
2528 //   2: there were intersections, and the first and last segments should be
2529 //      rejoined.
2530 function d3_geo_clipAntimeridianLine(listener) {
2531   var λ0 = NaN,
2532       φ0 = NaN,
2533       sλ0 = NaN,
2534       clean; // no intersections
2535
2536   return {
2537     lineStart: function() {
2538       listener.lineStart();
2539       clean = 1;
2540     },
2541     point: function(λ1, φ1) {
2542       var sλ1 = λ1 > 0 ? π : -π,
2543           dλ = abs(λ1 - λ0);
2544       if (abs(dλ - π) < ε) { // line crosses a pole
2545         listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
2546         listener.point(sλ0, φ0);
2547         listener.lineEnd();
2548         listener.lineStart();
2549         listener.point(sλ1, φ0);
2550         listener.point(λ1, φ0);
2551         clean = 0;
2552       } else if (sλ0 !== sλ1 && dλ >= π) { // line crosses antimeridian
2553         // handle degeneracies
2554         if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
2555         if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
2556         φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
2557         listener.point(sλ0, φ0);
2558         listener.lineEnd();
2559         listener.lineStart();
2560         listener.point(sλ1, φ0);
2561         clean = 0;
2562       }
2563       listener.point(λ0 = λ1, φ0 = φ1);
2564       sλ0 = sλ1;
2565     },
2566     lineEnd: function() {
2567       listener.lineEnd();
2568       λ0 = φ0 = NaN;
2569     },
2570     // if there are intersections, we always rejoin the first and last segments.
2571     clean: function() { return 2 - clean; }
2572   };
2573 }
2574
2575 function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
2576   var cosφ0,
2577       cosφ1,
2578       sinλ0_λ1 = Math.sin(λ0 - λ1);
2579   return abs(sinλ0_λ1) > ε
2580       ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1)
2581                  - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0))
2582                  / (cosφ0 * cosφ1 * sinλ0_λ1))
2583       : (φ0 + φ1) / 2;
2584 }
2585
2586 function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
2587   var φ;
2588   if (from == null) {
2589     φ = direction * halfπ;
2590     listener.point(-π,  φ);
2591     listener.point( 0,  φ);
2592     listener.point( π,  φ);
2593     listener.point( π,  0);
2594     listener.point( π, -φ);
2595     listener.point( 0, -φ);
2596     listener.point(-π, -φ);
2597     listener.point(-π,  0);
2598     listener.point(-π,  φ);
2599   } else if (abs(from[0] - to[0]) > ε) {
2600     var s = from[0] < to[0] ? π : -π;
2601     φ = direction * s / 2;
2602     listener.point(-s, φ);
2603     listener.point( 0, φ);
2604     listener.point( s, φ);
2605   } else {
2606     listener.point(to[0], to[1]);
2607   }
2608 }
2609 // TODO
2610 // cross and scale return new vectors,
2611 // whereas add and normalize operate in-place
2612
2613 function d3_geo_cartesian(spherical) {
2614   var λ = spherical[0],
2615       φ = spherical[1],
2616       cosφ = Math.cos(φ);
2617   return [
2618     cosφ * Math.cos(λ),
2619     cosφ * Math.sin(λ),
2620     Math.sin(φ)
2621   ];
2622 }
2623
2624 function d3_geo_cartesianDot(a, b) {
2625   return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
2626 }
2627
2628 function d3_geo_cartesianCross(a, b) {
2629   return [
2630     a[1] * b[2] - a[2] * b[1],
2631     a[2] * b[0] - a[0] * b[2],
2632     a[0] * b[1] - a[1] * b[0]
2633   ];
2634 }
2635
2636 function d3_geo_cartesianAdd(a, b) {
2637   a[0] += b[0];
2638   a[1] += b[1];
2639   a[2] += b[2];
2640 }
2641
2642 function d3_geo_cartesianScale(vector, k) {
2643   return [
2644     vector[0] * k,
2645     vector[1] * k,
2646     vector[2] * k
2647   ];
2648 }
2649
2650 function d3_geo_cartesianNormalize(d) {
2651   var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
2652   d[0] /= l;
2653   d[1] /= l;
2654   d[2] /= l;
2655 }
2656 function d3_geo_compose(a, b) {
2657
2658   function compose(x, y) {
2659     return x = a(x, y), b(x[0], x[1]);
2660   }
2661
2662   if (a.invert && b.invert) compose.invert = function(x, y) {
2663     return x = b.invert(x, y), x && a.invert(x[0], x[1]);
2664   };
2665
2666   return compose;
2667 }
2668
2669 function d3_geo_equirectangular(λ, φ) {
2670   return [λ, φ];
2671 }
2672
2673 (d3.geo.equirectangular = function() {
2674   return d3_geo_projection(d3_geo_equirectangular);
2675 }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
2676
2677 d3.geo.rotation = function(rotate) {
2678   rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
2679
2680   function forward(coordinates) {
2681     coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
2682     return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
2683   }
2684
2685   forward.invert = function(coordinates) {
2686     coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
2687     return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
2688   };
2689
2690   return forward;
2691 };
2692
2693 function d3_geo_identityRotation(λ, φ) {
2694   return [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ];
2695 }
2696
2697 d3_geo_identityRotation.invert = d3_geo_equirectangular;
2698
2699 // Note: |δλ| must be < 2π
2700 function d3_geo_rotation(δλ, δφ, δγ) {
2701   return δλ ? (δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ))
2702     : d3_geo_rotationλ(δλ))
2703     : (δφ || δγ ? d3_geo_rotationφγ(δφ, δγ)
2704     : d3_geo_identityRotation);
2705 }
2706
2707 function d3_geo_forwardRotationλ(δλ) {
2708   return function(λ, φ) {
2709     return λ += δλ, [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ];
2710   };
2711 }
2712
2713 function d3_geo_rotationλ(δλ) {
2714   var rotation = d3_geo_forwardRotationλ(δλ);
2715   rotation.invert = d3_geo_forwardRotationλ(-δλ);
2716   return rotation;
2717 }
2718
2719 function d3_geo_rotationφγ(δφ, δγ) {
2720   var cosδφ = Math.cos(δφ),
2721       sinδφ = Math.sin(δφ),
2722       cosδγ = Math.cos(δγ),
2723       sinδγ = Math.sin(δγ);
2724
2725   function rotation(λ, φ) {
2726     var cosφ = Math.cos(φ),
2727         x = Math.cos(λ) * cosφ,
2728         y = Math.sin(λ) * cosφ,
2729         z = Math.sin(φ),
2730         k = z * cosδφ + x * sinδφ;
2731     return [
2732       Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ),
2733       d3_asin(k * cosδγ + y * sinδγ)
2734     ];
2735   }
2736
2737   rotation.invert = function(λ, φ) {
2738     var cosφ = Math.cos(φ),
2739         x = Math.cos(λ) * cosφ,
2740         y = Math.sin(λ) * cosφ,
2741         z = Math.sin(φ),
2742         k = z * cosδγ - y * sinδγ;
2743     return [
2744       Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ),
2745       d3_asin(k * cosδφ - x * sinδφ)
2746     ];
2747   };
2748
2749   return rotation;
2750 }
2751
2752 d3.geo.circle = function() {
2753   var origin = [0, 0],
2754       angle,
2755       precision = 6,
2756       interpolate;
2757
2758   function circle() {
2759     var center = typeof origin === "function" ? origin.apply(this, arguments) : origin,
2760         rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert,
2761         ring = [];
2762
2763     interpolate(null, null, 1, {
2764       point: function(x, y) {
2765         ring.push(x = rotate(x, y));
2766         x[0] *= d3_degrees, x[1] *= d3_degrees;
2767       }
2768     });
2769
2770     return {type: "Polygon", coordinates: [ring]};
2771   }
2772
2773   circle.origin = function(x) {
2774     if (!arguments.length) return origin;
2775     origin = x;
2776     return circle;
2777   };
2778
2779   circle.angle = function(x) {
2780     if (!arguments.length) return angle;
2781     interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
2782     return circle;
2783   };
2784
2785   circle.precision = function(_) {
2786     if (!arguments.length) return precision;
2787     interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
2788     return circle;
2789   };
2790
2791   return circle.angle(90);
2792 };
2793
2794 // Interpolates along a circle centered at [0°, 0°], with a given radius and
2795 // precision.
2796 function d3_geo_circleInterpolate(radius, precision) {
2797   var cr = Math.cos(radius),
2798       sr = Math.sin(radius);
2799   return function(from, to, direction, listener) {
2800     var step = direction * precision;
2801     if (from != null) {
2802       from = d3_geo_circleAngle(cr, from);
2803       to = d3_geo_circleAngle(cr, to);
2804       if (direction > 0 ? from < to: from > to) from += direction * τ;
2805     } else {
2806       from = radius + direction * τ;
2807       to = radius - .5 * step;
2808     }
2809     for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
2810       listener.point((point = d3_geo_spherical([
2811         cr,
2812         -sr * Math.cos(t),
2813         -sr * Math.sin(t)
2814       ]))[0], point[1]);
2815     }
2816   };
2817 }
2818
2819 // Signed angle of a cartesian point relative to [cr, 0, 0].
2820 function d3_geo_circleAngle(cr, point) {
2821   var a = d3_geo_cartesian(point);
2822   a[0] -= cr;
2823   d3_geo_cartesianNormalize(a);
2824   var angle = d3_acos(-a[1]);
2825   return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
2826 }
2827 // Adds floating point numbers with twice the normal precision.
2828 // Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
2829 // Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
2830 // 305–363 (1997).
2831 // Code adapted from GeographicLib by Charles F. F. Karney,
2832 // http://geographiclib.sourceforge.net/
2833 // See lib/geographiclib/LICENSE for details.
2834
2835 function d3_adder() {}
2836
2837 d3_adder.prototype = {
2838   s: 0, // rounded value
2839   t: 0, // exact error
2840   add: function(y) {
2841     d3_adderSum(y, this.t, d3_adderTemp);
2842     d3_adderSum(d3_adderTemp.s, this.s, this);
2843     if (this.s) this.t += d3_adderTemp.t;
2844     else this.s = d3_adderTemp.t;
2845   },
2846   reset: function() {
2847     this.s = this.t = 0;
2848   },
2849   valueOf: function() {
2850     return this.s;
2851   }
2852 };
2853
2854 var d3_adderTemp = new d3_adder;
2855
2856 function d3_adderSum(a, b, o) {
2857   var x = o.s = a + b, // a + b
2858       bv = x - a, av = x - bv; // b_virtual & a_virtual
2859   o.t = (a - av) + (b - bv); // a_roundoff + b_roundoff
2860 }
2861
2862 d3.geo.stream = function(object, listener) {
2863   if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
2864     d3_geo_streamObjectType[object.type](object, listener);
2865   } else {
2866     d3_geo_streamGeometry(object, listener);
2867   }
2868 };
2869
2870 function d3_geo_streamGeometry(geometry, listener) {
2871   if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
2872     d3_geo_streamGeometryType[geometry.type](geometry, listener);
2873   }
2874 }
2875
2876 var d3_geo_streamObjectType = {
2877   Feature: function(feature, listener) {
2878     d3_geo_streamGeometry(feature.geometry, listener);
2879   },
2880   FeatureCollection: function(object, listener) {
2881     var features = object.features, i = -1, n = features.length;
2882     while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
2883   }
2884 };
2885
2886 var d3_geo_streamGeometryType = {
2887   Sphere: function(object, listener) {
2888     listener.sphere();
2889   },
2890   Point: function(object, listener) {
2891     object = object.coordinates;
2892     listener.point(object[0], object[1], object[2]);
2893   },
2894   MultiPoint: function(object, listener) {
2895     var coordinates = object.coordinates, i = -1, n = coordinates.length;
2896     while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
2897   },
2898   LineString: function(object, listener) {
2899     d3_geo_streamLine(object.coordinates, listener, 0);
2900   },
2901   MultiLineString: function(object, listener) {
2902     var coordinates = object.coordinates, i = -1, n = coordinates.length;
2903     while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
2904   },
2905   Polygon: function(object, listener) {
2906     d3_geo_streamPolygon(object.coordinates, listener);
2907   },
2908   MultiPolygon: function(object, listener) {
2909     var coordinates = object.coordinates, i = -1, n = coordinates.length;
2910     while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
2911   },
2912   GeometryCollection: function(object, listener) {
2913     var geometries = object.geometries, i = -1, n = geometries.length;
2914     while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
2915   }
2916 };
2917
2918 function d3_geo_streamLine(coordinates, listener, closed) {
2919   var i = -1, n = coordinates.length - closed, coordinate;
2920   listener.lineStart();
2921   while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
2922   listener.lineEnd();
2923 }
2924
2925 function d3_geo_streamPolygon(coordinates, listener) {
2926   var i = -1, n = coordinates.length;
2927   listener.polygonStart();
2928   while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
2929   listener.polygonEnd();
2930 }
2931
2932 d3.geo.area = function(object) {
2933   d3_geo_areaSum = 0;
2934   d3.geo.stream(object, d3_geo_area);
2935   return d3_geo_areaSum;
2936 };
2937
2938 var d3_geo_areaSum,
2939     d3_geo_areaRingSum = new d3_adder;
2940
2941 var d3_geo_area = {
2942   sphere: function() { d3_geo_areaSum += 4 * π; },
2943   point: d3_noop,
2944   lineStart: d3_noop,
2945   lineEnd: d3_noop,
2946
2947   // Only count area for polygon rings.
2948   polygonStart: function() {
2949     d3_geo_areaRingSum.reset();
2950     d3_geo_area.lineStart = d3_geo_areaRingStart;
2951   },
2952   polygonEnd: function() {
2953     var area = 2 * d3_geo_areaRingSum;
2954     d3_geo_areaSum += area < 0 ? 4 * π + area : area;
2955     d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
2956   }
2957 };
2958
2959 function d3_geo_areaRingStart() {
2960   var λ00, φ00, λ0, cosφ0, sinφ0; // start point and previous point
2961
2962   // For the first point, …
2963   d3_geo_area.point = function(λ, φ) {
2964     d3_geo_area.point = nextPoint;
2965     λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), sinφ0 = Math.sin(φ);
2966   };
2967
2968   // For subsequent points, …
2969   function nextPoint(λ, φ) {
2970     λ *= d3_radians;
2971     φ = φ * d3_radians / 2 + π / 4; // half the angular distance from south pole
2972
2973     // Spherical excess E for a spherical triangle with vertices: south pole,
2974     // previous point, current point.  Uses a formula derived from Cagnoli’s
2975     // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
2976     var dλ = λ - λ0,
2977         sdλ = dλ >= 0 ? 1 : -1,
2978         adλ = sdλ * dλ,
2979         cosφ = Math.cos(φ),
2980         sinφ = Math.sin(φ),
2981         k = sinφ0 * sinφ,
2982         u = cosφ0 * cosφ + k * Math.cos(adλ),
2983         v = k * sdλ * Math.sin(adλ);
2984     d3_geo_areaRingSum.add(Math.atan2(v, u));
2985
2986     // Advance the previous points.
2987     λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
2988   }
2989
2990   // For the last point, return to the start.
2991   d3_geo_area.lineEnd = function() {
2992     nextPoint(λ00, φ00);
2993   };
2994 }
2995
2996 function d3_geo_pointInPolygon(point, polygon) {
2997   var meridian = point[0],
2998       parallel = point[1],
2999       meridianNormal = [Math.sin(meridian), -Math.cos(meridian), 0],
3000       polarAngle = 0,
3001       winding = 0;
3002   d3_geo_areaRingSum.reset();
3003
3004   for (var i = 0, n = polygon.length; i < n; ++i) {
3005     var ring = polygon[i],
3006         m = ring.length;
3007     if (!m) continue;
3008     var point0 = ring[0],
3009         λ0 = point0[0],
3010         φ0 = point0[1] / 2 + π / 4,
3011         sinφ0 = Math.sin(φ0),
3012         cosφ0 = Math.cos(φ0),
3013         j = 1;
3014
3015     while (true) {
3016       if (j === m) j = 0;
3017       point = ring[j];
3018       var λ = point[0],
3019           φ = point[1] / 2 + π / 4,
3020           sinφ = Math.sin(φ),
3021           cosφ = Math.cos(φ),
3022           dλ = λ - λ0,
3023           sdλ = dλ >= 0 ? 1 : -1,
3024           adλ = sdλ * dλ,
3025           antimeridian = adλ > π,
3026           k = sinφ0 * sinφ;
3027       d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
3028
3029       polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
3030
3031       // Are the longitudes either side of the point's meridian, and are the
3032       // latitudes smaller than the parallel?
3033       if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
3034         var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
3035         d3_geo_cartesianNormalize(arc);
3036         var intersection = d3_geo_cartesianCross(meridianNormal, arc);
3037         d3_geo_cartesianNormalize(intersection);
3038         var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
3039         if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
3040           winding += antimeridian ^ dλ >= 0 ? 1 : -1;
3041         }
3042       }
3043       if (!j++) break;
3044       λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
3045     }
3046   }
3047
3048   // First, determine whether the South pole is inside or outside:
3049   //
3050   // It is inside if:
3051   // * the polygon winds around it in a clockwise direction.
3052   // * the polygon does not (cumulatively) wind around it, but has a negative
3053   //   (counter-clockwise) area.
3054   //
3055   // Second, count the (signed) number of times a segment crosses a meridian
3056   // from the point to the South pole.  If it is zero, then the point is the
3057   // same side as the South pole.
3058
3059   return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ (winding & 1);
3060 }
3061
3062 // Clip features against a small circle centered at [0°, 0°].
3063 function d3_geo_clipCircle(radius) {
3064   var cr = Math.cos(radius),
3065       smallRadius = cr > 0,
3066       notHemisphere = abs(cr) > ε, // TODO optimise for this common case
3067       interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
3068
3069   return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-π, radius - π]);
3070
3071   function visible(λ, φ) {
3072     return Math.cos(λ) * Math.cos(φ) > cr;
3073   }
3074
3075   // Takes a line and cuts into visible segments. Return values used for
3076   // polygon clipping:
3077   //   0: there were intersections or the line was empty.
3078   //   1: no intersections.
3079   //   2: there were intersections, and the first and last segments should be
3080   //      rejoined.
3081   function clipLine(listener) {
3082     var point0, // previous point
3083         c0, // code for previous point
3084         v0, // visibility of previous point
3085         v00, // visibility of first point
3086         clean; // no intersections
3087     return {
3088       lineStart: function() {
3089         v00 = v0 = false;
3090         clean = 1;
3091       },
3092       point: function(λ, φ) {
3093         var point1 = [λ, φ],
3094             point2,
3095             v = visible(λ, φ),
3096             c = smallRadius
3097               ? v ? 0 : code(λ, φ)
3098               : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
3099         if (!point0 && (v00 = v0 = v)) listener.lineStart();
3100         // Handle degeneracies.
3101         // TODO ignore if not clipping polygons.
3102         if (v !== v0) {
3103           point2 = intersect(point0, point1);
3104           if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
3105             point1[0] += ε;
3106             point1[1] += ε;
3107             v = visible(point1[0], point1[1]);
3108           }
3109         }
3110         if (v !== v0) {
3111           clean = 0;
3112           if (v) {
3113             // outside going in
3114             listener.lineStart();
3115             point2 = intersect(point1, point0);
3116             listener.point(point2[0], point2[1]);
3117           } else {
3118             // inside going out
3119             point2 = intersect(point0, point1);
3120             listener.point(point2[0], point2[1]);
3121             listener.lineEnd();
3122           }
3123           point0 = point2;
3124         } else if (notHemisphere && point0 && smallRadius ^ v) {
3125           var t;
3126           // If the codes for two points are different, or are both zero,
3127           // and there this segment intersects with the small circle.
3128           if (!(c & c0) && (t = intersect(point1, point0, true))) {
3129             clean = 0;
3130             if (smallRadius) {
3131               listener.lineStart();
3132               listener.point(t[0][0], t[0][1]);
3133               listener.point(t[1][0], t[1][1]);
3134               listener.lineEnd();
3135             } else {
3136               listener.point(t[1][0], t[1][1]);
3137               listener.lineEnd();
3138               listener.lineStart();
3139               listener.point(t[0][0], t[0][1]);
3140             }
3141           }
3142         }
3143         if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
3144           listener.point(point1[0], point1[1]);
3145         }
3146         point0 = point1, v0 = v, c0 = c;
3147       },
3148       lineEnd: function() {
3149         if (v0) listener.lineEnd();
3150         point0 = null;
3151       },
3152       // Rejoin first and last segments if there were intersections and the first
3153       // and last points were visible.
3154       clean: function() { return clean | ((v00 && v0) << 1); }
3155     };
3156   }
3157
3158   // Intersects the great circle between a and b with the clip circle.
3159   function intersect(a, b, two) {
3160     var pa = d3_geo_cartesian(a),
3161         pb = d3_geo_cartesian(b);
3162
3163     // We have two planes, n1.p = d1 and n2.p = d2.
3164     // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
3165     var n1 = [1, 0, 0], // normal
3166         n2 = d3_geo_cartesianCross(pa, pb),
3167         n2n2 = d3_geo_cartesianDot(n2, n2),
3168         n1n2 = n2[0], // d3_geo_cartesianDot(n1, n2),
3169         determinant = n2n2 - n1n2 * n1n2;
3170
3171     // Two polar points.
3172     if (!determinant) return !two && a;
3173
3174     var c1 =  cr * n2n2 / determinant,
3175         c2 = -cr * n1n2 / determinant,
3176         n1xn2 = d3_geo_cartesianCross(n1, n2),
3177         A = d3_geo_cartesianScale(n1, c1),
3178         B = d3_geo_cartesianScale(n2, c2);
3179     d3_geo_cartesianAdd(A, B);
3180
3181     // Solve |p(t)|^2 = 1.
3182     var u = n1xn2,
3183         w = d3_geo_cartesianDot(A, u),
3184         uu = d3_geo_cartesianDot(u, u),
3185         t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
3186
3187     if (t2 < 0) return;
3188
3189     var t = Math.sqrt(t2),
3190         q = d3_geo_cartesianScale(u, (-w - t) / uu);
3191     d3_geo_cartesianAdd(q, A);
3192     q = d3_geo_spherical(q);
3193     if (!two) return q;
3194
3195     // Two intersection points.
3196     var λ0 = a[0],
3197         λ1 = b[0],
3198         φ0 = a[1],
3199         φ1 = b[1],
3200         z;
3201     if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
3202     var δλ = λ1 - λ0,
3203         polar = abs(δλ - π) < ε,
3204         meridian = polar || δλ < ε;
3205
3206     if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
3207
3208     // Check that the first point is between a and b.
3209     if (meridian
3210         ? polar
3211           ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1)
3212           : φ0 <= q[1] && q[1] <= φ1
3213         : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
3214       var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
3215       d3_geo_cartesianAdd(q1, A);
3216       return [q, d3_geo_spherical(q1)];
3217     }
3218   }
3219
3220   // Generates a 4-bit vector representing the location of a point relative to
3221   // the small circle's bounding box.
3222   function code(λ, φ) {
3223     var r = smallRadius ? radius : π - radius,
3224         code = 0;
3225     if (λ < -r) code |= 1; // left
3226     else if (λ > r) code |= 2; // right
3227     if (φ < -r) code |= 4; // below
3228     else if (φ > r) code |= 8; // above
3229     return code;
3230   }
3231 }
3232
3233 // Liang–Barsky line clipping.
3234 function d3_geom_clipLine(x0, y0, x1, y1) {
3235   return function(line) {
3236     var a = line.a,
3237         b = line.b,
3238         ax = a.x,
3239         ay = a.y,
3240         bx = b.x,
3241         by = b.y,
3242         t0 = 0,
3243         t1 = 1,
3244         dx = bx - ax,
3245         dy = by - ay,
3246         r;
3247
3248     r = x0 - ax;
3249     if (!dx && r > 0) return;
3250     r /= dx;
3251     if (dx < 0) {
3252       if (r < t0) return;
3253       if (r < t1) t1 = r;
3254     } else if (dx > 0) {
3255       if (r > t1) return;
3256       if (r > t0) t0 = r;
3257     }
3258
3259     r = x1 - ax;
3260     if (!dx && r < 0) return;
3261     r /= dx;
3262     if (dx < 0) {
3263       if (r > t1) return;
3264       if (r > t0) t0 = r;
3265     } else if (dx > 0) {
3266       if (r < t0) return;
3267       if (r < t1) t1 = r;
3268     }
3269
3270     r = y0 - ay;
3271     if (!dy && r > 0) return;
3272     r /= dy;
3273     if (dy < 0) {
3274       if (r < t0) return;
3275       if (r < t1) t1 = r;
3276     } else if (dy > 0) {
3277       if (r > t1) return;
3278       if (r > t0) t0 = r;
3279     }
3280
3281     r = y1 - ay;
3282     if (!dy && r < 0) return;
3283     r /= dy;
3284     if (dy < 0) {
3285       if (r > t1) return;
3286       if (r > t0) t0 = r;
3287     } else if (dy > 0) {
3288       if (r < t0) return;
3289       if (r < t1) t1 = r;
3290     }
3291
3292     if (t0 > 0) line.a = {x: ax + t0 * dx, y: ay + t0 * dy};
3293     if (t1 < 1) line.b = {x: ax + t1 * dx, y: ay + t1 * dy};
3294     return line;
3295   };
3296 }
3297
3298 var d3_geo_clipExtentMAX = 1e9;
3299
3300 d3.geo.clipExtent = function() {
3301   var x0, y0, x1, y1,
3302       stream,
3303       clip,
3304       clipExtent = {
3305         stream: function(output) {
3306           if (stream) stream.valid = false;
3307           stream = clip(output);
3308           stream.valid = true; // allow caching by d3.geo.path
3309           return stream;
3310         },
3311         extent: function(_) {
3312           if (!arguments.length) return [[x0, y0], [x1, y1]];
3313           clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
3314           if (stream) stream.valid = false, stream = null;
3315           return clipExtent;
3316         }
3317       };
3318   return clipExtent.extent([[0, 0], [960, 500]]);
3319 };
3320
3321 function d3_geo_clipExtent(x0, y0, x1, y1) {
3322   return function(listener) {
3323     var listener_ = listener,
3324         bufferListener = d3_geo_clipBufferListener(),
3325         clipLine = d3_geom_clipLine(x0, y0, x1, y1),
3326         segments,
3327         polygon,
3328         ring;
3329
3330     var clip = {
3331       point: point,
3332       lineStart: lineStart,
3333       lineEnd: lineEnd,
3334       polygonStart: function() {
3335         listener = bufferListener;
3336         segments = [];
3337         polygon = [];
3338         clean = true;
3339       },
3340       polygonEnd: function() {
3341         listener = listener_;
3342         segments = d3.merge(segments);
3343         var clipStartInside = insidePolygon([x0, y1]),
3344             inside = clean && clipStartInside,
3345             visible = segments.length;
3346         if (inside || visible) {
3347           listener.polygonStart();
3348           if (inside) {
3349             listener.lineStart();
3350             interpolate(null, null, 1, listener);
3351             listener.lineEnd();
3352           }
3353           if (visible) {
3354             d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
3355           }
3356           listener.polygonEnd();
3357         }
3358         segments = polygon = ring = null;
3359       }
3360     };
3361
3362     function insidePolygon(p) {
3363       var wn = 0, // the winding number counter
3364           n = polygon.length,
3365           y = p[1];
3366
3367       for (var i = 0; i < n; ++i) {
3368         for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {
3369           b = v[j];
3370           if (a[1] <= y) {
3371             if (b[1] >  y && d3_cross2d(a, b, p) > 0) ++wn;
3372           } else {
3373             if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;
3374           }
3375           a = b;
3376         }
3377       }
3378       return wn !== 0;
3379     }
3380
3381     function interpolate(from, to, direction, listener) {
3382       var a = 0, a1 = 0;
3383       if (from == null ||
3384           (a = corner(from, direction)) !== (a1 = corner(to, direction)) ||
3385           comparePoints(from, to) < 0 ^ direction > 0) {
3386         do {
3387           listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
3388         } while ((a = (a + direction + 4) % 4) !== a1);
3389       } else {
3390         listener.point(to[0], to[1]);
3391       }
3392     }
3393
3394     function pointVisible(x, y) {
3395       return x0 <= x && x <= x1 && y0 <= y && y <= y1;
3396     }
3397
3398     function point(x, y) {
3399       if (pointVisible(x, y)) listener.point(x, y);
3400     }
3401
3402     var x__, y__, v__, // first point
3403         x_, y_, v_, // previous point
3404         first,
3405         clean;
3406
3407     function lineStart() {
3408       clip.point = linePoint;
3409       if (polygon) polygon.push(ring = []);
3410       first = true;
3411       v_ = false;
3412       x_ = y_ = NaN;
3413     }
3414
3415     function lineEnd() {
3416       // TODO rather than special-case polygons, simply handle them separately.
3417       // Ideally, coincident intersection points should be jittered to avoid
3418       // clipping issues.
3419       if (segments) {
3420         linePoint(x__, y__);
3421         if (v__ && v_) bufferListener.rejoin();
3422         segments.push(bufferListener.buffer());
3423       }
3424       clip.point = point;
3425       if (v_) listener.lineEnd();
3426     }
3427
3428     function linePoint(x, y) {
3429       x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
3430       y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
3431       var v = pointVisible(x, y);
3432       if (polygon) ring.push([x, y]);
3433       if (first) {
3434         x__ = x, y__ = y, v__ = v;
3435         first = false;
3436         if (v) {
3437           listener.lineStart();
3438           listener.point(x, y);
3439         }
3440       } else {
3441         if (v && v_) listener.point(x, y);
3442         else {
3443           var l = {a: {x: x_, y: y_}, b: {x: x, y: y}};
3444           if (clipLine(l)) {
3445             if (!v_) {
3446               listener.lineStart();
3447               listener.point(l.a.x, l.a.y);
3448             }
3449             listener.point(l.b.x, l.b.y);
3450             if (!v) listener.lineEnd();
3451             clean = false;
3452           } else if (v) {
3453             listener.lineStart();
3454             listener.point(x, y);
3455             clean = false;
3456           }
3457         }
3458       }
3459       x_ = x, y_ = y, v_ = v;
3460     }
3461
3462     return clip;
3463   };
3464
3465   function corner(p, direction) {
3466     return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3
3467         : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1
3468         : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0
3469         : direction > 0 ? 3 : 2; // abs(p[1] - y1) < ε
3470   }
3471
3472   function compare(a, b) {
3473     return comparePoints(a.x, b.x);
3474   }
3475
3476   function comparePoints(a, b) {
3477     var ca = corner(a, 1),
3478         cb = corner(b, 1);
3479     return ca !== cb ? ca - cb
3480         : ca === 0 ? b[1] - a[1]
3481         : ca === 1 ? a[0] - b[0]
3482         : ca === 2 ? a[1] - b[1]
3483         : b[0] - a[0];
3484   }
3485 }
3486
3487 function d3_geo_conic(projectAt) {
3488   var φ0 = 0,
3489       φ1 = π / 3,
3490       m = d3_geo_projectionMutator(projectAt),
3491       p = m(φ0, φ1);
3492
3493   p.parallels = function(_) {
3494     if (!arguments.length) return [φ0 / π * 180, φ1 / π * 180];
3495     return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
3496   };
3497
3498   return p;
3499 }
3500
3501 function d3_geo_conicEqualArea(φ0, φ1) {
3502   var sinφ0 = Math.sin(φ0),
3503       n = (sinφ0 + Math.sin(φ1)) / 2,
3504       C = 1 + sinφ0 * (2 * n - sinφ0),
3505       ρ0 = Math.sqrt(C) / n;
3506
3507   function forward(λ, φ) {
3508     var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
3509     return [
3510       ρ * Math.sin(λ *= n),
3511       ρ0 - ρ * Math.cos(λ)
3512     ];
3513   }
3514
3515   forward.invert = function(x, y) {
3516     var ρ0_y = ρ0 - y;
3517     return [
3518       Math.atan2(x, ρ0_y) / n,
3519       d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n))
3520     ];
3521   };
3522
3523   return forward;
3524 }
3525
3526 (d3.geo.conicEqualArea = function() {
3527   return d3_geo_conic(d3_geo_conicEqualArea);
3528 }).raw = d3_geo_conicEqualArea;
3529
3530 // ESRI:102003
3531 d3.geo.albers = function() {
3532   return d3.geo.conicEqualArea()
3533       .rotate([96, 0])
3534       .center([-.6, 38.7])
3535       .parallels([29.5, 45.5])
3536       .scale(1070);
3537 };
3538
3539 // A composite projection for the United States, configured by default for
3540 // 960×500. Also works quite well at 960×600 with scale 1285. The set of
3541 // standard parallels for each region comes from USGS, which is published here:
3542 // http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
3543 d3.geo.albersUsa = function() {
3544   var lower48 = d3.geo.albers();
3545
3546   // EPSG:3338
3547   var alaska = d3.geo.conicEqualArea()
3548       .rotate([154, 0])
3549       .center([-2, 58.5])
3550       .parallels([55, 65]);
3551
3552   // ESRI:102007
3553   var hawaii = d3.geo.conicEqualArea()
3554       .rotate([157, 0])
3555       .center([-3, 19.9])
3556       .parallels([8, 18]);
3557
3558   var point,
3559       pointStream = {point: function(x, y) { point = [x, y]; }},
3560       lower48Point,
3561       alaskaPoint,
3562       hawaiiPoint;
3563
3564   function albersUsa(coordinates) {
3565     var x = coordinates[0], y = coordinates[1];
3566     point = null;
3567     (lower48Point(x, y), point)
3568         || (alaskaPoint(x, y), point)
3569         || hawaiiPoint(x, y);
3570     return point;
3571   }
3572
3573   albersUsa.invert = function(coordinates) {
3574     var k = lower48.scale(),
3575         t = lower48.translate(),
3576         x = (coordinates[0] - t[0]) / k,
3577         y = (coordinates[1] - t[1]) / k;
3578     return (y >= .120 && y < .234 && x >= -.425 && x < -.214 ? alaska
3579         : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii
3580         : lower48).invert(coordinates);
3581   };
3582
3583   // A naïve multi-projection stream.
3584   // The projections must have mutually exclusive clip regions on the sphere,
3585   // as this will avoid emitting interleaving lines and polygons.
3586   albersUsa.stream = function(stream) {
3587     var lower48Stream = lower48.stream(stream),
3588         alaskaStream = alaska.stream(stream),
3589         hawaiiStream = hawaii.stream(stream);
3590     return {
3591       point: function(x, y) {
3592         lower48Stream.point(x, y);
3593         alaskaStream.point(x, y);
3594         hawaiiStream.point(x, y);
3595       },
3596       sphere: function() {
3597         lower48Stream.sphere();
3598         alaskaStream.sphere();
3599         hawaiiStream.sphere();
3600       },
3601       lineStart: function() {
3602         lower48Stream.lineStart();
3603         alaskaStream.lineStart();
3604         hawaiiStream.lineStart();
3605       },
3606       lineEnd: function() {
3607         lower48Stream.lineEnd();
3608         alaskaStream.lineEnd();
3609         hawaiiStream.lineEnd();
3610       },
3611       polygonStart: function() {
3612         lower48Stream.polygonStart();
3613         alaskaStream.polygonStart();
3614         hawaiiStream.polygonStart();
3615       },
3616       polygonEnd: function() {
3617         lower48Stream.polygonEnd();
3618         alaskaStream.polygonEnd();
3619         hawaiiStream.polygonEnd();
3620       }
3621     };
3622   };
3623
3624   albersUsa.precision = function(_) {
3625     if (!arguments.length) return lower48.precision();
3626     lower48.precision(_);
3627     alaska.precision(_);
3628     hawaii.precision(_);
3629     return albersUsa;
3630   };
3631
3632   albersUsa.scale = function(_) {
3633     if (!arguments.length) return lower48.scale();
3634     lower48.scale(_);
3635     alaska.scale(_ * .35);
3636     hawaii.scale(_);
3637     return albersUsa.translate(lower48.translate());
3638   };
3639
3640   albersUsa.translate = function(_) {
3641     if (!arguments.length) return lower48.translate();
3642     var k = lower48.scale(), x = +_[0], y = +_[1];
3643
3644     lower48Point = lower48
3645         .translate(_)
3646         .clipExtent([[x - .455 * k, y - .238 * k], [x + .455 * k, y + .238 * k]])
3647         .stream(pointStream).point;
3648
3649     alaskaPoint = alaska
3650         .translate([x - .307 * k, y + .201 * k])
3651         .clipExtent([[x - .425 * k + ε, y + .120 * k + ε], [x - .214 * k - ε, y + .234 * k - ε]])
3652         .stream(pointStream).point;
3653
3654     hawaiiPoint = hawaii
3655         .translate([x - .205 * k, y + .212 * k])
3656         .clipExtent([[x - .214 * k + ε, y + .166 * k + ε], [x - .115 * k - ε, y + .234 * k - ε]])
3657         .stream(pointStream).point;
3658
3659     return albersUsa;
3660   };
3661
3662   return albersUsa.scale(1070);
3663 };
3664
3665 d3.geo.bounds = (function() {
3666   var λ0, φ0, λ1, φ1, // bounds
3667       λ_, // previous λ-coordinate
3668       λ__, φ__, // first point
3669       p0, // previous 3D point
3670       dλSum,
3671       ranges,
3672       range;
3673
3674   var bound = {
3675     point: point,
3676     lineStart: lineStart,
3677     lineEnd: lineEnd,
3678
3679     polygonStart: function() {
3680       bound.point = ringPoint;
3681       bound.lineStart = ringStart;
3682       bound.lineEnd = ringEnd;
3683       dλSum = 0;
3684       d3_geo_area.polygonStart();
3685     },
3686     polygonEnd: function() {
3687       d3_geo_area.polygonEnd();
3688       bound.point = point;
3689       bound.lineStart = lineStart;
3690       bound.lineEnd = lineEnd;
3691       if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90);
3692       else if (dλSum > ε) φ1 = 90;
3693       else if (dλSum < -ε) φ0 = -90;
3694       range[0] = λ0, range[1] = λ1;
3695     }
3696   };
3697
3698   function point(λ, φ) {
3699     ranges.push(range = [λ0 = λ, λ1 = λ]);
3700     if (φ < φ0) φ0 = φ;
3701     if (φ > φ1) φ1 = φ;
3702   }
3703
3704   function linePoint(λ, φ) {
3705     var p = d3_geo_cartesian([λ * d3_radians, φ * d3_radians]);
3706     if (p0) {
3707       var normal = d3_geo_cartesianCross(p0, p),
3708           equatorial = [normal[1], -normal[0], 0],
3709           inflection = d3_geo_cartesianCross(equatorial, normal);
3710       d3_geo_cartesianNormalize(inflection);
3711       inflection = d3_geo_spherical(inflection);
3712       var dλ = λ - λ_,
3713           s = dλ > 0 ? 1 : -1,
3714           λi = inflection[0] * d3_degrees * s,
3715           antimeridian = abs(dλ) > 180;
3716       if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
3717         var φi = inflection[1] * d3_degrees;
3718         if (φi > φ1) φ1 = φi;
3719       } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
3720         var φi = -inflection[1] * d3_degrees;
3721         if (φi < φ0) φ0 = φi;
3722       } else {
3723         if (φ < φ0) φ0 = φ;
3724         if (φ > φ1) φ1 = φ;
3725       }
3726       if (antimeridian) {
3727         if (λ < λ_) {
3728           if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
3729         } else {
3730           if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
3731         }
3732       } else {
3733         if (λ1 >= λ0) {
3734           if (λ < λ0) λ0 = λ;
3735           if (λ > λ1) λ1 = λ;
3736         } else {
3737           if (λ > λ_) {
3738             if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
3739           } else {
3740             if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
3741           }
3742         }
3743       }
3744     } else {
3745       point(λ, φ);
3746     }
3747     p0 = p, λ_ = λ;
3748   }
3749
3750   function lineStart() { bound.point = linePoint; }
3751   function lineEnd() {
3752     range[0] = λ0, range[1] = λ1;
3753     bound.point = point;
3754     p0 = null;
3755   }
3756
3757   function ringPoint(λ, φ) {
3758     if (p0) {
3759       var dλ = λ - λ_;
3760       dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
3761     } else λ__ = λ, φ__ = φ;
3762     d3_geo_area.point(λ, φ);
3763     linePoint(λ, φ);
3764   }
3765
3766   function ringStart() {
3767     d3_geo_area.lineStart();
3768   }
3769
3770   function ringEnd() {
3771     ringPoint(λ__, φ__);
3772     d3_geo_area.lineEnd();
3773     if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
3774     range[0] = λ0, range[1] = λ1;
3775     p0 = null;
3776   }
3777
3778   // Finds the left-right distance between two longitudes.
3779   // This is almost the same as (λ1 - λ0 + 360°) % 360°, except that we want
3780   // the distance between ±180° to be 360°.
3781   function angle(λ0, λ1) { return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; }
3782
3783   function compareRanges(a, b) { return a[0] - b[0]; }
3784
3785   function withinRange(x, range) {
3786     return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
3787   }
3788
3789   return function(feature) {
3790     φ1 = λ1 = -(λ0 = φ0 = Infinity);
3791     ranges = [];
3792
3793     d3.geo.stream(feature, bound);
3794
3795     var n = ranges.length;
3796     if (n) {
3797       // First, sort ranges by their minimum longitudes.
3798       ranges.sort(compareRanges);
3799
3800       // Then, merge any ranges that overlap.
3801       for (var i = 1, a = ranges[0], b, merged = [a]; i < n; ++i) {
3802         b = ranges[i];
3803         if (withinRange(b[0], a) || withinRange(b[1], a)) {
3804           if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
3805           if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
3806         } else {
3807           merged.push(a = b);
3808         }
3809       }
3810
3811       // Finally, find the largest gap between the merged ranges.
3812       // The final bounding box will be the inverse of this gap.
3813       var best = -Infinity, dλ;
3814       for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
3815         b = merged[i];
3816         if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
3817       }
3818     }
3819     ranges = range = null;
3820
3821     return λ0 === Infinity || φ0 === Infinity
3822         ? [[NaN, NaN], [NaN, NaN]]
3823         : [[λ0, φ0], [λ1, φ1]];
3824   };
3825 })();
3826
3827 d3.geo.centroid = function(object) {
3828   d3_geo_centroidW0 = d3_geo_centroidW1 =
3829   d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 =
3830   d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 =
3831   d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
3832   d3.geo.stream(object, d3_geo_centroid);
3833
3834   var x = d3_geo_centroidX2,
3835       y = d3_geo_centroidY2,
3836       z = d3_geo_centroidZ2,
3837       m = x * x + y * y + z * z;
3838
3839   // If the area-weighted centroid is undefined, fall back to length-weighted centroid.
3840   if (m < ε2) {
3841     x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;
3842     // If the feature has zero length, fall back to arithmetic mean of point vectors.
3843     if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;
3844     m = x * x + y * y + z * z;
3845     // If the feature still has an undefined centroid, then return.
3846     if (m < ε2) return [NaN, NaN];
3847   }
3848
3849   return [Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees];
3850 };
3851
3852 var d3_geo_centroidW0,
3853     d3_geo_centroidW1,
3854     d3_geo_centroidX0,
3855     d3_geo_centroidY0,
3856     d3_geo_centroidZ0,
3857     d3_geo_centroidX1,
3858     d3_geo_centroidY1,
3859     d3_geo_centroidZ1,
3860     d3_geo_centroidX2,
3861     d3_geo_centroidY2,
3862     d3_geo_centroidZ2;
3863
3864 var d3_geo_centroid = {
3865   sphere: d3_noop,
3866   point: d3_geo_centroidPoint,
3867   lineStart: d3_geo_centroidLineStart,
3868   lineEnd: d3_geo_centroidLineEnd,
3869   polygonStart: function() {
3870     d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
3871   },
3872   polygonEnd: function() {
3873     d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
3874   }
3875 };
3876
3877 // Arithmetic mean of Cartesian vectors.
3878 function d3_geo_centroidPoint(λ, φ) {
3879   λ *= d3_radians;
3880   var cosφ = Math.cos(φ *= d3_radians);
3881   d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));
3882 }
3883
3884 function d3_geo_centroidPointXYZ(x, y, z) {
3885   ++d3_geo_centroidW0;
3886   d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;
3887   d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;
3888   d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;
3889 }
3890
3891 function d3_geo_centroidLineStart() {
3892   var x0, y0, z0; // previous point
3893
3894   d3_geo_centroid.point = function(λ, φ) {
3895     λ *= d3_radians;
3896     var cosφ = Math.cos(φ *= d3_radians);
3897     x0 = cosφ * Math.cos(λ);
3898     y0 = cosφ * Math.sin(λ);
3899     z0 = Math.sin(φ);
3900     d3_geo_centroid.point = nextPoint;
3901     d3_geo_centroidPointXYZ(x0, y0, z0);
3902   };
3903
3904   function nextPoint(λ, φ) {
3905     λ *= d3_radians;
3906     var cosφ = Math.cos(φ *= d3_radians),
3907         x = cosφ * Math.cos(λ),
3908         y = cosφ * Math.sin(λ),
3909         z = Math.sin(φ),
3910         w = Math.atan2(
3911           Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w),
3912           x0 * x + y0 * y + z0 * z);
3913     d3_geo_centroidW1 += w;
3914     d3_geo_centroidX1 += w * (x0 + (x0 = x));
3915     d3_geo_centroidY1 += w * (y0 + (y0 = y));
3916     d3_geo_centroidZ1 += w * (z0 + (z0 = z));
3917     d3_geo_centroidPointXYZ(x0, y0, z0);
3918   }
3919 }
3920
3921 function d3_geo_centroidLineEnd() {
3922   d3_geo_centroid.point = d3_geo_centroidPoint;
3923 }
3924
3925 // See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
3926 // J. Applied Mechanics 42, 239 (1975).
3927 function d3_geo_centroidRingStart() {
3928   var λ00, φ00, // first point
3929       x0, y0, z0; // previous point
3930
3931   d3_geo_centroid.point = function(λ, φ) {
3932     λ00 = λ, φ00 = φ;
3933     d3_geo_centroid.point = nextPoint;
3934     λ *= d3_radians;
3935     var cosφ = Math.cos(φ *= d3_radians);
3936     x0 = cosφ * Math.cos(λ);
3937     y0 = cosφ * Math.sin(λ);
3938     z0 = Math.sin(φ);
3939     d3_geo_centroidPointXYZ(x0, y0, z0);
3940   };
3941
3942   d3_geo_centroid.lineEnd = function() {
3943     nextPoint(λ00, φ00);
3944     d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
3945     d3_geo_centroid.point = d3_geo_centroidPoint;
3946   };
3947
3948   function nextPoint(λ, φ) {
3949     λ *= d3_radians;
3950     var cosφ = Math.cos(φ *= d3_radians),
3951         x = cosφ * Math.cos(λ),
3952         y = cosφ * Math.sin(λ),
3953         z = Math.sin(φ),
3954         cx = y0 * z - z0 * y,
3955         cy = z0 * x - x0 * z,
3956         cz = x0 * y - y0 * x,
3957         m = Math.sqrt(cx * cx + cy * cy + cz * cz),
3958         u = x0 * x + y0 * y + z0 * z,
3959         v = m && -d3_acos(u) / m, // area weight
3960         w = Math.atan2(m, u); // line weight
3961     d3_geo_centroidX2 += v * cx;
3962     d3_geo_centroidY2 += v * cy;
3963     d3_geo_centroidZ2 += v * cz;
3964     d3_geo_centroidW1 += w;
3965     d3_geo_centroidX1 += w * (x0 + (x0 = x));
3966     d3_geo_centroidY1 += w * (y0 + (y0 = y));
3967     d3_geo_centroidZ1 += w * (z0 + (z0 = z));
3968     d3_geo_centroidPointXYZ(x0, y0, z0);
3969   }
3970 }
3971
3972 // TODO Unify this code with d3.geom.polygon area?
3973
3974 var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
3975   point: d3_noop,
3976   lineStart: d3_noop,
3977   lineEnd: d3_noop,
3978
3979   // Only count area for polygon rings.
3980   polygonStart: function() {
3981     d3_geo_pathAreaPolygon = 0;
3982     d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
3983   },
3984   polygonEnd: function() {
3985     d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
3986     d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
3987   }
3988 };
3989
3990 function d3_geo_pathAreaRingStart() {
3991   var x00, y00, x0, y0;
3992
3993   // For the first point, …
3994   d3_geo_pathArea.point = function(x, y) {
3995     d3_geo_pathArea.point = nextPoint;
3996     x00 = x0 = x, y00 = y0 = y;
3997   };
3998
3999   // For subsequent points, …
4000   function nextPoint(x, y) {
4001     d3_geo_pathAreaPolygon += y0 * x - x0 * y;
4002     x0 = x, y0 = y;
4003   }
4004
4005   // For the last point, return to the start.
4006   d3_geo_pathArea.lineEnd = function() {
4007     nextPoint(x00, y00);
4008   };
4009 }
4010
4011 var d3_geo_pathBoundsX0,
4012     d3_geo_pathBoundsY0,
4013     d3_geo_pathBoundsX1,
4014     d3_geo_pathBoundsY1;
4015
4016 var d3_geo_pathBounds = {
4017   point: d3_geo_pathBoundsPoint,
4018   lineStart: d3_noop,
4019   lineEnd: d3_noop,
4020   polygonStart: d3_noop,
4021   polygonEnd: d3_noop
4022 };
4023
4024 function d3_geo_pathBoundsPoint(x, y) {
4025   if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
4026   if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
4027   if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
4028   if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
4029 }
4030 function d3_geo_pathBuffer() {
4031   var pointCircle = d3_geo_pathBufferCircle(4.5),
4032       buffer = [];
4033
4034   var stream = {
4035     point: point,
4036
4037     // While inside a line, override point to moveTo then lineTo.
4038     lineStart: function() { stream.point = pointLineStart; },
4039     lineEnd: lineEnd,
4040
4041     // While inside a polygon, override lineEnd to closePath.
4042     polygonStart: function() { stream.lineEnd = lineEndPolygon; },
4043     polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; },
4044
4045     pointRadius: function(_) {
4046       pointCircle = d3_geo_pathBufferCircle(_);
4047       return stream;
4048     },
4049
4050     result: function() {
4051       if (buffer.length) {
4052         var result = buffer.join("");
4053         buffer = [];
4054         return result;
4055       }
4056     }
4057   };
4058
4059   function point(x, y) {
4060     buffer.push("M", x, ",", y, pointCircle);
4061   }
4062
4063   function pointLineStart(x, y) {
4064     buffer.push("M", x, ",", y);
4065     stream.point = pointLine;
4066   }
4067
4068   function pointLine(x, y) {
4069     buffer.push("L", x, ",", y);
4070   }
4071
4072   function lineEnd() {
4073     stream.point = point;
4074   }
4075
4076   function lineEndPolygon() {
4077     buffer.push("Z");
4078   }
4079
4080   return stream;
4081 }
4082
4083 function d3_geo_pathBufferCircle(radius) {
4084   return "m0," + radius
4085       + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
4086       + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
4087       + "z";
4088 }
4089
4090 // TODO Unify this code with d3.geom.polygon centroid?
4091 // TODO Enforce positive area for exterior, negative area for interior?
4092
4093 var d3_geo_pathCentroid = {
4094   point: d3_geo_pathCentroidPoint,
4095
4096   // For lines, weight by length.
4097   lineStart: d3_geo_pathCentroidLineStart,
4098   lineEnd: d3_geo_pathCentroidLineEnd,
4099
4100   // For polygons, weight by area.
4101   polygonStart: function() {
4102     d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
4103   },
4104   polygonEnd: function() {
4105     d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
4106     d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
4107     d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
4108   }
4109 };
4110
4111 function d3_geo_pathCentroidPoint(x, y) {
4112   d3_geo_centroidX0 += x;
4113   d3_geo_centroidY0 += y;
4114   ++d3_geo_centroidZ0;
4115 }
4116
4117 function d3_geo_pathCentroidLineStart() {
4118   var x0, y0;
4119
4120   d3_geo_pathCentroid.point = function(x, y) {
4121     d3_geo_pathCentroid.point = nextPoint;
4122     d3_geo_pathCentroidPoint(x0 = x, y0 = y);
4123   };
4124
4125   function nextPoint(x, y) {
4126     var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
4127     d3_geo_centroidX1 += z * (x0 + x) / 2;
4128     d3_geo_centroidY1 += z * (y0 + y) / 2;
4129     d3_geo_centroidZ1 += z;
4130     d3_geo_pathCentroidPoint(x0 = x, y0 = y);
4131   }
4132 }
4133
4134 function d3_geo_pathCentroidLineEnd() {
4135   d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
4136 }
4137
4138 function d3_geo_pathCentroidRingStart() {
4139   var x00, y00, x0, y0;
4140
4141   // For the first point, …
4142   d3_geo_pathCentroid.point = function(x, y) {
4143     d3_geo_pathCentroid.point = nextPoint;
4144     d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);
4145   };
4146
4147   // For subsequent points, …
4148   function nextPoint(x, y) {
4149     var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
4150     d3_geo_centroidX1 += z * (x0 + x) / 2;
4151     d3_geo_centroidY1 += z * (y0 + y) / 2;
4152     d3_geo_centroidZ1 += z;
4153
4154     z = y0 * x - x0 * y;
4155     d3_geo_centroidX2 += z * (x0 + x);
4156     d3_geo_centroidY2 += z * (y0 + y);
4157     d3_geo_centroidZ2 += z * 3;
4158     d3_geo_pathCentroidPoint(x0 = x, y0 = y);
4159   }
4160
4161   // For the last point, return to the start.
4162   d3_geo_pathCentroid.lineEnd = function() {
4163     nextPoint(x00, y00);
4164   };
4165 }
4166
4167 function d3_geo_pathContext(context) {
4168   var pointRadius = 4.5;
4169
4170   var stream = {
4171     point: point,
4172
4173     // While inside a line, override point to moveTo then lineTo.
4174     lineStart: function() { stream.point = pointLineStart; },
4175     lineEnd: lineEnd,
4176
4177     // While inside a polygon, override lineEnd to closePath.
4178     polygonStart: function() { stream.lineEnd = lineEndPolygon; },
4179     polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; },
4180
4181     pointRadius: function(_) {
4182       pointRadius = _;
4183       return stream;
4184     },
4185
4186     result: d3_noop
4187   };
4188
4189   function point(x, y) {
4190     context.moveTo(x + pointRadius, y);
4191     context.arc(x, y, pointRadius, 0, τ);
4192   }
4193
4194   function pointLineStart(x, y) {
4195     context.moveTo(x, y);
4196     stream.point = pointLine;
4197   }
4198
4199   function pointLine(x, y) {
4200     context.lineTo(x, y);
4201   }
4202
4203   function lineEnd() {
4204     stream.point = point;
4205   }
4206
4207   function lineEndPolygon() {
4208     context.closePath();
4209   }
4210
4211   return stream;
4212 }
4213
4214 function d3_geo_resample(project) {
4215   var δ2 = .5, // precision, px²
4216       cosMinDistance = Math.cos(30 * d3_radians), // cos(minimum angular distance)
4217       maxDepth = 16;
4218
4219   function resample(stream) {
4220     return (maxDepth ? resampleRecursive : resampleNone)(stream);
4221   }
4222
4223   function resampleNone(stream) {
4224     return d3_geo_transformPoint(stream, function(x, y) {
4225       x = project(x, y);
4226       stream.point(x[0], x[1]);
4227     });
4228   }
4229
4230   function resampleRecursive(stream) {
4231     var λ00, φ00, x00, y00, a00, b00, c00, // first point
4232         λ0, x0, y0, a0, b0, c0; // previous point
4233
4234     var resample = {
4235       point: point,
4236       lineStart: lineStart,
4237       lineEnd: lineEnd,
4238       polygonStart: function() { stream.polygonStart(); resample.lineStart = ringStart; },
4239       polygonEnd: function() { stream.polygonEnd(); resample.lineStart = lineStart; }
4240     };
4241
4242     function point(x, y) {
4243       x = project(x, y);
4244       stream.point(x[0], x[1]);
4245     }
4246
4247     function lineStart() {
4248       x0 = NaN;
4249       resample.point = linePoint;
4250       stream.lineStart();
4251     }
4252
4253     function linePoint(λ, φ) {
4254       var c = d3_geo_cartesian([λ, φ]), p = project(λ, φ);
4255       resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
4256       stream.point(x0, y0);
4257     }
4258
4259     function lineEnd() {
4260       resample.point = point;
4261       stream.lineEnd();
4262     }
4263
4264     function ringStart() {
4265       lineStart();
4266       resample.point = ringPoint;
4267       resample.lineEnd = ringEnd;
4268     }
4269
4270     function ringPoint(λ, φ) {
4271       linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
4272       resample.point = linePoint;
4273     }
4274
4275     function ringEnd() {
4276       resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
4277       resample.lineEnd = lineEnd;
4278       lineEnd();
4279     }
4280
4281     return resample;
4282   }
4283
4284   function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
4285     var dx = x1 - x0,
4286         dy = y1 - y0,
4287         d2 = dx * dx + dy * dy;
4288     if (d2 > 4 * δ2 && depth--) {
4289       var a = a0 + a1,
4290           b = b0 + b1,
4291           c = c0 + c1,
4292           m = Math.sqrt(a * a + b * b + c * c),
4293           φ2 = Math.asin(c /= m),
4294           λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a),
4295           p = project(λ2, φ2),
4296           x2 = p[0],
4297           y2 = p[1],
4298           dx2 = x2 - x0,
4299           dy2 = y2 - y0,
4300           dz = dy * dx2 - dx * dy2;
4301       if (dz * dz / d2 > δ2 // perpendicular projected distance
4302           || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 // midpoint close to an end
4303           || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
4304         resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
4305         stream.point(x2, y2);
4306         resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
4307       }
4308     }
4309   }
4310
4311   resample.precision = function(_) {
4312     if (!arguments.length) return Math.sqrt(δ2);
4313     maxDepth = (δ2 = _ * _) > 0 && 16;
4314     return resample;
4315   };
4316
4317   return resample;
4318 }
4319
4320 d3.geo.path = function() {
4321   var pointRadius = 4.5,
4322       projection,
4323       context,
4324       projectStream,
4325       contextStream,
4326       cacheStream;
4327
4328   function path(object) {
4329     if (object) {
4330       if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
4331       if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);
4332       d3.geo.stream(object, cacheStream);
4333     }
4334     return contextStream.result();
4335   }
4336
4337   path.area = function(object) {
4338     d3_geo_pathAreaSum = 0;
4339     d3.geo.stream(object, projectStream(d3_geo_pathArea));
4340     return d3_geo_pathAreaSum;
4341   };
4342
4343   path.centroid = function(object) {
4344     d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 =
4345     d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 =
4346     d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
4347     d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
4348     return d3_geo_centroidZ2 ? [d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2]
4349         : d3_geo_centroidZ1 ? [d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1]
4350         : d3_geo_centroidZ0 ? [d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0]
4351         : [NaN, NaN];
4352   };
4353
4354   path.bounds = function(object) {
4355     d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
4356     d3.geo.stream(object, projectStream(d3_geo_pathBounds));
4357     return [[d3_geo_pathBoundsX0, d3_geo_pathBoundsY0], [d3_geo_pathBoundsX1, d3_geo_pathBoundsY1]];
4358   };
4359
4360   path.projection = function(_) {
4361     if (!arguments.length) return projection;
4362     projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
4363     return reset();
4364   };
4365
4366   path.context = function(_) {
4367     if (!arguments.length) return context;
4368     contextStream = (context = _) == null ? new d3_geo_pathBuffer : new d3_geo_pathContext(_);
4369     if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
4370     return reset();
4371   };
4372
4373   path.pointRadius = function(_) {
4374     if (!arguments.length) return pointRadius;
4375     pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
4376     return path;
4377   };
4378
4379   function reset() {
4380     cacheStream = null;
4381     return path;
4382   }
4383
4384   return path.projection(d3.geo.albersUsa()).context(null);
4385 };
4386
4387 function d3_geo_pathProjectStream(project) {
4388   var resample = d3_geo_resample(function(x, y) { return project([x * d3_degrees, y * d3_degrees]); });
4389   return function(stream) { return d3_geo_projectionRadians(resample(stream)); };
4390 }
4391
4392 d3.geo.transform = function(methods) {
4393   return {
4394     stream: function(stream) {
4395       var transform = new d3_geo_transform(stream);
4396       for (var k in methods) transform[k] = methods[k];
4397       return transform;
4398     }
4399   };
4400 };
4401
4402 function d3_geo_transform(stream) {
4403   this.stream = stream;
4404 }
4405
4406 d3_geo_transform.prototype = {
4407   point: function(x, y) { this.stream.point(x, y); },
4408   sphere: function() { this.stream.sphere(); },
4409   lineStart: function() { this.stream.lineStart(); },
4410   lineEnd: function() { this.stream.lineEnd(); },
4411   polygonStart: function() { this.stream.polygonStart(); },
4412   polygonEnd: function() { this.stream.polygonEnd(); }
4413 };
4414
4415 function d3_geo_transformPoint(stream, point) {
4416   return {
4417     point: point,
4418     sphere: function() { stream.sphere(); },
4419     lineStart: function() { stream.lineStart(); },
4420     lineEnd: function() { stream.lineEnd(); },
4421     polygonStart: function() { stream.polygonStart(); },
4422     polygonEnd: function() { stream.polygonEnd(); },
4423   };
4424 }
4425
4426 d3.geo.projection = d3_geo_projection;
4427 d3.geo.projectionMutator = d3_geo_projectionMutator;
4428
4429 function d3_geo_projection(project) {
4430   return d3_geo_projectionMutator(function() { return project; })();
4431 }
4432
4433 function d3_geo_projectionMutator(projectAt) {
4434   var project,
4435       rotate,
4436       projectRotate,
4437       projectResample = d3_geo_resample(function(x, y) { x = project(x, y); return [x[0] * k + δx, δy - x[1] * k]; }),
4438       k = 150, // scale
4439       x = 480, y = 250, // translate
4440       λ = 0, φ = 0, // center
4441       δλ = 0, δφ = 0, δγ = 0, // rotate
4442       δx, δy, // center
4443       preclip = d3_geo_clipAntimeridian,
4444       postclip = d3_identity,
4445       clipAngle = null,
4446       clipExtent = null,
4447       stream;
4448
4449   function projection(point) {
4450     point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
4451     return [point[0] * k + δx, δy - point[1] * k];
4452   }
4453
4454   function invert(point) {
4455     point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
4456     return point && [point[0] * d3_degrees, point[1] * d3_degrees];
4457   }
4458
4459   projection.stream = function(output) {
4460     if (stream) stream.valid = false;
4461     stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
4462     stream.valid = true; // allow caching by d3.geo.path
4463     return stream;
4464   };
4465
4466   projection.clipAngle = function(_) {
4467     if (!arguments.length) return clipAngle;
4468     preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
4469     return invalidate();
4470   };
4471
4472   projection.clipExtent = function(_) {
4473     if (!arguments.length) return clipExtent;
4474     clipExtent = _;
4475     postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
4476     return invalidate();
4477   };
4478
4479   projection.scale = function(_) {
4480     if (!arguments.length) return k;
4481     k = +_;
4482     return reset();
4483   };
4484
4485   projection.translate = function(_) {
4486     if (!arguments.length) return [x, y];
4487     x = +_[0];
4488     y = +_[1];
4489     return reset();
4490   };
4491
4492   projection.center = function(_) {
4493     if (!arguments.length) return [λ * d3_degrees, φ * d3_degrees];
4494     λ = _[0] % 360 * d3_radians;
4495     φ = _[1] % 360 * d3_radians;
4496     return reset();
4497   };
4498
4499   projection.rotate = function(_) {
4500     if (!arguments.length) return [δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees];
4501     δλ = _[0] % 360 * d3_radians;
4502     δφ = _[1] % 360 * d3_radians;
4503     δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
4504     return reset();
4505   };
4506
4507   d3.rebind(projection, projectResample, "precision");
4508
4509   function reset() {
4510     projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
4511     var center = project(λ, φ);
4512     δx = x - center[0] * k;
4513     δy = y + center[1] * k;
4514     return invalidate();
4515   }
4516
4517   function invalidate() {
4518     if (stream) stream.valid = false, stream = null;
4519     return projection;
4520   }
4521
4522   return function() {
4523     project = projectAt.apply(this, arguments);
4524     projection.invert = project.invert && invert;
4525     return reset();
4526   };
4527 }
4528
4529 function d3_geo_projectionRadians(stream) {
4530   return d3_geo_transformPoint(stream, function(x, y) {
4531     stream.point(x * d3_radians, y * d3_radians);
4532   });
4533 }
4534
4535 function d3_geo_mercator(λ, φ) {
4536   return [λ, Math.log(Math.tan(π / 4 + φ / 2))];
4537 }
4538
4539 d3_geo_mercator.invert = function(x, y) {
4540   return [x, 2 * Math.atan(Math.exp(y)) - halfπ];
4541 };
4542
4543 function d3_geo_mercatorProjection(project) {
4544   var m = d3_geo_projection(project),
4545       scale = m.scale,
4546       translate = m.translate,
4547       clipExtent = m.clipExtent,
4548       clipAuto;
4549
4550   m.scale = function() {
4551     var v = scale.apply(m, arguments);
4552     return v === m ? (clipAuto ? m.clipExtent(null) : m) : v;
4553   };
4554
4555   m.translate = function() {
4556     var v = translate.apply(m, arguments);
4557     return v === m ? (clipAuto ? m.clipExtent(null) : m) : v;
4558   };
4559
4560   m.clipExtent = function(_) {
4561     var v = clipExtent.apply(m, arguments);
4562     if (v === m) {
4563       if (clipAuto = _ == null) {
4564         var k = π * scale(), t = translate();
4565         clipExtent([[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]]);
4566       }
4567     } else if (clipAuto) {
4568       v = null;
4569     }
4570     return v;
4571   };
4572
4573   return m.clipExtent(null);
4574 }
4575
4576 (d3.geo.mercator = function() {
4577   return d3_geo_mercatorProjection(d3_geo_mercator);
4578 }).raw = d3_geo_mercator;
4579 d3.geom = {};
4580
4581 d3.geom.polygon = function(coordinates) {
4582   d3_subclass(coordinates, d3_geom_polygonPrototype);
4583   return coordinates;
4584 };
4585
4586 var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];
4587
4588 d3_geom_polygonPrototype.area = function() {
4589   var i = -1,
4590       n = this.length,
4591       a,
4592       b = this[n - 1],
4593       area = 0;
4594
4595   while (++i < n) {
4596     a = b;
4597     b = this[i];
4598     area += a[1] * b[0] - a[0] * b[1];
4599   }
4600
4601   return area * .5;
4602 };
4603
4604 d3_geom_polygonPrototype.centroid = function(k) {
4605   var i = -1,
4606       n = this.length,
4607       x = 0,
4608       y = 0,
4609       a,
4610       b = this[n - 1],
4611       c;
4612
4613   if (!arguments.length) k = -1 / (6 * this.area());
4614
4615   while (++i < n) {
4616     a = b;
4617     b = this[i];
4618     c = a[0] * b[1] - b[0] * a[1];
4619     x += (a[0] + b[0]) * c;
4620     y += (a[1] + b[1]) * c;
4621   }
4622
4623   return [x * k, y * k];
4624 };
4625
4626 // The Sutherland-Hodgman clipping algorithm.
4627 // Note: requires the clip polygon to be counterclockwise and convex.
4628 d3_geom_polygonPrototype.clip = function(subject) {
4629   var input,
4630       closed = d3_geom_polygonClosed(subject),
4631       i = -1,
4632       n = this.length - d3_geom_polygonClosed(this),
4633       j,
4634       m,
4635       a = this[n - 1],
4636       b,
4637       c,
4638       d;
4639
4640   while (++i < n) {
4641     input = subject.slice();
4642     subject.length = 0;
4643     b = this[i];
4644     c = input[(m = input.length - closed) - 1];
4645     j = -1;
4646     while (++j < m) {
4647       d = input[j];
4648       if (d3_geom_polygonInside(d, a, b)) {
4649         if (!d3_geom_polygonInside(c, a, b)) {
4650           subject.push(d3_geom_polygonIntersect(c, d, a, b));
4651         }
4652         subject.push(d);
4653       } else if (d3_geom_polygonInside(c, a, b)) {
4654         subject.push(d3_geom_polygonIntersect(c, d, a, b));
4655       }
4656       c = d;
4657     }
4658     if (closed) subject.push(subject[0]);
4659     a = b;
4660   }
4661
4662   return subject;
4663 };
4664
4665 function d3_geom_polygonInside(p, a, b) {
4666   return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
4667 }
4668
4669 // Intersect two infinite lines cd and ab.
4670 function d3_geom_polygonIntersect(c, d, a, b) {
4671   var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3,
4672       y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3,
4673       ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
4674   return [x1 + ua * x21, y1 + ua * y21];
4675 }
4676
4677 // Returns true if the polygon is closed.
4678 function d3_geom_polygonClosed(coordinates) {
4679   var a = coordinates[0],
4680       b = coordinates[coordinates.length - 1];
4681   return !(a[0] - b[0] || a[1] - b[1]);
4682 }
4683 function d3_geom_pointX(d) {
4684   return d[0];
4685 }
4686
4687 function d3_geom_pointY(d) {
4688   return d[1];
4689 }
4690
4691 /**
4692  * Computes the 2D convex hull of a set of points using the monotone chain
4693  * algorithm:
4694  * http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain)
4695  *
4696  * The runtime of this algorithm is O(n log n), where n is the number of input
4697  * points. However in practice it outperforms other O(n log n) hulls.
4698  *
4699  * @param vertices [[x1, y1], [x2, y2], ...]
4700  * @returns polygon [[x1, y1], [x2, y2], ...]
4701  */
4702 d3.geom.hull = function(vertices) {
4703   var x = d3_geom_pointX,
4704       y = d3_geom_pointY;
4705
4706   if (arguments.length) return hull(vertices);
4707
4708   function hull(data) {
4709     // Hull of < 3 points is not well-defined
4710     if (data.length < 3) return [];
4711
4712     var fx = d3_functor(x),
4713         fy = d3_functor(y),
4714         i,
4715         n = data.length,
4716         points = [], // of the form [[x0, y0, 0], ..., [xn, yn, n]]
4717         flippedPoints = [];
4718
4719     for (i = 0 ; i < n; i++) {
4720       points.push([+fx.call(this, data[i], i), +fy.call(this, data[i], i), i]);
4721     }
4722
4723     // sort ascending by x-coord first, y-coord second
4724     points.sort(d3_geom_hullOrder);
4725
4726     // we flip bottommost points across y axis so we can use the upper hull routine on both
4727     for (i = 0; i < n; i++) flippedPoints.push([points[i][0], -points[i][1]]);
4728
4729     var upper = d3_geom_hullUpper(points),
4730         lower = d3_geom_hullUpper(flippedPoints);
4731
4732     // construct the polygon, removing possible duplicate endpoints
4733     var skipLeft = lower[0] === upper[0],
4734         skipRight  = lower[lower.length - 1] === upper[upper.length - 1],
4735         polygon = [];
4736
4737     // add upper hull in r->l order
4738     // then add lower hull in l->r order
4739     for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);
4740     for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);
4741
4742     return polygon;
4743   }
4744
4745   hull.x = function(_) {
4746     return arguments.length ? (x = _, hull) : x;
4747   };
4748
4749   hull.y = function(_) {
4750     return arguments.length ? (y = _, hull) : y;
4751   };
4752
4753   return hull;
4754 };
4755
4756 // finds the 'upper convex hull' (see wiki link above)
4757 // assumes points arg has >=3 elements, is sorted by x, unique in y
4758 // returns array of indices into points in left to right order
4759 function d3_geom_hullUpper(points) {
4760   var n = points.length,
4761       hull = [0, 1],
4762       hs = 2; // hull size
4763
4764   for (var i = 2; i < n; i++) {
4765     while (hs > 1 && d3_cross2d(points[hull[hs-2]], points[hull[hs-1]], points[i]) <= 0) --hs;
4766     hull[hs++] = i;
4767   }
4768
4769   // we slice to make sure that the points we 'popped' from hull don't stay behind
4770   return hull.slice(0, hs);
4771 }
4772
4773 // comparator for ascending sort by x-coord first, y-coord second
4774 function d3_geom_hullOrder(a, b) {
4775   return a[0] - b[0] || a[1] - b[1];
4776 }
4777 // import "../transition/transition";
4778
4779 d3_selectionPrototype.transition = function(name) {
4780   var id = d3_transitionInheritId || ++d3_transitionId,
4781       ns = d3_transitionNamespace(name),
4782       subgroups = [],
4783       subgroup,
4784       node,
4785       transition = d3_transitionInherit || {time: Date.now(), ease: d3_ease_cubicInOut, delay: 0, duration: 250};
4786
4787   for (var j = -1, m = this.length; ++j < m;) {
4788     subgroups.push(subgroup = []);
4789     for (var group = this[j], i = -1, n = group.length; ++i < n;) {
4790       if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
4791       subgroup.push(node);
4792     }
4793   }
4794
4795   return d3_transition(subgroups, ns, id);
4796 };
4797 // import "../transition/transition";
4798
4799 // TODO Interrupt transitions for all namespaces?
4800 d3_selectionPrototype.interrupt = function(name) {
4801   return this.each(name == null
4802       ? d3_selection_interrupt
4803       : d3_selection_interruptNS(d3_transitionNamespace(name)));
4804 };
4805
4806 var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
4807
4808 function d3_selection_interruptNS(ns) {
4809   return function() {
4810     var lock, active;
4811     if ((lock = this[ns]) && (active = lock[lock.active])) {
4812       if (--lock.count) delete lock[lock.active];
4813       else delete this[ns];
4814       lock.active += .5;
4815       active.event && active.event.interrupt.call(this, this.__data__, active.index);
4816     }
4817   };
4818 }
4819
4820 function d3_transition(groups, ns, id) {
4821   d3_subclass(groups, d3_transitionPrototype);
4822
4823   // Note: read-only!
4824   groups.namespace = ns;
4825   groups.id = id;
4826
4827   return groups;
4828 }
4829
4830 var d3_transitionPrototype = [],
4831     d3_transitionId = 0,
4832     d3_transitionInheritId,
4833     d3_transitionInherit;
4834
4835 d3_transitionPrototype.call = d3_selectionPrototype.call;
4836 d3_transitionPrototype.empty = d3_selectionPrototype.empty;
4837 d3_transitionPrototype.node = d3_selectionPrototype.node;
4838 d3_transitionPrototype.size = d3_selectionPrototype.size;
4839
4840 d3.transition = function(selection, name) {
4841   return selection && selection.transition
4842       ? (d3_transitionInheritId ? selection.transition(name) : selection)
4843       : d3.selection().transition(selection);
4844 };
4845
4846 d3.transition.prototype = d3_transitionPrototype;
4847
4848
4849 d3_transitionPrototype.select = function(selector) {
4850   var id = this.id,
4851       ns = this.namespace,
4852       subgroups = [],
4853       subgroup,
4854       subnode,
4855       node;
4856
4857   selector = d3_selection_selector(selector);
4858
4859   for (var j = -1, m = this.length; ++j < m;) {
4860     subgroups.push(subgroup = []);
4861     for (var group = this[j], i = -1, n = group.length; ++i < n;) {
4862       if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
4863         if ("__data__" in node) subnode.__data__ = node.__data__;
4864         d3_transitionNode(subnode, i, ns, id, node[ns][id]);
4865         subgroup.push(subnode);
4866       } else {
4867         subgroup.push(null);
4868       }
4869     }
4870   }
4871
4872   return d3_transition(subgroups, ns, id);
4873 };
4874
4875 d3_transitionPrototype.selectAll = function(selector) {
4876   var id = this.id,
4877       ns = this.namespace,
4878       subgroups = [],
4879       subgroup,
4880       subnodes,
4881       node,
4882       subnode,
4883       transition;
4884
4885   selector = d3_selection_selectorAll(selector);
4886
4887   for (var j = -1, m = this.length; ++j < m;) {
4888     for (var group = this[j], i = -1, n = group.length; ++i < n;) {
4889       if (node = group[i]) {
4890         transition = node[ns][id];
4891         subnodes = selector.call(node, node.__data__, i, j);
4892         subgroups.push(subgroup = []);
4893         for (var k = -1, o = subnodes.length; ++k < o;) {
4894           if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
4895           subgroup.push(subnode);
4896         }
4897       }
4898     }
4899   }
4900
4901   return d3_transition(subgroups, ns, id);
4902 };
4903
4904 d3_transitionPrototype.filter = function(filter) {
4905   var subgroups = [],
4906       subgroup,
4907       group,
4908       node;
4909
4910   if (typeof filter !== "function") filter = d3_selection_filter(filter);
4911
4912   for (var j = 0, m = this.length; j < m; j++) {
4913     subgroups.push(subgroup = []);
4914     for (var group = this[j], i = 0, n = group.length; i < n; i++) {
4915       if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
4916         subgroup.push(node);
4917       }
4918     }
4919   }
4920
4921   return d3_transition(subgroups, this.namespace, this.id);
4922 };
4923 d3.color = d3_color;
4924
4925 function d3_color() {}
4926
4927 d3_color.prototype.toString = function() {
4928   return this.rgb() + "";
4929 };
4930
4931 d3.hsl = d3_hsl;
4932
4933 function d3_hsl(h, s, l) {
4934   return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l)
4935       : arguments.length < 2 ? (h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l)
4936       : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl))
4937       : new d3_hsl(h, s, l);
4938 }
4939
4940 var d3_hslPrototype = d3_hsl.prototype = new d3_color;
4941
4942 d3_hslPrototype.brighter = function(k) {
4943   k = Math.pow(0.7, arguments.length ? k : 1);
4944   return new d3_hsl(this.h, this.s, this.l / k);
4945 };
4946
4947 d3_hslPrototype.darker = function(k) {
4948   k = Math.pow(0.7, arguments.length ? k : 1);
4949   return new d3_hsl(this.h, this.s, k * this.l);
4950 };
4951
4952 d3_hslPrototype.rgb = function() {
4953   return d3_hsl_rgb(this.h, this.s, this.l);
4954 };
4955
4956 function d3_hsl_rgb(h, s, l) {
4957   var m1,
4958       m2;
4959
4960   /* Some simple corrections for h, s and l. */
4961   h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
4962   s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
4963   l = l < 0 ? 0 : l > 1 ? 1 : l;
4964
4965   /* From FvD 13.37, CSS Color Module Level 3 */
4966   m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
4967   m1 = 2 * l - m2;
4968
4969   function v(h) {
4970     if (h > 360) h -= 360;
4971     else if (h < 0) h += 360;
4972     if (h < 60) return m1 + (m2 - m1) * h / 60;
4973     if (h < 180) return m2;
4974     if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
4975     return m1;
4976   }
4977
4978   function vv(h) {
4979     return Math.round(v(h) * 255);
4980   }
4981
4982   return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
4983 }
4984
4985 d3.hcl = d3_hcl;
4986
4987 function d3_hcl(h, c, l) {
4988   return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l)
4989       : arguments.length < 2 ? (h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l)
4990       : (h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b)
4991       : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b)))
4992       : new d3_hcl(h, c, l);
4993 }
4994
4995 var d3_hclPrototype = d3_hcl.prototype = new d3_color;
4996
4997 d3_hclPrototype.brighter = function(k) {
4998   return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
4999 };
5000
5001 d3_hclPrototype.darker = function(k) {
5002   return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
5003 };
5004
5005 d3_hclPrototype.rgb = function() {
5006   return d3_hcl_lab(this.h, this.c, this.l).rgb();
5007 };
5008
5009 function d3_hcl_lab(h, c, l) {
5010   if (isNaN(h)) h = 0;
5011   if (isNaN(c)) c = 0;
5012   return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
5013 }
5014
5015 d3.lab = d3_lab;
5016
5017 function d3_lab(l, a, b) {
5018   return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b)
5019       : arguments.length < 2 ? (l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b)
5020       : (l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l)
5021       : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b)))
5022       : new d3_lab(l, a, b);
5023 }
5024
5025 // Corresponds roughly to RGB brighter/darker
5026 var d3_lab_K = 18;
5027
5028 // D65 standard referent
5029 var d3_lab_X = 0.950470,
5030     d3_lab_Y = 1,
5031     d3_lab_Z = 1.088830;
5032
5033 var d3_labPrototype = d3_lab.prototype = new d3_color;
5034
5035 d3_labPrototype.brighter = function(k) {
5036   return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
5037 };
5038
5039 d3_labPrototype.darker = function(k) {
5040   return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
5041 };
5042
5043 d3_labPrototype.rgb = function() {
5044   return d3_lab_rgb(this.l, this.a, this.b);
5045 };
5046
5047 function d3_lab_rgb(l, a, b) {
5048   var y = (l + 16) / 116,
5049       x = y + a / 500,
5050       z = y - b / 200;
5051   x = d3_lab_xyz(x) * d3_lab_X;
5052   y = d3_lab_xyz(y) * d3_lab_Y;
5053   z = d3_lab_xyz(z) * d3_lab_Z;
5054   return new d3_rgb(
5055     d3_xyz_rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z),
5056     d3_xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
5057     d3_xyz_rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z)
5058   );
5059 }
5060
5061 function d3_lab_hcl(l, a, b) {
5062   return l > 0
5063       ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l)
5064       : new d3_hcl(NaN, NaN, l);
5065 }
5066
5067 function d3_lab_xyz(x) {
5068   return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
5069 }
5070 function d3_xyz_lab(x) {
5071   return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
5072 }
5073
5074 function d3_xyz_rgb(r) {
5075   return Math.round(255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));
5076 }
5077
5078 d3.rgb = d3_rgb;
5079
5080 function d3_rgb(r, g, b) {
5081   return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b)
5082       : arguments.length < 2 ? (r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b)
5083       : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb))
5084       : new d3_rgb(r, g, b);
5085 }
5086
5087 function d3_rgbNumber(value) {
5088   return new d3_rgb(value >> 16, value >> 8 & 0xff, value & 0xff);
5089 }
5090
5091 function d3_rgbString(value) {
5092   return d3_rgbNumber(value) + "";
5093 }
5094
5095 var d3_rgbPrototype = d3_rgb.prototype = new d3_color;
5096
5097 d3_rgbPrototype.brighter = function(k) {
5098   k = Math.pow(0.7, arguments.length ? k : 1);
5099   var r = this.r,
5100       g = this.g,
5101       b = this.b,
5102       i = 30;
5103   if (!r && !g && !b) return new d3_rgb(i, i, i);
5104   if (r && r < i) r = i;
5105   if (g && g < i) g = i;
5106   if (b && b < i) b = i;
5107   return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
5108 };
5109
5110 d3_rgbPrototype.darker = function(k) {
5111   k = Math.pow(0.7, arguments.length ? k : 1);
5112   return new d3_rgb(k * this.r, k * this.g, k * this.b);
5113 };
5114
5115 d3_rgbPrototype.hsl = function() {
5116   return d3_rgb_hsl(this.r, this.g, this.b);
5117 };
5118
5119 d3_rgbPrototype.toString = function() {
5120   return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
5121 };
5122
5123 function d3_rgb_hex(v) {
5124   return v < 0x10
5125       ? "0" + Math.max(0, v).toString(16)
5126       : Math.min(255, v).toString(16);
5127 }
5128
5129 function d3_rgb_parse(format, rgb, hsl) {
5130   var r = 0, // red channel; int in [0, 255]
5131       g = 0, // green channel; int in [0, 255]
5132       b = 0, // blue channel; int in [0, 255]
5133       m1, // CSS color specification match
5134       m2, // CSS color specification type (e.g., rgb)
5135       color;
5136
5137   /* Handle hsl, rgb. */
5138   m1 = /([a-z]+)\((.*)\)/i.exec(format);
5139   if (m1) {
5140     m2 = m1[2].split(",");
5141     switch (m1[1]) {
5142       case "hsl": {
5143         return hsl(
5144           parseFloat(m2[0]), // degrees
5145           parseFloat(m2[1]) / 100, // percentage
5146           parseFloat(m2[2]) / 100 // percentage
5147         );
5148       }
5149       case "rgb": {
5150         return rgb(
5151           d3_rgb_parseNumber(m2[0]),
5152           d3_rgb_parseNumber(m2[1]),
5153           d3_rgb_parseNumber(m2[2])
5154         );
5155       }
5156     }
5157   }
5158
5159   /* Named colors. */
5160   if (color = d3_rgb_names.get(format.toLowerCase())) {
5161     return rgb(color.r, color.g, color.b);
5162   }
5163
5164   /* Hexadecimal colors: #rgb and #rrggbb. */
5165   if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
5166     if (format.length === 4) {
5167       r = (color & 0xf00) >> 4; r = (r >> 4) | r;
5168       g = (color & 0xf0); g = (g >> 4) | g;
5169       b = (color & 0xf); b = (b << 4) | b;
5170     } else if (format.length === 7) {
5171       r = (color & 0xff0000) >> 16;
5172       g = (color & 0xff00) >> 8;
5173       b = (color & 0xff);
5174     }
5175   }
5176
5177   return rgb(r, g, b);
5178 }
5179
5180 function d3_rgb_hsl(r, g, b) {
5181   var min = Math.min(r /= 255, g /= 255, b /= 255),
5182       max = Math.max(r, g, b),
5183       d = max - min,
5184       h,
5185       s,
5186       l = (max + min) / 2;
5187   if (d) {
5188     s = l < .5 ? d / (max + min) : d / (2 - max - min);
5189     if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
5190     else if (g == max) h = (b - r) / d + 2;
5191     else h = (r - g) / d + 4;
5192     h *= 60;
5193   } else {
5194     h = NaN;
5195     s = l > 0 && l < 1 ? 0 : h;
5196   }
5197   return new d3_hsl(h, s, l);
5198 }
5199
5200 function d3_rgb_lab(r, g, b) {
5201   r = d3_rgb_xyz(r);
5202   g = d3_rgb_xyz(g);
5203   b = d3_rgb_xyz(b);
5204   var x = d3_xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / d3_lab_X),
5205       y = d3_xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / d3_lab_Y),
5206       z = d3_xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / d3_lab_Z);
5207   return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
5208 }
5209
5210 function d3_rgb_xyz(r) {
5211   return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);
5212 }
5213
5214 function d3_rgb_parseNumber(c) { // either integer or percentage
5215   var f = parseFloat(c);
5216   return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
5217 }
5218
5219 var d3_rgb_names = d3.map({
5220   aliceblue: 0xf0f8ff,
5221   antiquewhite: 0xfaebd7,
5222   aqua: 0x00ffff,
5223   aquamarine: 0x7fffd4,
5224   azure: 0xf0ffff,
5225   beige: 0xf5f5dc,
5226   bisque: 0xffe4c4,
5227   black: 0x000000,
5228   blanchedalmond: 0xffebcd,
5229   blue: 0x0000ff,
5230   blueviolet: 0x8a2be2,
5231   brown: 0xa52a2a,
5232   burlywood: 0xdeb887,
5233   cadetblue: 0x5f9ea0,
5234   chartreuse: 0x7fff00,
5235   chocolate: 0xd2691e,
5236   coral: 0xff7f50,
5237   cornflowerblue: 0x6495ed,
5238   cornsilk: 0xfff8dc,
5239   crimson: 0xdc143c,
5240   cyan: 0x00ffff,
5241   darkblue: 0x00008b,
5242   darkcyan: 0x008b8b,
5243   darkgoldenrod: 0xb8860b,
5244   darkgray: 0xa9a9a9,
5245   darkgreen: 0x006400,
5246   darkgrey: 0xa9a9a9,
5247   darkkhaki: 0xbdb76b,
5248   darkmagenta: 0x8b008b,
5249   darkolivegreen: 0x556b2f,
5250   darkorange: 0xff8c00,
5251   darkorchid: 0x9932cc,
5252   darkred: 0x8b0000,
5253   darksalmon: 0xe9967a,
5254   darkseagreen: 0x8fbc8f,
5255   darkslateblue: 0x483d8b,
5256   darkslategray: 0x2f4f4f,
5257   darkslategrey: 0x2f4f4f,
5258   darkturquoise: 0x00ced1,
5259   darkviolet: 0x9400d3,
5260   deeppink: 0xff1493,
5261   deepskyblue: 0x00bfff,
5262   dimgray: 0x696969,
5263   dimgrey: 0x696969,
5264   dodgerblue: 0x1e90ff,
5265   firebrick: 0xb22222,
5266   floralwhite: 0xfffaf0,
5267   forestgreen: 0x228b22,
5268   fuchsia: 0xff00ff,
5269   gainsboro: 0xdcdcdc,
5270   ghostwhite: 0xf8f8ff,
5271   gold: 0xffd700,
5272   goldenrod: 0xdaa520,
5273   gray: 0x808080,
5274   green: 0x008000,
5275   greenyellow: 0xadff2f,
5276   grey: 0x808080,
5277   honeydew: 0xf0fff0,
5278   hotpink: 0xff69b4,
5279   indianred: 0xcd5c5c,
5280   indigo: 0x4b0082,
5281   ivory: 0xfffff0,
5282   khaki: 0xf0e68c,
5283   lavender: 0xe6e6fa,
5284   lavenderblush: 0xfff0f5,
5285   lawngreen: 0x7cfc00,
5286   lemonchiffon: 0xfffacd,
5287   lightblue: 0xadd8e6,
5288   lightcoral: 0xf08080,
5289   lightcyan: 0xe0ffff,
5290   lightgoldenrodyellow: 0xfafad2,
5291   lightgray: 0xd3d3d3,
5292   lightgreen: 0x90ee90,
5293   lightgrey: 0xd3d3d3,
5294   lightpink: 0xffb6c1,
5295   lightsalmon: 0xffa07a,
5296   lightseagreen: 0x20b2aa,
5297   lightskyblue: 0x87cefa,
5298   lightslategray: 0x778899,
5299   lightslategrey: 0x778899,
5300   lightsteelblue: 0xb0c4de,
5301   lightyellow: 0xffffe0,
5302   lime: 0x00ff00,
5303   limegreen: 0x32cd32,
5304   linen: 0xfaf0e6,
5305   magenta: 0xff00ff,
5306   maroon: 0x800000,
5307   mediumaquamarine: 0x66cdaa,
5308   mediumblue: 0x0000cd,
5309   mediumorchid: 0xba55d3,
5310   mediumpurple: 0x9370db,
5311   mediumseagreen: 0x3cb371,
5312   mediumslateblue: 0x7b68ee,
5313   mediumspringgreen: 0x00fa9a,
5314   mediumturquoise: 0x48d1cc,
5315   mediumvioletred: 0xc71585,
5316   midnightblue: 0x191970,
5317   mintcream: 0xf5fffa,
5318   mistyrose: 0xffe4e1,
5319   moccasin: 0xffe4b5,
5320   navajowhite: 0xffdead,
5321   navy: 0x000080,
5322   oldlace: 0xfdf5e6,
5323   olive: 0x808000,
5324   olivedrab: 0x6b8e23,
5325   orange: 0xffa500,
5326   orangered: 0xff4500,
5327   orchid: 0xda70d6,
5328   palegoldenrod: 0xeee8aa,
5329   palegreen: 0x98fb98,
5330   paleturquoise: 0xafeeee,
5331   palevioletred: 0xdb7093,
5332   papayawhip: 0xffefd5,
5333   peachpuff: 0xffdab9,
5334   peru: 0xcd853f,
5335   pink: 0xffc0cb,
5336   plum: 0xdda0dd,
5337   powderblue: 0xb0e0e6,
5338   purple: 0x800080,
5339   rebeccapurple: 0x663399,
5340   red: 0xff0000,
5341   rosybrown: 0xbc8f8f,
5342   royalblue: 0x4169e1,
5343   saddlebrown: 0x8b4513,
5344   salmon: 0xfa8072,
5345   sandybrown: 0xf4a460,
5346   seagreen: 0x2e8b57,
5347   seashell: 0xfff5ee,
5348   sienna: 0xa0522d,
5349   silver: 0xc0c0c0,
5350   skyblue: 0x87ceeb,
5351   slateblue: 0x6a5acd,
5352   slategray: 0x708090,
5353   slategrey: 0x708090,
5354   snow: 0xfffafa,
5355   springgreen: 0x00ff7f,
5356   steelblue: 0x4682b4,
5357   tan: 0xd2b48c,
5358   teal: 0x008080,
5359   thistle: 0xd8bfd8,
5360   tomato: 0xff6347,
5361   turquoise: 0x40e0d0,
5362   violet: 0xee82ee,
5363   wheat: 0xf5deb3,
5364   white: 0xffffff,
5365   whitesmoke: 0xf5f5f5,
5366   yellow: 0xffff00,
5367   yellowgreen: 0x9acd32
5368 });
5369
5370 d3_rgb_names.forEach(function(key, value) {
5371   d3_rgb_names.set(key, d3_rgbNumber(value));
5372 });
5373
5374 d3.interpolateRgb = d3_interpolateRgb;
5375
5376 function d3_interpolateRgb(a, b) {
5377   a = d3.rgb(a);
5378   b = d3.rgb(b);
5379   var ar = a.r,
5380       ag = a.g,
5381       ab = a.b,
5382       br = b.r - ar,
5383       bg = b.g - ag,
5384       bb = b.b - ab;
5385   return function(t) {
5386     return "#"
5387         + d3_rgb_hex(Math.round(ar + br * t))
5388         + d3_rgb_hex(Math.round(ag + bg * t))
5389         + d3_rgb_hex(Math.round(ab + bb * t));
5390   };
5391 }
5392
5393 d3.interpolateObject = d3_interpolateObject;
5394
5395 function d3_interpolateObject(a, b) {
5396   var i = {},
5397       c = {},
5398       k;
5399   for (k in a) {
5400     if (k in b) {
5401       i[k] = d3_interpolate(a[k], b[k]);
5402     } else {
5403       c[k] = a[k];
5404     }
5405   }
5406   for (k in b) {
5407     if (!(k in a)) {
5408       c[k] = b[k];
5409     }
5410   }
5411   return function(t) {
5412     for (k in i) c[k] = i[k](t);
5413     return c;
5414   };
5415 }
5416
5417 d3.interpolateArray = d3_interpolateArray;
5418
5419 function d3_interpolateArray(a, b) {
5420   var x = [],
5421       c = [],
5422       na = a.length,
5423       nb = b.length,
5424       n0 = Math.min(a.length, b.length),
5425       i;
5426   for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
5427   for (; i < na; ++i) c[i] = a[i];
5428   for (; i < nb; ++i) c[i] = b[i];
5429   return function(t) {
5430     for (i = 0; i < n0; ++i) c[i] = x[i](t);
5431     return c;
5432   };
5433 }
5434 d3.interpolateNumber = d3_interpolateNumber;
5435
5436 function d3_interpolateNumber(a, b) {
5437   a = +a, b = +b;
5438   return function(t) { return a * (1 - t) + b * t; };
5439 }
5440
5441 d3.interpolateString = d3_interpolateString;
5442
5443 function d3_interpolateString(a, b) {
5444   var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, // scan index for next number in b
5445       am, // current match in a
5446       bm, // current match in b
5447       bs, // string preceding current number in b, if any
5448       i = -1, // index in s
5449       s = [], // string constants and placeholders
5450       q = []; // number interpolators
5451
5452   // Coerce inputs to strings.
5453   a = a + "", b = b + "";
5454
5455   // Interpolate pairs of numbers in a & b.
5456   while ((am = d3_interpolate_numberA.exec(a))
5457       && (bm = d3_interpolate_numberB.exec(b))) {
5458     if ((bs = bm.index) > bi) { // a string precedes the next number in b
5459       bs = b.slice(bi, bs);
5460       if (s[i]) s[i] += bs; // coalesce with previous string
5461       else s[++i] = bs;
5462     }
5463     if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
5464       if (s[i]) s[i] += bm; // coalesce with previous string
5465       else s[++i] = bm;
5466     } else { // interpolate non-matching numbers
5467       s[++i] = null;
5468       q.push({i: i, x: d3_interpolateNumber(am, bm)});
5469     }
5470     bi = d3_interpolate_numberB.lastIndex;
5471   }
5472
5473   // Add remains of b.
5474   if (bi < b.length) {
5475     bs = b.slice(bi);
5476     if (s[i]) s[i] += bs; // coalesce with previous string
5477     else s[++i] = bs;
5478   }
5479
5480   // Special optimization for only a single match.
5481   // Otherwise, interpolate each of the numbers and rejoin the string.
5482   return s.length < 2
5483       ? (q[0] ? (b = q[0].x, function(t) { return b(t) + ""; })
5484       : function() { return b; })
5485       : (b = q.length, function(t) {
5486           for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
5487           return s.join("");
5488         });
5489 }
5490
5491 var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
5492     d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
5493
5494 d3.interpolate = d3_interpolate;
5495
5496 function d3_interpolate(a, b) {
5497   var i = d3.interpolators.length, f;
5498   while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
5499   return f;
5500 }
5501
5502 d3.interpolators = [
5503   function(a, b) {
5504     var t = typeof b;
5505     return (t === "string" ? (d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString)
5506         : b instanceof d3_color ? d3_interpolateRgb
5507         : Array.isArray(b) ? d3_interpolateArray
5508         : t === "object" && isNaN(b) ? d3_interpolateObject
5509         : d3_interpolateNumber)(a, b);
5510   }
5511 ];
5512
5513 d3.transform = function(string) {
5514   var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
5515   return (d3.transform = function(string) {
5516     if (string != null) {
5517       g.setAttribute("transform", string);
5518       var t = g.transform.baseVal.consolidate();
5519     }
5520     return new d3_transform(t ? t.matrix : d3_transformIdentity);
5521   })(string);
5522 };
5523
5524 // Compute x-scale and normalize the first row.
5525 // Compute shear and make second row orthogonal to first.
5526 // Compute y-scale and normalize the second row.
5527 // Finally, compute the rotation.
5528 function d3_transform(m) {
5529   var r0 = [m.a, m.b],
5530       r1 = [m.c, m.d],
5531       kx = d3_transformNormalize(r0),
5532       kz = d3_transformDot(r0, r1),
5533       ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
5534   if (r0[0] * r1[1] < r1[0] * r0[1]) {
5535     r0[0] *= -1;
5536     r0[1] *= -1;
5537     kx *= -1;
5538     kz *= -1;
5539   }
5540   this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
5541   this.translate = [m.e, m.f];
5542   this.scale = [kx, ky];
5543   this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
5544 };
5545
5546 d3_transform.prototype.toString = function() {
5547   return "translate(" + this.translate
5548       + ")rotate(" + this.rotate
5549       + ")skewX(" + this.skew
5550       + ")scale(" + this.scale
5551       + ")";
5552 };
5553
5554 function d3_transformDot(a, b) {
5555   return a[0] * b[0] + a[1] * b[1];
5556 }
5557
5558 function d3_transformNormalize(a) {
5559   var k = Math.sqrt(d3_transformDot(a, a));
5560   if (k) {
5561     a[0] /= k;
5562     a[1] /= k;
5563   }
5564   return k;
5565 }
5566
5567 function d3_transformCombine(a, b, k) {
5568   a[0] += k * b[0];
5569   a[1] += k * b[1];
5570   return a;
5571 }
5572
5573 var d3_transformIdentity = {a: 1, b: 0, c: 0, d: 1, e: 0, f: 0};
5574
5575 d3.interpolateTransform = d3_interpolateTransform;
5576
5577 function d3_interpolateTransform(a, b) {
5578   var s = [], // string constants and placeholders
5579       q = [], // number interpolators
5580       n,
5581       A = d3.transform(a),
5582       B = d3.transform(b),
5583       ta = A.translate,
5584       tb = B.translate,
5585       ra = A.rotate,
5586       rb = B.rotate,
5587       wa = A.skew,
5588       wb = B.skew,
5589       ka = A.scale,
5590       kb = B.scale;
5591
5592   if (ta[0] != tb[0] || ta[1] != tb[1]) {
5593     s.push("translate(", null, ",", null, ")");
5594     q.push({i: 1, x: d3_interpolateNumber(ta[0], tb[0])}, {i: 3, x: d3_interpolateNumber(ta[1], tb[1])});
5595   } else if (tb[0] || tb[1]) {
5596     s.push("translate(" + tb + ")");
5597   } else {
5598     s.push("");
5599   }
5600
5601   if (ra != rb) {
5602     if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; // shortest path
5603     q.push({i: s.push(s.pop() + "rotate(", null, ")") - 2, x: d3_interpolateNumber(ra, rb)});
5604   } else if (rb) {
5605     s.push(s.pop() + "rotate(" + rb + ")");
5606   }
5607
5608   if (wa != wb) {
5609     q.push({i: s.push(s.pop() + "skewX(", null, ")") - 2, x: d3_interpolateNumber(wa, wb)});
5610   } else if (wb) {
5611     s.push(s.pop() + "skewX(" + wb + ")");
5612   }
5613
5614   if (ka[0] != kb[0] || ka[1] != kb[1]) {
5615     n = s.push(s.pop() + "scale(", null, ",", null, ")");
5616     q.push({i: n - 4, x: d3_interpolateNumber(ka[0], kb[0])}, {i: n - 2, x: d3_interpolateNumber(ka[1], kb[1])});
5617   } else if (kb[0] != 1 || kb[1] != 1) {
5618     s.push(s.pop() + "scale(" + kb + ")");
5619   }
5620
5621   n = q.length;
5622   return function(t) {
5623     var i = -1, o;
5624     while (++i < n) s[(o = q[i]).i] = o.x(t);
5625     return s.join("");
5626   };
5627 }
5628
5629 d3_transitionPrototype.tween = function(name, tween) {
5630   var id = this.id, ns = this.namespace;
5631   if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
5632   return d3_selection_each(this, tween == null
5633         ? function(node) { node[ns][id].tween.remove(name); }
5634         : function(node) { node[ns][id].tween.set(name, tween); });
5635 };
5636
5637 function d3_transition_tween(groups, name, value, tween) {
5638   var id = groups.id, ns = groups.namespace;
5639   return d3_selection_each(groups, typeof value === "function"
5640       ? function(node, i, j) { node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j))); }
5641       : (value = tween(value), function(node) { node[ns][id].tween.set(name, value); }));
5642 }
5643
5644 d3_transitionPrototype.attr = function(nameNS, value) {
5645   if (arguments.length < 2) {
5646
5647     // For attr(object), the object specifies the names and values of the
5648     // attributes to transition. The values may be functions that are
5649     // evaluated for each element.
5650     for (value in nameNS) this.attr(value, nameNS[value]);
5651     return this;
5652   }
5653
5654   var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate,
5655       name = d3.ns.qualify(nameNS);
5656
5657   // For attr(string, null), remove the attribute with the specified name.
5658   function attrNull() {
5659     this.removeAttribute(name);
5660   }
5661   function attrNullNS() {
5662     this.removeAttributeNS(name.space, name.local);
5663   }
5664
5665   // For attr(string, string), set the attribute with the specified name.
5666   function attrTween(b) {
5667     return b == null ? attrNull : (b += "", function() {
5668       var a = this.getAttribute(name), i;
5669       return a !== b && (i = interpolate(a, b), function(t) { this.setAttribute(name, i(t)); });
5670     });
5671   }
5672   function attrTweenNS(b) {
5673     return b == null ? attrNullNS : (b += "", function() {
5674       var a = this.getAttributeNS(name.space, name.local), i;
5675       return a !== b && (i = interpolate(a, b), function(t) { this.setAttributeNS(name.space, name.local, i(t)); });
5676     });
5677   }
5678
5679   return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
5680 };
5681
5682 d3_transitionPrototype.attrTween = function(nameNS, tween) {
5683   var name = d3.ns.qualify(nameNS);
5684
5685   function attrTween(d, i) {
5686     var f = tween.call(this, d, i, this.getAttribute(name));
5687     return f && function(t) { this.setAttribute(name, f(t)); };
5688   }
5689   function attrTweenNS(d, i) {
5690     var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
5691     return f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); };
5692   }
5693
5694   return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
5695 };
5696
5697 d3_transitionPrototype.style = function(name, value, priority) {
5698   var n = arguments.length;
5699   if (n < 3) {
5700
5701     // For style(object) or style(object, string), the object specifies the
5702     // names and values of the attributes to set or remove. The values may be
5703     // functions that are evaluated for each element. The optional string
5704     // specifies the priority.
5705     if (typeof name !== "string") {
5706       if (n < 2) value = "";
5707       for (priority in name) this.style(priority, name[priority], value);
5708       return this;
5709     }
5710
5711     // For style(string, string) or style(string, function), use the default
5712     // priority. The priority is ignored for style(string, null).
5713     priority = "";
5714   }
5715
5716   // For style(name, null) or style(name, null, priority), remove the style
5717   // property with the specified name. The priority is ignored.
5718   function styleNull() {
5719     this.style.removeProperty(name);
5720   }
5721
5722   // For style(name, string) or style(name, string, priority), set the style
5723   // property with the specified name, using the specified priority.
5724   // Otherwise, a name, value and priority are specified, and handled as below.
5725   function styleString(b) {
5726     return b == null ? styleNull : (b += "", function() {
5727       var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
5728       return a !== b && (i = d3_interpolate(a, b), function(t) { this.style.setProperty(name, i(t), priority); });
5729     });
5730   }
5731
5732   return d3_transition_tween(this, "style." + name, value, styleString);
5733 };
5734
5735 d3_transitionPrototype.styleTween = function(name, tween, priority) {
5736   if (arguments.length < 3) priority = "";
5737
5738   function styleTween(d, i) {
5739     var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
5740     return f && function(t) { this.style.setProperty(name, f(t), priority); };
5741   }
5742
5743   return this.tween("style." + name, styleTween);
5744 };
5745
5746 d3_transitionPrototype.text = function(value) {
5747   return d3_transition_tween(this, "text", value, d3_transition_text);
5748 };
5749
5750 function d3_transition_text(b) {
5751   if (b == null) b = "";
5752   return function() { this.textContent = b; };
5753 }
5754
5755 d3_transitionPrototype.remove = function() {
5756   var ns = this.namespace;
5757   return this.each("end.transition", function() {
5758     var p;
5759     if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
5760   });
5761 };
5762
5763 var d3_ease_default = function() { return d3_identity; };
5764
5765 var d3_ease = d3.map({
5766   linear: d3_ease_default,
5767   poly: d3_ease_poly,
5768   quad: function() { return d3_ease_quad; },
5769   cubic: function() { return d3_ease_cubic; },
5770   sin: function() { return d3_ease_sin; },
5771   exp: function() { return d3_ease_exp; },
5772   circle: function() { return d3_ease_circle; },
5773   elastic: d3_ease_elastic,
5774   back: d3_ease_back,
5775   bounce: function() { return d3_ease_bounce; }
5776 });
5777
5778 var d3_ease_mode = d3.map({
5779   "in": d3_identity,
5780   "out": d3_ease_reverse,
5781   "in-out": d3_ease_reflect,
5782   "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
5783 });
5784
5785 d3.ease = function(name) {
5786   var i = name.indexOf("-"),
5787       t = i >= 0 ? name.slice(0, i) : name,
5788       m = i >= 0 ? name.slice(i + 1) : "in";
5789   t = d3_ease.get(t) || d3_ease_default;
5790   m = d3_ease_mode.get(m) || d3_identity;
5791   return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
5792 };
5793
5794 function d3_ease_clamp(f) {
5795   return function(t) {
5796     return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
5797   };
5798 }
5799
5800 function d3_ease_reverse(f) {
5801   return function(t) {
5802     return 1 - f(1 - t);
5803   };
5804 }
5805
5806 function d3_ease_reflect(f) {
5807   return function(t) {
5808     return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
5809   };
5810 }
5811
5812 function d3_ease_quad(t) {
5813   return t * t;
5814 }
5815
5816 function d3_ease_cubic(t) {
5817   return t * t * t;
5818 }
5819
5820 // Optimized clamp(reflect(poly(3))).
5821 function d3_ease_cubicInOut(t) {
5822   if (t <= 0) return 0;
5823   if (t >= 1) return 1;
5824   var t2 = t * t, t3 = t2 * t;
5825   return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
5826 }
5827
5828 function d3_ease_poly(e) {
5829   return function(t) {
5830     return Math.pow(t, e);
5831   };
5832 }
5833
5834 function d3_ease_sin(t) {
5835   return 1 - Math.cos(t * halfπ);
5836 }
5837
5838 function d3_ease_exp(t) {
5839   return Math.pow(2, 10 * (t - 1));
5840 }
5841
5842 function d3_ease_circle(t) {
5843   return 1 - Math.sqrt(1 - t * t);
5844 }
5845
5846 function d3_ease_elastic(a, p) {
5847   var s;
5848   if (arguments.length < 2) p = 0.45;
5849   if (arguments.length) s = p / τ * Math.asin(1 / a);
5850   else a = 1, s = p / 4;
5851   return function(t) {
5852     return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
5853   };
5854 }
5855
5856 function d3_ease_back(s) {
5857   if (!s) s = 1.70158;
5858   return function(t) {
5859     return t * t * ((s + 1) * t - s);
5860   };
5861 }
5862
5863 function d3_ease_bounce(t) {
5864   return t < 1 / 2.75 ? 7.5625 * t * t
5865       : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
5866       : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
5867       : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
5868 }
5869
5870 d3_transitionPrototype.ease = function(value) {
5871   var id = this.id, ns = this.namespace;
5872   if (arguments.length < 1) return this.node()[ns][id].ease;
5873   if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
5874   return d3_selection_each(this, function(node) { node[ns][id].ease = value; });
5875 };
5876
5877 d3_transitionPrototype.delay = function(value) {
5878   var id = this.id, ns = this.namespace;
5879   if (arguments.length < 1) return this.node()[ns][id].delay;
5880   return d3_selection_each(this, typeof value === "function"
5881       ? function(node, i, j) { node[ns][id].delay = +value.call(node, node.__data__, i, j); }
5882       : (value = +value, function(node) { node[ns][id].delay = value; }));
5883 };
5884
5885 d3_transitionPrototype.duration = function(value) {
5886   var id = this.id, ns = this.namespace;
5887   if (arguments.length < 1) return this.node()[ns][id].duration;
5888   return d3_selection_each(this, typeof value === "function"
5889       ? function(node, i, j) { node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j)); }
5890       : (value = Math.max(1, value), function(node) { node[ns][id].duration = value; }));
5891 };
5892
5893 d3_transitionPrototype.each = function(type, listener) {
5894   var id = this.id, ns = this.namespace;
5895   if (arguments.length < 2) {
5896     var inherit = d3_transitionInherit,
5897         inheritId = d3_transitionInheritId;
5898     try {
5899       d3_transitionInheritId = id;
5900       d3_selection_each(this, function(node, i, j) {
5901         d3_transitionInherit = node[ns][id];
5902         type.call(node, node.__data__, i, j);
5903       });
5904     } finally {
5905       d3_transitionInherit = inherit;
5906       d3_transitionInheritId = inheritId;
5907     }
5908   } else {
5909     d3_selection_each(this, function(node) {
5910       var transition = node[ns][id];
5911       (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
5912     });
5913   }
5914   return this;
5915 };
5916
5917 d3_transitionPrototype.transition = function() {
5918   var id0 = this.id,
5919       id1 = ++d3_transitionId,
5920       ns = this.namespace,
5921       subgroups = [],
5922       subgroup,
5923       group,
5924       node,
5925       transition;
5926
5927   for (var j = 0, m = this.length; j < m; j++) {
5928     subgroups.push(subgroup = []);
5929     for (var group = this[j], i = 0, n = group.length; i < n; i++) {
5930       if (node = group[i]) {
5931         transition = node[ns][id0];
5932         d3_transitionNode(node, i, ns, id1, {time: transition.time, ease: transition.ease, delay: transition.delay + transition.duration, duration: transition.duration});
5933       }
5934       subgroup.push(node);
5935     }
5936   }
5937
5938   return d3_transition(subgroups, ns, id1);
5939 };
5940
5941 function d3_transitionNamespace(name) {
5942   return name == null ? "__transition__" : "__transition_" + name + "__";
5943 }
5944
5945 function d3_transitionNode(node, i, ns, id, inherit) {
5946   var lock = node[ns] || (node[ns] = {active: 0, count: 0}),
5947       transition = lock[id];
5948
5949   if (!transition) {
5950     var time = inherit.time;
5951
5952     transition = lock[id] = {
5953       tween: new d3_Map,
5954       time: time,
5955       delay: inherit.delay,
5956       duration: inherit.duration,
5957       ease: inherit.ease,
5958       index: i
5959     };
5960
5961     inherit = null; // allow gc
5962
5963     ++lock.count;
5964
5965     d3.timer(function(elapsed) {
5966       var delay = transition.delay,
5967           duration,
5968           ease,
5969           timer = d3_timer_active,
5970           tweened = [];
5971
5972       timer.t = delay + time;
5973       if (delay <= elapsed) return start(elapsed - delay);
5974       timer.c = start;
5975
5976       function start(elapsed) {
5977         if (lock.active > id) return stop();
5978
5979         var active = lock[lock.active];
5980         if (active) {
5981           --lock.count;
5982           delete lock[lock.active];
5983           active.event && active.event.interrupt.call(node, node.__data__, active.index);
5984         }
5985
5986         lock.active = id;
5987
5988         transition.event && transition.event.start.call(node, node.__data__, i);
5989
5990         transition.tween.forEach(function(key, value) {
5991           if (value = value.call(node, node.__data__, i)) {
5992             tweened.push(value);
5993           }
5994         });
5995
5996         // Deferred capture to allow tweens to initialize ease & duration.
5997         ease = transition.ease;
5998         duration = transition.duration;
5999
6000         d3.timer(function() { // defer to end of current frame
6001           timer.c = tick(elapsed || 1) ? d3_true : tick;
6002           return 1;
6003         }, 0, time);
6004       }
6005
6006       function tick(elapsed) {
6007         if (lock.active !== id) return 1;
6008
6009         var t = elapsed / duration,
6010             e = ease(t),
6011             n = tweened.length;
6012
6013         while (n > 0) {
6014           tweened[--n].call(node, e);
6015         }
6016
6017         if (t >= 1) {
6018           transition.event && transition.event.end.call(node, node.__data__, i);
6019           return stop();
6020         }
6021       }
6022
6023       function stop() {
6024         if (--lock.count) delete lock[id];
6025         else delete node[ns];
6026         return 1;
6027       }
6028     }, 0, time);
6029   }
6030 }
6031
6032 d3.xhr = d3_xhrType(d3_identity);
6033
6034 function d3_xhrType(response) {
6035   return function(url, mimeType, callback) {
6036     if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, mimeType = null;
6037     return d3_xhr(url, mimeType, response, callback);
6038   };
6039 }
6040
6041 function d3_xhr(url, mimeType, response, callback) {
6042   var xhr = {},
6043       dispatch = d3.dispatch("beforesend", "progress", "load", "error"),
6044       headers = {},
6045       request = new XMLHttpRequest,
6046       responseType = null;
6047
6048   // If IE does not support CORS, use XDomainRequest.
6049   if (this.XDomainRequest
6050       && !("withCredentials" in request)
6051       && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest;
6052
6053   "onload" in request
6054       ? request.onload = request.onerror = respond
6055       : request.onreadystatechange = function() { request.readyState > 3 && respond(); };
6056
6057   function respond() {
6058     var status = request.status, result;
6059     if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
6060       try {
6061         result = response.call(xhr, request);
6062       } catch (e) {
6063         dispatch.error.call(xhr, e);
6064         return;
6065       }
6066       dispatch.load.call(xhr, result);
6067     } else {
6068       dispatch.error.call(xhr, request);
6069     }
6070   }
6071
6072   request.onprogress = function(event) {
6073     var o = d3.event;
6074     d3.event = event;
6075     try { dispatch.progress.call(xhr, request); }
6076     finally { d3.event = o; }
6077   };
6078
6079   xhr.header = function(name, value) {
6080     name = (name + "").toLowerCase();
6081     if (arguments.length < 2) return headers[name];
6082     if (value == null) delete headers[name];
6083     else headers[name] = value + "";
6084     return xhr;
6085   };
6086
6087   // If mimeType is non-null and no Accept header is set, a default is used.
6088   xhr.mimeType = function(value) {
6089     if (!arguments.length) return mimeType;
6090     mimeType = value == null ? null : value + "";
6091     return xhr;
6092   };
6093
6094   // Specifies what type the response value should take;
6095   // for instance, arraybuffer, blob, document, or text.
6096   xhr.responseType = function(value) {
6097     if (!arguments.length) return responseType;
6098     responseType = value;
6099     return xhr;
6100   };
6101
6102   // Specify how to convert the response content to a specific type;
6103   // changes the callback value on "load" events.
6104   xhr.response = function(value) {
6105     response = value;
6106     return xhr;
6107   };
6108
6109   // Convenience methods.
6110   ["get", "post"].forEach(function(method) {
6111     xhr[method] = function() {
6112       return xhr.send.apply(xhr, [method].concat(d3_array(arguments)));
6113     };
6114   });
6115
6116   // If callback is non-null, it will be used for error and load events.
6117   xhr.send = function(method, data, callback) {
6118     if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
6119     request.open(method, url, true);
6120     if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
6121     if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
6122     if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
6123     if (responseType != null) request.responseType = responseType;
6124     if (callback != null) xhr.on("error", callback).on("load", function(request) { callback(null, request); });
6125     dispatch.beforesend.call(xhr, request);
6126     request.send(data == null ? null : data);
6127     return xhr;
6128   };
6129
6130   xhr.abort = function() {
6131     request.abort();
6132     return xhr;
6133   };
6134
6135   d3.rebind(xhr, dispatch, "on");
6136
6137   return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
6138 };
6139
6140 function d3_xhr_fixCallback(callback) {
6141   return callback.length === 1
6142       ? function(error, request) { callback(error == null ? request : null); }
6143       : callback;
6144 }
6145
6146 function d3_xhrHasResponse(request) {
6147   var type = request.responseType;
6148   return type && type !== "text"
6149       ? request.response // null on error
6150       : request.responseText; // "" on error
6151 }
6152
6153 d3.text = d3_xhrType(function(request) {
6154   return request.responseText;
6155 });
6156
6157 d3.json = function(url, callback) {
6158   return d3_xhr(url, "application/json", d3_json, callback);
6159 };
6160
6161 function d3_json(request) {
6162   return JSON.parse(request.responseText);
6163 }
6164
6165 d3.html = function(url, callback) {
6166   return d3_xhr(url, "text/html", d3_html, callback);
6167 };
6168
6169 function d3_html(request) {
6170   var range = d3_document.createRange();
6171   range.selectNode(d3_document.body);
6172   return range.createContextualFragment(request.responseText);
6173 }
6174
6175 d3.xml = d3_xhrType(function(request) {
6176   return request.responseXML;
6177 });
6178   if (typeof define === "function" && define.amd) define(d3);
6179   else if (typeof module === "object" && module.exports) module.exports = d3;
6180   this.d3 = d3;
6181 }();
6182 d3.combobox = function() {
6183     var event = d3.dispatch('accept'),
6184         data = [],
6185         suggestions = [],
6186         minItems = 2;
6187
6188     var fetcher = function(val, cb) {
6189         cb(data.filter(function(d) {
6190             return d.value
6191                 .toString()
6192                 .toLowerCase()
6193                 .indexOf(val.toLowerCase()) !== -1;
6194         }));
6195     };
6196
6197     var combobox = function(input) {
6198         var idx = -1,
6199             container = d3.select(document.body)
6200                 .selectAll('div.combobox')
6201                 .filter(function(d) { return d === input.node(); }),
6202             shown = !container.empty();
6203
6204         input
6205             .classed('combobox-input', true)
6206             .on('focus.typeahead', focus)
6207             .on('blur.typeahead', blur)
6208             .on('keydown.typeahead', keydown)
6209             .on('keyup.typeahead', keyup)
6210             .on('input.typeahead', change)
6211             .each(function() {
6212                 var parent = this.parentNode,
6213                     sibling = this.nextSibling;
6214
6215                 var caret = d3.select(parent).selectAll('.combobox-caret')
6216                     .filter(function(d) { return d === input.node(); })
6217                     .data([input.node()]);
6218
6219                 caret.enter().insert('div', function() { return sibling; })
6220                     .attr('class', 'combobox-caret');
6221
6222                 caret
6223                     .on('mousedown', function () {
6224                         // prevent the form element from blurring. it blurs
6225                         // on mousedown
6226                         d3.event.stopPropagation();
6227                         d3.event.preventDefault();
6228                         if (!shown) {
6229                             input.node().focus();
6230                             fetch('', render);
6231                         } else {
6232                             hide();
6233                         }
6234                     });
6235             });
6236
6237         function focus() {
6238             fetch(value(), render);
6239         }
6240
6241         function blur() {
6242             window.setTimeout(hide, 150);
6243         }
6244
6245         function show() {
6246             if (!shown) {
6247                 container = d3.select(document.body)
6248                     .insert('div', ':first-child')
6249                     .datum(input.node())
6250                     .attr('class', 'combobox')
6251                     .style({
6252                         position: 'absolute',
6253                         display: 'block',
6254                         left: '0px'
6255                     })
6256                     .on('mousedown', function () {
6257                         // prevent moving focus out of the text field
6258                         d3.event.preventDefault();
6259                     });
6260
6261                 d3.select(document.body)
6262                     .on('scroll.combobox', render, true);
6263
6264                 shown = true;
6265             }
6266         }
6267
6268         function hide() {
6269             if (shown) {
6270                 idx = -1;
6271                 container.remove();
6272
6273                 d3.select(document.body)
6274                     .on('scroll.combobox', null);
6275
6276                 shown = false;
6277             }
6278         }
6279
6280         function keydown() {
6281            switch (d3.event.keyCode) {
6282                // backspace, delete
6283                case 8:
6284                case 46:
6285                    input.on('input.typeahead', function() {
6286                        idx = -1;
6287                        render();
6288                        var start = input.property('selectionStart');
6289                        input.node().setSelectionRange(start, start);
6290                        input.on('input.typeahead', change);
6291                    });
6292                    break;
6293                // tab
6294                case 9:
6295                    container.selectAll('a.selected').each(event.accept);
6296                    break;
6297                // return
6298                case 13:
6299                    d3.event.preventDefault();
6300                    break;
6301                // up arrow
6302                case 38:
6303                    nav(-1);
6304                    d3.event.preventDefault();
6305                    break;
6306                // down arrow
6307                case 40:
6308                    nav(+1);
6309                    d3.event.preventDefault();
6310                    break;
6311            }
6312            d3.event.stopPropagation();
6313         }
6314
6315         function keyup() {
6316             switch (d3.event.keyCode) {
6317                 // escape
6318                 case 27:
6319                     hide();
6320                     break;
6321                 // return
6322                 case 13:
6323                     container.selectAll('a.selected').each(event.accept);
6324                     hide();
6325                     break;
6326             }
6327         }
6328
6329         function change() {
6330             fetch(value(), function() {
6331                 autocomplete();
6332                 render();
6333             });
6334         }
6335
6336         function nav(dir) {
6337             idx = Math.max(Math.min(idx + dir, suggestions.length - 1), 0);
6338             input.property('value', suggestions[idx].value);
6339             render();
6340             ensureVisible();
6341         }
6342
6343         function value() {
6344             var value = input.property('value'),
6345                 start = input.property('selectionStart'),
6346                 end = input.property('selectionEnd');
6347
6348             if (start && end) {
6349                 value = value.substring(0, start);
6350             }
6351
6352             return value;
6353         }
6354
6355         function fetch(v, cb) {
6356             fetcher.call(input, v, function(_) {
6357                 suggestions = _;
6358                 cb();
6359             });
6360         }
6361
6362         function autocomplete() {
6363             var v = value();
6364
6365             idx = -1;
6366
6367             if (!v) return;
6368
6369             for (var i = 0; i < suggestions.length; i++) {
6370                 if (suggestions[i].value.toLowerCase().indexOf(v.toLowerCase()) === 0) {
6371                     var completion = v + suggestions[i].value.substr(v.length);
6372                     idx = i;
6373                     input.property('value', completion);
6374                     input.node().setSelectionRange(v.length, completion.length);
6375                     return;
6376                 }
6377             }
6378         }
6379
6380         function render() {
6381             if (suggestions.length >= minItems && document.activeElement === input.node()) {
6382                 show();
6383             } else {
6384                 hide();
6385                 return;
6386             }
6387
6388             var options = container
6389                 .selectAll('a.combobox-option')
6390                 .data(suggestions, function(d) { return d.value; });
6391
6392             options.enter().append('a')
6393                 .attr('class', 'combobox-option')
6394                 .text(function(d) { return d.value; });
6395
6396             options
6397                 .attr('title', function(d) { return d.title; })
6398                 .classed('selected', function(d, i) { return i == idx; })
6399                 .on('mouseover', select)
6400                 .on('click', accept)
6401                 .order();
6402
6403             options.exit()
6404                 .remove();
6405
6406             var rect = input.node().getBoundingClientRect();
6407
6408             container.style({
6409                 'left': rect.left + 'px',
6410                 'width': rect.width + 'px',
6411                 'top': rect.height + rect.top + 'px'
6412             });
6413         }
6414
6415         function select(d, i) {
6416             idx = i;
6417             render();
6418         }
6419
6420         function ensureVisible() {
6421             var node = container.selectAll('a.selected').node();
6422             if (node) node.scrollIntoView();
6423         }
6424
6425         function accept(d) {
6426             if (!shown) return;
6427             input
6428                 .property('value', d.value)
6429                 .trigger('change');
6430             event.accept(d);
6431             hide();
6432         }
6433     };
6434
6435     combobox.fetcher = function(_) {
6436         if (!arguments.length) return fetcher;
6437         fetcher = _;
6438         return combobox;
6439     };
6440
6441     combobox.data = function(_) {
6442         if (!arguments.length) return data;
6443         data = _;
6444         return combobox;
6445     };
6446
6447     combobox.minItems = function(_) {
6448         if (!arguments.length) return minItems;
6449         minItems = _;
6450         return combobox;
6451     };
6452
6453     return d3.rebind(combobox, event, 'on');
6454 };
6455 d3.geo.tile = function() {
6456   var size = [960, 500],
6457       scale = 256,
6458       scaleExtent = [0, 20],
6459       translate = [size[0] / 2, size[1] / 2],
6460       zoomDelta = 0;
6461
6462   function bound(_) {
6463       return Math.min(scaleExtent[1], Math.max(scaleExtent[0], _));
6464   }
6465
6466   function tile() {
6467     var z = Math.max(Math.log(scale) / Math.LN2 - 8, 0),
6468         z0 = bound(Math.round(z + zoomDelta)),
6469         k = Math.pow(2, z - z0 + 8),
6470         origin = [(translate[0] - scale / 2) / k, (translate[1] - scale / 2) / k],
6471         tiles = [],
6472         cols = d3.range(Math.max(0, Math.floor(-origin[0])), Math.max(0, Math.ceil(size[0] / k - origin[0]))),
6473         rows = d3.range(Math.max(0, Math.floor(-origin[1])), Math.max(0, Math.ceil(size[1] / k - origin[1])));
6474
6475     rows.forEach(function(y) {
6476       cols.forEach(function(x) {
6477         tiles.push([x, y, z0]);
6478       });
6479     });
6480
6481     tiles.translate = origin;
6482     tiles.scale = k;
6483
6484     return tiles;
6485   }
6486
6487   tile.scaleExtent = function(_) {
6488     if (!arguments.length) return scaleExtent;
6489     scaleExtent = _;
6490     return tile;
6491   };
6492
6493   tile.size = function(_) {
6494     if (!arguments.length) return size;
6495     size = _;
6496     return tile;
6497   };
6498
6499   tile.scale = function(_) {
6500     if (!arguments.length) return scale;
6501     scale = _;
6502     return tile;
6503   };
6504
6505   tile.translate = function(_) {
6506     if (!arguments.length) return translate;
6507     translate = _;
6508     return tile;
6509   };
6510
6511   tile.zoomDelta = function(_) {
6512     if (!arguments.length) return zoomDelta;
6513     zoomDelta = +_;
6514     return tile;
6515   };
6516
6517   return tile;
6518 };
6519 d3.jsonp = function (url, callback) {
6520   function rand() {
6521     var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
6522       c = '', i = -1;
6523     while (++i < 15) c += chars.charAt(Math.floor(Math.random() * 52));
6524     return c;
6525   }
6526
6527   function create(url) {
6528     var e = url.match(/callback=d3.jsonp.(\w+)/),
6529       c = e ? e[1] : rand();
6530     d3.jsonp[c] = function(data) {
6531       callback(data);
6532       delete d3.jsonp[c];
6533       script.remove();
6534     };
6535     return 'd3.jsonp.' + c;
6536   }
6537
6538   var cb = create(url),
6539     script = d3.select('head')
6540     .append('script')
6541     .attr('type', 'text/javascript')
6542     .attr('src', url.replace(/(\{|%7B)callback(\}|%7D)/, cb));
6543 };
6544 /*
6545  * This code is licensed under the MIT license.
6546  *
6547  * Copyright © 2013, iD authors.
6548  *
6549  * Portions copyright © 2011, Keith Cirkel
6550  * See https://github.com/keithamus/jwerty
6551  *
6552  */
6553 d3.keybinding = function(namespace) {
6554     var bindings = [];
6555
6556     function matches(binding, event) {
6557         for (var p in binding.event) {
6558             if (event[p] != binding.event[p])
6559                 return false;
6560         }
6561
6562         return (!binding.capture) === (event.eventPhase !== Event.CAPTURING_PHASE);
6563     }
6564
6565     function capture() {
6566         for (var i = 0; i < bindings.length; i++) {
6567             var binding = bindings[i];
6568             if (matches(binding, d3.event)) {
6569                 binding.callback();
6570             }
6571         }
6572     }
6573
6574     function bubble() {
6575         var tagName = d3.select(d3.event.target).node().tagName;
6576         if (tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA') {
6577             return;
6578         }
6579         capture();
6580     }
6581
6582     function keybinding(selection) {
6583         selection = selection || d3.select(document);
6584         selection.on('keydown.capture' + namespace, capture, true);
6585         selection.on('keydown.bubble' + namespace, bubble, false);
6586         return keybinding;
6587     }
6588
6589     keybinding.off = function(selection) {
6590         selection = selection || d3.select(document);
6591         selection.on('keydown.capture' + namespace, null);
6592         selection.on('keydown.bubble' + namespace, null);
6593         return keybinding;
6594     };
6595
6596     keybinding.on = function(code, callback, capture) {
6597         var binding = {
6598             event: {
6599                 keyCode: 0,
6600                 shiftKey: false,
6601                 ctrlKey: false,
6602                 altKey: false,
6603                 metaKey: false
6604             },
6605             capture: capture,
6606             callback: callback
6607         };
6608
6609         code = code.toLowerCase().match(/(?:(?:[^+⇧⌃⌥⌘])+|[⇧⌃⌥⌘]|\+\+|^\+$)/g);
6610
6611         for (var i = 0; i < code.length; i++) {
6612             // Normalise matching errors
6613             if (code[i] === '++') code[i] = '+';
6614
6615             if (code[i] in d3.keybinding.modifierCodes) {
6616                 binding.event[d3.keybinding.modifierProperties[d3.keybinding.modifierCodes[code[i]]]] = true;
6617             } else if (code[i] in d3.keybinding.keyCodes) {
6618                 binding.event.keyCode = d3.keybinding.keyCodes[code[i]];
6619             }
6620         }
6621
6622         bindings.push(binding);
6623
6624         return keybinding;
6625     };
6626
6627     return keybinding;
6628 };
6629
6630 (function () {
6631     d3.keybinding.modifierCodes = {
6632         // Shift key, ⇧
6633         '⇧': 16, shift: 16,
6634         // CTRL key, on Mac: ⌃
6635         '⌃': 17, ctrl: 17,
6636         // ALT key, on Mac: ⌥ (Alt)
6637         '⌥': 18, alt: 18, option: 18,
6638         // META, on Mac: ⌘ (CMD), on Windows (Win), on Linux (Super)
6639         '⌘': 91, meta: 91, cmd: 91, 'super': 91, win: 91
6640     };
6641
6642     d3.keybinding.modifierProperties = {
6643         16: 'shiftKey',
6644         17: 'ctrlKey',
6645         18: 'altKey',
6646         91: 'metaKey'
6647     };
6648
6649     d3.keybinding.keyCodes = {
6650         // Backspace key, on Mac: ⌫ (Backspace)
6651         '⌫': 8, backspace: 8,
6652         // Tab Key, on Mac: ⇥ (Tab), on Windows ⇥⇥
6653         '⇥': 9, '⇆': 9, tab: 9,
6654         // Return key, ↩
6655         '↩': 13, 'return': 13, enter: 13, '⌅': 13,
6656         // Pause/Break key
6657         'pause': 19, 'pause-break': 19,
6658         // Caps Lock key, ⇪
6659         '⇪': 20, caps: 20, 'caps-lock': 20,
6660         // Escape key, on Mac: ⎋, on Windows: Esc
6661         '⎋': 27, escape: 27, esc: 27,
6662         // Space key
6663         space: 32,
6664         // Page-Up key, or pgup, on Mac: ↖
6665         '↖': 33, pgup: 33, 'page-up': 33,
6666         // Page-Down key, or pgdown, on Mac: ↘
6667         '↘': 34, pgdown: 34, 'page-down': 34,
6668         // END key, on Mac: ⇟
6669         '⇟': 35, end: 35,
6670         // HOME key, on Mac: ⇞
6671         '⇞': 36, home: 36,
6672         // Insert key, or ins
6673         ins: 45, insert: 45,
6674         // Delete key, on Mac: ⌦ (Delete)
6675         '⌦': 46, del: 46, 'delete': 46,
6676         // Left Arrow Key, or ←
6677         '←': 37, left: 37, 'arrow-left': 37,
6678         // Up Arrow Key, or ↑
6679         '↑': 38, up: 38, 'arrow-up': 38,
6680         // Right Arrow Key, or →
6681         '→': 39, right: 39, 'arrow-right': 39,
6682         // Up Arrow Key, or ↓
6683         '↓': 40, down: 40, 'arrow-down': 40,
6684         // odities, printing characters that come out wrong:
6685         // Firefox Equals
6686         'ffequals': 61,
6687         // Num-Multiply, or *
6688         '*': 106, star: 106, asterisk: 106, multiply: 106,
6689         // Num-Plus or +
6690         '+': 107, 'plus': 107,
6691         // Num-Subtract, or -
6692         '-': 109, subtract: 109,
6693         // Firefox Minus
6694         'ffplus': 171,
6695         // Firefox Minus
6696         'ffminus': 173,
6697         // Semicolon
6698         ';': 186, semicolon: 186,
6699         // = or equals
6700         '=': 187, 'equals': 187,
6701         // Comma, or ,
6702         ',': 188, comma: 188,
6703         'dash': 189, //???
6704         // Period, or ., or full-stop
6705         '.': 190, period: 190, 'full-stop': 190,
6706         // Slash, or /, or forward-slash
6707         '/': 191, slash: 191, 'forward-slash': 191,
6708         // Tick, or `, or back-quote
6709         '`': 192, tick: 192, 'back-quote': 192,
6710         // Open bracket, or [
6711         '[': 219, 'open-bracket': 219,
6712         // Back slash, or \
6713         '\\': 220, 'back-slash': 220,
6714         // Close backet, or ]
6715         ']': 221, 'close-bracket': 221,
6716         // Apostrophe, or Quote, or '
6717         '\'': 222, quote: 222, apostrophe: 222
6718     };
6719
6720     // NUMPAD 0-9
6721     var i = 95, n = 0;
6722     while (++i < 106) {
6723         d3.keybinding.keyCodes['num-' + n] = i;
6724         ++n;
6725     }
6726
6727     // 0-9
6728     i = 47; n = 0;
6729     while (++i < 58) {
6730         d3.keybinding.keyCodes[n] = i;
6731         ++n;
6732     }
6733
6734     // F1-F25
6735     i = 111; n = 1;
6736     while (++i < 136) {
6737         d3.keybinding.keyCodes['f' + n] = i;
6738         ++n;
6739     }
6740
6741     // a-z
6742     i = 64;
6743     while (++i < 91) {
6744         d3.keybinding.keyCodes[String.fromCharCode(i).toLowerCase()] = i;
6745     }
6746 })();
6747 d3.selection.prototype.one = function (type, listener, capture) {
6748     var target = this, typeOnce = type + ".once";
6749     function one() {
6750         target.on(typeOnce, null);
6751         listener.apply(this, arguments);
6752     }
6753     target.on(typeOnce, one, capture);
6754     return this;
6755 };
6756 d3.selection.prototype.dimensions = function (dimensions) {
6757     if (!arguments.length) {
6758         var node = this.node();
6759         return [node.offsetWidth,
6760                 node.offsetHeight];
6761     }
6762     return this.attr({width: dimensions[0], height: dimensions[1]});
6763 };
6764 d3.selection.prototype.trigger = function (type) {
6765     this.each(function() {
6766         var evt = document.createEvent('HTMLEvents');
6767         evt.initEvent(type, true, true);
6768         this.dispatchEvent(evt);
6769     });
6770 };
6771 d3.typeahead = function() {
6772     var event = d3.dispatch('accept'),
6773         autohighlight = false,
6774         data;
6775
6776     var typeahead = function(selection) {
6777         var container,
6778             hidden,
6779             idx = autohighlight ? 0 : -1;
6780
6781         function setup() {
6782             var rect = selection.node().getBoundingClientRect();
6783             container = d3.select(document.body)
6784                 .append('div').attr('class', 'typeahead')
6785                 .style({
6786                     position: 'absolute',
6787                     left: rect.left + 'px',
6788                     top: rect.bottom + 'px'
6789                 });
6790             selection
6791                 .on('keyup.typeahead', key);
6792             hidden = false;
6793         }
6794
6795         function hide() {
6796             container.remove();
6797             idx = autohighlight ? 0 : -1;
6798             hidden = true;
6799         }
6800
6801         function slowHide() {
6802             if (autohighlight) {
6803                 if (container.select('a.selected').node()) {
6804                     select(container.select('a.selected').datum());
6805                     event.accept();
6806                 }
6807             }
6808             window.setTimeout(hide, 150);
6809         }
6810
6811         selection
6812             .on('focus.typeahead', setup)
6813             .on('blur.typeahead', slowHide);
6814
6815         function key() {
6816            var len = container.selectAll('a').data().length;
6817            if (d3.event.keyCode === 40) {
6818                idx = Math.min(idx + 1, len - 1);
6819                return highlight();
6820            } else if (d3.event.keyCode === 38) {
6821                idx = Math.max(idx - 1, 0);
6822                return highlight();
6823            } else if (d3.event.keyCode === 13) {
6824                if (container.select('a.selected').node()) {
6825                    select(container.select('a.selected').datum());
6826                }
6827                event.accept();
6828                hide();
6829            } else {
6830                update();
6831            }
6832         }
6833
6834         function highlight() {
6835             container
6836                 .selectAll('a')
6837                 .classed('selected', function(d, i) { return i == idx; });
6838         }
6839
6840         function update() {
6841             if (hidden) setup();
6842
6843             data(selection, function(data) {
6844                 container.style('display', function() {
6845                     return data.length ? 'block' : 'none';
6846                 });
6847
6848                 var options = container
6849                     .selectAll('a')
6850                     .data(data, function(d) { return d.value; });
6851
6852                 options.enter()
6853                     .append('a')
6854                     .text(function(d) { return d.value; })
6855                     .attr('title', function(d) { return d.title; })
6856                     .on('click', select);
6857
6858                 options.exit().remove();
6859
6860                 options
6861                     .classed('selected', function(d, i) { return i == idx; });
6862             });
6863         }
6864
6865         function select(d) {
6866             selection
6867                 .property('value', d.value)
6868                 .trigger('change');
6869         }
6870
6871     };
6872
6873     typeahead.data = function(_) {
6874         if (!arguments.length) return data;
6875         data = _;
6876         return typeahead;
6877     };
6878
6879     typeahead.autohighlight = function(_) {
6880         if (!arguments.length) return autohighlight;
6881         autohighlight = _;
6882         return typeahead;
6883     };
6884
6885     return d3.rebind(typeahead, event, 'on');
6886 };
6887 // Tooltips and svg mask used to highlight certain features
6888 d3.curtain = function() {
6889
6890     var event = d3.dispatch(),
6891         surface,
6892         tooltip,
6893         darkness;
6894
6895     function curtain(selection) {
6896
6897         surface = selection.append('svg')
6898             .attr('id', 'curtain')
6899             .style({
6900                 'z-index': 1000,
6901                 'pointer-events': 'none',
6902                 'position': 'absolute',
6903                 'top': 0,
6904                 'left': 0
6905             });
6906
6907         darkness = surface.append('path')
6908             .attr({
6909                 x: 0,
6910                 y: 0,
6911                 'class': 'curtain-darkness'
6912             });
6913
6914         d3.select(window).on('resize.curtain', resize);
6915
6916         tooltip = selection.append('div')
6917             .attr('class', 'tooltip')
6918             .style('z-index', 1002);
6919
6920         tooltip.append('div').attr('class', 'tooltip-arrow');
6921         tooltip.append('div').attr('class', 'tooltip-inner');
6922
6923         resize();
6924
6925         function resize() {
6926             surface.attr({
6927                 width: window.innerWidth,
6928                 height: window.innerHeight
6929             });
6930             curtain.cut(darkness.datum());
6931         }
6932     }
6933
6934     curtain.reveal = function(box, text, tooltipclass, duration) {
6935         if (typeof box === 'string') box = d3.select(box).node();
6936         if (box.getBoundingClientRect) box = box.getBoundingClientRect();
6937
6938         curtain.cut(box, duration);
6939
6940         if (text) {
6941             // pseudo markdown bold text hack
6942             var parts = text.split('**');
6943             var html = parts[0] ? '<span>' + parts[0] + '</span>' : '';
6944             if (parts[1]) html += '<span class="bold">' + parts[1] + '</span>';
6945
6946             var dimensions = tooltip.classed('in', true)
6947                 .select('.tooltip-inner')
6948                     .html(html)
6949                     .dimensions();
6950
6951             var pos;
6952
6953             var w = window.innerWidth,
6954                 h = window.innerHeight;
6955
6956             if (box.top + box.height < Math.min(100, box.width + box.left)) {
6957                 side = 'bottom';
6958                 pos = [box.left + box.width / 2 - dimensions[0]/ 2, box.top + box.height];
6959
6960             } else if (box.left + box.width + 300 < window.innerWidth) {
6961                 side = 'right';
6962                 pos = [box.left + box.width, box.top + box.height / 2 - dimensions[1] / 2];
6963
6964             } else if (box.left > 300) {
6965                 side = 'left';
6966                 pos = [box.left - 200, box.top + box.height / 2 - dimensions[1] / 2];
6967             } else {
6968                 side = 'bottom';
6969                 pos = [box.left, box.top + box.height];
6970             }
6971
6972             pos = [
6973                 Math.min(Math.max(10, pos[0]), w - dimensions[0] - 10),
6974                 Math.min(Math.max(10, pos[1]), h - dimensions[1] - 10)
6975             ];
6976
6977
6978             if (duration !== 0 || !tooltip.classed(side)) tooltip.call(iD.ui.Toggle(true));
6979
6980             tooltip
6981                 .style('top', pos[1] + 'px')
6982                 .style('left', pos[0] + 'px')
6983                 .attr('class', 'curtain-tooltip tooltip in ' + side + ' ' + tooltipclass)
6984                 .select('.tooltip-inner')
6985                     .html(html);
6986
6987         } else {
6988             tooltip.call(iD.ui.Toggle(false));
6989         }
6990     };
6991
6992     curtain.cut = function(datum, duration) {
6993         darkness.datum(datum);
6994
6995         (duration === 0 ? darkness : darkness.transition().duration(duration || 600))
6996             .attr('d', function(d) {
6997                 var string = "M 0,0 L 0," + window.innerHeight + " L " +
6998                     window.innerWidth + "," + window.innerHeight + "L" +
6999                     window.innerWidth + ",0 Z";
7000
7001                 if (!d) return string;
7002                 return string + 'M' +
7003                     d.left + ',' + d.top + 'L' +
7004                     d.left + ',' + (d.top + d.height) + 'L' +
7005                     (d.left + d.width) + ',' + (d.top + d.height) + 'L' +
7006                     (d.left + d.width) + ',' + (d.top) + 'Z';
7007
7008             });
7009     };
7010
7011     curtain.remove = function() {
7012         surface.remove();
7013         tooltip.remove();
7014     };
7015
7016     return d3.rebind(curtain, event, 'on');
7017 };
7018 // Like selection.property('value', ...), but avoids no-op value sets,
7019 // which can result in layout/repaint thrashing in some situations.
7020 d3.selection.prototype.value = function(value) {
7021     function d3_selection_value(value) {
7022       function valueNull() {
7023         delete this.value;
7024       }
7025
7026       function valueConstant() {
7027         if (this.value !== value) this.value = value;
7028       }
7029
7030       function valueFunction() {
7031         var x = value.apply(this, arguments);
7032         if (x == null) delete this.value;
7033         else if (this.value !== x) this.value = x;
7034       }
7035
7036       return value == null
7037           ? valueNull : (typeof value === "function"
7038           ? valueFunction : valueConstant);
7039     }
7040
7041     if (!arguments.length) return this.property('value');
7042     return this.each(d3_selection_value(value));
7043 };
7044 // Copyright (c) 2006, 2008 Tony Garnock-Jones <tonyg@lshift.net>
7045 // Copyright (c) 2006, 2008 LShift Ltd. <query@lshift.net>
7046 //
7047 // Permission is hereby granted, free of charge, to any person
7048 // obtaining a copy of this software and associated documentation files
7049 // (the "Software"), to deal in the Software without restriction,
7050 // including without limitation the rights to use, copy, modify, merge,
7051 // publish, distribute, sublicense, and/or sell copies of the Software,
7052 // and to permit persons to whom the Software is furnished to do so,
7053 // subject to the following conditions:
7054 //
7055 // The above copyright notice and this permission notice shall be
7056 // included in all copies or substantial portions of the Software.
7057 //
7058 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
7059 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7060 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
7061 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
7062 // BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7063 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
7064 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
7065 // SOFTWARE.
7066
7067 // source:  https://bitbucket.org/lshift/synchrotron/src
7068
7069 Diff3 = (function() {
7070     'use strict';
7071
7072     var diff3 = {
7073         longest_common_subsequence: function(file1, file2) {
7074             /* Text diff algorithm following Hunt and McIlroy 1976.
7075              * J. W. Hunt and M. D. McIlroy, An algorithm for differential file
7076              * comparison, Bell Telephone Laboratories CSTR #41 (1976)
7077              * http://www.cs.dartmouth.edu/~doug/
7078              *
7079              * Expects two arrays of strings.
7080              */
7081             var equivalenceClasses;
7082             var file2indices;
7083             var newCandidate;
7084             var candidates;
7085             var line;
7086             var c, i, j, jX, r, s;
7087
7088             equivalenceClasses = {};
7089             for (j = 0; j < file2.length; j++) {
7090                 line = file2[j];
7091                 if (equivalenceClasses[line]) {
7092                     equivalenceClasses[line].push(j);
7093                 } else {
7094                     equivalenceClasses[line] = [j];
7095                 }
7096             }
7097
7098             candidates = [{file1index: -1,
7099                            file2index: -1,
7100                            chain: null}];
7101
7102             for (i = 0; i < file1.length; i++) {
7103                 line = file1[i];
7104                 file2indices = equivalenceClasses[line] || [];
7105
7106                 r = 0;
7107                 c = candidates[0];
7108
7109                 for (jX = 0; jX < file2indices.length; jX++) {
7110                     j = file2indices[jX];
7111
7112                     for (s = 0; s < candidates.length; s++) {
7113                         if ((candidates[s].file2index < j) &&
7114                             ((s == candidates.length - 1) ||
7115                              (candidates[s + 1].file2index > j)))
7116                             break;
7117                     }
7118
7119                     if (s < candidates.length) {
7120                         newCandidate = {file1index: i,
7121                                         file2index: j,
7122                                         chain: candidates[s]};
7123                         if (r == candidates.length) {
7124                             candidates.push(c);
7125                         } else {
7126                             candidates[r] = c;
7127                         }
7128                         r = s + 1;
7129                         c = newCandidate;
7130                         if (r == candidates.length) {
7131                             break; // no point in examining further (j)s
7132                         }
7133                     }
7134                 }
7135
7136                 candidates[r] = c;
7137             }
7138
7139             // At this point, we know the LCS: it's in the reverse of the
7140             // linked-list through .chain of
7141             // candidates[candidates.length - 1].
7142
7143             return candidates[candidates.length - 1];
7144         },
7145
7146         diff_comm: function(file1, file2) {
7147             // We apply the LCS to build a "comm"-style picture of the
7148             // differences between file1 and file2.
7149
7150             var result = [];
7151             var tail1 = file1.length;
7152             var tail2 = file2.length;
7153             var common = {common: []};
7154
7155             function processCommon() {
7156                 if (common.common.length) {
7157                     common.common.reverse();
7158                     result.push(common);
7159                     common = {common: []};
7160                 }
7161             }
7162
7163             for (var candidate = Diff3.longest_common_subsequence(file1, file2);
7164                  candidate !== null;
7165                  candidate = candidate.chain)
7166             {
7167                 var different = {file1: [], file2: []};
7168
7169                 while (--tail1 > candidate.file1index) {
7170                     different.file1.push(file1[tail1]);
7171                 }
7172
7173                 while (--tail2 > candidate.file2index) {
7174                     different.file2.push(file2[tail2]);
7175                 }
7176
7177                 if (different.file1.length || different.file2.length) {
7178                     processCommon();
7179                     different.file1.reverse();
7180                     different.file2.reverse();
7181                     result.push(different);
7182                 }
7183
7184                 if (tail1 >= 0) {
7185                     common.common.push(file1[tail1]);
7186                 }
7187             }
7188
7189             processCommon();
7190
7191             result.reverse();
7192             return result;
7193         },
7194
7195         diff_patch: function(file1, file2) {
7196             // We apply the LCD to build a JSON representation of a
7197             // diff(1)-style patch.
7198
7199             var result = [];
7200             var tail1 = file1.length;
7201             var tail2 = file2.length;
7202
7203             function chunkDescription(file, offset, length) {
7204                 var chunk = [];
7205                 for (var i = 0; i < length; i++) {
7206                     chunk.push(file[offset + i]);
7207                 }
7208                 return {offset: offset,
7209                         length: length,
7210                         chunk: chunk};
7211             }
7212
7213             for (var candidate = Diff3.longest_common_subsequence(file1, file2);
7214                  candidate !== null;
7215                  candidate = candidate.chain)
7216             {
7217                 var mismatchLength1 = tail1 - candidate.file1index - 1;
7218                 var mismatchLength2 = tail2 - candidate.file2index - 1;
7219                 tail1 = candidate.file1index;
7220                 tail2 = candidate.file2index;
7221
7222                 if (mismatchLength1 || mismatchLength2) {
7223                     result.push({file1: chunkDescription(file1,
7224                                                          candidate.file1index + 1,
7225                                                          mismatchLength1),
7226                                  file2: chunkDescription(file2,
7227                                                          candidate.file2index + 1,
7228                                                          mismatchLength2)});
7229                 }
7230             }
7231
7232             result.reverse();
7233             return result;
7234         },
7235
7236         strip_patch: function(patch) {
7237         // Takes the output of Diff3.diff_patch(), and removes
7238         // information from it. It can still be used by patch(),
7239         // below, but can no longer be inverted.
7240         var newpatch = [];
7241         for (var i = 0; i < patch.length; i++) {
7242             var chunk = patch[i];
7243             newpatch.push({file1: {offset: chunk.file1.offset,
7244                        length: chunk.file1.length},
7245                    file2: {chunk: chunk.file2.chunk}});
7246         }
7247         return newpatch;
7248         },
7249
7250         invert_patch: function(patch) {
7251             // Takes the output of Diff3.diff_patch(), and inverts the
7252             // sense of it, so that it can be applied to file2 to give
7253             // file1 rather than the other way around.
7254
7255             for (var i = 0; i < patch.length; i++) {
7256                 var chunk = patch[i];
7257                 var tmp = chunk.file1;
7258                 chunk.file1 = chunk.file2;
7259                 chunk.file2 = tmp;
7260             }
7261         },
7262
7263         patch: function (file, patch) {
7264             // Applies a patch to a file.
7265             //
7266             // Given file1 and file2, Diff3.patch(file1,
7267             // Diff3.diff_patch(file1, file2)) should give file2.
7268
7269             var result = [];
7270             var commonOffset = 0;
7271
7272             function copyCommon(targetOffset) {
7273                 while (commonOffset < targetOffset) {
7274                     result.push(file[commonOffset]);
7275                     commonOffset++;
7276                 }
7277             }
7278
7279             for (var chunkIndex = 0; chunkIndex < patch.length; chunkIndex++) {
7280                 var chunk = patch[chunkIndex];
7281                 copyCommon(chunk.file1.offset);
7282                 for (var lineIndex = 0; lineIndex < chunk.file2.chunk.length; lineIndex++) {
7283                     result.push(chunk.file2.chunk[lineIndex]);
7284                 }
7285                 commonOffset += chunk.file1.length;
7286             }
7287
7288             copyCommon(file.length);
7289             return result;
7290         },
7291
7292         diff_indices: function(file1, file2) {
7293             // We apply the LCS to give a simple representation of the
7294             // offsets and lengths of mismatched chunks in the input
7295             // files. This is used by diff3_merge_indices below.
7296
7297             var result = [];
7298             var tail1 = file1.length;
7299             var tail2 = file2.length;
7300
7301             for (var candidate = Diff3.longest_common_subsequence(file1, file2);
7302                  candidate !== null;
7303                  candidate = candidate.chain)
7304             {
7305                 var mismatchLength1 = tail1 - candidate.file1index - 1;
7306                 var mismatchLength2 = tail2 - candidate.file2index - 1;
7307                 tail1 = candidate.file1index;
7308                 tail2 = candidate.file2index;
7309
7310                 if (mismatchLength1 || mismatchLength2) {
7311                     result.push({file1: [tail1 + 1, mismatchLength1],
7312                                  file2: [tail2 + 1, mismatchLength2]});
7313                 }
7314             }
7315
7316             result.reverse();
7317             return result;
7318         },
7319
7320         diff3_merge_indices: function (a, o, b) {
7321             // Given three files, A, O, and B, where both A and B are
7322             // independently derived from O, returns a fairly complicated
7323             // internal representation of merge decisions it's taken. The
7324             // interested reader may wish to consult
7325             //
7326             // Sanjeev Khanna, Keshav Kunal, and Benjamin C. Pierce. "A
7327             // Formal Investigation of Diff3." In Arvind and Prasad,
7328             // editors, Foundations of Software Technology and Theoretical
7329             // Computer Science (FSTTCS), December 2007.
7330             //
7331             // (http://www.cis.upenn.edu/~bcpierce/papers/diff3-short.pdf)
7332             var i;
7333
7334             var m1 = Diff3.diff_indices(o, a);
7335             var m2 = Diff3.diff_indices(o, b);
7336
7337             var hunks = [];
7338             function addHunk(h, side) {
7339                 hunks.push([h.file1[0], side, h.file1[1], h.file2[0], h.file2[1]]);
7340             }
7341             for (i = 0; i < m1.length; i++) { addHunk(m1[i], 0); }
7342             for (i = 0; i < m2.length; i++) { addHunk(m2[i], 2); }
7343             hunks.sort();
7344
7345             var result = [];
7346             var commonOffset = 0;
7347             function copyCommon(targetOffset) {
7348                 if (targetOffset > commonOffset) {
7349                     result.push([1, commonOffset, targetOffset - commonOffset]);
7350                     commonOffset = targetOffset;
7351                 }
7352             }
7353
7354             for (var hunkIndex = 0; hunkIndex < hunks.length; hunkIndex++) {
7355                 var firstHunkIndex = hunkIndex;
7356                 var hunk = hunks[hunkIndex];
7357                 var regionLhs = hunk[0];
7358                 var regionRhs = regionLhs + hunk[2];
7359                 while (hunkIndex < hunks.length - 1) {
7360                     var maybeOverlapping = hunks[hunkIndex + 1];
7361                     var maybeLhs = maybeOverlapping[0];
7362                     if (maybeLhs > regionRhs) break;
7363                     regionRhs = maybeLhs + maybeOverlapping[2];
7364                     hunkIndex++;
7365                 }
7366
7367                 copyCommon(regionLhs);
7368                 if (firstHunkIndex == hunkIndex) {
7369             // The "overlap" was only one hunk long, meaning that
7370             // there's no conflict here. Either a and o were the
7371             // same, or b and o were the same.
7372                     if (hunk[4] > 0) {
7373                         result.push([hunk[1], hunk[3], hunk[4]]);
7374                     }
7375                 } else {
7376             // A proper conflict. Determine the extents of the
7377             // regions involved from a, o and b. Effectively merge
7378             // all the hunks on the left into one giant hunk, and
7379             // do the same for the right; then, correct for skew
7380             // in the regions of o that each side changed, and
7381             // report appropriate spans for the three sides.
7382             var regions = {
7383                 0: [a.length, -1, o.length, -1],
7384                 2: [b.length, -1, o.length, -1]
7385             };
7386                     for (i = firstHunkIndex; i <= hunkIndex; i++) {
7387                 hunk = hunks[i];
7388                         var side = hunk[1];
7389                 var r = regions[side];
7390                 var oLhs = hunk[0];
7391                 var oRhs = oLhs + hunk[2];
7392                         var abLhs = hunk[3];
7393                         var abRhs = abLhs + hunk[4];
7394                 r[0] = Math.min(abLhs, r[0]);
7395                 r[1] = Math.max(abRhs, r[1]);
7396                 r[2] = Math.min(oLhs, r[2]);
7397                 r[3] = Math.max(oRhs, r[3]);
7398                     }
7399             var aLhs = regions[0][0] + (regionLhs - regions[0][2]);
7400             var aRhs = regions[0][1] + (regionRhs - regions[0][3]);
7401             var bLhs = regions[2][0] + (regionLhs - regions[2][2]);
7402             var bRhs = regions[2][1] + (regionRhs - regions[2][3]);
7403                     result.push([-1,
7404                      aLhs,      aRhs      - aLhs,
7405                      regionLhs, regionRhs - regionLhs,
7406                      bLhs,      bRhs      - bLhs]);
7407                 }
7408                 commonOffset = regionRhs;
7409             }
7410
7411             copyCommon(o.length);
7412             return result;
7413         },
7414
7415         diff3_merge: function (a, o, b, excludeFalseConflicts) {
7416             // Applies the output of Diff3.diff3_merge_indices to actually
7417             // construct the merged file; the returned result alternates
7418             // between "ok" and "conflict" blocks.
7419
7420             var result = [];
7421             var files = [a, o, b];
7422             var indices = Diff3.diff3_merge_indices(a, o, b);
7423
7424             var okLines = [];
7425             function flushOk() {
7426                 if (okLines.length) {
7427                     result.push({ok: okLines});
7428                 }
7429                 okLines = [];
7430             }
7431             function pushOk(xs) {
7432                 for (var j = 0; j < xs.length; j++) {
7433                     okLines.push(xs[j]);
7434                 }
7435             }
7436
7437             function isTrueConflict(rec) {
7438                 if (rec[2] != rec[6]) return true;
7439                 var aoff = rec[1];
7440                 var boff = rec[5];
7441                 for (var j = 0; j < rec[2]; j++) {
7442                     if (a[j + aoff] != b[j + boff]) return true;
7443                 }
7444                 return false;
7445             }
7446
7447             for (var i = 0; i < indices.length; i++) {
7448                 var x = indices[i];
7449                 var side = x[0];
7450                 if (side == -1) {
7451                     if (excludeFalseConflicts && !isTrueConflict(x)) {
7452                         pushOk(files[0].slice(x[1], x[1] + x[2]));
7453                     } else {
7454                         flushOk();
7455                         result.push({conflict: {a: a.slice(x[1], x[1] + x[2]),
7456                                                 aIndex: x[1],
7457                                                 o: o.slice(x[3], x[3] + x[4]),
7458                                                 oIndex: x[3],
7459                                                 b: b.slice(x[5], x[5] + x[6]),
7460                                                 bIndex: x[5]}});
7461                     }
7462                 } else {
7463                     pushOk(files[side].slice(x[1], x[1] + x[2]));
7464                 }
7465             }
7466
7467             flushOk();
7468             return result;
7469         }
7470     };
7471     return diff3;
7472 })();
7473
7474 if (typeof module !== 'undefined') module.exports = Diff3;
7475 var JXON = new (function () {
7476   var
7477     sValueProp = "keyValue", sAttributesProp = "keyAttributes", sAttrPref = "@", /* you can customize these values */
7478     aCache = [], rIsNull = /^\s*$/, rIsBool = /^(?:true|false)$/i;
7479
7480   function parseText (sValue) {
7481     if (rIsNull.test(sValue)) { return null; }
7482     if (rIsBool.test(sValue)) { return sValue.toLowerCase() === "true"; }
7483     if (isFinite(sValue)) { return parseFloat(sValue); }
7484     if (isFinite(Date.parse(sValue))) { return new Date(sValue); }
7485     return sValue;
7486   }
7487
7488   function EmptyTree () { }
7489   EmptyTree.prototype.toString = function () { return "null"; };
7490   EmptyTree.prototype.valueOf = function () { return null; };
7491
7492   function objectify (vValue) {
7493     return vValue === null ? new EmptyTree() : vValue instanceof Object ? vValue : new vValue.constructor(vValue);
7494   }
7495
7496   function createObjTree (oParentNode, nVerb, bFreeze, bNesteAttr) {
7497     var
7498       nLevelStart = aCache.length, bChildren = oParentNode.hasChildNodes(),
7499       bAttributes = oParentNode.hasAttributes(), bHighVerb = Boolean(nVerb & 2);
7500
7501     var
7502       sProp, vContent, nLength = 0, sCollectedTxt = "",
7503       vResult = bHighVerb ? {} : /* put here the default value for empty nodes: */ true;
7504
7505     if (bChildren) {
7506       for (var oNode, nItem = 0; nItem < oParentNode.childNodes.length; nItem++) {
7507         oNode = oParentNode.childNodes.item(nItem);
7508         if (oNode.nodeType === 4) { sCollectedTxt += oNode.nodeValue; } /* nodeType is "CDATASection" (4) */
7509         else if (oNode.nodeType === 3) { sCollectedTxt += oNode.nodeValue.trim(); } /* nodeType is "Text" (3) */
7510         else if (oNode.nodeType === 1 && !oNode.prefix) { aCache.push(oNode); } /* nodeType is "Element" (1) */
7511       }
7512     }
7513
7514     var nLevelEnd = aCache.length, vBuiltVal = parseText(sCollectedTxt);
7515
7516     if (!bHighVerb && (bChildren || bAttributes)) { vResult = nVerb === 0 ? objectify(vBuiltVal) : {}; }
7517
7518     for (var nElId = nLevelStart; nElId < nLevelEnd; nElId++) {
7519       sProp = aCache[nElId].nodeName.toLowerCase();
7520       vContent = createObjTree(aCache[nElId], nVerb, bFreeze, bNesteAttr);
7521       if (vResult.hasOwnProperty(sProp)) {
7522         if (vResult[sProp].constructor !== Array) { vResult[sProp] = [vResult[sProp]]; }
7523         vResult[sProp].push(vContent);
7524       } else {
7525         vResult[sProp] = vContent;
7526         nLength++;
7527       }
7528     }
7529
7530     if (bAttributes) {
7531       var
7532         nAttrLen = oParentNode.attributes.length,
7533         sAPrefix = bNesteAttr ? "" : sAttrPref, oAttrParent = bNesteAttr ? {} : vResult;
7534
7535       for (var oAttrib, nAttrib = 0; nAttrib < nAttrLen; nLength++, nAttrib++) {
7536         oAttrib = oParentNode.attributes.item(nAttrib);
7537         oAttrParent[sAPrefix + oAttrib.name.toLowerCase()] = parseText(oAttrib.value.trim());
7538       }
7539
7540       if (bNesteAttr) {
7541         if (bFreeze) { Object.freeze(oAttrParent); }
7542         vResult[sAttributesProp] = oAttrParent;
7543         nLength -= nAttrLen - 1;
7544       }
7545     }
7546
7547     if (nVerb === 3 || (nVerb === 2 || nVerb === 1 && nLength > 0) && sCollectedTxt) {
7548       vResult[sValueProp] = vBuiltVal;
7549     } else if (!bHighVerb && nLength === 0 && sCollectedTxt) {
7550       vResult = vBuiltVal;
7551     }
7552
7553     if (bFreeze && (bHighVerb || nLength > 0)) { Object.freeze(vResult); }
7554
7555     aCache.length = nLevelStart;
7556
7557     return vResult;
7558   }
7559
7560   function loadObjTree (oXMLDoc, oParentEl, oParentObj) {
7561     var vValue, oChild;
7562
7563     if (oParentObj instanceof String || oParentObj instanceof Number || oParentObj instanceof Boolean) {
7564       oParentEl.appendChild(oXMLDoc.createTextNode(oParentObj.toString())); /* verbosity level is 0 */
7565     } else if (oParentObj.constructor === Date) {
7566       oParentEl.appendChild(oXMLDoc.createTextNode(oParentObj.toGMTString()));    
7567     }
7568
7569     for (var sName in oParentObj) {
7570       vValue = oParentObj[sName];
7571       if (isFinite(sName) || vValue instanceof Function) { continue; } /* verbosity level is 0 */
7572       if (sName === sValueProp) {
7573         if (vValue !== null && vValue !== true) { oParentEl.appendChild(oXMLDoc.createTextNode(vValue.constructor === Date ? vValue.toGMTString() : String(vValue))); }
7574       } else if (sName === sAttributesProp) { /* verbosity level is 3 */
7575         for (var sAttrib in vValue) { oParentEl.setAttribute(sAttrib, vValue[sAttrib]); }
7576       } else if (sName.charAt(0) === sAttrPref) {
7577         oParentEl.setAttribute(sName.slice(1), vValue);
7578       } else if (vValue.constructor === Array) {
7579         for (var nItem = 0; nItem < vValue.length; nItem++) {
7580           oChild = oXMLDoc.createElement(sName);
7581           loadObjTree(oXMLDoc, oChild, vValue[nItem]);
7582           oParentEl.appendChild(oChild);
7583         }
7584       } else {
7585         oChild = oXMLDoc.createElement(sName);
7586         if (vValue instanceof Object) {
7587           loadObjTree(oXMLDoc, oChild, vValue);
7588         } else if (vValue !== null && vValue !== true) {
7589           oChild.appendChild(oXMLDoc.createTextNode(vValue.toString()));
7590         }
7591         oParentEl.appendChild(oChild);
7592      }
7593    }
7594   }
7595
7596   this.build = function (oXMLParent, nVerbosity /* optional */, bFreeze /* optional */, bNesteAttributes /* optional */) {
7597     var _nVerb = arguments.length > 1 && typeof nVerbosity === "number" ? nVerbosity & 3 : /* put here the default verbosity level: */ 1;
7598     return createObjTree(oXMLParent, _nVerb, bFreeze || false, arguments.length > 3 ? bNesteAttributes : _nVerb === 3);    
7599   };
7600
7601   this.unbuild = function (oObjTree) {    
7602     var oNewDoc = document.implementation.createDocument("", "", null);
7603     loadObjTree(oNewDoc, oNewDoc, oObjTree);
7604     return oNewDoc;
7605   };
7606
7607   this.stringify = function (oObjTree) {
7608     return (new XMLSerializer()).serializeToString(JXON.unbuild(oObjTree));
7609   };
7610 })();
7611 // var myObject = JXON.build(doc);
7612 // we got our javascript object! try: alert(JSON.stringify(myObject));
7613
7614 // var newDoc = JXON.unbuild(myObject);
7615 // we got our Document instance! try: alert((new XMLSerializer()).serializeToString(newDoc));
7616 /**
7617  * @license
7618  * Lo-Dash 2.3.0 (Custom Build) <http://lodash.com/>
7619  * Build: `lodash --debug --output js/lib/lodash.js include="any,assign,bind,clone,compact,contains,debounce,difference,each,every,extend,filter,find,first,forEach,groupBy,indexOf,intersection,isEmpty,isEqual,isFunction,keys,last,map,omit,pairs,pluck,reject,some,throttle,union,uniq,unique,values,without,flatten,value,chain,cloneDeep,merge,pick,reduce" exports="global,node"`
7620  * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
7621  * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
7622  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
7623  * Available under MIT license <http://lodash.com/license>
7624  */
7625 ;(function() {
7626
7627   /** Used as a safe reference for `undefined` in pre ES5 environments */
7628   var undefined;
7629
7630   /** Used to pool arrays and objects used internally */
7631   var arrayPool = [],
7632       objectPool = [];
7633
7634   /** Used internally to indicate various things */
7635   var indicatorObject = {};
7636
7637   /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
7638   var keyPrefix = +new Date + '';
7639
7640   /** Used as the size when optimizations are enabled for large arrays */
7641   var largeArraySize = 75;
7642
7643   /** Used as the max size of the `arrayPool` and `objectPool` */
7644   var maxPoolSize = 40;
7645
7646   /** Used to match regexp flags from their coerced string values */
7647   var reFlags = /\w*$/;
7648
7649   /** Used to detected named functions */
7650   var reFuncName = /^\s*function[ \n\r\t]+\w/;
7651
7652   /** Used to detect functions containing a `this` reference */
7653   var reThis = /\bthis\b/;
7654
7655   /** Used to fix the JScript [[DontEnum]] bug */
7656   var shadowedProps = [
7657     'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',
7658     'toLocaleString', 'toString', 'valueOf'
7659   ];
7660
7661   /** `Object#toString` result shortcuts */
7662   var argsClass = '[object Arguments]',
7663       arrayClass = '[object Array]',
7664       boolClass = '[object Boolean]',
7665       dateClass = '[object Date]',
7666       errorClass = '[object Error]',
7667       funcClass = '[object Function]',
7668       numberClass = '[object Number]',
7669       objectClass = '[object Object]',
7670       regexpClass = '[object RegExp]',
7671       stringClass = '[object String]';
7672
7673   /** Used to identify object classifications that `_.clone` supports */
7674   var cloneableClasses = {};
7675   cloneableClasses[funcClass] = false;
7676   cloneableClasses[argsClass] = cloneableClasses[arrayClass] =
7677   cloneableClasses[boolClass] = cloneableClasses[dateClass] =
7678   cloneableClasses[numberClass] = cloneableClasses[objectClass] =
7679   cloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;
7680
7681   /** Used as an internal `_.debounce` options object */
7682   var debounceOptions = {
7683     'leading': false,
7684     'maxWait': 0,
7685     'trailing': false
7686   };
7687
7688   /** Used as the property descriptor for `__bindData__` */
7689   var descriptor = {
7690     'configurable': false,
7691     'enumerable': false,
7692     'value': null,
7693     'writable': false
7694   };
7695
7696   /** Used as the data object for `iteratorTemplate` */
7697   var iteratorData = {
7698     'args': '',
7699     'array': null,
7700     'bottom': '',
7701     'firstArg': '',
7702     'init': '',
7703     'keys': null,
7704     'loop': '',
7705     'shadowedProps': null,
7706     'support': null,
7707     'top': '',
7708     'useHas': false
7709   };
7710
7711   /** Used to determine if values are of the language type Object */
7712   var objectTypes = {
7713     'boolean': false,
7714     'function': true,
7715     'object': true,
7716     'number': false,
7717     'string': false,
7718     'undefined': false
7719   };
7720
7721   /** Used as a reference to the global object */
7722   var root = (objectTypes[typeof window] && window) || this;
7723
7724   /** Detect free variable `exports` */
7725   var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;
7726
7727   /** Detect free variable `module` */
7728   var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;
7729
7730   /** Detect the popular CommonJS extension `module.exports` */
7731   var moduleExports = freeModule && freeModule.exports === freeExports && freeExports;
7732
7733   /** Detect free variable `global` from Node.js or Browserified code and use it as `root` */
7734   var freeGlobal = objectTypes[typeof global] && global;
7735   if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {
7736     root = freeGlobal;
7737   }
7738
7739   /*--------------------------------------------------------------------------*/
7740
7741   /**
7742    * The base implementation of `_.indexOf` without support for binary searches
7743    * or `fromIndex` constraints.
7744    *
7745    * @private
7746    * @param {Array} array The array to search.
7747    * @param {*} value The value to search for.
7748    * @param {number} [fromIndex=0] The index to search from.
7749    * @returns {number} Returns the index of the matched value or `-1`.
7750    */
7751   function baseIndexOf(array, value, fromIndex) {
7752     var index = (fromIndex || 0) - 1,
7753         length = array ? array.length : 0;
7754
7755     while (++index < length) {
7756       if (array[index] === value) {
7757         return index;
7758       }
7759     }
7760     return -1;
7761   }
7762
7763   /**
7764    * An implementation of `_.contains` for cache objects that mimics the return
7765    * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.
7766    *
7767    * @private
7768    * @param {Object} cache The cache object to inspect.
7769    * @param {*} value The value to search for.
7770    * @returns {number} Returns `0` if `value` is found, else `-1`.
7771    */
7772   function cacheIndexOf(cache, value) {
7773     var type = typeof value;
7774     cache = cache.cache;
7775
7776     if (type == 'boolean' || value == null) {
7777       return cache[value] ? 0 : -1;
7778     }
7779     if (type != 'number' && type != 'string') {
7780       type = 'object';
7781     }
7782     var key = type == 'number' ? value : keyPrefix + value;
7783     cache = (cache = cache[type]) && cache[key];
7784
7785     return type == 'object'
7786       ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)
7787       : (cache ? 0 : -1);
7788   }
7789
7790   /**
7791    * Adds a given value to the corresponding cache object.
7792    *
7793    * @private
7794    * @param {*} value The value to add to the cache.
7795    */
7796   function cachePush(value) {
7797     var cache = this.cache,
7798         type = typeof value;
7799
7800     if (type == 'boolean' || value == null) {
7801       cache[value] = true;
7802     } else {
7803       if (type != 'number' && type != 'string') {
7804         type = 'object';
7805       }
7806       var key = type == 'number' ? value : keyPrefix + value,
7807           typeCache = cache[type] || (cache[type] = {});
7808
7809       if (type == 'object') {
7810         (typeCache[key] || (typeCache[key] = [])).push(value);
7811       } else {
7812         typeCache[key] = true;
7813       }
7814     }
7815   }
7816
7817   /**
7818    * Creates a cache object to optimize linear searches of large arrays.
7819    *
7820    * @private
7821    * @param {Array} [array=[]] The array to search.
7822    * @returns {null|Object} Returns the cache object or `null` if caching should not be used.
7823    */
7824   function createCache(array) {
7825     var index = -1,
7826         length = array.length,
7827         first = array[0],
7828         mid = array[(length / 2) | 0],
7829         last = array[length - 1];
7830
7831     if (first && typeof first == 'object' &&
7832         mid && typeof mid == 'object' && last && typeof last == 'object') {
7833       return false;
7834     }
7835     var cache = getObject();
7836     cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;
7837
7838     var result = getObject();
7839     result.array = array;
7840     result.cache = cache;
7841     result.push = cachePush;
7842
7843     while (++index < length) {
7844       result.push(array[index]);
7845     }
7846     return result;
7847   }
7848
7849   /**
7850    * Gets an array from the array pool or creates a new one if the pool is empty.
7851    *
7852    * @private
7853    * @returns {Array} The array from the pool.
7854    */
7855   function getArray() {
7856     return arrayPool.pop() || [];
7857   }
7858
7859   /**
7860    * Gets an object from the object pool or creates a new one if the pool is empty.
7861    *
7862    * @private
7863    * @returns {Object} The object from the pool.
7864    */
7865   function getObject() {
7866     return objectPool.pop() || {
7867       'array': null,
7868       'cache': null,
7869       'false': false,
7870       'null': false,
7871       'number': null,
7872       'object': null,
7873       'push': null,
7874       'string': null,
7875       'true': false,
7876       'undefined': false
7877     };
7878   }
7879
7880   /**
7881    * Checks if `value` is a DOM node in IE < 9.
7882    *
7883    * @private
7884    * @param {*} value The value to check.
7885    * @returns {boolean} Returns `true` if the `value` is a DOM node, else `false`.
7886    */
7887   function isNode(value) {
7888     // IE < 9 presents DOM nodes as `Object` objects except they have `toString`
7889     // methods that are `typeof` "string" and still can coerce nodes to strings
7890     return typeof value.toString != 'function' && typeof (value + '') == 'string';
7891   }
7892
7893   /**
7894    * Releases the given array back to the array pool.
7895    *
7896    * @private
7897    * @param {Array} [array] The array to release.
7898    */
7899   function releaseArray(array) {
7900     array.length = 0;
7901     if (arrayPool.length < maxPoolSize) {
7902       arrayPool.push(array);
7903     }
7904   }
7905
7906   /**
7907    * Releases the given object back to the object pool.
7908    *
7909    * @private
7910    * @param {Object} [object] The object to release.
7911    */
7912   function releaseObject(object) {
7913     var cache = object.cache;
7914     if (cache) {
7915       releaseObject(cache);
7916     }
7917     object.array = object.cache =object.object = object.number = object.string =null;
7918     if (objectPool.length < maxPoolSize) {
7919       objectPool.push(object);
7920     }
7921   }
7922
7923   /**
7924    * Slices the `collection` from the `start` index up to, but not including,
7925    * the `end` index.
7926    *
7927    * Note: This function is used instead of `Array#slice` to support node lists
7928    * in IE < 9 and to ensure dense arrays are returned.
7929    *
7930    * @private
7931    * @param {Array|Object|string} collection The collection to slice.
7932    * @param {number} start The start index.
7933    * @param {number} end The end index.
7934    * @returns {Array} Returns the new array.
7935    */
7936   function slice(array, start, end) {
7937     start || (start = 0);
7938     if (typeof end == 'undefined') {
7939       end = array ? array.length : 0;
7940     }
7941     var index = -1,
7942         length = end - start || 0,
7943         result = Array(length < 0 ? 0 : length);
7944
7945     while (++index < length) {
7946       result[index] = array[start + index];
7947     }
7948     return result;
7949   }
7950
7951   /*--------------------------------------------------------------------------*/
7952
7953   /**
7954    * Used for `Array` method references.
7955    *
7956    * Normally `Array.prototype` would suffice, however, using an array literal
7957    * avoids issues in Narwhal.
7958    */
7959   var arrayRef = [];
7960
7961   /** Used for native method references */
7962   var errorProto = Error.prototype,
7963       objectProto = Object.prototype,
7964       stringProto = String.prototype;
7965
7966   /** Used to resolve the internal [[Class]] of values */
7967   var toString = objectProto.toString;
7968
7969   /** Used to detect if a method is native */
7970   var reNative = RegExp('^' +
7971     String(toString)
7972       .replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
7973       .replace(/toString| for [^\]]+/g, '.*?') + '$'
7974   );
7975
7976   /** Native method shortcuts */
7977   var fnToString = Function.prototype.toString,
7978       getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,
7979       hasOwnProperty = objectProto.hasOwnProperty,
7980       now = reNative.test(now = Date.now) && now || function() { return +new Date; },
7981       push = arrayRef.push,
7982       propertyIsEnumerable = objectProto.propertyIsEnumerable;
7983
7984   /** Used to set meta data on functions */
7985   var defineProperty = (function() {
7986     // IE 8 only accepts DOM elements
7987     try {
7988       var o = {},
7989           func = reNative.test(func = Object.defineProperty) && func,
7990           result = func(o, o, o) && func;
7991     } catch(e) { }
7992     return result;
7993   }());
7994
7995   /* Native method shortcuts for methods with the same name as other `lodash` methods */
7996   var nativeCreate = reNative.test(nativeCreate = Object.create) && nativeCreate,
7997       nativeIsArray = reNative.test(nativeIsArray = Array.isArray) && nativeIsArray,
7998       nativeKeys = reNative.test(nativeKeys = Object.keys) && nativeKeys,
7999       nativeMax = Math.max,
8000       nativeMin = Math.min;
8001
8002   /** Used to lookup a built-in constructor by [[Class]] */
8003   var ctorByClass = {};
8004   ctorByClass[arrayClass] = Array;
8005   ctorByClass[boolClass] = Boolean;
8006   ctorByClass[dateClass] = Date;
8007   ctorByClass[funcClass] = Function;
8008   ctorByClass[objectClass] = Object;
8009   ctorByClass[numberClass] = Number;
8010   ctorByClass[regexpClass] = RegExp;
8011   ctorByClass[stringClass] = String;
8012
8013   /** Used to avoid iterating non-enumerable properties in IE < 9 */
8014   var nonEnumProps = {};
8015   nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };
8016   nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true };
8017   nonEnumProps[errorClass] = nonEnumProps[funcClass] = nonEnumProps[regexpClass] = { 'constructor': true, 'toString': true };
8018   nonEnumProps[objectClass] = { 'constructor': true };
8019
8020   (function() {
8021     var length = shadowedProps.length;
8022     while (length--) {
8023       var key = shadowedProps[length];
8024       for (var className in nonEnumProps) {
8025         if (hasOwnProperty.call(nonEnumProps, className) && !hasOwnProperty.call(nonEnumProps[className], key)) {
8026           nonEnumProps[className][key] = false;
8027         }
8028       }
8029     }
8030   }());
8031
8032   /*--------------------------------------------------------------------------*/
8033
8034   /**
8035    * Creates a `lodash` object which wraps the given value to enable intuitive
8036    * method chaining.
8037    *
8038    * In addition to Lo-Dash methods, wrappers also have the following `Array` methods:
8039    * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`,
8040    * and `unshift`
8041    *
8042    * Chaining is supported in custom builds as long as the `value` method is
8043    * implicitly or explicitly included in the build.
8044    *
8045    * The chainable wrapper functions are:
8046    * `after`, `assign`, `bind`, `bindAll`, `bindKey`, `chain`, `compact`,
8047    * `compose`, `concat`, `countBy`, `create`, `createCallback`, `curry`,
8048    * `debounce`, `defaults`, `defer`, `delay`, `difference`, `filter`, `flatten`,
8049    * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
8050    * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`,
8051    * `invoke`, `keys`, `map`, `max`, `memoize`, `merge`, `min`, `object`, `omit`,
8052    * `once`, `pairs`, `partial`, `partialRight`, `pick`, `pluck`, `pull`, `push`,
8053    * `range`, `reject`, `remove`, `rest`, `reverse`, `shuffle`, `slice`, `sort`,
8054    * `sortBy`, `splice`, `tap`, `throttle`, `times`, `toArray`, `transform`,
8055    * `union`, `uniq`, `unshift`, `unzip`, `values`, `where`, `without`, `wrap`,
8056    * and `zip`
8057    *
8058    * The non-chainable wrapper functions are:
8059    * `clone`, `cloneDeep`, `contains`, `escape`, `every`, `find`, `findIndex`,
8060    * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `has`, `identity`,
8061    * `indexOf`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`,
8062    * `isEmpty`, `isEqual`, `isFinite`, `isFunction`, `isNaN`, `isNull`, `isNumber`,
8063    * `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, `join`,
8064    * `lastIndexOf`, `mixin`, `noConflict`, `parseInt`, `pop`, `random`, `reduce`,
8065    * `reduceRight`, `result`, `shift`, `size`, `some`, `sortedIndex`, `runInContext`,
8066    * `template`, `unescape`, `uniqueId`, and `value`
8067    *
8068    * The wrapper functions `first` and `last` return wrapped values when `n` is
8069    * provided, otherwise they return unwrapped values.
8070    *
8071    * Explicit chaining can be enabled by using the `_.chain` method.
8072    *
8073    * @name _
8074    * @constructor
8075    * @category Chaining
8076    * @param {*} value The value to wrap in a `lodash` instance.
8077    * @returns {Object} Returns a `lodash` instance.
8078    * @example
8079    *
8080    * var wrapped = _([1, 2, 3]);
8081    *
8082    * // returns an unwrapped value
8083    * wrapped.reduce(function(sum, num) {
8084    *   return sum + num;
8085    * });
8086    * // => 6
8087    *
8088    * // returns a wrapped value
8089    * var squares = wrapped.map(function(num) {
8090    *   return num * num;
8091    * });
8092    *
8093    * _.isArray(squares);
8094    * // => false
8095    *
8096    * _.isArray(squares.value());
8097    * // => true
8098    */
8099   function lodash(value) {
8100     // don't wrap if already wrapped, even if wrapped by a different `lodash` constructor
8101     return (value && typeof value == 'object' && !isArray(value) && hasOwnProperty.call(value, '__wrapped__'))
8102      ? value
8103      : new lodashWrapper(value);
8104   }
8105
8106   /**
8107    * A fast path for creating `lodash` wrapper objects.
8108    *
8109    * @private
8110    * @param {*} value The value to wrap in a `lodash` instance.
8111    * @param {boolean} chainAll A flag to enable chaining for all methods
8112    * @returns {Object} Returns a `lodash` instance.
8113    */
8114   function lodashWrapper(value, chainAll) {
8115     this.__chain__ = !!chainAll;
8116     this.__wrapped__ = value;
8117   }
8118   // ensure `new lodashWrapper` is an instance of `lodash`
8119   lodashWrapper.prototype = lodash.prototype;
8120
8121   /**
8122    * An object used to flag environments features.
8123    *
8124    * @static
8125    * @memberOf _
8126    * @type Object
8127    */
8128   var support = lodash.support = {};
8129
8130   (function() {
8131     var ctor = function() { this.x = 1; },
8132         object = { '0': 1, 'length': 1 },
8133         props = [];
8134
8135     ctor.prototype = { 'valueOf': 1, 'y': 1 };
8136     for (var key in new ctor) { props.push(key); }
8137     for (key in arguments) { }
8138
8139     /**
8140      * Detect if an `arguments` object's [[Class]] is resolvable (all but Firefox < 4, IE < 9).
8141      *
8142      * @memberOf _.support
8143      * @type boolean
8144      */
8145     support.argsClass = toString.call(arguments) == argsClass;
8146
8147     /**
8148      * Detect if `arguments` objects are `Object` objects (all but Narwhal and Opera < 10.5).
8149      *
8150      * @memberOf _.support
8151      * @type boolean
8152      */
8153     support.argsObject = arguments.constructor == Object && !(arguments instanceof Array);
8154
8155     /**
8156      * Detect if `name` or `message` properties of `Error.prototype` are
8157      * enumerable by default. (IE < 9, Safari < 5.1)
8158      *
8159      * @memberOf _.support
8160      * @type boolean
8161      */
8162     support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || propertyIsEnumerable.call(errorProto, 'name');
8163
8164     /**
8165      * Detect if `prototype` properties are enumerable by default.
8166      *
8167      * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1
8168      * (if the prototype or a property on the prototype has been set)
8169      * incorrectly sets a function's `prototype` property [[Enumerable]]
8170      * value to `true`.
8171      *
8172      * @memberOf _.support
8173      * @type boolean
8174      */
8175     support.enumPrototypes = propertyIsEnumerable.call(ctor, 'prototype');
8176
8177     /**
8178      * Detect if functions can be decompiled by `Function#toString`
8179      * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).
8180      *
8181      * @memberOf _.support
8182      * @type boolean
8183      */
8184     support.funcDecomp = !reNative.test(root.WinRTError) && reThis.test(function() { return this; });
8185
8186     /**
8187      * Detect if `Function#name` is supported (all but IE).
8188      *
8189      * @memberOf _.support
8190      * @type boolean
8191      */
8192     support.funcNames = typeof Function.name == 'string';
8193
8194     /**
8195      * Detect if `arguments` object indexes are non-enumerable
8196      * (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1).
8197      *
8198      * @memberOf _.support
8199      * @type boolean
8200      */
8201     support.nonEnumArgs = key != 0;
8202
8203     /**
8204      * Detect if properties shadowing those on `Object.prototype` are non-enumerable.
8205      *
8206      * In IE < 9 an objects own properties, shadowing non-enumerable ones, are
8207      * made non-enumerable as well (a.k.a the JScript [[DontEnum]] bug).
8208      *
8209      * @memberOf _.support
8210      * @type boolean
8211      */
8212     support.nonEnumShadows = !/valueOf/.test(props);
8213
8214     /**
8215      * Detect if own properties are iterated after inherited properties (all but IE < 9).
8216      *
8217      * @memberOf _.support
8218      * @type boolean
8219      */
8220     support.ownLast = props[0] != 'x';
8221
8222     /**
8223      * Detect if `Array#shift` and `Array#splice` augment array-like objects correctly.
8224      *
8225      * Firefox < 10, IE compatibility mode, and IE < 9 have buggy Array `shift()`
8226      * and `splice()` functions that fail to remove the last element, `value[0]`,
8227      * of array-like objects even though the `length` property is set to `0`.
8228      * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()`
8229      * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9.
8230      *
8231      * @memberOf _.support
8232      * @type boolean
8233      */
8234     support.spliceObjects = (arrayRef.splice.call(object, 0, 1), !object[0]);
8235
8236     /**
8237      * Detect lack of support for accessing string characters by index.
8238      *
8239      * IE < 8 can't access characters by index and IE 8 can only access
8240      * characters by index on string literals.
8241      *
8242      * @memberOf _.support
8243      * @type boolean
8244      */
8245     support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';
8246
8247     /**
8248      * Detect if a DOM node's [[Class]] is resolvable (all but IE < 9)
8249      * and that the JS engine errors when attempting to coerce an object to
8250      * a string without a `toString` function.
8251      *
8252      * @memberOf _.support
8253      * @type boolean
8254      */
8255     try {
8256       support.nodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + ''));
8257     } catch(e) {
8258       support.nodeClass = true;
8259     }
8260   }(1));
8261
8262   /*--------------------------------------------------------------------------*/
8263
8264   /**
8265    * The template used to create iterator functions.
8266    *
8267    * @private
8268    * @param {Object} data The data object used to populate the text.
8269    * @returns {string} Returns the interpolated text.
8270    */
8271   var iteratorTemplate = function(obj) {
8272
8273     var __p = 'var index, iterable = ' +
8274     (obj.firstArg) +
8275     ', result = ' +
8276     (obj.init) +
8277     ';\nif (!iterable) return result;\n' +
8278     (obj.top) +
8279     ';';
8280      if (obj.array) {
8281     __p += '\nvar length = iterable.length; index = -1;\nif (' +
8282     (obj.array) +
8283     ') {  ';
8284      if (support.unindexedChars) {
8285     __p += '\n  if (isString(iterable)) {\n    iterable = iterable.split(\'\')\n  }  ';
8286      }
8287     __p += '\n  while (++index < length) {\n    ' +
8288     (obj.loop) +
8289     ';\n  }\n}\nelse {  ';
8290      } else if (support.nonEnumArgs) {
8291     __p += '\n  var length = iterable.length; index = -1;\n  if (length && isArguments(iterable)) {\n    while (++index < length) {\n      index += \'\';\n      ' +
8292     (obj.loop) +
8293     ';\n    }\n  } else {  ';
8294      }
8295
8296      if (support.enumPrototypes) {
8297     __p += '\n  var skipProto = typeof iterable == \'function\';\n  ';
8298      }
8299
8300      if (support.enumErrorProps) {
8301     __p += '\n  var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n  ';
8302      }
8303
8304         var conditions = [];    if (support.enumPrototypes) { conditions.push('!(skipProto && index == "prototype")'); }    if (support.enumErrorProps)  { conditions.push('!(skipErrorProps && (index == "message" || index == "name"))'); }
8305
8306      if (obj.useHas && obj.keys) {
8307     __p += '\n  var ownIndex = -1,\n      ownProps = objectTypes[typeof iterable] && keys(iterable),\n      length = ownProps ? ownProps.length : 0;\n\n  while (++ownIndex < length) {\n    index = ownProps[ownIndex];\n';
8308         if (conditions.length) {
8309     __p += '    if (' +
8310     (conditions.join(' && ')) +
8311     ') {\n  ';
8312      }
8313     __p +=
8314     (obj.loop) +
8315     ';    ';
8316      if (conditions.length) {
8317     __p += '\n    }';
8318      }
8319     __p += '\n  }  ';
8320      } else {
8321     __p += '\n  for (index in iterable) {\n';
8322         if (obj.useHas) { conditions.push("hasOwnProperty.call(iterable, index)"); }    if (conditions.length) {
8323     __p += '    if (' +
8324     (conditions.join(' && ')) +
8325     ') {\n  ';
8326      }
8327     __p +=
8328     (obj.loop) +
8329     ';    ';
8330      if (conditions.length) {
8331     __p += '\n    }';
8332      }
8333     __p += '\n  }    ';
8334      if (support.nonEnumShadows) {
8335     __p += '\n\n  if (iterable !== objectProto) {\n    var ctor = iterable.constructor,\n        isProto = iterable === (ctor && ctor.prototype),\n        className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n        nonEnum = nonEnumProps[className];\n      ';
8336      for (k = 0; k < 7; k++) {
8337     __p += '\n    index = \'' +
8338     (obj.shadowedProps[k]) +
8339     '\';\n    if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))';
8340             if (!obj.useHas) {
8341     __p += ' || (!nonEnum[index] && iterable[index] !== objectProto[index])';
8342      }
8343     __p += ') {\n      ' +
8344     (obj.loop) +
8345     ';\n    }      ';
8346      }
8347     __p += '\n  }    ';
8348      }
8349
8350      }
8351
8352      if (obj.array || support.nonEnumArgs) {
8353     __p += '\n}';
8354      }
8355     __p +=
8356     (obj.bottom) +
8357     ';\nreturn result';
8358
8359     return __p
8360   };
8361
8362   /*--------------------------------------------------------------------------*/
8363
8364   /**
8365    * The base implementation of `_.bind` that creates the bound function and
8366    * sets its meta data.
8367    *
8368    * @private
8369    * @param {Array} bindData The bind data array.
8370    * @returns {Function} Returns the new bound function.
8371    */
8372   function baseBind(bindData) {
8373     var func = bindData[0],
8374         partialArgs = bindData[2],
8375         thisArg = bindData[4];
8376
8377     function bound() {
8378       // `Function#bind` spec
8379       // http://es5.github.io/#x15.3.4.5
8380       if (partialArgs) {
8381         var args = partialArgs.slice();
8382         push.apply(args, arguments);
8383       }
8384       // mimic the constructor's `return` behavior
8385       // http://es5.github.io/#x13.2.2
8386       if (this instanceof bound) {
8387         // ensure `new bound` is an instance of `func`
8388         var thisBinding = baseCreate(func.prototype),
8389             result = func.apply(thisBinding, args || arguments);
8390         return isObject(result) ? result : thisBinding;
8391       }
8392       return func.apply(thisArg, args || arguments);
8393     }
8394     setBindData(bound, bindData);
8395     return bound;
8396   }
8397
8398   /**
8399    * The base implementation of `_.clone` without argument juggling or support
8400    * for `thisArg` binding.
8401    *
8402    * @private
8403    * @param {*} value The value to clone.
8404    * @param {boolean} [isDeep=false] Specify a deep clone.
8405    * @param {Function} [callback] The function to customize cloning values.
8406    * @param {Array} [stackA=[]] Tracks traversed source objects.
8407    * @param {Array} [stackB=[]] Associates clones with source counterparts.
8408    * @returns {*} Returns the cloned value.
8409    */
8410   function baseClone(value, isDeep, callback, stackA, stackB) {
8411     if (callback) {
8412       var result = callback(value);
8413       if (typeof result != 'undefined') {
8414         return result;
8415       }
8416     }
8417     // inspect [[Class]]
8418     var isObj = isObject(value);
8419     if (isObj) {
8420       var className = toString.call(value);
8421       if (!cloneableClasses[className] || (!support.nodeClass && isNode(value))) {
8422         return value;
8423       }
8424       var ctor = ctorByClass[className];
8425       switch (className) {
8426         case boolClass:
8427         case dateClass:
8428           return new ctor(+value);
8429
8430         case numberClass:
8431         case stringClass:
8432           return new ctor(value);
8433
8434         case regexpClass:
8435           result = ctor(value.source, reFlags.exec(value));
8436           result.lastIndex = value.lastIndex;
8437           return result;
8438       }
8439     } else {
8440       return value;
8441     }
8442     var isArr = isArray(value);
8443     if (isDeep) {
8444       // check for circular references and return corresponding clone
8445       var initedStack = !stackA;
8446       stackA || (stackA = getArray());
8447       stackB || (stackB = getArray());
8448
8449       var length = stackA.length;
8450       while (length--) {
8451         if (stackA[length] == value) {
8452           return stackB[length];
8453         }
8454       }
8455       result = isArr ? ctor(value.length) : {};
8456     }
8457     else {
8458       result = isArr ? slice(value) : assign({}, value);
8459     }
8460     // add array properties assigned by `RegExp#exec`
8461     if (isArr) {
8462       if (hasOwnProperty.call(value, 'index')) {
8463         result.index = value.index;
8464       }
8465       if (hasOwnProperty.call(value, 'input')) {
8466         result.input = value.input;
8467       }
8468     }
8469     // exit for shallow clone
8470     if (!isDeep) {
8471       return result;
8472     }
8473     // add the source value to the stack of traversed objects
8474     // and associate it with its clone
8475     stackA.push(value);
8476     stackB.push(result);
8477
8478     // recursively populate clone (susceptible to call stack limits)
8479     (isArr ? baseEach : forOwn)(value, function(objValue, key) {
8480       result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);
8481     });
8482
8483     if (initedStack) {
8484       releaseArray(stackA);
8485       releaseArray(stackB);
8486     }
8487     return result;
8488   }
8489
8490   /**
8491    * The base implementation of `_.create` without support for assigning
8492    * properties to the created object.
8493    *
8494    * @private
8495    * @param {Object} prototype The object to inherit from.
8496    * @returns {Object} Returns the new object.
8497    */
8498   function baseCreate(prototype, properties) {
8499     return isObject(prototype) ? nativeCreate(prototype) : {};
8500   }
8501   // fallback for browsers without `Object.create`
8502   if (!nativeCreate) {
8503     baseCreate = (function() {
8504       function Object() {}
8505       return function(prototype) {
8506         if (isObject(prototype)) {
8507           Object.prototype = prototype;
8508           var result = new Object;
8509           Object.prototype = null;
8510         }
8511         return result || root.Object();
8512       };
8513     }());
8514   }
8515
8516   /**
8517    * The base implementation of `_.createCallback` without support for creating
8518    * "_.pluck" or "_.where" style callbacks.
8519    *
8520    * @private
8521    * @param {*} [func=identity] The value to convert to a callback.
8522    * @param {*} [thisArg] The `this` binding of the created callback.
8523    * @param {number} [argCount] The number of arguments the callback accepts.
8524    * @returns {Function} Returns a callback function.
8525    */
8526   function baseCreateCallback(func, thisArg, argCount) {
8527     if (typeof func != 'function') {
8528       return identity;
8529     }
8530     // exit early for no `thisArg` or already bound by `Function#bind`
8531     if (typeof thisArg == 'undefined' || !('prototype' in func)) {
8532       return func;
8533     }
8534     var bindData = func.__bindData__;
8535     if (typeof bindData == 'undefined') {
8536       if (support.funcNames) {
8537         bindData = !func.name;
8538       }
8539       bindData = bindData || !support.funcDecomp;
8540       if (!bindData) {
8541         var source = fnToString.call(func);
8542         if (!support.funcNames) {
8543           bindData = !reFuncName.test(source);
8544         }
8545         if (!bindData) {
8546           // checks if `func` references the `this` keyword and stores the result
8547           bindData = reThis.test(source);
8548           setBindData(func, bindData);
8549         }
8550       }
8551     }
8552     // exit early if there are no `this` references or `func` is bound
8553     if (bindData === false || (bindData !== true && bindData[1] & 1)) {
8554       return func;
8555     }
8556     switch (argCount) {
8557       case 1: return function(value) {
8558         return func.call(thisArg, value);
8559       };
8560       case 2: return function(a, b) {
8561         return func.call(thisArg, a, b);
8562       };
8563       case 3: return function(value, index, collection) {
8564         return func.call(thisArg, value, index, collection);
8565       };
8566       case 4: return function(accumulator, value, index, collection) {
8567         return func.call(thisArg, accumulator, value, index, collection);
8568       };
8569     }
8570     return bind(func, thisArg);
8571   }
8572
8573   /**
8574    * The base implementation of `createWrapper` that creates the wrapper and
8575    * sets its meta data.
8576    *
8577    * @private
8578    * @param {Array} bindData The bind data array.
8579    * @returns {Function} Returns the new function.
8580    */
8581   function baseCreateWrapper(bindData) {
8582     var func = bindData[0],
8583         bitmask = bindData[1],
8584         partialArgs = bindData[2],
8585         partialRightArgs = bindData[3],
8586         thisArg = bindData[4],
8587         arity = bindData[5];
8588
8589     var isBind = bitmask & 1,
8590         isBindKey = bitmask & 2,
8591         isCurry = bitmask & 4,
8592         isCurryBound = bitmask & 8,
8593         key = func;
8594
8595     function bound() {
8596       var thisBinding = isBind ? thisArg : this;
8597       if (partialArgs) {
8598         var args = partialArgs.slice();
8599         push.apply(args, arguments);
8600       }
8601       if (partialRightArgs || isCurry) {
8602         args || (args = slice(arguments));
8603         if (partialRightArgs) {
8604           push.apply(args, partialRightArgs);
8605         }
8606         if (isCurry && args.length < arity) {
8607           bitmask |= 16 & ~32;
8608           return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);
8609         }
8610       }
8611       args || (args = arguments);
8612       if (isBindKey) {
8613         func = thisBinding[key];
8614       }
8615       if (this instanceof bound) {
8616         thisBinding = baseCreate(func.prototype);
8617         var result = func.apply(thisBinding, args);
8618         return isObject(result) ? result : thisBinding;
8619       }
8620       return func.apply(thisBinding, args);
8621     }
8622     setBindData(bound, bindData);
8623     return bound;
8624   }
8625
8626   /**
8627    * The base implementation of `_.difference` that accepts a single array
8628    * of values to exclude.
8629    *
8630    * @private
8631    * @param {Array} array The array to process.
8632    * @param {Array} [values] The array of values to exclude.
8633    * @returns {Array} Returns a new array of filtered values.
8634    */
8635   function baseDifference(array, values) {
8636     var index = -1,
8637         indexOf = getIndexOf(),
8638         length = array ? array.length : 0,
8639         isLarge = length >= largeArraySize && indexOf === baseIndexOf,
8640         result = [];
8641
8642     if (isLarge) {
8643       var cache = createCache(values);
8644       if (cache) {
8645         indexOf = cacheIndexOf;
8646         values = cache;
8647       } else {
8648         isLarge = false;
8649       }
8650     }
8651     while (++index < length) {
8652       var value = array[index];
8653       if (indexOf(values, value) < 0) {
8654         result.push(value);
8655       }
8656     }
8657     if (isLarge) {
8658       releaseObject(values);
8659     }
8660     return result;
8661   }
8662
8663   /**
8664    * The base implementation of `_.flatten` without support for callback
8665    * shorthands or `thisArg` binding.
8666    *
8667    * @private
8668    * @param {Array} array The array to flatten.
8669    * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level.
8670    * @param {boolean} [isStrict=false] A flag to restrict flattening to arrays and `arguments` objects.
8671    * @param {number} [fromIndex=0] The index to start from.
8672    * @returns {Array} Returns a new flattened array.
8673    */
8674   function baseFlatten(array, isShallow, isStrict, fromIndex) {
8675     var index = (fromIndex || 0) - 1,
8676         length = array ? array.length : 0,
8677         result = [];
8678
8679     while (++index < length) {
8680       var value = array[index];
8681
8682       if (value && typeof value == 'object' && typeof value.length == 'number'
8683           && (isArray(value) || isArguments(value))) {
8684         // recursively flatten arrays (susceptible to call stack limits)
8685         if (!isShallow) {
8686           value = baseFlatten(value, isShallow, isStrict);
8687         }
8688         var valIndex = -1,
8689             valLength = value.length,
8690             resIndex = result.length;
8691
8692         result.length += valLength;
8693         while (++valIndex < valLength) {
8694           result[resIndex++] = value[valIndex];
8695         }
8696       } else if (!isStrict) {
8697         result.push(value);
8698       }
8699     }
8700     return result;
8701   }
8702
8703   /**
8704    * The base implementation of `_.isEqual`, without support for `thisArg` binding,
8705    * that allows partial "_.where" style comparisons.
8706    *
8707    * @private
8708    * @param {*} a The value to compare.
8709    * @param {*} b The other value to compare.
8710    * @param {Function} [callback] The function to customize comparing values.
8711    * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.
8712    * @param {Array} [stackA=[]] Tracks traversed `a` objects.
8713    * @param {Array} [stackB=[]] Tracks traversed `b` objects.
8714    * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
8715    */
8716   function baseIsEqual(a, b, callback, isWhere, stackA, stackB) {
8717     // used to indicate that when comparing objects, `a` has at least the properties of `b`
8718     if (callback) {
8719       var result = callback(a, b);
8720       if (typeof result != 'undefined') {
8721         return !!result;
8722       }
8723     }
8724     // exit early for identical values
8725     if (a === b) {
8726       // treat `+0` vs. `-0` as not equal
8727       return a !== 0 || (1 / a == 1 / b);
8728     }
8729     var type = typeof a,
8730         otherType = typeof b;
8731
8732     // exit early for unlike primitive values
8733     if (a === a &&
8734         !(a && objectTypes[type]) &&
8735         !(b && objectTypes[otherType])) {
8736       return false;
8737     }
8738     // exit early for `null` and `undefined` avoiding ES3's Function#call behavior
8739     // http://es5.github.io/#x15.3.4.4
8740     if (a == null || b == null) {
8741       return a === b;
8742     }
8743     // compare [[Class]] names
8744     var className = toString.call(a),
8745         otherClass = toString.call(b);
8746
8747     if (className == argsClass) {
8748       className = objectClass;
8749     }
8750     if (otherClass == argsClass) {
8751       otherClass = objectClass;
8752     }
8753     if (className != otherClass) {
8754       return false;
8755     }
8756     switch (className) {
8757       case boolClass:
8758       case dateClass:
8759         // coerce dates and booleans to numbers, dates to milliseconds and booleans
8760         // to `1` or `0` treating invalid dates coerced to `NaN` as not equal
8761         return +a == +b;
8762
8763       case numberClass:
8764         // treat `NaN` vs. `NaN` as equal
8765         return (a != +a)
8766           ? b != +b
8767           // but treat `+0` vs. `-0` as not equal
8768           : (a == 0 ? (1 / a == 1 / b) : a == +b);
8769
8770       case regexpClass:
8771       case stringClass:
8772         // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)
8773         // treat string primitives and their corresponding object instances as equal
8774         return a == String(b);
8775     }
8776     var isArr = className == arrayClass;
8777     if (!isArr) {
8778       // unwrap any `lodash` wrapped values
8779       var aWrapped = hasOwnProperty.call(a, '__wrapped__'),
8780           bWrapped = hasOwnProperty.call(b, '__wrapped__');
8781
8782       if (aWrapped || bWrapped) {
8783         return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);
8784       }
8785       // exit for functions and DOM nodes
8786       if (className != objectClass || (!support.nodeClass && (isNode(a) || isNode(b)))) {
8787         return false;
8788       }
8789       // in older versions of Opera, `arguments` objects have `Array` constructors
8790       var ctorA = !support.argsObject && isArguments(a) ? Object : a.constructor,
8791           ctorB = !support.argsObject && isArguments(b) ? Object : b.constructor;
8792
8793       // non `Object` object instances with different constructors are not equal
8794       if (ctorA != ctorB &&
8795             !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&
8796             ('constructor' in a && 'constructor' in b)
8797           ) {
8798         return false;
8799       }
8800     }
8801     // assume cyclic structures are equal
8802     // the algorithm for detecting cyclic structures is adapted from ES 5.1
8803     // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)
8804     var initedStack = !stackA;
8805     stackA || (stackA = getArray());
8806     stackB || (stackB = getArray());
8807
8808     var length = stackA.length;
8809     while (length--) {
8810       if (stackA[length] == a) {
8811         return stackB[length] == b;
8812       }
8813     }
8814     var size = 0;
8815     result = true;
8816
8817     // add `a` and `b` to the stack of traversed objects
8818     stackA.push(a);
8819     stackB.push(b);
8820
8821     // recursively compare objects and arrays (susceptible to call stack limits)
8822     if (isArr) {
8823       length = a.length;
8824       size = b.length;
8825
8826       // compare lengths to determine if a deep comparison is necessary
8827       result = size == a.length;
8828       if (!result && !isWhere) {
8829         return result;
8830       }
8831       // deep compare the contents, ignoring non-numeric properties
8832       while (size--) {
8833         var index = length,
8834             value = b[size];
8835
8836         if (isWhere) {
8837           while (index--) {
8838             if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {
8839               break;
8840             }
8841           }
8842         } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {
8843           break;
8844         }
8845       }
8846       return result;
8847     }
8848     // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`
8849     // which, in this case, is more costly
8850     forIn(b, function(value, key, b) {
8851       if (hasOwnProperty.call(b, key)) {
8852         // count the number of properties.
8853         size++;
8854         // deep compare each property value.
8855         return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));
8856       }
8857     });
8858
8859     if (result && !isWhere) {
8860       // ensure both objects have the same number of properties
8861       forIn(a, function(value, key, a) {
8862         if (hasOwnProperty.call(a, key)) {
8863           // `size` will be `-1` if `a` has more properties than `b`
8864           return (result = --size > -1);
8865         }
8866       });
8867     }
8868     if (initedStack) {
8869       releaseArray(stackA);
8870       releaseArray(stackB);
8871     }
8872     return result;
8873   }
8874
8875   /**
8876    * The base implementation of `_.merge` without argument juggling or support
8877    * for `thisArg` binding.
8878    *
8879    * @private
8880    * @param {Object} object The destination object.
8881    * @param {Object} source The source object.
8882    * @param {Function} [callback] The function to customize merging properties.
8883    * @param {Array} [stackA=[]] Tracks traversed source objects.
8884    * @param {Array} [stackB=[]] Associates values with source counterparts.
8885    */
8886   function baseMerge(object, source, callback, stackA, stackB) {
8887     (isArray(source) ? forEach : forOwn)(source, function(source, key) {
8888       var found,
8889           isArr,
8890           result = source,
8891           value = object[key];
8892
8893       if (source && ((isArr = isArray(source)) || isPlainObject(source))) {
8894         // avoid merging previously merged cyclic sources
8895         var stackLength = stackA.length;
8896         while (stackLength--) {
8897           if ((found = stackA[stackLength] == source)) {
8898             value = stackB[stackLength];
8899             break;
8900           }
8901         }
8902         if (!found) {
8903           var isShallow;
8904           if (callback) {
8905             result = callback(value, source);
8906             if ((isShallow = typeof result != 'undefined')) {
8907               value = result;
8908             }
8909           }
8910           if (!isShallow) {
8911             value = isArr
8912               ? (isArray(value) ? value : [])
8913               : (isPlainObject(value) ? value : {});
8914           }
8915           // add `source` and associated `value` to the stack of traversed objects
8916           stackA.push(source);
8917           stackB.push(value);
8918
8919           // recursively merge objects and arrays (susceptible to call stack limits)
8920           if (!isShallow) {
8921             baseMerge(value, source, callback, stackA, stackB);
8922           }
8923         }
8924       }
8925       else {
8926         if (callback) {
8927           result = callback(value, source);
8928           if (typeof result == 'undefined') {
8929             result = source;
8930           }
8931         }
8932         if (typeof result != 'undefined') {
8933           value = result;
8934         }
8935       }
8936       object[key] = value;
8937     });
8938   }
8939
8940   /**
8941    * The base implementation of `_.uniq` without support for callback shorthands
8942    * or `thisArg` binding.
8943    *
8944    * @private
8945    * @param {Array} array The array to process.
8946    * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
8947    * @param {Function} [callback] The function called per iteration.
8948    * @returns {Array} Returns a duplicate-value-free array.
8949    */
8950   function baseUniq(array, isSorted, callback) {
8951     var index = -1,
8952         indexOf = getIndexOf(),
8953         length = array ? array.length : 0,
8954         result = [];
8955
8956     var isLarge = !isSorted && length >= largeArraySize && indexOf === baseIndexOf,
8957         seen = (callback || isLarge) ? getArray() : result;
8958
8959     if (isLarge) {
8960       var cache = createCache(seen);
8961       if (cache) {
8962         indexOf = cacheIndexOf;
8963         seen = cache;
8964       } else {
8965         isLarge = false;
8966         seen = callback ? seen : (releaseArray(seen), result);
8967       }
8968     }
8969     while (++index < length) {
8970       var value = array[index],
8971           computed = callback ? callback(value, index, array) : value;
8972
8973       if (isSorted
8974             ? !index || seen[seen.length - 1] !== computed
8975             : indexOf(seen, computed) < 0
8976           ) {
8977         if (callback || isLarge) {
8978           seen.push(computed);
8979         }
8980         result.push(value);
8981       }
8982     }
8983     if (isLarge) {
8984       releaseArray(seen.array);
8985       releaseObject(seen);
8986     } else if (callback) {
8987       releaseArray(seen);
8988     }
8989     return result;
8990   }
8991
8992   /**
8993    * Creates a function that aggregates a collection, creating an object composed
8994    * of keys generated from the results of running each element of the collection
8995    * through a callback. The given `setter` function sets the keys and values
8996    * of the composed object.
8997    *
8998    * @private
8999    * @param {Function} setter The setter function.
9000    * @returns {Function} Returns the new aggregator function.
9001    */
9002   function createAggregator(setter) {
9003     return function(collection, callback, thisArg) {
9004       var result = {};
9005       callback = lodash.createCallback(callback, thisArg, 3);
9006
9007       if (isArray(collection)) {
9008         var index = -1,
9009             length = collection.length;
9010
9011         while (++index < length) {
9012           var value = collection[index];
9013           setter(result, value, callback(value, index, collection), collection);
9014         }
9015       } else {
9016         baseEach(collection, function(value, key, collection) {
9017           setter(result, value, callback(value, key, collection), collection);
9018         });
9019       }
9020       return result;
9021     };
9022   }
9023
9024   /**
9025    * Creates a function that, when called, either curries or invokes `func`
9026    * with an optional `this` binding and partially applied arguments.
9027    *
9028    * @private
9029    * @param {Function|string} func The function or method name to reference.
9030    * @param {number} bitmask The bitmask of method flags to compose.
9031    *  The bitmask may be composed of the following flags:
9032    *  1 - `_.bind`
9033    *  2 - `_.bindKey`
9034    *  4 - `_.curry`
9035    *  8 - `_.curry` (bound)
9036    *  16 - `_.partial`
9037    *  32 - `_.partialRight`
9038    * @param {Array} [partialArgs] An array of arguments to prepend to those
9039    *  provided to the new function.
9040    * @param {Array} [partialRightArgs] An array of arguments to append to those
9041    *  provided to the new function.
9042    * @param {*} [thisArg] The `this` binding of `func`.
9043    * @param {number} [arity] The arity of `func`.
9044    * @returns {Function} Returns the new function.
9045    */
9046   function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {
9047     var isBind = bitmask & 1,
9048         isBindKey = bitmask & 2,
9049         isCurry = bitmask & 4,
9050         isCurryBound = bitmask & 8,
9051         isPartial = bitmask & 16,
9052         isPartialRight = bitmask & 32;
9053
9054     if (!isBindKey && !isFunction(func)) {
9055       throw new TypeError;
9056     }
9057     if (isPartial && !partialArgs.length) {
9058       bitmask &= ~16;
9059       isPartial = partialArgs = false;
9060     }
9061     if (isPartialRight && !partialRightArgs.length) {
9062       bitmask &= ~32;
9063       isPartialRight = partialRightArgs = false;
9064     }
9065     var bindData = func && func.__bindData__;
9066     if (bindData && bindData !== true) {
9067       bindData = bindData.slice();
9068
9069       // set `thisBinding` is not previously bound
9070       if (isBind && !(bindData[1] & 1)) {
9071         bindData[4] = thisArg;
9072       }
9073       // set if previously bound but not currently (subsequent curried functions)
9074       if (!isBind && bindData[1] & 1) {
9075         bitmask |= 8;
9076       }
9077       // set curried arity if not yet set
9078       if (isCurry && !(bindData[1] & 4)) {
9079         bindData[5] = arity;
9080       }
9081       // append partial left arguments
9082       if (isPartial) {
9083         push.apply(bindData[2] || (bindData[2] = []), partialArgs);
9084       }
9085       // append partial right arguments
9086       if (isPartialRight) {
9087         push.apply(bindData[3] || (bindData[3] = []), partialRightArgs);
9088       }
9089       // merge flags
9090       bindData[1] |= bitmask;
9091       return createWrapper.apply(null, bindData);
9092     }
9093     // fast path for `_.bind`
9094     var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;
9095     return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);
9096   }
9097
9098   /**
9099    * Creates compiled iteration functions.
9100    *
9101    * @private
9102    * @param {...Object} [options] The compile options object(s).
9103    * @param {string} [options.array] Code to determine if the iterable is an array or array-like.
9104    * @param {boolean} [options.useHas] Specify using `hasOwnProperty` checks in the object loop.
9105    * @param {Function} [options.keys] A reference to `_.keys` for use in own property iteration.
9106    * @param {string} [options.args] A comma separated string of iteration function arguments.
9107    * @param {string} [options.top] Code to execute before the iteration branches.
9108    * @param {string} [options.loop] Code to execute in the object loop.
9109    * @param {string} [options.bottom] Code to execute after the iteration branches.
9110    * @returns {Function} Returns the compiled function.
9111    */
9112   function createIterator() {
9113     // data properties
9114     iteratorData.shadowedProps = shadowedProps;
9115
9116     // iterator options
9117     iteratorData.array = iteratorData.bottom = iteratorData.loop = iteratorData.top = '';
9118     iteratorData.init = 'iterable';
9119     iteratorData.useHas = true;
9120
9121     // merge options into a template data object
9122     for (var object, index = 0; object = arguments[index]; index++) {
9123       for (var key in object) {
9124         iteratorData[key] = object[key];
9125       }
9126     }
9127     var args = iteratorData.args;
9128     iteratorData.firstArg = /^[^,]+/.exec(args)[0];
9129
9130     // create the function factory
9131     var factory = Function(
9132         'baseCreateCallback, errorClass, errorProto, hasOwnProperty, ' +
9133         'indicatorObject, isArguments, isArray, isString, keys, objectProto, ' +
9134         'objectTypes, nonEnumProps, stringClass, stringProto, toString',
9135       'return function(' + args + ') {\n' + iteratorTemplate(iteratorData) + '\n}'
9136     );
9137
9138     // return the compiled function
9139     return factory(
9140       baseCreateCallback, errorClass, errorProto, hasOwnProperty,
9141       indicatorObject, isArguments, isArray, isString, iteratorData.keys, objectProto,
9142       objectTypes, nonEnumProps, stringClass, stringProto, toString
9143     );
9144   }
9145
9146   /**
9147    * Gets the appropriate "indexOf" function. If the `_.indexOf` method is
9148    * customized, this method returns the custom method, otherwise it returns
9149    * the `baseIndexOf` function.
9150    *
9151    * @private
9152    * @returns {Function} Returns the "indexOf" function.
9153    */
9154   function getIndexOf() {
9155     var result = (result = lodash.indexOf) === indexOf ? baseIndexOf : result;
9156     return result;
9157   }
9158
9159   /**
9160    * Sets `this` binding data on a given function.
9161    *
9162    * @private
9163    * @param {Function} func The function to set data on.
9164    * @param {Array} value The data array to set.
9165    */
9166   var setBindData = !defineProperty ? noop : function(func, value) {
9167     descriptor.value = value;
9168     defineProperty(func, '__bindData__', descriptor);
9169   };
9170
9171   /**
9172    * A fallback implementation of `isPlainObject` which checks if a given value
9173    * is an object created by the `Object` constructor, assuming objects created
9174    * by the `Object` constructor have no inherited enumerable properties and that
9175    * there are no `Object.prototype` extensions.
9176    *
9177    * @private
9178    * @param {*} value The value to check.
9179    * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
9180    */
9181   function shimIsPlainObject(value) {
9182     var ctor,
9183         result;
9184
9185     // avoid non Object objects, `arguments` objects, and DOM elements
9186     if (!(value && toString.call(value) == objectClass) ||
9187         (ctor = value.constructor, isFunction(ctor) && !(ctor instanceof ctor)) ||
9188         (!support.argsClass && isArguments(value)) ||
9189         (!support.nodeClass && isNode(value))) {
9190       return false;
9191     }
9192     // IE < 9 iterates inherited properties before own properties. If the first
9193     // iterated property is an object's own property then there are no inherited
9194     // enumerable properties.
9195     if (support.ownLast) {
9196       forIn(value, function(value, key, object) {
9197         result = hasOwnProperty.call(object, key);
9198         return false;
9199       });
9200       return result !== false;
9201     }
9202     // In most environments an object's own properties are iterated before
9203     // its inherited properties. If the last iterated property is an object's
9204     // own property then there are no inherited enumerable properties.
9205     forIn(value, function(value, key) {
9206       result = key;
9207     });
9208     return typeof result == 'undefined' || hasOwnProperty.call(value, result);
9209   }
9210
9211   /*--------------------------------------------------------------------------*/
9212
9213   /**
9214    * Checks if `value` is an `arguments` object.
9215    *
9216    * @static
9217    * @memberOf _
9218    * @category Objects
9219    * @param {*} value The value to check.
9220    * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.
9221    * @example
9222    *
9223    * (function() { return _.isArguments(arguments); })(1, 2, 3);
9224    * // => true
9225    *
9226    * _.isArguments([1, 2, 3]);
9227    * // => false
9228    */
9229   function isArguments(value) {
9230     return value && typeof value == 'object' && typeof value.length == 'number' &&
9231       toString.call(value) == argsClass || false;
9232   }
9233   // fallback for browsers that can't detect `arguments` objects by [[Class]]
9234   if (!support.argsClass) {
9235     isArguments = function(value) {
9236       return value && typeof value == 'object' && typeof value.length == 'number' &&
9237         hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee') || false;
9238     };
9239   }
9240
9241   /**
9242    * Checks if `value` is an array.
9243    *
9244    * @static
9245    * @memberOf _
9246    * @type Function
9247    * @category Objects
9248    * @param {*} value The value to check.
9249    * @returns {boolean} Returns `true` if the `value` is an array, else `false`.
9250    * @example
9251    *
9252    * (function() { return _.isArray(arguments); })();
9253    * // => false
9254    *
9255    * _.isArray([1, 2, 3]);
9256    * // => true
9257    */
9258   var isArray = nativeIsArray || function(value) {
9259     return value && typeof value == 'object' && typeof value.length == 'number' &&
9260       toString.call(value) == arrayClass || false;
9261   };
9262
9263   /**
9264    * A fallback implementation of `Object.keys` which produces an array of the
9265    * given object's own enumerable property names.
9266    *
9267    * @private
9268    * @type Function
9269    * @param {Object} object The object to inspect.
9270    * @returns {Array} Returns an array of property names.
9271    */
9272   var shimKeys = createIterator({
9273     'args': 'object',
9274     'init': '[]',
9275     'top': 'if (!(objectTypes[typeof object])) return result',
9276     'loop': 'result.push(index)'
9277   });
9278
9279   /**
9280    * Creates an array composed of the own enumerable property names of an object.
9281    *
9282    * @static
9283    * @memberOf _
9284    * @category Objects
9285    * @param {Object} object The object to inspect.
9286    * @returns {Array} Returns an array of property names.
9287    * @example
9288    *
9289    * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
9290    * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
9291    */
9292   var keys = !nativeKeys ? shimKeys : function(object) {
9293     if (!isObject(object)) {
9294       return [];
9295     }
9296     if ((support.enumPrototypes && typeof object == 'function') ||
9297         (support.nonEnumArgs && object.length && isArguments(object))) {
9298       return shimKeys(object);
9299     }
9300     return nativeKeys(object);
9301   };
9302
9303   /** Reusable iterator options shared by `each`, `forIn`, and `forOwn` */
9304   var eachIteratorOptions = {
9305     'args': 'collection, callback, thisArg',
9306     'top': "callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)",
9307     'array': "typeof length == 'number'",
9308     'keys': keys,
9309     'loop': 'if (callback(iterable[index], index, collection) === false) return result'
9310   };
9311
9312   /** Reusable iterator options for `assign` and `defaults` */
9313   var defaultsIteratorOptions = {
9314     'args': 'object, source, guard',
9315     'top':
9316       'var args = arguments,\n' +
9317       '    argsIndex = 0,\n' +
9318       "    argsLength = typeof guard == 'number' ? 2 : args.length;\n" +
9319       'while (++argsIndex < argsLength) {\n' +
9320       '  iterable = args[argsIndex];\n' +
9321       '  if (iterable && objectTypes[typeof iterable]) {',
9322     'keys': keys,
9323     'loop': "if (typeof result[index] == 'undefined') result[index] = iterable[index]",
9324     'bottom': '  }\n}'
9325   };
9326
9327   /** Reusable iterator options for `forIn` and `forOwn` */
9328   var forOwnIteratorOptions = {
9329     'top': 'if (!objectTypes[typeof iterable]) return result;\n' + eachIteratorOptions.top,
9330     'array': false
9331   };
9332
9333   /**
9334    * A function compiled to iterate `arguments` objects, arrays, objects, and
9335    * strings consistenly across environments, executing the callback for each
9336    * element in the collection. The callback is bound to `thisArg` and invoked
9337    * with three arguments; (value, index|key, collection). Callbacks may exit
9338    * iteration early by explicitly returning `false`.
9339    *
9340    * @private
9341    * @type Function
9342    * @param {Array|Object|string} collection The collection to iterate over.
9343    * @param {Function} [callback=identity] The function called per iteration.
9344    * @param {*} [thisArg] The `this` binding of `callback`.
9345    * @returns {Array|Object|string} Returns `collection`.
9346    */
9347   var baseEach = createIterator(eachIteratorOptions);
9348
9349   /*--------------------------------------------------------------------------*/
9350
9351   /**
9352    * Assigns own enumerable properties of source object(s) to the destination
9353    * object. Subsequent sources will overwrite property assignments of previous
9354    * sources. If a callback is provided it will be executed to produce the
9355    * assigned values. The callback is bound to `thisArg` and invoked with two
9356    * arguments; (objectValue, sourceValue).
9357    *
9358    * @static
9359    * @memberOf _
9360    * @type Function
9361    * @alias extend
9362    * @category Objects
9363    * @param {Object} object The destination object.
9364    * @param {...Object} [source] The source objects.
9365    * @param {Function} [callback] The function to customize assigning values.
9366    * @param {*} [thisArg] The `this` binding of `callback`.
9367    * @returns {Object} Returns the destination object.
9368    * @example
9369    *
9370    * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });
9371    * // => { 'name': 'fred', 'employer': 'slate' }
9372    *
9373    * var defaults = _.partialRight(_.assign, function(a, b) {
9374    *   return typeof a == 'undefined' ? b : a;
9375    * });
9376    *
9377    * var object = { 'name': 'barney' };
9378    * defaults(object, { 'name': 'fred', 'employer': 'slate' });
9379    * // => { 'name': 'barney', 'employer': 'slate' }
9380    */
9381   var assign = createIterator(defaultsIteratorOptions, {
9382     'top':
9383       defaultsIteratorOptions.top.replace(';',
9384         ';\n' +
9385         "if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n" +
9386         '  var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n' +
9387         "} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n" +
9388         '  callback = args[--argsLength];\n' +
9389         '}'
9390       ),
9391     'loop': 'result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]'
9392   });
9393
9394   /**
9395    * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
9396    * be cloned, otherwise they will be assigned by reference. If a callback
9397    * is provided it will be executed to produce the cloned values. If the
9398    * callback returns `undefined` cloning will be handled by the method instead.
9399    * The callback is bound to `thisArg` and invoked with one argument; (value).
9400    *
9401    * @static
9402    * @memberOf _
9403    * @category Objects
9404    * @param {*} value The value to clone.
9405    * @param {boolean} [isDeep=false] Specify a deep clone.
9406    * @param {Function} [callback] The function to customize cloning values.
9407    * @param {*} [thisArg] The `this` binding of `callback`.
9408    * @returns {*} Returns the cloned value.
9409    * @example
9410    *
9411    * var characters = [
9412    *   { 'name': 'barney', 'age': 36 },
9413    *   { 'name': 'fred',   'age': 40 }
9414    * ];
9415    *
9416    * var shallow = _.clone(characters);
9417    * shallow[0] === characters[0];
9418    * // => true
9419    *
9420    * var deep = _.clone(characters, true);
9421    * deep[0] === characters[0];
9422    * // => false
9423    *
9424    * _.mixin({
9425    *   'clone': _.partialRight(_.clone, function(value) {
9426    *     return _.isElement(value) ? value.cloneNode(false) : undefined;
9427    *   })
9428    * });
9429    *
9430    * var clone = _.clone(document.body);
9431    * clone.childNodes.length;
9432    * // => 0
9433    */
9434   function clone(value, isDeep, callback, thisArg) {
9435     // allows working with "Collections" methods without using their `index`
9436     // and `collection` arguments for `isDeep` and `callback`
9437     if (typeof isDeep != 'boolean' && isDeep != null) {
9438       thisArg = callback;
9439       callback = isDeep;
9440       isDeep = false;
9441     }
9442     return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
9443   }
9444
9445   /**
9446    * Creates a deep clone of `value`. If a callback is provided it will be
9447    * executed to produce the cloned values. If the callback returns `undefined`
9448    * cloning will be handled by the method instead. The callback is bound to
9449    * `thisArg` and invoked with one argument; (value).
9450    *
9451    * Note: This method is loosely based on the structured clone algorithm. Functions
9452    * and DOM nodes are **not** cloned. The enumerable properties of `arguments` objects and
9453    * objects created by constructors other than `Object` are cloned to plain `Object` objects.
9454    * See http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm.
9455    *
9456    * @static
9457    * @memberOf _
9458    * @category Objects
9459    * @param {*} value The value to deep clone.
9460    * @param {Function} [callback] The function to customize cloning values.
9461    * @param {*} [thisArg] The `this` binding of `callback`.
9462    * @returns {*} Returns the deep cloned value.
9463    * @example
9464    *
9465    * var characters = [
9466    *   { 'name': 'barney', 'age': 36 },
9467    *   { 'name': 'fred',   'age': 40 }
9468    * ];
9469    *
9470    * var deep = _.cloneDeep(characters);
9471    * deep[0] === characters[0];
9472    * // => false
9473    *
9474    * var view = {
9475    *   'label': 'docs',
9476    *   'node': element
9477    * };
9478    *
9479    * var clone = _.cloneDeep(view, function(value) {
9480    *   return _.isElement(value) ? value.cloneNode(true) : undefined;
9481    * });
9482    *
9483    * clone.node == view.node;
9484    * // => false
9485    */
9486   function cloneDeep(value, callback, thisArg) {
9487     return baseClone(value, true, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
9488   }
9489
9490   /**
9491    * Iterates over own and inherited enumerable properties of an object,
9492    * executing the callback for each property. The callback is bound to `thisArg`
9493    * and invoked with three arguments; (value, key, object). Callbacks may exit
9494    * iteration early by explicitly returning `false`.
9495    *
9496    * @static
9497    * @memberOf _
9498    * @type Function
9499    * @category Objects
9500    * @param {Object} object The object to iterate over.
9501    * @param {Function} [callback=identity] The function called per iteration.
9502    * @param {*} [thisArg] The `this` binding of `callback`.
9503    * @returns {Object} Returns `object`.
9504    * @example
9505    *
9506    * function Shape() {
9507    *   this.x = 0;
9508    *   this.y = 0;
9509    * }
9510    *
9511    * Shape.prototype.move = function(x, y) {
9512    *   this.x += x;
9513    *   this.y += y;
9514    * };
9515    *
9516    * _.forIn(new Shape, function(value, key) {
9517    *   console.log(key);
9518    * });
9519    * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)
9520    */
9521   var forIn = createIterator(eachIteratorOptions, forOwnIteratorOptions, {
9522     'useHas': false
9523   });
9524
9525   /**
9526    * Iterates over own enumerable properties of an object, executing the callback
9527    * for each property. The callback is bound to `thisArg` and invoked with three
9528    * arguments; (value, key, object). Callbacks may exit iteration early by
9529    * explicitly returning `false`.
9530    *
9531    * @static
9532    * @memberOf _
9533    * @type Function
9534    * @category Objects
9535    * @param {Object} object The object to iterate over.
9536    * @param {Function} [callback=identity] The function called per iteration.
9537    * @param {*} [thisArg] The `this` binding of `callback`.
9538    * @returns {Object} Returns `object`.
9539    * @example
9540    *
9541    * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
9542    *   console.log(key);
9543    * });
9544    * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
9545    */
9546   var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions);
9547
9548   /**
9549    * Creates a sorted array of property names of all enumerable properties,
9550    * own and inherited, of `object` that have function values.
9551    *
9552    * @static
9553    * @memberOf _
9554    * @alias methods
9555    * @category Objects
9556    * @param {Object} object The object to inspect.
9557    * @returns {Array} Returns an array of property names that have function values.
9558    * @example
9559    *
9560    * _.functions(_);
9561    * // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]
9562    */
9563   function functions(object) {
9564     var result = [];
9565     forIn(object, function(value, key) {
9566       if (isFunction(value)) {
9567         result.push(key);
9568       }
9569     });
9570     return result.sort();
9571   }
9572
9573   /**
9574    * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
9575    * length of `0` and objects with no own enumerable properties are considered
9576    * "empty".
9577    *
9578    * @static
9579    * @memberOf _
9580    * @category Objects
9581    * @param {Array|Object|string} value The value to inspect.
9582    * @returns {boolean} Returns `true` if the `value` is empty, else `false`.
9583    * @example
9584    *
9585    * _.isEmpty([1, 2, 3]);
9586    * // => false
9587    *
9588    * _.isEmpty({});
9589    * // => true
9590    *
9591    * _.isEmpty('');
9592    * // => true
9593    */
9594   function isEmpty(value) {
9595     var result = true;
9596     if (!value) {
9597       return result;
9598     }
9599     var className = toString.call(value),
9600         length = value.length;
9601
9602     if ((className == arrayClass || className == stringClass ||
9603         (support.argsClass ? className == argsClass : isArguments(value))) ||
9604         (className == objectClass && typeof length == 'number' && isFunction(value.splice))) {
9605       return !length;
9606     }
9607     forOwn(value, function() {
9608       return (result = false);
9609     });
9610     return result;
9611   }
9612
9613   /**
9614    * Performs a deep comparison between two values to determine if they are
9615    * equivalent to each other. If a callback is provided it will be executed
9616    * to compare values. If the callback returns `undefined` comparisons will
9617    * be handled by the method instead. The callback is bound to `thisArg` and
9618    * invoked with two arguments; (a, b).
9619    *
9620    * @static
9621    * @memberOf _
9622    * @category Objects
9623    * @param {*} a The value to compare.
9624    * @param {*} b The other value to compare.
9625    * @param {Function} [callback] The function to customize comparing values.
9626    * @param {*} [thisArg] The `this` binding of `callback`.
9627    * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
9628    * @example
9629    *
9630    * var object = { 'name': 'fred' };
9631    * var copy = { 'name': 'fred' };
9632    *
9633    * object == copy;
9634    * // => false
9635    *
9636    * _.isEqual(object, copy);
9637    * // => true
9638    *
9639    * var words = ['hello', 'goodbye'];
9640    * var otherWords = ['hi', 'goodbye'];
9641    *
9642    * _.isEqual(words, otherWords, function(a, b) {
9643    *   var reGreet = /^(?:hello|hi)$/i,
9644    *       aGreet = _.isString(a) && reGreet.test(a),
9645    *       bGreet = _.isString(b) && reGreet.test(b);
9646    *
9647    *   return (aGreet || bGreet) ? (aGreet == bGreet) : undefined;
9648    * });
9649    * // => true
9650    */
9651   function isEqual(a, b, callback, thisArg) {
9652     return baseIsEqual(a, b, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 2));
9653   }
9654
9655   /**
9656    * Checks if `value` is a function.
9657    *
9658    * @static
9659    * @memberOf _
9660    * @category Objects
9661    * @param {*} value The value to check.
9662    * @returns {boolean} Returns `true` if the `value` is a function, else `false`.
9663    * @example
9664    *
9665    * _.isFunction(_);
9666    * // => true
9667    */
9668   function isFunction(value) {
9669     return typeof value == 'function';
9670   }
9671   // fallback for older versions of Chrome and Safari
9672   if (isFunction(/x/)) {
9673     isFunction = function(value) {
9674       return typeof value == 'function' && toString.call(value) == funcClass;
9675     };
9676   }
9677
9678   /**
9679    * Checks if `value` is the language type of Object.
9680    * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
9681    *
9682    * @static
9683    * @memberOf _
9684    * @category Objects
9685    * @param {*} value The value to check.
9686    * @returns {boolean} Returns `true` if the `value` is an object, else `false`.
9687    * @example
9688    *
9689    * _.isObject({});
9690    * // => true
9691    *
9692    * _.isObject([1, 2, 3]);
9693    * // => true
9694    *
9695    * _.isObject(1);
9696    * // => false
9697    */
9698   function isObject(value) {
9699     // check if the value is the ECMAScript language type of Object
9700     // http://es5.github.io/#x8
9701     // and avoid a V8 bug
9702     // http://code.google.com/p/v8/issues/detail?id=2291
9703     return !!(value && objectTypes[typeof value]);
9704   }
9705
9706   /**
9707    * Checks if `value` is an object created by the `Object` constructor.
9708    *
9709    * @static
9710    * @memberOf _
9711    * @category Objects
9712    * @param {*} value The value to check.
9713    * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
9714    * @example
9715    *
9716    * function Shape() {
9717    *   this.x = 0;
9718    *   this.y = 0;
9719    * }
9720    *
9721    * _.isPlainObject(new Shape);
9722    * // => false
9723    *
9724    * _.isPlainObject([1, 2, 3]);
9725    * // => false
9726    *
9727    * _.isPlainObject({ 'x': 0, 'y': 0 });
9728    * // => true
9729    */
9730   var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {
9731     if (!(value && toString.call(value) == objectClass) || (!support.argsClass && isArguments(value))) {
9732       return false;
9733     }
9734     var valueOf = value.valueOf,
9735         objProto = typeof valueOf == 'function' && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
9736
9737     return objProto
9738       ? (value == objProto || getPrototypeOf(value) == objProto)
9739       : shimIsPlainObject(value);
9740   };
9741
9742   /**
9743    * Checks if `value` is a string.
9744    *
9745    * @static
9746    * @memberOf _
9747    * @category Objects
9748    * @param {*} value The value to check.
9749    * @returns {boolean} Returns `true` if the `value` is a string, else `false`.
9750    * @example
9751    *
9752    * _.isString('fred');
9753    * // => true
9754    */
9755   function isString(value) {
9756     return typeof value == 'string' ||
9757       value && typeof value == 'object' && toString.call(value) == stringClass || false;
9758   }
9759
9760   /**
9761    * Recursively merges own enumerable properties of the source object(s), that
9762    * don't resolve to `undefined` into the destination object. Subsequent sources
9763    * will overwrite property assignments of previous sources. If a callback is
9764    * provided it will be executed to produce the merged values of the destination
9765    * and source properties. If the callback returns `undefined` merging will
9766    * be handled by the method instead. The callback is bound to `thisArg` and
9767    * invoked with two arguments; (objectValue, sourceValue).
9768    *
9769    * @static
9770    * @memberOf _
9771    * @category Objects
9772    * @param {Object} object The destination object.
9773    * @param {...Object} [source] The source objects.
9774    * @param {Function} [callback] The function to customize merging properties.
9775    * @param {*} [thisArg] The `this` binding of `callback`.
9776    * @returns {Object} Returns the destination object.
9777    * @example
9778    *
9779    * var names = {
9780    *   'characters': [
9781    *     { 'name': 'barney' },
9782    *     { 'name': 'fred' }
9783    *   ]
9784    * };
9785    *
9786    * var ages = {
9787    *   'characters': [
9788    *     { 'age': 36 },
9789    *     { 'age': 40 }
9790    *   ]
9791    * };
9792    *
9793    * _.merge(names, ages);
9794    * // => { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] }
9795    *
9796    * var food = {
9797    *   'fruits': ['apple'],
9798    *   'vegetables': ['beet']
9799    * };
9800    *
9801    * var otherFood = {
9802    *   'fruits': ['banana'],
9803    *   'vegetables': ['carrot']
9804    * };
9805    *
9806    * _.merge(food, otherFood, function(a, b) {
9807    *   return _.isArray(a) ? a.concat(b) : undefined;
9808    * });
9809    * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] }
9810    */
9811   function merge(object) {
9812     var args = arguments,
9813         length = 2;
9814
9815     if (!isObject(object)) {
9816       return object;
9817     }
9818
9819     // allows working with `_.reduce` and `_.reduceRight` without using
9820     // their `index` and `collection` arguments
9821     if (typeof args[2] != 'number') {
9822       length = args.length;
9823     }
9824     if (length > 3 && typeof args[length - 2] == 'function') {
9825       var callback = baseCreateCallback(args[--length - 1], args[length--], 2);
9826     } else if (length > 2 && typeof args[length - 1] == 'function') {
9827       callback = args[--length];
9828     }
9829     var sources = slice(arguments, 1, length),
9830         index = -1,
9831         stackA = getArray(),
9832         stackB = getArray();
9833
9834     while (++index < length) {
9835       baseMerge(object, sources[index], callback, stackA, stackB);
9836     }
9837     releaseArray(stackA);
9838     releaseArray(stackB);
9839     return object;
9840   }
9841
9842   /**
9843    * Creates a shallow clone of `object` excluding the specified properties.
9844    * Property names may be specified as individual arguments or as arrays of
9845    * property names. If a callback is provided it will be executed for each
9846    * property of `object` omitting the properties the callback returns truey
9847    * for. The callback is bound to `thisArg` and invoked with three arguments;
9848    * (value, key, object).
9849    *
9850    * @static
9851    * @memberOf _
9852    * @category Objects
9853    * @param {Object} object The source object.
9854    * @param {Function|...string|string[]} [callback] The properties to omit or the
9855    *  function called per iteration.
9856    * @param {*} [thisArg] The `this` binding of `callback`.
9857    * @returns {Object} Returns an object without the omitted properties.
9858    * @example
9859    *
9860    * _.omit({ 'name': 'fred', 'age': 40 }, 'age');
9861    * // => { 'name': 'fred' }
9862    *
9863    * _.omit({ 'name': 'fred', 'age': 40 }, function(value) {
9864    *   return typeof value == 'number';
9865    * });
9866    * // => { 'name': 'fred' }
9867    */
9868   function omit(object, callback, thisArg) {
9869     var result = {};
9870     if (typeof callback != 'function') {
9871       var props = [];
9872       forIn(object, function(value, key) {
9873         props.push(key);
9874       });
9875       props = baseDifference(props, baseFlatten(arguments, true, false, 1));
9876
9877       var index = -1,
9878           length = props.length;
9879
9880       while (++index < length) {
9881         var key = props[index];
9882         result[key] = object[key];
9883       }
9884     } else {
9885       callback = lodash.createCallback(callback, thisArg, 3);
9886       forIn(object, function(value, key, object) {
9887         if (!callback(value, key, object)) {
9888           result[key] = value;
9889         }
9890       });
9891     }
9892     return result;
9893   }
9894
9895   /**
9896    * Creates a two dimensional array of an object's key-value pairs,
9897    * i.e. `[[key1, value1], [key2, value2]]`.
9898    *
9899    * @static
9900    * @memberOf _
9901    * @category Objects
9902    * @param {Object} object The object to inspect.
9903    * @returns {Array} Returns new array of key-value pairs.
9904    * @example
9905    *
9906    * _.pairs({ 'barney': 36, 'fred': 40 });
9907    * // => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments)
9908    */
9909   function pairs(object) {
9910     var index = -1,
9911         props = keys(object),
9912         length = props.length,
9913         result = Array(length);
9914
9915     while (++index < length) {
9916       var key = props[index];
9917       result[index] = [key, object[key]];
9918     }
9919     return result;
9920   }
9921
9922   /**
9923    * Creates a shallow clone of `object` composed of the specified properties.
9924    * Property names may be specified as individual arguments or as arrays of
9925    * property names. If a callback is provided it will be executed for each
9926    * property of `object` picking the properties the callback returns truey
9927    * for. The callback is bound to `thisArg` and invoked with three arguments;
9928    * (value, key, object).
9929    *
9930    * @static
9931    * @memberOf _
9932    * @category Objects
9933    * @param {Object} object The source object.
9934    * @param {Function|...string|string[]} [callback] The function called per
9935    *  iteration or property names to pick, specified as individual property
9936    *  names or arrays of property names.
9937    * @param {*} [thisArg] The `this` binding of `callback`.
9938    * @returns {Object} Returns an object composed of the picked properties.
9939    * @example
9940    *
9941    * _.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name');
9942    * // => { 'name': 'fred' }
9943    *
9944    * _.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) {
9945    *   return key.charAt(0) != '_';
9946    * });
9947    * // => { 'name': 'fred' }
9948    */
9949   function pick(object, callback, thisArg) {
9950     var result = {};
9951     if (typeof callback != 'function') {
9952       var index = -1,
9953           props = baseFlatten(arguments, true, false, 1),
9954           length = isObject(object) ? props.length : 0;
9955
9956       while (++index < length) {
9957         var key = props[index];
9958         if (key in object) {
9959           result[key] = object[key];
9960         }
9961       }
9962     } else {
9963       callback = lodash.createCallback(callback, thisArg, 3);
9964       forIn(object, function(value, key, object) {
9965         if (callback(value, key, object)) {
9966           result[key] = value;
9967         }
9968       });
9969     }
9970     return result;
9971   }
9972
9973   /**
9974    * Creates an array composed of the own enumerable property values of `object`.
9975    *
9976    * @static
9977    * @memberOf _
9978    * @category Objects
9979    * @param {Object} object The object to inspect.
9980    * @returns {Array} Returns an array of property values.
9981    * @example
9982    *
9983    * _.values({ 'one': 1, 'two': 2, 'three': 3 });
9984    * // => [1, 2, 3] (property order is not guaranteed across environments)
9985    */
9986   function values(object) {
9987     var index = -1,
9988         props = keys(object),
9989         length = props.length,
9990         result = Array(length);
9991
9992     while (++index < length) {
9993       result[index] = object[props[index]];
9994     }
9995     return result;
9996   }
9997
9998   /*--------------------------------------------------------------------------*/
9999
10000   /**
10001    * Checks if a given value is present in a collection using strict equality
10002    * for comparisons, i.e. `===`. If `fromIndex` is negative, it is used as the
10003    * offset from the end of the collection.
10004    *
10005    * @static
10006    * @memberOf _
10007    * @alias include
10008    * @category Collections
10009    * @param {Array|Object|string} collection The collection to iterate over.
10010    * @param {*} target The value to check for.
10011    * @param {number} [fromIndex=0] The index to search from.
10012    * @returns {boolean} Returns `true` if the `target` element is found, else `false`.
10013    * @example
10014    *
10015    * _.contains([1, 2, 3], 1);
10016    * // => true
10017    *
10018    * _.contains([1, 2, 3], 1, 2);
10019    * // => false
10020    *
10021    * _.contains({ 'name': 'fred', 'age': 40 }, 'fred');
10022    * // => true
10023    *
10024    * _.contains('pebbles', 'eb');
10025    * // => true
10026    */
10027   function contains(collection, target, fromIndex) {
10028     var index = -1,
10029         indexOf = getIndexOf(),
10030         length = collection ? collection.length : 0,
10031         result = false;
10032
10033     fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0;
10034     if (isArray(collection)) {
10035       result = indexOf(collection, target, fromIndex) > -1;
10036     } else if (typeof length == 'number') {
10037       result = (isString(collection) ? collection.indexOf(target, fromIndex) : indexOf(collection, target, fromIndex)) > -1;
10038     } else {
10039       baseEach(collection, function(value) {
10040         if (++index >= fromIndex) {
10041           return !(result = value === target);
10042         }
10043       });
10044     }
10045     return result;
10046   }
10047
10048   /**
10049    * Checks if the given callback returns truey value for **all** elements of
10050    * a collection. The callback is bound to `thisArg` and invoked with three
10051    * arguments; (value, index|key, collection).
10052    *
10053    * If a property name is provided for `callback` the created "_.pluck" style
10054    * callback will return the property value of the given element.
10055    *
10056    * If an object is provided for `callback` the created "_.where" style callback
10057    * will return `true` for elements that have the properties of the given object,
10058    * else `false`.
10059    *
10060    * @static
10061    * @memberOf _
10062    * @alias all
10063    * @category Collections
10064    * @param {Array|Object|string} collection The collection to iterate over.
10065    * @param {Function|Object|string} [callback=identity] The function called
10066    *  per iteration. If a property name or object is provided it will be used
10067    *  to create a "_.pluck" or "_.where" style callback, respectively.
10068    * @param {*} [thisArg] The `this` binding of `callback`.
10069    * @returns {boolean} Returns `true` if all elements passed the callback check,
10070    *  else `false`.
10071    * @example
10072    *
10073    * _.every([true, 1, null, 'yes']);
10074    * // => false
10075    *
10076    * var characters = [
10077    *   { 'name': 'barney', 'age': 36 },
10078    *   { 'name': 'fred',   'age': 40 }
10079    * ];
10080    *
10081    * // using "_.pluck" callback shorthand
10082    * _.every(characters, 'age');
10083    * // => true
10084    *
10085    * // using "_.where" callback shorthand
10086    * _.every(characters, { 'age': 36 });
10087    * // => false
10088    */
10089   function every(collection, callback, thisArg) {
10090     var result = true;
10091     callback = lodash.createCallback(callback, thisArg, 3);
10092
10093     if (isArray(collection)) {
10094       var index = -1,
10095           length = collection.length;
10096
10097       while (++index < length) {
10098         if (!(result = !!callback(collection[index], index, collection))) {
10099           break;
10100         }
10101       }
10102     } else {
10103       baseEach(collection, function(value, index, collection) {
10104         return (result = !!callback(value, index, collection));
10105       });
10106     }
10107     return result;
10108   }
10109
10110   /**
10111    * Iterates over elements of a collection, returning an array of all elements
10112    * the callback returns truey for. The callback is bound to `thisArg` and
10113    * invoked with three arguments; (value, index|key, collection).
10114    *
10115    * If a property name is provided for `callback` the created "_.pluck" style
10116    * callback will return the property value of the given element.
10117    *
10118    * If an object is provided for `callback` the created "_.where" style callback
10119    * will return `true` for elements that have the properties of the given object,
10120    * else `false`.
10121    *
10122    * @static
10123    * @memberOf _
10124    * @alias select
10125    * @category Collections
10126    * @param {Array|Object|string} collection The collection to iterate over.
10127    * @param {Function|Object|string} [callback=identity] The function called
10128    *  per iteration. If a property name or object is provided it will be used
10129    *  to create a "_.pluck" or "_.where" style callback, respectively.
10130    * @param {*} [thisArg] The `this` binding of `callback`.
10131    * @returns {Array} Returns a new array of elements that passed the callback check.
10132    * @example
10133    *
10134    * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
10135    * // => [2, 4, 6]
10136    *
10137    * var characters = [
10138    *   { 'name': 'barney', 'age': 36, 'blocked': false },
10139    *   { 'name': 'fred',   'age': 40, 'blocked': true }
10140    * ];
10141    *
10142    * // using "_.pluck" callback shorthand
10143    * _.filter(characters, 'blocked');
10144    * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
10145    *
10146    * // using "_.where" callback shorthand
10147    * _.filter(characters, { 'age': 36 });
10148    * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
10149    */
10150   function filter(collection, callback, thisArg) {
10151     var result = [];
10152     callback = lodash.createCallback(callback, thisArg, 3);
10153
10154     if (isArray(collection)) {
10155       var index = -1,
10156           length = collection.length;
10157
10158       while (++index < length) {
10159         var value = collection[index];
10160         if (callback(value, index, collection)) {
10161           result.push(value);
10162         }
10163       }
10164     } else {
10165       baseEach(collection, function(value, index, collection) {
10166         if (callback(value, index, collection)) {
10167           result.push(value);
10168         }
10169       });
10170     }
10171     return result;
10172   }
10173
10174   /**
10175    * Iterates over elements of a collection, returning the first element that
10176    * the callback returns truey for. The callback is bound to `thisArg` and
10177    * invoked with three arguments; (value, index|key, collection).
10178    *
10179    * If a property name is provided for `callback` the created "_.pluck" style
10180    * callback will return the property value of the given element.
10181    *
10182    * If an object is provided for `callback` the created "_.where" style callback
10183    * will return `true` for elements that have the properties of the given object,
10184    * else `false`.
10185    *
10186    * @static
10187    * @memberOf _
10188    * @alias detect, findWhere
10189    * @category Collections
10190    * @param {Array|Object|string} collection The collection to iterate over.
10191    * @param {Function|Object|string} [callback=identity] The function called
10192    *  per iteration. If a property name or object is provided it will be used
10193    *  to create a "_.pluck" or "_.where" style callback, respectively.
10194    * @param {*} [thisArg] The `this` binding of `callback`.
10195    * @returns {*} Returns the found element, else `undefined`.
10196    * @example
10197    *
10198    * var characters = [
10199    *   { 'name': 'barney',  'age': 36, 'blocked': false },
10200    *   { 'name': 'fred',    'age': 40, 'blocked': true },
10201    *   { 'name': 'pebbles', 'age': 1,  'blocked': false }
10202    * ];
10203    *
10204    * _.find(characters, function(chr) {
10205    *   return chr.age < 40;
10206    * });
10207    * // => { 'name': 'barney', 'age': 36, 'blocked': false }
10208    *
10209    * // using "_.where" callback shorthand
10210    * _.find(characters, { 'age': 1 });
10211    * // =>  { 'name': 'pebbles', 'age': 1, 'blocked': false }
10212    *
10213    * // using "_.pluck" callback shorthand
10214    * _.find(characters, 'blocked');
10215    * // => { 'name': 'fred', 'age': 40, 'blocked': true }
10216    */
10217   function find(collection, callback, thisArg) {
10218     callback = lodash.createCallback(callback, thisArg, 3);
10219
10220     if (isArray(collection)) {
10221       var index = -1,
10222           length = collection.length;
10223
10224       while (++index < length) {
10225         var value = collection[index];
10226         if (callback(value, index, collection)) {
10227           return value;
10228         }
10229       }
10230     } else {
10231       var result;
10232       baseEach(collection, function(value, index, collection) {
10233         if (callback(value, index, collection)) {
10234           result = value;
10235           return false;
10236         }
10237       });
10238       return result;
10239     }
10240   }
10241
10242   /**
10243    * Iterates over elements of a collection, executing the callback for each
10244    * element. The callback is bound to `thisArg` and invoked with three arguments;
10245    * (value, index|key, collection). Callbacks may exit iteration early by
10246    * explicitly returning `false`.
10247    *
10248    * Note: As with other "Collections" methods, objects with a `length` property
10249    * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
10250    * may be used for object iteration.
10251    *
10252    * @static
10253    * @memberOf _
10254    * @alias each
10255    * @category Collections
10256    * @param {Array|Object|string} collection The collection to iterate over.
10257    * @param {Function} [callback=identity] The function called per iteration.
10258    * @param {*} [thisArg] The `this` binding of `callback`.
10259    * @returns {Array|Object|string} Returns `collection`.
10260    * @example
10261    *
10262    * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
10263    * // => logs each number and returns '1,2,3'
10264    *
10265    * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
10266    * // => logs each number and returns the object (property order is not guaranteed across environments)
10267    */
10268   function forEach(collection, callback, thisArg) {
10269     if (callback && typeof thisArg == 'undefined' && isArray(collection)) {
10270       var index = -1,
10271           length = collection.length;
10272
10273       while (++index < length) {
10274         if (callback(collection[index], index, collection) === false) {
10275           break;
10276         }
10277       }
10278     } else {
10279       baseEach(collection, callback, thisArg);
10280     }
10281     return collection;
10282   }
10283
10284   /**
10285    * Creates an object composed of keys generated from the results of running
10286    * each element of a collection through the callback. The corresponding value
10287    * of each key is an array of the elements responsible for generating the key.
10288    * The callback is bound to `thisArg` and invoked with three arguments;
10289    * (value, index|key, collection).
10290    *
10291    * If a property name is provided for `callback` the created "_.pluck" style
10292    * callback will return the property value of the given element.
10293    *
10294    * If an object is provided for `callback` the created "_.where" style callback
10295    * will return `true` for elements that have the properties of the given object,
10296    * else `false`
10297    *
10298    * @static
10299    * @memberOf _
10300    * @category Collections
10301    * @param {Array|Object|string} collection The collection to iterate over.
10302    * @param {Function|Object|string} [callback=identity] The function called
10303    *  per iteration. If a property name or object is provided it will be used
10304    *  to create a "_.pluck" or "_.where" style callback, respectively.
10305    * @param {*} [thisArg] The `this` binding of `callback`.
10306    * @returns {Object} Returns the composed aggregate object.
10307    * @example
10308    *
10309    * _.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); });
10310    * // => { '4': [4.2], '6': [6.1, 6.4] }
10311    *
10312    * _.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math);
10313    * // => { '4': [4.2], '6': [6.1, 6.4] }
10314    *
10315    * // using "_.pluck" callback shorthand
10316    * _.groupBy(['one', 'two', 'three'], 'length');
10317    * // => { '3': ['one', 'two'], '5': ['three'] }
10318    */
10319   var groupBy = createAggregator(function(result, value, key) {
10320     (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value);
10321   });
10322
10323   /**
10324    * Creates an array of values by running each element in the collection
10325    * through the callback. The callback is bound to `thisArg` and invoked with
10326    * three arguments; (value, index|key, collection).
10327    *
10328    * If a property name is provided for `callback` the created "_.pluck" style
10329    * callback will return the property value of the given element.
10330    *
10331    * If an object is provided for `callback` the created "_.where" style callback
10332    * will return `true` for elements that have the properties of the given object,
10333    * else `false`.
10334    *
10335    * @static
10336    * @memberOf _
10337    * @alias collect
10338    * @category Collections
10339    * @param {Array|Object|string} collection The collection to iterate over.
10340    * @param {Function|Object|string} [callback=identity] The function called
10341    *  per iteration. If a property name or object is provided it will be used
10342    *  to create a "_.pluck" or "_.where" style callback, respectively.
10343    * @param {*} [thisArg] The `this` binding of `callback`.
10344    * @returns {Array} Returns a new array of the results of each `callback` execution.
10345    * @example
10346    *
10347    * _.map([1, 2, 3], function(num) { return num * 3; });
10348    * // => [3, 6, 9]
10349    *
10350    * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
10351    * // => [3, 6, 9] (property order is not guaranteed across environments)
10352    *
10353    * var characters = [
10354    *   { 'name': 'barney', 'age': 36 },
10355    *   { 'name': 'fred',   'age': 40 }
10356    * ];
10357    *
10358    * // using "_.pluck" callback shorthand
10359    * _.map(characters, 'name');
10360    * // => ['barney', 'fred']
10361    */
10362   function map(collection, callback, thisArg) {
10363     var index = -1,
10364         length = collection ? collection.length : 0,
10365         result = Array(typeof length == 'number' ? length : 0);
10366
10367     callback = lodash.createCallback(callback, thisArg, 3);
10368     if (isArray(collection)) {
10369       while (++index < length) {
10370         result[index] = callback(collection[index], index, collection);
10371       }
10372     } else {
10373       baseEach(collection, function(value, key, collection) {
10374         result[++index] = callback(value, key, collection);
10375       });
10376     }
10377     return result;
10378   }
10379
10380   /**
10381    * Retrieves the value of a specified property from all elements in the collection.
10382    *
10383    * @static
10384    * @memberOf _
10385    * @type Function
10386    * @category Collections
10387    * @param {Array|Object|string} collection The collection to iterate over.
10388    * @param {string} property The property to pluck.
10389    * @returns {Array} Returns a new array of property values.
10390    * @example
10391    *
10392    * var characters = [
10393    *   { 'name': 'barney', 'age': 36 },
10394    *   { 'name': 'fred',   'age': 40 }
10395    * ];
10396    *
10397    * _.pluck(characters, 'name');
10398    * // => ['barney', 'fred']
10399    */
10400   var pluck = map;
10401
10402   /**
10403    * Reduces a collection to a value which is the accumulated result of running
10404    * each element in the collection through the callback, where each successive
10405    * callback execution consumes the return value of the previous execution. If
10406    * `accumulator` is not provided the first element of the collection will be
10407    * used as the initial `accumulator` value. The callback is bound to `thisArg`
10408    * and invoked with four arguments; (accumulator, value, index|key, collection).
10409    *
10410    * @static
10411    * @memberOf _
10412    * @alias foldl, inject
10413    * @category Collections
10414    * @param {Array|Object|string} collection The collection to iterate over.
10415    * @param {Function} [callback=identity] The function called per iteration.
10416    * @param {*} [accumulator] Initial value of the accumulator.
10417    * @param {*} [thisArg] The `this` binding of `callback`.
10418    * @returns {*} Returns the accumulated value.
10419    * @example
10420    *
10421    * var sum = _.reduce([1, 2, 3], function(sum, num) {
10422    *   return sum + num;
10423    * });
10424    * // => 6
10425    *
10426    * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
10427    *   result[key] = num * 3;
10428    *   return result;
10429    * }, {});
10430    * // => { 'a': 3, 'b': 6, 'c': 9 }
10431    */
10432   function reduce(collection, callback, accumulator, thisArg) {
10433     var noaccum = arguments.length < 3;
10434     callback = lodash.createCallback(callback, thisArg, 4);
10435
10436     if (isArray(collection)) {
10437       var index = -1,
10438           length = collection.length;
10439
10440       if (noaccum) {
10441         accumulator = collection[++index];
10442       }
10443       while (++index < length) {
10444         accumulator = callback(accumulator, collection[index], index, collection);
10445       }
10446     } else {
10447       baseEach(collection, function(value, index, collection) {
10448         accumulator = noaccum
10449           ? (noaccum = false, value)
10450           : callback(accumulator, value, index, collection)
10451       });
10452     }
10453     return accumulator;
10454   }
10455
10456   /**
10457    * The opposite of `_.filter` this method returns the elements of a
10458    * collection that the callback does **not** return truey for.
10459    *
10460    * If a property name is provided for `callback` the created "_.pluck" style
10461    * callback will return the property value of the given element.
10462    *
10463    * If an object is provided for `callback` the created "_.where" style callback
10464    * will return `true` for elements that have the properties of the given object,
10465    * else `false`.
10466    *
10467    * @static
10468    * @memberOf _
10469    * @category Collections
10470    * @param {Array|Object|string} collection The collection to iterate over.
10471    * @param {Function|Object|string} [callback=identity] The function called
10472    *  per iteration. If a property name or object is provided it will be used
10473    *  to create a "_.pluck" or "_.where" style callback, respectively.
10474    * @param {*} [thisArg] The `this` binding of `callback`.
10475    * @returns {Array} Returns a new array of elements that failed the callback check.
10476    * @example
10477    *
10478    * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
10479    * // => [1, 3, 5]
10480    *
10481    * var characters = [
10482    *   { 'name': 'barney', 'age': 36, 'blocked': false },
10483    *   { 'name': 'fred',   'age': 40, 'blocked': true }
10484    * ];
10485    *
10486    * // using "_.pluck" callback shorthand
10487    * _.reject(characters, 'blocked');
10488    * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
10489    *
10490    * // using "_.where" callback shorthand
10491    * _.reject(characters, { 'age': 36 });
10492    * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
10493    */
10494   function reject(collection, callback, thisArg) {
10495     callback = lodash.createCallback(callback, thisArg, 3);
10496     return filter(collection, function(value, index, collection) {
10497       return !callback(value, index, collection);
10498     });
10499   }
10500
10501   /**
10502    * Checks if the callback returns a truey value for **any** element of a
10503    * collection. The function returns as soon as it finds a passing value and
10504    * does not iterate over the entire collection. The callback is bound to
10505    * `thisArg` and invoked with three arguments; (value, index|key, collection).
10506    *
10507    * If a property name is provided for `callback` the created "_.pluck" style
10508    * callback will return the property value of the given element.
10509    *
10510    * If an object is provided for `callback` the created "_.where" style callback
10511    * will return `true` for elements that have the properties of the given object,
10512    * else `false`.
10513    *
10514    * @static
10515    * @memberOf _
10516    * @alias any
10517    * @category Collections
10518    * @param {Array|Object|string} collection The collection to iterate over.
10519    * @param {Function|Object|string} [callback=identity] The function called
10520    *  per iteration. If a property name or object is provided it will be used
10521    *  to create a "_.pluck" or "_.where" style callback, respectively.
10522    * @param {*} [thisArg] The `this` binding of `callback`.
10523    * @returns {boolean} Returns `true` if any element passed the callback check,
10524    *  else `false`.
10525    * @example
10526    *
10527    * _.some([null, 0, 'yes', false], Boolean);
10528    * // => true
10529    *
10530    * var characters = [
10531    *   { 'name': 'barney', 'age': 36, 'blocked': false },
10532    *   { 'name': 'fred',   'age': 40, 'blocked': true }
10533    * ];
10534    *
10535    * // using "_.pluck" callback shorthand
10536    * _.some(characters, 'blocked');
10537    * // => true
10538    *
10539    * // using "_.where" callback shorthand
10540    * _.some(characters, { 'age': 1 });
10541    * // => false
10542    */
10543   function some(collection, callback, thisArg) {
10544     var result;
10545     callback = lodash.createCallback(callback, thisArg, 3);
10546
10547     if (isArray(collection)) {
10548       var index = -1,
10549           length = collection.length;
10550
10551       while (++index < length) {
10552         if ((result = callback(collection[index], index, collection))) {
10553           break;
10554         }
10555       }
10556     } else {
10557       baseEach(collection, function(value, index, collection) {
10558         return !(result = callback(value, index, collection));
10559       });
10560     }
10561     return !!result;
10562   }
10563
10564   /*--------------------------------------------------------------------------*/
10565
10566   /**
10567    * Creates an array with all falsey values removed. The values `false`, `null`,
10568    * `0`, `""`, `undefined`, and `NaN` are all falsey.
10569    *
10570    * @static
10571    * @memberOf _
10572    * @category Arrays
10573    * @param {Array} array The array to compact.
10574    * @returns {Array} Returns a new array of filtered values.
10575    * @example
10576    *
10577    * _.compact([0, 1, false, 2, '', 3]);
10578    * // => [1, 2, 3]
10579    */
10580   function compact(array) {
10581     var index = -1,
10582         length = array ? array.length : 0,
10583         result = [];
10584
10585     while (++index < length) {
10586       var value = array[index];
10587       if (value) {
10588         result.push(value);
10589       }
10590     }
10591     return result;
10592   }
10593
10594   /**
10595    * Creates an array excluding all values of the provided arrays using strict
10596    * equality for comparisons, i.e. `===`.
10597    *
10598    * @static
10599    * @memberOf _
10600    * @category Arrays
10601    * @param {Array} array The array to process.
10602    * @param {...Array} [values] The arrays of values to exclude.
10603    * @returns {Array} Returns a new array of filtered values.
10604    * @example
10605    *
10606    * _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
10607    * // => [1, 3, 4]
10608    */
10609   function difference(array) {
10610     return baseDifference(array, baseFlatten(arguments, true, true, 1));
10611   }
10612
10613   /**
10614    * Gets the first element or first `n` elements of an array. If a callback
10615    * is provided elements at the beginning of the array are returned as long
10616    * as the callback returns truey. The callback is bound to `thisArg` and
10617    * invoked with three arguments; (value, index, array).
10618    *
10619    * If a property name is provided for `callback` the created "_.pluck" style
10620    * callback will return the property value of the given element.
10621    *
10622    * If an object is provided for `callback` the created "_.where" style callback
10623    * will return `true` for elements that have the properties of the given object,
10624    * else `false`.
10625    *
10626    * @static
10627    * @memberOf _
10628    * @alias head, take
10629    * @category Arrays
10630    * @param {Array} array The array to query.
10631    * @param {Function|Object|number|string} [callback] The function called
10632    *  per element or the number of elements to return. If a property name or
10633    *  object is provided it will be used to create a "_.pluck" or "_.where"
10634    *  style callback, respectively.
10635    * @param {*} [thisArg] The `this` binding of `callback`.
10636    * @returns {*} Returns the first element(s) of `array`.
10637    * @example
10638    *
10639    * _.first([1, 2, 3]);
10640    * // => 1
10641    *
10642    * _.first([1, 2, 3], 2);
10643    * // => [1, 2]
10644    *
10645    * _.first([1, 2, 3], function(num) {
10646    *   return num < 3;
10647    * });
10648    * // => [1, 2]
10649    *
10650    * var characters = [
10651    *   { 'name': 'barney',  'blocked': true,  'employer': 'slate' },
10652    *   { 'name': 'fred',    'blocked': false, 'employer': 'slate' },
10653    *   { 'name': 'pebbles', 'blocked': true,  'employer': 'na' }
10654    * ];
10655    *
10656    * // using "_.pluck" callback shorthand
10657    * _.first(characters, 'blocked');
10658    * // => [{ 'name': 'barney', 'blocked': true, 'employer': 'slate' }]
10659    *
10660    * // using "_.where" callback shorthand
10661    * _.pluck(_.first(characters, { 'employer': 'slate' }), 'name');
10662    * // => ['barney', 'fred']
10663    */
10664   function first(array, callback, thisArg) {
10665     var n = 0,
10666         length = array ? array.length : 0;
10667
10668     if (typeof callback != 'number' && callback != null) {
10669       var index = -1;
10670       callback = lodash.createCallback(callback, thisArg, 3);
10671       while (++index < length && callback(array[index], index, array)) {
10672         n++;
10673       }
10674     } else {
10675       n = callback;
10676       if (n == null || thisArg) {
10677         return array ? array[0] : undefined;
10678       }
10679     }
10680     return slice(array, 0, nativeMin(nativeMax(0, n), length));
10681   }
10682
10683   /**
10684    * Flattens a nested array (the nesting can be to any depth). If `isShallow`
10685    * is truey, the array will only be flattened a single level. If a callback
10686    * is provided each element of the array is passed through the callback before
10687    * flattening. The callback is bound to `thisArg` and invoked with three
10688    * arguments; (value, index, array).
10689    *
10690    * If a property name is provided for `callback` the created "_.pluck" style
10691    * callback will return the property value of the given element.
10692    *
10693    * If an object is provided for `callback` the created "_.where" style callback
10694    * will return `true` for elements that have the properties of the given object,
10695    * else `false`.
10696    *
10697    * @static
10698    * @memberOf _
10699    * @category Arrays
10700    * @param {Array} array The array to flatten.
10701    * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level.
10702    * @param {Function|Object|string} [callback=identity] The function called
10703    *  per iteration. If a property name or object is provided it will be used
10704    *  to create a "_.pluck" or "_.where" style callback, respectively.
10705    * @param {*} [thisArg] The `this` binding of `callback`.
10706    * @returns {Array} Returns a new flattened array.
10707    * @example
10708    *
10709    * _.flatten([1, [2], [3, [[4]]]]);
10710    * // => [1, 2, 3, 4];
10711    *
10712    * _.flatten([1, [2], [3, [[4]]]], true);
10713    * // => [1, 2, 3, [[4]]];
10714    *
10715    * var characters = [
10716    *   { 'name': 'barney', 'age': 30, 'pets': ['hoppy'] },
10717    *   { 'name': 'fred',   'age': 40, 'pets': ['baby puss', 'dino'] }
10718    * ];
10719    *
10720    * // using "_.pluck" callback shorthand
10721    * _.flatten(characters, 'pets');
10722    * // => ['hoppy', 'baby puss', 'dino']
10723    */
10724   function flatten(array, isShallow, callback, thisArg) {
10725     // juggle arguments
10726     if (typeof isShallow != 'boolean' && isShallow != null) {
10727       thisArg = callback;
10728       callback = (typeof isShallow != 'function' && thisArg && thisArg[isShallow] === array) ? null : isShallow;
10729       isShallow = false;
10730     }
10731     if (callback != null) {
10732       array = map(array, callback, thisArg);
10733     }
10734     return baseFlatten(array, isShallow);
10735   }
10736
10737   /**
10738    * Gets the index at which the first occurrence of `value` is found using
10739    * strict equality for comparisons, i.e. `===`. If the array is already sorted
10740    * providing `true` for `fromIndex` will run a faster binary search.
10741    *
10742    * @static
10743    * @memberOf _
10744    * @category Arrays
10745    * @param {Array} array The array to search.
10746    * @param {*} value The value to search for.
10747    * @param {boolean|number} [fromIndex=0] The index to search from or `true`
10748    *  to perform a binary search on a sorted array.
10749    * @returns {number} Returns the index of the matched value or `-1`.
10750    * @example
10751    *
10752    * _.indexOf([1, 2, 3, 1, 2, 3], 2);
10753    * // => 1
10754    *
10755    * _.indexOf([1, 2, 3, 1, 2, 3], 2, 3);
10756    * // => 4
10757    *
10758    * _.indexOf([1, 1, 2, 2, 3, 3], 2, true);
10759    * // => 2
10760    */
10761   function indexOf(array, value, fromIndex) {
10762     if (typeof fromIndex == 'number') {
10763       var length = array ? array.length : 0;
10764       fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex || 0);
10765     } else if (fromIndex) {
10766       var index = sortedIndex(array, value);
10767       return array[index] === value ? index : -1;
10768     }
10769     return baseIndexOf(array, value, fromIndex);
10770   }
10771
10772   /**
10773    * Creates an array of unique values present in all provided arrays using
10774    * strict equality for comparisons, i.e. `===`.
10775    *
10776    * @static
10777    * @memberOf _
10778    * @category Arrays
10779    * @param {...Array} [array] The arrays to inspect.
10780    * @returns {Array} Returns an array of composite values.
10781    * @example
10782    *
10783    * _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
10784    * // => [1, 2]
10785    */
10786   function intersection(array) {
10787     var args = arguments,
10788         argsLength = args.length,
10789         argsIndex = -1,
10790         caches = getArray(),
10791         index = -1,
10792         indexOf = getIndexOf(),
10793         length = array ? array.length : 0,
10794         result = [],
10795         seen = getArray();
10796
10797     while (++argsIndex < argsLength) {
10798       var value = args[argsIndex];
10799       caches[argsIndex] = indexOf === baseIndexOf &&
10800         (value ? value.length : 0) >= largeArraySize &&
10801         createCache(argsIndex ? args[argsIndex] : seen);
10802     }
10803     outer:
10804     while (++index < length) {
10805       var cache = caches[0];
10806       value = array[index];
10807
10808       if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {
10809         argsIndex = argsLength;
10810         (cache || seen).push(value);
10811         while (--argsIndex) {
10812           cache = caches[argsIndex];
10813           if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
10814             continue outer;
10815           }
10816         }
10817         result.push(value);
10818       }
10819     }
10820     while (argsLength--) {
10821       cache = caches[argsLength];
10822       if (cache) {
10823         releaseObject(cache);
10824       }
10825     }
10826     releaseArray(caches);
10827     releaseArray(seen);
10828     return result;
10829   }
10830
10831   /**
10832    * Gets the last element or last `n` elements of an array. If a callback is
10833    * provided elements at the end of the array are returned as long as the
10834    * callback returns truey. The callback is bound to `thisArg` and invoked
10835    * with three arguments; (value, index, array).
10836    *
10837    * If a property name is provided for `callback` the created "_.pluck" style
10838    * callback will return the property value of the given element.
10839    *
10840    * If an object is provided for `callback` the created "_.where" style callback
10841    * will return `true` for elements that have the properties of the given object,
10842    * else `false`.
10843    *
10844    * @static
10845    * @memberOf _
10846    * @category Arrays
10847    * @param {Array} array The array to query.
10848    * @param {Function|Object|number|string} [callback] The function called
10849    *  per element or the number of elements to return. If a property name or
10850    *  object is provided it will be used to create a "_.pluck" or "_.where"
10851    *  style callback, respectively.
10852    * @param {*} [thisArg] The `this` binding of `callback`.
10853    * @returns {*} Returns the last element(s) of `array`.
10854    * @example
10855    *
10856    * _.last([1, 2, 3]);
10857    * // => 3
10858    *
10859    * _.last([1, 2, 3], 2);
10860    * // => [2, 3]
10861    *
10862    * _.last([1, 2, 3], function(num) {
10863    *   return num > 1;
10864    * });
10865    * // => [2, 3]
10866    *
10867    * var characters = [
10868    *   { 'name': 'barney',  'blocked': false, 'employer': 'slate' },
10869    *   { 'name': 'fred',    'blocked': true,  'employer': 'slate' },
10870    *   { 'name': 'pebbles', 'blocked': true,  'employer': 'na' }
10871    * ];
10872    *
10873    * // using "_.pluck" callback shorthand
10874    * _.pluck(_.last(characters, 'blocked'), 'name');
10875    * // => ['fred', 'pebbles']
10876    *
10877    * // using "_.where" callback shorthand
10878    * _.last(characters, { 'employer': 'na' });
10879    * // => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]
10880    */
10881   function last(array, callback, thisArg) {
10882     var n = 0,
10883         length = array ? array.length : 0;
10884
10885     if (typeof callback != 'number' && callback != null) {
10886       var index = length;
10887       callback = lodash.createCallback(callback, thisArg, 3);
10888       while (index-- && callback(array[index], index, array)) {
10889         n++;
10890       }
10891     } else {
10892       n = callback;
10893       if (n == null || thisArg) {
10894         return array ? array[length - 1] : undefined;
10895       }
10896     }
10897     return slice(array, nativeMax(0, length - n));
10898   }
10899
10900   /**
10901    * Uses a binary search to determine the smallest index at which a value
10902    * should be inserted into a given sorted array in order to maintain the sort
10903    * order of the array. If a callback is provided it will be executed for
10904    * `value` and each element of `array` to compute their sort ranking. The
10905    * callback is bound to `thisArg` and invoked with one argument; (value).
10906    *
10907    * If a property name is provided for `callback` the created "_.pluck" style
10908    * callback will return the property value of the given element.
10909    *
10910    * If an object is provided for `callback` the created "_.where" style callback
10911    * will return `true` for elements that have the properties of the given object,
10912    * else `false`.
10913    *
10914    * @static
10915    * @memberOf _
10916    * @category Arrays
10917    * @param {Array} array The array to inspect.
10918    * @param {*} value The value to evaluate.
10919    * @param {Function|Object|string} [callback=identity] The function called
10920    *  per iteration. If a property name or object is provided it will be used
10921    *  to create a "_.pluck" or "_.where" style callback, respectively.
10922    * @param {*} [thisArg] The `this` binding of `callback`.
10923    * @returns {number} Returns the index at which `value` should be inserted
10924    *  into `array`.
10925    * @example
10926    *
10927    * _.sortedIndex([20, 30, 50], 40);
10928    * // => 2
10929    *
10930    * // using "_.pluck" callback shorthand
10931    * _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');
10932    * // => 2
10933    *
10934    * var dict = {
10935    *   'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 }
10936    * };
10937    *
10938    * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
10939    *   return dict.wordToNumber[word];
10940    * });
10941    * // => 2
10942    *
10943    * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
10944    *   return this.wordToNumber[word];
10945    * }, dict);
10946    * // => 2
10947    */
10948   function sortedIndex(array, value, callback, thisArg) {
10949     var low = 0,
10950         high = array ? array.length : low;
10951
10952     // explicitly reference `identity` for better inlining in Firefox
10953     callback = callback ? lodash.createCallback(callback, thisArg, 1) : identity;
10954     value = callback(value);
10955
10956     while (low < high) {
10957       var mid = (low + high) >>> 1;
10958       (callback(array[mid]) < value)
10959         ? low = mid + 1
10960         : high = mid;
10961     }
10962     return low;
10963   }
10964
10965   /**
10966    * Creates an array of unique values, in order, of the provided arrays using
10967    * strict equality for comparisons, i.e. `===`.
10968    *
10969    * @static
10970    * @memberOf _
10971    * @category Arrays
10972    * @param {...Array} [array] The arrays to inspect.
10973    * @returns {Array} Returns an array of composite values.
10974    * @example
10975    *
10976    * _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
10977    * // => [1, 2, 3, 101, 10]
10978    */
10979   function union(array) {
10980     return baseUniq(baseFlatten(arguments, true, true));
10981   }
10982
10983   /**
10984    * Creates a duplicate-value-free version of an array using strict equality
10985    * for comparisons, i.e. `===`. If the array is sorted, providing
10986    * `true` for `isSorted` will use a faster algorithm. If a callback is provided
10987    * each element of `array` is passed through the callback before uniqueness
10988    * is computed. The callback is bound to `thisArg` and invoked with three
10989    * arguments; (value, index, array).
10990    *
10991    * If a property name is provided for `callback` the created "_.pluck" style
10992    * callback will return the property value of the given element.
10993    *
10994    * If an object is provided for `callback` the created "_.where" style callback
10995    * will return `true` for elements that have the properties of the given object,
10996    * else `false`.
10997    *
10998    * @static
10999    * @memberOf _
11000    * @alias unique
11001    * @category Arrays
11002    * @param {Array} array The array to process.
11003    * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
11004    * @param {Function|Object|string} [callback=identity] The function called
11005    *  per iteration. If a property name or object is provided it will be used
11006    *  to create a "_.pluck" or "_.where" style callback, respectively.
11007    * @param {*} [thisArg] The `this` binding of `callback`.
11008    * @returns {Array} Returns a duplicate-value-free array.
11009    * @example
11010    *
11011    * _.uniq([1, 2, 1, 3, 1]);
11012    * // => [1, 2, 3]
11013    *
11014    * _.uniq([1, 1, 2, 2, 3], true);
11015    * // => [1, 2, 3]
11016    *
11017    * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
11018    * // => ['A', 'b', 'C']
11019    *
11020    * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
11021    * // => [1, 2.5, 3]
11022    *
11023    * // using "_.pluck" callback shorthand
11024    * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
11025    * // => [{ 'x': 1 }, { 'x': 2 }]
11026    */
11027   function uniq(array, isSorted, callback, thisArg) {
11028     // juggle arguments
11029     if (typeof isSorted != 'boolean' && isSorted != null) {
11030       thisArg = callback;
11031       callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;
11032       isSorted = false;
11033     }
11034     if (callback != null) {
11035       callback = lodash.createCallback(callback, thisArg, 3);
11036     }
11037     return baseUniq(array, isSorted, callback);
11038   }
11039
11040   /**
11041    * Creates an array excluding all provided values using strict equality for
11042    * comparisons, i.e. `===`.
11043    *
11044    * @static
11045    * @memberOf _
11046    * @category Arrays
11047    * @param {Array} array The array to filter.
11048    * @param {...*} [value] The values to exclude.
11049    * @returns {Array} Returns a new array of filtered values.
11050    * @example
11051    *
11052    * _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
11053    * // => [2, 3, 4]
11054    */
11055   function without(array) {
11056     return baseDifference(array, slice(arguments, 1));
11057   }
11058
11059   /*--------------------------------------------------------------------------*/
11060
11061   /**
11062    * Creates a function that, when called, invokes `func` with the `this`
11063    * binding of `thisArg` and prepends any additional `bind` arguments to those
11064    * provided to the bound function.
11065    *
11066    * @static
11067    * @memberOf _
11068    * @category Functions
11069    * @param {Function} func The function to bind.
11070    * @param {*} [thisArg] The `this` binding of `func`.
11071    * @param {...*} [arg] Arguments to be partially applied.
11072    * @returns {Function} Returns the new bound function.
11073    * @example
11074    *
11075    * var func = function(greeting) {
11076    *   return greeting + ' ' + this.name;
11077    * };
11078    *
11079    * func = _.bind(func, { 'name': 'fred' }, 'hi');
11080    * func();
11081    * // => 'hi fred'
11082    */
11083   function bind(func, thisArg) {
11084     return arguments.length > 2
11085       ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)
11086       : createWrapper(func, 1, null, null, thisArg);
11087   }
11088
11089   /**
11090    * Produces a callback bound to an optional `thisArg`. If `func` is a property
11091    * name the created callback will return the property value for a given element.
11092    * If `func` is an object the created callback will return `true` for elements
11093    * that contain the equivalent object properties, otherwise it will return `false`.
11094    *
11095    * @static
11096    * @memberOf _
11097    * @category Functions
11098    * @param {*} [func=identity] The value to convert to a callback.
11099    * @param {*} [thisArg] The `this` binding of the created callback.
11100    * @param {number} [argCount] The number of arguments the callback accepts.
11101    * @returns {Function} Returns a callback function.
11102    * @example
11103    *
11104    * var characters = [
11105    *   { 'name': 'barney', 'age': 36 },
11106    *   { 'name': 'fred',   'age': 40 }
11107    * ];
11108    *
11109    * // wrap to create custom callback shorthands
11110    * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
11111    *   var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
11112    *   return !match ? func(callback, thisArg) : function(object) {
11113    *     return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
11114    *   };
11115    * });
11116    *
11117    * _.filter(characters, 'age__gt38');
11118    * // => [{ 'name': 'fred', 'age': 40 }]
11119    */
11120   function createCallback(func, thisArg, argCount) {
11121     var type = typeof func;
11122     if (func == null || type == 'function') {
11123       return baseCreateCallback(func, thisArg, argCount);
11124     }
11125     // handle "_.pluck" style callback shorthands
11126     if (type != 'object') {
11127       return function(object) {
11128         return object[func];
11129       };
11130     }
11131     var props = keys(func),
11132         key = props[0],
11133         a = func[key];
11134
11135     // handle "_.where" style callback shorthands
11136     if (props.length == 1 && a === a && !isObject(a)) {
11137       // fast path the common case of providing an object with a single
11138       // property containing a primitive value
11139       return function(object) {
11140         var b = object[key];
11141         return a === b && (a !== 0 || (1 / a == 1 / b));
11142       };
11143     }
11144     return function(object) {
11145       var length = props.length,
11146           result = false;
11147
11148       while (length--) {
11149         if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
11150           break;
11151         }
11152       }
11153       return result;
11154     };
11155   }
11156
11157   /**
11158    * Creates a function that will delay the execution of `func` until after
11159    * `wait` milliseconds have elapsed since the last time it was invoked.
11160    * Provide an options object to indicate that `func` should be invoked on
11161    * the leading and/or trailing edge of the `wait` timeout. Subsequent calls
11162    * to the debounced function will return the result of the last `func` call.
11163    *
11164    * Note: If `leading` and `trailing` options are `true` `func` will be called
11165    * on the trailing edge of the timeout only if the the debounced function is
11166    * invoked more than once during the `wait` timeout.
11167    *
11168    * @static
11169    * @memberOf _
11170    * @category Functions
11171    * @param {Function} func The function to debounce.
11172    * @param {number} wait The number of milliseconds to delay.
11173    * @param {Object} [options] The options object.
11174    * @param {boolean} [options.leading=false] Specify execution on the leading edge of the timeout.
11175    * @param {number} [options.maxWait] The maximum time `func` is allowed to be delayed before it's called.
11176    * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout.
11177    * @returns {Function} Returns the new debounced function.
11178    * @example
11179    *
11180    * // avoid costly calculations while the window size is in flux
11181    * var lazyLayout = _.debounce(calculateLayout, 150);
11182    * jQuery(window).on('resize', lazyLayout);
11183    *
11184    * // execute `sendMail` when the click event is fired, debouncing subsequent calls
11185    * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {
11186    *   'leading': true,
11187    *   'trailing': false
11188    * });
11189    *
11190    * // ensure `batchLog` is executed once after 1 second of debounced calls
11191    * var source = new EventSource('/stream');
11192    * source.addEventListener('message', _.debounce(batchLog, 250, {
11193    *   'maxWait': 1000
11194    * }, false);
11195    */
11196   function debounce(func, wait, options) {
11197     var args,
11198         maxTimeoutId,
11199         result,
11200         stamp,
11201         thisArg,
11202         timeoutId,
11203         trailingCall,
11204         lastCalled = 0,
11205         maxWait = false,
11206         trailing = true;
11207
11208     if (!isFunction(func)) {
11209       throw new TypeError;
11210     }
11211     wait = nativeMax(0, wait) || 0;
11212     if (options === true) {
11213       var leading = true;
11214       trailing = false;
11215     } else if (isObject(options)) {
11216       leading = options.leading;
11217       maxWait = 'maxWait' in options && (nativeMax(wait, options.maxWait) || 0);
11218       trailing = 'trailing' in options ? options.trailing : trailing;
11219     }
11220     var delayed = function() {
11221       var remaining = wait - (now() - stamp);
11222       if (remaining <= 0) {
11223         if (maxTimeoutId) {
11224           clearTimeout(maxTimeoutId);
11225         }
11226         var isCalled = trailingCall;
11227         maxTimeoutId = timeoutId = trailingCall = undefined;
11228         if (isCalled) {
11229           lastCalled = now();
11230           result = func.apply(thisArg, args);
11231           if (!timeoutId && !maxTimeoutId) {
11232             args = thisArg = null;
11233           }
11234         }
11235       } else {
11236         timeoutId = setTimeout(delayed, remaining);
11237       }
11238     };
11239
11240     var maxDelayed = function() {
11241       if (timeoutId) {
11242         clearTimeout(timeoutId);
11243       }
11244       maxTimeoutId = timeoutId = trailingCall = undefined;
11245       if (trailing || (maxWait !== wait)) {
11246         lastCalled = now();
11247         result = func.apply(thisArg, args);
11248         if (!timeoutId && !maxTimeoutId) {
11249           args = thisArg = null;
11250         }
11251       }
11252     };
11253
11254     return function() {
11255       args = arguments;
11256       stamp = now();
11257       thisArg = this;
11258       trailingCall = trailing && (timeoutId || !leading);
11259
11260       if (maxWait === false) {
11261         var leadingCall = leading && !timeoutId;
11262       } else {
11263         if (!maxTimeoutId && !leading) {
11264           lastCalled = stamp;
11265         }
11266         var remaining = maxWait - (stamp - lastCalled),
11267             isCalled = remaining <= 0;
11268
11269         if (isCalled) {
11270           if (maxTimeoutId) {
11271             maxTimeoutId = clearTimeout(maxTimeoutId);
11272           }
11273           lastCalled = stamp;
11274           result = func.apply(thisArg, args);
11275         }
11276         else if (!maxTimeoutId) {
11277           maxTimeoutId = setTimeout(maxDelayed, remaining);
11278         }
11279       }
11280       if (isCalled && timeoutId) {
11281         timeoutId = clearTimeout(timeoutId);
11282       }
11283       else if (!timeoutId && wait !== maxWait) {
11284         timeoutId = setTimeout(delayed, wait);
11285       }
11286       if (leadingCall) {
11287         isCalled = true;
11288         result = func.apply(thisArg, args);
11289       }
11290       if (isCalled && !timeoutId && !maxTimeoutId) {
11291         args = thisArg = null;
11292       }
11293       return result;
11294     };
11295   }
11296
11297   /**
11298    * Creates a function that, when executed, will only call the `func` function
11299    * at most once per every `wait` milliseconds. Provide an options object to
11300    * indicate that `func` should be invoked on the leading and/or trailing edge
11301    * of the `wait` timeout. Subsequent calls to the throttled function will
11302    * return the result of the last `func` call.
11303    *
11304    * Note: If `leading` and `trailing` options are `true` `func` will be called
11305    * on the trailing edge of the timeout only if the the throttled function is
11306    * invoked more than once during the `wait` timeout.
11307    *
11308    * @static
11309    * @memberOf _
11310    * @category Functions
11311    * @param {Function} func The function to throttle.
11312    * @param {number} wait The number of milliseconds to throttle executions to.
11313    * @param {Object} [options] The options object.
11314    * @param {boolean} [options.leading=true] Specify execution on the leading edge of the timeout.
11315    * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout.
11316    * @returns {Function} Returns the new throttled function.
11317    * @example
11318    *
11319    * // avoid excessively updating the position while scrolling
11320    * var throttled = _.throttle(updatePosition, 100);
11321    * jQuery(window).on('scroll', throttled);
11322    *
11323    * // execute `renewToken` when the click event is fired, but not more than once every 5 minutes
11324    * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {
11325    *   'trailing': false
11326    * }));
11327    */
11328   function throttle(func, wait, options) {
11329     var leading = true,
11330         trailing = true;
11331
11332     if (!isFunction(func)) {
11333       throw new TypeError;
11334     }
11335     if (options === false) {
11336       leading = false;
11337     } else if (isObject(options)) {
11338       leading = 'leading' in options ? options.leading : leading;
11339       trailing = 'trailing' in options ? options.trailing : trailing;
11340     }
11341     debounceOptions.leading = leading;
11342     debounceOptions.maxWait = wait;
11343     debounceOptions.trailing = trailing;
11344
11345     return debounce(func, wait, debounceOptions);
11346   }
11347
11348   /*--------------------------------------------------------------------------*/
11349
11350   /**
11351    * This method returns the first argument provided to it.
11352    *
11353    * @static
11354    * @memberOf _
11355    * @category Utilities
11356    * @param {*} value Any value.
11357    * @returns {*} Returns `value`.
11358    * @example
11359    *
11360    * var object = { 'name': 'fred' };
11361    * _.identity(object) === object;
11362    * // => true
11363    */
11364   function identity(value) {
11365     return value;
11366   }
11367
11368   /**
11369    * Adds function properties of a source object to the `lodash` function and
11370    * chainable wrapper.
11371    *
11372    * @static
11373    * @memberOf _
11374    * @category Utilities
11375    * @param {Object} object The object of function properties to add to `lodash`.
11376    * @param {Object} object The object of function properties to add to `lodash`.
11377    * @example
11378    *
11379    * _.mixin({
11380    *   'capitalize': function(string) {
11381    *     return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
11382    *   }
11383    * });
11384    *
11385    * _.capitalize('fred');
11386    * // => 'Fred'
11387    *
11388    * _('fred').capitalize();
11389    * // => 'Fred'
11390    */
11391   function mixin(object, source) {
11392     var ctor = object,
11393         isFunc = !source || isFunction(ctor);
11394
11395     if (!source) {
11396       ctor = lodashWrapper;
11397       source = object;
11398       object = lodash;
11399     }
11400     forEach(functions(source), function(methodName) {
11401       var func = object[methodName] = source[methodName];
11402       if (isFunc) {
11403         ctor.prototype[methodName] = function() {
11404           var value = this.__wrapped__,
11405               args = [value];
11406
11407           push.apply(args, arguments);
11408           var result = func.apply(object, args);
11409           if (value && typeof value == 'object' && value === result) {
11410             return this;
11411           }
11412           result = new ctor(result);
11413           result.__chain__ = this.__chain__;
11414           return result;
11415         };
11416       }
11417     });
11418   }
11419
11420   /**
11421    * A no-operation function.
11422    *
11423    * @static
11424    * @memberOf _
11425    * @category Utilities
11426    * @example
11427    *
11428    * var object = { 'name': 'fred' };
11429    * _.noop(object) === undefined;
11430    * // => true
11431    */
11432   function noop() {
11433     // no operation performed
11434   }
11435
11436   /*--------------------------------------------------------------------------*/
11437
11438   /**
11439    * Creates a `lodash` object that wraps the given value with explicit
11440    * method chaining enabled.
11441    *
11442    * @static
11443    * @memberOf _
11444    * @category Chaining
11445    * @param {*} value The value to wrap.
11446    * @returns {Object} Returns the wrapper object.
11447    * @example
11448    *
11449    * var characters = [
11450    *   { 'name': 'barney',  'age': 36 },
11451    *   { 'name': 'fred',    'age': 40 },
11452    *   { 'name': 'pebbles', 'age': 1 }
11453    * ];
11454    *
11455    * var youngest = _.chain(characters)
11456    *     .sortBy('age')
11457    *     .map(function(chr) { return chr.name + ' is ' + chr.age; })
11458    *     .first()
11459    *     .value();
11460    * // => 'pebbles is 1'
11461    */
11462   function chain(value) {
11463     value = new lodashWrapper(value);
11464     value.__chain__ = true;
11465     return value;
11466   }
11467
11468   /**
11469    * Enables explicit method chaining on the wrapper object.
11470    *
11471    * @name chain
11472    * @memberOf _
11473    * @category Chaining
11474    * @returns {*} Returns the wrapper object.
11475    * @example
11476    *
11477    * var characters = [
11478    *   { 'name': 'barney', 'age': 36 },
11479    *   { 'name': 'fred',   'age': 40 }
11480    * ];
11481    *
11482    * // without explicit chaining
11483    * _(characters).first();
11484    * // => { 'name': 'barney', 'age': 36 }
11485    *
11486    * // with explicit chaining
11487    * _(characters).chain()
11488    *   .first()
11489    *   .pick('age')
11490    *   .value()
11491    * // => { 'age': 36 }
11492    */
11493   function wrapperChain() {
11494     this.__chain__ = true;
11495     return this;
11496   }
11497
11498   /**
11499    * Produces the `toString` result of the wrapped value.
11500    *
11501    * @name toString
11502    * @memberOf _
11503    * @category Chaining
11504    * @returns {string} Returns the string result.
11505    * @example
11506    *
11507    * _([1, 2, 3]).toString();
11508    * // => '1,2,3'
11509    */
11510   function wrapperToString() {
11511     return String(this.__wrapped__);
11512   }
11513
11514   /**
11515    * Extracts the wrapped value.
11516    *
11517    * @name valueOf
11518    * @memberOf _
11519    * @alias value
11520    * @category Chaining
11521    * @returns {*} Returns the wrapped value.
11522    * @example
11523    *
11524    * _([1, 2, 3]).valueOf();
11525    * // => [1, 2, 3]
11526    */
11527   function wrapperValueOf() {
11528     return this.__wrapped__;
11529   }
11530
11531   /*--------------------------------------------------------------------------*/
11532
11533   lodash.assign = assign;
11534   lodash.bind = bind;
11535   lodash.chain = chain;
11536   lodash.compact = compact;
11537   lodash.createCallback = createCallback;
11538   lodash.debounce = debounce;
11539   lodash.difference = difference;
11540   lodash.filter = filter;
11541   lodash.flatten = flatten;
11542   lodash.forEach = forEach;
11543   lodash.forIn = forIn;
11544   lodash.forOwn = forOwn;
11545   lodash.functions = functions;
11546   lodash.groupBy = groupBy;
11547   lodash.intersection = intersection;
11548   lodash.keys = keys;
11549   lodash.map = map;
11550   lodash.merge = merge;
11551   lodash.omit = omit;
11552   lodash.pairs = pairs;
11553   lodash.pick = pick;
11554   lodash.pluck = pluck;
11555   lodash.reject = reject;
11556   lodash.throttle = throttle;
11557   lodash.union = union;
11558   lodash.uniq = uniq;
11559   lodash.values = values;
11560   lodash.without = without;
11561
11562   // add aliases
11563   lodash.collect = map;
11564   lodash.each = forEach;
11565   lodash.extend = assign;
11566   lodash.methods = functions;
11567   lodash.select = filter;
11568   lodash.unique = uniq;
11569
11570   // add functions to `lodash.prototype`
11571   mixin(lodash);
11572
11573   /*--------------------------------------------------------------------------*/
11574
11575   // add functions that return unwrapped values when chaining
11576   lodash.clone = clone;
11577   lodash.cloneDeep = cloneDeep;
11578   lodash.contains = contains;
11579   lodash.every = every;
11580   lodash.find = find;
11581   lodash.identity = identity;
11582   lodash.indexOf = indexOf;
11583   lodash.isArguments = isArguments;
11584   lodash.isArray = isArray;
11585   lodash.isEmpty = isEmpty;
11586   lodash.isEqual = isEqual;
11587   lodash.isFunction = isFunction;
11588   lodash.isObject = isObject;
11589   lodash.isPlainObject = isPlainObject;
11590   lodash.isString = isString;
11591   lodash.mixin = mixin;
11592   lodash.noop = noop;
11593   lodash.reduce = reduce;
11594   lodash.some = some;
11595   lodash.sortedIndex = sortedIndex;
11596
11597   // add aliases
11598   lodash.all = every;
11599   lodash.any = some;
11600   lodash.detect = find;
11601   lodash.findWhere = find;
11602   lodash.foldl = reduce;
11603   lodash.include = contains;
11604   lodash.inject = reduce;
11605
11606   forOwn(lodash, function(func, methodName) {
11607     if (!lodash.prototype[methodName]) {
11608       lodash.prototype[methodName] = function() {
11609         var args = [this.__wrapped__],
11610             chainAll = this.__chain__;
11611
11612         push.apply(args, arguments);
11613         var result = func.apply(lodash, args);
11614         return chainAll
11615           ? new lodashWrapper(result, chainAll)
11616           : result;
11617       };
11618     }
11619   });
11620
11621   /*--------------------------------------------------------------------------*/
11622
11623   // add functions capable of returning wrapped and unwrapped values when chaining
11624   lodash.first = first;
11625   lodash.last = last;
11626
11627   // add aliases
11628   lodash.take = first;
11629   lodash.head = first;
11630
11631   forOwn(lodash, function(func, methodName) {
11632     var callbackable = methodName !== 'sample';
11633     if (!lodash.prototype[methodName]) {
11634       lodash.prototype[methodName]= function(n, guard) {
11635         var chainAll = this.__chain__,
11636             result = func(this.__wrapped__, n, guard);
11637
11638         return !chainAll && (n == null || (guard && !(callbackable && typeof n == 'function')))
11639           ? result
11640           : new lodashWrapper(result, chainAll);
11641       };
11642     }
11643   });
11644
11645   /*--------------------------------------------------------------------------*/
11646
11647   /**
11648    * The semantic version number.
11649    *
11650    * @static
11651    * @memberOf _
11652    * @type string
11653    */
11654   lodash.VERSION = '2.3.0';
11655
11656   // add "Chaining" functions to the wrapper
11657   lodash.prototype.chain = wrapperChain;
11658   lodash.prototype.toString = wrapperToString;
11659   lodash.prototype.value = wrapperValueOf;
11660   lodash.prototype.valueOf = wrapperValueOf;
11661
11662   // add `Array` functions that return unwrapped values
11663   baseEach(['join', 'pop', 'shift'], function(methodName) {
11664     var func = arrayRef[methodName];
11665     lodash.prototype[methodName] = function() {
11666       var chainAll = this.__chain__,
11667           result = func.apply(this.__wrapped__, arguments);
11668
11669       return chainAll
11670         ? new lodashWrapper(result, chainAll)
11671         : result;
11672     };
11673   });
11674
11675   // add `Array` functions that return the wrapped value
11676   baseEach(['push', 'reverse', 'sort', 'unshift'], function(methodName) {
11677     var func = arrayRef[methodName];
11678     lodash.prototype[methodName] = function() {
11679       func.apply(this.__wrapped__, arguments);
11680       return this;
11681     };
11682   });
11683
11684   // add `Array` functions that return new wrapped values
11685   baseEach(['concat', 'slice', 'splice'], function(methodName) {
11686     var func = arrayRef[methodName];
11687     lodash.prototype[methodName] = function() {
11688       return new lodashWrapper(func.apply(this.__wrapped__, arguments), this.__chain__);
11689     };
11690   });
11691
11692   // avoid array-like object bugs with `Array#shift` and `Array#splice`
11693   // in IE < 9, Firefox < 10, Narwhal, and RingoJS
11694   if (!support.spliceObjects) {
11695     baseEach(['pop', 'shift', 'splice'], function(methodName) {
11696       var func = arrayRef[methodName],
11697           isSplice = methodName == 'splice';
11698
11699       lodash.prototype[methodName] = function() {
11700         var chainAll = this.__chain__,
11701             value = this.__wrapped__,
11702             result = func.apply(value, arguments);
11703
11704         if (value.length === 0) {
11705           delete value[0];
11706         }
11707         return (chainAll || isSplice)
11708           ? new lodashWrapper(result, chainAll)
11709           : result;
11710       };
11711     });
11712   }
11713
11714   /*--------------------------------------------------------------------------*/
11715
11716   if (freeExports && freeModule) {
11717     // in Node.js or RingoJS
11718     if (moduleExports) {
11719       (freeModule.exports = lodash)._ = lodash;
11720     }
11721
11722   }
11723   else {
11724     // in a browser or Rhino
11725     root._ = lodash;
11726   }
11727 }.call(this));
11728 (function(e){if("function"==typeof bootstrap)bootstrap("osmauth",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeOsmAuth=e}else"undefined"!=typeof window?window.osmAuth=e():global.osmAuth=e()})(function(){var define,ses,bootstrap,module,exports;
11729 return (function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({1:[function(require,module,exports){
11730 'use strict';
11731
11732 var ohauth = require('ohauth'),
11733     xtend = require('xtend'),
11734     store = require('store');
11735
11736 // # osm-auth
11737 //
11738 // This code is only compatible with IE10+ because the [XDomainRequest](http://bit.ly/LfO7xo)
11739 // object, IE<10's idea of [CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing),
11740 // does not support custom headers, which this uses everywhere.
11741 module.exports = function(o) {
11742
11743     var oauth = {};
11744
11745     // authenticated users will also have a request token secret, but it's
11746     // not used in transactions with the server
11747     oauth.authenticated = function() {
11748         return !!(token('oauth_token') && token('oauth_token_secret'));
11749     };
11750
11751     oauth.logout = function() {
11752         token('oauth_token', '');
11753         token('oauth_token_secret', '');
11754         token('oauth_request_token_secret', '');
11755         return oauth;
11756     };
11757
11758     // TODO: detect lack of click event
11759     oauth.authenticate = function(callback) {
11760         if (oauth.authenticated()) return callback();
11761
11762         oauth.logout();
11763
11764         // ## Getting a request token
11765         var params = timenonce(getAuth(o)),
11766             url = o.url + '/oauth/request_token';
11767
11768         params.oauth_signature = ohauth.signature(
11769             o.oauth_secret, '',
11770             ohauth.baseString('POST', url, params));
11771
11772         if (!o.singlepage) {
11773             // Create a 600x550 popup window in the center of the screen
11774             var w = 600, h = 550,
11775                 settings = [
11776                     ['width', w], ['height', h],
11777                     ['left', screen.width / 2 - w / 2],
11778                     ['top', screen.height / 2 - h / 2]].map(function(x) {
11779                         return x.join('=');
11780                     }).join(','),
11781                 popup = window.open('about:blank', 'oauth_window', settings);
11782         }
11783
11784         // Request a request token. When this is complete, the popup
11785         // window is redirected to OSM's authorization page.
11786         ohauth.xhr('POST', url, params, null, {}, reqTokenDone);
11787         o.loading();
11788
11789         function reqTokenDone(err, xhr) {
11790             o.done();
11791             if (err) return callback(err);
11792             var resp = ohauth.stringQs(xhr.response);
11793             token('oauth_request_token_secret', resp.oauth_token_secret);
11794             var authorize_url = o.url + '/oauth/authorize?' + ohauth.qsString({
11795                 oauth_token: resp.oauth_token,
11796                 oauth_callback: location.href.replace('index.html', '')
11797                     .replace(/#.*/, '') + o.landing
11798             });
11799
11800             if (o.singlepage) {
11801                 location.href = authorize_url;
11802             } else {
11803                 popup.location = authorize_url;
11804             }
11805         }
11806
11807         // Called by a function in a landing page, in the popup window. The
11808         // window closes itself.
11809         window.authComplete = function(token) {
11810             var oauth_token = ohauth.stringQs(token.split('?')[1]);
11811             get_access_token(oauth_token.oauth_token);
11812             delete window.authComplete;
11813         };
11814
11815         // ## Getting an request token
11816         //
11817         // At this point we have an `oauth_token`, brought in from a function
11818         // call on a landing page popup.
11819         function get_access_token(oauth_token) {
11820             var url = o.url + '/oauth/access_token',
11821                 params = timenonce(getAuth(o)),
11822                 request_token_secret = token('oauth_request_token_secret');
11823             params.oauth_token = oauth_token;
11824             params.oauth_signature = ohauth.signature(
11825                 o.oauth_secret,
11826                 request_token_secret,
11827                 ohauth.baseString('POST', url, params));
11828
11829             // ## Getting an access token
11830             //
11831             // The final token required for authentication. At this point
11832             // we have a `request token secret`
11833             ohauth.xhr('POST', url, params, null, {}, accessTokenDone);
11834             o.loading();
11835         }
11836
11837         function accessTokenDone(err, xhr) {
11838             o.done();
11839             if (err) return callback(err);
11840             var access_token = ohauth.stringQs(xhr.response);
11841             token('oauth_token', access_token.oauth_token);
11842             token('oauth_token_secret', access_token.oauth_token_secret);
11843             callback(null, oauth);
11844         }
11845     };
11846
11847     oauth.bootstrapToken = function(oauth_token, callback) {
11848         // ## Getting an request token
11849         // At this point we have an `oauth_token`, brought in from a function
11850         // call on a landing page popup.
11851         function get_access_token(oauth_token) {
11852             var url = o.url + '/oauth/access_token',
11853                 params = timenonce(getAuth(o)),
11854                 request_token_secret = token('oauth_request_token_secret');
11855             params.oauth_token = oauth_token;
11856             params.oauth_signature = ohauth.signature(
11857                 o.oauth_secret,
11858                 request_token_secret,
11859                 ohauth.baseString('POST', url, params));
11860
11861             // ## Getting an access token
11862             // The final token required for authentication. At this point
11863             // we have a `request token secret`
11864             ohauth.xhr('POST', url, params, null, {}, accessTokenDone);
11865             o.loading();
11866         }
11867
11868         function accessTokenDone(err, xhr) {
11869             o.done();
11870             if (err) return callback(err);
11871             var access_token = ohauth.stringQs(xhr.response);
11872             token('oauth_token', access_token.oauth_token);
11873             token('oauth_token_secret', access_token.oauth_token_secret);
11874             callback(null, oauth);
11875         }
11876
11877         get_access_token(oauth_token);
11878     };
11879
11880     // # xhr
11881     //
11882     // A single XMLHttpRequest wrapper that does authenticated calls if the
11883     // user has logged in.
11884     oauth.xhr = function(options, callback) {
11885         if (!oauth.authenticated()) {
11886             if (o.auto) return oauth.authenticate(run);
11887             else return callback('not authenticated', null);
11888         } else return run();
11889
11890         function run() {
11891             var params = timenonce(getAuth(o)),
11892                 url = o.url + options.path,
11893                 oauth_token_secret = token('oauth_token_secret');
11894
11895             // https://tools.ietf.org/html/rfc5849#section-3.4.1.3.1
11896             if ((!options.options || !options.options.header ||
11897                 options.options.header['Content-Type'] === 'application/x-www-form-urlencoded') &&
11898                 options.content) {
11899                 params = xtend(params, ohauth.stringQs(options.content));
11900             }
11901
11902             params.oauth_token = token('oauth_token');
11903             params.oauth_signature = ohauth.signature(
11904                 o.oauth_secret,
11905                 oauth_token_secret,
11906                 ohauth.baseString(options.method, url, params));
11907
11908             ohauth.xhr(options.method,
11909                 url, params, options.content, options.options, done);
11910         }
11911
11912         function done(err, xhr) {
11913             if (err) return callback(err);
11914             else if (xhr.responseXML) return callback(err, xhr.responseXML);
11915             else return callback(err, xhr.response);
11916         }
11917     };
11918
11919     // pre-authorize this object, if we can just get a token and token_secret
11920     // from the start
11921     oauth.preauth = function(c) {
11922         if (!c) return;
11923         if (c.oauth_token) token('oauth_token', c.oauth_token);
11924         if (c.oauth_token_secret) token('oauth_token_secret', c.oauth_token_secret);
11925         return oauth;
11926     };
11927
11928     oauth.options = function(_) {
11929         if (!arguments.length) return o;
11930
11931         o = _;
11932
11933         o.url = o.url || 'http://www.openstreetmap.org';
11934         o.landing = o.landing || 'land.html';
11935
11936         o.singlepage = o.singlepage || false;
11937
11938         // Optional loading and loading-done functions for nice UI feedback.
11939         // by default, no-ops
11940         o.loading = o.loading || function() {};
11941         o.done = o.done || function() {};
11942
11943         return oauth.preauth(o);
11944     };
11945
11946     // 'stamp' an authentication object from `getAuth()`
11947     // with a [nonce](http://en.wikipedia.org/wiki/Cryptographic_nonce)
11948     // and timestamp
11949     function timenonce(o) {
11950         o.oauth_timestamp = ohauth.timestamp();
11951         o.oauth_nonce = ohauth.nonce();
11952         return o;
11953     }
11954
11955     // get/set tokens. These are prefixed with the base URL so that `osm-auth`
11956     // can be used with multiple APIs and the keys in `localStorage`
11957     // will not clash
11958     var token;
11959
11960     if (store.enabled) {
11961         token = function (x, y) {
11962             if (arguments.length === 1) return store.get(o.url + x);
11963             else if (arguments.length === 2) return store.set(o.url + x, y);
11964         };
11965     } else {
11966         var storage = {};
11967         token = function (x, y) {
11968             if (arguments.length === 1) return storage[o.url + x];
11969             else if (arguments.length === 2) return storage[o.url + x] = y;
11970         };
11971     }
11972
11973     // Get an authentication object. If you just add and remove properties
11974     // from a single object, you'll need to use `delete` to make sure that
11975     // it doesn't contain undesired properties for authentication
11976     function getAuth(o) {
11977         return {
11978             oauth_consumer_key: o.oauth_consumer_key,
11979             oauth_signature_method: "HMAC-SHA1"
11980         };
11981     }
11982
11983     // potentially pre-authorize
11984     oauth.options(o);
11985
11986     return oauth;
11987 };
11988
11989 },{"ohauth":2,"store":3,"xtend":4}],3:[function(require,module,exports){
11990 (function(global){;(function(win){
11991         var store = {},
11992                 doc = win.document,
11993                 localStorageName = 'localStorage',
11994                 storage
11995
11996         store.disabled = false
11997         store.set = function(key, value) {}
11998         store.get = function(key) {}
11999         store.remove = function(key) {}
12000         store.clear = function() {}
12001         store.transact = function(key, defaultVal, transactionFn) {
12002                 var val = store.get(key)
12003                 if (transactionFn == null) {
12004                         transactionFn = defaultVal
12005                         defaultVal = null
12006                 }
12007                 if (typeof val == 'undefined') { val = defaultVal || {} }
12008                 transactionFn(val)
12009                 store.set(key, val)
12010         }
12011         store.getAll = function() {}
12012         store.forEach = function() {}
12013
12014         store.serialize = function(value) {
12015                 return JSON.stringify(value)
12016         }
12017         store.deserialize = function(value) {
12018                 if (typeof value != 'string') { return undefined }
12019                 try { return JSON.parse(value) }
12020                 catch(e) { return value || undefined }
12021         }
12022
12023         // Functions to encapsulate questionable FireFox 3.6.13 behavior
12024         // when about.config::dom.storage.enabled === false
12025         // See https://github.com/marcuswestin/store.js/issues#issue/13
12026         function isLocalStorageNameSupported() {
12027                 try { return (localStorageName in win && win[localStorageName]) }
12028                 catch(err) { return false }
12029         }
12030
12031         if (isLocalStorageNameSupported()) {
12032                 storage = win[localStorageName]
12033                 store.set = function(key, val) {
12034                         if (val === undefined) { return store.remove(key) }
12035                         storage.setItem(key, store.serialize(val))
12036                         return val
12037                 }
12038                 store.get = function(key) { return store.deserialize(storage.getItem(key)) }
12039                 store.remove = function(key) { storage.removeItem(key) }
12040                 store.clear = function() { storage.clear() }
12041                 store.getAll = function() {
12042                         var ret = {}
12043                         store.forEach(function(key, val) {
12044                                 ret[key] = val
12045                         })
12046                         return ret
12047                 }
12048                 store.forEach = function(callback) {
12049                         for (var i=0; i<storage.length; i++) {
12050                                 var key = storage.key(i)
12051                                 callback(key, store.get(key))
12052                         }
12053                 }
12054         } else if (doc.documentElement.addBehavior) {
12055                 var storageOwner,
12056                         storageContainer
12057                 // Since #userData storage applies only to specific paths, we need to
12058                 // somehow link our data to a specific path.  We choose /favicon.ico
12059                 // as a pretty safe option, since all browsers already make a request to
12060                 // this URL anyway and being a 404 will not hurt us here.  We wrap an
12061                 // iframe pointing to the favicon in an ActiveXObject(htmlfile) object
12062                 // (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)
12063                 // since the iframe access rules appear to allow direct access and
12064                 // manipulation of the document element, even for a 404 page.  This
12065                 // document can be used instead of the current document (which would
12066                 // have been limited to the current path) to perform #userData storage.
12067                 try {
12068                         storageContainer = new ActiveXObject('htmlfile')
12069                         storageContainer.open()
12070                         storageContainer.write('<s' + 'cript>document.w=window</s' + 'cript><iframe src="/favicon.ico"></iframe>')
12071                         storageContainer.close()
12072                         storageOwner = storageContainer.w.frames[0].document
12073                         storage = storageOwner.createElement('div')
12074                 } catch(e) {
12075                         // somehow ActiveXObject instantiation failed (perhaps some special
12076                         // security settings or otherwse), fall back to per-path storage
12077                         storage = doc.createElement('div')
12078                         storageOwner = doc.body
12079                 }
12080                 function withIEStorage(storeFunction) {
12081                         return function() {
12082                                 var args = Array.prototype.slice.call(arguments, 0)
12083                                 args.unshift(storage)
12084                                 // See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
12085                                 // and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
12086                                 storageOwner.appendChild(storage)
12087                                 storage.addBehavior('#default#userData')
12088                                 storage.load(localStorageName)
12089                                 var result = storeFunction.apply(store, args)
12090                                 storageOwner.removeChild(storage)
12091                                 return result
12092                         }
12093                 }
12094
12095                 // In IE7, keys may not contain special chars. See all of https://github.com/marcuswestin/store.js/issues/40
12096                 var forbiddenCharsRegex = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g")
12097                 function ieKeyFix(key) {
12098                         return key.replace(forbiddenCharsRegex, '___')
12099                 }
12100                 store.set = withIEStorage(function(storage, key, val) {
12101                         key = ieKeyFix(key)
12102                         if (val === undefined) { return store.remove(key) }
12103                         storage.setAttribute(key, store.serialize(val))
12104                         storage.save(localStorageName)
12105                         return val
12106                 })
12107                 store.get = withIEStorage(function(storage, key) {
12108                         key = ieKeyFix(key)
12109                         return store.deserialize(storage.getAttribute(key))
12110                 })
12111                 store.remove = withIEStorage(function(storage, key) {
12112                         key = ieKeyFix(key)
12113                         storage.removeAttribute(key)
12114                         storage.save(localStorageName)
12115                 })
12116                 store.clear = withIEStorage(function(storage) {
12117                         var attributes = storage.XMLDocument.documentElement.attributes
12118                         storage.load(localStorageName)
12119                         for (var i=0, attr; attr=attributes[i]; i++) {
12120                                 storage.removeAttribute(attr.name)
12121                         }
12122                         storage.save(localStorageName)
12123                 })
12124                 store.getAll = function(storage) {
12125                         var ret = {}
12126                         store.forEach(function(key, val) {
12127                                 ret[key] = val
12128                         })
12129                         return ret
12130                 }
12131                 store.forEach = withIEStorage(function(storage, callback) {
12132                         var attributes = storage.XMLDocument.documentElement.attributes
12133                         for (var i=0, attr; attr=attributes[i]; ++i) {
12134                                 callback(attr.name, store.deserialize(storage.getAttribute(attr.name)))
12135                         }
12136                 })
12137         }
12138
12139         try {
12140                 var testKey = '__storejs__'
12141                 store.set(testKey, testKey)
12142                 if (store.get(testKey) != testKey) { store.disabled = true }
12143                 store.remove(testKey)
12144         } catch(e) {
12145                 store.disabled = true
12146         }
12147         store.enabled = !store.disabled
12148         
12149         if (typeof module != 'undefined' && module.exports) { module.exports = store }
12150         else if (typeof define === 'function' && define.amd) { define(store) }
12151         else { win.store = store }
12152         
12153 })(this.window || global);
12154
12155 })(window)
12156 },{}],5:[function(require,module,exports){
12157 module.exports = hasKeys
12158
12159 function hasKeys(source) {
12160     return source !== null &&
12161         (typeof source === "object" ||
12162         typeof source === "function")
12163 }
12164
12165 },{}],4:[function(require,module,exports){
12166 var Keys = require("object-keys")
12167 var hasKeys = require("./has-keys")
12168
12169 module.exports = extend
12170
12171 function extend() {
12172     var target = {}
12173
12174     for (var i = 0; i < arguments.length; i++) {
12175         var source = arguments[i]
12176
12177         if (!hasKeys(source)) {
12178             continue
12179         }
12180
12181         var keys = Keys(source)
12182
12183         for (var j = 0; j < keys.length; j++) {
12184             var name = keys[j]
12185             target[name] = source[name]
12186         }
12187     }
12188
12189     return target
12190 }
12191
12192 },{"./has-keys":5,"object-keys":6}],7:[function(require,module,exports){
12193 (function(global){/**
12194  * jsHashes - A fast and independent hashing library pure JavaScript implemented (ES3 compliant) for both server and client side
12195  * 
12196  * @class Hashes
12197  * @author Tomas Aparicio <tomas@rijndael-project.com>
12198  * @license New BSD (see LICENSE file)
12199  * @version 1.0.4
12200  *
12201  * Algorithms specification:
12202  *
12203  * MD5 <http://www.ietf.org/rfc/rfc1321.txt>
12204  * RIPEMD-160 <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
12205  * SHA1   <http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf>
12206  * SHA256 <http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf>
12207  * SHA512 <http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf>
12208  * HMAC <http://www.ietf.org/rfc/rfc2104.txt>
12209  *
12210  */
12211 (function(){
12212   var Hashes;
12213   
12214   // private helper methods
12215   function utf8Encode(str) {
12216     var  x, y, output = '', i = -1, l;
12217     
12218     if (str && str.length) {
12219       l = str.length;
12220       while ((i+=1) < l) {
12221         /* Decode utf-16 surrogate pairs */
12222         x = str.charCodeAt(i);
12223         y = i + 1 < l ? str.charCodeAt(i + 1) : 0;
12224         if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) {
12225             x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
12226             i += 1;
12227         }
12228         /* Encode output as utf-8 */
12229         if (x <= 0x7F) {
12230             output += String.fromCharCode(x);
12231         } else if (x <= 0x7FF) {
12232             output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F),
12233                         0x80 | ( x & 0x3F));
12234         } else if (x <= 0xFFFF) {
12235             output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F),
12236                         0x80 | ((x >>> 6 ) & 0x3F),
12237                         0x80 | ( x & 0x3F));
12238         } else if (x <= 0x1FFFFF) {
12239             output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07),
12240                         0x80 | ((x >>> 12) & 0x3F),
12241                         0x80 | ((x >>> 6 ) & 0x3F),
12242                         0x80 | ( x & 0x3F));
12243         }
12244       }
12245     }
12246     return output;
12247   }
12248   
12249   function utf8Decode(str) {
12250     var i, ac, c1, c2, c3, arr = [], l;
12251     i = ac = c1 = c2 = c3 = 0;
12252     
12253     if (str && str.length) {
12254       l = str.length;
12255       str += '';
12256     
12257       while (i < l) {
12258           c1 = str.charCodeAt(i);
12259           ac += 1;
12260           if (c1 < 128) {
12261               arr[ac] = String.fromCharCode(c1);
12262               i+=1;
12263           } else if (c1 > 191 && c1 < 224) {
12264               c2 = str.charCodeAt(i + 1);
12265               arr[ac] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
12266               i += 2;
12267           } else {
12268               c2 = str.charCodeAt(i + 1);
12269               c3 = str.charCodeAt(i + 2);
12270               arr[ac] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
12271               i += 3;
12272           }
12273       }
12274     }
12275     return arr.join('');
12276   }
12277
12278   /**
12279    * Add integers, wrapping at 2^32. This uses 16-bit operations internally
12280    * to work around bugs in some JS interpreters.
12281    */
12282   function safe_add(x, y) {
12283     var lsw = (x & 0xFFFF) + (y & 0xFFFF),
12284         msw = (x >> 16) + (y >> 16) + (lsw >> 16);
12285     return (msw << 16) | (lsw & 0xFFFF);
12286   }
12287
12288   /**
12289    * Bitwise rotate a 32-bit number to the left.
12290    */
12291   function bit_rol(num, cnt) {
12292     return (num << cnt) | (num >>> (32 - cnt));
12293   }
12294
12295   /**
12296    * Convert a raw string to a hex string
12297    */
12298   function rstr2hex(input, hexcase) {
12299     var hex_tab = hexcase ? '0123456789ABCDEF' : '0123456789abcdef',
12300         output = '', x, i = 0, l = input.length;
12301     for (; i < l; i+=1) {
12302       x = input.charCodeAt(i);
12303       output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F);
12304     }
12305     return output;
12306   }
12307
12308   /**
12309    * Encode a string as utf-16
12310    */
12311   function str2rstr_utf16le(input) {
12312     var i, l = input.length, output = '';
12313     for (i = 0; i < l; i+=1) {
12314       output += String.fromCharCode( input.charCodeAt(i) & 0xFF, (input.charCodeAt(i) >>> 8) & 0xFF);
12315     }
12316     return output;
12317   }
12318
12319   function str2rstr_utf16be(input) {
12320     var i, l = input.length, output = '';
12321     for (i = 0; i < l; i+=1) {
12322       output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, input.charCodeAt(i) & 0xFF);
12323     }
12324     return output;
12325   }
12326
12327   /**
12328    * Convert an array of big-endian words to a string
12329    */
12330   function binb2rstr(input) {
12331     var i, l = input.length * 32, output = '';
12332     for (i = 0; i < l; i += 8) {
12333         output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF);
12334     }
12335     return output;
12336   }
12337
12338   /**
12339    * Convert an array of little-endian words to a string
12340    */
12341   function binl2rstr(input) {
12342     var i, l = input.length * 32, output = '';
12343     for (i = 0;i < l; i += 8) {
12344       output += String.fromCharCode((input[i>>5] >>> (i % 32)) & 0xFF);
12345     }
12346     return output;
12347   }
12348
12349   /**
12350    * Convert a raw string to an array of little-endian words
12351    * Characters >255 have their high-byte silently ignored.
12352    */
12353   function rstr2binl(input) {
12354     var i, l = input.length * 8, output = Array(input.length >> 2), lo = output.length;
12355     for (i = 0; i < lo; i+=1) {
12356       output[i] = 0;
12357     }
12358     for (i = 0; i < l; i += 8) {
12359       output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (i%32);
12360     }
12361     return output;
12362   }
12363   
12364   /**
12365    * Convert a raw string to an array of big-endian words 
12366    * Characters >255 have their high-byte silently ignored.
12367    */
12368    function rstr2binb(input) {
12369       var i, l = input.length * 8, output = Array(input.length >> 2), lo = output.length;
12370       for (i = 0; i < lo; i+=1) {
12371             output[i] = 0;
12372         }
12373       for (i = 0; i < l; i += 8) {
12374             output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
12375         }
12376       return output;
12377    }
12378
12379   /**
12380    * Convert a raw string to an arbitrary string encoding
12381    */
12382   function rstr2any(input, encoding) {
12383     var divisor = encoding.length,
12384         remainders = Array(),
12385         i, q, x, ld, quotient, dividend, output, full_length;
12386   
12387     /* Convert to an array of 16-bit big-endian values, forming the dividend */
12388     dividend = Array(Math.ceil(input.length / 2));
12389     ld = dividend.length;
12390     for (i = 0; i < ld; i+=1) {
12391       dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1);
12392     }
12393   
12394     /**
12395      * Repeatedly perform a long division. The binary array forms the dividend,
12396      * the length of the encoding is the divisor. Once computed, the quotient
12397      * forms the dividend for the next step. We stop when the dividend is zerHashes.
12398      * All remainders are stored for later use.
12399      */
12400     while(dividend.length > 0) {
12401       quotient = Array();
12402       x = 0;
12403       for (i = 0; i < dividend.length; i+=1) {
12404         x = (x << 16) + dividend[i];
12405         q = Math.floor(x / divisor);
12406         x -= q * divisor;
12407         if (quotient.length > 0 || q > 0) {
12408           quotient[quotient.length] = q;
12409         }
12410       }
12411       remainders[remainders.length] = x;
12412       dividend = quotient;
12413     }
12414   
12415     /* Convert the remainders to the output string */
12416     output = '';
12417     for (i = remainders.length - 1; i >= 0; i--) {
12418       output += encoding.charAt(remainders[i]);
12419     }
12420   
12421     /* Append leading zero equivalents */
12422     full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2)));
12423     for (i = output.length; i < full_length; i+=1) {
12424       output = encoding[0] + output;
12425     }
12426     return output;
12427   }
12428
12429   /**
12430    * Convert a raw string to a base-64 string
12431    */
12432   function rstr2b64(input, b64pad) {
12433     var tab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
12434         output = '',
12435         len = input.length, i, j, triplet;
12436     b64pad= b64pad || '=';
12437     for (i = 0; i < len; i += 3) {
12438       triplet = (input.charCodeAt(i) << 16)
12439             | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0)
12440             | (i + 2 < len ? input.charCodeAt(i+2)      : 0);
12441       for (j = 0; j < 4; j+=1) {
12442         if (i * 8 + j * 6 > input.length * 8) { 
12443           output += b64pad; 
12444         } else { 
12445           output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); 
12446         }
12447        }
12448     }
12449     return output;
12450   }
12451
12452   Hashes = {
12453   /**  
12454    * @property {String} version
12455    * @readonly
12456    */
12457   VERSION : '1.0.3',
12458   /**
12459    * @member Hashes
12460    * @class Base64
12461    * @constructor
12462    */
12463   Base64 : function () {
12464     // private properties
12465     var tab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
12466         pad = '=', // default pad according with the RFC standard
12467         url = false, // URL encoding support @todo
12468         utf8 = true; // by default enable UTF-8 support encoding
12469
12470     // public method for encoding
12471     this.encode = function (input) {
12472       var i, j, triplet,
12473           output = '', 
12474           len = input.length;
12475
12476       pad = pad || '=';
12477       input = (utf8) ? utf8Encode(input) : input;
12478
12479       for (i = 0; i < len; i += 3) {
12480         triplet = (input.charCodeAt(i) << 16)
12481               | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0)
12482               | (i + 2 < len ? input.charCodeAt(i+2) : 0);
12483         for (j = 0; j < 4; j+=1) {
12484           if (i * 8 + j * 6 > len * 8) {
12485               output += pad;
12486           } else {
12487               output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F);
12488           }
12489         }
12490       }
12491       return output;    
12492     };
12493
12494     // public method for decoding
12495     this.decode = function (input) {
12496       // var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
12497       var i, o1, o2, o3, h1, h2, h3, h4, bits, ac,
12498         dec = '',
12499         arr = [];
12500       if (!input) { return input; }
12501
12502       i = ac = 0;
12503       input = input.replace(new RegExp('\\'+pad,'gi'),''); // use '='
12504       //input += '';
12505
12506       do { // unpack four hexets into three octets using index points in b64
12507         h1 = tab.indexOf(input.charAt(i+=1));
12508         h2 = tab.indexOf(input.charAt(i+=1));
12509         h3 = tab.indexOf(input.charAt(i+=1));
12510         h4 = tab.indexOf(input.charAt(i+=1));
12511
12512         bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
12513
12514         o1 = bits >> 16 & 0xff;
12515         o2 = bits >> 8 & 0xff;
12516         o3 = bits & 0xff;
12517         ac += 1;
12518
12519         if (h3 === 64) {
12520           arr[ac] = String.fromCharCode(o1);
12521         } else if (h4 === 64) {
12522           arr[ac] = String.fromCharCode(o1, o2);
12523         } else {
12524           arr[ac] = String.fromCharCode(o1, o2, o3);
12525         }
12526       } while (i < input.length);
12527
12528       dec = arr.join('');
12529       dec = (utf8) ? utf8Decode(dec) : dec;
12530
12531       return dec;
12532     };
12533
12534     // set custom pad string
12535     this.setPad = function (str) {
12536         pad = str || pad;
12537         return this;
12538     };
12539     // set custom tab string characters
12540     this.setTab = function (str) {
12541         tab = str || tab;
12542         return this;
12543     };
12544     this.setUTF8 = function (bool) {
12545         if (typeof bool === 'boolean') {
12546           utf8 = bool;
12547         }
12548         return this;
12549     };
12550   },
12551
12552   /**
12553    * CRC-32 calculation
12554    * @member Hashes
12555    * @method CRC32
12556    * @static
12557    * @param {String} str Input String
12558    * @return {String}
12559    */
12560   CRC32 : function (str) {
12561     var crc = 0, x = 0, y = 0, table, i, iTop;
12562     str = utf8Encode(str);
12563         
12564     table = [ 
12565         '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 ',
12566         '79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 ',
12567         '84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F ',
12568         '63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD ',
12569         'A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC ',
12570         '51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 ',
12571         'B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 ',
12572         '06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 ',
12573         'E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 ',
12574         '12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 ',
12575         'D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 ',
12576         '33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 ',
12577         'CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 ',
12578         '9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E ',
12579         '7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D ',
12580         '806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 ',
12581         '60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA ',
12582         'AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 ', 
12583         '5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 ',
12584         'B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 ',
12585         '05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 ',
12586         'F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA ',
12587         '11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 ',
12588         'D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F ',
12589         '30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E ',
12590         'C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D'
12591     ].join('');
12592
12593     crc = crc ^ (-1);
12594     for (i = 0, iTop = str.length; i < iTop; i+=1 ) {
12595         y = ( crc ^ str.charCodeAt( i ) ) & 0xFF;
12596         x = '0x' + table.substr( y * 9, 8 );
12597         crc = ( crc >>> 8 ) ^ x;
12598     }
12599     // always return a positive number (that's what >>> 0 does)
12600     return (crc ^ (-1)) >>> 0;
12601   },
12602   /**
12603    * @member Hashes
12604    * @class MD5
12605    * @constructor
12606    * @param {Object} [config]
12607    * 
12608    * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
12609    * Digest Algorithm, as defined in RFC 1321.
12610    * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
12611    * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12612    * See <http://pajhome.org.uk/crypt/md5> for more infHashes.
12613    */
12614   MD5 : function (options) {  
12615     /**
12616      * Private config properties. You may need to tweak these to be compatible with
12617      * the server-side, but the defaults work in most cases.
12618      * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase}
12619      */
12620     var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase
12621         b64pad = (options && typeof options.pad === 'string') ? options.pda : '=', // base-64 pad character. Defaults to '=' for strict RFC compliance
12622         utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true; // enable/disable utf8 encoding
12623
12624     // privileged (public) methods 
12625     this.hex = function (s) { 
12626       return rstr2hex(rstr(s, utf8), hexcase);
12627     };
12628     this.b64 = function (s) { 
12629       return rstr2b64(rstr(s), b64pad);
12630     };
12631     this.any = function(s, e) { 
12632       return rstr2any(rstr(s, utf8), e); 
12633     };
12634     this.hex_hmac = function (k, d) { 
12635       return rstr2hex(rstr_hmac(k, d), hexcase); 
12636     };
12637     this.b64_hmac = function (k, d) { 
12638       return rstr2b64(rstr_hmac(k,d), b64pad); 
12639     };
12640     this.any_hmac = function (k, d, e) { 
12641       return rstr2any(rstr_hmac(k, d), e); 
12642     };
12643     /**
12644      * Perform a simple self-test to see if the VM is working
12645      * @return {String} Hexadecimal hash sample
12646      */
12647     this.vm_test = function () {
12648       return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72';
12649     };
12650     /** 
12651      * Enable/disable uppercase hexadecimal returned string 
12652      * @param {Boolean} 
12653      * @return {Object} this
12654      */ 
12655     this.setUpperCase = function (a) {
12656       if (typeof a === 'boolean' ) {
12657         hexcase = a;
12658       }
12659       return this;
12660     };
12661     /** 
12662      * Defines a base64 pad string 
12663      * @param {String} Pad
12664      * @return {Object} this
12665      */ 
12666     this.setPad = function (a) {
12667       b64pad = a || b64pad;
12668       return this;
12669     };
12670     /** 
12671      * Defines a base64 pad string 
12672      * @param {Boolean} 
12673      * @return {Object} [this]
12674      */ 
12675     this.setUTF8 = function (a) {
12676       if (typeof a === 'boolean') { 
12677         utf8 = a;
12678       }
12679       return this;
12680     };
12681
12682     // private methods
12683
12684     /**
12685      * Calculate the MD5 of a raw string
12686      */
12687     function rstr(s) {
12688       s = (utf8) ? utf8Encode(s): s;
12689       return binl2rstr(binl(rstr2binl(s), s.length * 8));
12690     }
12691     
12692     /**
12693      * Calculate the HMAC-MD5, of a key and some data (raw strings)
12694      */
12695     function rstr_hmac(key, data) {
12696       var bkey, ipad, opad, hash, i;
12697
12698       key = (utf8) ? utf8Encode(key) : key;
12699       data = (utf8) ? utf8Encode(data) : data;
12700       bkey = rstr2binl(key);
12701       if (bkey.length > 16) { 
12702         bkey = binl(bkey, key.length * 8); 
12703       }
12704
12705       ipad = Array(16), opad = Array(16); 
12706       for (i = 0; i < 16; i+=1) {
12707           ipad[i] = bkey[i] ^ 0x36363636;
12708           opad[i] = bkey[i] ^ 0x5C5C5C5C;
12709       }
12710       hash = binl(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
12711       return binl2rstr(binl(opad.concat(hash), 512 + 128));
12712     }
12713
12714     /**
12715      * Calculate the MD5 of an array of little-endian words, and a bit length.
12716      */
12717     function binl(x, len) {
12718       var i, olda, oldb, oldc, oldd,
12719           a =  1732584193,
12720           b = -271733879,
12721           c = -1732584194,
12722           d =  271733878;
12723         
12724       /* append padding */
12725       x[len >> 5] |= 0x80 << ((len) % 32);
12726       x[(((len + 64) >>> 9) << 4) + 14] = len;
12727
12728       for (i = 0; i < x.length; i += 16) {
12729         olda = a;
12730         oldb = b;
12731         oldc = c;
12732         oldd = d;
12733
12734         a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
12735         d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
12736         c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
12737         b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
12738         a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
12739         d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
12740         c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
12741         b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
12742         a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
12743         d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
12744         c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
12745         b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
12746         a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
12747         d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
12748         c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
12749         b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
12750
12751         a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
12752         d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
12753         c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
12754         b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
12755         a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
12756         d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
12757         c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
12758         b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
12759         a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
12760         d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
12761         c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
12762         b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
12763         a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
12764         d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
12765         c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
12766         b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
12767
12768         a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
12769         d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
12770         c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
12771         b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
12772         a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
12773         d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
12774         c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
12775         b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
12776         a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
12777         d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
12778         c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
12779         b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
12780         a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
12781         d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
12782         c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
12783         b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
12784
12785         a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
12786         d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
12787         c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
12788         b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
12789         a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
12790         d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
12791         c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
12792         b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
12793         a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
12794         d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
12795         c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
12796         b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
12797         a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
12798         d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
12799         c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
12800         b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
12801
12802         a = safe_add(a, olda);
12803         b = safe_add(b, oldb);
12804         c = safe_add(c, oldc);
12805         d = safe_add(d, oldd);
12806       }
12807       return Array(a, b, c, d);
12808     }
12809
12810     /**
12811      * These functions implement the four basic operations the algorithm uses.
12812      */
12813     function md5_cmn(q, a, b, x, s, t) {
12814       return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
12815     }
12816     function md5_ff(a, b, c, d, x, s, t) {
12817       return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
12818     }
12819     function md5_gg(a, b, c, d, x, s, t) {
12820       return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
12821     }
12822     function md5_hh(a, b, c, d, x, s, t) {
12823       return md5_cmn(b ^ c ^ d, a, b, x, s, t);
12824     }
12825     function md5_ii(a, b, c, d, x, s, t) {
12826       return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
12827     }
12828   },
12829   /**
12830    * @member Hashes
12831    * @class Hashes.SHA1
12832    * @param {Object} [config]
12833    * @constructor
12834    * 
12835    * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined in FIPS 180-1
12836    * Version 2.2 Copyright Paul Johnston 2000 - 2009.
12837    * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12838    * See http://pajhome.org.uk/crypt/md5 for details.
12839    */
12840   SHA1 : function (options) {
12841    /**
12842      * Private config properties. You may need to tweak these to be compatible with
12843      * the server-side, but the defaults work in most cases.
12844      * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase}
12845      */
12846     var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase
12847         b64pad = (options && typeof options.pad === 'string') ? options.pda : '=', // base-64 pad character. Defaults to '=' for strict RFC compliance
12848         utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true; // enable/disable utf8 encoding
12849
12850     // public methods
12851     this.hex = function (s) { 
12852         return rstr2hex(rstr(s, utf8), hexcase); 
12853     };
12854     this.b64 = function (s) { 
12855         return rstr2b64(rstr(s, utf8), b64pad);
12856     };
12857     this.any = function (s, e) { 
12858         return rstr2any(rstr(s, utf8), e);
12859     };
12860     this.hex_hmac = function (k, d) {
12861         return rstr2hex(rstr_hmac(k, d));
12862     };
12863     this.b64_hmac = function (k, d) { 
12864         return rstr2b64(rstr_hmac(k, d), b64pad); 
12865     };
12866     this.any_hmac = function (k, d, e) { 
12867         return rstr2any(rstr_hmac(k, d), e);
12868     };
12869     /**
12870      * Perform a simple self-test to see if the VM is working
12871      * @return {String} Hexadecimal hash sample
12872      * @public
12873      */
12874     this.vm_test = function () {
12875       return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72';
12876     };
12877     /** 
12878      * @description Enable/disable uppercase hexadecimal returned string 
12879      * @param {boolean} 
12880      * @return {Object} this
12881      * @public
12882      */ 
12883     this.setUpperCase = function (a) {
12884         if (typeof a === 'boolean') {
12885         hexcase = a;
12886       }
12887         return this;
12888     };
12889     /** 
12890      * @description Defines a base64 pad string 
12891      * @param {string} Pad
12892      * @return {Object} this
12893      * @public
12894      */ 
12895     this.setPad = function (a) {
12896       b64pad = a || b64pad;
12897         return this;
12898     };
12899     /** 
12900      * @description Defines a base64 pad string 
12901      * @param {boolean} 
12902      * @return {Object} this
12903      * @public
12904      */ 
12905     this.setUTF8 = function (a) {
12906         if (typeof a === 'boolean') {
12907         utf8 = a;
12908       }
12909         return this;
12910     };
12911
12912     // private methods
12913
12914     /**
12915          * Calculate the SHA-512 of a raw string
12916          */
12917         function rstr(s) {
12918       s = (utf8) ? utf8Encode(s) : s;
12919       return binb2rstr(binb(rstr2binb(s), s.length * 8));
12920         }
12921
12922     /**
12923      * Calculate the HMAC-SHA1 of a key and some data (raw strings)
12924      */
12925     function rstr_hmac(key, data) {
12926         var bkey, ipad, opad, i, hash;
12927         key = (utf8) ? utf8Encode(key) : key;
12928         data = (utf8) ? utf8Encode(data) : data;
12929         bkey = rstr2binb(key);
12930
12931         if (bkey.length > 16) {
12932         bkey = binb(bkey, key.length * 8);
12933       }
12934         ipad = Array(16), opad = Array(16);
12935         for (i = 0; i < 16; i+=1) {
12936                 ipad[i] = bkey[i] ^ 0x36363636;
12937                 opad[i] = bkey[i] ^ 0x5C5C5C5C;
12938         }
12939         hash = binb(ipad.concat(rstr2binb(data)), 512 + data.length * 8);
12940         return binb2rstr(binb(opad.concat(hash), 512 + 160));
12941     }
12942
12943     /**
12944      * Calculate the SHA-1 of an array of big-endian words, and a bit length
12945      */
12946     function binb(x, len) {
12947       var i, j, t, olda, oldb, oldc, oldd, olde,
12948           w = Array(80),
12949           a =  1732584193,
12950           b = -271733879,
12951           c = -1732584194,
12952           d =  271733878,
12953           e = -1009589776;
12954
12955       /* append padding */
12956       x[len >> 5] |= 0x80 << (24 - len % 32);
12957       x[((len + 64 >> 9) << 4) + 15] = len;
12958
12959       for (i = 0; i < x.length; i += 16) {
12960         olda = a,
12961         oldb = b;
12962         oldc = c;
12963         oldd = d;
12964         olde = e;
12965       
12966         for (j = 0; j < 80; j+=1)       {
12967           if (j < 16) { 
12968             w[j] = x[i + j]; 
12969           } else { 
12970             w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); 
12971           }
12972           t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)),
12973                                            safe_add(safe_add(e, w[j]), sha1_kt(j)));
12974           e = d;
12975           d = c;
12976           c = bit_rol(b, 30);
12977           b = a;
12978           a = t;
12979         }
12980
12981         a = safe_add(a, olda);
12982         b = safe_add(b, oldb);
12983         c = safe_add(c, oldc);
12984         d = safe_add(d, oldd);
12985         e = safe_add(e, olde);
12986       }
12987       return Array(a, b, c, d, e);
12988     }
12989
12990     /**
12991      * Perform the appropriate triplet combination function for the current
12992      * iteration
12993      */
12994     function sha1_ft(t, b, c, d) {
12995       if (t < 20) { return (b & c) | ((~b) & d); }
12996       if (t < 40) { return b ^ c ^ d; }
12997       if (t < 60) { return (b & c) | (b & d) | (c & d); }
12998       return b ^ c ^ d;
12999     }
13000
13001     /**
13002      * Determine the appropriate additive constant for the current iteration
13003      */
13004     function sha1_kt(t) {
13005       return (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :
13006                  (t < 60) ? -1894007588 : -899497514;
13007     }
13008   },
13009   /**
13010    * @class Hashes.SHA256
13011    * @param {config}
13012    * 
13013    * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined in FIPS 180-2
13014    * Version 2.2 Copyright Angel Marin, Paul Johnston 2000 - 2009.
13015    * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13016    * See http://pajhome.org.uk/crypt/md5 for details.
13017    * Also http://anmar.eu.org/projects/jssha2/
13018    */
13019   SHA256 : function (options) {
13020     /**
13021      * Private properties configuration variables. You may need to tweak these to be compatible with
13022      * the server-side, but the defaults work in most cases.
13023      * @see this.setUpperCase() method
13024      * @see this.setPad() method
13025      */
13026     var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase  */
13027               b64pad = (options && typeof options.pad === 'string') ? options.pda : '=', /* base-64 pad character. Default '=' for strict RFC compliance   */
13028               utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, /* enable/disable utf8 encoding */
13029               sha256_K;
13030
13031     /* privileged (public) methods */
13032     this.hex = function (s) { 
13033       return rstr2hex(rstr(s, utf8)); 
13034     };
13035     this.b64 = function (s) { 
13036       return rstr2b64(rstr(s, utf8), b64pad);
13037     };
13038     this.any = function (s, e) { 
13039       return rstr2any(rstr(s, utf8), e); 
13040     };
13041     this.hex_hmac = function (k, d) { 
13042       return rstr2hex(rstr_hmac(k, d)); 
13043     };
13044     this.b64_hmac = function (k, d) { 
13045       return rstr2b64(rstr_hmac(k, d), b64pad);
13046     };
13047     this.any_hmac = function (k, d, e) { 
13048       return rstr2any(rstr_hmac(k, d), e); 
13049     };
13050     /**
13051      * Perform a simple self-test to see if the VM is working
13052      * @return {String} Hexadecimal hash sample
13053      * @public
13054      */
13055     this.vm_test = function () {
13056       return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72';
13057     };
13058     /** 
13059      * Enable/disable uppercase hexadecimal returned string 
13060      * @param {boolean} 
13061      * @return {Object} this
13062      * @public
13063      */ 
13064     this.setUpperCase = function (a) {
13065       if (typeof a === 'boolean') { 
13066         hexcase = a;
13067       }
13068       return this;
13069     };
13070     /** 
13071      * @description Defines a base64 pad string 
13072      * @param {string} Pad
13073      * @return {Object} this
13074      * @public
13075      */ 
13076     this.setPad = function (a) {
13077       b64pad = a || b64pad;
13078       return this;
13079     };
13080     /** 
13081      * Defines a base64 pad string 
13082      * @param {boolean} 
13083      * @return {Object} this
13084      * @public
13085      */ 
13086     this.setUTF8 = function (a) {
13087       if (typeof a === 'boolean') {
13088         utf8 = a;
13089       }
13090       return this;
13091     };
13092     
13093     // private methods
13094
13095     /**
13096      * Calculate the SHA-512 of a raw string
13097      */
13098     function rstr(s, utf8) {
13099       s = (utf8) ? utf8Encode(s) : s;
13100       return binb2rstr(binb(rstr2binb(s), s.length * 8));
13101     }
13102
13103     /**
13104      * Calculate the HMAC-sha256 of a key and some data (raw strings)
13105      */
13106     function rstr_hmac(key, data) {
13107       key = (utf8) ? utf8Encode(key) : key;
13108       data = (utf8) ? utf8Encode(data) : data;
13109       var hash, i = 0,
13110           bkey = rstr2binb(key), 
13111           ipad = Array(16), 
13112           opad = Array(16);
13113
13114       if (bkey.length > 16) { bkey = binb(bkey, key.length * 8); }
13115       
13116       for (; i < 16; i+=1) {
13117         ipad[i] = bkey[i] ^ 0x36363636;
13118         opad[i] = bkey[i] ^ 0x5C5C5C5C;
13119       }
13120       
13121       hash = binb(ipad.concat(rstr2binb(data)), 512 + data.length * 8);
13122       return binb2rstr(binb(opad.concat(hash), 512 + 256));
13123     }
13124     
13125     /*
13126      * Main sha256 function, with its support functions
13127      */
13128     function sha256_S (X, n) {return ( X >>> n ) | (X << (32 - n));}
13129     function sha256_R (X, n) {return ( X >>> n );}
13130     function sha256_Ch(x, y, z) {return ((x & y) ^ ((~x) & z));}
13131     function sha256_Maj(x, y, z) {return ((x & y) ^ (x & z) ^ (y & z));}
13132     function sha256_Sigma0256(x) {return (sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22));}
13133     function sha256_Sigma1256(x) {return (sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25));}
13134     function sha256_Gamma0256(x) {return (sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3));}
13135     function sha256_Gamma1256(x) {return (sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10));}
13136     function sha256_Sigma0512(x) {return (sha256_S(x, 28) ^ sha256_S(x, 34) ^ sha256_S(x, 39));}
13137     function sha256_Sigma1512(x) {return (sha256_S(x, 14) ^ sha256_S(x, 18) ^ sha256_S(x, 41));}
13138     function sha256_Gamma0512(x) {return (sha256_S(x, 1)  ^ sha256_S(x, 8) ^ sha256_R(x, 7));}
13139     function sha256_Gamma1512(x) {return (sha256_S(x, 19) ^ sha256_S(x, 61) ^ sha256_R(x, 6));}
13140     
13141     sha256_K = [
13142       1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993,
13143       -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987,
13144       1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522,
13145       264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986,
13146       -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585,
13147       113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291,
13148       1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885,
13149       -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344,
13150       430227734, 506948616, 659060556, 883997877, 958139571, 1322822218,
13151       1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872,
13152       -1866530822, -1538233109, -1090935817, -965641998
13153     ];
13154     
13155     function binb(m, l) {
13156       var HASH = [1779033703, -1150833019, 1013904242, -1521486534,
13157                  1359893119, -1694144372, 528734635, 1541459225];
13158       var W = new Array(64);
13159       var a, b, c, d, e, f, g, h;
13160       var i, j, T1, T2;
13161     
13162       /* append padding */
13163       m[l >> 5] |= 0x80 << (24 - l % 32);
13164       m[((l + 64 >> 9) << 4) + 15] = l;
13165     
13166       for (i = 0; i < m.length; i += 16)
13167       {
13168       a = HASH[0];
13169       b = HASH[1];
13170       c = HASH[2];
13171       d = HASH[3];
13172       e = HASH[4];
13173       f = HASH[5];
13174       g = HASH[6];
13175       h = HASH[7];
13176     
13177       for (j = 0; j < 64; j+=1)
13178       {
13179         if (j < 16) { 
13180           W[j] = m[j + i];
13181         } else { 
13182           W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]),
13183                           sha256_Gamma0256(W[j - 15])), W[j - 16]);
13184         }
13185     
13186         T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)),
13187                                   sha256_K[j]), W[j]);
13188         T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c));
13189         h = g;
13190         g = f;
13191         f = e;
13192         e = safe_add(d, T1);
13193         d = c;
13194         c = b;
13195         b = a;
13196         a = safe_add(T1, T2);
13197       }
13198     
13199       HASH[0] = safe_add(a, HASH[0]);
13200       HASH[1] = safe_add(b, HASH[1]);
13201       HASH[2] = safe_add(c, HASH[2]);
13202       HASH[3] = safe_add(d, HASH[3]);
13203       HASH[4] = safe_add(e, HASH[4]);
13204       HASH[5] = safe_add(f, HASH[5]);
13205       HASH[6] = safe_add(g, HASH[6]);
13206       HASH[7] = safe_add(h, HASH[7]);
13207       }
13208       return HASH;
13209     }
13210
13211   },
13212
13213   /**
13214    * @class Hashes.SHA512
13215    * @param {config}
13216    * 
13217    * A JavaScript implementation of the Secure Hash Algorithm, SHA-512, as defined in FIPS 180-2
13218    * Version 2.2 Copyright Anonymous Contributor, Paul Johnston 2000 - 2009.
13219    * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13220    * See http://pajhome.org.uk/crypt/md5 for details. 
13221    */
13222   SHA512 : function (options) {
13223     /**
13224      * Private properties configuration variables. You may need to tweak these to be compatible with
13225      * the server-side, but the defaults work in most cases.
13226      * @see this.setUpperCase() method
13227      * @see this.setPad() method
13228      */
13229     var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false , /* hexadecimal output case format. false - lowercase; true - uppercase  */
13230         b64pad = (options && typeof options.pad === 'string') ? options.pda : '=',  /* base-64 pad character. Default '=' for strict RFC compliance   */
13231         utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, /* enable/disable utf8 encoding */
13232         sha512_k;
13233
13234     /* privileged (public) methods */
13235     this.hex = function (s) { 
13236       return rstr2hex(rstr(s)); 
13237     };
13238     this.b64 = function (s) { 
13239       return rstr2b64(rstr(s), b64pad);  
13240     };
13241     this.any = function (s, e) { 
13242       return rstr2any(rstr(s), e);
13243     };
13244     this.hex_hmac = function (k, d) {
13245       return rstr2hex(rstr_hmac(k, d));
13246     };
13247     this.b64_hmac = function (k, d) { 
13248       return rstr2b64(rstr_hmac(k, d), b64pad);
13249     };
13250     this.any_hmac = function (k, d, e) { 
13251       return rstr2any(rstr_hmac(k, d), e);
13252     };
13253     /**
13254      * Perform a simple self-test to see if the VM is working
13255      * @return {String} Hexadecimal hash sample
13256      * @public
13257      */
13258     this.vm_test = function () {
13259       return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72';
13260     };
13261     /** 
13262      * @description Enable/disable uppercase hexadecimal returned string 
13263      * @param {boolean} 
13264      * @return {Object} this
13265      * @public
13266      */ 
13267     this.setUpperCase = function (a) {
13268       if (typeof a === 'boolean') {
13269         hexcase = a;
13270       }
13271       return this;
13272     };
13273     /** 
13274      * @description Defines a base64 pad string 
13275      * @param {string} Pad
13276      * @return {Object} this
13277      * @public
13278      */ 
13279     this.setPad = function (a) {
13280       b64pad = a || b64pad;
13281       return this;
13282     };
13283     /** 
13284      * @description Defines a base64 pad string 
13285      * @param {boolean} 
13286      * @return {Object} this
13287      * @public
13288      */ 
13289     this.setUTF8 = function (a) {
13290       if (typeof a === 'boolean') {
13291         utf8 = a;
13292       }
13293       return this;
13294     };
13295
13296     /* private methods */
13297     
13298     /**
13299      * Calculate the SHA-512 of a raw string
13300      */
13301     function rstr(s) {
13302       s = (utf8) ? utf8Encode(s) : s;
13303       return binb2rstr(binb(rstr2binb(s), s.length * 8));
13304     }
13305     /*
13306      * Calculate the HMAC-SHA-512 of a key and some data (raw strings)
13307      */
13308     function rstr_hmac(key, data) {
13309       key = (utf8) ? utf8Encode(key) : key;
13310       data = (utf8) ? utf8Encode(data) : data;
13311       
13312       var hash, i = 0, 
13313           bkey = rstr2binb(key),
13314           ipad = Array(32), opad = Array(32);
13315
13316       if (bkey.length > 32) { bkey = binb(bkey, key.length * 8); }
13317       
13318       for (; i < 32; i+=1) {
13319         ipad[i] = bkey[i] ^ 0x36363636;
13320         opad[i] = bkey[i] ^ 0x5C5C5C5C;
13321       }
13322       
13323       hash = binb(ipad.concat(rstr2binb(data)), 1024 + data.length * 8);
13324       return binb2rstr(binb(opad.concat(hash), 1024 + 512));
13325     }
13326             
13327     /**
13328      * Calculate the SHA-512 of an array of big-endian dwords, and a bit length
13329      */
13330     function binb(x, len) {
13331       var j, i, l,
13332           W = new Array(80),
13333           hash = new Array(16),
13334           //Initial hash values
13335           H = [
13336             new int64(0x6a09e667, -205731576),
13337             new int64(-1150833019, -2067093701),
13338             new int64(0x3c6ef372, -23791573),
13339             new int64(-1521486534, 0x5f1d36f1),
13340             new int64(0x510e527f, -1377402159),
13341             new int64(-1694144372, 0x2b3e6c1f),
13342             new int64(0x1f83d9ab, -79577749),
13343             new int64(0x5be0cd19, 0x137e2179)
13344           ],
13345           T1 = new int64(0, 0),
13346           T2 = new int64(0, 0),
13347           a = new int64(0,0),
13348           b = new int64(0,0),
13349           c = new int64(0,0),
13350           d = new int64(0,0),
13351           e = new int64(0,0),
13352           f = new int64(0,0),
13353           g = new int64(0,0),
13354           h = new int64(0,0),
13355           //Temporary variables not specified by the document
13356           s0 = new int64(0, 0),
13357           s1 = new int64(0, 0),
13358           Ch = new int64(0, 0),
13359           Maj = new int64(0, 0),
13360           r1 = new int64(0, 0),
13361           r2 = new int64(0, 0),
13362           r3 = new int64(0, 0);
13363
13364       if (sha512_k === undefined) {
13365           //SHA512 constants
13366           sha512_k = [
13367             new int64(0x428a2f98, -685199838), new int64(0x71374491, 0x23ef65cd),
13368             new int64(-1245643825, -330482897), new int64(-373957723, -2121671748),
13369             new int64(0x3956c25b, -213338824), new int64(0x59f111f1, -1241133031),
13370             new int64(-1841331548, -1357295717), new int64(-1424204075, -630357736),
13371             new int64(-670586216, -1560083902), new int64(0x12835b01, 0x45706fbe),
13372             new int64(0x243185be, 0x4ee4b28c), new int64(0x550c7dc3, -704662302),
13373             new int64(0x72be5d74, -226784913), new int64(-2132889090, 0x3b1696b1),
13374             new int64(-1680079193, 0x25c71235), new int64(-1046744716, -815192428),
13375             new int64(-459576895, -1628353838), new int64(-272742522, 0x384f25e3),
13376             new int64(0xfc19dc6, -1953704523), new int64(0x240ca1cc, 0x77ac9c65),
13377             new int64(0x2de92c6f, 0x592b0275), new int64(0x4a7484aa, 0x6ea6e483),
13378             new int64(0x5cb0a9dc, -1119749164), new int64(0x76f988da, -2096016459),
13379             new int64(-1740746414, -295247957), new int64(-1473132947, 0x2db43210),
13380             new int64(-1341970488, -1728372417), new int64(-1084653625, -1091629340),
13381             new int64(-958395405, 0x3da88fc2), new int64(-710438585, -1828018395),
13382             new int64(0x6ca6351, -536640913), new int64(0x14292967, 0xa0e6e70),
13383             new int64(0x27b70a85, 0x46d22ffc), new int64(0x2e1b2138, 0x5c26c926),
13384             new int64(0x4d2c6dfc, 0x5ac42aed), new int64(0x53380d13, -1651133473),
13385             new int64(0x650a7354, -1951439906), new int64(0x766a0abb, 0x3c77b2a8),
13386             new int64(-2117940946, 0x47edaee6), new int64(-1838011259, 0x1482353b),
13387             new int64(-1564481375, 0x4cf10364), new int64(-1474664885, -1136513023),
13388             new int64(-1035236496, -789014639), new int64(-949202525, 0x654be30),
13389             new int64(-778901479, -688958952), new int64(-694614492, 0x5565a910),
13390             new int64(-200395387, 0x5771202a), new int64(0x106aa070, 0x32bbd1b8),
13391             new int64(0x19a4c116, -1194143544), new int64(0x1e376c08, 0x5141ab53),
13392             new int64(0x2748774c, -544281703), new int64(0x34b0bcb5, -509917016),
13393             new int64(0x391c0cb3, -976659869), new int64(0x4ed8aa4a, -482243893),
13394             new int64(0x5b9cca4f, 0x7763e373), new int64(0x682e6ff3, -692930397),
13395             new int64(0x748f82ee, 0x5defb2fc), new int64(0x78a5636f, 0x43172f60),
13396             new int64(-2067236844, -1578062990), new int64(-1933114872, 0x1a6439ec),
13397             new int64(-1866530822, 0x23631e28), new int64(-1538233109, -561857047),
13398             new int64(-1090935817, -1295615723), new int64(-965641998, -479046869),
13399             new int64(-903397682, -366583396), new int64(-779700025, 0x21c0c207),
13400             new int64(-354779690, -840897762), new int64(-176337025, -294727304),
13401             new int64(0x6f067aa, 0x72176fba), new int64(0xa637dc5, -1563912026),
13402             new int64(0x113f9804, -1090974290), new int64(0x1b710b35, 0x131c471b),
13403             new int64(0x28db77f5, 0x23047d84), new int64(0x32caab7b, 0x40c72493),
13404             new int64(0x3c9ebe0a, 0x15c9bebc), new int64(0x431d67c4, -1676669620),
13405             new int64(0x4cc5d4be, -885112138), new int64(0x597f299c, -60457430),
13406             new int64(0x5fcb6fab, 0x3ad6faec), new int64(0x6c44198c, 0x4a475817)
13407           ];
13408       }
13409   
13410       for (i=0; i<80; i+=1) {
13411         W[i] = new int64(0, 0);
13412       }
13413     
13414       // append padding to the source string. The format is described in the FIPS.
13415       x[len >> 5] |= 0x80 << (24 - (len & 0x1f));
13416       x[((len + 128 >> 10)<< 5) + 31] = len;
13417       l = x.length;
13418       for (i = 0; i<l; i+=32) { //32 dwords is the block size
13419         int64copy(a, H[0]);
13420         int64copy(b, H[1]);
13421         int64copy(c, H[2]);
13422         int64copy(d, H[3]);
13423         int64copy(e, H[4]);
13424         int64copy(f, H[5]);
13425         int64copy(g, H[6]);
13426         int64copy(h, H[7]);
13427       
13428         for (j=0; j<16; j+=1) {
13429           W[j].h = x[i + 2*j];
13430           W[j].l = x[i + 2*j + 1];
13431         }
13432       
13433         for (j=16; j<80; j+=1) {
13434           //sigma1
13435           int64rrot(r1, W[j-2], 19);
13436           int64revrrot(r2, W[j-2], 29);
13437           int64shr(r3, W[j-2], 6);
13438           s1.l = r1.l ^ r2.l ^ r3.l;
13439           s1.h = r1.h ^ r2.h ^ r3.h;
13440           //sigma0
13441           int64rrot(r1, W[j-15], 1);
13442           int64rrot(r2, W[j-15], 8);
13443           int64shr(r3, W[j-15], 7);
13444           s0.l = r1.l ^ r2.l ^ r3.l;
13445           s0.h = r1.h ^ r2.h ^ r3.h;
13446       
13447           int64add4(W[j], s1, W[j-7], s0, W[j-16]);
13448         }
13449       
13450         for (j = 0; j < 80; j+=1) {
13451           //Ch
13452           Ch.l = (e.l & f.l) ^ (~e.l & g.l);
13453           Ch.h = (e.h & f.h) ^ (~e.h & g.h);
13454       
13455           //Sigma1
13456           int64rrot(r1, e, 14);
13457           int64rrot(r2, e, 18);
13458           int64revrrot(r3, e, 9);
13459           s1.l = r1.l ^ r2.l ^ r3.l;
13460           s1.h = r1.h ^ r2.h ^ r3.h;
13461       
13462           //Sigma0
13463           int64rrot(r1, a, 28);
13464           int64revrrot(r2, a, 2);
13465           int64revrrot(r3, a, 7);
13466           s0.l = r1.l ^ r2.l ^ r3.l;
13467           s0.h = r1.h ^ r2.h ^ r3.h;
13468       
13469           //Maj
13470           Maj.l = (a.l & b.l) ^ (a.l & c.l) ^ (b.l & c.l);
13471           Maj.h = (a.h & b.h) ^ (a.h & c.h) ^ (b.h & c.h);
13472       
13473           int64add5(T1, h, s1, Ch, sha512_k[j], W[j]);
13474           int64add(T2, s0, Maj);
13475       
13476           int64copy(h, g);
13477           int64copy(g, f);
13478           int64copy(f, e);
13479           int64add(e, d, T1);
13480           int64copy(d, c);
13481           int64copy(c, b);
13482           int64copy(b, a);
13483           int64add(a, T1, T2);
13484         }
13485         int64add(H[0], H[0], a);
13486         int64add(H[1], H[1], b);
13487         int64add(H[2], H[2], c);
13488         int64add(H[3], H[3], d);
13489         int64add(H[4], H[4], e);
13490         int64add(H[5], H[5], f);
13491         int64add(H[6], H[6], g);
13492         int64add(H[7], H[7], h);
13493       }
13494     
13495       //represent the hash as an array of 32-bit dwords
13496       for (i=0; i<8; i+=1) {
13497         hash[2*i] = H[i].h;
13498         hash[2*i + 1] = H[i].l;
13499       }
13500       return hash;
13501     }
13502     
13503     //A constructor for 64-bit numbers
13504     function int64(h, l) {
13505       this.h = h;
13506       this.l = l;
13507       //this.toString = int64toString;
13508     }
13509     
13510     //Copies src into dst, assuming both are 64-bit numbers
13511     function int64copy(dst, src) {
13512       dst.h = src.h;
13513       dst.l = src.l;
13514     }
13515     
13516     //Right-rotates a 64-bit number by shift
13517     //Won't handle cases of shift>=32
13518     //The function revrrot() is for that
13519     function int64rrot(dst, x, shift) {
13520       dst.l = (x.l >>> shift) | (x.h << (32-shift));
13521       dst.h = (x.h >>> shift) | (x.l << (32-shift));
13522     }
13523     
13524     //Reverses the dwords of the source and then rotates right by shift.
13525     //This is equivalent to rotation by 32+shift
13526     function int64revrrot(dst, x, shift) {
13527       dst.l = (x.h >>> shift) | (x.l << (32-shift));
13528       dst.h = (x.l >>> shift) | (x.h << (32-shift));
13529     }
13530     
13531     //Bitwise-shifts right a 64-bit number by shift
13532     //Won't handle shift>=32, but it's never needed in SHA512
13533     function int64shr(dst, x, shift) {
13534       dst.l = (x.l >>> shift) | (x.h << (32-shift));
13535       dst.h = (x.h >>> shift);
13536     }
13537     
13538     //Adds two 64-bit numbers
13539     //Like the original implementation, does not rely on 32-bit operations
13540     function int64add(dst, x, y) {
13541        var w0 = (x.l & 0xffff) + (y.l & 0xffff);
13542        var w1 = (x.l >>> 16) + (y.l >>> 16) + (w0 >>> 16);
13543        var w2 = (x.h & 0xffff) + (y.h & 0xffff) + (w1 >>> 16);
13544        var w3 = (x.h >>> 16) + (y.h >>> 16) + (w2 >>> 16);
13545        dst.l = (w0 & 0xffff) | (w1 << 16);
13546        dst.h = (w2 & 0xffff) | (w3 << 16);
13547     }
13548     
13549     //Same, except with 4 addends. Works faster than adding them one by one.
13550     function int64add4(dst, a, b, c, d) {
13551        var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff);
13552        var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (w0 >>> 16);
13553        var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (w1 >>> 16);
13554        var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (w2 >>> 16);
13555        dst.l = (w0 & 0xffff) | (w1 << 16);
13556        dst.h = (w2 & 0xffff) | (w3 << 16);
13557     }
13558     
13559     //Same, except with 5 addends
13560     function int64add5(dst, a, b, c, d, e) {
13561       var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff) + (e.l & 0xffff),
13562           w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (e.l >>> 16) + (w0 >>> 16),
13563           w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (e.h & 0xffff) + (w1 >>> 16),
13564           w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (e.h >>> 16) + (w2 >>> 16);
13565        dst.l = (w0 & 0xffff) | (w1 << 16);
13566        dst.h = (w2 & 0xffff) | (w3 << 16);
13567     }
13568   },
13569   /**
13570    * @class Hashes.RMD160
13571    * @constructor
13572    * @param {Object} [config]
13573    * 
13574    * A JavaScript implementation of the RIPEMD-160 Algorithm
13575    * Version 2.2 Copyright Jeremy Lin, Paul Johnston 2000 - 2009.
13576    * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13577    * See http://pajhome.org.uk/crypt/md5 for details.
13578    * Also http://www.ocf.berkeley.edu/~jjlin/jsotp/
13579    */
13580   RMD160 : function (options) {
13581     /**
13582      * Private properties configuration variables. You may need to tweak these to be compatible with
13583      * the server-side, but the defaults work in most cases.
13584      * @see this.setUpperCase() method
13585      * @see this.setPad() method
13586      */
13587     var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false,   /* hexadecimal output case format. false - lowercase; true - uppercase  */
13588         b64pad = (options && typeof options.pad === 'string') ? options.pda : '=',  /* base-64 pad character. Default '=' for strict RFC compliance   */
13589         utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, /* enable/disable utf8 encoding */
13590         rmd160_r1 = [
13591            0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
13592            7,  4, 13,  1, 10,  6, 15,  3, 12,  0,  9,  5,  2, 14, 11,  8,
13593            3, 10, 14,  4,  9, 15,  8,  1,  2,  7,  0,  6, 13, 11,  5, 12,
13594            1,  9, 11, 10,  0,  8, 12,  4, 13,  3,  7, 15, 14,  5,  6,  2,
13595            4,  0,  5,  9,  7, 12,  2, 10, 14,  1,  3,  8, 11,  6, 15, 13
13596         ],
13597         rmd160_r2 = [
13598            5, 14,  7,  0,  9,  2, 11,  4, 13,  6, 15,  8,  1, 10,  3, 12,
13599            6, 11,  3,  7,  0, 13,  5, 10, 14, 15,  8, 12,  4,  9,  1,  2,
13600           15,  5,  1,  3,  7, 14,  6,  9, 11,  8, 12,  2, 10,  0,  4, 13,
13601            8,  6,  4,  1,  3, 11, 15,  0,  5, 12,  2, 13,  9,  7, 10, 14,
13602           12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11
13603         ],
13604         rmd160_s1 = [
13605           11, 14, 15, 12,  5,  8,  7,  9, 11, 13, 14, 15,  6,  7,  9,  8,
13606            7,  6,  8, 13, 11,  9,  7, 15,  7, 12, 15,  9, 11,  7, 13, 12,
13607           11, 13,  6,  7, 14,  9, 13, 15, 14,  8, 13,  6,  5, 12,  7,  5,
13608           11, 12, 14, 15, 14, 15,  9,  8,  9, 14,  5,  6,  8,  6,  5, 12,
13609            9, 15,  5, 11,  6,  8, 13, 12,  5, 12, 13, 14, 11,  8,  5,  6
13610         ],
13611         rmd160_s2 = [
13612            8,  9,  9, 11, 13, 15, 15,  5,  7,  7,  8, 11, 14, 14, 12,  6,
13613            9, 13, 15,  7, 12,  8,  9, 11,  7,  7, 12,  7,  6, 15, 13, 11,
13614            9,  7, 15, 11,  8,  6,  6, 14, 12, 13,  5, 14, 13, 13,  7,  5,
13615           15,  5,  8, 11, 14, 14,  6, 14,  6,  9, 12,  9, 12,  5, 15,  8,
13616            8,  5, 12,  9, 12,  5, 14,  6,  8, 13,  6,  5, 15, 13, 11, 11
13617         ];
13618
13619     /* privileged (public) methods */
13620     this.hex = function (s) {
13621       return rstr2hex(rstr(s, utf8)); 
13622     };
13623     this.b64 = function (s) {
13624       return rstr2b64(rstr(s, utf8), b64pad);
13625     };
13626     this.any = function (s, e) { 
13627       return rstr2any(rstr(s, utf8), e);
13628     };
13629     this.hex_hmac = function (k, d) { 
13630       return rstr2hex(rstr_hmac(k, d));
13631     };
13632     this.b64_hmac = function (k, d) { 
13633       return rstr2b64(rstr_hmac(k, d), b64pad);
13634     };
13635     this.any_hmac = function (k, d, e) { 
13636       return rstr2any(rstr_hmac(k, d), e); 
13637     };
13638     /**
13639      * Perform a simple self-test to see if the VM is working
13640      * @return {String} Hexadecimal hash sample
13641      * @public
13642      */
13643     this.vm_test = function () {
13644       return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72';
13645     };
13646     /** 
13647      * @description Enable/disable uppercase hexadecimal returned string 
13648      * @param {boolean} 
13649      * @return {Object} this
13650      * @public
13651      */ 
13652     this.setUpperCase = function (a) {
13653       if (typeof a === 'boolean' ) { hexcase = a; }
13654       return this;
13655     };
13656     /** 
13657      * @description Defines a base64 pad string 
13658      * @param {string} Pad
13659      * @return {Object} this
13660      * @public
13661      */ 
13662     this.setPad = function (a) {
13663       if (typeof a !== 'undefined' ) { b64pad = a; }
13664       return this;
13665     };
13666     /** 
13667      * @description Defines a base64 pad string 
13668      * @param {boolean} 
13669      * @return {Object} this
13670      * @public
13671      */ 
13672     this.setUTF8 = function (a) {
13673       if (typeof a === 'boolean') { utf8 = a; }
13674       return this;
13675     };
13676
13677     /* private methods */
13678
13679     /**
13680      * Calculate the rmd160 of a raw string
13681      */
13682     function rstr(s) {
13683       s = (utf8) ? utf8Encode(s) : s;
13684       return binl2rstr(binl(rstr2binl(s), s.length * 8));
13685     }
13686
13687     /**
13688      * Calculate the HMAC-rmd160 of a key and some data (raw strings)
13689      */
13690     function rstr_hmac(key, data) {
13691       key = (utf8) ? utf8Encode(key) : key;
13692       data = (utf8) ? utf8Encode(data) : data;
13693       var i, hash,
13694           bkey = rstr2binl(key),
13695           ipad = Array(16), opad = Array(16);
13696
13697       if (bkey.length > 16) { 
13698         bkey = binl(bkey, key.length * 8); 
13699       }
13700       
13701       for (i = 0; i < 16; i+=1) {
13702         ipad[i] = bkey[i] ^ 0x36363636;
13703         opad[i] = bkey[i] ^ 0x5C5C5C5C;
13704       }
13705       hash = binl(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
13706       return binl2rstr(binl(opad.concat(hash), 512 + 160));
13707     }
13708
13709     /**
13710      * Convert an array of little-endian words to a string
13711      */
13712     function binl2rstr(input) {
13713       var i, output = '', l = input.length * 32;
13714       for (i = 0; i < l; i += 8) {
13715         output += String.fromCharCode((input[i>>5] >>> (i % 32)) & 0xFF);
13716       }
13717       return output;
13718     }
13719
13720     /**
13721      * Calculate the RIPE-MD160 of an array of little-endian words, and a bit length.
13722      */
13723     function binl(x, len) {
13724       var T, j, i, l,
13725           h0 = 0x67452301,
13726           h1 = 0xefcdab89,
13727           h2 = 0x98badcfe,
13728           h3 = 0x10325476,
13729           h4 = 0xc3d2e1f0,
13730           A1, B1, C1, D1, E1,
13731           A2, B2, C2, D2, E2;
13732
13733       /* append padding */
13734       x[len >> 5] |= 0x80 << (len % 32);
13735       x[(((len + 64) >>> 9) << 4) + 14] = len;
13736       l = x.length;
13737       
13738       for (i = 0; i < l; i+=16) {
13739         A1 = A2 = h0; B1 = B2 = h1; C1 = C2 = h2; D1 = D2 = h3; E1 = E2 = h4;
13740         for (j = 0; j <= 79; j+=1) {
13741           T = safe_add(A1, rmd160_f(j, B1, C1, D1));
13742           T = safe_add(T, x[i + rmd160_r1[j]]);
13743           T = safe_add(T, rmd160_K1(j));
13744           T = safe_add(bit_rol(T, rmd160_s1[j]), E1);
13745           A1 = E1; E1 = D1; D1 = bit_rol(C1, 10); C1 = B1; B1 = T;
13746           T = safe_add(A2, rmd160_f(79-j, B2, C2, D2));
13747           T = safe_add(T, x[i + rmd160_r2[j]]);
13748           T = safe_add(T, rmd160_K2(j));
13749           T = safe_add(bit_rol(T, rmd160_s2[j]), E2);
13750           A2 = E2; E2 = D2; D2 = bit_rol(C2, 10); C2 = B2; B2 = T;
13751         }
13752
13753         T = safe_add(h1, safe_add(C1, D2));
13754         h1 = safe_add(h2, safe_add(D1, E2));
13755         h2 = safe_add(h3, safe_add(E1, A2));
13756         h3 = safe_add(h4, safe_add(A1, B2));
13757         h4 = safe_add(h0, safe_add(B1, C2));
13758         h0 = T;
13759       }
13760       return [h0, h1, h2, h3, h4];
13761     }
13762
13763     // specific algorithm methods 
13764     function rmd160_f(j, x, y, z) {
13765       return ( 0 <= j && j <= 15) ? (x ^ y ^ z) :
13766          (16 <= j && j <= 31) ? (x & y) | (~x & z) :
13767          (32 <= j && j <= 47) ? (x | ~y) ^ z :
13768          (48 <= j && j <= 63) ? (x & z) | (y & ~z) :
13769          (64 <= j && j <= 79) ? x ^ (y | ~z) :
13770          'rmd160_f: j out of range';
13771     }
13772
13773     function rmd160_K1(j) {
13774       return ( 0 <= j && j <= 15) ? 0x00000000 :
13775          (16 <= j && j <= 31) ? 0x5a827999 :
13776          (32 <= j && j <= 47) ? 0x6ed9eba1 :
13777          (48 <= j && j <= 63) ? 0x8f1bbcdc :
13778          (64 <= j && j <= 79) ? 0xa953fd4e :
13779          'rmd160_K1: j out of range';
13780     }
13781
13782     function rmd160_K2(j){
13783       return ( 0 <= j && j <= 15) ? 0x50a28be6 :
13784          (16 <= j && j <= 31) ? 0x5c4dd124 :
13785          (32 <= j && j <= 47) ? 0x6d703ef3 :
13786          (48 <= j && j <= 63) ? 0x7a6d76e9 :
13787          (64 <= j && j <= 79) ? 0x00000000 :
13788          'rmd160_K2: j out of range';
13789     }
13790   }
13791 };
13792
13793   // exposes Hashes
13794   (function( window, undefined ) {
13795     var freeExports = false;
13796     if (typeof exports === 'object' ) {
13797       freeExports = exports;
13798       if (exports && typeof global === 'object' && global && global === global.global ) { window = global; }
13799     }
13800
13801     if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
13802       // define as an anonymous module, so, through path mapping, it can be aliased
13803       define(function () { return Hashes; });
13804     }
13805     else if ( freeExports ) {
13806       // in Node.js or RingoJS v0.8.0+
13807       if ( typeof module === 'object' && module && module.exports === freeExports ) {
13808         module.exports = Hashes;
13809       }
13810       // in Narwhal or RingoJS v0.7.0-
13811       else {
13812         freeExports.Hashes = Hashes;
13813       }
13814     }
13815     else {
13816       // in a browser or Rhino
13817       window.Hashes = Hashes;
13818     }
13819   }( this ));
13820 }()); // IIFE
13821
13822 })(window)
13823 },{}],2:[function(require,module,exports){
13824 'use strict';
13825
13826 var hashes = require('jshashes'),
13827     xtend = require('xtend'),
13828     sha1 = new hashes.SHA1();
13829
13830 var ohauth = {};
13831
13832 ohauth.qsString = function(obj) {
13833     return Object.keys(obj).sort().map(function(key) {
13834         return ohauth.percentEncode(key) + '=' +
13835             ohauth.percentEncode(obj[key]);
13836     }).join('&');
13837 };
13838
13839 ohauth.stringQs = function(str) {
13840     return str.split('&').reduce(function(obj, pair){
13841         var parts = pair.split('=');
13842         obj[decodeURIComponent(parts[0])] = (null === parts[1]) ?
13843             '' : decodeURIComponent(parts[1]);
13844         return obj;
13845     }, {});
13846 };
13847
13848 ohauth.rawxhr = function(method, url, data, headers, callback) {
13849     var xhr = new XMLHttpRequest(),
13850         twoHundred = /^20\d$/;
13851     xhr.onreadystatechange = function() {
13852         if (4 == xhr.readyState && 0 !== xhr.status) {
13853             if (twoHundred.test(xhr.status)) callback(null, xhr);
13854             else return callback(xhr, null);
13855         }
13856     };
13857     xhr.onerror = function(e) { return callback(e, null); };
13858     xhr.open(method, url, true);
13859     for (var h in headers) xhr.setRequestHeader(h, headers[h]);
13860     xhr.send(data);
13861 };
13862
13863 ohauth.xhr = function(method, url, auth, data, options, callback) {
13864     var headers = (options && options.header) || {
13865         'Content-Type': 'application/x-www-form-urlencoded'
13866     };
13867     headers.Authorization = 'OAuth ' + ohauth.authHeader(auth);
13868     ohauth.rawxhr(method, url, data, headers, callback);
13869 };
13870
13871 ohauth.nonce = function() {
13872     for (var o = ''; o.length < 6;) {
13873         o += '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'[Math.floor(Math.random() * 61)];
13874     }
13875     return o;
13876 };
13877
13878 ohauth.authHeader = function(obj) {
13879     return Object.keys(obj).sort().map(function(key) {
13880         return encodeURIComponent(key) + '="' + encodeURIComponent(obj[key]) + '"';
13881     }).join(', ');
13882 };
13883
13884 ohauth.timestamp = function() { return ~~((+new Date()) / 1000); };
13885
13886 ohauth.percentEncode = function(s) {
13887     return encodeURIComponent(s)
13888         .replace(/\!/g, '%21').replace(/\'/g, '%27')
13889         .replace(/\*/g, '%2A').replace(/\(/g, '%28').replace(/\)/g, '%29');
13890 };
13891
13892 ohauth.baseString = function(method, url, params) {
13893     if (params.oauth_signature) delete params.oauth_signature;
13894     return [
13895         method,
13896         ohauth.percentEncode(url),
13897         ohauth.percentEncode(ohauth.qsString(params))].join('&');
13898 };
13899
13900 ohauth.signature = function(oauth_secret, token_secret, baseString) {
13901     return sha1.b64_hmac(
13902         ohauth.percentEncode(oauth_secret) + '&' +
13903         ohauth.percentEncode(token_secret),
13904         baseString);
13905 };
13906
13907 /**
13908  * Takes an options object for configuration (consumer_key,
13909  * consumer_secret, version, signature_method, token) and returns a
13910  * function that generates the Authorization header for given data.
13911  *
13912  * The returned function takes these parameters:
13913  * - method: GET/POST/...
13914  * - uri: full URI with protocol, port, path and query string
13915  * - extra_params: any extra parameters (that are passed in the POST data),
13916  *   can be an object or a from-urlencoded string.
13917  *
13918  * Returned function returns full OAuth header with "OAuth" string in it.
13919  */
13920
13921 ohauth.headerGenerator = function(options) {
13922     options = options || {};
13923     var consumer_key = options.consumer_key || '',
13924         consumer_secret = options.consumer_secret || '',
13925         signature_method = options.signature_method || 'HMAC-SHA1',
13926         version = options.version || '1.0',
13927         token = options.token || '';
13928
13929     return function(method, uri, extra_params) {
13930         method = method.toUpperCase();
13931         if (typeof extra_params === 'string' && extra_params.length > 0) {
13932             extra_params = ohauth.stringQs(extra_params);
13933         }
13934
13935         var uri_parts = uri.split('?', 2),
13936         base_uri = uri_parts[0];
13937
13938         var query_params = uri_parts.length === 2 ?
13939             ohauth.stringQs(uri_parts[1]) : {};
13940
13941         var oauth_params = {
13942             oauth_consumer_key: consumer_key,
13943             oauth_signature_method: signature_method,
13944             oauth_version: version,
13945             oauth_timestamp: ohauth.timestamp(),
13946             oauth_nonce: ohauth.nonce()
13947         };
13948
13949         if (token) oauth_params.oauth_token = token;
13950
13951         var all_params = xtend({}, oauth_params, query_params, extra_params),
13952             base_str = ohauth.baseString(method, base_uri, all_params);
13953
13954         oauth_params.oauth_signature = ohauth.signature(consumer_secret, token, base_str);
13955
13956         return 'OAuth ' + ohauth.authHeader(oauth_params);
13957     };
13958 };
13959
13960 module.exports = ohauth;
13961
13962 },{"jshashes":7,"xtend":4}],6:[function(require,module,exports){
13963 module.exports = Object.keys || require('./shim');
13964
13965
13966 },{"./shim":8}],8:[function(require,module,exports){
13967 (function () {
13968         "use strict";
13969
13970         // modified from https://github.com/kriskowal/es5-shim
13971         var has = Object.prototype.hasOwnProperty,
13972                 is = require('is'),
13973                 forEach = require('foreach'),
13974                 hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'),
13975                 dontEnums = [
13976                         "toString",
13977                         "toLocaleString",
13978                         "valueOf",
13979                         "hasOwnProperty",
13980                         "isPrototypeOf",
13981                         "propertyIsEnumerable",
13982                         "constructor"
13983                 ],
13984                 keysShim;
13985
13986         keysShim = function keys(object) {
13987                 if (!is.object(object) && !is.array(object)) {
13988                         throw new TypeError("Object.keys called on a non-object");
13989                 }
13990
13991                 var name, theKeys = [];
13992                 for (name in object) {
13993                         if (has.call(object, name)) {
13994                                 theKeys.push(name);
13995                         }
13996                 }
13997
13998                 if (hasDontEnumBug) {
13999                         forEach(dontEnums, function (dontEnum) {
14000                                 if (has.call(object, dontEnum)) {
14001                                         theKeys.push(dontEnum);
14002                                 }
14003                         });
14004                 }
14005                 return theKeys;
14006         };
14007
14008         module.exports = keysShim;
14009 }());
14010
14011
14012 },{"is":9,"foreach":10}],9:[function(require,module,exports){
14013
14014 /**!
14015  * is
14016  * the definitive JavaScript type testing library
14017  * 
14018  * @copyright 2013 Enrico Marino
14019  * @license MIT
14020  */
14021
14022 var objProto = Object.prototype;
14023 var owns = objProto.hasOwnProperty;
14024 var toString = objProto.toString;
14025 var isActualNaN = function (value) {
14026   return value !== value;
14027 };
14028 var NON_HOST_TYPES = {
14029   "boolean": 1,
14030   "number": 1,
14031   "string": 1,
14032   "undefined": 1
14033 };
14034
14035 /**
14036  * Expose `is`
14037  */
14038
14039 var is = module.exports = {};
14040
14041 /**
14042  * Test general.
14043  */
14044
14045 /**
14046  * is.type
14047  * Test if `value` is a type of `type`.
14048  *
14049  * @param {Mixed} value value to test
14050  * @param {String} type type
14051  * @return {Boolean} true if `value` is a type of `type`, false otherwise
14052  * @api public
14053  */
14054
14055 is.a =
14056 is.type = function (value, type) {
14057   return typeof value === type;
14058 };
14059
14060 /**
14061  * is.defined
14062  * Test if `value` is defined.
14063  *
14064  * @param {Mixed} value value to test
14065  * @return {Boolean} true if 'value' is defined, false otherwise
14066  * @api public
14067  */
14068
14069 is.defined = function (value) {
14070   return value !== undefined;
14071 };
14072
14073 /**
14074  * is.empty
14075  * Test if `value` is empty.
14076  *
14077  * @param {Mixed} value value to test
14078  * @return {Boolean} true if `value` is empty, false otherwise
14079  * @api public
14080  */
14081
14082 is.empty = function (value) {
14083   var type = toString.call(value);
14084   var key;
14085
14086   if ('[object Array]' === type || '[object Arguments]' === type) {
14087     return value.length === 0;
14088   }
14089
14090   if ('[object Object]' === type) {
14091     for (key in value) if (owns.call(value, key)) return false;
14092     return true;
14093   }
14094
14095   if ('[object String]' === type) {
14096     return '' === value;
14097   }
14098
14099   return false;
14100 };
14101
14102 /**
14103  * is.equal
14104  * Test if `value` is equal to `other`.
14105  *
14106  * @param {Mixed} value value to test
14107  * @param {Mixed} other value to compare with
14108  * @return {Boolean} true if `value` is equal to `other`, false otherwise
14109  */
14110
14111 is.equal = function (value, other) {
14112   var type = toString.call(value)
14113   var key;
14114
14115   if (type !== toString.call(other)) {
14116     return false;
14117   }
14118
14119   if ('[object Object]' === type) {
14120     for (key in value) {
14121       if (!is.equal(value[key], other[key])) {
14122         return false;
14123       }
14124     }
14125     return true;
14126   }
14127
14128   if ('[object Array]' === type) {
14129     key = value.length;
14130     if (key !== other.length) {
14131       return false;
14132     }
14133     while (--key) {
14134       if (!is.equal(value[key], other[key])) {
14135         return false;
14136       }
14137     }
14138     return true;
14139   }
14140
14141   if ('[object Function]' === type) {
14142     return value.prototype === other.prototype;
14143   }
14144
14145   if ('[object Date]' === type) {
14146     return value.getTime() === other.getTime();
14147   }
14148
14149   return value === other;
14150 };
14151
14152 /**
14153  * is.hosted
14154  * Test if `value` is hosted by `host`.
14155  *
14156  * @param {Mixed} value to test
14157  * @param {Mixed} host host to test with
14158  * @return {Boolean} true if `value` is hosted by `host`, false otherwise
14159  * @api public
14160  */
14161
14162 is.hosted = function (value, host) {
14163   var type = typeof host[value];
14164   return type === 'object' ? !!host[value] : !NON_HOST_TYPES[type];
14165 };
14166
14167 /**
14168  * is.instance
14169  * Test if `value` is an instance of `constructor`.
14170  *
14171  * @param {Mixed} value value to test
14172  * @return {Boolean} true if `value` is an instance of `constructor`
14173  * @api public
14174  */
14175
14176 is.instance = is['instanceof'] = function (value, constructor) {
14177   return value instanceof constructor;
14178 };
14179
14180 /**
14181  * is.null
14182  * Test if `value` is null.
14183  *
14184  * @param {Mixed} value value to test
14185  * @return {Boolean} true if `value` is null, false otherwise
14186  * @api public
14187  */
14188
14189 is['null'] = function (value) {
14190   return value === null;
14191 };
14192
14193 /**
14194  * is.undefined
14195  * Test if `value` is undefined.
14196  *
14197  * @param {Mixed} value value to test
14198  * @return {Boolean} true if `value` is undefined, false otherwise
14199  * @api public
14200  */
14201
14202 is.undefined = function (value) {
14203   return value === undefined;
14204 };
14205
14206 /**
14207  * Test arguments.
14208  */
14209
14210 /**
14211  * is.arguments
14212  * Test if `value` is an arguments object.
14213  *
14214  * @param {Mixed} value value to test
14215  * @return {Boolean} true if `value` is an arguments object, false otherwise
14216  * @api public
14217  */
14218
14219 is.arguments = function (value) {
14220   var isStandardArguments = '[object Arguments]' === toString.call(value);
14221   var isOldArguments = !is.array(value) && is.arraylike(value) && is.object(value) && is.fn(value.callee);
14222   return isStandardArguments || isOldArguments;
14223 };
14224
14225 /**
14226  * Test array.
14227  */
14228
14229 /**
14230  * is.array
14231  * Test if 'value' is an array.
14232  *
14233  * @param {Mixed} value value to test
14234  * @return {Boolean} true if `value` is an array, false otherwise
14235  * @api public
14236  */
14237
14238 is.array = function (value) {
14239   return '[object Array]' === toString.call(value);
14240 };
14241
14242 /**
14243  * is.arguments.empty
14244  * Test if `value` is an empty arguments object.
14245  *
14246  * @param {Mixed} value value to test
14247  * @return {Boolean} true if `value` is an empty arguments object, false otherwise
14248  * @api public
14249  */
14250 is.arguments.empty = function (value) {
14251   return is.arguments(value) && value.length === 0;
14252 };
14253
14254 /**
14255  * is.array.empty
14256  * Test if `value` is an empty array.
14257  *
14258  * @param {Mixed} value value to test
14259  * @return {Boolean} true if `value` is an empty array, false otherwise
14260  * @api public
14261  */
14262 is.array.empty = function (value) {
14263   return is.array(value) && value.length === 0;
14264 };
14265
14266 /**
14267  * is.arraylike
14268  * Test if `value` is an arraylike object.
14269  *
14270  * @param {Mixed} value value to test
14271  * @return {Boolean} true if `value` is an arguments object, false otherwise
14272  * @api public
14273  */
14274
14275 is.arraylike = function (value) {
14276   return !!value && !is.boolean(value)
14277     && owns.call(value, 'length')
14278     && isFinite(value.length)
14279     && is.number(value.length)
14280     && value.length >= 0;
14281 };
14282
14283 /**
14284  * Test boolean.
14285  */
14286
14287 /**
14288  * is.boolean
14289  * Test if `value` is a boolean.
14290  *
14291  * @param {Mixed} value value to test
14292  * @return {Boolean} true if `value` is a boolean, false otherwise
14293  * @api public
14294  */
14295
14296 is.boolean = function (value) {
14297   return '[object Boolean]' === toString.call(value);
14298 };
14299
14300 /**
14301  * is.false
14302  * Test if `value` is false.
14303  *
14304  * @param {Mixed} value value to test
14305  * @return {Boolean} true if `value` is false, false otherwise
14306  * @api public
14307  */
14308
14309 is['false'] = function (value) {
14310   return is.boolean(value) && (value === false || value.valueOf() === false);
14311 };
14312
14313 /**
14314  * is.true
14315  * Test if `value` is true.
14316  *
14317  * @param {Mixed} value value to test
14318  * @return {Boolean} true if `value` is true, false otherwise
14319  * @api public
14320  */
14321
14322 is['true'] = function (value) {
14323   return is.boolean(value) && (value === true || value.valueOf() === true);
14324 };
14325
14326 /**
14327  * Test date.
14328  */
14329
14330 /**
14331  * is.date
14332  * Test if `value` is a date.
14333  *
14334  * @param {Mixed} value value to test
14335  * @return {Boolean} true if `value` is a date, false otherwise
14336  * @api public
14337  */
14338
14339 is.date = function (value) {
14340   return '[object Date]' === toString.call(value);
14341 };
14342
14343 /**
14344  * Test element.
14345  */
14346
14347 /**
14348  * is.element
14349  * Test if `value` is an html element.
14350  *
14351  * @param {Mixed} value value to test
14352  * @return {Boolean} true if `value` is an HTML Element, false otherwise
14353  * @api public
14354  */
14355
14356 is.element = function (value) {
14357   return value !== undefined
14358     && typeof HTMLElement !== 'undefined'
14359     && value instanceof HTMLElement
14360     && value.nodeType === 1;
14361 };
14362
14363 /**
14364  * Test error.
14365  */
14366
14367 /**
14368  * is.error
14369  * Test if `value` is an error object.
14370  *
14371  * @param {Mixed} value value to test
14372  * @return {Boolean} true if `value` is an error object, false otherwise
14373  * @api public
14374  */
14375
14376 is.error = function (value) {
14377   return '[object Error]' === toString.call(value);
14378 };
14379
14380 /**
14381  * Test function.
14382  */
14383
14384 /**
14385  * is.fn / is.function (deprecated)
14386  * Test if `value` is a function.
14387  *
14388  * @param {Mixed} value value to test
14389  * @return {Boolean} true if `value` is a function, false otherwise
14390  * @api public
14391  */
14392
14393 is.fn = is['function'] = function (value) {
14394   var isAlert = typeof window !== 'undefined' && value === window.alert;
14395   return isAlert || '[object Function]' === toString.call(value);
14396 };
14397
14398 /**
14399  * Test number.
14400  */
14401
14402 /**
14403  * is.number
14404  * Test if `value` is a number.
14405  *
14406  * @param {Mixed} value value to test
14407  * @return {Boolean} true if `value` is a number, false otherwise
14408  * @api public
14409  */
14410
14411 is.number = function (value) {
14412   return '[object Number]' === toString.call(value);
14413 };
14414
14415 /**
14416  * is.infinite
14417  * Test if `value` is positive or negative infinity.
14418  *
14419  * @param {Mixed} value value to test
14420  * @return {Boolean} true if `value` is positive or negative Infinity, false otherwise
14421  * @api public
14422  */
14423 is.infinite = function (value) {
14424   return value === Infinity || value === -Infinity;
14425 };
14426
14427 /**
14428  * is.decimal
14429  * Test if `value` is a decimal number.
14430  *
14431  * @param {Mixed} value value to test
14432  * @return {Boolean} true if `value` is a decimal number, false otherwise
14433  * @api public
14434  */
14435
14436 is.decimal = function (value) {
14437   return is.number(value) && !isActualNaN(value) && value % 1 !== 0;
14438 };
14439
14440 /**
14441  * is.divisibleBy
14442  * Test if `value` is divisible by `n`.
14443  *
14444  * @param {Number} value value to test
14445  * @param {Number} n dividend
14446  * @return {Boolean} true if `value` is divisible by `n`, false otherwise
14447  * @api public
14448  */
14449
14450 is.divisibleBy = function (value, n) {
14451   var isDividendInfinite = is.infinite(value);
14452   var isDivisorInfinite = is.infinite(n);
14453   var isNonZeroNumber = is.number(value) && !isActualNaN(value) && is.number(n) && !isActualNaN(n) && n !== 0;
14454   return isDividendInfinite || isDivisorInfinite || (isNonZeroNumber && value % n === 0);
14455 };
14456
14457 /**
14458  * is.int
14459  * Test if `value` is an integer.
14460  *
14461  * @param value to test
14462  * @return {Boolean} true if `value` is an integer, false otherwise
14463  * @api public
14464  */
14465
14466 is.int = function (value) {
14467   return is.number(value) && !isActualNaN(value) && value % 1 === 0;
14468 };
14469
14470 /**
14471  * is.maximum
14472  * Test if `value` is greater than 'others' values.
14473  *
14474  * @param {Number} value value to test
14475  * @param {Array} others values to compare with
14476  * @return {Boolean} true if `value` is greater than `others` values
14477  * @api public
14478  */
14479
14480 is.maximum = function (value, others) {
14481   if (isActualNaN(value)) {
14482     throw new TypeError('NaN is not a valid value');
14483   } else if (!is.arraylike(others)) {
14484     throw new TypeError('second argument must be array-like');
14485   }
14486   var len = others.length;
14487
14488   while (--len >= 0) {
14489     if (value < others[len]) {
14490       return false;
14491     }
14492   }
14493
14494   return true;
14495 };
14496
14497 /**
14498  * is.minimum
14499  * Test if `value` is less than `others` values.
14500  *
14501  * @param {Number} value value to test
14502  * @param {Array} others values to compare with
14503  * @return {Boolean} true if `value` is less than `others` values
14504  * @api public
14505  */
14506
14507 is.minimum = function (value, others) {
14508   if (isActualNaN(value)) {
14509     throw new TypeError('NaN is not a valid value');
14510   } else if (!is.arraylike(others)) {
14511     throw new TypeError('second argument must be array-like');
14512   }
14513   var len = others.length;
14514
14515   while (--len >= 0) {
14516     if (value > others[len]) {
14517       return false;
14518     }
14519   }
14520
14521   return true;
14522 };
14523
14524 /**
14525  * is.nan
14526  * Test if `value` is not a number.
14527  *
14528  * @param {Mixed} value value to test
14529  * @return {Boolean} true if `value` is not a number, false otherwise
14530  * @api public
14531  */
14532
14533 is.nan = function (value) {
14534   return !is.number(value) || value !== value;
14535 };
14536
14537 /**
14538  * is.even
14539  * Test if `value` is an even number.
14540  *
14541  * @param {Number} value value to test
14542  * @return {Boolean} true if `value` is an even number, false otherwise
14543  * @api public
14544  */
14545
14546 is.even = function (value) {
14547   return is.infinite(value) || (is.number(value) && value === value && value % 2 === 0);
14548 };
14549
14550 /**
14551  * is.odd
14552  * Test if `value` is an odd number.
14553  *
14554  * @param {Number} value value to test
14555  * @return {Boolean} true if `value` is an odd number, false otherwise
14556  * @api public
14557  */
14558
14559 is.odd = function (value) {
14560   return is.infinite(value) || (is.number(value) && value === value && value % 2 !== 0);
14561 };
14562
14563 /**
14564  * is.ge
14565  * Test if `value` is greater than or equal to `other`.
14566  *
14567  * @param {Number} value value to test
14568  * @param {Number} other value to compare with
14569  * @return {Boolean}
14570  * @api public
14571  */
14572
14573 is.ge = function (value, other) {
14574   if (isActualNaN(value) || isActualNaN(other)) {
14575     throw new TypeError('NaN is not a valid value');
14576   }
14577   return !is.infinite(value) && !is.infinite(other) && value >= other;
14578 };
14579
14580 /**
14581  * is.gt
14582  * Test if `value` is greater than `other`.
14583  *
14584  * @param {Number} value value to test
14585  * @param {Number} other value to compare with
14586  * @return {Boolean}
14587  * @api public
14588  */
14589
14590 is.gt = function (value, other) {
14591   if (isActualNaN(value) || isActualNaN(other)) {
14592     throw new TypeError('NaN is not a valid value');
14593   }
14594   return !is.infinite(value) && !is.infinite(other) && value > other;
14595 };
14596
14597 /**
14598  * is.le
14599  * Test if `value` is less than or equal to `other`.
14600  *
14601  * @param {Number} value value to test
14602  * @param {Number} other value to compare with
14603  * @return {Boolean} if 'value' is less than or equal to 'other'
14604  * @api public
14605  */
14606
14607 is.le = function (value, other) {
14608   if (isActualNaN(value) || isActualNaN(other)) {
14609     throw new TypeError('NaN is not a valid value');
14610   }
14611   return !is.infinite(value) && !is.infinite(other) && value <= other;
14612 };
14613
14614 /**
14615  * is.lt
14616  * Test if `value` is less than `other`.
14617  *
14618  * @param {Number} value value to test
14619  * @param {Number} other value to compare with
14620  * @return {Boolean} if `value` is less than `other`
14621  * @api public
14622  */
14623
14624 is.lt = function (value, other) {
14625   if (isActualNaN(value) || isActualNaN(other)) {
14626     throw new TypeError('NaN is not a valid value');
14627   }
14628   return !is.infinite(value) && !is.infinite(other) && value < other;
14629 };
14630
14631 /**
14632  * is.within
14633  * Test if `value` is within `start` and `finish`.
14634  *
14635  * @param {Number} value value to test
14636  * @param {Number} start lower bound
14637  * @param {Number} finish upper bound
14638  * @return {Boolean} true if 'value' is is within 'start' and 'finish'
14639  * @api public
14640  */
14641 is.within = function (value, start, finish) {
14642   if (isActualNaN(value) || isActualNaN(start) || isActualNaN(finish)) {
14643     throw new TypeError('NaN is not a valid value');
14644   } else if (!is.number(value) || !is.number(start) || !is.number(finish)) {
14645     throw new TypeError('all arguments must be numbers');
14646   }
14647   var isAnyInfinite = is.infinite(value) || is.infinite(start) || is.infinite(finish);
14648   return isAnyInfinite || (value >= start && value <= finish);
14649 };
14650
14651 /**
14652  * Test object.
14653  */
14654
14655 /**
14656  * is.object
14657  * Test if `value` is an object.
14658  *
14659  * @param {Mixed} value value to test
14660  * @return {Boolean} true if `value` is an object, false otherwise
14661  * @api public
14662  */
14663
14664 is.object = function (value) {
14665   return value && '[object Object]' === toString.call(value);
14666 };
14667
14668 /**
14669  * is.hash
14670  * Test if `value` is a hash - a plain object literal.
14671  *
14672  * @param {Mixed} value value to test
14673  * @return {Boolean} true if `value` is a hash, false otherwise
14674  * @api public
14675  */
14676
14677 is.hash = function (value) {
14678   return is.object(value) && value.constructor === Object && !value.nodeType && !value.setInterval;
14679 };
14680
14681 /**
14682  * Test regexp.
14683  */
14684
14685 /**
14686  * is.regexp
14687  * Test if `value` is a regular expression.
14688  *
14689  * @param {Mixed} value value to test
14690  * @return {Boolean} true if `value` is a regexp, false otherwise
14691  * @api public
14692  */
14693
14694 is.regexp = function (value) {
14695   return '[object RegExp]' === toString.call(value);
14696 };
14697
14698 /**
14699  * Test string.
14700  */
14701
14702 /**
14703  * is.string
14704  * Test if `value` is a string.
14705  *
14706  * @param {Mixed} value value to test
14707  * @return {Boolean} true if 'value' is a string, false otherwise
14708  * @api public
14709  */
14710
14711 is.string = function (value) {
14712   return '[object String]' === toString.call(value);
14713 };
14714
14715
14716 },{}],10:[function(require,module,exports){
14717
14718 var hasOwn = Object.prototype.hasOwnProperty;
14719 var toString = Object.prototype.toString;
14720
14721 module.exports = function forEach (obj, fn, ctx) {
14722     if (toString.call(fn) !== '[object Function]') {
14723         throw new TypeError('iterator must be a function');
14724     }
14725     var l = obj.length;
14726     if (l === +l) {
14727         for (var i = 0; i < l; i++) {
14728             fn.call(ctx, obj[i], i, obj);
14729         }
14730     } else {
14731         for (var k in obj) {
14732             if (hasOwn.call(obj, k)) {
14733                 fn.call(ctx, obj[k], k, obj);
14734             }
14735         }
14736     }
14737 };
14738
14739
14740 },{}]},{},[1])(1)
14741 });
14742 ;/*
14743  (c) 2013, Vladimir Agafonkin
14744  RBush, a JavaScript library for high-performance 2D spatial indexing of points and rectangles.
14745  https://github.com/mourner/rbush
14746 */
14747
14748 (function () { 'use strict';
14749
14750 function rbush(maxEntries, format) {
14751
14752     // jshint newcap: false, validthis: true
14753     if (!(this instanceof rbush)) return new rbush(maxEntries, format);
14754
14755     // max entries in a node is 9 by default; min node fill is 40% for best performance
14756     this._maxEntries = Math.max(4, maxEntries || 9);
14757     this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4));
14758
14759     if (format) {
14760         this._initFormat(format);
14761     }
14762
14763     this.clear();
14764 }
14765
14766 rbush.prototype = {
14767
14768     all: function () {
14769         return this._all(this.data, []);
14770     },
14771
14772     search: function (bbox) {
14773
14774         var node = this.data,
14775             result = [],
14776             toBBox = this.toBBox;
14777
14778         if (!intersects(bbox, node.bbox)) return result;
14779
14780         var nodesToSearch = [],
14781             i, len, child, childBBox;
14782
14783         while (node) {
14784             for (i = 0, len = node.children.length; i < len; i++) {
14785
14786                 child = node.children[i];
14787                 childBBox = node.leaf ? toBBox(child) : child.bbox;
14788
14789                 if (intersects(bbox, childBBox)) {
14790                     if (node.leaf) result.push(child);
14791                     else if (contains(bbox, childBBox)) this._all(child, result);
14792                     else nodesToSearch.push(child);
14793                 }
14794             }
14795             node = nodesToSearch.pop();
14796         }
14797
14798         return result;
14799     },
14800
14801     load: function (data) {
14802         if (!(data && data.length)) return this;
14803
14804         if (data.length < this._minEntries) {
14805             for (var i = 0, len = data.length; i < len; i++) {
14806                 this.insert(data[i]);
14807             }
14808             return this;
14809         }
14810
14811         // recursively build the tree with the given data from stratch using OMT algorithm
14812         var node = this._build(data.slice(), 0, data.length - 1, 0);
14813
14814         if (!this.data.children.length) {
14815             // save as is if tree is empty
14816             this.data = node;
14817
14818         } else if (this.data.height === node.height) {
14819             // split root if trees have the same height
14820             this._splitRoot(this.data, node);
14821
14822         } else {
14823             if (this.data.height < node.height) {
14824                 // swap trees if inserted one is bigger
14825                 var tmpNode = this.data;
14826                 this.data = node;
14827                 node = tmpNode;
14828             }
14829
14830             // insert the small tree into the large tree at appropriate level
14831             this._insert(node, this.data.height - node.height - 1, true);
14832         }
14833
14834         return this;
14835     },
14836
14837     insert: function (item) {
14838         if (item) this._insert(item, this.data.height - 1);
14839         return this;
14840     },
14841
14842     clear: function () {
14843         this.data = {
14844             children: [],
14845             height: 1,
14846             bbox: empty(),
14847             leaf: true
14848         };
14849         return this;
14850     },
14851
14852     remove: function (item) {
14853         if (!item) return this;
14854
14855         var node = this.data,
14856             bbox = this.toBBox(item),
14857             path = [],
14858             indexes = [],
14859             i, parent, index, goingUp;
14860
14861         // depth-first iterative tree traversal
14862         while (node || path.length) {
14863
14864             if (!node) { // go up
14865                 node = path.pop();
14866                 parent = path[path.length - 1];
14867                 i = indexes.pop();
14868                 goingUp = true;
14869             }
14870
14871             if (node.leaf) { // check current node
14872                 index = node.children.indexOf(item);
14873
14874                 if (index !== -1) {
14875                     // item found, remove the item and condense tree upwards
14876                     node.children.splice(index, 1);
14877                     path.push(node);
14878                     this._condense(path);
14879                     return this;
14880                 }
14881             }
14882
14883             if (!goingUp && !node.leaf && contains(node.bbox, bbox)) { // go down
14884                 path.push(node);
14885                 indexes.push(i);
14886                 i = 0;
14887                 parent = node;
14888                 node = node.children[0];
14889
14890             } else if (parent) { // go right
14891                 i++;
14892                 node = parent.children[i];
14893                 goingUp = false;
14894
14895             } else node = null; // nothing found
14896         }
14897
14898         return this;
14899     },
14900
14901     toBBox: function (item) { return item; },
14902
14903     compareMinX: function (a, b) { return a[0] - b[0]; },
14904     compareMinY: function (a, b) { return a[1] - b[1]; },
14905
14906     toJSON: function () { return this.data; },
14907
14908     fromJSON: function (data) {
14909         this.data = data;
14910         return this;
14911     },
14912
14913     _all: function (node, result) {
14914         var nodesToSearch = [];
14915         while (node) {
14916             if (node.leaf) result.push.apply(result, node.children);
14917             else nodesToSearch.push.apply(nodesToSearch, node.children);
14918
14919             node = nodesToSearch.pop();
14920         }
14921         return result;
14922     },
14923
14924     _build: function (items, left, right, level, height) {
14925
14926         var N = right - left + 1,
14927             M = this._maxEntries,
14928             node;
14929
14930         if (N <= M) {
14931             node = {
14932                 children: items.slice(left, right + 1),
14933                 height: 1,
14934                 bbox: null,
14935                 leaf: true
14936             };
14937             calcBBox(node, this.toBBox);
14938             return node;
14939         }
14940
14941         if (!level) {
14942             // target height of the bulk-loaded tree
14943             height = Math.ceil(Math.log(N) / Math.log(M));
14944
14945             // target number of root entries to maximize storage utilization
14946             M = Math.ceil(N / Math.pow(M, height - 1));
14947         }
14948
14949         // TODO eliminate recursion?
14950
14951         node = {
14952             children: [],
14953             height: height,
14954             bbox: null
14955         };
14956
14957         var N2 = Math.ceil(N / M),
14958             N1 = N2 * Math.ceil(Math.sqrt(M)),
14959             i, j, right2, childNode;
14960
14961         // split the items into M mostly square tiles
14962         for (i = left; i <= right; i += N1) {
14963
14964             if (i + N1 <= right) partitionSort(items, i, right, i + N1, this.compareMinX);
14965             right2 = Math.min(i + N1 - 1, right);
14966
14967             for (j = i; j <= right2; j += N2) {
14968
14969                 if (j + N2 <= right2) partitionSort(items, j, right2, j + N2, this.compareMinY);
14970
14971                 // pack each entry recursively
14972                 childNode = this._build(items, j, Math.min(j + N2 - 1, right2), level + 1, height - 1);
14973                 node.children.push(childNode);
14974             }
14975         }
14976
14977         calcBBox(node, this.toBBox);
14978
14979         return node;
14980     },
14981
14982     _chooseSubtree: function (bbox, node, level, path) {
14983
14984         var i, len, child, targetNode, area, enlargement, minArea, minEnlargement;
14985
14986         while (true) {
14987             path.push(node);
14988
14989             if (node.leaf || path.length - 1 === level) break;
14990
14991             minArea = minEnlargement = Infinity;
14992
14993             for (i = 0, len = node.children.length; i < len; i++) {
14994                 child = node.children[i];
14995                 area = bboxArea(child.bbox);
14996                 enlargement = enlargedArea(bbox, child.bbox) - area;
14997
14998                 // choose entry with the least area enlargement
14999                 if (enlargement < minEnlargement) {
15000                     minEnlargement = enlargement;
15001                     minArea = area < minArea ? area : minArea;
15002                     targetNode = child;
15003
15004                 } else if (enlargement === minEnlargement) {
15005                     // otherwise choose one with the smallest area
15006                     if (area < minArea) {
15007                         minArea = area;
15008                         targetNode = child;
15009                     }
15010                 }
15011             }
15012
15013             node = targetNode;
15014         }
15015
15016         return node;
15017     },
15018
15019     _insert: function (item, level, isNode) {
15020
15021         var toBBox = this.toBBox,
15022             bbox = isNode ? item.bbox : toBBox(item),
15023             insertPath = [];
15024
15025         // find the best node for accommodating the item, saving all nodes along the path too
15026         var node = this._chooseSubtree(bbox, this.data, level, insertPath);
15027
15028         // put the item into the node
15029         node.children.push(item);
15030         extend(node.bbox, bbox);
15031
15032         // split on node overflow; propagate upwards if necessary
15033         while (level >= 0) {
15034             if (insertPath[level].children.length > this._maxEntries) {
15035                 this._split(insertPath, level);
15036                 level--;
15037             } else break;
15038         }
15039
15040         // adjust bboxes along the insertion path
15041         this._adjustParentBBoxes(bbox, insertPath, level);
15042     },
15043
15044     // split overflowed node into two
15045     _split: function (insertPath, level) {
15046
15047         var node = insertPath[level],
15048             M = node.children.length,
15049             m = this._minEntries;
15050
15051         this._chooseSplitAxis(node, m, M);
15052
15053         var newNode = {
15054             children: node.children.splice(this._chooseSplitIndex(node, m, M)),
15055             height: node.height
15056         };
15057
15058         if (node.leaf) newNode.leaf = true;
15059
15060         calcBBox(node, this.toBBox);
15061         calcBBox(newNode, this.toBBox);
15062
15063         if (level) insertPath[level - 1].children.push(newNode);
15064         else this._splitRoot(node, newNode);
15065     },
15066
15067     _splitRoot: function (node, newNode) {
15068         // split root node
15069         this.data = {
15070             children: [node, newNode],
15071             height: node.height + 1
15072         };
15073         calcBBox(this.data, this.toBBox);
15074     },
15075
15076     _chooseSplitIndex: function (node, m, M) {
15077
15078         var i, bbox1, bbox2, overlap, area, minOverlap, minArea, index;
15079
15080         minOverlap = minArea = Infinity;
15081
15082         for (i = m; i <= M - m; i++) {
15083             bbox1 = distBBox(node, 0, i, this.toBBox);
15084             bbox2 = distBBox(node, i, M, this.toBBox);
15085
15086             overlap = intersectionArea(bbox1, bbox2);
15087             area = bboxArea(bbox1) + bboxArea(bbox2);
15088
15089             // choose distribution with minimum overlap
15090             if (overlap < minOverlap) {
15091                 minOverlap = overlap;
15092                 index = i;
15093
15094                 minArea = area < minArea ? area : minArea;
15095
15096             } else if (overlap === minOverlap) {
15097                 // otherwise choose distribution with minimum area
15098                 if (area < minArea) {
15099                     minArea = area;
15100                     index = i;
15101                 }
15102             }
15103         }
15104
15105         return index;
15106     },
15107
15108     // sorts node children by the best axis for split
15109     _chooseSplitAxis: function (node, m, M) {
15110
15111         var compareMinX = node.leaf ? this.compareMinX : compareNodeMinX,
15112             compareMinY = node.leaf ? this.compareMinY : compareNodeMinY,
15113             xMargin = this._allDistMargin(node, m, M, compareMinX),
15114             yMargin = this._allDistMargin(node, m, M, compareMinY);
15115
15116         // if total distributions margin value is minimal for x, sort by minX,
15117         // otherwise it's already sorted by minY
15118         if (xMargin < yMargin) node.children.sort(compareMinX);
15119     },
15120
15121     // total margin of all possible split distributions where each node is at least m full
15122     _allDistMargin: function (node, m, M, compare) {
15123
15124         node.children.sort(compare);
15125
15126         var toBBox = this.toBBox,
15127             leftBBox = distBBox(node, 0, m, toBBox),
15128             rightBBox = distBBox(node, M - m, M, toBBox),
15129             margin = bboxMargin(leftBBox) + bboxMargin(rightBBox),
15130             i, child;
15131
15132         for (i = m; i < M - m; i++) {
15133             child = node.children[i];
15134             extend(leftBBox, node.leaf ? toBBox(child) : child.bbox);
15135             margin += bboxMargin(leftBBox);
15136         }
15137
15138         for (i = M - m - 1; i >= m; i--) {
15139             child = node.children[i];
15140             extend(rightBBox, node.leaf ? toBBox(child) : child.bbox);
15141             margin += bboxMargin(rightBBox);
15142         }
15143
15144         return margin;
15145     },
15146
15147     _adjustParentBBoxes: function (bbox, path, level) {
15148         // adjust bboxes along the given tree path
15149         for (var i = level; i >= 0; i--) {
15150             extend(path[i].bbox, bbox);
15151         }
15152     },
15153
15154     _condense: function (path) {
15155         // go through the path, removing empty nodes and updating bboxes
15156         for (var i = path.length - 1, siblings; i >= 0; i--) {
15157             if (path[i].children.length === 0) {
15158                 if (i > 0) {
15159                     siblings = path[i - 1].children;
15160                     siblings.splice(siblings.indexOf(path[i]), 1);
15161
15162                 } else this.clear();
15163
15164             } else calcBBox(path[i], this.toBBox);
15165         }
15166     },
15167
15168     _initFormat: function (format) {
15169         // data format (minX, minY, maxX, maxY accessors)
15170
15171         // uses eval-type function compilation instead of just accepting a toBBox function
15172         // because the algorithms are very sensitive to sorting functions performance,
15173         // so they should be dead simple and without inner calls
15174
15175         // jshint evil: true
15176
15177         var compareArr = ['return a', ' - b', ';'];
15178
15179         this.compareMinX = new Function('a', 'b', compareArr.join(format[0]));
15180         this.compareMinY = new Function('a', 'b', compareArr.join(format[1]));
15181
15182         this.toBBox = new Function('a', 'return [a' + format.join(', a') + '];');
15183     }
15184 };
15185
15186 // calculate node's bbox from bboxes of its children
15187 function calcBBox(node, toBBox) {
15188     node.bbox = distBBox(node, 0, node.children.length, toBBox);
15189 }
15190
15191 // min bounding rectangle of node children from k to p-1
15192 function distBBox(node, k, p, toBBox) {
15193     var bbox = empty();
15194
15195     for (var i = k, child; i < p; i++) {
15196         child = node.children[i];
15197         extend(bbox, node.leaf ? toBBox(child) : child.bbox);
15198     }
15199
15200     return bbox;
15201 }
15202
15203
15204 function empty() { return [Infinity, Infinity, -Infinity, -Infinity]; }
15205
15206 function extend(a, b) {
15207     a[0] = Math.min(a[0], b[0]);
15208     a[1] = Math.min(a[1], b[1]);
15209     a[2] = Math.max(a[2], b[2]);
15210     a[3] = Math.max(a[3], b[3]);
15211     return a;
15212 }
15213
15214 function compareNodeMinX(a, b) { return a.bbox[0] - b.bbox[0]; }
15215 function compareNodeMinY(a, b) { return a.bbox[1] - b.bbox[1]; }
15216
15217 function bboxArea(a)   { return (a[2] - a[0]) * (a[3] - a[1]); }
15218 function bboxMargin(a) { return (a[2] - a[0]) + (a[3] - a[1]); }
15219
15220 function enlargedArea(a, b) {
15221     return (Math.max(b[2], a[2]) - Math.min(b[0], a[0])) *
15222            (Math.max(b[3], a[3]) - Math.min(b[1], a[1]));
15223 }
15224
15225 function intersectionArea (a, b) {
15226     var minX = Math.max(a[0], b[0]),
15227         minY = Math.max(a[1], b[1]),
15228         maxX = Math.min(a[2], b[2]),
15229         maxY = Math.min(a[3], b[3]);
15230
15231     return Math.max(0, maxX - minX) *
15232            Math.max(0, maxY - minY);
15233 }
15234
15235 function contains(a, b) {
15236     return a[0] <= b[0] &&
15237            a[1] <= b[1] &&
15238            b[2] <= a[2] &&
15239            b[3] <= a[3];
15240 }
15241
15242 function intersects (a, b) {
15243     return b[0] <= a[2] &&
15244            b[1] <= a[3] &&
15245            b[2] >= a[0] &&
15246            b[3] >= a[1];
15247 }
15248
15249
15250 function partitionSort(arr, left, right, k, compare) {
15251     var pivot;
15252
15253     while (true) {
15254         pivot = Math.floor((left + right) / 2);
15255         pivot = partition(arr, left, right, pivot, compare);
15256
15257         if (k === pivot) break;
15258         else if (k < pivot) right = pivot - 1;
15259         else left = pivot + 1;
15260     }
15261
15262     partition(arr, left, right, k, compare);
15263 }
15264
15265 function partition(arr, left, right, pivot, compare) {
15266     var k = left,
15267         value = arr[pivot];
15268
15269     swap(arr, pivot, right);
15270
15271     for (var i = left; i < right; i++) {
15272         if (compare(arr[i], value) < 0) {
15273             swap(arr, k, i);
15274             k++;
15275         }
15276     }
15277     swap(arr, right, k);
15278
15279     return k;
15280 }
15281
15282 function swap(arr, i, j) {
15283     var tmp = arr[i];
15284     arr[i] = arr[j];
15285     arr[j] = tmp;
15286 }
15287
15288
15289 // export as AMD/CommonJS module or global variable
15290 if (typeof define === 'function' && define.amd) define(function() { return rbush; });
15291 else if (typeof module !== 'undefined') module.exports = rbush;
15292 else if (typeof self !== 'undefined') self.rbush = rbush;
15293 else window.rbush = rbush;
15294
15295 })();(function(e){if("function"==typeof bootstrap)bootstrap("sexagesimal",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeSexagesimal=e}else"undefined"!=typeof window?window.sexagesimal=e():global.sexagesimal=e()})(function(){var define,ses,bootstrap,module,exports;
15296 return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
15297 module.exports = element;
15298 module.exports.pair = pair;
15299 module.exports.format = format;
15300 module.exports.formatPair = formatPair;
15301
15302 function element(x, dims) {
15303     return search(x, dims).val;
15304 }
15305
15306 function formatPair(x) {
15307     return format(x.lat, 'lat') + ' ' + format(x.lon, 'lon');
15308 }
15309
15310 // Is 0 North or South?
15311 function format(x, dim) {
15312     var dirs = {
15313             lat: ['N', 'S'],
15314             lon: ['E', 'W']
15315         }[dim] || '',
15316         dir = dirs[x >= 0 ? 0 : 1],
15317         abs = Math.abs(x),
15318         whole = Math.floor(abs),
15319         fraction = abs - whole,
15320         fractionMinutes = fraction * 60,
15321         minutes = Math.floor(fractionMinutes),
15322         seconds = Math.floor((fractionMinutes - minutes) * 60);
15323
15324     return whole + '° ' +
15325         (minutes ? minutes + "' " : '') +
15326         (seconds ? seconds + '" ' : '') + dir;
15327 }
15328
15329 function search(x, dims, r) {
15330     if (!dims) dims = 'NSEW';
15331     if (typeof x !== 'string') return { val: null, regex: r };
15332     r = r || /[\s\,]*([\-|\—|\―]?[0-9.]+)°? *(?:([0-9.]+)['’′‘] *)?(?:([0-9.]+)(?:''|"|”|″) *)?([NSEW])?/gi;
15333     var m = r.exec(x);
15334     if (!m) return { val: null, regex: r };
15335     else if (m[4] && dims.indexOf(m[4]) === -1) return { val: null, regex: r };
15336     else return {
15337         val: (((m[1]) ? parseFloat(m[1]) : 0) +
15338             ((m[2] ? parseFloat(m[2]) / 60 : 0)) +
15339             ((m[3] ? parseFloat(m[3]) / 3600 : 0))) *
15340             ((m[4] && m[4] === 'S' || m[4] === 'W') ? -1 : 1),
15341         regex: r,
15342         raw: m[0],
15343         dim: m[4]
15344     };
15345 }
15346
15347 function pair(x, dims) {
15348     x = x.trim();
15349     var one = search(x, dims);
15350     if (one.val === null) return null;
15351     var two = search(x, dims, one.regex);
15352     if (two.val === null) return null;
15353     // null if one/two are not contiguous.
15354     if (one.raw + two.raw !== x) return null;
15355     if (one.dim) return swapdim(one.val, two.val, one.dim);
15356     else return [one.val, two.val];
15357 }
15358
15359 function swapdim(a, b, dim) {
15360     if (dim == 'N' || dim == 'S') return [a, b];
15361     if (dim == 'W' || dim == 'E') return [b, a];
15362 }
15363
15364 },{}]},{},[1])
15365 (1)
15366 });
15367 ;toGeoJSON = (function() {
15368     'use strict';
15369
15370     var removeSpace = (/\s*/g),
15371         trimSpace = (/^\s*|\s*$/g),
15372         splitSpace = (/\s+/);
15373     // generate a short, numeric hash of a string
15374     function okhash(x) {
15375         if (!x || !x.length) return 0;
15376         for (var i = 0, h = 0; i < x.length; i++) {
15377             h = ((h << 5) - h) + x.charCodeAt(i) | 0;
15378         } return h;
15379     }
15380     // all Y children of X
15381     function get(x, y) { return x.getElementsByTagName(y); }
15382     function attr(x, y) { return x.getAttribute(y); }
15383     function attrf(x, y) { return parseFloat(attr(x, y)); }
15384     // one Y child of X, if any, otherwise null
15385     function get1(x, y) { var n = get(x, y); return n.length ? n[0] : null; }
15386     // https://developer.mozilla.org/en-US/docs/Web/API/Node.normalize
15387     function norm(el) { if (el.normalize) { el.normalize(); } return el; }
15388     // cast array x into numbers
15389     function numarray(x) {
15390         for (var j = 0, o = []; j < x.length; j++) o[j] = parseFloat(x[j]);
15391         return o;
15392     }
15393     function clean(x) {
15394         var o = {};
15395         for (var i in x) if (x[i]) o[i] = x[i];
15396         return o;
15397     }
15398     // get the content of a text node, if any
15399     function nodeVal(x) { if (x) {norm(x);} return x && x.firstChild && x.firstChild.nodeValue; }
15400     // get one coordinate from a coordinate array, if any
15401     function coord1(v) { return numarray(v.replace(removeSpace, '').split(',')); }
15402     // get all coordinates from a coordinate array as [[],[]]
15403     function coord(v) {
15404         var coords = v.replace(trimSpace, '').split(splitSpace),
15405             o = [];
15406         for (var i = 0; i < coords.length; i++) {
15407             o.push(coord1(coords[i]));
15408         }
15409         return o;
15410     }
15411     function coordPair(x) { return [attrf(x, 'lon'), attrf(x, 'lat')]; }
15412
15413     // create a new feature collection parent object
15414     function fc() {
15415         return {
15416             type: 'FeatureCollection',
15417             features: []
15418         };
15419     }
15420
15421     var styleSupport = false;
15422     if (typeof XMLSerializer !== 'undefined') {
15423         var serializer = new XMLSerializer();
15424         styleSupport = true;
15425     }
15426     function xml2str(str) { return serializer.serializeToString(str); }
15427
15428     var t = {
15429         kml: function(doc, o) {
15430             o = o || {};
15431
15432             var gj = fc(),
15433                 // styleindex keeps track of hashed styles in order to match features
15434                 styleIndex = {},
15435                 // atomic geospatial types supported by KML - MultiGeometry is
15436                 // handled separately
15437                 geotypes = ['Polygon', 'LineString', 'Point', 'Track'],
15438                 // all root placemarks in the file
15439                 placemarks = get(doc, 'Placemark'),
15440                 styles = get(doc, 'Style');
15441
15442             if (styleSupport) for (var k = 0; k < styles.length; k++) {
15443                 styleIndex['#' + attr(styles[k], 'id')] = okhash(xml2str(styles[k])).toString(16);
15444             }
15445             for (var j = 0; j < placemarks.length; j++) {
15446                 gj.features = gj.features.concat(getPlacemark(placemarks[j]));
15447             }
15448             function gxCoord(v) { return numarray(v.split(' ')); }
15449             function gxCoords(root) {
15450                 var elems = get(root, 'coord', 'gx'), coords = [];
15451                 for (var i = 0; i < elems.length; i++) coords.push(gxCoord(nodeVal(elems[i])));
15452                 return coords;
15453             }
15454             function getGeometry(root) {
15455                 var geomNode, geomNodes, i, j, k, geoms = [];
15456                 if (get1(root, 'MultiGeometry')) return getGeometry(get1(root, 'MultiGeometry'));
15457                 if (get1(root, 'MultiTrack')) return getGeometry(get1(root, 'MultiTrack'));
15458                 for (i = 0; i < geotypes.length; i++) {
15459                     geomNodes = get(root, geotypes[i]);
15460                     if (geomNodes) {
15461                         for (j = 0; j < geomNodes.length; j++) {
15462                             geomNode = geomNodes[j];
15463                             if (geotypes[i] == 'Point') {
15464                                 geoms.push({
15465                                     type: 'Point',
15466                                     coordinates: coord1(nodeVal(get1(geomNode, 'coordinates')))
15467                                 });
15468                             } else if (geotypes[i] == 'LineString') {
15469                                 geoms.push({
15470                                     type: 'LineString',
15471                                     coordinates: coord(nodeVal(get1(geomNode, 'coordinates')))
15472                                 });
15473                             } else if (geotypes[i] == 'Polygon') {
15474                                 var rings = get(geomNode, 'LinearRing'),
15475                                     coords = [];
15476                                 for (k = 0; k < rings.length; k++) {
15477                                     coords.push(coord(nodeVal(get1(rings[k], 'coordinates'))));
15478                                 }
15479                                 geoms.push({
15480                                     type: 'Polygon',
15481                                     coordinates: coords
15482                                 });
15483                             } else if (geotypes[i] == 'Track') {
15484                                 geoms.push({
15485                                     type: 'LineString',
15486                                     coordinates: gxCoords(geomNode)
15487                                 });
15488                             }
15489                         }
15490                     }
15491                 }
15492                 return geoms;
15493             }
15494             function getPlacemark(root) {
15495                 var geoms = getGeometry(root), i, properties = {},
15496                     name = nodeVal(get1(root, 'name')),
15497                     styleUrl = nodeVal(get1(root, 'styleUrl')),
15498                     description = nodeVal(get1(root, 'description')),
15499                     extendedData = get1(root, 'ExtendedData');
15500
15501                 if (!geoms.length) return [];
15502                 if (name) properties.name = name;
15503                 if (styleUrl && styleIndex[styleUrl]) {
15504                     properties.styleUrl = styleUrl;
15505                     properties.styleHash = styleIndex[styleUrl];
15506                 }
15507                 if (description) properties.description = description;
15508                 if (extendedData) {
15509                     var datas = get(extendedData, 'Data'),
15510                         simpleDatas = get(extendedData, 'SimpleData');
15511
15512                     for (i = 0; i < datas.length; i++) {
15513                         properties[datas[i].getAttribute('name')] = nodeVal(get1(datas[i], 'value'));
15514                     }
15515                     for (i = 0; i < simpleDatas.length; i++) {
15516                         properties[simpleDatas[i].getAttribute('name')] = nodeVal(simpleDatas[i]);
15517                     }
15518                 }
15519                 return [{
15520                     type: 'Feature',
15521                     geometry: (geoms.length === 1) ? geoms[0] : {
15522                         type: 'GeometryCollection',
15523                         geometries: geoms
15524                     },
15525                     properties: properties
15526                 }];
15527             }
15528             return gj;
15529         },
15530         gpx: function(doc, o) {
15531             var i,
15532                 tracks = get(doc, 'trk'),
15533                 routes = get(doc, 'rte'),
15534                 waypoints = get(doc, 'wpt'),
15535                 // a feature collection
15536                 gj = fc();
15537             for (i = 0; i < tracks.length; i++) {
15538                 gj.features.push(getLinestring(tracks[i], 'trkpt'));
15539             }
15540             for (i = 0; i < routes.length; i++) {
15541                 gj.features.push(getLinestring(routes[i], 'rtept'));
15542             }
15543             for (i = 0; i < waypoints.length; i++) {
15544                 gj.features.push(getPoint(waypoints[i]));
15545             }
15546             function getLinestring(node, pointname) {
15547                 var j, pts = get(node, pointname), line = [];
15548                 for (j = 0; j < pts.length; j++) {
15549                     line.push(coordPair(pts[j]));
15550                 }
15551                 return {
15552                     type: 'Feature',
15553                     properties: getProperties(node),
15554                     geometry: {
15555                         type: 'LineString',
15556                         coordinates: line
15557                     }
15558                 };
15559             }
15560             function getPoint(node) {
15561                 var prop = getProperties(node);
15562                 prop.ele = nodeVal(get1(node, 'ele'));
15563                 prop.sym = nodeVal(get1(node, 'sym'));
15564                 return {
15565                     type: 'Feature',
15566                     properties: prop,
15567                     geometry: {
15568                         type: 'Point',
15569                         coordinates: coordPair(node)
15570                     }
15571                 };
15572             }
15573             function getProperties(node) {
15574                 var meta = ['name', 'desc', 'author', 'copyright', 'link',
15575                             'time', 'keywords'],
15576                     prop = {},
15577                     k;
15578                 for (k = 0; k < meta.length; k++) {
15579                     prop[meta[k]] = nodeVal(get1(node, meta[k]));
15580                 }
15581                 return clean(prop);
15582             }
15583             return gj;
15584         }
15585     };
15586     return t;
15587 })();
15588
15589 if (typeof module !== 'undefined') module.exports = toGeoJSON;
15590 /**
15591  * marked - a markdown parser
15592  * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
15593  * https://github.com/chjj/marked
15594  */
15595
15596 ;(function() {
15597
15598 /**
15599  * Block-Level Grammar
15600  */
15601
15602 var block = {
15603   newline: /^\n+/,
15604   code: /^( {4}[^\n]+\n*)+/,
15605   fences: noop,
15606   hr: /^( *[-*_]){3,} *(?:\n+|$)/,
15607   heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
15608   nptable: noop,
15609   lheading: /^([^\n]+)\n *(=|-){3,} *\n*/,
15610   blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
15611   list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
15612   html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
15613   def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
15614   table: noop,
15615   paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
15616   text: /^[^\n]+/
15617 };
15618
15619 block.bullet = /(?:[*+-]|\d+\.)/;
15620 block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
15621 block.item = replace(block.item, 'gm')
15622   (/bull/g, block.bullet)
15623   ();
15624
15625 block.list = replace(block.list)
15626   (/bull/g, block.bullet)
15627   ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
15628   ();
15629
15630 block._tag = '(?!(?:'
15631   + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
15632   + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
15633   + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b';
15634
15635 block.html = replace(block.html)
15636   ('comment', /<!--[\s\S]*?-->/)
15637   ('closed', /<(tag)[\s\S]+?<\/\1>/)
15638   ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
15639   (/tag/g, block._tag)
15640   ();
15641
15642 block.paragraph = replace(block.paragraph)
15643   ('hr', block.hr)
15644   ('heading', block.heading)
15645   ('lheading', block.lheading)
15646   ('blockquote', block.blockquote)
15647   ('tag', '<' + block._tag)
15648   ('def', block.def)
15649   ();
15650
15651 /**
15652  * Normal Block Grammar
15653  */
15654
15655 block.normal = merge({}, block);
15656
15657 /**
15658  * GFM Block Grammar
15659  */
15660
15661 block.gfm = merge({}, block.normal, {
15662   fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
15663   paragraph: /^/
15664 });
15665
15666 block.gfm.paragraph = replace(block.paragraph)
15667   ('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|')
15668   ();
15669
15670 /**
15671  * GFM + Tables Block Grammar
15672  */
15673
15674 block.tables = merge({}, block.gfm, {
15675   nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
15676   table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
15677 });
15678
15679 /**
15680  * Block Lexer
15681  */
15682
15683 function Lexer(options) {
15684   this.tokens = [];
15685   this.tokens.links = {};
15686   this.options = options || marked.defaults;
15687   this.rules = block.normal;
15688
15689   if (this.options.gfm) {
15690     if (this.options.tables) {
15691       this.rules = block.tables;
15692     } else {
15693       this.rules = block.gfm;
15694     }
15695   }
15696 }
15697
15698 /**
15699  * Expose Block Rules
15700  */
15701
15702 Lexer.rules = block;
15703
15704 /**
15705  * Static Lex Method
15706  */
15707
15708 Lexer.lex = function(src, options) {
15709   var lexer = new Lexer(options);
15710   return lexer.lex(src);
15711 };
15712
15713 /**
15714  * Preprocessing
15715  */
15716
15717 Lexer.prototype.lex = function(src) {
15718   src = src
15719     .replace(/\r\n|\r/g, '\n')
15720     .replace(/\t/g, '    ')
15721     .replace(/\u00a0/g, ' ')
15722     .replace(/\u2424/g, '\n');
15723
15724   return this.token(src, true);
15725 };
15726
15727 /**
15728  * Lexing
15729  */
15730
15731 Lexer.prototype.token = function(src, top) {
15732   var src = src.replace(/^ +$/gm, '')
15733     , next
15734     , loose
15735     , cap
15736     , bull
15737     , b
15738     , item
15739     , space
15740     , i
15741     , l;
15742
15743   while (src) {
15744     // newline
15745     if (cap = this.rules.newline.exec(src)) {
15746       src = src.substring(cap[0].length);
15747       if (cap[0].length > 1) {
15748         this.tokens.push({
15749           type: 'space'
15750         });
15751       }
15752     }
15753
15754     // code
15755     if (cap = this.rules.code.exec(src)) {
15756       src = src.substring(cap[0].length);
15757       cap = cap[0].replace(/^ {4}/gm, '');
15758       this.tokens.push({
15759         type: 'code',
15760         text: !this.options.pedantic
15761           ? cap.replace(/\n+$/, '')
15762           : cap
15763       });
15764       continue;
15765     }
15766
15767     // fences (gfm)
15768     if (cap = this.rules.fences.exec(src)) {
15769       src = src.substring(cap[0].length);
15770       this.tokens.push({
15771         type: 'code',
15772         lang: cap[2],
15773         text: cap[3]
15774       });
15775       continue;
15776     }
15777
15778     // heading
15779     if (cap = this.rules.heading.exec(src)) {
15780       src = src.substring(cap[0].length);
15781       this.tokens.push({
15782         type: 'heading',
15783         depth: cap[1].length,
15784         text: cap[2]
15785       });
15786       continue;
15787     }
15788
15789     // table no leading pipe (gfm)
15790     if (top && (cap = this.rules.nptable.exec(src))) {
15791       src = src.substring(cap[0].length);
15792
15793       item = {
15794         type: 'table',
15795         header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
15796         align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
15797         cells: cap[3].replace(/\n$/, '').split('\n')
15798       };
15799
15800       for (i = 0; i < item.align.length; i++) {
15801         if (/^ *-+: *$/.test(item.align[i])) {
15802           item.align[i] = 'right';
15803         } else if (/^ *:-+: *$/.test(item.align[i])) {
15804           item.align[i] = 'center';
15805         } else if (/^ *:-+ *$/.test(item.align[i])) {
15806           item.align[i] = 'left';
15807         } else {
15808           item.align[i] = null;
15809         }
15810       }
15811
15812       for (i = 0; i < item.cells.length; i++) {
15813         item.cells[i] = item.cells[i].split(/ *\| */);
15814       }
15815
15816       this.tokens.push(item);
15817
15818       continue;
15819     }
15820
15821     // lheading
15822     if (cap = this.rules.lheading.exec(src)) {
15823       src = src.substring(cap[0].length);
15824       this.tokens.push({
15825         type: 'heading',
15826         depth: cap[2] === '=' ? 1 : 2,
15827         text: cap[1]
15828       });
15829       continue;
15830     }
15831
15832     // hr
15833     if (cap = this.rules.hr.exec(src)) {
15834       src = src.substring(cap[0].length);
15835       this.tokens.push({
15836         type: 'hr'
15837       });
15838       continue;
15839     }
15840
15841     // blockquote
15842     if (cap = this.rules.blockquote.exec(src)) {
15843       src = src.substring(cap[0].length);
15844
15845       this.tokens.push({
15846         type: 'blockquote_start'
15847       });
15848
15849       cap = cap[0].replace(/^ *> ?/gm, '');
15850
15851       // Pass `top` to keep the current
15852       // "toplevel" state. This is exactly
15853       // how markdown.pl works.
15854       this.token(cap, top);
15855
15856       this.tokens.push({
15857         type: 'blockquote_end'
15858       });
15859
15860       continue;
15861     }
15862
15863     // list
15864     if (cap = this.rules.list.exec(src)) {
15865       src = src.substring(cap[0].length);
15866       bull = cap[2];
15867
15868       this.tokens.push({
15869         type: 'list_start',
15870         ordered: bull.length > 1
15871       });
15872
15873       // Get each top-level item.
15874       cap = cap[0].match(this.rules.item);
15875
15876       next = false;
15877       l = cap.length;
15878       i = 0;
15879
15880       for (; i < l; i++) {
15881         item = cap[i];
15882
15883         // Remove the list item's bullet
15884         // so it is seen as the next token.
15885         space = item.length;
15886         item = item.replace(/^ *([*+-]|\d+\.) +/, '');
15887
15888         // Outdent whatever the
15889         // list item contains. Hacky.
15890         if (~item.indexOf('\n ')) {
15891           space -= item.length;
15892           item = !this.options.pedantic
15893             ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
15894             : item.replace(/^ {1,4}/gm, '');
15895         }
15896
15897         // Determine whether the next list item belongs here.
15898         // Backpedal if it does not belong in this list.
15899         if (this.options.smartLists && i !== l - 1) {
15900           b = block.bullet.exec(cap[i+1])[0];
15901           if (bull !== b && !(bull.length > 1 && b.length > 1)) {
15902             src = cap.slice(i + 1).join('\n') + src;
15903             i = l - 1;
15904           }
15905         }
15906
15907         // Determine whether item is loose or not.
15908         // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
15909         // for discount behavior.
15910         loose = next || /\n\n(?!\s*$)/.test(item);
15911         if (i !== l - 1) {
15912           next = item[item.length-1] === '\n';
15913           if (!loose) loose = next;
15914         }
15915
15916         this.tokens.push({
15917           type: loose
15918             ? 'loose_item_start'
15919             : 'list_item_start'
15920         });
15921
15922         // Recurse.
15923         this.token(item, false);
15924
15925         this.tokens.push({
15926           type: 'list_item_end'
15927         });
15928       }
15929
15930       this.tokens.push({
15931         type: 'list_end'
15932       });
15933
15934       continue;
15935     }
15936
15937     // html
15938     if (cap = this.rules.html.exec(src)) {
15939       src = src.substring(cap[0].length);
15940       this.tokens.push({
15941         type: this.options.sanitize
15942           ? 'paragraph'
15943           : 'html',
15944         pre: cap[1] === 'pre' || cap[1] === 'script',
15945         text: cap[0]
15946       });
15947       continue;
15948     }
15949
15950     // def
15951     if (top && (cap = this.rules.def.exec(src))) {
15952       src = src.substring(cap[0].length);
15953       this.tokens.links[cap[1].toLowerCase()] = {
15954         href: cap[2],
15955         title: cap[3]
15956       };
15957       continue;
15958     }
15959
15960     // table (gfm)
15961     if (top && (cap = this.rules.table.exec(src))) {
15962       src = src.substring(cap[0].length);
15963
15964       item = {
15965         type: 'table',
15966         header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
15967         align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
15968         cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
15969       };
15970
15971       for (i = 0; i < item.align.length; i++) {
15972         if (/^ *-+: *$/.test(item.align[i])) {
15973           item.align[i] = 'right';
15974         } else if (/^ *:-+: *$/.test(item.align[i])) {
15975           item.align[i] = 'center';
15976         } else if (/^ *:-+ *$/.test(item.align[i])) {
15977           item.align[i] = 'left';
15978         } else {
15979           item.align[i] = null;
15980         }
15981       }
15982
15983       for (i = 0; i < item.cells.length; i++) {
15984         item.cells[i] = item.cells[i]
15985           .replace(/^ *\| *| *\| *$/g, '')
15986           .split(/ *\| */);
15987       }
15988
15989       this.tokens.push(item);
15990
15991       continue;
15992     }
15993
15994     // top-level paragraph
15995     if (top && (cap = this.rules.paragraph.exec(src))) {
15996       src = src.substring(cap[0].length);
15997       this.tokens.push({
15998         type: 'paragraph',
15999         text: cap[1][cap[1].length-1] === '\n'
16000           ? cap[1].slice(0, -1)
16001           : cap[1]
16002       });
16003       continue;
16004     }
16005
16006     // text
16007     if (cap = this.rules.text.exec(src)) {
16008       // Top-level should never reach here.
16009       src = src.substring(cap[0].length);
16010       this.tokens.push({
16011         type: 'text',
16012         text: cap[0]
16013       });
16014       continue;
16015     }
16016
16017     if (src) {
16018       throw new
16019         Error('Infinite loop on byte: ' + src.charCodeAt(0));
16020     }
16021   }
16022
16023   return this.tokens;
16024 };
16025
16026 /**
16027  * Inline-Level Grammar
16028  */
16029
16030 var inline = {
16031   escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
16032   autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
16033   url: noop,
16034   tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
16035   link: /^!?\[(inside)\]\(href\)/,
16036   reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
16037   nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
16038   strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
16039   em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
16040   code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
16041   br: /^ {2,}\n(?!\s*$)/,
16042   del: noop,
16043   text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
16044 };
16045
16046 inline._inside = /(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;
16047 inline._href = /\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
16048
16049 inline.link = replace(inline.link)
16050   ('inside', inline._inside)
16051   ('href', inline._href)
16052   ();
16053
16054 inline.reflink = replace(inline.reflink)
16055   ('inside', inline._inside)
16056   ();
16057
16058 /**
16059  * Normal Inline Grammar
16060  */
16061
16062 inline.normal = merge({}, inline);
16063
16064 /**
16065  * Pedantic Inline Grammar
16066  */
16067
16068 inline.pedantic = merge({}, inline.normal, {
16069   strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
16070   em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
16071 });
16072
16073 /**
16074  * GFM Inline Grammar
16075  */
16076
16077 inline.gfm = merge({}, inline.normal, {
16078   escape: replace(inline.escape)('])', '~|])')(),
16079   url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
16080   del: /^~~(?=\S)([\s\S]*?\S)~~/,
16081   text: replace(inline.text)
16082     (']|', '~]|')
16083     ('|', '|https?://|')
16084     ()
16085 });
16086
16087 /**
16088  * GFM + Line Breaks Inline Grammar
16089  */
16090
16091 inline.breaks = merge({}, inline.gfm, {
16092   br: replace(inline.br)('{2,}', '*')(),
16093   text: replace(inline.gfm.text)('{2,}', '*')()
16094 });
16095
16096 /**
16097  * Inline Lexer & Compiler
16098  */
16099
16100 function InlineLexer(links, options) {
16101   this.options = options || marked.defaults;
16102   this.links = links;
16103   this.rules = inline.normal;
16104
16105   if (!this.links) {
16106     throw new
16107       Error('Tokens array requires a `links` property.');
16108   }
16109
16110   if (this.options.gfm) {
16111     if (this.options.breaks) {
16112       this.rules = inline.breaks;
16113     } else {
16114       this.rules = inline.gfm;
16115     }
16116   } else if (this.options.pedantic) {
16117     this.rules = inline.pedantic;
16118   }
16119 }
16120
16121 /**
16122  * Expose Inline Rules
16123  */
16124
16125 InlineLexer.rules = inline;
16126
16127 /**
16128  * Static Lexing/Compiling Method
16129  */
16130
16131 InlineLexer.output = function(src, links, options) {
16132   var inline = new InlineLexer(links, options);
16133   return inline.output(src);
16134 };
16135
16136 /**
16137  * Lexing/Compiling
16138  */
16139
16140 InlineLexer.prototype.output = function(src) {
16141   var out = ''
16142     , link
16143     , text
16144     , href
16145     , cap;
16146
16147   while (src) {
16148     // escape
16149     if (cap = this.rules.escape.exec(src)) {
16150       src = src.substring(cap[0].length);
16151       out += cap[1];
16152       continue;
16153     }
16154
16155     // autolink
16156     if (cap = this.rules.autolink.exec(src)) {
16157       src = src.substring(cap[0].length);
16158       if (cap[2] === '@') {
16159         text = cap[1][6] === ':'
16160           ? this.mangle(cap[1].substring(7))
16161           : this.mangle(cap[1]);
16162         href = this.mangle('mailto:') + text;
16163       } else {
16164         text = escape(cap[1]);
16165         href = text;
16166       }
16167       out += '<a href="'
16168         + href
16169         + '">'
16170         + text
16171         + '</a>';
16172       continue;
16173     }
16174
16175     // url (gfm)
16176     if (cap = this.rules.url.exec(src)) {
16177       src = src.substring(cap[0].length);
16178       text = escape(cap[1]);
16179       href = text;
16180       out += '<a href="'
16181         + href
16182         + '">'
16183         + text
16184         + '</a>';
16185       continue;
16186     }
16187
16188     // tag
16189     if (cap = this.rules.tag.exec(src)) {
16190       src = src.substring(cap[0].length);
16191       out += this.options.sanitize
16192         ? escape(cap[0])
16193         : cap[0];
16194       continue;
16195     }
16196
16197     // link
16198     if (cap = this.rules.link.exec(src)) {
16199       src = src.substring(cap[0].length);
16200       out += this.outputLink(cap, {
16201         href: cap[2],
16202         title: cap[3]
16203       });
16204       continue;
16205     }
16206
16207     // reflink, nolink
16208     if ((cap = this.rules.reflink.exec(src))
16209         || (cap = this.rules.nolink.exec(src))) {
16210       src = src.substring(cap[0].length);
16211       link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
16212       link = this.links[link.toLowerCase()];
16213       if (!link || !link.href) {
16214         out += cap[0][0];
16215         src = cap[0].substring(1) + src;
16216         continue;
16217       }
16218       out += this.outputLink(cap, link);
16219       continue;
16220     }
16221
16222     // strong
16223     if (cap = this.rules.strong.exec(src)) {
16224       src = src.substring(cap[0].length);
16225       out += '<strong>'
16226         + this.output(cap[2] || cap[1])
16227         + '</strong>';
16228       continue;
16229     }
16230
16231     // em
16232     if (cap = this.rules.em.exec(src)) {
16233       src = src.substring(cap[0].length);
16234       out += '<em>'
16235         + this.output(cap[2] || cap[1])
16236         + '</em>';
16237       continue;
16238     }
16239
16240     // code
16241     if (cap = this.rules.code.exec(src)) {
16242       src = src.substring(cap[0].length);
16243       out += '<code>'
16244         + escape(cap[2], true)
16245         + '</code>';
16246       continue;
16247     }
16248
16249     // br
16250     if (cap = this.rules.br.exec(src)) {
16251       src = src.substring(cap[0].length);
16252       out += '<br>';
16253       continue;
16254     }
16255
16256     // del (gfm)
16257     if (cap = this.rules.del.exec(src)) {
16258       src = src.substring(cap[0].length);
16259       out += '<del>'
16260         + this.output(cap[1])
16261         + '</del>';
16262       continue;
16263     }
16264
16265     // text
16266     if (cap = this.rules.text.exec(src)) {
16267       src = src.substring(cap[0].length);
16268       out += escape(cap[0]);
16269       continue;
16270     }
16271
16272     if (src) {
16273       throw new
16274         Error('Infinite loop on byte: ' + src.charCodeAt(0));
16275     }
16276   }
16277
16278   return out;
16279 };
16280
16281 /**
16282  * Compile Link
16283  */
16284
16285 InlineLexer.prototype.outputLink = function(cap, link) {
16286   if (cap[0][0] !== '!') {
16287     return '<a href="'
16288       + escape(link.href)
16289       + '"'
16290       + (link.title
16291       ? ' title="'
16292       + escape(link.title)
16293       + '"'
16294       : '')
16295       + '>'
16296       + this.output(cap[1])
16297       + '</a>';
16298   } else {
16299     return '<img src="'
16300       + escape(link.href)
16301       + '" alt="'
16302       + escape(cap[1])
16303       + '"'
16304       + (link.title
16305       ? ' title="'
16306       + escape(link.title)
16307       + '"'
16308       : '')
16309       + '>';
16310   }
16311 };
16312
16313 /**
16314  * Smartypants Transformations
16315  */
16316
16317 InlineLexer.prototype.smartypants = function(text) {
16318   if (!this.options.smartypants) return text;
16319   return text
16320     .replace(/--/g, '—')
16321     .replace(/'([^']*)'/g, '‘$1’')
16322     .replace(/"([^"]*)"/g, '“$1”')
16323     .replace(/\.{3}/g, '…');
16324 };
16325
16326 /**
16327  * Mangle Links
16328  */
16329
16330 InlineLexer.prototype.mangle = function(text) {
16331   var out = ''
16332     , l = text.length
16333     , i = 0
16334     , ch;
16335
16336   for (; i < l; i++) {
16337     ch = text.charCodeAt(i);
16338     if (Math.random() > 0.5) {
16339       ch = 'x' + ch.toString(16);
16340     }
16341     out += '&#' + ch + ';';
16342   }
16343
16344   return out;
16345 };
16346
16347 /**
16348  * Parsing & Compiling
16349  */
16350
16351 function Parser(options) {
16352   this.tokens = [];
16353   this.token = null;
16354   this.options = options || marked.defaults;
16355 }
16356
16357 /**
16358  * Static Parse Method
16359  */
16360
16361 Parser.parse = function(src, options) {
16362   var parser = new Parser(options);
16363   return parser.parse(src);
16364 };
16365
16366 /**
16367  * Parse Loop
16368  */
16369
16370 Parser.prototype.parse = function(src) {
16371   this.inline = new InlineLexer(src.links, this.options);
16372   this.tokens = src.reverse();
16373
16374   var out = '';
16375   while (this.next()) {
16376     out += this.tok();
16377   }
16378
16379   return out;
16380 };
16381
16382 /**
16383  * Next Token
16384  */
16385
16386 Parser.prototype.next = function() {
16387   return this.token = this.tokens.pop();
16388 };
16389
16390 /**
16391  * Preview Next Token
16392  */
16393
16394 Parser.prototype.peek = function() {
16395   return this.tokens[this.tokens.length-1] || 0;
16396 };
16397
16398 /**
16399  * Parse Text Tokens
16400  */
16401
16402 Parser.prototype.parseText = function() {
16403   var body = this.token.text;
16404
16405   while (this.peek().type === 'text') {
16406     body += '\n' + this.next().text;
16407   }
16408
16409   return this.inline.output(body);
16410 };
16411
16412 /**
16413  * Parse Current Token
16414  */
16415
16416 Parser.prototype.tok = function() {
16417   switch (this.token.type) {
16418     case 'space': {
16419       return '';
16420     }
16421     case 'hr': {
16422       return '<hr>\n';
16423     }
16424     case 'heading': {
16425       return '<h'
16426         + this.token.depth
16427         + '>'
16428         + this.inline.output(this.token.text)
16429         + '</h'
16430         + this.token.depth
16431         + '>\n';
16432     }
16433     case 'code': {
16434       if (this.options.highlight) {
16435         var code = this.options.highlight(this.token.text, this.token.lang);
16436         if (code != null && code !== this.token.text) {
16437           this.token.escaped = true;
16438           this.token.text = code;
16439         }
16440       }
16441
16442       if (!this.token.escaped) {
16443         this.token.text = escape(this.token.text, true);
16444       }
16445
16446       return '<pre><code'
16447         + (this.token.lang
16448         ? ' class="'
16449         + this.options.langPrefix
16450         + this.token.lang
16451         + '"'
16452         : '')
16453         + '>'
16454         + this.token.text
16455         + '</code></pre>\n';
16456     }
16457     case 'table': {
16458       var body = ''
16459         , heading
16460         , i
16461         , row
16462         , cell
16463         , j;
16464
16465       // header
16466       body += '<thead>\n<tr>\n';
16467       for (i = 0; i < this.token.header.length; i++) {
16468         heading = this.inline.output(this.token.header[i]);
16469         body += this.token.align[i]
16470           ? '<th align="' + this.token.align[i] + '">' + heading + '</th>\n'
16471           : '<th>' + heading + '</th>\n';
16472       }
16473       body += '</tr>\n</thead>\n';
16474
16475       // body
16476       body += '<tbody>\n'
16477       for (i = 0; i < this.token.cells.length; i++) {
16478         row = this.token.cells[i];
16479         body += '<tr>\n';
16480         for (j = 0; j < row.length; j++) {
16481           cell = this.inline.output(row[j]);
16482           body += this.token.align[j]
16483             ? '<td align="' + this.token.align[j] + '">' + cell + '</td>\n'
16484             : '<td>' + cell + '</td>\n';
16485         }
16486         body += '</tr>\n';
16487       }
16488       body += '</tbody>\n';
16489
16490       return '<table>\n'
16491         + body
16492         + '</table>\n';
16493     }
16494     case 'blockquote_start': {
16495       var body = '';
16496
16497       while (this.next().type !== 'blockquote_end') {
16498         body += this.tok();
16499       }
16500
16501       return '<blockquote>\n'
16502         + body
16503         + '</blockquote>\n';
16504     }
16505     case 'list_start': {
16506       var type = this.token.ordered ? 'ol' : 'ul'
16507         , body = '';
16508
16509       while (this.next().type !== 'list_end') {
16510         body += this.tok();
16511       }
16512
16513       return '<'
16514         + type
16515         + '>\n'
16516         + body
16517         + '</'
16518         + type
16519         + '>\n';
16520     }
16521     case 'list_item_start': {
16522       var body = '';
16523
16524       while (this.next().type !== 'list_item_end') {
16525         body += this.token.type === 'text'
16526           ? this.parseText()
16527           : this.tok();
16528       }
16529
16530       return '<li>'
16531         + body
16532         + '</li>\n';
16533     }
16534     case 'loose_item_start': {
16535       var body = '';
16536
16537       while (this.next().type !== 'list_item_end') {
16538         body += this.tok();
16539       }
16540
16541       return '<li>'
16542         + body
16543         + '</li>\n';
16544     }
16545     case 'html': {
16546       return !this.token.pre && !this.options.pedantic
16547         ? this.inline.output(this.token.text)
16548         : this.token.text;
16549     }
16550     case 'paragraph': {
16551       return '<p>'
16552         + this.inline.output(this.token.text)
16553         + '</p>\n';
16554     }
16555     case 'text': {
16556       return '<p>'
16557         + this.parseText()
16558         + '</p>\n';
16559     }
16560   }
16561 };
16562
16563 /**
16564  * Helpers
16565  */
16566
16567 function escape(html, encode) {
16568   return html
16569     .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
16570     .replace(/</g, '&lt;')
16571     .replace(/>/g, '&gt;')
16572     .replace(/"/g, '&quot;')
16573     .replace(/'/g, '&#39;');
16574 }
16575
16576 function replace(regex, opt) {
16577   regex = regex.source;
16578   opt = opt || '';
16579   return function self(name, val) {
16580     if (!name) return new RegExp(regex, opt);
16581     val = val.source || val;
16582     val = val.replace(/(^|[^\[])\^/g, '$1');
16583     regex = regex.replace(name, val);
16584     return self;
16585   };
16586 }
16587
16588 function noop() {}
16589 noop.exec = noop;
16590
16591 function merge(obj) {
16592   var i = 1
16593     , target
16594     , key;
16595
16596   for (; i < arguments.length; i++) {
16597     target = arguments[i];
16598     for (key in target) {
16599       if (Object.prototype.hasOwnProperty.call(target, key)) {
16600         obj[key] = target[key];
16601       }
16602     }
16603   }
16604
16605   return obj;
16606 }
16607
16608 /**
16609  * Marked
16610  */
16611
16612 function marked(src, opt, callback) {
16613   if (callback || typeof opt === 'function') {
16614     if (!callback) {
16615       callback = opt;
16616       opt = null;
16617     }
16618
16619     if (opt) opt = merge({}, marked.defaults, opt);
16620
16621     var tokens = Lexer.lex(tokens, opt)
16622       , highlight = opt.highlight
16623       , pending = 0
16624       , l = tokens.length
16625       , i = 0;
16626
16627     if (!highlight || highlight.length < 3) {
16628       return callback(null, Parser.parse(tokens, opt));
16629     }
16630
16631     var done = function() {
16632       delete opt.highlight;
16633       var out = Parser.parse(tokens, opt);
16634       opt.highlight = highlight;
16635       return callback(null, out);
16636     };
16637
16638     for (; i < l; i++) {
16639       (function(token) {
16640         if (token.type !== 'code') return;
16641         pending++;
16642         return highlight(token.text, token.lang, function(err, code) {
16643           if (code == null || code === token.text) {
16644             return --pending || done();
16645           }
16646           token.text = code;
16647           token.escaped = true;
16648           --pending || done();
16649         });
16650       })(tokens[i]);
16651     }
16652
16653     return;
16654   }
16655   try {
16656     if (opt) opt = merge({}, marked.defaults, opt);
16657     return Parser.parse(Lexer.lex(src, opt), opt);
16658   } catch (e) {
16659     e.message += '\nPlease report this to https://github.com/chjj/marked.';
16660     if ((opt || marked.defaults).silent) {
16661       return '<p>An error occured:</p><pre>'
16662         + escape(e.message + '', true)
16663         + '</pre>';
16664     }
16665     throw e;
16666   }
16667 }
16668
16669 /**
16670  * Options
16671  */
16672
16673 marked.options =
16674 marked.setOptions = function(opt) {
16675   merge(marked.defaults, opt);
16676   return marked;
16677 };
16678
16679 marked.defaults = {
16680   gfm: true,
16681   tables: true,
16682   breaks: false,
16683   pedantic: false,
16684   sanitize: false,
16685   smartLists: false,
16686   silent: false,
16687   highlight: null,
16688   langPrefix: 'lang-'
16689 };
16690
16691 /**
16692  * Expose
16693  */
16694
16695 marked.Parser = Parser;
16696 marked.parser = Parser.parse;
16697
16698 marked.Lexer = Lexer;
16699 marked.lexer = Lexer.lex;
16700
16701 marked.InlineLexer = InlineLexer;
16702 marked.inlineLexer = InlineLexer.output;
16703
16704 marked.parse = marked;
16705
16706 if (typeof exports === 'object') {
16707   module.exports = marked;
16708 } else if (typeof define === 'function' && define.amd) {
16709   define(function() { return marked; });
16710 } else {
16711   this.marked = marked;
16712 }
16713
16714 }).call(function() {
16715   return this || (typeof window !== 'undefined' ? window : global);
16716 }());
16717 /* jshint ignore:start */
16718 (function () {
16719 'use strict';
16720 window.iD = function () {
16721     window.locale.en = iD.data.en;
16722     window.locale.current('en');
16723
16724     var context = {},
16725         storage;
16726
16727     // https://github.com/openstreetmap/iD/issues/772
16728     // http://mathiasbynens.be/notes/localstorage-pattern#comment-9
16729     try { storage = localStorage; } catch (e) {}
16730     storage = storage || (function() {
16731         var s = {};
16732         return {
16733             getItem: function(k) { return s[k]; },
16734             setItem: function(k, v) { s[k] = v; },
16735             removeItem: function(k) { delete s[k]; }
16736         };
16737     })();
16738
16739     context.storage = function(k, v) {
16740         try {
16741             if (arguments.length === 1) return storage.getItem(k);
16742             else if (v === null) storage.removeItem(k);
16743             else storage.setItem(k, v);
16744         } catch(e) {
16745             // localstorage quota exceeded
16746             /* jshint devel:true */
16747             if (typeof console !== 'undefined') console.error('localStorage quota exceeded');
16748             /* jshint devel:false */
16749         }
16750     };
16751
16752     /* Accessor for setting minimum zoom for editing features. */
16753
16754     var minEditableZoom = 16;
16755     context.minEditableZoom = function(_) {
16756         if (!arguments.length) return minEditableZoom;
16757         minEditableZoom = _;
16758         connection.tileZoom(_);
16759         return context;
16760     };
16761
16762     var history = iD.History(context),
16763         dispatch = d3.dispatch('enter', 'exit'),
16764         mode,
16765         container,
16766         ui = iD.ui(context),
16767         connection = iD.Connection(),
16768         locale = iD.detect().locale,
16769         localePath;
16770
16771     if (locale && iD.data.locales.indexOf(locale) === -1) {
16772         locale = locale.split('-')[0];
16773     }
16774
16775     context.preauth = function(options) {
16776         connection.switch(options);
16777         return context;
16778     };
16779
16780     context.locale = function(_, path) {
16781         locale = _;
16782         localePath = path;
16783         return context;
16784     };
16785
16786     context.loadLocale = function(cb) {
16787         if (locale && locale !== 'en' && iD.data.locales.indexOf(locale) !== -1) {
16788             localePath = localePath || context.assetPath() + 'locales/' + locale + '.json';
16789             d3.json(localePath, function(err, result) {
16790                 window.locale[locale] = result;
16791                 window.locale.current(locale);
16792                 cb();
16793             });
16794         } else {
16795             cb();
16796         }
16797     };
16798
16799     /* Straight accessors. Avoid using these if you can. */
16800     context.ui = function() { return ui; };
16801     context.connection = function() { return connection; };
16802     context.history = function() { return history; };
16803
16804     /* Connection */
16805     function entitiesLoaded(err, result) {
16806         if (!err) history.merge(result.data, result.extent);
16807     }
16808
16809     context.loadTiles = function(projection, dimensions, callback) {
16810         function done(err, result) {
16811             entitiesLoaded(err, result);
16812             if (callback) callback(err, result);
16813         }
16814         connection.loadTiles(projection, dimensions, done);
16815     };
16816
16817     context.loadEntity = function(id, callback) {
16818         function done(err, result) {
16819             entitiesLoaded(err, result);
16820             if (callback) callback(err, result);
16821         }
16822         connection.loadEntity(id, done);
16823     };
16824
16825     context.zoomToEntity = function(id, zoomTo) {
16826         if (zoomTo !== false) {
16827             this.loadEntity(id, function(err, result) {
16828                 if (err) return;
16829                 var entity = _.find(result.data, function(e) { return e.id === id; });
16830                 if (entity) { map.zoomTo(entity); }
16831             });
16832         }
16833
16834         map.on('drawn.zoomToEntity', function() {
16835             if (!context.hasEntity(id)) return;
16836             map.on('drawn.zoomToEntity', null);
16837             context.on('enter.zoomToEntity', null);
16838             context.enter(iD.modes.Select(context, [id]));
16839         });
16840
16841         context.on('enter.zoomToEntity', function() {
16842             if (mode.id !== 'browse') {
16843                 map.on('drawn.zoomToEntity', null);
16844                 context.on('enter.zoomToEntity', null);
16845             }
16846         });
16847     };
16848
16849     /* History */
16850     context.graph = history.graph;
16851     context.changes = history.changes;
16852     context.intersects = history.intersects;
16853
16854     var inIntro = false;
16855
16856     context.inIntro = function(_) {
16857         if (!arguments.length) return inIntro;
16858         inIntro = _;
16859         return context;
16860     };
16861
16862     context.save = function() {
16863         if (inIntro || (mode && mode.id === 'save')) return;
16864         history.save();
16865         if (history.hasChanges()) return t('save.unsaved_changes');
16866     };
16867
16868     context.flush = function() {
16869         connection.flush();
16870         features.reset();
16871         history.reset();
16872         return context;
16873     };
16874
16875     // Debounce save, since it's a synchronous localStorage write,
16876     // and history changes can happen frequently (e.g. when dragging).
16877     var debouncedSave = _.debounce(context.save, 350);
16878     function withDebouncedSave(fn) {
16879         return function() {
16880             var result = fn.apply(history, arguments);
16881             debouncedSave();
16882             return result;
16883         };
16884     }
16885
16886     context.perform = withDebouncedSave(history.perform);
16887     context.replace = withDebouncedSave(history.replace);
16888     context.pop = withDebouncedSave(history.pop);
16889     context.overwrite = withDebouncedSave(history.overwrite);
16890     context.undo = withDebouncedSave(history.undo);
16891     context.redo = withDebouncedSave(history.redo);
16892
16893     /* Graph */
16894     context.hasEntity = function(id) {
16895         return history.graph().hasEntity(id);
16896     };
16897
16898     context.entity = function(id) {
16899         return history.graph().entity(id);
16900     };
16901
16902     context.childNodes = function(way) {
16903         return history.graph().childNodes(way);
16904     };
16905
16906     context.geometry = function(id) {
16907         return context.entity(id).geometry(history.graph());
16908     };
16909
16910     /* Modes */
16911     context.enter = function(newMode) {
16912         if (mode) {
16913             mode.exit();
16914             dispatch.exit(mode);
16915         }
16916
16917         mode = newMode;
16918         mode.enter();
16919         dispatch.enter(mode);
16920     };
16921
16922     context.mode = function() {
16923         return mode;
16924     };
16925
16926     context.selectedIDs = function() {
16927         if (mode && mode.selectedIDs) {
16928             return mode.selectedIDs();
16929         } else {
16930             return [];
16931         }
16932     };
16933
16934     /* Behaviors */
16935     context.install = function(behavior) {
16936         context.surface().call(behavior);
16937     };
16938
16939     context.uninstall = function(behavior) {
16940         context.surface().call(behavior.off);
16941     };
16942
16943     /* Copy/Paste */
16944     var copyIDs = [], copyGraph;
16945     context.copyGraph = function() { return copyGraph; };
16946     context.copyIDs = function(_) {
16947         if (!arguments.length) return copyIDs;
16948         copyIDs = _;
16949         copyGraph = history.graph();
16950         return context;
16951     };
16952
16953     /* Projection */
16954     context.projection = iD.geo.RawMercator();
16955
16956     /* Background */
16957     var background = iD.Background(context);
16958     context.background = function() { return background; };
16959
16960     /* Features */
16961     var features = iD.Features(context);
16962     context.features = function() { return features; };
16963     context.hasHiddenConnections = function(id) {
16964         var graph = history.graph(),
16965             entity = graph.entity(id);
16966         return features.hasHiddenConnections(entity, graph);
16967     };
16968
16969     /* Map */
16970     var map = iD.Map(context);
16971     context.map = function() { return map; };
16972     context.layers = function() { return map.layers; };
16973     context.surface = function() { return map.surface; };
16974     context.editable = function() { return map.editable(); };
16975     context.mouse = map.mouse;
16976     context.extent = map.extent;
16977     context.pan = map.pan;
16978     context.zoomIn = map.zoomIn;
16979     context.zoomOut = map.zoomOut;
16980
16981     context.surfaceRect = function() {
16982         // Work around a bug in Firefox.
16983         //   http://stackoverflow.com/questions/18153989/
16984         //   https://bugzilla.mozilla.org/show_bug.cgi?id=530985
16985         return context.surface().node().parentNode.getBoundingClientRect();
16986     };
16987
16988     /* Presets */
16989     var presets = iD.presets();
16990
16991     context.presets = function(_) {
16992         if (!arguments.length) return presets;
16993         presets.load(_);
16994         iD.areaKeys = presets.areaKeys();
16995         return context;
16996     };
16997
16998     context.imagery = function(_) {
16999         background.load(_);
17000         return context;
17001     };
17002
17003     context.container = function(_) {
17004         if (!arguments.length) return container;
17005         container = _;
17006         container.classed('id-container', true);
17007         return context;
17008     };
17009
17010     /* Taginfo */
17011     var taginfo;
17012     context.taginfo = function(_) {
17013         if (!arguments.length) return taginfo;
17014         taginfo = _;
17015         return context;
17016     };
17017
17018     var embed = false;
17019     context.embed = function(_) {
17020         if (!arguments.length) return embed;
17021         embed = _;
17022         return context;
17023     };
17024
17025     var assetPath = '';
17026     context.assetPath = function(_) {
17027         if (!arguments.length) return assetPath;
17028         assetPath = _;
17029         return context;
17030     };
17031
17032     var assetMap = {};
17033     context.assetMap = function(_) {
17034         if (!arguments.length) return assetMap;
17035         assetMap = _;
17036         return context;
17037     };
17038
17039     context.imagePath = function(_) {
17040         var asset = 'img/' + _;
17041         return assetMap[asset] || assetPath + asset;
17042     };
17043
17044     return d3.rebind(context, dispatch, 'on');
17045 };
17046
17047 iD.version = '1.7.1';
17048
17049 (function() {
17050     var detected = {};
17051
17052     var ua = navigator.userAgent,
17053         m = null;
17054
17055     m = ua.match(/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i);   // IE11+
17056     if (m !== null) {
17057         detected.browser = 'msie';
17058         detected.version = m[1];
17059     }
17060     if (!detected.browser) {
17061         m = ua.match(/(opr)\/?\s*(\.?\d+(\.\d+)*)/i);   // Opera 15+
17062         if (m !== null) {
17063             detected.browser = 'Opera';
17064             detected.version = m[2];
17065         }
17066     }
17067     if (!detected.browser) {
17068         m = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
17069         if (m !== null) {
17070             detected.browser = m[1];
17071             detected.version = m[2];
17072             m = ua.match(/version\/([\.\d]+)/i);
17073             if (m !== null) detected.version = m[1];
17074         }
17075     }
17076     if (!detected.browser) {
17077         detected.browser = navigator.appName;
17078         detected.version = navigator.appVersion;
17079     }
17080
17081     // keep major.minor version only..
17082     detected.version = detected.version.split(/\W/).slice(0,2).join('.');
17083
17084     if (detected.browser.toLowerCase() === 'msie') {
17085         detected.browser = 'Internet Explorer';
17086         detected.support = parseFloat(detected.version) > 9;
17087     } else {
17088         detected.support = true;
17089     }
17090
17091     // Added due to incomplete svg style support. See #715
17092     detected.opera = (detected.browser.toLowerCase() === 'opera' && parseFloat(detected.version) < 15 );
17093
17094     detected.locale = navigator.language || navigator.userLanguage;
17095
17096     detected.filedrop = (window.FileReader && 'ondrop' in window);
17097
17098     function nav(x) {
17099         return navigator.userAgent.indexOf(x) !== -1;
17100     }
17101
17102     if (nav('Win')) {
17103         detected.os = 'win';
17104         detected.platform = 'Windows';
17105     }
17106     else if (nav('Mac')) {
17107         detected.os = 'mac';
17108         detected.platform = 'Macintosh';
17109     }
17110     else if (nav('X11') || nav('Linux')) {
17111         detected.os = 'linux';
17112         detected.platform = 'Linux';
17113     }
17114     else {
17115         detected.os = 'win';
17116         detected.platform = 'Unknown';
17117     }
17118
17119     iD.detect = function() { return detected; };
17120 })();
17121 iD.countryCode  = function() {
17122     var countryCode = {},
17123         endpoint = 'https://nominatim.openstreetmap.org/reverse?';
17124
17125     if (!iD.countryCode.cache) {
17126         iD.countryCode.cache = rbush();
17127     }
17128
17129     var cache = iD.countryCode.cache;
17130
17131     countryCode.search = function(location, callback) {
17132         var countryCodes = cache.search([location[0], location[1], location[0], location[1]]);
17133
17134         if (countryCodes.length > 0)
17135             return callback(null, countryCodes[0][4]);
17136
17137         d3.json(endpoint +
17138             iD.util.qsString({
17139                 format: 'json',
17140                 addressdetails: 1,
17141                 lat: location[1],
17142                 lon: location[0]
17143             }), function(err, result) {
17144                 if (err)
17145                     return callback(err);
17146                 else if (result && result.error)
17147                     return callback(result.error);
17148
17149                 var extent = iD.geo.Extent(location).padByMeters(1000);
17150
17151                 cache.insert([extent[0][0], extent[0][1], extent[1][0], extent[1][1], result.address.country_code]);
17152
17153                 callback(null, result.address.country_code);
17154             });
17155     };
17156
17157     return countryCode;
17158 };
17159 iD.taginfo = function() {
17160     var taginfo = {},
17161         endpoint = 'https://taginfo.openstreetmap.org/api/4/',
17162         tag_sorts = {
17163             point: 'count_nodes',
17164             vertex: 'count_nodes',
17165             area: 'count_ways',
17166             line: 'count_ways'
17167         },
17168         tag_filters = {
17169             point: 'nodes',
17170             vertex: 'nodes',
17171             area: 'ways',
17172             line: 'ways'
17173         };
17174
17175     if (!iD.taginfo.cache) {
17176         iD.taginfo.cache = {};
17177     }
17178
17179     var cache = iD.taginfo.cache;
17180
17181     function sets(parameters, n, o) {
17182         if (parameters.geometry && o[parameters.geometry]) {
17183             parameters[n] = o[parameters.geometry];
17184         }
17185         return parameters;
17186     }
17187
17188     function setFilter(parameters) {
17189         return sets(parameters, 'filter', tag_filters);
17190     }
17191
17192     function setSort(parameters) {
17193         return sets(parameters, 'sortname', tag_sorts);
17194     }
17195
17196     function clean(parameters) {
17197         return _.omit(parameters, 'geometry', 'debounce');
17198     }
17199
17200     function shorten(parameters) {
17201         if (!parameters.query) {
17202             delete parameters.query;
17203         } else {
17204             parameters.query = parameters.query.slice(0, 3);
17205         }
17206         return parameters;
17207     }
17208
17209     function popularKeys(parameters) {
17210         var pop_field = 'count_all';
17211         if (parameters.filter) pop_field = 'count_' + parameters.filter;
17212         return function(d) { return parseFloat(d[pop_field]) > 10000; };
17213     }
17214
17215     function popularValues() {
17216         return function(d) { return parseFloat(d.fraction) > 0.01 || d.in_wiki; };
17217     }
17218
17219     function valKey(d) { return { value: d.key }; }
17220
17221     function valKeyDescription(d) {
17222         return {
17223             value: d.value,
17224             title: d.description
17225         };
17226     }
17227
17228     var debounced = _.debounce(d3.json, 100, true);
17229
17230     function request(url, debounce, callback) {
17231         if (cache[url]) {
17232             callback(null, cache[url]);
17233         } else if (debounce) {
17234             debounced(url, done);
17235         } else {
17236             d3.json(url, done);
17237         }
17238
17239         function done(err, data) {
17240             if (!err) cache[url] = data;
17241             callback(err, data);
17242         }
17243     }
17244
17245     taginfo.keys = function(parameters, callback) {
17246         var debounce = parameters.debounce;
17247         parameters = clean(shorten(setSort(parameters)));
17248         request(endpoint + 'keys/all?' +
17249             iD.util.qsString(_.extend({
17250                 rp: 10,
17251                 sortname: 'count_all',
17252                 sortorder: 'desc',
17253                 page: 1
17254             }, parameters)), debounce, function(err, d) {
17255                 if (err) return callback(err);
17256                 callback(null, d.data.filter(popularKeys(parameters)).map(valKey));
17257             });
17258     };
17259
17260     taginfo.values = function(parameters, callback) {
17261         var debounce = parameters.debounce;
17262         parameters = clean(shorten(setSort(setFilter(parameters))));
17263         request(endpoint + 'key/values?' +
17264             iD.util.qsString(_.extend({
17265                 rp: 25,
17266                 sortname: 'count_all',
17267                 sortorder: 'desc',
17268                 page: 1
17269             }, parameters)), debounce, function(err, d) {
17270                 if (err) return callback(err);
17271                 callback(null, d.data.filter(popularValues()).map(valKeyDescription), parameters);
17272             });
17273     };
17274
17275     taginfo.docs = function(parameters, callback) {
17276         var debounce = parameters.debounce;
17277         parameters = clean(setSort(parameters));
17278
17279         var path = 'key/wiki_pages?';
17280         if (parameters.value) path = 'tag/wiki_pages?';
17281         else if (parameters.rtype) path = 'relation/wiki_pages?';
17282
17283         request(endpoint + path +
17284             iD.util.qsString(parameters), debounce, callback);
17285     };
17286
17287     taginfo.endpoint = function(_) {
17288         if (!arguments.length) return endpoint;
17289         endpoint = _;
17290         return taginfo;
17291     };
17292
17293     return taginfo;
17294 };
17295 iD.wikipedia  = function() {
17296     var wiki = {},
17297         endpoint = 'https://en.wikipedia.org/w/api.php?';
17298
17299     wiki.search = function(lang, query, callback) {
17300         lang = lang || 'en';
17301         d3.jsonp(endpoint.replace('en', lang) +
17302             iD.util.qsString({
17303                 action: 'query',
17304                 list: 'search',
17305                 srlimit: '10',
17306                 srinfo: 'suggestion',
17307                 format: 'json',
17308                 callback: '{callback}',
17309                 srsearch: query
17310             }), function(data) {
17311                 if (!data.query) return;
17312                 callback(query, data.query.search.map(function(d) {
17313                     return d.title;
17314                 }));
17315             });
17316     };
17317
17318     wiki.suggestions = function(lang, query, callback) {
17319         lang = lang || 'en';
17320         d3.jsonp(endpoint.replace('en', lang) +
17321             iD.util.qsString({
17322                 action: 'opensearch',
17323                 namespace: 0,
17324                 suggest: '',
17325                 format: 'json',
17326                 callback: '{callback}',
17327                 search: query
17328             }), function(d) {
17329                 callback(d[0], d[1]);
17330             });
17331     };
17332
17333     wiki.translations = function(lang, title, callback) {
17334         d3.jsonp(endpoint.replace('en', lang) +
17335             iD.util.qsString({
17336                 action: 'query',
17337                 prop: 'langlinks',
17338                 format: 'json',
17339                 callback: '{callback}',
17340                 lllimit: 500,
17341                 titles: title
17342             }), function(d) {
17343                 var list = d.query.pages[Object.keys(d.query.pages)[0]],
17344                     translations = {};
17345                 if (list && list.langlinks) {
17346                     list.langlinks.forEach(function(d) {
17347                         translations[d.lang] = d['*'];
17348                     });
17349                     callback(translations);
17350                 }
17351             });
17352     };
17353
17354     return wiki;
17355 };
17356 iD.util = {};
17357
17358 iD.util.tagText = function(entity) {
17359     return d3.entries(entity.tags).map(function(e) {
17360         return e.key + '=' + e.value;
17361     }).join(', ');
17362 };
17363
17364 iD.util.entitySelector = function(ids) {
17365     return ids.length ? '.' + ids.join(',.') : 'nothing';
17366 };
17367
17368 iD.util.entityOrMemberSelector = function(ids, graph) {
17369     var s = iD.util.entitySelector(ids);
17370
17371     ids.forEach(function(id) {
17372         var entity = graph.hasEntity(id);
17373         if (entity && entity.type === 'relation') {
17374             entity.members.forEach(function(member) {
17375                 s += ',.' + member.id;
17376             });
17377         }
17378     });
17379
17380     return s;
17381 };
17382
17383 iD.util.displayName = function(entity) {
17384     var localeName = 'name:' + iD.detect().locale.toLowerCase().split('-')[0];
17385     return entity.tags[localeName] || entity.tags.name || entity.tags.ref;
17386 };
17387
17388 iD.util.displayType = function(id) {
17389     return {
17390         n: t('inspector.node'),
17391         w: t('inspector.way'),
17392         r: t('inspector.relation')
17393     }[id.charAt(0)];
17394 };
17395
17396 iD.util.stringQs = function(str) {
17397     return str.split('&').reduce(function(obj, pair){
17398         var parts = pair.split('=');
17399         if (parts.length === 2) {
17400             obj[parts[0]] = (null === parts[1]) ? '' : decodeURIComponent(parts[1]);
17401         }
17402         return obj;
17403     }, {});
17404 };
17405
17406 iD.util.qsString = function(obj, noencode) {
17407     function softEncode(s) {
17408       // encode everything except special characters used in certain hash parameters:
17409       // "/" in map states, ":", ",", {" and "}" in background
17410       return encodeURIComponent(s).replace(/(%2F|%3A|%2C|%7B|%7D)/g, decodeURIComponent);
17411     }
17412     return Object.keys(obj).sort().map(function(key) {
17413         return encodeURIComponent(key) + '=' + (
17414             noencode ? softEncode(obj[key]) : encodeURIComponent(obj[key]));
17415     }).join('&');
17416 };
17417
17418 iD.util.prefixDOMProperty = function(property) {
17419     var prefixes = ['webkit', 'ms', 'moz', 'o'],
17420         i = -1,
17421         n = prefixes.length,
17422         s = document.body;
17423
17424     if (property in s)
17425         return property;
17426
17427     property = property.substr(0, 1).toUpperCase() + property.substr(1);
17428
17429     while (++i < n)
17430         if (prefixes[i] + property in s)
17431             return prefixes[i] + property;
17432
17433     return false;
17434 };
17435
17436 iD.util.prefixCSSProperty = function(property) {
17437     var prefixes = ['webkit', 'ms', 'Moz', 'O'],
17438         i = -1,
17439         n = prefixes.length,
17440         s = document.body.style;
17441
17442     if (property.toLowerCase() in s)
17443         return property.toLowerCase();
17444
17445     while (++i < n)
17446         if (prefixes[i] + property in s)
17447             return '-' + prefixes[i].toLowerCase() + property.replace(/([A-Z])/g, '-$1').toLowerCase();
17448
17449     return false;
17450 };
17451
17452
17453 iD.util.setTransform = function(el, x, y, scale) {
17454     var prop = iD.util.transformProperty = iD.util.transformProperty || iD.util.prefixCSSProperty('Transform'),
17455         translate = iD.detect().opera ?
17456             'translate('   + x + 'px,' + y + 'px)' :
17457             'translate3d(' + x + 'px,' + y + 'px,0)';
17458     return el.style(prop, translate + (scale ? ' scale(' + scale + ')' : ''));
17459 };
17460
17461 iD.util.getStyle = function(selector) {
17462     for (var i = 0; i < document.styleSheets.length; i++) {
17463         var rules = document.styleSheets[i].rules || document.styleSheets[i].cssRules || [];
17464         for (var k = 0; k < rules.length; k++) {
17465             var selectorText = rules[k].selectorText && rules[k].selectorText.split(', ');
17466             if (_.contains(selectorText, selector)) {
17467                 return rules[k];
17468             }
17469         }
17470     }
17471 };
17472
17473 iD.util.editDistance = function(a, b) {
17474     if (a.length === 0) return b.length;
17475     if (b.length === 0) return a.length;
17476     var matrix = [];
17477     for (var i = 0; i <= b.length; i++) { matrix[i] = [i]; }
17478     for (var j = 0; j <= a.length; j++) { matrix[0][j] = j; }
17479     for (i = 1; i <= b.length; i++) {
17480         for (j = 1; j <= a.length; j++) {
17481             if (b.charAt(i-1) === a.charAt(j-1)) {
17482                 matrix[i][j] = matrix[i-1][j-1];
17483             } else {
17484                 matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution
17485                     Math.min(matrix[i][j-1] + 1, // insertion
17486                     matrix[i-1][j] + 1)); // deletion
17487             }
17488         }
17489     }
17490     return matrix[b.length][a.length];
17491 };
17492
17493 // a d3.mouse-alike which
17494 // 1. Only works on HTML elements, not SVG
17495 // 2. Does not cause style recalculation
17496 iD.util.fastMouse = function(container) {
17497     var rect = _.clone(container.getBoundingClientRect()),
17498         rectLeft = rect.left,
17499         rectTop = rect.top,
17500         clientLeft = +container.clientLeft,
17501         clientTop = +container.clientTop;
17502     return function(e) {
17503         return [
17504             e.clientX - rectLeft - clientLeft,
17505             e.clientY - rectTop - clientTop];
17506     };
17507 };
17508
17509 /* jshint -W103 */
17510 iD.util.getPrototypeOf = Object.getPrototypeOf || function(obj) { return obj.__proto__; };
17511
17512 iD.util.asyncMap = function(inputs, func, callback) {
17513     var remaining = inputs.length,
17514         results = [],
17515         errors = [];
17516
17517     inputs.forEach(function(d, i) {
17518         func(d, function done(err, data) {
17519             errors[i] = err;
17520             results[i] = data;
17521             remaining --;
17522             if (!remaining) callback(errors, results);
17523         });
17524     });
17525 };
17526
17527 // wraps an index to an interval [0..length-1]
17528 iD.util.wrap = function(index, length) {
17529     if (index < 0)
17530         index += Math.ceil(-index/length)*length;
17531     return index % length;
17532 };
17533 // A per-domain session mutex backed by a cookie and dead man's
17534 // switch. If the session crashes, the mutex will auto-release
17535 // after 5 seconds.
17536
17537 iD.util.SessionMutex = function(name) {
17538     var mutex = {},
17539         intervalID;
17540
17541     function renew() {
17542         var expires = new Date();
17543         expires.setSeconds(expires.getSeconds() + 5);
17544         document.cookie = name + '=1; expires=' + expires.toUTCString();
17545     }
17546
17547     mutex.lock = function() {
17548         if (intervalID) return true;
17549         var cookie = document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1');
17550         if (cookie) return false;
17551         renew();
17552         intervalID = window.setInterval(renew, 4000);
17553         return true;
17554     };
17555
17556     mutex.unlock = function() {
17557         if (!intervalID) return;
17558         document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT';
17559         clearInterval(intervalID);
17560         intervalID = null;
17561     };
17562
17563     mutex.locked = function() {
17564         return !!intervalID;
17565     };
17566
17567     return mutex;
17568 };
17569 iD.util.SuggestNames = function(preset, suggestions) {
17570     preset = preset.id.split('/', 2);
17571     var k = preset[0],
17572         v = preset[1];
17573
17574     return function(value, callback) {
17575         var result = [];
17576         if (value && value.length > 2) {
17577             if (suggestions[k] && suggestions[k][v]) {
17578                 for (var sugg in suggestions[k][v]) {
17579                     var dist = iD.util.editDistance(value, sugg.substring(0, value.length));
17580                     if (dist < 3) {
17581                         result.push({
17582                             title: sugg,
17583                             value: sugg,
17584                             dist: dist
17585                         });
17586                     }
17587                 }
17588             }
17589             result.sort(function(a, b) {
17590                 return a.dist - b.dist;
17591             });
17592         }
17593         result = result.slice(0,3);
17594         callback(result);
17595     };
17596 };
17597 iD.geo = {};
17598
17599 iD.geo.roundCoords = function(c) {
17600     return [Math.floor(c[0]), Math.floor(c[1])];
17601 };
17602
17603 iD.geo.interp = function(p1, p2, t) {
17604     return [p1[0] + (p2[0] - p1[0]) * t,
17605             p1[1] + (p2[1] - p1[1]) * t];
17606 };
17607
17608 // 2D cross product of OA and OB vectors, i.e. z-component of their 3D cross product.
17609 // Returns a positive value, if OAB makes a counter-clockwise turn,
17610 // negative for clockwise turn, and zero if the points are collinear.
17611 iD.geo.cross = function(o, a, b) {
17612     return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
17613 };
17614
17615 // http://jsperf.com/id-dist-optimization
17616 iD.geo.euclideanDistance = function(a, b) {
17617     var x = a[0] - b[0], y = a[1] - b[1];
17618     return Math.sqrt((x * x) + (y * y));
17619 };
17620
17621 // using WGS84 polar radius (6356752.314245179 m)
17622 // const = 2 * PI * r / 360
17623 iD.geo.latToMeters = function(dLat) {
17624     return dLat * 110946.257617;
17625 };
17626
17627 // using WGS84 equatorial radius (6378137.0 m)
17628 // const = 2 * PI * r / 360
17629 iD.geo.lonToMeters = function(dLon, atLat) {
17630     return Math.abs(atLat) >= 90 ? 0 :
17631         dLon * 111319.490793 * Math.abs(Math.cos(atLat * (Math.PI/180)));
17632 };
17633
17634 // using WGS84 polar radius (6356752.314245179 m)
17635 // const = 2 * PI * r / 360
17636 iD.geo.metersToLat = function(m) {
17637     return m / 110946.257617;
17638 };
17639
17640 // using WGS84 equatorial radius (6378137.0 m)
17641 // const = 2 * PI * r / 360
17642 iD.geo.metersToLon = function(m, atLat) {
17643     return Math.abs(atLat) >= 90 ? 0 :
17644         m / 111319.490793 / Math.abs(Math.cos(atLat * (Math.PI/180)));
17645 };
17646
17647 // Equirectangular approximation of spherical distances on Earth
17648 iD.geo.sphericalDistance = function(a, b) {
17649     var x = iD.geo.lonToMeters(a[0] - b[0], (a[1] + b[1]) / 2),
17650         y = iD.geo.latToMeters(a[1] - b[1]);
17651     return Math.sqrt((x * x) + (y * y));
17652 };
17653
17654 iD.geo.edgeEqual = function(a, b) {
17655     return (a[0] === b[0] && a[1] === b[1]) ||
17656         (a[0] === b[1] && a[1] === b[0]);
17657 };
17658
17659 // Return the counterclockwise angle in the range (-pi, pi)
17660 // between the positive X axis and the line intersecting a and b.
17661 iD.geo.angle = function(a, b, projection) {
17662     a = projection(a.loc);
17663     b = projection(b.loc);
17664     return Math.atan2(b[1] - a[1], b[0] - a[0]);
17665 };
17666
17667 // Choose the edge with the minimal distance from `point` to its orthogonal
17668 // projection onto that edge, if such a projection exists, or the distance to
17669 // the closest vertex on that edge. Returns an object with the `index` of the
17670 // chosen edge, the chosen `loc` on that edge, and the `distance` to to it.
17671 iD.geo.chooseEdge = function(nodes, point, projection) {
17672     var dist = iD.geo.euclideanDistance,
17673         points = nodes.map(function(n) { return projection(n.loc); }),
17674         min = Infinity,
17675         idx, loc;
17676
17677     function dot(p, q) {
17678         return p[0] * q[0] + p[1] * q[1];
17679     }
17680
17681     for (var i = 0; i < points.length - 1; i++) {
17682         var o = points[i],
17683             s = [points[i + 1][0] - o[0],
17684                  points[i + 1][1] - o[1]],
17685             v = [point[0] - o[0],
17686                  point[1] - o[1]],
17687             proj = dot(v, s) / dot(s, s),
17688             p;
17689
17690         if (proj < 0) {
17691             p = o;
17692         } else if (proj > 1) {
17693             p = points[i + 1];
17694         } else {
17695             p = [o[0] + proj * s[0], o[1] + proj * s[1]];
17696         }
17697
17698         var d = dist(p, point);
17699         if (d < min) {
17700             min = d;
17701             idx = i + 1;
17702             loc = projection.invert(p);
17703         }
17704     }
17705
17706     return {
17707         index: idx,
17708         distance: min,
17709         loc: loc
17710     };
17711 };
17712
17713 // Return the intersection point of 2 line segments.
17714 // From https://github.com/pgkelley4/line-segments-intersect
17715 // This uses the vector cross product approach described below:
17716 //  http://stackoverflow.com/a/565282/786339
17717 iD.geo.lineIntersection = function(a, b) {
17718     function subtractPoints(point1, point2) {
17719         return [point1[0] - point2[0], point1[1] - point2[1]];
17720     }
17721     function crossProduct(point1, point2) {
17722         return point1[0] * point2[1] - point1[1] * point2[0];
17723     }
17724
17725     var p = [a[0][0], a[0][1]],
17726         p2 = [a[1][0], a[1][1]],
17727         q = [b[0][0], b[0][1]],
17728         q2 = [b[1][0], b[1][1]],
17729         r = subtractPoints(p2, p),
17730         s = subtractPoints(q2, q),
17731         uNumerator = crossProduct(subtractPoints(q, p), r),
17732         denominator = crossProduct(r, s);
17733
17734     if (uNumerator && denominator) {
17735         var u = uNumerator / denominator,
17736             t = crossProduct(subtractPoints(q, p), s) / denominator;
17737
17738         if ((t >= 0) && (t <= 1) && (u >= 0) && (u <= 1)) {
17739             return iD.geo.interp(p, p2, t);
17740         }
17741     }
17742
17743     return null;
17744 };
17745
17746 iD.geo.pathIntersections = function(path1, path2) {
17747     var intersections = [];
17748     for (var i = 0; i < path1.length - 1; i++) {
17749         for (var j = 0; j < path2.length - 1; j++) {
17750             var a = [ path1[i], path1[i+1] ],
17751                 b = [ path2[j], path2[j+1] ],
17752                 hit = iD.geo.lineIntersection(a, b);
17753             if (hit) intersections.push(hit);
17754         }
17755     }
17756     return intersections;
17757 };
17758
17759 // Return whether point is contained in polygon.
17760 //
17761 // `point` should be a 2-item array of coordinates.
17762 // `polygon` should be an array of 2-item arrays of coordinates.
17763 //
17764 // From https://github.com/substack/point-in-polygon.
17765 // ray-casting algorithm based on
17766 // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
17767 //
17768 iD.geo.pointInPolygon = function(point, polygon) {
17769     var x = point[0],
17770         y = point[1],
17771         inside = false;
17772
17773     for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
17774         var xi = polygon[i][0], yi = polygon[i][1];
17775         var xj = polygon[j][0], yj = polygon[j][1];
17776
17777         var intersect = ((yi > y) !== (yj > y)) &&
17778             (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
17779         if (intersect) inside = !inside;
17780     }
17781
17782     return inside;
17783 };
17784
17785 iD.geo.polygonContainsPolygon = function(outer, inner) {
17786     return _.every(inner, function(point) {
17787         return iD.geo.pointInPolygon(point, outer);
17788     });
17789 };
17790
17791 iD.geo.polygonIntersectsPolygon = function(outer, inner) {
17792     function testSegments(outer, inner) {
17793         for (var i = 0; i < outer.length - 1; i++) {
17794             for (var j = 0; j < inner.length - 1; j++) {
17795                 var a = [ outer[i], outer[i+1] ],
17796                     b = [ inner[j], inner[j+1] ];
17797                 if (iD.geo.lineIntersection(a, b)) return true;
17798             }
17799         }
17800         return false;
17801     }
17802
17803     return _.some(inner, function(point) {
17804         return iD.geo.pointInPolygon(point, outer);
17805     }) || testSegments(outer, inner);
17806 };
17807
17808 iD.geo.pathLength = function(path) {
17809     var length = 0,
17810         dx, dy;
17811     for (var i = 0; i < path.length - 1; i++) {
17812         dx = path[i][0] - path[i + 1][0];
17813         dy = path[i][1] - path[i + 1][1];
17814         length += Math.sqrt(dx * dx + dy * dy);
17815     }
17816     return length;
17817 };
17818 iD.geo.Extent = function geoExtent(min, max) {
17819     if (!(this instanceof iD.geo.Extent)) return new iD.geo.Extent(min, max);
17820     if (min instanceof iD.geo.Extent) {
17821         return min;
17822     } else if (min && min.length === 2 && min[0].length === 2 && min[1].length === 2) {
17823         this[0] = min[0];
17824         this[1] = min[1];
17825     } else {
17826         this[0] = min        || [ Infinity,  Infinity];
17827         this[1] = max || min || [-Infinity, -Infinity];
17828     }
17829 };
17830
17831 iD.geo.Extent.prototype = new Array(2);
17832
17833 _.extend(iD.geo.Extent.prototype, {
17834     equals: function (obj) {
17835         return this[0][0] === obj[0][0] &&
17836             this[0][1] === obj[0][1] &&
17837             this[1][0] === obj[1][0] &&
17838             this[1][1] === obj[1][1];
17839     },
17840
17841     extend: function(obj) {
17842         if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
17843         return iD.geo.Extent([Math.min(obj[0][0], this[0][0]),
17844                               Math.min(obj[0][1], this[0][1])],
17845                              [Math.max(obj[1][0], this[1][0]),
17846                               Math.max(obj[1][1], this[1][1])]);
17847     },
17848
17849     _extend: function(extent) {
17850         this[0][0] = Math.min(extent[0][0], this[0][0]);
17851         this[0][1] = Math.min(extent[0][1], this[0][1]);
17852         this[1][0] = Math.max(extent[1][0], this[1][0]);
17853         this[1][1] = Math.max(extent[1][1], this[1][1]);
17854     },
17855
17856     area: function() {
17857         return Math.abs((this[1][0] - this[0][0]) * (this[1][1] - this[0][1]));
17858     },
17859
17860     center: function() {
17861         return [(this[0][0] + this[1][0]) / 2,
17862                 (this[0][1] + this[1][1]) / 2];
17863     },
17864
17865     polygon: function() {
17866         return [
17867             [this[0][0], this[0][1]],
17868             [this[0][0], this[1][1]],
17869             [this[1][0], this[1][1]],
17870             [this[1][0], this[0][1]],
17871             [this[0][0], this[0][1]]
17872         ];
17873     },
17874
17875     contains: function(obj) {
17876         if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
17877         return obj[0][0] >= this[0][0] &&
17878                obj[0][1] >= this[0][1] &&
17879                obj[1][0] <= this[1][0] &&
17880                obj[1][1] <= this[1][1];
17881     },
17882
17883     intersects: function(obj) {
17884         if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
17885         return obj[0][0] <= this[1][0] &&
17886                obj[0][1] <= this[1][1] &&
17887                obj[1][0] >= this[0][0] &&
17888                obj[1][1] >= this[0][1];
17889     },
17890
17891     intersection: function(obj) {
17892         if (!this.intersects(obj)) return new iD.geo.Extent();
17893         return new iD.geo.Extent([Math.max(obj[0][0], this[0][0]),
17894                                   Math.max(obj[0][1], this[0][1])],
17895                                  [Math.min(obj[1][0], this[1][0]),
17896                                   Math.min(obj[1][1], this[1][1])]);
17897     },
17898
17899     percentContainedIn: function(obj) {
17900         if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
17901         var a1 = this.intersection(obj).area(),
17902             a2 = this.area();
17903
17904         if (a1 === Infinity || a2 === Infinity || a1 === 0 || a2 === 0) {
17905             return 0;
17906         } else {
17907             return a1 / a2;
17908         }
17909     },
17910
17911     padByMeters: function(meters) {
17912         var dLat = iD.geo.metersToLat(meters),
17913             dLon = iD.geo.metersToLon(meters, this.center()[1]);
17914         return iD.geo.Extent(
17915                 [this[0][0] - dLon, this[0][1] - dLat],
17916                 [this[1][0] + dLon, this[1][1] + dLat]);
17917     },
17918
17919     toParam: function() {
17920         return [this[0][0], this[0][1], this[1][0], this[1][1]].join(',');
17921     }
17922
17923 });
17924 iD.geo.Turn = function(turn) {
17925     if (!(this instanceof iD.geo.Turn))
17926         return new iD.geo.Turn(turn);
17927     _.extend(this, turn);
17928 };
17929
17930 iD.geo.Intersection = function(graph, vertexId) {
17931     var vertex = graph.entity(vertexId),
17932         highways = [];
17933
17934     // Pre-split ways that would need to be split in
17935     // order to add a restriction. The real split will
17936     // happen when the restriction is added.
17937     graph.parentWays(vertex).forEach(function(way) {
17938         if (!way.tags.highway || way.isArea() || way.isDegenerate())
17939             return;
17940
17941         if (way.affix(vertexId)) {
17942             highways.push(way);
17943         } else {
17944             var idx = _.indexOf(way.nodes, vertex.id, 1),
17945                 wayA = iD.Way({id: way.id + '-a', tags: way.tags, nodes: way.nodes.slice(0, idx + 1)}),
17946                 wayB = iD.Way({id: way.id + '-b', tags: way.tags, nodes: way.nodes.slice(idx)});
17947
17948             graph = graph.replace(wayA);
17949             graph = graph.replace(wayB);
17950
17951             highways.push(wayA);
17952             highways.push(wayB);
17953         }
17954     });
17955
17956     var intersection = {
17957         highways: highways,
17958         graph: graph
17959     };
17960
17961     intersection.turns = function(fromNodeID) {
17962         if (!fromNodeID)
17963             return [];
17964
17965         var way = _.find(highways, function(way) { return way.contains(fromNodeID); });
17966         if (way.first() === vertex.id && way.tags.oneway === 'yes')
17967             return [];
17968         if (way.last() === vertex.id && way.tags.oneway === '-1')
17969             return [];
17970
17971         function withRestriction(turn) {
17972             graph.parentRelations(graph.entity(turn.from.way)).forEach(function(relation) {
17973                 if (relation.tags.type !== 'restriction')
17974                     return;
17975
17976                 var f = relation.memberByRole('from'),
17977                     t = relation.memberByRole('to'),
17978                     v = relation.memberByRole('via');
17979
17980                 if (f && f.id === turn.from.way &&
17981                     v && v.id === turn.via.node &&
17982                     t && t.id === turn.to.way) {
17983                     turn.restriction = relation.id;
17984                 } else if (/^only_/.test(relation.tags.restriction) &&
17985                     f && f.id === turn.from.way &&
17986                     v && v.id === turn.via.node &&
17987                     t && t.id !== turn.to.way) {
17988                     turn.restriction = relation.id;
17989                     turn.indirect_restriction = true;
17990                 }
17991             });
17992
17993             return iD.geo.Turn(turn);
17994         }
17995
17996         var from = {
17997                 node: way.nodes[way.first() === vertex.id ? 1 : way.nodes.length - 2],
17998                 way: way.id.split(/-(a|b)/)[0]
17999             },
18000             via = {node: vertex.id},
18001             turns = [];
18002
18003         highways.forEach(function(parent) {
18004             if (parent === way)
18005                 return;
18006
18007             var index = parent.nodes.indexOf(vertex.id);
18008
18009             // backward
18010             if (parent.first() !== vertex.id && parent.tags.oneway !== 'yes') {
18011                 turns.push(withRestriction({
18012                     from: from,
18013                     via: via,
18014                     to: {node: parent.nodes[index - 1], way: parent.id.split(/-(a|b)/)[0]}
18015                 }));
18016             }
18017
18018             // forward
18019             if (parent.last() !== vertex.id && parent.tags.oneway !== '-1') {
18020                 turns.push(withRestriction({
18021                     from: from,
18022                     via: via,
18023                     to: {node: parent.nodes[index + 1], way: parent.id.split(/-(a|b)/)[0]}
18024                 }));
18025             }
18026         });
18027
18028         // U-turn
18029         if (way.tags.oneway !== 'yes' && way.tags.oneway !== '-1') {
18030             turns.push(withRestriction({
18031                 from: from,
18032                 via: via,
18033                 to: from,
18034                 u: true
18035             }));
18036         }
18037
18038         return turns;
18039     };
18040
18041     return intersection;
18042 };
18043
18044
18045 iD.geo.inferRestriction = function(graph, from, via, to, projection) {
18046     var fromWay = graph.entity(from.way),
18047         fromNode = graph.entity(from.node),
18048         toWay = graph.entity(to.way),
18049         toNode = graph.entity(to.node),
18050         viaNode = graph.entity(via.node),
18051         fromOneWay = (fromWay.tags.oneway === 'yes' && fromWay.last() === via.node) ||
18052             (fromWay.tags.oneway === '-1' && fromWay.first() === via.node),
18053         toOneWay = (toWay.tags.oneway === 'yes' && toWay.first() === via.node) ||
18054             (toWay.tags.oneway === '-1' && toWay.last() === via.node),
18055         angle = iD.geo.angle(viaNode, fromNode, projection) -
18056                 iD.geo.angle(viaNode, toNode, projection);
18057
18058     angle = angle * 180 / Math.PI;
18059
18060     while (angle < 0)
18061         angle += 360;
18062
18063     if (fromNode === toNode)
18064         return 'no_u_turn';
18065     if ((angle < 23 || angle > 336) && fromOneWay && toOneWay)
18066         return 'no_u_turn';
18067     if (angle < 158)
18068         return 'no_right_turn';
18069     if (angle > 202)
18070         return 'no_left_turn';
18071
18072     return 'no_straight_on';
18073 };
18074 // For fixing up rendering of multipolygons with tags on the outer member.
18075 // https://github.com/openstreetmap/iD/issues/613
18076 iD.geo.isSimpleMultipolygonOuterMember = function(entity, graph) {
18077     if (entity.type !== 'way')
18078         return false;
18079
18080     var parents = graph.parentRelations(entity);
18081     if (parents.length !== 1)
18082         return false;
18083
18084     var parent = parents[0];
18085     if (!parent.isMultipolygon() || Object.keys(parent.tags).length > 1)
18086         return false;
18087
18088     var members = parent.members, member;
18089     for (var i = 0; i < members.length; i++) {
18090         member = members[i];
18091         if (member.id === entity.id && member.role && member.role !== 'outer')
18092             return false; // Not outer member
18093         if (member.id !== entity.id && (!member.role || member.role === 'outer'))
18094             return false; // Not a simple multipolygon
18095     }
18096
18097     return parent;
18098 };
18099
18100 iD.geo.simpleMultipolygonOuterMember = function(entity, graph) {
18101     if (entity.type !== 'way')
18102         return false;
18103
18104     var parents = graph.parentRelations(entity);
18105     if (parents.length !== 1)
18106         return false;
18107
18108     var parent = parents[0];
18109     if (!parent.isMultipolygon() || Object.keys(parent.tags).length > 1)
18110         return false;
18111
18112     var members = parent.members, member, outerMember;
18113     for (var i = 0; i < members.length; i++) {
18114         member = members[i];
18115         if (!member.role || member.role === 'outer') {
18116             if (outerMember)
18117                 return false; // Not a simple multipolygon
18118             outerMember = member;
18119         }
18120     }
18121
18122     return outerMember && graph.hasEntity(outerMember.id);
18123 };
18124
18125 // Join `array` into sequences of connecting ways.
18126 //
18127 // Segments which share identical start/end nodes will, as much as possible,
18128 // be connected with each other.
18129 //
18130 // The return value is a nested array. Each constituent array contains elements
18131 // of `array` which have been determined to connect. Each consitituent array
18132 // also has a `nodes` property whose value is an ordered array of member nodes,
18133 // with appropriate order reversal and start/end coordinate de-duplication.
18134 //
18135 // Members of `array` must have, at minimum, `type` and `id` properties.
18136 // Thus either an array of `iD.Way`s or a relation member array may be
18137 // used.
18138 //
18139 // If an member has a `tags` property, its tags will be reversed via
18140 // `iD.actions.Reverse` in the output.
18141 //
18142 // Incomplete members (those for which `graph.hasEntity(element.id)` returns
18143 // false) and non-way members are ignored.
18144 //
18145 iD.geo.joinWays = function(array, graph) {
18146     var joined = [], member, current, nodes, first, last, i, how, what;
18147
18148     array = array.filter(function(member) {
18149         return member.type === 'way' && graph.hasEntity(member.id);
18150     });
18151
18152     function resolve(member) {
18153         return graph.childNodes(graph.entity(member.id));
18154     }
18155
18156     function reverse(member) {
18157         return member.tags ? iD.actions.Reverse(member.id)(graph).entity(member.id) : member;
18158     }
18159
18160     while (array.length) {
18161         member = array.shift();
18162         current = [member];
18163         current.nodes = nodes = resolve(member).slice();
18164         joined.push(current);
18165
18166         while (array.length && _.first(nodes) !== _.last(nodes)) {
18167             first = _.first(nodes);
18168             last  = _.last(nodes);
18169
18170             for (i = 0; i < array.length; i++) {
18171                 member = array[i];
18172                 what = resolve(member);
18173
18174                 if (last === _.first(what)) {
18175                     how  = nodes.push;
18176                     what = what.slice(1);
18177                     break;
18178                 } else if (last === _.last(what)) {
18179                     how  = nodes.push;
18180                     what = what.slice(0, -1).reverse();
18181                     member = reverse(member);
18182                     break;
18183                 } else if (first === _.last(what)) {
18184                     how  = nodes.unshift;
18185                     what = what.slice(0, -1);
18186                     break;
18187                 } else if (first === _.first(what)) {
18188                     how  = nodes.unshift;
18189                     what = what.slice(1).reverse();
18190                     member = reverse(member);
18191                     break;
18192                 } else {
18193                     what = how = null;
18194                 }
18195             }
18196
18197             if (!what)
18198                 break; // No more joinable ways.
18199
18200             how.apply(current, [member]);
18201             how.apply(nodes, what);
18202
18203             array.splice(i, 1);
18204         }
18205     }
18206
18207     return joined;
18208 };
18209 /*
18210     Bypasses features of D3's default projection stream pipeline that are unnecessary:
18211     * Antimeridian clipping
18212     * Spherical rotation
18213     * Resampling
18214 */
18215 iD.geo.RawMercator = function () {
18216     var project = d3.geo.mercator.raw,
18217         k = 512 / Math.PI, // scale
18218         x = 0, y = 0, // translate
18219         clipExtent = [[0, 0], [0, 0]];
18220
18221     function projection(point) {
18222         point = project(point[0] * Math.PI / 180, point[1] * Math.PI / 180);
18223         return [point[0] * k + x, y - point[1] * k];
18224     }
18225
18226     projection.invert = function(point) {
18227         point = project.invert((point[0] - x) / k, (y - point[1]) / k);
18228         return point && [point[0] * 180 / Math.PI, point[1] * 180 / Math.PI];
18229     };
18230
18231     projection.scale = function(_) {
18232         if (!arguments.length) return k;
18233         k = +_;
18234         return projection;
18235     };
18236
18237     projection.translate = function(_) {
18238         if (!arguments.length) return [x, y];
18239         x = +_[0];
18240         y = +_[1];
18241         return projection;
18242     };
18243
18244     projection.clipExtent = function(_) {
18245         if (!arguments.length) return clipExtent;
18246         clipExtent = _;
18247         return projection;
18248     };
18249
18250     projection.stream = d3.geo.transform({
18251         point: function(x, y) {
18252             x = projection([x, y]);
18253             this.stream.point(x[0], x[1]);
18254         }
18255     }).stream;
18256
18257     return projection;
18258 };
18259 iD.actions = {};
18260 iD.actions.AddEntity = function(way) {
18261     return function(graph) {
18262         return graph.replace(way);
18263     };
18264 };
18265 iD.actions.AddMember = function(relationId, member, memberIndex) {
18266     return function(graph) {
18267         var relation = graph.entity(relationId);
18268
18269         if (isNaN(memberIndex) && member.type === 'way') {
18270             var members = relation.indexedMembers();
18271             members.push(member);
18272
18273             var joined = iD.geo.joinWays(members, graph);
18274             for (var i = 0; i < joined.length; i++) {
18275                 var segment = joined[i];
18276                 for (var j = 0; j < segment.length && segment.length >= 2; j++) {
18277                     if (segment[j] !== member)
18278                         continue;
18279
18280                     if (j === 0) {
18281                         memberIndex = segment[j + 1].index;
18282                     } else if (j === segment.length - 1) {
18283                         memberIndex = segment[j - 1].index + 1;
18284                     } else {
18285                         memberIndex = Math.min(segment[j - 1].index + 1, segment[j + 1].index + 1);
18286                     }
18287                 }
18288             }
18289         }
18290
18291         return graph.replace(relation.addMember(member, memberIndex));
18292     };
18293 };
18294 iD.actions.AddMidpoint = function(midpoint, node) {
18295     return function(graph) {
18296         graph = graph.replace(node.move(midpoint.loc));
18297
18298         var parents = _.intersection(
18299             graph.parentWays(graph.entity(midpoint.edge[0])),
18300             graph.parentWays(graph.entity(midpoint.edge[1])));
18301
18302         parents.forEach(function(way) {
18303             for (var i = 0; i < way.nodes.length - 1; i++) {
18304                 if (iD.geo.edgeEqual([way.nodes[i], way.nodes[i + 1]], midpoint.edge)) {
18305                     graph = graph.replace(graph.entity(way.id).addNode(node.id, i + 1));
18306
18307                     // Add only one midpoint on doubled-back segments,
18308                     // turning them into self-intersections.
18309                     return;
18310                 }
18311             }
18312         });
18313
18314         return graph;
18315     };
18316 };
18317 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/AddNodeToWayAction.as
18318 iD.actions.AddVertex = function(wayId, nodeId, index) {
18319     return function(graph) {
18320         return graph.replace(graph.entity(wayId).addNode(nodeId, index));
18321     };
18322 };
18323 iD.actions.ChangeMember = function(relationId, member, memberIndex) {
18324     return function(graph) {
18325         return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
18326     };
18327 };
18328 iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
18329     return function(graph) {
18330         var entity = graph.entity(entityId),
18331             geometry = entity.geometry(graph),
18332             tags = entity.tags;
18333
18334         if (oldPreset) tags = oldPreset.removeTags(tags, geometry);
18335         if (newPreset) tags = newPreset.applyTags(tags, geometry);
18336
18337         return graph.replace(entity.update({tags: tags}));
18338     };
18339 };
18340 iD.actions.ChangeTags = function(entityId, tags) {
18341     return function(graph) {
18342         var entity = graph.entity(entityId);
18343         return graph.replace(entity.update({tags: tags}));
18344     };
18345 };
18346 iD.actions.Circularize = function(wayId, projection, maxAngle) {
18347     maxAngle = (maxAngle || 20) * Math.PI / 180;
18348
18349     var action = function(graph) {
18350         var way = graph.entity(wayId);
18351
18352         if (!way.isConvex(graph)) {
18353             graph = action.makeConvex(graph);
18354         }
18355
18356         var nodes = _.uniq(graph.childNodes(way)),
18357             keyNodes = nodes.filter(function(n) { return graph.parentWays(n).length !== 1; }),
18358             points = nodes.map(function(n) { return projection(n.loc); }),
18359             keyPoints = keyNodes.map(function(n) { return projection(n.loc); }),
18360             centroid = (points.length === 2) ? iD.geo.interp(points[0], points[1], 0.5) : d3.geom.polygon(points).centroid(),
18361             radius = d3.median(points, function(p) { return iD.geo.euclideanDistance(centroid, p); }),
18362             sign = d3.geom.polygon(points).area() > 0 ? 1 : -1,
18363             ids;
18364
18365         // we need atleast two key nodes for the algorithm to work
18366         if (!keyNodes.length) {
18367             keyNodes = [nodes[0]];
18368             keyPoints = [points[0]];
18369         }
18370
18371         if (keyNodes.length === 1) {
18372             var index = nodes.indexOf(keyNodes[0]),
18373                 oppositeIndex = Math.floor((index + nodes.length / 2) % nodes.length);
18374
18375             keyNodes.push(nodes[oppositeIndex]);
18376             keyPoints.push(points[oppositeIndex]);
18377         }
18378
18379         // key points and nodes are those connected to the ways,
18380         // they are projected onto the circle, inbetween nodes are moved
18381         // to constant intervals between key nodes, extra inbetween nodes are
18382         // added if necessary.
18383         for (var i = 0; i < keyPoints.length; i++) {
18384             var nextKeyNodeIndex = (i + 1) % keyNodes.length,
18385                 startNode = keyNodes[i],
18386                 endNode = keyNodes[nextKeyNodeIndex],
18387                 startNodeIndex = nodes.indexOf(startNode),
18388                 endNodeIndex = nodes.indexOf(endNode),
18389                 numberNewPoints = -1,
18390                 indexRange = endNodeIndex - startNodeIndex,
18391                 distance, totalAngle, eachAngle, startAngle, endAngle,
18392                 angle, loc, node, j,
18393                 inBetweenNodes = [];
18394
18395             if (indexRange < 0) {
18396                 indexRange += nodes.length;
18397             }
18398
18399             // position this key node
18400             distance = iD.geo.euclideanDistance(centroid, keyPoints[i]);
18401             if (distance === 0) { distance = 1e-4; }
18402             keyPoints[i] = [
18403                 centroid[0] + (keyPoints[i][0] - centroid[0]) / distance * radius,
18404                 centroid[1] + (keyPoints[i][1] - centroid[1]) / distance * radius];
18405             graph = graph.replace(keyNodes[i].move(projection.invert(keyPoints[i])));
18406
18407             // figure out the between delta angle we want to match to
18408             startAngle = Math.atan2(keyPoints[i][1] - centroid[1], keyPoints[i][0] - centroid[0]);
18409             endAngle = Math.atan2(keyPoints[nextKeyNodeIndex][1] - centroid[1], keyPoints[nextKeyNodeIndex][0] - centroid[0]);
18410             totalAngle = endAngle - startAngle;
18411
18412             // detects looping around -pi/pi
18413             if (totalAngle * sign > 0) {
18414                 totalAngle = -sign * (2 * Math.PI - Math.abs(totalAngle));
18415             }
18416
18417             do {
18418                 numberNewPoints++;
18419                 eachAngle = totalAngle / (indexRange + numberNewPoints);
18420             } while (Math.abs(eachAngle) > maxAngle);
18421
18422             // move existing points
18423             for (j = 1; j < indexRange; j++) {
18424                 angle = startAngle + j * eachAngle;
18425                 loc = projection.invert([
18426                     centroid[0] + Math.cos(angle)*radius,
18427                     centroid[1] + Math.sin(angle)*radius]);
18428
18429                 node = nodes[(j + startNodeIndex) % nodes.length].move(loc);
18430                 graph = graph.replace(node);
18431             }
18432
18433             // add new inbetween nodes if necessary
18434             for (j = 0; j < numberNewPoints; j++) {
18435                 angle = startAngle + (indexRange + j) * eachAngle;
18436                 loc = projection.invert([
18437                     centroid[0] + Math.cos(angle) * radius,
18438                     centroid[1] + Math.sin(angle) * radius]);
18439
18440                 node = iD.Node({loc: loc});
18441                 graph = graph.replace(node);
18442
18443                 nodes.splice(endNodeIndex + j, 0, node);
18444                 inBetweenNodes.push(node.id);
18445             }
18446
18447             // Check for other ways that share these keyNodes..
18448             // If keyNodes are adjacent in both ways,
18449             // we can add inBetween nodes to that shared way too..
18450             if (indexRange === 1 && inBetweenNodes.length) {
18451                 var startIndex1 = way.nodes.lastIndexOf(startNode.id),
18452                     endIndex1 = way.nodes.lastIndexOf(endNode.id),
18453                     wayDirection1 = (endIndex1 - startIndex1);
18454                 if (wayDirection1 < -1) { wayDirection1 = 1;}
18455
18456                 /*jshint -W083 */
18457                 _.each(_.without(graph.parentWays(keyNodes[i]), way), function(sharedWay) {
18458                     if (sharedWay.areAdjacent(startNode.id, endNode.id)) {
18459                         var startIndex2 = sharedWay.nodes.lastIndexOf(startNode.id),
18460                             endIndex2 = sharedWay.nodes.lastIndexOf(endNode.id),
18461                             wayDirection2 = (endIndex2 - startIndex2),
18462                             insertAt = endIndex2;
18463                         if (wayDirection2 < -1) { wayDirection2 = 1;}
18464
18465                         if (wayDirection1 !== wayDirection2) {
18466                             inBetweenNodes.reverse();
18467                             insertAt = startIndex2;
18468                         }
18469                         for (j = 0; j < inBetweenNodes.length; j++) {
18470                             sharedWay = sharedWay.addNode(inBetweenNodes[j], insertAt + j);
18471                         }
18472                         graph = graph.replace(sharedWay);
18473                     }
18474                 });
18475                 /*jshint +W083 */
18476             }
18477
18478         }
18479
18480         // update the way to have all the new nodes
18481         ids = nodes.map(function(n) { return n.id; });
18482         ids.push(ids[0]);
18483
18484         way = way.update({nodes: ids});
18485         graph = graph.replace(way);
18486
18487         return graph;
18488     };
18489
18490     action.makeConvex = function(graph) {
18491         var way = graph.entity(wayId),
18492             nodes = _.uniq(graph.childNodes(way)),
18493             points = nodes.map(function(n) { return projection(n.loc); }),
18494             sign = d3.geom.polygon(points).area() > 0 ? 1 : -1,
18495             hull = d3.geom.hull(points);
18496
18497         // D3 convex hulls go counterclockwise..
18498         if (sign === -1) {
18499             nodes.reverse();
18500             points.reverse();
18501         }
18502
18503         for (var i = 0; i < hull.length - 1; i++) {
18504             var startIndex = points.indexOf(hull[i]),
18505                 endIndex = points.indexOf(hull[i+1]),
18506                 indexRange = (endIndex - startIndex);
18507
18508             if (indexRange < 0) {
18509                 indexRange += nodes.length;
18510             }
18511
18512             // move interior nodes to the surface of the convex hull..
18513             for (var j = 1; j < indexRange; j++) {
18514                 var point = iD.geo.interp(hull[i], hull[i+1], j / indexRange),
18515                     node = nodes[(j + startIndex) % nodes.length].move(projection.invert(point));
18516                 graph = graph.replace(node);
18517             }
18518         }
18519         return graph;
18520     };
18521
18522     action.disabled = function(graph) {
18523         if (!graph.entity(wayId).isClosed())
18524             return 'not_closed';
18525     };
18526
18527     return action;
18528 };
18529 // Connect the ways at the given nodes.
18530 //
18531 // The last node will survive. All other nodes will be replaced with
18532 // the surviving node in parent ways, and then removed.
18533 //
18534 // Tags and relation memberships of of non-surviving nodes are merged
18535 // to the survivor.
18536 //
18537 // This is the inverse of `iD.actions.Disconnect`.
18538 //
18539 // Reference:
18540 //   https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MergeNodesAction.as
18541 //   https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/MergeNodesAction.java
18542 //
18543 iD.actions.Connect = function(nodeIds) {
18544     return function(graph) {
18545         var survivor = graph.entity(_.last(nodeIds));
18546
18547         for (var i = 0; i < nodeIds.length - 1; i++) {
18548             var node = graph.entity(nodeIds[i]);
18549
18550             /*jshint -W083 */
18551             graph.parentWays(node).forEach(function(parent) {
18552                 if (!parent.areAdjacent(node.id, survivor.id)) {
18553                     graph = graph.replace(parent.replaceNode(node.id, survivor.id));
18554                 }
18555             });
18556
18557             graph.parentRelations(node).forEach(function(parent) {
18558                 graph = graph.replace(parent.replaceMember(node, survivor));
18559             });
18560             /*jshint +W083 */
18561
18562             survivor = survivor.mergeTags(node.tags);
18563             graph = iD.actions.DeleteNode(node.id)(graph);
18564         }
18565
18566         graph = graph.replace(survivor);
18567
18568         return graph;
18569     };
18570 };
18571 iD.actions.CopyEntity = function(id, fromGraph, deep) {
18572     var newEntities = [];
18573
18574     var action = function(graph) {
18575         var entity = fromGraph.entity(id);
18576
18577         newEntities = entity.copy(deep, fromGraph);
18578
18579         for (var i = 0; i < newEntities.length; i++) {
18580             graph = graph.replace(newEntities[i]);
18581         }
18582
18583         return graph;
18584     };
18585
18586     action.newEntities = function() {
18587         return newEntities;
18588     };
18589
18590     return action;
18591 };
18592 iD.actions.DeleteMember = function(relationId, memberIndex) {
18593     return function(graph) {
18594         var relation = graph.entity(relationId)
18595             .removeMember(memberIndex);
18596
18597         graph = graph.replace(relation);
18598
18599         if (relation.isDegenerate())
18600             graph = iD.actions.DeleteRelation(relation.id)(graph);
18601
18602         return graph;
18603     };
18604 };
18605 iD.actions.DeleteMultiple = function(ids) {
18606     var actions = {
18607         way: iD.actions.DeleteWay,
18608         node: iD.actions.DeleteNode,
18609         relation: iD.actions.DeleteRelation
18610     };
18611
18612     var action = function(graph) {
18613         ids.forEach(function(id) {
18614             if (graph.hasEntity(id)) { // It may have been deleted aready.
18615                 graph = actions[graph.entity(id).type](id)(graph);
18616             }
18617         });
18618
18619         return graph;
18620     };
18621
18622     action.disabled = function(graph) {
18623         for (var i = 0; i < ids.length; i++) {
18624             var id = ids[i],
18625                 disabled = actions[graph.entity(id).type](id).disabled(graph);
18626             if (disabled) return disabled;
18627         }
18628     };
18629
18630     return action;
18631 };
18632 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteNodeAction.as
18633 iD.actions.DeleteNode = function(nodeId) {
18634     var action = function(graph) {
18635         var node = graph.entity(nodeId);
18636
18637         graph.parentWays(node)
18638             .forEach(function(parent) {
18639                 parent = parent.removeNode(nodeId);
18640                 graph = graph.replace(parent);
18641
18642                 if (parent.isDegenerate()) {
18643                     graph = iD.actions.DeleteWay(parent.id)(graph);
18644                 }
18645             });
18646
18647         graph.parentRelations(node)
18648             .forEach(function(parent) {
18649                 parent = parent.removeMembersWithID(nodeId);
18650                 graph = graph.replace(parent);
18651
18652                 if (parent.isDegenerate()) {
18653                     graph = iD.actions.DeleteRelation(parent.id)(graph);
18654                 }
18655             });
18656
18657         return graph.remove(node);
18658     };
18659
18660     action.disabled = function() {
18661         return false;
18662     };
18663
18664     return action;
18665 };
18666 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteRelationAction.as
18667 iD.actions.DeleteRelation = function(relationId) {
18668     function deleteEntity(entity, graph) {
18669         return !graph.parentWays(entity).length &&
18670             !graph.parentRelations(entity).length &&
18671             !entity.hasInterestingTags();
18672     }
18673
18674     var action = function(graph) {
18675         var relation = graph.entity(relationId);
18676
18677         graph.parentRelations(relation)
18678             .forEach(function(parent) {
18679                 parent = parent.removeMembersWithID(relationId);
18680                 graph = graph.replace(parent);
18681
18682                 if (parent.isDegenerate()) {
18683                     graph = iD.actions.DeleteRelation(parent.id)(graph);
18684                 }
18685             });
18686
18687         _.uniq(_.pluck(relation.members, 'id')).forEach(function(memberId) {
18688             graph = graph.replace(relation.removeMembersWithID(memberId));
18689
18690             var entity = graph.entity(memberId);
18691             if (deleteEntity(entity, graph)) {
18692                 graph = iD.actions.DeleteMultiple([memberId])(graph);
18693             }
18694         });
18695
18696         return graph.remove(relation);
18697     };
18698
18699     action.disabled = function(graph) {
18700         if (!graph.entity(relationId).isComplete(graph))
18701             return 'incomplete_relation';
18702     };
18703
18704     return action;
18705 };
18706 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/DeleteWayAction.as
18707 iD.actions.DeleteWay = function(wayId) {
18708     function deleteNode(node, graph) {
18709         return !graph.parentWays(node).length &&
18710             !graph.parentRelations(node).length &&
18711             !node.hasInterestingTags();
18712     }
18713
18714     var action = function(graph) {
18715         var way = graph.entity(wayId);
18716
18717         graph.parentRelations(way)
18718             .forEach(function(parent) {
18719                 parent = parent.removeMembersWithID(wayId);
18720                 graph = graph.replace(parent);
18721
18722                 if (parent.isDegenerate()) {
18723                     graph = iD.actions.DeleteRelation(parent.id)(graph);
18724                 }
18725             });
18726
18727         _.uniq(way.nodes).forEach(function(nodeId) {
18728             graph = graph.replace(way.removeNode(nodeId));
18729
18730             var node = graph.entity(nodeId);
18731             if (deleteNode(node, graph)) {
18732                 graph = graph.remove(node);
18733             }
18734         });
18735
18736         return graph.remove(way);
18737     };
18738
18739     action.disabled = function(graph) {
18740         var disabled = false;
18741
18742         graph.parentRelations(graph.entity(wayId)).forEach(function(parent) {
18743             var type = parent.tags.type,
18744                 role = parent.memberById(wayId).role || 'outer';
18745             if (type === 'route' || type === 'boundary' || (type === 'multipolygon' && role === 'outer')) {
18746                 disabled = 'part_of_relation';
18747             }
18748         });
18749
18750         return disabled;
18751     };
18752
18753     return action;
18754 };
18755 iD.actions.DeprecateTags = function(entityId) {
18756     return function(graph) {
18757         var entity = graph.entity(entityId),
18758             newtags = _.clone(entity.tags),
18759             change = false,
18760             rule;
18761
18762         // This handles deprecated tags with a single condition
18763         for (var i = 0; i < iD.data.deprecated.length; i++) {
18764
18765             rule = iD.data.deprecated[i];
18766             var match = _.pairs(rule.old)[0],
18767                 replacements = rule.replace ? _.pairs(rule.replace) : null;
18768
18769             if (entity.tags[match[0]] && match[1] === '*') {
18770
18771                 var value = entity.tags[match[0]];
18772                 if (replacements && !newtags[replacements[0][0]]) {
18773                     newtags[replacements[0][0]] = value;
18774                 }
18775                 delete newtags[match[0]];
18776                 change = true;
18777
18778             } else if (entity.tags[match[0]] === match[1]) {
18779                 newtags = _.assign({}, rule.replace || {}, _.omit(newtags, match[0]));
18780                 change = true;
18781             }
18782         }
18783
18784         if (change) {
18785             return graph.replace(entity.update({tags: newtags}));
18786         } else {
18787             return graph;
18788         }
18789     };
18790 };
18791 iD.actions.DiscardTags = function(difference) {
18792     return function(graph) {
18793         function discardTags(entity) {
18794             if (!_.isEmpty(entity.tags)) {
18795                 var tags = {};
18796                 _.each(entity.tags, function(v, k) {
18797                     if (v) tags[k] = v;
18798                 });
18799
18800                 graph = graph.replace(entity.update({
18801                     tags: _.omit(tags, iD.data.discarded)
18802                 }));
18803             }
18804         }
18805
18806         difference.modified().forEach(discardTags);
18807         difference.created().forEach(discardTags);
18808
18809         return graph;
18810     };
18811 };
18812 // Disconect the ways at the given node.
18813 //
18814 // Optionally, disconnect only the given ways.
18815 //
18816 // For testing convenience, accepts an ID to assign to the (first) new node.
18817 // Normally, this will be undefined and the way will automatically
18818 // be assigned a new ID.
18819 //
18820 // This is the inverse of `iD.actions.Connect`.
18821 //
18822 // Reference:
18823 //   https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/UnjoinNodeAction.as
18824 //   https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/UnGlueAction.java
18825 //
18826 iD.actions.Disconnect = function(nodeId, newNodeId) {
18827     var wayIds;
18828
18829     var action = function(graph) {
18830         var node = graph.entity(nodeId),
18831             connections = action.connections(graph);
18832
18833         connections.forEach(function(connection) {
18834             var way = graph.entity(connection.wayID),
18835                 newNode = iD.Node({id: newNodeId, loc: node.loc, tags: node.tags});
18836
18837             graph = graph.replace(newNode);
18838             if (connection.index === 0 && way.isArea()) {
18839                 // replace shared node with shared node..
18840                 graph = graph.replace(way.replaceNode(way.nodes[0], newNode.id));
18841             } else {
18842                 // replace shared node with multiple new nodes..
18843                 graph = graph.replace(way.updateNode(newNode.id, connection.index));
18844             }
18845         });
18846
18847         return graph;
18848     };
18849
18850     action.connections = function(graph) {
18851         var candidates = [],
18852             keeping = false,
18853             parentWays = graph.parentWays(graph.entity(nodeId));
18854
18855         parentWays.forEach(function(way) {
18856             if (wayIds && wayIds.indexOf(way.id) === -1) {
18857                 keeping = true;
18858                 return;
18859             }
18860             if (way.isArea() && (way.nodes[0] === nodeId)) {
18861                 candidates.push({wayID: way.id, index: 0});
18862             } else {
18863                 way.nodes.forEach(function(waynode, index) {
18864                     if (waynode === nodeId) {
18865                         candidates.push({wayID: way.id, index: index});
18866                     }
18867                 });
18868             }
18869         });
18870
18871         return keeping ? candidates : candidates.slice(1);
18872     };
18873
18874     action.disabled = function(graph) {
18875         var connections = action.connections(graph);
18876         if (connections.length === 0 || (wayIds && wayIds.length !== connections.length))
18877             return 'not_connected';
18878     };
18879
18880     action.limitWays = function(_) {
18881         if (!arguments.length) return wayIds;
18882         wayIds = _;
18883         return action;
18884     };
18885
18886     return action;
18887 };
18888 // Join ways at the end node they share.
18889 //
18890 // This is the inverse of `iD.actions.Split`.
18891 //
18892 // Reference:
18893 //   https://github.com/systemed/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MergeWaysAction.as
18894 //   https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/actions/CombineWayAction.java
18895 //
18896 iD.actions.Join = function(ids) {
18897
18898     function groupEntitiesByGeometry(graph) {
18899         var entities = ids.map(function(id) { return graph.entity(id); });
18900         return _.extend({line: []}, _.groupBy(entities, function(entity) { return entity.geometry(graph); }));
18901     }
18902
18903     var action = function(graph) {
18904         var ways = ids.map(graph.entity, graph),
18905             survivor = ways[0];
18906
18907         // Prefer to keep an existing way.
18908         for (var i = 0; i < ways.length; i++) {
18909             if (!ways[i].isNew()) {
18910                 survivor = ways[i];
18911                 break;
18912             }
18913         }
18914
18915         var joined = iD.geo.joinWays(ways, graph)[0];
18916
18917         survivor = survivor.update({nodes: _.pluck(joined.nodes, 'id')});
18918         graph = graph.replace(survivor);
18919
18920         joined.forEach(function(way) {
18921             if (way.id === survivor.id)
18922                 return;
18923
18924             graph.parentRelations(way).forEach(function(parent) {
18925                 graph = graph.replace(parent.replaceMember(way, survivor));
18926             });
18927
18928             survivor = survivor.mergeTags(way.tags);
18929
18930             graph = graph.replace(survivor);
18931             graph = iD.actions.DeleteWay(way.id)(graph);
18932         });
18933
18934         return graph;
18935     };
18936
18937     action.disabled = function(graph) {
18938         var geometries = groupEntitiesByGeometry(graph);
18939         if (ids.length < 2 || ids.length !== geometries.line.length)
18940             return 'not_eligible';
18941
18942         var joined = iD.geo.joinWays(ids.map(graph.entity, graph), graph);
18943         if (joined.length > 1)
18944             return 'not_adjacent';
18945
18946         var nodeIds = _.pluck(joined[0].nodes, 'id').slice(1, -1),
18947             relation;
18948
18949         joined[0].forEach(function(way) {
18950             var parents = graph.parentRelations(way);
18951             parents.forEach(function(parent) {
18952                 if (parent.isRestriction() && parent.members.some(function(m) { return nodeIds.indexOf(m.id) >= 0; }))
18953                     relation = parent;
18954             });
18955         });
18956
18957         if (relation)
18958             return 'restriction';
18959     };
18960
18961     return action;
18962 };
18963 iD.actions.Merge = function(ids) {
18964     function groupEntitiesByGeometry(graph) {
18965         var entities = ids.map(function(id) { return graph.entity(id); });
18966         return _.extend({point: [], area: [], line: [], relation: []},
18967             _.groupBy(entities, function(entity) { return entity.geometry(graph); }));
18968     }
18969
18970     var action = function(graph) {
18971         var geometries = groupEntitiesByGeometry(graph),
18972             target = geometries.area[0] || geometries.line[0],
18973             points = geometries.point;
18974
18975         points.forEach(function(point) {
18976             target = target.mergeTags(point.tags);
18977
18978             graph.parentRelations(point).forEach(function(parent) {
18979                 graph = graph.replace(parent.replaceMember(point, target));
18980             });
18981
18982             graph = graph.remove(point);
18983         });
18984
18985         graph = graph.replace(target);
18986
18987         return graph;
18988     };
18989
18990     action.disabled = function(graph) {
18991         var geometries = groupEntitiesByGeometry(graph);
18992         if (geometries.point.length === 0 ||
18993             (geometries.area.length + geometries.line.length) !== 1 ||
18994             geometries.relation.length !== 0)
18995             return 'not_eligible';
18996     };
18997
18998     return action;
18999 };
19000 iD.actions.MergePolygon = function(ids, newRelationId) {
19001
19002     function groupEntities(graph) {
19003         var entities = ids.map(function (id) { return graph.entity(id); });
19004         return _.extend({
19005                 closedWay: [],
19006                 multipolygon: [],
19007                 other: []
19008             }, _.groupBy(entities, function(entity) {
19009                 if (entity.type === 'way' && entity.isClosed()) {
19010                     return 'closedWay';
19011                 } else if (entity.type === 'relation' && entity.isMultipolygon()) {
19012                     return 'multipolygon';
19013                 } else {
19014                     return 'other';
19015                 }
19016             }));
19017     }
19018
19019     var action = function(graph) {
19020         var entities = groupEntities(graph);
19021
19022         // An array representing all the polygons that are part of the multipolygon.
19023         //
19024         // Each element is itself an array of objects with an id property, and has a
19025         // locs property which is an array of the locations forming the polygon.
19026         var polygons = entities.multipolygon.reduce(function(polygons, m) {
19027             return polygons.concat(iD.geo.joinWays(m.members, graph));
19028         }, []).concat(entities.closedWay.map(function(d) {
19029             var member = [{id: d.id}];
19030             member.nodes = graph.childNodes(d);
19031             return member;
19032         }));
19033
19034         // contained is an array of arrays of boolean values,
19035         // where contained[j][k] is true iff the jth way is
19036         // contained by the kth way.
19037         var contained = polygons.map(function(w, i) {
19038             return polygons.map(function(d, n) {
19039                 if (i === n) return null;
19040                 return iD.geo.polygonContainsPolygon(
19041                     _.pluck(d.nodes, 'loc'),
19042                     _.pluck(w.nodes, 'loc'));
19043             });
19044         });
19045
19046         // Sort all polygons as either outer or inner ways
19047         var members = [],
19048             outer = true;
19049
19050         while (polygons.length) {
19051             extractUncontained(polygons);
19052             polygons = polygons.filter(isContained);
19053             contained = contained.filter(isContained).map(filterContained);
19054         }
19055
19056         function isContained(d, i) {
19057             return _.any(contained[i]);
19058         }
19059
19060         function filterContained(d) {
19061             return d.filter(isContained);
19062         }
19063
19064         function extractUncontained(polygons) {
19065             polygons.forEach(function(d, i) {
19066                 if (!isContained(d, i)) {
19067                     d.forEach(function(member) {
19068                         members.push({
19069                             type: 'way',
19070                             id: member.id,
19071                             role: outer ? 'outer' : 'inner'
19072                         });
19073                     });
19074                 }
19075             });
19076             outer = !outer;
19077         }
19078
19079         // Move all tags to one relation
19080         var relation = entities.multipolygon[0] ||
19081             iD.Relation({ id: newRelationId, tags: { type: 'multipolygon' }});
19082
19083         entities.multipolygon.slice(1).forEach(function(m) {
19084             relation = relation.mergeTags(m.tags);
19085             graph = graph.remove(m);
19086         });
19087
19088         entities.closedWay.forEach(function(way) {
19089             function isThisOuter(m) {
19090                 return m.id === way.id && m.role !== 'inner';
19091             }
19092             if (members.some(isThisOuter)) {
19093                 relation = relation.mergeTags(way.tags);
19094                 graph = graph.replace(way.update({ tags: {} }));
19095             }
19096         });
19097
19098         return graph.replace(relation.update({
19099             members: members,
19100             tags: _.omit(relation.tags, 'area')
19101         }));
19102     };
19103
19104     action.disabled = function(graph) {
19105         var entities = groupEntities(graph);
19106         if (entities.other.length > 0 ||
19107             entities.closedWay.length + entities.multipolygon.length < 2)
19108             return 'not_eligible';
19109         if (!entities.multipolygon.every(function(r) { return r.isComplete(graph); }))
19110             return 'incomplete_relation';
19111     };
19112
19113     return action;
19114 };
19115 iD.actions.MergeRemoteChanges = function(id, localGraph, remoteGraph, formatUser) {
19116     var option = 'safe',  // 'safe', 'force_local', 'force_remote'
19117         conflicts = [];
19118
19119     function user(d) {
19120         return _.isFunction(formatUser) ? formatUser(d) : d;
19121     }
19122
19123
19124     function mergeLocation(remote, target) {
19125         function pointEqual(a, b) {
19126             var epsilon = 1e-6;
19127             return (Math.abs(a[0] - b[0]) < epsilon) && (Math.abs(a[1] - b[1]) < epsilon);
19128         }
19129
19130         if (option === 'force_local' || pointEqual(target.loc, remote.loc)) {
19131             return target;
19132         }
19133         if (option === 'force_remote') {
19134             return target.update({loc: remote.loc});
19135         }
19136
19137         conflicts.push(t('merge_remote_changes.conflict.location', { user: user(remote.user) }));
19138         return target;
19139     }
19140
19141
19142     function mergeNodes(base, remote, target) {
19143         if (option === 'force_local' || _.isEqual(target.nodes, remote.nodes)) {
19144             return target;
19145         }
19146         if (option === 'force_remote') {
19147             return target.update({nodes: remote.nodes});
19148         }
19149
19150         var ccount = conflicts.length,
19151             o = base.nodes || [],
19152             a = target.nodes || [],
19153             b = remote.nodes || [],
19154             nodes = [],
19155             hunks = Diff3.diff3_merge(a, o, b, true);
19156
19157         for (var i = 0; i < hunks.length; i++) {
19158             var hunk = hunks[i];
19159             if (hunk.ok) {
19160                 nodes.push.apply(nodes, hunk.ok);
19161             } else {
19162                 // for all conflicts, we can assume c.a !== c.b
19163                 // because `diff3_merge` called with `true` option to exclude false conflicts..
19164                 var c = hunk.conflict;
19165                 if (_.isEqual(c.o, c.a)) {  // only changed remotely
19166                     nodes.push.apply(nodes, c.b);
19167                 } else if (_.isEqual(c.o, c.b)) {  // only changed locally
19168                     nodes.push.apply(nodes, c.a);
19169                 } else {       // changed both locally and remotely
19170                     conflicts.push(t('merge_remote_changes.conflict.nodelist', { user: user(remote.user) }));
19171                     break;
19172                 }
19173             }
19174         }
19175
19176         return (conflicts.length === ccount) ? target.update({nodes: nodes}) : target;
19177     }
19178
19179
19180     function mergeChildren(targetWay, children, updates, graph) {
19181         function isUsed(node, targetWay) {
19182             var parentWays = _.pluck(graph.parentWays(node), 'id');
19183             return node.hasInterestingTags() ||
19184                 _.without(parentWays, targetWay.id).length > 0 ||
19185                 graph.parentRelations(node).length > 0;
19186         }
19187
19188         var ccount = conflicts.length;
19189
19190         for (var i = 0; i < children.length; i++) {
19191             var id = children[i],
19192                 node = graph.hasEntity(id);
19193
19194             // remove unused childNodes..
19195             if (targetWay.nodes.indexOf(id) === -1) {
19196                 if (node && !isUsed(node, targetWay)) {
19197                     updates.removeIds.push(id);
19198                 }
19199                 continue;
19200             }
19201
19202             // restore used childNodes..
19203             var local = localGraph.hasEntity(id),
19204                 remote = remoteGraph.hasEntity(id),
19205                 target;
19206
19207             if (option === 'force_remote' && remote && remote.visible) {
19208                 updates.replacements.push(remote);
19209
19210             } else if (option === 'force_local' && local) {
19211                 target = iD.Entity(local);
19212                 if (remote && remote.visible) {
19213                     target = target.update({ version: remote.version });
19214                 }
19215                 updates.replacements.push(target);
19216
19217             } else if (option === 'safe' && local && remote) {
19218                 target = iD.Entity(local, { version: remote.version });
19219                 if (remote.visible) {
19220                     target = mergeLocation(remote, target);
19221                 } else {
19222                     conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) }));
19223                 }
19224
19225                 if (conflicts.length !== ccount) break;
19226                 updates.replacements.push(target);
19227             }
19228         }
19229
19230         return targetWay;
19231     }
19232
19233
19234     function updateChildren(updates, graph) {
19235         for (var i = 0; i < updates.replacements.length; i++) {
19236             graph = graph.replace(updates.replacements[i]);
19237         }
19238         if (updates.removeIds.length) {
19239             graph = iD.actions.DeleteMultiple(updates.removeIds)(graph);
19240         }
19241         return graph;
19242     }
19243
19244
19245     function mergeMembers(remote, target) {
19246         if (option === 'force_local' || _.isEqual(target.members, remote.members)) {
19247             return target;
19248         }
19249         if (option === 'force_remote') {
19250             return target.update({members: remote.members});
19251         }
19252
19253         conflicts.push(t('merge_remote_changes.conflict.memberlist', { user: user(remote.user) }));
19254         return target;
19255     }
19256
19257
19258     function mergeTags(base, remote, target) {
19259         function ignoreKey(k) {
19260             return _.contains(iD.data.discarded, k);
19261         }
19262
19263         if (option === 'force_local' || _.isEqual(target.tags, remote.tags)) {
19264             return target;
19265         }
19266         if (option === 'force_remote') {
19267             return target.update({tags: remote.tags});
19268         }
19269
19270         var ccount = conflicts.length,
19271             o = base.tags || {},
19272             a = target.tags || {},
19273             b = remote.tags || {},
19274             keys = _.reject(_.union(_.keys(o), _.keys(a), _.keys(b)), ignoreKey),
19275             tags = _.clone(a),
19276             changed = false;
19277
19278         for (var i = 0; i < keys.length; i++) {
19279             var k = keys[i];
19280
19281             if (o[k] !== b[k] && a[k] !== b[k]) {    // changed remotely..
19282                 if (o[k] !== a[k]) {      // changed locally..
19283                     conflicts.push(t('merge_remote_changes.conflict.tags',
19284                         { tag: k, local: a[k], remote: b[k], user: user(remote.user) }));
19285
19286                 } else {                  // unchanged locally, accept remote change..
19287                     if (b.hasOwnProperty(k)) {
19288                         tags[k] = b[k];
19289                     } else {
19290                         delete tags[k];
19291                     }
19292                     changed = true;
19293                 }
19294             }
19295         }
19296
19297         return (changed && conflicts.length === ccount) ? target.update({tags: tags}) : target;
19298     }
19299
19300
19301     //  `graph.base()` is the common ancestor of the two graphs.
19302     //  `localGraph` contains user's edits up to saving
19303     //  `remoteGraph` contains remote edits to modified nodes
19304     //  `graph` must be a descendent of `localGraph` and may include
19305     //      some conflict resolution actions performed on it.
19306     //
19307     //                  --- ... --- `localGraph` -- ... -- `graph`
19308     //                 /
19309     //  `graph.base()` --- ... --- `remoteGraph`
19310     //
19311     var action = function(graph) {
19312         var updates = { replacements: [], removeIds: [] },
19313             base = graph.base().entities[id],
19314             local = localGraph.entity(id),
19315             remote = remoteGraph.entity(id),
19316             target = iD.Entity(local, { version: remote.version });
19317
19318         // delete/undelete
19319         if (!remote.visible) {
19320             if (option === 'force_remote') {
19321                 return iD.actions.DeleteMultiple([id])(graph);
19322
19323             } else if (option === 'force_local') {
19324                 if (target.type === 'way') {
19325                     target = mergeChildren(target, _.uniq(local.nodes), updates, graph);
19326                     graph = updateChildren(updates, graph);
19327                 }
19328                 return graph.replace(target);
19329
19330             } else {
19331                 conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) }));
19332                 return graph;  // do nothing
19333             }
19334         }
19335
19336         // merge
19337         if (target.type === 'node') {
19338             target = mergeLocation(remote, target);
19339
19340         } else if (target.type === 'way') {
19341             // pull in any child nodes that may not be present locally..
19342             graph.rebase(remoteGraph.childNodes(remote), [graph], false);
19343             target = mergeNodes(base, remote, target);
19344             target = mergeChildren(target, _.union(local.nodes, remote.nodes), updates, graph);
19345
19346         } else if (target.type === 'relation') {
19347             target = mergeMembers(remote, target);
19348         }
19349
19350         target = mergeTags(base, remote, target);
19351
19352         if (!conflicts.length) {
19353             graph = updateChildren(updates, graph).replace(target);
19354         }
19355
19356         return graph;
19357     };
19358
19359     action.withOption = function(opt) {
19360         option = opt;
19361         return action;
19362     };
19363
19364     action.conflicts = function() {
19365         return conflicts;
19366     };
19367
19368     return action;
19369 };
19370 // https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/command/MoveCommand.java
19371 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MoveNodeAction.as
19372 iD.actions.Move = function(moveIds, tryDelta, projection, cache) {
19373     var delta = tryDelta;
19374
19375     function vecAdd(a, b) { return [a[0] + b[0], a[1] + b[1]]; }
19376     function vecSub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }
19377
19378     function setupCache(graph) {
19379         function canMove(nodeId) {
19380             var parents = _.pluck(graph.parentWays(graph.entity(nodeId)), 'id');
19381             if (parents.length < 3) return true;
19382
19383             // Don't move a vertex where >2 ways meet, unless all parentWays are moving too..
19384             var parentsMoving = _.all(parents, function(id) { return cache.moving[id]; });
19385             if (!parentsMoving) delete cache.moving[nodeId];
19386
19387             return parentsMoving;
19388         }
19389
19390         function cacheEntities(ids) {
19391             _.each(ids, function(id) {
19392                 if (cache.moving[id]) return;
19393                 cache.moving[id] = true;
19394
19395                 var entity = graph.hasEntity(id);
19396                 if (!entity) return;
19397
19398                 if (entity.type === 'node') {
19399                     cache.nodes.push(id);
19400                     cache.startLoc[id] = entity.loc;
19401                 } else if (entity.type === 'way') {
19402                     cache.ways.push(id);
19403                     cacheEntities(entity.nodes);
19404                 } else {
19405                     cacheEntities(_.pluck(entity.members, 'id'));
19406                 }
19407             });
19408         }
19409
19410         function cacheIntersections(ids) {
19411             function isEndpoint(way, id) { return !way.isClosed() && !!way.affix(id); }
19412
19413             _.each(ids, function(id) {
19414                 // consider only intersections with 1 moved and 1 unmoved way.
19415                 _.each(graph.childNodes(graph.entity(id)), function(node) {
19416                     var parents = graph.parentWays(node);
19417                     if (parents.length !== 2) return;
19418
19419                     var moved = graph.entity(id),
19420                         unmoved = _.find(parents, function(way) { return !cache.moving[way.id]; });
19421                     if (!unmoved) return;
19422
19423                     // exclude ways that are overly connected..
19424                     if (_.intersection(moved.nodes, unmoved.nodes).length > 2) return;
19425
19426                     if (moved.isArea() || unmoved.isArea()) return;
19427
19428                     cache.intersection[node.id] = {
19429                         nodeId: node.id,
19430                         movedId: moved.id,
19431                         unmovedId: unmoved.id,
19432                         movedIsEP: isEndpoint(moved, node.id),
19433                         unmovedIsEP: isEndpoint(unmoved, node.id)
19434                     };
19435                 });
19436             });
19437         }
19438
19439
19440         if (!cache) {
19441             cache = {};
19442         }
19443         if (!cache.ok) {
19444             cache.moving = {};
19445             cache.intersection = {};
19446             cache.replacedVertex = {};
19447             cache.startLoc = {};
19448             cache.nodes = [];
19449             cache.ways = [];
19450
19451             cacheEntities(moveIds);
19452             cacheIntersections(cache.ways);
19453             cache.nodes = _.filter(cache.nodes, canMove);
19454
19455             cache.ok = true;
19456         }
19457     }
19458
19459
19460     // Place a vertex where the moved vertex used to be, to preserve way shape..
19461     function replaceMovedVertex(nodeId, wayId, graph, delta) {
19462         var way = graph.entity(wayId),
19463             moved = graph.entity(nodeId),
19464             movedIndex = way.nodes.indexOf(nodeId),
19465             len, prevIndex, nextIndex;
19466
19467         if (way.isClosed()) {
19468             len = way.nodes.length - 1;
19469             prevIndex = (movedIndex + len - 1) % len;
19470             nextIndex = (movedIndex + len + 1) % len;
19471         } else {
19472             len = way.nodes.length;
19473             prevIndex = movedIndex - 1;
19474             nextIndex = movedIndex + 1;
19475         }
19476
19477         var prev = graph.hasEntity(way.nodes[prevIndex]),
19478             next = graph.hasEntity(way.nodes[nextIndex]);
19479
19480         // Don't add orig vertex at endpoint..
19481         if (!prev || !next) return graph;
19482
19483         var key = wayId + '_' + nodeId,
19484             orig = cache.replacedVertex[key];
19485         if (!orig) {
19486             orig = iD.Node();
19487             cache.replacedVertex[key] = orig;
19488             cache.startLoc[orig.id] = cache.startLoc[nodeId];
19489         }
19490
19491         var start, end;
19492         if (delta) {
19493             start = projection(cache.startLoc[nodeId]);
19494             end = projection.invert(vecAdd(start, delta));
19495         } else {
19496             end = cache.startLoc[nodeId];
19497         }
19498         orig = orig.move(end);
19499
19500         var angle = Math.abs(iD.geo.angle(orig, prev, projection) -
19501                 iD.geo.angle(orig, next, projection)) * 180 / Math.PI;
19502
19503         // Don't add orig vertex if it would just make a straight line..
19504         if (angle > 175 && angle < 185) return graph;
19505
19506         // Don't add orig vertex if another point is already nearby (within 10m)
19507         if (iD.geo.sphericalDistance(prev.loc, orig.loc) < 10 ||
19508             iD.geo.sphericalDistance(orig.loc, next.loc) < 10) return graph;
19509
19510         // moving forward or backward along way?
19511         var p1 = [prev.loc, orig.loc, moved.loc, next.loc].map(projection),
19512             p2 = [prev.loc, moved.loc, orig.loc, next.loc].map(projection),
19513             d1 = iD.geo.pathLength(p1),
19514             d2 = iD.geo.pathLength(p2),
19515             insertAt = (d1 < d2) ? movedIndex : nextIndex;
19516
19517         // moving around closed loop?
19518         if (way.isClosed() && insertAt === 0) insertAt = len;
19519
19520         way = way.addNode(orig.id, insertAt);
19521         return graph.replace(orig).replace(way);
19522     }
19523
19524     // Reorder nodes around intersections that have moved..
19525     function unZorroIntersection(intersection, graph) {
19526         var vertex = graph.entity(intersection.nodeId),
19527             way1 = graph.entity(intersection.movedId),
19528             way2 = graph.entity(intersection.unmovedId),
19529             isEP1 = intersection.movedIsEP,
19530             isEP2 = intersection.unmovedIsEP;
19531
19532         // don't move the vertex if it is the endpoint of both ways.
19533         if (isEP1 && isEP2) return graph;
19534
19535         var nodes1 = _.without(graph.childNodes(way1), vertex),
19536             nodes2 = _.without(graph.childNodes(way2), vertex);
19537
19538         if (way1.isClosed() && way1.first() === vertex.id) nodes1.push(nodes1[0]);
19539         if (way2.isClosed() && way2.first() === vertex.id) nodes2.push(nodes2[0]);
19540
19541         var edge1 = !isEP1 && iD.geo.chooseEdge(nodes1, projection(vertex.loc), projection),
19542             edge2 = !isEP2 && iD.geo.chooseEdge(nodes2, projection(vertex.loc), projection),
19543             loc;
19544
19545         // snap vertex to nearest edge (or some point between them)..
19546         if (!isEP1 && !isEP2) {
19547             var epsilon = 1e-4, maxIter = 10;
19548             for (var i = 0; i < maxIter; i++) {
19549                 loc = iD.geo.interp(edge1.loc, edge2.loc, 0.5);
19550                 edge1 = iD.geo.chooseEdge(nodes1, projection(loc), projection);
19551                 edge2 = iD.geo.chooseEdge(nodes2, projection(loc), projection);
19552                 if (Math.abs(edge1.distance - edge2.distance) < epsilon) break;
19553             }
19554         } else if (!isEP1) {
19555             loc = edge1.loc;
19556         } else {
19557             loc = edge2.loc;
19558         }
19559
19560         graph = graph.replace(vertex.move(loc));
19561
19562         // if zorro happened, reorder nodes..
19563         if (!isEP1 && edge1.index !== way1.nodes.indexOf(vertex.id)) {
19564             way1 = way1.removeNode(vertex.id).addNode(vertex.id, edge1.index);
19565             graph = graph.replace(way1);
19566         }
19567         if (!isEP2 && edge2.index !== way2.nodes.indexOf(vertex.id)) {
19568             way2 = way2.removeNode(vertex.id).addNode(vertex.id, edge2.index);
19569             graph = graph.replace(way2);
19570         }
19571
19572         return graph;
19573     }
19574
19575
19576     function cleanupIntersections(graph) {
19577         _.each(cache.intersection, function(obj) {
19578             graph = replaceMovedVertex(obj.nodeId, obj.movedId, graph, delta);
19579             graph = replaceMovedVertex(obj.nodeId, obj.unmovedId, graph, null);
19580             graph = unZorroIntersection(obj, graph);
19581         });
19582
19583         return graph;
19584     }
19585
19586     // check if moving way endpoint can cross an unmoved way, if so limit delta..
19587     function limitDelta(graph) {
19588         _.each(cache.intersection, function(obj) {
19589             if (!obj.movedIsEP) return;
19590
19591             var node = graph.entity(obj.nodeId),
19592                 start = projection(node.loc),
19593                 end = vecAdd(start, delta),
19594                 movedNodes = graph.childNodes(graph.entity(obj.movedId)),
19595                 movedPath = _.map(_.pluck(movedNodes, 'loc'),
19596                     function(loc) { return vecAdd(projection(loc), delta); }),
19597                 unmovedNodes = graph.childNodes(graph.entity(obj.unmovedId)),
19598                 unmovedPath = _.map(_.pluck(unmovedNodes, 'loc'), projection),
19599                 hits = iD.geo.pathIntersections(movedPath, unmovedPath);
19600
19601             for (var i = 0; i < hits.length; i++) {
19602                 if (_.isEqual(hits[i], end)) continue;
19603                 var edge = iD.geo.chooseEdge(unmovedNodes, end, projection);
19604                 delta = vecSub(projection(edge.loc), start);
19605             }
19606         });
19607     }
19608
19609
19610     var action = function(graph) {
19611         if (delta[0] === 0 && delta[1] === 0) return graph;
19612
19613         setupCache(graph);
19614
19615         if (!_.isEmpty(cache.intersection)) {
19616             limitDelta(graph);
19617         }
19618
19619         _.each(cache.nodes, function(id) {
19620             var node = graph.entity(id),
19621                 start = projection(node.loc),
19622                 end = vecAdd(start, delta);
19623             graph = graph.replace(node.move(projection.invert(end)));
19624         });
19625
19626         if (!_.isEmpty(cache.intersection)) {
19627             graph = cleanupIntersections(graph);
19628         }
19629
19630         return graph;
19631     };
19632
19633     action.disabled = function(graph) {
19634         function incompleteRelation(id) {
19635             var entity = graph.entity(id);
19636             return entity.type === 'relation' && !entity.isComplete(graph);
19637         }
19638
19639         if (_.any(moveIds, incompleteRelation))
19640             return 'incomplete_relation';
19641     };
19642
19643     action.delta = function() {
19644         return delta;
19645     };
19646
19647     return action;
19648 };
19649 // https://github.com/openstreetmap/josm/blob/mirror/src/org/openstreetmap/josm/command/MoveCommand.java
19650 // https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/MoveNodeAction.as
19651 iD.actions.MoveNode = function(nodeId, loc) {
19652     return function(graph) {
19653         return graph.replace(graph.entity(nodeId).move(loc));
19654     };
19655 };
19656 iD.actions.Noop = function() {
19657     return function(graph) {
19658         return graph;
19659     };
19660 };
19661 /*
19662  * Based on https://github.com/openstreetmap/potlatch2/blob/master/net/systemeD/potlatch2/tools/Quadrilateralise.as
19663  */
19664
19665 iD.actions.Orthogonalize = function(wayId, projection) {
19666     var threshold = 12, // degrees within right or straight to alter
19667         lowerThreshold = Math.cos((90 - threshold) * Math.PI / 180),
19668         upperThreshold = Math.cos(threshold * Math.PI / 180);
19669
19670     var action = function(graph) {
19671         var way = graph.entity(wayId),
19672             nodes = graph.childNodes(way),
19673             points = _.uniq(nodes).map(function(n) { return projection(n.loc); }),
19674             corner = {i: 0, dotp: 1},
19675             epsilon = 1e-4,
19676             i, j, score, motions;
19677
19678         if (nodes.length === 4) {
19679             for (i = 0; i < 1000; i++) {
19680                 motions = points.map(calcMotion);
19681                 points[corner.i] = addPoints(points[corner.i],motions[corner.i]);
19682                 score = corner.dotp;
19683                 if (score < epsilon) {
19684                     break;
19685                 }
19686             }
19687
19688             graph = graph.replace(graph.entity(nodes[corner.i].id)
19689                 .move(projection.invert(points[corner.i])));
19690         } else {
19691             var best,
19692                 originalPoints = _.clone(points);
19693             score = Infinity;
19694
19695             for (i = 0; i < 1000; i++) {
19696                 motions = points.map(calcMotion);
19697                 for (j = 0; j < motions.length; j++) {
19698                     points[j] = addPoints(points[j],motions[j]);
19699                 }
19700                 var newScore = squareness(points);
19701                 if (newScore < score) {
19702                     best = _.clone(points);
19703                     score = newScore;
19704                 }
19705                 if (score < epsilon) {
19706                     break;
19707                 }
19708             }
19709
19710             points = best;
19711
19712             for (i = 0; i < points.length; i++) {
19713                 // only move the points that actually moved
19714                 if (originalPoints[i][0] !== points[i][0] || originalPoints[i][1] !== points[i][1]) {
19715                     graph = graph.replace(graph.entity(nodes[i].id)
19716                         .move(projection.invert(points[i])));
19717                 }
19718             }
19719
19720             // remove empty nodes on straight sections
19721             for (i = 0; i < points.length; i++) {
19722                 var node = nodes[i];
19723
19724                 if (graph.parentWays(node).length > 1 ||
19725                     graph.parentRelations(node).length ||
19726                     node.hasInterestingTags()) {
19727
19728                     continue;
19729                 }
19730
19731                 var dotp = normalizedDotProduct(i, points);
19732                 if (dotp < -1 + epsilon) {
19733                     graph = iD.actions.DeleteNode(nodes[i].id)(graph);
19734                 }
19735             }
19736         }
19737
19738         return graph;
19739
19740         function calcMotion(b, i, array) {
19741             var a = array[(i - 1 + array.length) % array.length],
19742                 c = array[(i + 1) % array.length],
19743                 p = subtractPoints(a, b),
19744                 q = subtractPoints(c, b),
19745                 scale, dotp;
19746
19747             scale = 2 * Math.min(iD.geo.euclideanDistance(p, [0, 0]), iD.geo.euclideanDistance(q, [0, 0]));
19748             p = normalizePoint(p, 1.0);
19749             q = normalizePoint(q, 1.0);
19750
19751             dotp = filterDotProduct(p[0] * q[0] + p[1] * q[1]);
19752
19753             // nasty hack to deal with almost-straight segments (angle is closer to 180 than to 90/270).
19754             if (array.length > 3) {
19755                 if (dotp < -0.707106781186547) {
19756                     dotp += 1.0;
19757                 }
19758             } else if (dotp && Math.abs(dotp) < corner.dotp) {
19759                 corner.i = i;
19760                 corner.dotp = Math.abs(dotp);
19761             }
19762
19763             return normalizePoint(addPoints(p, q), 0.1 * dotp * scale);
19764         }
19765     };
19766
19767     function squareness(points) {
19768         return points.reduce(function(sum, val, i, array) {
19769             var dotp = normalizedDotProduct(i, array);
19770
19771             dotp = filterDotProduct(dotp);
19772             return sum + 2.0 * Math.min(Math.abs(dotp - 1.0), Math.min(Math.abs(dotp), Math.abs(dotp + 1)));
19773         }, 0);
19774     }
19775
19776     function normalizedDotProduct(i, points) {
19777         var a = points[(i - 1 + points.length) % points.length],
19778             b = points[i],
19779             c = points[(i + 1) % points.length],
19780             p = subtractPoints(a, b),
19781             q = subtractPoints(c, b);
19782
19783         p = normalizePoint(p, 1.0);
19784         q = normalizePoint(q, 1.0);
19785
19786         return p[0] * q[0] + p[1] * q[1];
19787     }
19788
19789     function subtractPoints(a, b) {
19790         return [a[0] - b[0], a[1] - b[1]];
19791     }
19792
19793     function addPoints(a, b) {
19794         return [a[0] + b[0], a[1] + b[1]];
19795     }
19796
19797     function normalizePoint(point, scale) {
19798         var vector = [0, 0];
19799         var length = Math.sqrt(point[0] * point[0] + point[1] * point[1]);
19800         if (length !== 0) {
19801             vector[0] = point[0] / length;
19802             vector[1] = point[1] / length;
19803         }
19804
19805         vector[0] *= scale;
19806         vector[1] *= scale;
19807
19808         return vector;
19809     }
19810
19811     function filterDotProduct(dotp) {
19812         if (lowerThreshold > Math.abs(dotp) || Math.abs(dotp) > upperThreshold) {
19813             return dotp;
19814         }
19815
19816         return 0;
19817     }
19818
19819     action.disabled = function(graph) {
19820         var way = graph.entity(wayId),
19821             nodes = graph.childNodes(way),
19822             points = _.uniq(nodes).map(function(n) { return projection(n.loc); });
19823
19824         if (squareness(points)) {
19825             return false;
19826         }
19827
19828         return 'not_squarish';
19829     };
19830
19831     return action;
19832 };
19833 // Create a restriction relation for `turn`, which must have the following structure:
19834 //
19835 //     {
19836 //         from: { node: <node ID>, way: <way ID> },
19837 //         via:  { node: <node ID> },
19838 //         to:   { node: <node ID>, way: <way ID> },
19839 //         restriction: <'no_right_turn', 'no_left_turn', etc.>
19840 //     }
19841 //
19842 // This specifies a restriction of type `restriction` when traveling from
19843 // `from.node` in `from.way` toward `to.node` in `to.way` via `via.node`.
19844 // (The action does not check that these entities form a valid intersection.)
19845 //
19846 // If `restriction` is not provided, it is automatically determined by
19847 // iD.geo.inferRestriction.
19848 //
19849 // If necessary, the `from` and `to` ways are split. In these cases, `from.node`
19850 // and `to.node` are used to determine which portion of the split ways become
19851 // members of the restriction.
19852 //
19853 // For testing convenience, accepts an ID to assign to the new relation.
19854 // Normally, this will be undefined and the relation will automatically
19855 // be assigned a new ID.
19856 //
19857 iD.actions.RestrictTurn = function(turn, projection, restrictionId) {
19858     return function(graph) {
19859         var from = graph.entity(turn.from.way),
19860             via  = graph.entity(turn.via.node),
19861             to   = graph.entity(turn.to.way);
19862
19863         function split(toOrFrom) {
19864             var newID = toOrFrom.newID || iD.Way().id;
19865             graph = iD.actions.Split(via.id, [newID])
19866                 .limitWays([toOrFrom.way])(graph);
19867
19868             var a = graph.entity(newID),
19869                 b = graph.entity(toOrFrom.way);
19870
19871             if (a.nodes.indexOf(toOrFrom.node) !== -1) {
19872                 return [a, b];
19873             } else {
19874                 return [b, a];
19875             }
19876         }
19877
19878         if (!from.affix(via.id)) {
19879             if (turn.from.node === turn.to.node) {
19880                 // U-turn
19881                 from = to = split(turn.from)[0];
19882             } else if (turn.from.way === turn.to.way) {
19883                 // Straight-on
19884                 var s = split(turn.from);
19885                 from = s[0];
19886                 to   = s[1];
19887             } else {
19888                 // Other
19889                 from = split(turn.from)[0];
19890             }
19891         }
19892
19893         if (!to.affix(via.id)) {
19894             to = split(turn.to)[0];
19895         }
19896
19897         return graph.replace(iD.Relation({
19898             id: restrictionId,
19899             tags: {
19900                 type: 'restriction',
19901                 restriction: turn.restriction ||
19902                     iD.geo.inferRestriction(
19903                         graph,
19904                         turn.from,
19905                         turn.via,
19906                         turn.to,
19907                         projection)
19908             },
19909             members: [
19910                 {id: from.id, type: 'way',  role: 'from'},
19911                 {id: via.id,  type: 'node', role: 'via'},
19912                 {id: to.id,   type: 'way',  role: 'to'}
19913             ]
19914         }));
19915     };
19916 };
19917 /*
19918   Order the nodes of a way in reverse order and reverse any direction dependent tags
19919   other than `oneway`. (We assume that correcting a backwards oneway is the primary
19920   reason for reversing a way.)
19921
19922   The following transforms are performed:
19923
19924     Keys:
19925           *:right=* ⟺ *:left=*
19926         *:forward=* ⟺ *:backward=*
19927        direction=up ⟺ direction=down
19928          incline=up ⟺ incline=down
19929             *=right ⟺ *=left
19930
19931     Relation members:
19932        role=forward ⟺ role=backward
19933          role=north ⟺ role=south
19934           role=east ⟺ role=west
19935
19936    In addition, numeric-valued `incline` tags are negated.
19937
19938    The JOSM implementation was used as a guide, but transformations that were of unclear benefit
19939    or adjusted tags that don't seem to be used in practice were omitted.
19940
19941    References:
19942       http://wiki.openstreetmap.org/wiki/Forward_%26_backward,_left_%26_right
19943       http://wiki.openstreetmap.org/wiki/Key:direction#Steps
19944       http://wiki.openstreetmap.org/wiki/Key:incline
19945       http://wiki.openstreetmap.org/wiki/Route#Members
19946       http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
19947  */
19948 iD.actions.Reverse = function(wayId) {
19949     var replacements = [
19950             [/:right$/, ':left'], [/:left$/, ':right'],
19951             [/:forward$/, ':backward'], [/:backward$/, ':forward']
19952         ],
19953         numeric = /^([+\-]?)(?=[\d.])/,
19954         roleReversals = {
19955             forward: 'backward',
19956             backward: 'forward',
19957             north: 'south',
19958             south: 'north',
19959             east: 'west',
19960             west: 'east'
19961         };
19962
19963     function reverseKey(key) {
19964         for (var i = 0; i < replacements.length; ++i) {
19965             var replacement = replacements[i];
19966             if (replacement[0].test(key)) {
19967                 return key.replace(replacement[0], replacement[1]);
19968             }
19969         }
19970         return key;
19971     }
19972
19973     function reverseValue(key, value) {
19974         if (key === 'incline' && numeric.test(value)) {
19975             return value.replace(numeric, function(_, sign) { return sign === '-' ? '' : '-'; });
19976         } else if (key === 'incline' || key === 'direction') {
19977             return {up: 'down', down: 'up'}[value] || value;
19978         } else {
19979             return {left: 'right', right: 'left'}[value] || value;
19980         }
19981     }
19982
19983     return function(graph) {
19984         var way = graph.entity(wayId),
19985             nodes = way.nodes.slice().reverse(),
19986             tags = {}, key, role;
19987
19988         for (key in way.tags) {
19989             tags[reverseKey(key)] = reverseValue(key, way.tags[key]);
19990         }
19991
19992         graph.parentRelations(way).forEach(function(relation) {
19993             relation.members.forEach(function(member, index) {
19994                 if (member.id === way.id && (role = roleReversals[member.role])) {
19995                     relation = relation.updateMember({role: role}, index);
19996                     graph = graph.replace(relation);
19997                 }
19998             });
19999         });
20000
20001         return graph.replace(way.update({nodes: nodes, tags: tags}));
20002     };
20003 };
20004 iD.actions.Revert = function(id) {
20005
20006     var action = function(graph) {
20007         var entity = graph.hasEntity(id),
20008             base = graph.base().entities[id];
20009
20010         if (entity && !base) {    // entity will be removed..
20011             if (entity.type === 'node') {
20012                 graph.parentWays(entity)
20013                     .forEach(function(parent) {
20014                         parent = parent.removeNode(id);
20015                         graph = graph.replace(parent);
20016
20017                         if (parent.isDegenerate()) {
20018                             graph = iD.actions.DeleteWay(parent.id)(graph);
20019                         }
20020                     });
20021             }
20022
20023             graph.parentRelations(entity)
20024                 .forEach(function(parent) {
20025                     parent = parent.removeMembersWithID(id);
20026                     graph = graph.replace(parent);
20027
20028                     if (parent.isDegenerate()) {
20029                         graph = iD.actions.DeleteRelation(parent.id)(graph);
20030                     }
20031                 });
20032         }
20033
20034         return graph.revert(id);
20035     };
20036
20037     return action;
20038 };
20039 iD.actions.RotateWay = function(wayId, pivot, angle, projection) {
20040     return function(graph) {
20041         return graph.update(function(graph) {
20042             var way = graph.entity(wayId);
20043
20044             _.unique(way.nodes).forEach(function(id) {
20045
20046                 var node = graph.entity(id),
20047                     point = projection(node.loc),
20048                     radial = [0,0];
20049
20050                 radial[0] = point[0] - pivot[0];
20051                 radial[1] = point[1] - pivot[1];
20052
20053                 point = [
20054                     radial[0] * Math.cos(angle) - radial[1] * Math.sin(angle) + pivot[0],
20055                     radial[0] * Math.sin(angle) + radial[1] * Math.cos(angle) + pivot[1]
20056                 ];
20057
20058                 graph = graph.replace(node.move(projection.invert(point)));
20059
20060             });
20061
20062         });
20063     };
20064 };
20065 // Split a way at the given node.
20066 //
20067 // Optionally, split only the given ways, if multiple ways share
20068 // the given node.
20069 //
20070 // This is the inverse of `iD.actions.Join`.
20071 //
20072 // For testing convenience, accepts an ID to assign to the new way.
20073 // Normally, this will be undefined and the way will automatically
20074 // be assigned a new ID.
20075 //
20076 // Reference:
20077 //   https://github.com/systemed/potlatch2/blob/master/net/systemeD/halcyon/connection/actions/SplitWayAction.as
20078 //
20079 iD.actions.Split = function(nodeId, newWayIds) {
20080     var wayIds;
20081
20082     // if the way is closed, we need to search for a partner node
20083     // to split the way at.
20084     //
20085     // The following looks for a node that is both far away from
20086     // the initial node in terms of way segment length and nearby
20087     // in terms of beeline-distance. This assures that areas get
20088     // split on the most "natural" points (independent of the number
20089     // of nodes).
20090     // For example: bone-shaped areas get split across their waist
20091     // line, circles across the diameter.
20092     function splitArea(nodes, idxA, graph) {
20093         var lengths = new Array(nodes.length),
20094             length,
20095             i,
20096             best = 0,
20097             idxB;
20098
20099         function wrap(index) {
20100             return iD.util.wrap(index, nodes.length);
20101         }
20102
20103         function dist(nA, nB) {
20104             return iD.geo.sphericalDistance(graph.entity(nA).loc, graph.entity(nB).loc);
20105         }
20106
20107         // calculate lengths
20108         length = 0;
20109         for (i = wrap(idxA+1); i !== idxA; i = wrap(i+1)) {
20110             length += dist(nodes[i], nodes[wrap(i-1)]);
20111             lengths[i] = length;
20112         }
20113
20114         length = 0;
20115         for (i = wrap(idxA-1); i !== idxA; i = wrap(i-1)) {
20116             length += dist(nodes[i], nodes[wrap(i+1)]);
20117             if (length < lengths[i])
20118                 lengths[i] = length;
20119         }
20120
20121         // determine best opposite node to split
20122         for (i = 0; i < nodes.length; i++) {
20123             var cost = lengths[i] / dist(nodes[idxA], nodes[i]);
20124             if (cost > best) {
20125                 idxB = i;
20126                 best = cost;
20127             }
20128         }
20129
20130         return idxB;
20131     }
20132
20133     function split(graph, wayA, newWayId) {
20134         var wayB = iD.Way({id: newWayId, tags: wayA.tags}),
20135             nodesA,
20136             nodesB,
20137             isArea = wayA.isArea(),
20138             isOuter = iD.geo.isSimpleMultipolygonOuterMember(wayA, graph);
20139
20140         if (wayA.isClosed()) {
20141             var nodes = wayA.nodes.slice(0, -1),
20142                 idxA = _.indexOf(nodes, nodeId),
20143                 idxB = splitArea(nodes, idxA, graph);
20144
20145             if (idxB < idxA) {
20146                 nodesA = nodes.slice(idxA).concat(nodes.slice(0, idxB + 1));
20147                 nodesB = nodes.slice(idxB, idxA + 1);
20148             } else {
20149                 nodesA = nodes.slice(idxA, idxB + 1);
20150                 nodesB = nodes.slice(idxB).concat(nodes.slice(0, idxA + 1));
20151             }
20152         } else {
20153             var idx = _.indexOf(wayA.nodes, nodeId, 1);
20154             nodesA = wayA.nodes.slice(0, idx + 1);
20155             nodesB = wayA.nodes.slice(idx);
20156         }
20157
20158         wayA = wayA.update({nodes: nodesA});
20159         wayB = wayB.update({nodes: nodesB});
20160
20161         graph = graph.replace(wayA);
20162         graph = graph.replace(wayB);
20163
20164         graph.parentRelations(wayA).forEach(function(relation) {
20165             if (relation.isRestriction()) {
20166                 var via = relation.memberByRole('via');
20167                 if (via && wayB.contains(via.id)) {
20168                     relation = relation.updateMember({id: wayB.id}, relation.memberById(wayA.id).index);
20169                     graph = graph.replace(relation);
20170                 }
20171             } else {
20172                 if (relation === isOuter) {
20173                     graph = graph.replace(relation.mergeTags(wayA.tags));
20174                     graph = graph.replace(wayA.update({tags: {}}));
20175                     graph = graph.replace(wayB.update({tags: {}}));
20176                 }
20177
20178                 var member = {
20179                     id: wayB.id,
20180                     type: 'way',
20181                     role: relation.memberById(wayA.id).role
20182                 };
20183
20184                 graph = iD.actions.AddMember(relation.id, member)(graph);
20185             }
20186         });
20187
20188         if (!isOuter && isArea) {
20189             var multipolygon = iD.Relation({
20190                 tags: _.extend({}, wayA.tags, {type: 'multipolygon'}),
20191                 members: [
20192                     {id: wayA.id, role: 'outer', type: 'way'},
20193                     {id: wayB.id, role: 'outer', type: 'way'}
20194                 ]});
20195
20196             graph = graph.replace(multipolygon);
20197             graph = graph.replace(wayA.update({tags: {}}));
20198             graph = graph.replace(wayB.update({tags: {}}));
20199         }
20200
20201         return graph;
20202     }
20203
20204     var action = function(graph) {
20205         var candidates = action.ways(graph);
20206         for (var i = 0; i < candidates.length; i++) {
20207             graph = split(graph, candidates[i], newWayIds && newWayIds[i]);
20208         }
20209         return graph;
20210     };
20211
20212     action.ways = function(graph) {
20213         var node = graph.entity(nodeId),
20214             parents = graph.parentWays(node),
20215             hasLines = _.any(parents, function(parent) { return parent.geometry(graph) === 'line'; });
20216
20217         return parents.filter(function(parent) {
20218             if (wayIds && wayIds.indexOf(parent.id) === -1)
20219                 return false;
20220
20221             if (!wayIds && hasLines && parent.geometry(graph) !== 'line')
20222                 return false;
20223
20224             if (parent.isClosed()) {
20225                 return true;
20226             }
20227
20228             for (var i = 1; i < parent.nodes.length - 1; i++) {
20229                 if (parent.nodes[i] === nodeId) {
20230                     return true;
20231                 }
20232             }
20233
20234             return false;
20235         });
20236     };
20237
20238     action.disabled = function(graph) {
20239         var candidates = action.ways(graph);
20240         if (candidates.length === 0 || (wayIds && wayIds.length !== candidates.length))
20241             return 'not_eligible';
20242     };
20243
20244     action.limitWays = function(_) {
20245         if (!arguments.length) return wayIds;
20246         wayIds = _;
20247         return action;
20248     };
20249
20250     return action;
20251 };
20252 /*
20253  * Based on https://github.com/openstreetmap/potlatch2/net/systemeD/potlatch2/tools/Straighten.as
20254  */
20255
20256 iD.actions.Straighten = function(wayId, projection) {
20257     function positionAlongWay(n, s, e) {
20258         return ((n[0] - s[0]) * (e[0] - s[0]) + (n[1] - s[1]) * (e[1] - s[1]))/
20259                 (Math.pow(e[0] - s[0], 2) + Math.pow(e[1] - s[1], 2));
20260     }
20261
20262     var action = function(graph) {
20263         var way = graph.entity(wayId),
20264             nodes = graph.childNodes(way),
20265             points = nodes.map(function(n) { return projection(n.loc); }),
20266             startPoint = points[0],
20267             endPoint = points[points.length-1],
20268             toDelete = [],
20269             i;
20270
20271         for (i = 1; i < points.length-1; i++) {
20272             var node = nodes[i],
20273                 point = points[i];
20274
20275             if (graph.parentWays(node).length > 1 ||
20276                 graph.parentRelations(node).length ||
20277                 node.hasInterestingTags()) {
20278
20279                 var u = positionAlongWay(point, startPoint, endPoint),
20280                     p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
20281                     p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]);
20282
20283                 graph = graph.replace(graph.entity(node.id)
20284                     .move(projection.invert([p0, p1])));
20285             } else {
20286                 // safe to delete
20287                 if (toDelete.indexOf(node) === -1) {
20288                     toDelete.push(node);
20289                 }
20290             }
20291         }
20292
20293         for (i = 0; i < toDelete.length; i++) {
20294             graph = iD.actions.DeleteNode(toDelete[i].id)(graph);
20295         }
20296
20297         return graph;
20298     };
20299     
20300     action.disabled = function(graph) {
20301         // check way isn't too bendy
20302         var way = graph.entity(wayId),
20303             nodes = graph.childNodes(way),
20304             points = nodes.map(function(n) { return projection(n.loc); }),
20305             startPoint = points[0],
20306             endPoint = points[points.length-1],
20307             threshold = 0.2 * Math.sqrt(Math.pow(startPoint[0] - endPoint[0], 2) + Math.pow(startPoint[1] - endPoint[1], 2)),
20308             i;
20309
20310         for (i = 1; i < points.length-1; i++) {
20311             var point = points[i],
20312                 u = positionAlongWay(point, startPoint, endPoint),
20313                 p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
20314                 p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]),
20315                 dist = Math.sqrt(Math.pow(p0 - point[0], 2) + Math.pow(p1 - point[1], 2));
20316
20317             // to bendy if point is off by 20% of total start/end distance in projected space
20318             if (dist > threshold) {
20319                 return 'too_bendy';
20320             }
20321         }
20322     };
20323
20324     return action;
20325 };
20326 // Remove the effects of `turn.restriction` on `turn`, which must have the
20327 // following structure:
20328 //
20329 //     {
20330 //         from: { node: <node ID>, way: <way ID> },
20331 //         via:  { node: <node ID> },
20332 //         to:   { node: <node ID>, way: <way ID> },
20333 //         restriction: <relation ID>
20334 //     }
20335 //
20336 // In the simple case, `restriction` is a reference to a `no_*` restriction
20337 // on the turn itself. In this case, it is simply deleted.
20338 //
20339 // The more complex case is where `restriction` references an `only_*`
20340 // restriction on a different turn in the same intersection. In that case,
20341 // that restriction is also deleted, but at the same time restrictions on
20342 // the turns other than the first two are created.
20343 //
20344 iD.actions.UnrestrictTurn = function(turn) {
20345     return function(graph) {
20346         return iD.actions.DeleteRelation(turn.restriction)(graph);
20347     };
20348 };
20349 iD.behavior = {};
20350 iD.behavior.AddWay = function(context) {
20351     var event = d3.dispatch('start', 'startFromWay', 'startFromNode'),
20352         draw = iD.behavior.Draw(context);
20353
20354     var addWay = function(surface) {
20355         draw.on('click', event.start)
20356             .on('clickWay', event.startFromWay)
20357             .on('clickNode', event.startFromNode)
20358             .on('cancel', addWay.cancel)
20359             .on('finish', addWay.cancel);
20360
20361         context.map()
20362             .dblclickEnable(false);
20363
20364         surface.call(draw);
20365     };
20366
20367     addWay.off = function(surface) {
20368         surface.call(draw.off);
20369     };
20370
20371     addWay.cancel = function() {
20372         window.setTimeout(function() {
20373             context.map().dblclickEnable(true);
20374         }, 1000);
20375
20376         context.enter(iD.modes.Browse(context));
20377     };
20378
20379     addWay.tail = function(text) {
20380         draw.tail(text);
20381         return addWay;
20382     };
20383
20384     return d3.rebind(addWay, event, 'on');
20385 };
20386 iD.behavior.Copy = function(context) {
20387     var keybinding = d3.keybinding('copy');
20388
20389     function groupEntities(ids, graph) {
20390         var entities = ids.map(function (id) { return graph.entity(id); });
20391         return _.extend({relation: [], way: [], node: []},
20392             _.groupBy(entities, function(entity) { return entity.type; }));
20393     }
20394
20395     function getDescendants(id, graph, descendants) {
20396         var entity = graph.entity(id),
20397             i, children;
20398
20399         descendants = descendants || {};
20400
20401         if (entity.type === 'relation') {
20402             children = _.pluck(entity.members, 'id');
20403         } else if (entity.type === 'way') {
20404             children = entity.nodes;
20405         } else {
20406             children = [];
20407         }
20408
20409         for (i = 0; i < children.length; i++) {
20410             if (!descendants[children[i]]) {
20411                 descendants[children[i]] = true;
20412                 descendants = getDescendants(children[i], graph, descendants);
20413             }
20414         }
20415
20416         return descendants;
20417     }
20418
20419     function doCopy() {
20420         d3.event.preventDefault();
20421
20422         var graph = context.graph(),
20423             selected = groupEntities(context.selectedIDs(), graph),
20424             canCopy = [],
20425             skip = {},
20426             i, entity;
20427
20428         for (i = 0; i < selected.relation.length; i++) {
20429             entity = selected.relation[i];
20430             if (!skip[entity.id] && entity.isComplete(graph)) {
20431                 canCopy.push(entity.id);
20432                 skip = getDescendants(entity.id, graph, skip);
20433             }
20434         }
20435         for (i = 0; i < selected.way.length; i++) {
20436             entity = selected.way[i];
20437             if (!skip[entity.id]) {
20438                 canCopy.push(entity.id);
20439                 skip = getDescendants(entity.id, graph, skip);
20440             }
20441         }
20442         for (i = 0; i < selected.node.length; i++) {
20443             entity = selected.node[i];
20444             if (!skip[entity.id]) {
20445                 canCopy.push(entity.id);
20446             }
20447         }
20448
20449         context.copyIDs(canCopy);
20450     }
20451
20452     function copy() {
20453         keybinding.on(iD.ui.cmd('⌘C'), doCopy);
20454         d3.select(document).call(keybinding);
20455         return copy;
20456     }
20457
20458     copy.off = function() {
20459         d3.select(document).call(keybinding.off);
20460     };
20461
20462     return copy;
20463 };
20464 /*
20465     `iD.behavior.drag` is like `d3.behavior.drag`, with the following differences:
20466
20467     * The `origin` function is expected to return an [x, y] tuple rather than an
20468       {x, y} object.
20469     * The events are `start`, `move`, and `end`.
20470       (https://github.com/mbostock/d3/issues/563)
20471     * The `start` event is not dispatched until the first cursor movement occurs.
20472       (https://github.com/mbostock/d3/pull/368)
20473     * The `move` event has a `point` and `delta` [x, y] tuple properties rather
20474       than `x`, `y`, `dx`, and `dy` properties.
20475     * The `end` event is not dispatched if no movement occurs.
20476     * An `off` function is available that unbinds the drag's internal event handlers.
20477     * Delegation is supported via the `delegate` function.
20478
20479  */
20480 iD.behavior.drag = function() {
20481     function d3_eventCancel() {
20482       d3.event.stopPropagation();
20483       d3.event.preventDefault();
20484     }
20485
20486     var event = d3.dispatch('start', 'move', 'end'),
20487         origin = null,
20488         selector = '',
20489         filter = null,
20490         event_, target, surface;
20491
20492     event.of = function(thiz, argumentz) {
20493       return function(e1) {
20494         var e0 = e1.sourceEvent = d3.event;
20495         e1.target = drag;
20496         d3.event = e1;
20497         try {
20498           event[e1.type].apply(thiz, argumentz);
20499         } finally {
20500           d3.event = e0;
20501         }
20502       };
20503     };
20504
20505     var d3_event_userSelectProperty = iD.util.prefixCSSProperty('UserSelect'),
20506         d3_event_userSelectSuppress = d3_event_userSelectProperty ?
20507             function () {
20508                 var selection = d3.selection(),
20509                     select = selection.style(d3_event_userSelectProperty);
20510                 selection.style(d3_event_userSelectProperty, 'none');
20511                 return function () {
20512                     selection.style(d3_event_userSelectProperty, select);
20513                 };
20514             } :
20515             function (type) {
20516                 var w = d3.select(window).on('selectstart.' + type, d3_eventCancel);
20517                 return function () {
20518                     w.on('selectstart.' + type, null);
20519                 };
20520             };
20521
20522     function mousedown() {
20523         target = this;
20524         event_ = event.of(target, arguments);
20525         var eventTarget = d3.event.target,
20526             touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
20527             offset,
20528             origin_ = point(),
20529             started = false,
20530             selectEnable = d3_event_userSelectSuppress(touchId !== null ? 'drag-' + touchId : 'drag');
20531
20532         var w = d3.select(window)
20533             .on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', dragmove)
20534             .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', dragend, true);
20535
20536         if (origin) {
20537             offset = origin.apply(target, arguments);
20538             offset = [offset[0] - origin_[0], offset[1] - origin_[1]];
20539         } else {
20540             offset = [0, 0];
20541         }
20542
20543         if (touchId === null) d3.event.stopPropagation();
20544
20545         function point() {
20546             var p = target.parentNode || surface;
20547             return touchId !== null ? d3.touches(p).filter(function(p) {
20548                 return p.identifier === touchId;
20549             })[0] : d3.mouse(p);
20550         }
20551
20552         function dragmove() {
20553
20554             var p = point(),
20555                 dx = p[0] - origin_[0],
20556                 dy = p[1] - origin_[1];
20557             
20558             if (dx === 0 && dy === 0)
20559                 return;
20560
20561             if (!started) {
20562                 started = true;
20563                 event_({
20564                     type: 'start'
20565                 });
20566             }
20567
20568             origin_ = p;
20569             d3_eventCancel();
20570
20571             event_({
20572                 type: 'move',
20573                 point: [p[0] + offset[0],  p[1] + offset[1]],
20574                 delta: [dx, dy]
20575             });
20576         }
20577
20578         function dragend() {
20579             if (started) {
20580                 event_({
20581                     type: 'end'
20582                 });
20583
20584                 d3_eventCancel();
20585                 if (d3.event.target === eventTarget) w.on('click.drag', click, true);
20586             }
20587
20588             w.on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', null)
20589                 .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', null);
20590             selectEnable();
20591         }
20592
20593         function click() {
20594             d3_eventCancel();
20595             w.on('click.drag', null);
20596         }
20597     }
20598
20599     function drag(selection) {
20600         var matchesSelector = iD.util.prefixDOMProperty('matchesSelector'),
20601             delegate = mousedown;
20602
20603         if (selector) {
20604             delegate = function() {
20605                 var root = this,
20606                     target = d3.event.target;
20607                 for (; target && target !== root; target = target.parentNode) {
20608                     if (target[matchesSelector](selector) &&
20609                             (!filter || filter(target.__data__))) {
20610                         return mousedown.call(target, target.__data__);
20611                     }
20612                 }
20613             };
20614         }
20615
20616         selection.on('mousedown.drag' + selector, delegate)
20617             .on('touchstart.drag' + selector, delegate);
20618     }
20619
20620     drag.off = function(selection) {
20621         selection.on('mousedown.drag' + selector, null)
20622             .on('touchstart.drag' + selector, null);
20623     };
20624
20625     drag.delegate = function(_) {
20626         if (!arguments.length) return selector;
20627         selector = _;
20628         return drag;
20629     };
20630
20631     drag.filter = function(_) {
20632         if (!arguments.length) return origin;
20633         filter = _;
20634         return drag;
20635     };
20636
20637     drag.origin = function (_) {
20638         if (!arguments.length) return origin;
20639         origin = _;
20640         return drag;
20641     };
20642
20643     drag.cancel = function() {
20644         d3.select(window)
20645             .on('mousemove.drag', null)
20646             .on('mouseup.drag', null);
20647         return drag;
20648     };
20649
20650     drag.target = function() {
20651         if (!arguments.length) return target;
20652         target = arguments[0];
20653         event_ = event.of(target, Array.prototype.slice.call(arguments, 1));
20654         return drag;
20655     };
20656
20657     drag.surface = function() {
20658         if (!arguments.length) return surface;
20659         surface = arguments[0];
20660         return drag;
20661     };
20662
20663     return d3.rebind(drag, event, 'on');
20664 };
20665 iD.behavior.Draw = function(context) {
20666     var event = d3.dispatch('move', 'click', 'clickWay',
20667         'clickNode', 'undo', 'cancel', 'finish'),
20668         keybinding = d3.keybinding('draw'),
20669         hover = iD.behavior.Hover(context)
20670             .altDisables(true)
20671             .on('hover', context.ui().sidebar.hover),
20672         tail = iD.behavior.Tail(),
20673         edit = iD.behavior.Edit(context),
20674         closeTolerance = 4,
20675         tolerance = 12;
20676
20677     function datum() {
20678         if (d3.event.altKey) return {};
20679         else return d3.event.target.__data__ || {};
20680     }
20681
20682     function mousedown() {
20683
20684         function point() {
20685             var p = element.node().parentNode;
20686             return touchId !== null ? d3.touches(p).filter(function(p) {
20687                 return p.identifier === touchId;
20688             })[0] : d3.mouse(p);
20689         }
20690
20691         var element = d3.select(this),
20692             touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
20693             time = +new Date(),
20694             pos = point();
20695
20696         element.on('mousemove.draw', null);
20697
20698         d3.select(window).on('mouseup.draw', function() {
20699             element.on('mousemove.draw', mousemove);
20700             if (iD.geo.euclideanDistance(pos, point()) < closeTolerance ||
20701                 (iD.geo.euclideanDistance(pos, point()) < tolerance &&
20702                 (+new Date() - time) < 500)) {
20703
20704                 // Prevent a quick second click
20705                 d3.select(window).on('click.draw-block', function() {
20706                     d3.event.stopPropagation();
20707                 }, true);
20708
20709                 context.map().dblclickEnable(false);
20710
20711                 window.setTimeout(function() {
20712                     context.map().dblclickEnable(true);
20713                     d3.select(window).on('click.draw-block', null);
20714                 }, 500);
20715
20716                 click();
20717             }
20718         });
20719     }
20720
20721     function mousemove() {
20722         event.move(datum());
20723     }
20724
20725     function click() {
20726         var d = datum();
20727         if (d.type === 'way') {
20728             var choice = iD.geo.chooseEdge(context.childNodes(d), context.mouse(), context.projection),
20729                 edge = [d.nodes[choice.index - 1], d.nodes[choice.index]];
20730             event.clickWay(choice.loc, edge);
20731
20732         } else if (d.type === 'node') {
20733             event.clickNode(d);
20734
20735         } else {
20736             event.click(context.map().mouseCoordinates());
20737         }
20738     }
20739
20740     function backspace() {
20741         d3.event.preventDefault();
20742         event.undo();
20743     }
20744
20745     function del() {
20746         d3.event.preventDefault();
20747         event.cancel();
20748     }
20749
20750     function ret() {
20751         d3.event.preventDefault();
20752         event.finish();
20753     }
20754
20755     function draw(selection) {
20756         context.install(hover);
20757         context.install(edit);
20758
20759         if (!context.inIntro() && !iD.behavior.Draw.usedTails[tail.text()]) {
20760             context.install(tail);
20761         }
20762
20763         keybinding
20764             .on('⌫', backspace)
20765             .on('⌦', del)
20766             .on('⎋', ret)
20767             .on('↩', ret);
20768
20769         selection
20770             .on('mousedown.draw', mousedown)
20771             .on('mousemove.draw', mousemove);
20772
20773         d3.select(document)
20774             .call(keybinding);
20775
20776         return draw;
20777     }
20778
20779     draw.off = function(selection) {
20780         context.uninstall(hover);
20781         context.uninstall(edit);
20782
20783         if (!context.inIntro() && !iD.behavior.Draw.usedTails[tail.text()]) {
20784             context.uninstall(tail);
20785             iD.behavior.Draw.usedTails[tail.text()] = true;
20786         }
20787
20788         selection
20789             .on('mousedown.draw', null)
20790             .on('mousemove.draw', null);
20791
20792         d3.select(window)
20793             .on('mouseup.draw', null);
20794
20795         d3.select(document)
20796             .call(keybinding.off);
20797     };
20798
20799     draw.tail = function(_) {
20800         tail.text(_);
20801         return draw;
20802     };
20803
20804     return d3.rebind(draw, event, 'on');
20805 };
20806
20807 iD.behavior.Draw.usedTails = {};
20808 iD.behavior.DrawWay = function(context, wayId, index, mode, baseGraph) {
20809     var way = context.entity(wayId),
20810         isArea = context.geometry(wayId) === 'area',
20811         finished = false,
20812         annotation = t((way.isDegenerate() ?
20813             'operations.start.annotation.' :
20814             'operations.continue.annotation.') + context.geometry(wayId)),
20815         draw = iD.behavior.Draw(context);
20816
20817     var startIndex = typeof index === 'undefined' ? way.nodes.length - 1 : 0,
20818         start = iD.Node({loc: context.graph().entity(way.nodes[startIndex]).loc}),
20819         end = iD.Node({loc: context.map().mouseCoordinates()}),
20820         segment = iD.Way({
20821             nodes: typeof index === 'undefined' ? [start.id, end.id] : [end.id, start.id],
20822             tags: _.clone(way.tags)
20823         });
20824
20825     var f = context[way.isDegenerate() ? 'replace' : 'perform'];
20826     if (isArea) {
20827         f(iD.actions.AddEntity(end),
20828             iD.actions.AddVertex(wayId, end.id, index));
20829     } else {
20830         f(iD.actions.AddEntity(start),
20831             iD.actions.AddEntity(end),
20832             iD.actions.AddEntity(segment));
20833     }
20834
20835     function move(datum) {
20836         var loc;
20837
20838         if (datum.type === 'node' && datum.id !== end.id) {
20839             loc = datum.loc;
20840         } else if (datum.type === 'way' && datum.id !== segment.id) {
20841             loc = iD.geo.chooseEdge(context.childNodes(datum), context.mouse(), context.projection).loc;
20842         } else {
20843             loc = context.map().mouseCoordinates();
20844         }
20845
20846         context.replace(iD.actions.MoveNode(end.id, loc));
20847     }
20848
20849     function undone() {
20850         finished = true;
20851         context.enter(iD.modes.Browse(context));
20852     }
20853
20854     function setActiveElements() {
20855         var active = isArea ? [wayId, end.id] : [segment.id, start.id, end.id];
20856         context.surface().selectAll(iD.util.entitySelector(active))
20857             .classed('active', true);
20858     }
20859
20860     var drawWay = function(surface) {
20861         draw.on('move', move)
20862             .on('click', drawWay.add)
20863             .on('clickWay', drawWay.addWay)
20864             .on('clickNode', drawWay.addNode)
20865             .on('undo', context.undo)
20866             .on('cancel', drawWay.cancel)
20867             .on('finish', drawWay.finish);
20868
20869         context.map()
20870             .dblclickEnable(false)
20871             .on('drawn.draw', setActiveElements);
20872
20873         setActiveElements();
20874
20875         surface.call(draw);
20876
20877         context.history()
20878             .on('undone.draw', undone);
20879     };
20880
20881     drawWay.off = function(surface) {
20882         if (!finished)
20883             context.pop();
20884
20885         context.map()
20886             .on('drawn.draw', null);
20887
20888         surface.call(draw.off)
20889             .selectAll('.active')
20890             .classed('active', false);
20891
20892         context.history()
20893             .on('undone.draw', null);
20894     };
20895
20896     function ReplaceTemporaryNode(newNode) {
20897         return function(graph) {
20898             if (isArea) {
20899                 return graph
20900                     .replace(way.addNode(newNode.id, index))
20901                     .remove(end);
20902
20903             } else {
20904                 return graph
20905                     .replace(graph.entity(wayId).addNode(newNode.id, index))
20906                     .remove(end)
20907                     .remove(segment)
20908                     .remove(start);
20909             }
20910         };
20911     }
20912
20913     // Accept the current position of the temporary node and continue drawing.
20914     drawWay.add = function(loc) {
20915
20916         // prevent duplicate nodes
20917         var last = context.hasEntity(way.nodes[way.nodes.length - (isArea ? 2 : 1)]);
20918         if (last && last.loc[0] === loc[0] && last.loc[1] === loc[1]) return;
20919
20920         var newNode = iD.Node({loc: loc});
20921
20922         context.replace(
20923             iD.actions.AddEntity(newNode),
20924             ReplaceTemporaryNode(newNode),
20925             annotation);
20926
20927         finished = true;
20928         context.enter(mode);
20929     };
20930
20931     // Connect the way to an existing way.
20932     drawWay.addWay = function(loc, edge) {
20933         var previousEdge = startIndex ?
20934             [way.nodes[startIndex], way.nodes[startIndex - 1]] :
20935             [way.nodes[0], way.nodes[1]];
20936
20937         // Avoid creating duplicate segments
20938         if (!isArea && iD.geo.edgeEqual(edge, previousEdge))
20939             return;
20940
20941         var newNode = iD.Node({ loc: loc });
20942
20943         context.perform(
20944             iD.actions.AddMidpoint({ loc: loc, edge: edge}, newNode),
20945             ReplaceTemporaryNode(newNode),
20946             annotation);
20947
20948         finished = true;
20949         context.enter(mode);
20950     };
20951
20952     // Connect the way to an existing node and continue drawing.
20953     drawWay.addNode = function(node) {
20954
20955         // Avoid creating duplicate segments
20956         if (way.areAdjacent(node.id, way.nodes[way.nodes.length - 1])) return;
20957
20958         context.perform(
20959             ReplaceTemporaryNode(node),
20960             annotation);
20961
20962         finished = true;
20963         context.enter(mode);
20964     };
20965
20966     // Finish the draw operation, removing the temporary node. If the way has enough
20967     // nodes to be valid, it's selected. Otherwise, return to browse mode.
20968     drawWay.finish = function() {
20969         context.pop();
20970         finished = true;
20971
20972         window.setTimeout(function() {
20973             context.map().dblclickEnable(true);
20974         }, 1000);
20975
20976         if (context.hasEntity(wayId)) {
20977             context.enter(
20978                 iD.modes.Select(context, [wayId])
20979                     .suppressMenu(true)
20980                     .newFeature(true));
20981         } else {
20982             context.enter(iD.modes.Browse(context));
20983         }
20984     };
20985
20986     // Cancel the draw operation and return to browse, deleting everything drawn.
20987     drawWay.cancel = function() {
20988         context.perform(
20989             d3.functor(baseGraph),
20990             t('operations.cancel_draw.annotation'));
20991
20992         window.setTimeout(function() {
20993             context.map().dblclickEnable(true);
20994         }, 1000);
20995
20996         finished = true;
20997         context.enter(iD.modes.Browse(context));
20998     };
20999
21000     drawWay.tail = function(text) {
21001         draw.tail(text);
21002         return drawWay;
21003     };
21004
21005     return drawWay;
21006 };
21007 iD.behavior.Edit = function(context) {
21008     function edit() {
21009         context.map()
21010             .minzoom(context.minEditableZoom());
21011     }
21012
21013     edit.off = function() {
21014         context.map()
21015             .minzoom(0);
21016     };
21017
21018     return edit;
21019 };
21020 iD.behavior.Hash = function(context) {
21021     var s0 = null, // cached location.hash
21022         lat = 90 - 1e-8; // allowable latitude range
21023
21024     var parser = function(map, s) {
21025         var q = iD.util.stringQs(s);
21026         var args = (q.map || '').split('/').map(Number);
21027         if (args.length < 3 || args.some(isNaN)) {
21028             return true; // replace bogus hash
21029         } else if (s !== formatter(map).slice(1)) {
21030             map.centerZoom([args[1],
21031                 Math.min(lat, Math.max(-lat, args[2]))], args[0]);
21032         }
21033     };
21034
21035     var formatter = function(map) {
21036         var mode = context.mode(),
21037             center = map.center(),
21038             zoom = map.zoom(),
21039             precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)),
21040             q = _.omit(iD.util.stringQs(location.hash.substring(1)), 'comment'),
21041             newParams = {};
21042
21043         if (mode && mode.id === 'browse') {
21044             delete q.id;
21045         } else {
21046             var selected = context.selectedIDs().filter(function(id) {
21047                 return !context.entity(id).isNew();
21048             });
21049             if (selected.length) {
21050                 newParams.id = selected.join(',');
21051             }
21052         }
21053
21054         newParams.map = zoom.toFixed(2) +
21055                 '/' + center[0].toFixed(precision) +
21056                 '/' + center[1].toFixed(precision);
21057
21058         return '#' + iD.util.qsString(_.assign(q, newParams), true);
21059     };
21060
21061     function update() {
21062         var s1 = formatter(context.map());
21063         if (s0 !== s1) location.replace(s0 = s1); // don't recenter the map!
21064     }
21065
21066     var throttledUpdate = _.throttle(update, 500);
21067
21068     function hashchange() {
21069         if (location.hash === s0) return; // ignore spurious hashchange events
21070         if (parser(context.map(), (s0 = location.hash).substring(1))) {
21071             update(); // replace bogus hash
21072         }
21073     }
21074
21075     function hash() {
21076         context.map()
21077             .on('move.hash', throttledUpdate);
21078
21079         context
21080             .on('enter.hash', throttledUpdate);
21081
21082         d3.select(window)
21083             .on('hashchange.hash', hashchange);
21084
21085         if (location.hash) {
21086             var q = iD.util.stringQs(location.hash.substring(1));
21087             if (q.id) context.zoomToEntity(q.id.split(',')[0], !q.map);
21088             if (q.comment) context.storage('comment', q.comment);
21089             hashchange();
21090             if (q.map) hash.hadHash = true;
21091         }
21092     }
21093
21094     hash.off = function() {
21095         context.map()
21096             .on('move.hash', null);
21097
21098         context
21099             .on('enter.hash', null);
21100
21101         d3.select(window)
21102             .on('hashchange.hash', null);
21103
21104         location.hash = '';
21105     };
21106
21107     return hash;
21108 };
21109 /*
21110    The hover behavior adds the `.hover` class on mouseover to all elements to which
21111    the identical datum is bound, and removes it on mouseout.
21112
21113    The :hover pseudo-class is insufficient for iD's purposes because a datum's visual
21114    representation may consist of several elements scattered throughout the DOM hierarchy.
21115    Only one of these elements can have the :hover pseudo-class, but all of them will
21116    have the .hover class.
21117  */
21118 iD.behavior.Hover = function() {
21119     var dispatch = d3.dispatch('hover'),
21120         selection,
21121         altDisables,
21122         target;
21123
21124     function keydown() {
21125         if (altDisables && d3.event.keyCode === d3.keybinding.modifierCodes.alt) {
21126             dispatch.hover(null);
21127             selection.selectAll('.hover')
21128                 .classed('hover-suppressed', true)
21129                 .classed('hover', false);
21130         }
21131     }
21132
21133     function keyup() {
21134         if (altDisables && d3.event.keyCode === d3.keybinding.modifierCodes.alt) {
21135             dispatch.hover(target ? target.id : null);
21136             selection.selectAll('.hover-suppressed')
21137                 .classed('hover-suppressed', false)
21138                 .classed('hover', true);
21139         }
21140     }
21141
21142     var hover = function(__) {
21143         selection = __;
21144
21145         function enter(d) {
21146             if (d === target) return;
21147
21148             target = d;
21149
21150             selection.selectAll('.hover')
21151                 .classed('hover', false);
21152             selection.selectAll('.hover-suppressed')
21153                 .classed('hover-suppressed', false);
21154
21155             if (target instanceof iD.Entity) {
21156                 var selector = '.' + target.id;
21157
21158                 if (target.type === 'relation') {
21159                     target.members.forEach(function(member) {
21160                         selector += ', .' + member.id;
21161                     });
21162                 }
21163
21164                 var suppressed = altDisables && d3.event && d3.event.altKey;
21165
21166                 selection.selectAll(selector)
21167                     .classed(suppressed ? 'hover-suppressed' : 'hover', true);
21168
21169                 dispatch.hover(target.id);
21170             } else {
21171                 dispatch.hover(null);
21172             }
21173         }
21174
21175         var down;
21176
21177         function mouseover() {
21178             if (down) return;
21179             var target = d3.event.target;
21180             enter(target ? target.__data__ : null);
21181         }
21182
21183         function mouseout() {
21184             if (down) return;
21185             var target = d3.event.relatedTarget;
21186             enter(target ? target.__data__ : null);
21187         }
21188
21189         function mousedown() {
21190             down = true;
21191             d3.select(window)
21192                 .on('mouseup.hover', mouseup);
21193         }
21194
21195         function mouseup() {
21196             down = false;
21197         }
21198
21199         selection
21200             .on('mouseover.hover', mouseover)
21201             .on('mouseout.hover', mouseout)
21202             .on('mousedown.hover', mousedown)
21203             .on('mouseup.hover', mouseup);
21204
21205         d3.select(window)
21206             .on('keydown.hover', keydown)
21207             .on('keyup.hover', keyup);
21208     };
21209
21210     hover.off = function(selection) {
21211         selection.selectAll('.hover')
21212             .classed('hover', false);
21213         selection.selectAll('.hover-suppressed')
21214             .classed('hover-suppressed', false);
21215
21216         selection
21217             .on('mouseover.hover', null)
21218             .on('mouseout.hover', null)
21219             .on('mousedown.hover', null)
21220             .on('mouseup.hover', null);
21221
21222         d3.select(window)
21223             .on('keydown.hover', null)
21224             .on('keyup.hover', null)
21225             .on('mouseup.hover', null);
21226     };
21227
21228     hover.altDisables = function(_) {
21229         if (!arguments.length) return altDisables;
21230         altDisables = _;
21231         return hover;
21232     };
21233
21234     return d3.rebind(hover, dispatch, 'on');
21235 };
21236 iD.behavior.Lasso = function(context) {
21237
21238     var behavior = function(selection) {
21239
21240         var mouse = null,
21241             lasso;
21242
21243         function mousedown() {
21244             if (d3.event.shiftKey === true) {
21245
21246                 mouse = context.mouse();
21247                 lasso = null;
21248
21249                 selection
21250                     .on('mousemove.lasso', mousemove)
21251                     .on('mouseup.lasso', mouseup);
21252
21253                 d3.event.stopPropagation();
21254             }
21255         }
21256
21257         function mousemove() {
21258             if (!lasso) {
21259                 lasso = iD.ui.Lasso(context).a(mouse);
21260                 context.surface().call(lasso);
21261             }
21262
21263             lasso.b(context.mouse());
21264         }
21265
21266         function normalize(a, b) {
21267             return [
21268                 [Math.min(a[0], b[0]), Math.min(a[1], b[1])],
21269                 [Math.max(a[0], b[0]), Math.max(a[1], b[1])]];
21270         }
21271
21272         function mouseup() {
21273
21274             selection
21275                 .on('mousemove.lasso', null)
21276                 .on('mouseup.lasso', null);
21277
21278             if (!lasso) return;
21279
21280             var extent = iD.geo.Extent(
21281                 normalize(context.projection.invert(lasso.a()),
21282                 context.projection.invert(lasso.b())));
21283
21284             lasso.close();
21285
21286             var selected = context.intersects(extent).filter(function (entity) {
21287                 return entity.type === 'node';
21288             });
21289
21290             if (selected.length) {
21291                 context.enter(iD.modes.Select(context, _.pluck(selected, 'id')));
21292             }
21293         }
21294
21295         selection
21296             .on('mousedown.lasso', mousedown);
21297     };
21298
21299     behavior.off = function(selection) {
21300         selection.on('mousedown.lasso', null);
21301     };
21302
21303     return behavior;
21304 };
21305 iD.behavior.Paste = function(context) {
21306     var keybinding = d3.keybinding('paste');
21307
21308     function omitTag(v, k) {
21309         return (
21310             k === 'phone' ||
21311             k === 'fax' ||
21312             k === 'email' ||
21313             k === 'website' ||
21314             k === 'url' ||
21315             k === 'note' ||
21316             k === 'description' ||
21317             k.indexOf('name') !== -1 ||
21318             k.indexOf('wiki') === 0 ||
21319             k.indexOf('addr:') === 0 ||
21320             k.indexOf('contact:') === 0
21321         );
21322     }
21323
21324     function doPaste() {
21325         d3.event.preventDefault();
21326
21327         var mouse = context.mouse(),
21328             projection = context.projection,
21329             viewport = iD.geo.Extent(projection.clipExtent()).polygon();
21330
21331         if (!iD.geo.pointInPolygon(mouse, viewport)) return;
21332
21333         var extent = iD.geo.Extent(),
21334             oldIDs = context.copyIDs(),
21335             oldGraph = context.copyGraph(),
21336             newIDs = [],
21337             i, j;
21338
21339         if (!oldIDs.length) return;
21340
21341         for (i = 0; i < oldIDs.length; i++) {
21342             var oldEntity = oldGraph.entity(oldIDs[i]),
21343                 action = iD.actions.CopyEntity(oldEntity.id, oldGraph, true),
21344                 newEntities;
21345
21346             extent._extend(oldEntity.extent(oldGraph));
21347             context.perform(action);
21348
21349             // First element in `newEntities` contains the copied Entity,
21350             // Subsequent array elements contain any descendants..
21351             newEntities = action.newEntities();
21352             newIDs.push(newEntities[0].id);
21353
21354             for (j = 0; j < newEntities.length; j++) {
21355                 var newEntity = newEntities[j],
21356                     tags = _.omit(newEntity.tags, omitTag);
21357
21358                 context.perform(iD.actions.ChangeTags(newEntity.id, tags));
21359             }
21360         }
21361
21362         // Put pasted objects where mouse pointer is..
21363         var center = projection(extent.center()),
21364             delta = [ mouse[0] - center[0], mouse[1] - center[1] ];
21365
21366         context.perform(iD.actions.Move(newIDs, delta, projection));
21367         context.enter(iD.modes.Move(context, newIDs));
21368     }
21369
21370     function paste() {
21371         keybinding.on(iD.ui.cmd('⌘V'), doPaste);
21372         d3.select(document).call(keybinding);
21373         return paste;
21374     }
21375
21376     paste.off = function() {
21377         d3.select(document).call(keybinding.off);
21378     };
21379
21380     return paste;
21381 };
21382 iD.behavior.Select = function(context) {
21383     function keydown() {
21384         if (d3.event && d3.event.shiftKey) {
21385             context.surface()
21386                 .classed('behavior-multiselect', true);
21387         }
21388     }
21389
21390     function keyup() {
21391         if (!d3.event || !d3.event.shiftKey) {
21392             context.surface()
21393                 .classed('behavior-multiselect', false);
21394         }
21395     }
21396
21397     function click() {
21398         var datum = d3.event.target.__data__,
21399             lasso = d3.select('#surface .lasso').node(),
21400             mode = context.mode();
21401
21402         if (!(datum instanceof iD.Entity)) {
21403             if (!d3.event.shiftKey && !lasso && mode.id !== 'browse')
21404                 context.enter(iD.modes.Browse(context));
21405
21406         } else if (!d3.event.shiftKey && !lasso) {
21407             // Avoid re-entering Select mode with same entity.
21408             if (context.selectedIDs().length !== 1 || context.selectedIDs()[0] !== datum.id) {
21409                 context.enter(iD.modes.Select(context, [datum.id]));
21410             } else {
21411                 mode.suppressMenu(false).reselect();
21412             }
21413         } else if (context.selectedIDs().indexOf(datum.id) >= 0) {
21414             var selectedIDs = _.without(context.selectedIDs(), datum.id);
21415             context.enter(selectedIDs.length ?
21416                 iD.modes.Select(context, selectedIDs) :
21417                 iD.modes.Browse(context));
21418
21419         } else {
21420             context.enter(iD.modes.Select(context, context.selectedIDs().concat([datum.id])));
21421         }
21422     }
21423
21424     var behavior = function(selection) {
21425         d3.select(window)
21426             .on('keydown.select', keydown)
21427             .on('keyup.select', keyup);
21428
21429         selection.on('click.select', click);
21430
21431         keydown();
21432     };
21433
21434     behavior.off = function(selection) {
21435         d3.select(window)
21436             .on('keydown.select', null)
21437             .on('keyup.select', null);
21438
21439         selection.on('click.select', null);
21440
21441         keyup();
21442     };
21443
21444     return behavior;
21445 };
21446 iD.behavior.Tail = function() {
21447     var text,
21448         container,
21449         xmargin = 25,
21450         tooltipSize = [0, 0],
21451         selectionSize = [0, 0];
21452
21453     function tail(selection) {
21454         if (!text) return;
21455
21456         d3.select(window)
21457             .on('resize.tail', function() { selectionSize = selection.dimensions(); });
21458
21459         function show() {
21460             container.style('display', 'block');
21461             tooltipSize = container.dimensions();
21462         }
21463
21464         function mousemove() {
21465             if (container.style('display') === 'none') show();
21466             var xoffset = ((d3.event.clientX + tooltipSize[0] + xmargin) > selectionSize[0]) ?
21467                 -tooltipSize[0] - xmargin : xmargin;
21468             container.classed('left', xoffset > 0);
21469             iD.util.setTransform(container, d3.event.clientX + xoffset, d3.event.clientY);
21470         }
21471
21472         function mouseleave() {
21473             if (d3.event.relatedTarget !== container.node()) {
21474                 container.style('display', 'none');
21475             }
21476         }
21477
21478         function mouseenter() {
21479             if (d3.event.relatedTarget !== container.node()) {
21480                 show();
21481             }
21482         }
21483
21484         container = d3.select(document.body)
21485             .append('div')
21486             .style('display', 'none')
21487             .attr('class', 'tail tooltip-inner');
21488
21489         container.append('div')
21490             .text(text);
21491
21492         selection
21493             .on('mousemove.tail', mousemove)
21494             .on('mouseenter.tail', mouseenter)
21495             .on('mouseleave.tail', mouseleave);
21496
21497         container
21498             .on('mousemove.tail', mousemove);
21499
21500         tooltipSize = container.dimensions();
21501         selectionSize = selection.dimensions();
21502     }
21503
21504     tail.off = function(selection) {
21505         if (!text) return;
21506
21507         container
21508             .on('mousemove.tail', null)
21509             .remove();
21510
21511         selection
21512             .on('mousemove.tail', null)
21513             .on('mouseenter.tail', null)
21514             .on('mouseleave.tail', null);
21515
21516         d3.select(window)
21517             .on('resize.tail', null);
21518     };
21519
21520     tail.text = function(_) {
21521         if (!arguments.length) return text;
21522         text = _;
21523         return tail;
21524     };
21525
21526     return tail;
21527 };
21528 iD.modes = {};
21529 iD.modes.AddArea = function(context) {
21530     var mode = {
21531         id: 'add-area',
21532         button: 'area',
21533         title: t('modes.add_area.title'),
21534         description: t('modes.add_area.description'),
21535         key: '3'
21536     };
21537
21538     var behavior = iD.behavior.AddWay(context)
21539             .tail(t('modes.add_area.tail'))
21540             .on('start', start)
21541             .on('startFromWay', startFromWay)
21542             .on('startFromNode', startFromNode),
21543         defaultTags = {area: 'yes'};
21544
21545     function start(loc) {
21546         var graph = context.graph(),
21547             node = iD.Node({loc: loc}),
21548             way = iD.Way({tags: defaultTags});
21549
21550         context.perform(
21551             iD.actions.AddEntity(node),
21552             iD.actions.AddEntity(way),
21553             iD.actions.AddVertex(way.id, node.id),
21554             iD.actions.AddVertex(way.id, node.id));
21555
21556         context.enter(iD.modes.DrawArea(context, way.id, graph));
21557     }
21558
21559     function startFromWay(loc, edge) {
21560         var graph = context.graph(),
21561             node = iD.Node({loc: loc}),
21562             way = iD.Way({tags: defaultTags});
21563
21564         context.perform(
21565             iD.actions.AddEntity(node),
21566             iD.actions.AddEntity(way),
21567             iD.actions.AddVertex(way.id, node.id),
21568             iD.actions.AddVertex(way.id, node.id),
21569             iD.actions.AddMidpoint({ loc: loc, edge: edge }, node));
21570
21571         context.enter(iD.modes.DrawArea(context, way.id, graph));
21572     }
21573
21574     function startFromNode(node) {
21575         var graph = context.graph(),
21576             way = iD.Way({tags: defaultTags});
21577
21578         context.perform(
21579             iD.actions.AddEntity(way),
21580             iD.actions.AddVertex(way.id, node.id),
21581             iD.actions.AddVertex(way.id, node.id));
21582
21583         context.enter(iD.modes.DrawArea(context, way.id, graph));
21584     }
21585
21586     mode.enter = function() {
21587         context.install(behavior);
21588     };
21589
21590     mode.exit = function() {
21591         context.uninstall(behavior);
21592     };
21593
21594     return mode;
21595 };
21596 iD.modes.AddLine = function(context) {
21597     var mode = {
21598         id: 'add-line',
21599         button: 'line',
21600         title: t('modes.add_line.title'),
21601         description: t('modes.add_line.description'),
21602         key: '2'
21603     };
21604
21605     var behavior = iD.behavior.AddWay(context)
21606         .tail(t('modes.add_line.tail'))
21607         .on('start', start)
21608         .on('startFromWay', startFromWay)
21609         .on('startFromNode', startFromNode);
21610
21611     function start(loc) {
21612         var graph = context.graph(),
21613             node = iD.Node({loc: loc}),
21614             way = iD.Way();
21615
21616         context.perform(
21617             iD.actions.AddEntity(node),
21618             iD.actions.AddEntity(way),
21619             iD.actions.AddVertex(way.id, node.id));
21620
21621         context.enter(iD.modes.DrawLine(context, way.id, graph));
21622     }
21623
21624     function startFromWay(loc, edge) {
21625         var graph = context.graph(),
21626             node = iD.Node({loc: loc}),
21627             way = iD.Way();
21628
21629         context.perform(
21630             iD.actions.AddEntity(node),
21631             iD.actions.AddEntity(way),
21632             iD.actions.AddVertex(way.id, node.id),
21633             iD.actions.AddMidpoint({ loc: loc, edge: edge }, node));
21634
21635         context.enter(iD.modes.DrawLine(context, way.id, graph));
21636     }
21637
21638     function startFromNode(node) {
21639         var way = iD.Way();
21640
21641         context.perform(
21642             iD.actions.AddEntity(way),
21643             iD.actions.AddVertex(way.id, node.id));
21644
21645         context.enter(iD.modes.DrawLine(context, way.id, context.graph()));
21646     }
21647
21648     mode.enter = function() {
21649         context.install(behavior);
21650     };
21651
21652     mode.exit = function() {
21653         context.uninstall(behavior);
21654     };
21655
21656     return mode;
21657 };
21658 iD.modes.AddPoint = function(context) {
21659     var mode = {
21660         id: 'add-point',
21661         button: 'point',
21662         title: t('modes.add_point.title'),
21663         description: t('modes.add_point.description'),
21664         key: '1'
21665     };
21666
21667     var behavior = iD.behavior.Draw(context)
21668         .tail(t('modes.add_point.tail'))
21669         .on('click', add)
21670         .on('clickWay', addWay)
21671         .on('clickNode', addNode)
21672         .on('cancel', cancel)
21673         .on('finish', cancel);
21674
21675     function add(loc) {
21676         var node = iD.Node({loc: loc});
21677
21678         context.perform(
21679             iD.actions.AddEntity(node),
21680             t('operations.add.annotation.point'));
21681
21682         context.enter(
21683             iD.modes.Select(context, [node.id])
21684                 .suppressMenu(true)
21685                 .newFeature(true));
21686     }
21687
21688     function addWay(loc) {
21689         add(loc);
21690     }
21691
21692     function addNode(node) {
21693         add(node.loc);
21694     }
21695
21696     function cancel() {
21697         context.enter(iD.modes.Browse(context));
21698     }
21699
21700     mode.enter = function() {
21701         context.install(behavior);
21702     };
21703
21704     mode.exit = function() {
21705         context.uninstall(behavior);
21706     };
21707
21708     return mode;
21709 };
21710 iD.modes.Browse = function(context) {
21711     var mode = {
21712         button: 'browse',
21713         id: 'browse',
21714         title: t('modes.browse.title'),
21715         description: t('modes.browse.description')
21716     }, sidebar;
21717
21718     var behaviors = [
21719         iD.behavior.Paste(context),
21720         iD.behavior.Hover(context)
21721             .on('hover', context.ui().sidebar.hover),
21722         iD.behavior.Select(context),
21723         iD.behavior.Lasso(context),
21724         iD.modes.DragNode(context).behavior];
21725
21726     mode.enter = function() {
21727         behaviors.forEach(function(behavior) {
21728             context.install(behavior);
21729         });
21730
21731         // Get focus on the body.
21732         if (document.activeElement && document.activeElement.blur) {
21733             document.activeElement.blur();
21734         }
21735
21736         if (sidebar) {
21737             context.ui().sidebar.show(sidebar);
21738         } else {
21739             context.ui().sidebar.select(null);
21740         }
21741     };
21742
21743     mode.exit = function() {
21744         behaviors.forEach(function(behavior) {
21745             context.uninstall(behavior);
21746         });
21747
21748         if (sidebar) {
21749             context.ui().sidebar.hide(sidebar);
21750         }
21751     };
21752
21753     mode.sidebar = function(_) {
21754         if (!arguments.length) return sidebar;
21755         sidebar = _;
21756         return mode;
21757     };
21758
21759     return mode;
21760 };
21761 iD.modes.DragNode = function(context) {
21762     var mode = {
21763         id: 'drag-node',
21764         button: 'browse'
21765     };
21766
21767     var nudgeInterval,
21768         activeIDs,
21769         wasMidpoint,
21770         cancelled,
21771         selectedIDs = [],
21772         hover = iD.behavior.Hover(context)
21773             .altDisables(true)
21774             .on('hover', context.ui().sidebar.hover),
21775         edit = iD.behavior.Edit(context);
21776
21777     function edge(point, size) {
21778         var pad = [30, 100, 30, 100];
21779         if (point[0] > size[0] - pad[0]) return [-10, 0];
21780         else if (point[0] < pad[2]) return [10, 0];
21781         else if (point[1] > size[1] - pad[1]) return [0, -10];
21782         else if (point[1] < pad[3]) return [0, 10];
21783         return null;
21784     }
21785
21786     function startNudge(nudge) {
21787         if (nudgeInterval) window.clearInterval(nudgeInterval);
21788         nudgeInterval = window.setInterval(function() {
21789             context.pan(nudge);
21790         }, 50);
21791     }
21792
21793     function stopNudge() {
21794         if (nudgeInterval) window.clearInterval(nudgeInterval);
21795         nudgeInterval = null;
21796     }
21797
21798     function moveAnnotation(entity) {
21799         return t('operations.move.annotation.' + entity.geometry(context.graph()));
21800     }
21801
21802     function connectAnnotation(entity) {
21803         return t('operations.connect.annotation.' + entity.geometry(context.graph()));
21804     }
21805
21806     function origin(entity) {
21807         return context.projection(entity.loc);
21808     }
21809
21810     function start(entity) {
21811         cancelled = d3.event.sourceEvent.shiftKey ||
21812             context.features().hasHiddenConnections(entity, context.graph());
21813
21814         if (cancelled) return behavior.cancel();
21815
21816         wasMidpoint = entity.type === 'midpoint';
21817         if (wasMidpoint) {
21818             var midpoint = entity;
21819             entity = iD.Node();
21820             context.perform(iD.actions.AddMidpoint(midpoint, entity));
21821
21822              var vertex = context.surface()
21823                 .selectAll('.' + entity.id);
21824              behavior.target(vertex.node(), entity);
21825
21826         } else {
21827             context.perform(
21828                 iD.actions.Noop());
21829         }
21830
21831         activeIDs = _.pluck(context.graph().parentWays(entity), 'id');
21832         activeIDs.push(entity.id);
21833
21834         context.enter(mode);
21835     }
21836
21837     function datum() {
21838         if (d3.event.sourceEvent.altKey) {
21839             return {};
21840         }
21841
21842         return d3.event.sourceEvent.target.__data__ || {};
21843     }
21844
21845     // via https://gist.github.com/shawnbot/4166283
21846     function childOf(p, c) {
21847         if (p === c) return false;
21848         while (c && c !== p) c = c.parentNode;
21849         return c === p;
21850     }
21851
21852     function move(entity) {
21853         if (cancelled) return;
21854         d3.event.sourceEvent.stopPropagation();
21855
21856         var nudge = childOf(context.container().node(),
21857             d3.event.sourceEvent.toElement) &&
21858             edge(d3.event.point, context.map().dimensions());
21859
21860         if (nudge) startNudge(nudge);
21861         else stopNudge();
21862
21863         var loc = context.map().mouseCoordinates();
21864
21865         var d = datum();
21866         if (d.type === 'node' && d.id !== entity.id) {
21867             loc = d.loc;
21868         } else if (d.type === 'way' && !d3.select(d3.event.sourceEvent.target).classed('fill')) {
21869             loc = iD.geo.chooseEdge(context.childNodes(d), context.mouse(), context.projection).loc;
21870         }
21871
21872         context.replace(
21873             iD.actions.MoveNode(entity.id, loc),
21874             moveAnnotation(entity));
21875     }
21876
21877     function end(entity) {
21878         if (cancelled) return;
21879
21880         var d = datum();
21881
21882         if (d.type === 'way') {
21883             var choice = iD.geo.chooseEdge(context.childNodes(d), context.mouse(), context.projection);
21884             context.replace(
21885                 iD.actions.AddMidpoint({ loc: choice.loc, edge: [d.nodes[choice.index - 1], d.nodes[choice.index]] }, entity),
21886                 connectAnnotation(d));
21887
21888         } else if (d.type === 'node' && d.id !== entity.id) {
21889             context.replace(
21890                 iD.actions.Connect([d.id, entity.id]),
21891                 connectAnnotation(d));
21892
21893         } else if (wasMidpoint) {
21894             context.replace(
21895                 iD.actions.Noop(),
21896                 t('operations.add.annotation.vertex'));
21897
21898         } else {
21899             context.replace(
21900                 iD.actions.Noop(),
21901                 moveAnnotation(entity));
21902         }
21903
21904         var reselection = selectedIDs.filter(function(id) {
21905             return context.graph().hasEntity(id);
21906         });
21907
21908         if (reselection.length) {
21909             context.enter(
21910                 iD.modes.Select(context, reselection)
21911                     .suppressMenu(true));
21912         } else {
21913             context.enter(iD.modes.Browse(context));
21914         }
21915     }
21916
21917     function cancel() {
21918         behavior.cancel();
21919         context.enter(iD.modes.Browse(context));
21920     }
21921
21922     function setActiveElements() {
21923         context.surface().selectAll(iD.util.entitySelector(activeIDs))
21924             .classed('active', true);
21925     }
21926
21927     var behavior = iD.behavior.drag()
21928         .delegate('g.node, g.point, g.midpoint')
21929         .surface(context.surface().node())
21930         .origin(origin)
21931         .on('start', start)
21932         .on('move', move)
21933         .on('end', end);
21934
21935     mode.enter = function() {
21936         context.install(hover);
21937         context.install(edit);
21938
21939         context.history()
21940             .on('undone.drag-node', cancel);
21941
21942         context.map()
21943             .on('drawn.drag-node', setActiveElements);
21944
21945         setActiveElements();
21946     };
21947
21948     mode.exit = function() {
21949         context.uninstall(hover);
21950         context.uninstall(edit);
21951
21952         context.history()
21953             .on('undone.drag-node', null);
21954
21955         context.map()
21956             .on('drawn.drag-node', null);
21957
21958         context.surface()
21959             .selectAll('.active')
21960             .classed('active', false);
21961
21962         stopNudge();
21963     };
21964
21965     mode.selectedIDs = function(_) {
21966         if (!arguments.length) return selectedIDs;
21967         selectedIDs = _;
21968         return mode;
21969     };
21970
21971     mode.behavior = behavior;
21972
21973     return mode;
21974 };
21975 iD.modes.DrawArea = function(context, wayId, baseGraph) {
21976     var mode = {
21977         button: 'area',
21978         id: 'draw-area'
21979     };
21980
21981     var behavior;
21982
21983     mode.enter = function() {
21984         var way = context.entity(wayId),
21985             headId = way.nodes[way.nodes.length - 2],
21986             tailId = way.first();
21987
21988         behavior = iD.behavior.DrawWay(context, wayId, -1, mode, baseGraph)
21989             .tail(t('modes.draw_area.tail'));
21990
21991         var addNode = behavior.addNode;
21992
21993         behavior.addNode = function(node) {
21994             if (node.id === headId || node.id === tailId) {
21995                 behavior.finish();
21996             } else {
21997                 addNode(node);
21998             }
21999         };
22000
22001         context.install(behavior);
22002     };
22003
22004     mode.exit = function() {
22005         context.uninstall(behavior);
22006     };
22007
22008     mode.selectedIDs = function() {
22009         return [wayId];
22010     };
22011
22012     return mode;
22013 };
22014 iD.modes.DrawLine = function(context, wayId, baseGraph, affix) {
22015     var mode = {
22016         button: 'line',
22017         id: 'draw-line'
22018     };
22019
22020     var behavior;
22021
22022     mode.enter = function() {
22023         var way = context.entity(wayId),
22024             index = (affix === 'prefix') ? 0 : undefined,
22025             headId = (affix === 'prefix') ? way.first() : way.last();
22026
22027         behavior = iD.behavior.DrawWay(context, wayId, index, mode, baseGraph)
22028             .tail(t('modes.draw_line.tail'));
22029
22030         var addNode = behavior.addNode;
22031
22032         behavior.addNode = function(node) {
22033             if (node.id === headId) {
22034                 behavior.finish();
22035             } else {
22036                 addNode(node);
22037             }
22038         };
22039
22040         context.install(behavior);
22041     };
22042
22043     mode.exit = function() {
22044         context.uninstall(behavior);
22045     };
22046
22047     mode.selectedIDs = function() {
22048         return [wayId];
22049     };
22050
22051     return mode;
22052 };
22053 iD.modes.Move = function(context, entityIDs) {
22054     var mode = {
22055         id: 'move',
22056         button: 'browse'
22057     };
22058
22059     var keybinding = d3.keybinding('move'),
22060         edit = iD.behavior.Edit(context),
22061         annotation = entityIDs.length === 1 ?
22062             t('operations.move.annotation.' + context.geometry(entityIDs[0])) :
22063             t('operations.move.annotation.multiple'),
22064         cache,
22065         origin,
22066         nudgeInterval;
22067
22068     function vecSub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }
22069
22070     function edge(point, size) {
22071         var pad = [30, 100, 30, 100];
22072         if (point[0] > size[0] - pad[0]) return [-10, 0];
22073         else if (point[0] < pad[2]) return [10, 0];
22074         else if (point[1] > size[1] - pad[1]) return [0, -10];
22075         else if (point[1] < pad[3]) return [0, 10];
22076         return null;
22077     }
22078
22079     function startNudge(nudge) {
22080         if (nudgeInterval) window.clearInterval(nudgeInterval);
22081         nudgeInterval = window.setInterval(function() {
22082             context.pan(nudge);
22083
22084             var currMouse = context.mouse(),
22085                 origMouse = context.projection(origin),
22086                 delta = vecSub(vecSub(currMouse, origMouse), nudge),
22087                 action = iD.actions.Move(entityIDs, delta, context.projection, cache);
22088
22089             context.overwrite(action, annotation);
22090
22091         }, 50);
22092     }
22093
22094     function stopNudge() {
22095         if (nudgeInterval) window.clearInterval(nudgeInterval);
22096         nudgeInterval = null;
22097     }
22098
22099     function move() {
22100         var currMouse = context.mouse(),
22101             origMouse = context.projection(origin),
22102             delta = vecSub(currMouse, origMouse),
22103             action = iD.actions.Move(entityIDs, delta, context.projection, cache);
22104
22105         context.overwrite(action, annotation);
22106
22107         var nudge = edge(currMouse, context.map().dimensions());
22108         if (nudge) startNudge(nudge);
22109         else stopNudge();
22110     }
22111
22112     function finish() {
22113         d3.event.stopPropagation();
22114         context.enter(iD.modes.Select(context, entityIDs).suppressMenu(true));
22115         stopNudge();
22116     }
22117
22118     function cancel() {
22119         context.pop();
22120         context.enter(iD.modes.Select(context, entityIDs).suppressMenu(true));
22121         stopNudge();
22122     }
22123
22124     function undone() {
22125         context.enter(iD.modes.Browse(context));
22126     }
22127
22128     mode.enter = function() {
22129         origin = context.map().mouseCoordinates();
22130         cache = {};
22131
22132         context.install(edit);
22133
22134         context.perform(
22135             iD.actions.Noop(),
22136             annotation);
22137
22138         context.surface()
22139             .on('mousemove.move', move)
22140             .on('click.move', finish);
22141
22142         context.history()
22143             .on('undone.move', undone);
22144
22145         keybinding
22146             .on('⎋', cancel)
22147             .on('↩', finish);
22148
22149         d3.select(document)
22150             .call(keybinding);
22151     };
22152
22153     mode.exit = function() {
22154         stopNudge();
22155
22156         context.uninstall(edit);
22157
22158         context.surface()
22159             .on('mousemove.move', null)
22160             .on('click.move', null);
22161
22162         context.history()
22163             .on('undone.move', null);
22164
22165         keybinding.off();
22166     };
22167
22168     return mode;
22169 };
22170 iD.modes.RotateWay = function(context, wayId) {
22171     var mode = {
22172         id: 'rotate-way',
22173         button: 'browse'
22174     };
22175
22176     var keybinding = d3.keybinding('rotate-way'),
22177         edit = iD.behavior.Edit(context);
22178
22179     mode.enter = function() {
22180         context.install(edit);
22181
22182         var annotation = t('operations.rotate.annotation.' + context.geometry(wayId)),
22183             way = context.graph().entity(wayId),
22184             nodes = _.uniq(context.graph().childNodes(way)),
22185             points = nodes.map(function(n) { return context.projection(n.loc); }),
22186             pivot = d3.geom.polygon(points).centroid(),
22187             angle;
22188
22189         context.perform(
22190             iD.actions.Noop(),
22191             annotation);
22192
22193         function rotate() {
22194
22195             var mousePoint = context.mouse(),
22196                 newAngle = Math.atan2(mousePoint[1] - pivot[1], mousePoint[0] - pivot[0]);
22197
22198             if (typeof angle === 'undefined') angle = newAngle;
22199
22200             context.replace(
22201                 iD.actions.RotateWay(wayId, pivot, newAngle - angle, context.projection),
22202                 annotation);
22203
22204             angle = newAngle;
22205         }
22206
22207         function finish() {
22208             d3.event.stopPropagation();
22209             context.enter(iD.modes.Select(context, [wayId])
22210                 .suppressMenu(true));
22211         }
22212
22213         function cancel() {
22214             context.pop();
22215             context.enter(iD.modes.Select(context, [wayId])
22216                 .suppressMenu(true));
22217         }
22218
22219         function undone() {
22220             context.enter(iD.modes.Browse(context));
22221         }
22222
22223         context.surface()
22224             .on('mousemove.rotate-way', rotate)
22225             .on('click.rotate-way', finish);
22226
22227         context.history()
22228             .on('undone.rotate-way', undone);
22229
22230         keybinding
22231             .on('⎋', cancel)
22232             .on('↩', finish);
22233
22234         d3.select(document)
22235             .call(keybinding);
22236     };
22237
22238     mode.exit = function() {
22239         context.uninstall(edit);
22240
22241         context.surface()
22242             .on('mousemove.rotate-way', null)
22243             .on('click.rotate-way', null);
22244
22245         context.history()
22246             .on('undone.rotate-way', null);
22247
22248         keybinding.off();
22249     };
22250
22251     return mode;
22252 };
22253 iD.modes.Save = function(context) {
22254     var ui = iD.ui.Commit(context)
22255             .on('cancel', cancel)
22256             .on('save', save);
22257
22258     function cancel() {
22259         context.enter(iD.modes.Browse(context));
22260     }
22261
22262     function save(e, tryAgain) {
22263         function withChildNodes(ids, graph) {
22264             return _.uniq(_.reduce(ids, function(result, id) {
22265                 var e = graph.entity(id);
22266                 if (e.type === 'way') {
22267                     var cn = graph.childNodes(e);
22268                     result.push.apply(result, _.pluck(_.filter(cn, 'version'), 'id'));
22269                 }
22270                 return result;
22271             }, _.clone(ids)));
22272         }
22273
22274         var loading = iD.ui.Loading(context).message(t('save.uploading')).blocking(true),
22275             history = context.history(),
22276             origChanges = history.changes(iD.actions.DiscardTags(history.difference())),
22277             localGraph = context.graph(),
22278             remoteGraph = iD.Graph(history.base(), true),
22279             modified = _.filter(history.difference().summary(), {changeType: 'modified'}),
22280             toCheck = _.pluck(_.pluck(modified, 'entity'), 'id'),
22281             toLoad = withChildNodes(toCheck, localGraph),
22282             conflicts = [],
22283             errors = [];
22284
22285         if (!tryAgain) history.perform(iD.actions.Noop());  // checkpoint
22286         context.container().call(loading);
22287
22288         if (toCheck.length) {
22289             context.connection().loadMultiple(toLoad, loaded);
22290         } else {
22291             finalize();
22292         }
22293
22294
22295         // Reload modified entities into an alternate graph and check for conflicts..
22296         function loaded(err, result) {
22297             if (errors.length) return;
22298
22299             if (err) {
22300                 errors.push({
22301                     msg: err.responseText,
22302                     details: [ t('save.status_code', { code: err.status }) ]
22303                 });
22304                 showErrors();
22305
22306             } else {
22307                 var loadMore = [];
22308                 _.each(result.data, function(entity) {
22309                     remoteGraph.replace(entity);
22310                     toLoad = _.without(toLoad, entity.id);
22311
22312                     // Because loadMultiple doesn't download /full like loadEntity,
22313                     // need to also load children that aren't already being checked..
22314                     if (!entity.visible) return;
22315                     if (entity.type === 'way') {
22316                         loadMore.push.apply(loadMore,
22317                             _.difference(entity.nodes, toCheck, toLoad, loadMore));
22318                     } else if (entity.type === 'relation' && entity.isMultipolygon()) {
22319                         loadMore.push.apply(loadMore,
22320                             _.difference(_.pluck(entity.members, 'id'), toCheck, toLoad, loadMore));
22321                     }
22322                 });
22323
22324                 if (loadMore.length) {
22325                     toLoad.push.apply(toLoad, loadMore);
22326                     context.connection().loadMultiple(loadMore, loaded);
22327                 }
22328
22329                 if (!toLoad.length) {
22330                     checkConflicts();
22331                 }
22332             }
22333         }
22334
22335
22336         function checkConflicts() {
22337             function choice(id, text, action) {
22338                 return { id: id, text: text, action: function() { history.replace(action); } };
22339             }
22340             function formatUser(d) {
22341                 return '<a href="' + context.connection().userURL(d) + '" target="_blank">' + d + '</a>';
22342             }
22343             function entityName(entity) {
22344                 return iD.util.displayName(entity) || (iD.util.displayType(entity.id) + ' ' + entity.id);
22345             }
22346
22347             function compareVersions(local, remote) {
22348                 if (local.version !== remote.version) return false;
22349
22350                 if (local.type === 'way') {
22351                     var children = _.union(local.nodes, remote.nodes);
22352
22353                     for (var i = 0; i < children.length; i++) {
22354                         var a = localGraph.hasEntity(children[i]),
22355                             b = remoteGraph.hasEntity(children[i]);
22356
22357                         if (a && b && a.version !== b.version) return false;
22358                     }
22359                 }
22360
22361                 return true;
22362             }
22363
22364             _.each(toCheck, function(id) {
22365                 var local = localGraph.entity(id),
22366                     remote = remoteGraph.entity(id);
22367
22368                 if (compareVersions(local, remote)) return;
22369
22370                 var action = iD.actions.MergeRemoteChanges,
22371                     merge = action(id, localGraph, remoteGraph, formatUser);
22372
22373                 history.replace(merge);
22374
22375                 var mergeConflicts = merge.conflicts();
22376                 if (!mergeConflicts.length) return;  // merged safely
22377
22378                 var forceLocal = action(id, localGraph, remoteGraph).withOption('force_local'),
22379                     forceRemote = action(id, localGraph, remoteGraph).withOption('force_remote'),
22380                     keepMine = t('save.conflict.' + (remote.visible ? 'keep_local' : 'restore')),
22381                     keepTheirs = t('save.conflict.' + (remote.visible ? 'keep_remote' : 'delete'));
22382
22383                 conflicts.push({
22384                     id: id,
22385                     name: entityName(local),
22386                     details: mergeConflicts,
22387                     chosen: 1,
22388                     choices: [
22389                         choice(id, keepMine, forceLocal),
22390                         choice(id, keepTheirs, forceRemote)
22391                     ]
22392                 });
22393             });
22394
22395             finalize();
22396         }
22397
22398
22399         function finalize() {
22400             if (conflicts.length) {
22401                 conflicts.sort(function(a,b) { return b.id.localeCompare(a.id); });
22402                 showConflicts();
22403             } else if (errors.length) {
22404                 showErrors();
22405             } else {
22406                 var changes = history.changes(iD.actions.DiscardTags(history.difference()));
22407                 if (changes.modified.length || changes.created.length || changes.deleted.length) {
22408                     context.connection().putChangeset(
22409                         changes,
22410                         e.comment,
22411                         history.imageryUsed(),
22412                         function(err, changeset_id) {
22413                             if (err) {
22414                                 errors.push({
22415                                     msg: err.responseText,
22416                                     details: [ t('save.status_code', { code: err.status }) ]
22417                                 });
22418                                 showErrors();
22419                             } else {
22420                                 loading.close();
22421                                 context.flush();
22422                                 success(e, changeset_id);
22423                             }
22424                         });
22425                 } else {        // changes were insignificant or reverted by user
22426                     loading.close();
22427                     context.flush();
22428                     cancel();
22429                 }
22430             }
22431         }
22432
22433
22434         function showConflicts() {
22435             var selection = context.container()
22436                 .select('#sidebar')
22437                 .append('div')
22438                 .attr('class','sidebar-component');
22439
22440             loading.close();
22441
22442             selection.call(iD.ui.Conflicts(context)
22443                 .list(conflicts)
22444                 .on('download', function() {
22445                     var data = JXON.stringify(context.connection().osmChangeJXON('CHANGEME', origChanges)),
22446                         win = window.open('data:text/xml,' + encodeURIComponent(data), '_blank');
22447                     win.focus();
22448                 })
22449                 .on('cancel', function() {
22450                     history.pop();
22451                     selection.remove();
22452                 })
22453                 .on('save', function() {
22454                     for (var i = 0; i < conflicts.length; i++) {
22455                         if (conflicts[i].chosen === 1) {  // user chose "keep theirs"
22456                             var entity = context.hasEntity(conflicts[i].id);
22457                             if (entity && entity.type === 'way') {
22458                                 var children = _.uniq(entity.nodes);
22459                                 for (var j = 0; j < children.length; j++) {
22460                                     history.replace(iD.actions.Revert(children[j]));
22461                                 }
22462                             }
22463                             history.replace(iD.actions.Revert(conflicts[i].id));
22464                         }
22465                     }
22466
22467                     selection.remove();
22468                     save(e, true);
22469                 })
22470             );
22471         }
22472
22473
22474         function showErrors() {
22475             var selection = iD.ui.confirm(context.container());
22476
22477             history.pop();
22478             loading.close();
22479
22480             selection
22481                 .select('.modal-section.header')
22482                 .append('h3')
22483                 .text(t('save.error'));
22484
22485             addErrors(selection, errors);
22486             selection.okButton();
22487         }
22488
22489
22490         function addErrors(selection, data) {
22491             var message = selection
22492                 .select('.modal-section.message-text');
22493
22494             var items = message
22495                 .selectAll('.error-container')
22496                 .data(data);
22497
22498             var enter = items.enter()
22499                 .append('div')
22500                 .attr('class', 'error-container');
22501
22502             enter
22503                 .append('a')
22504                 .attr('class', 'error-description')
22505                 .attr('href', '#')
22506                 .classed('hide-toggle', true)
22507                 .text(function(d) { return d.msg || t('save.unknown_error_details'); })
22508                 .on('click', function() {
22509                     var error = d3.select(this),
22510                         detail = d3.select(this.nextElementSibling),
22511                         exp = error.classed('expanded');
22512
22513                     detail.style('display', exp ? 'none' : 'block');
22514                     error.classed('expanded', !exp);
22515
22516                     d3.event.preventDefault();
22517                 });
22518
22519             var details = enter
22520                 .append('div')
22521                 .attr('class', 'error-detail-container')
22522                 .style('display', 'none');
22523
22524             details
22525                 .append('ul')
22526                 .attr('class', 'error-detail-list')
22527                 .selectAll('li')
22528                 .data(function(d) { return d.details || []; })
22529                 .enter()
22530                 .append('li')
22531                 .attr('class', 'error-detail-item')
22532                 .text(function(d) { return d; });
22533
22534             items.exit()
22535                 .remove();
22536         }
22537
22538     }
22539
22540
22541     function success(e, changeset_id) {
22542         context.enter(iD.modes.Browse(context)
22543             .sidebar(iD.ui.Success(context)
22544                 .changeset({
22545                     id: changeset_id,
22546                     comment: e.comment
22547                 })
22548                 .on('cancel', function(ui) {
22549                     context.ui().sidebar.hide(ui);
22550                 })));
22551     }
22552
22553     var mode = {
22554         id: 'save'
22555     };
22556
22557     mode.enter = function() {
22558         context.connection().authenticate(function() {
22559             context.ui().sidebar.show(ui);
22560         });
22561     };
22562
22563     mode.exit = function() {
22564         context.ui().sidebar.hide(ui);
22565     };
22566
22567     return mode;
22568 };
22569 iD.modes.Select = function(context, selectedIDs) {
22570     var mode = {
22571         id: 'select',
22572         button: 'browse'
22573     };
22574
22575     var keybinding = d3.keybinding('select'),
22576         timeout = null,
22577         behaviors = [
22578             iD.behavior.Copy(context),
22579             iD.behavior.Paste(context),
22580             iD.behavior.Hover(context),
22581             iD.behavior.Select(context),
22582             iD.behavior.Lasso(context),
22583             iD.modes.DragNode(context)
22584                 .selectedIDs(selectedIDs)
22585                 .behavior],
22586         inspector,
22587         radialMenu,
22588         newFeature = false,
22589         suppressMenu = false;
22590
22591     var wrap = context.container()
22592         .select('.inspector-wrap');
22593
22594
22595     function singular() {
22596         if (selectedIDs.length === 1) {
22597             return context.entity(selectedIDs[0]);
22598         }
22599     }
22600
22601     function closeMenu() {
22602         if (radialMenu) {
22603             context.surface().call(radialMenu.close);
22604         }
22605     }
22606
22607     function positionMenu() {
22608         if (suppressMenu || !radialMenu) { return; }
22609
22610         var entity = singular();
22611         if (entity && context.geometry(entity.id) === 'relation') {
22612             suppressMenu = true;
22613         } else if (entity && entity.type === 'node') {
22614             radialMenu.center(context.projection(entity.loc));
22615         } else {
22616             var point = context.mouse(),
22617                 viewport = iD.geo.Extent(context.projection.clipExtent()).polygon();
22618             if (iD.geo.pointInPolygon(point, viewport)) {
22619                 radialMenu.center(point);
22620             } else {
22621                 suppressMenu = true;
22622             }
22623         }
22624     }
22625
22626     function showMenu() {
22627         closeMenu();
22628         if (!suppressMenu && radialMenu) {
22629             context.surface().call(radialMenu);
22630         }
22631     }
22632
22633     mode.selectedIDs = function() {
22634         return selectedIDs;
22635     };
22636
22637     mode.reselect = function() {
22638         var surfaceNode = context.surface().node();
22639         if (surfaceNode.focus) { // FF doesn't support it
22640             surfaceNode.focus();
22641         }
22642
22643         positionMenu();
22644         showMenu();
22645     };
22646
22647     mode.newFeature = function(_) {
22648         if (!arguments.length) return newFeature;
22649         newFeature = _;
22650         return mode;
22651     };
22652
22653     mode.suppressMenu = function(_) {
22654         if (!arguments.length) return suppressMenu;
22655         suppressMenu = _;
22656         return mode;
22657     };
22658
22659     mode.enter = function() {
22660         function update() {
22661             closeMenu();
22662             if (_.any(selectedIDs, function(id) { return !context.hasEntity(id); })) {
22663                 // Exit mode if selected entity gets undone
22664                 context.enter(iD.modes.Browse(context));
22665             }
22666         }
22667
22668         function dblclick() {
22669             var target = d3.select(d3.event.target),
22670                 datum = target.datum();
22671
22672             if (datum instanceof iD.Way && !target.classed('fill')) {
22673                 var choice = iD.geo.chooseEdge(context.childNodes(datum), context.mouse(), context.projection),
22674                     node = iD.Node();
22675
22676                 var prev = datum.nodes[choice.index - 1],
22677                     next = datum.nodes[choice.index];
22678
22679                 context.perform(
22680                     iD.actions.AddMidpoint({loc: choice.loc, edge: [prev, next]}, node),
22681                     t('operations.add.annotation.vertex'));
22682
22683                 d3.event.preventDefault();
22684                 d3.event.stopPropagation();
22685             }
22686         }
22687
22688         function selectElements(drawn) {
22689             var entity = singular();
22690             if (entity && context.geometry(entity.id) === 'relation') {
22691                 suppressMenu = true;
22692                 return;
22693             }
22694
22695             var selection = context.surface()
22696                     .selectAll(iD.util.entityOrMemberSelector(selectedIDs, context.graph()));
22697
22698             if (selection.empty()) {
22699                 if (drawn) {  // Exit mode if selected DOM elements have disappeared..
22700                     context.enter(iD.modes.Browse(context));
22701                 }
22702             } else {
22703                 selection
22704                     .classed('selected', true);
22705             }
22706         }
22707
22708
22709         behaviors.forEach(function(behavior) {
22710             context.install(behavior);
22711         });
22712
22713         var operations = _.without(d3.values(iD.operations), iD.operations.Delete)
22714                 .map(function(o) { return o(selectedIDs, context); })
22715                 .filter(function(o) { return o.available(); });
22716
22717         operations.unshift(iD.operations.Delete(selectedIDs, context));
22718
22719         keybinding.on('⎋', function() {
22720             context.enter(iD.modes.Browse(context));
22721         }, true);
22722
22723         operations.forEach(function(operation) {
22724             operation.keys.forEach(function(key) {
22725                 keybinding.on(key, function() {
22726                     if (!operation.disabled()) {
22727                         operation();
22728                     }
22729                 });
22730             });
22731         });
22732
22733         d3.select(document)
22734             .call(keybinding);
22735
22736         radialMenu = iD.ui.RadialMenu(context, operations);
22737
22738         context.ui().sidebar
22739             .select(singular() ? singular().id : null, newFeature);
22740
22741         context.history()
22742             .on('undone.select', update)
22743             .on('redone.select', update);
22744
22745         context.map()
22746             .on('move.select', closeMenu)
22747             .on('drawn.select', selectElements);
22748
22749         selectElements();
22750
22751         var show = d3.event && !suppressMenu;
22752
22753         if (show) {
22754             positionMenu();
22755         }
22756
22757         timeout = window.setTimeout(function() {
22758             if (show) {
22759                 showMenu();
22760             }
22761
22762             context.surface()
22763                 .on('dblclick.select', dblclick);
22764         }, 200);
22765
22766         if (selectedIDs.length > 1) {
22767             var entities = iD.ui.SelectionList(context, selectedIDs);
22768             context.ui().sidebar.show(entities);
22769         }
22770     };
22771
22772     mode.exit = function() {
22773         if (timeout) window.clearTimeout(timeout);
22774
22775         if (inspector) wrap.call(inspector.close);
22776
22777         behaviors.forEach(function(behavior) {
22778             context.uninstall(behavior);
22779         });
22780
22781         keybinding.off();
22782         closeMenu();
22783         radialMenu = undefined;
22784
22785         context.history()
22786             .on('undone.select', null)
22787             .on('redone.select', null);
22788
22789         context.surface()
22790             .on('dblclick.select', null)
22791             .selectAll('.selected')
22792             .classed('selected', false);
22793
22794         context.map().on('drawn.select', null);
22795         context.ui().sidebar.hide();
22796     };
22797
22798     return mode;
22799 };
22800 iD.operations = {};
22801 iD.operations.Circularize = function(selectedIDs, context) {
22802     var entityId = selectedIDs[0],
22803         entity = context.entity(entityId),
22804         extent = entity.extent(context.graph()),
22805         geometry = context.geometry(entityId),
22806         action = iD.actions.Circularize(entityId, context.projection);
22807
22808     var operation = function() {
22809         var annotation = t('operations.circularize.annotation.' + geometry);
22810         context.perform(action, annotation);
22811     };
22812
22813     operation.available = function() {
22814         return selectedIDs.length === 1 &&
22815             entity.type === 'way' &&
22816             _.uniq(entity.nodes).length > 1;
22817     };
22818
22819     operation.disabled = function() {
22820         var reason;
22821         if (extent.percentContainedIn(context.extent()) < 0.8) {
22822             reason = 'too_large';
22823         } else if (context.hasHiddenConnections(entityId)) {
22824             reason = 'connected_to_hidden';
22825         }
22826         return action.disabled(context.graph()) || reason;
22827     };
22828
22829     operation.tooltip = function() {
22830         var disable = operation.disabled();
22831         return disable ?
22832             t('operations.circularize.' + disable) :
22833             t('operations.circularize.description.' + geometry);
22834     };
22835
22836     operation.id = 'circularize';
22837     operation.keys = [t('operations.circularize.key')];
22838     operation.title = t('operations.circularize.title');
22839
22840     return operation;
22841 };
22842 iD.operations.Continue = function(selectedIDs, context) {
22843     var graph = context.graph(),
22844         entities = selectedIDs.map(function(id) { return graph.entity(id); }),
22845         geometries = _.extend({line: [], vertex: []},
22846             _.groupBy(entities, function(entity) { return entity.geometry(graph); })),
22847         vertex = geometries.vertex[0];
22848
22849     function candidateWays() {
22850         return graph.parentWays(vertex).filter(function(parent) {
22851             return parent.geometry(graph) === 'line' &&
22852                 parent.affix(vertex.id) &&
22853                 (geometries.line.length === 0 || geometries.line[0] === parent);
22854         });
22855     }
22856
22857     var operation = function() {
22858         var candidate = candidateWays()[0];
22859         context.enter(iD.modes.DrawLine(
22860             context,
22861             candidate.id,
22862             context.graph(),
22863             candidate.affix(vertex.id)));
22864     };
22865
22866     operation.available = function() {
22867         return geometries.vertex.length === 1 && geometries.line.length <= 1 &&
22868             !context.features().hasHiddenConnections(vertex, context.graph());
22869     };
22870
22871     operation.disabled = function() {
22872         var candidates = candidateWays();
22873         if (candidates.length === 0)
22874             return 'not_eligible';
22875         if (candidates.length > 1)
22876             return 'multiple';
22877     };
22878
22879     operation.tooltip = function() {
22880         var disable = operation.disabled();
22881         return disable ?
22882             t('operations.continue.' + disable) :
22883             t('operations.continue.description');
22884     };
22885
22886     operation.id = 'continue';
22887     operation.keys = [t('operations.continue.key')];
22888     operation.title = t('operations.continue.title');
22889
22890     return operation;
22891 };
22892 iD.operations.Delete = function(selectedIDs, context) {
22893     var action = iD.actions.DeleteMultiple(selectedIDs);
22894
22895     var operation = function() {
22896         var annotation,
22897             nextSelectedID;
22898
22899         if (selectedIDs.length > 1) {
22900             annotation = t('operations.delete.annotation.multiple', {n: selectedIDs.length});
22901
22902         } else {
22903             var id = selectedIDs[0],
22904                 entity = context.entity(id),
22905                 geometry = context.geometry(id),
22906                 parents = context.graph().parentWays(entity),
22907                 parent = parents[0];
22908
22909             annotation = t('operations.delete.annotation.' + geometry);
22910
22911             // Select the next closest node in the way.
22912             if (geometry === 'vertex' && parents.length === 1 && parent.nodes.length > 2) {
22913                 var nodes = parent.nodes,
22914                     i = nodes.indexOf(id);
22915
22916                 if (i === 0) {
22917                     i++;
22918                 } else if (i === nodes.length - 1) {
22919                     i--;
22920                 } else {
22921                     var a = iD.geo.sphericalDistance(entity.loc, context.entity(nodes[i - 1]).loc),
22922                         b = iD.geo.sphericalDistance(entity.loc, context.entity(nodes[i + 1]).loc);
22923                     i = a < b ? i - 1 : i + 1;
22924                 }
22925
22926                 nextSelectedID = nodes[i];
22927             }
22928         }
22929
22930         if (nextSelectedID && context.hasEntity(nextSelectedID)) {
22931             context.enter(iD.modes.Select(context, [nextSelectedID]));
22932         } else {
22933             context.enter(iD.modes.Browse(context));
22934         }
22935
22936         context.perform(
22937             action,
22938             annotation);
22939     };
22940
22941     operation.available = function() {
22942         return true;
22943     };
22944
22945     operation.disabled = function() {
22946         var reason;
22947         if (_.any(selectedIDs, context.hasHiddenConnections)) {
22948             reason = 'connected_to_hidden';
22949         }
22950         return action.disabled(context.graph()) || reason;
22951     };
22952
22953     operation.tooltip = function() {
22954         var disable = operation.disabled();
22955         return disable ?
22956             t('operations.delete.' + disable) :
22957             t('operations.delete.description');
22958     };
22959
22960     operation.id = 'delete';
22961     operation.keys = [iD.ui.cmd('⌘⌫'), iD.ui.cmd('⌘⌦')];
22962     operation.title = t('operations.delete.title');
22963
22964     return operation;
22965 };
22966 iD.operations.Disconnect = function(selectedIDs, context) {
22967     var vertices = _.filter(selectedIDs, function vertex(entityId) {
22968         return context.geometry(entityId) === 'vertex';
22969     });
22970
22971     var entityId = vertices[0],
22972         action = iD.actions.Disconnect(entityId);
22973
22974     if (selectedIDs.length > 1) {
22975         action.limitWays(_.without(selectedIDs, entityId));
22976     }
22977
22978     var operation = function() {
22979         context.perform(action, t('operations.disconnect.annotation'));
22980     };
22981
22982     operation.available = function() {
22983         return vertices.length === 1;
22984     };
22985
22986     operation.disabled = function() {
22987         var reason;
22988         if (_.any(selectedIDs, context.hasHiddenConnections)) {
22989             reason = 'connected_to_hidden';
22990         }
22991         return action.disabled(context.graph()) || reason;
22992     };
22993
22994     operation.tooltip = function() {
22995         var disable = operation.disabled();
22996         return disable ?
22997             t('operations.disconnect.' + disable) :
22998             t('operations.disconnect.description');
22999     };
23000
23001     operation.id = 'disconnect';
23002     operation.keys = [t('operations.disconnect.key')];
23003     operation.title = t('operations.disconnect.title');
23004
23005     return operation;
23006 };
23007 iD.operations.Merge = function(selectedIDs, context) {
23008     var join = iD.actions.Join(selectedIDs),
23009         merge = iD.actions.Merge(selectedIDs),
23010         mergePolygon = iD.actions.MergePolygon(selectedIDs);
23011
23012     var operation = function() {
23013         var annotation = t('operations.merge.annotation', {n: selectedIDs.length}),
23014             action;
23015
23016         if (!join.disabled(context.graph())) {
23017             action = join;
23018         } else if (!merge.disabled(context.graph())) {
23019             action = merge;
23020         } else {
23021             action = mergePolygon;
23022         }
23023
23024         context.perform(action, annotation);
23025         context.enter(iD.modes.Select(context, selectedIDs.filter(function(id) { return context.hasEntity(id); }))
23026             .suppressMenu(true));
23027     };
23028
23029     operation.available = function() {
23030         return selectedIDs.length >= 2;
23031     };
23032
23033     operation.disabled = function() {
23034         return join.disabled(context.graph()) &&
23035             merge.disabled(context.graph()) &&
23036             mergePolygon.disabled(context.graph());
23037     };
23038
23039     operation.tooltip = function() {
23040         var j = join.disabled(context.graph()),
23041             m = merge.disabled(context.graph()),
23042             p = mergePolygon.disabled(context.graph());
23043
23044         if (j === 'restriction' && m && p)
23045             return t('operations.merge.restriction', {relation: context.presets().item('type/restriction').name()});
23046
23047         if (p === 'incomplete_relation' && j && m)
23048             return t('operations.merge.incomplete_relation');
23049
23050         if (j && m && p)
23051             return t('operations.merge.' + j);
23052
23053         return t('operations.merge.description');
23054     };
23055
23056     operation.id = 'merge';
23057     operation.keys = [t('operations.merge.key')];
23058     operation.title = t('operations.merge.title');
23059
23060     return operation;
23061 };
23062 iD.operations.Move = function(selectedIDs, context) {
23063     var extent = selectedIDs.reduce(function(extent, id) {
23064             return extent.extend(context.entity(id).extent(context.graph()));
23065         }, iD.geo.Extent());
23066
23067     var operation = function() {
23068         context.enter(iD.modes.Move(context, selectedIDs));
23069     };
23070
23071     operation.available = function() {
23072         return selectedIDs.length > 1 ||
23073             context.entity(selectedIDs[0]).type !== 'node';
23074     };
23075
23076     operation.disabled = function() {
23077         var reason;
23078         if (extent.area() && extent.percentContainedIn(context.extent()) < 0.8) {
23079             reason = 'too_large';
23080         } else if (_.any(selectedIDs, context.hasHiddenConnections)) {
23081             reason = 'connected_to_hidden';
23082         }
23083         return iD.actions.Move(selectedIDs).disabled(context.graph()) || reason;
23084     };
23085
23086     operation.tooltip = function() {
23087         var disable = operation.disabled();
23088         return disable ?
23089             t('operations.move.' + disable) :
23090             t('operations.move.description');
23091     };
23092
23093     operation.id = 'move';
23094     operation.keys = [t('operations.move.key')];
23095     operation.title = t('operations.move.title');
23096
23097     return operation;
23098 };
23099 iD.operations.Orthogonalize = function(selectedIDs, context) {
23100     var entityId = selectedIDs[0],
23101         entity = context.entity(entityId),
23102         extent = entity.extent(context.graph()),
23103         geometry = context.geometry(entityId),
23104         action = iD.actions.Orthogonalize(entityId, context.projection);
23105
23106     var operation = function() {
23107         var annotation = t('operations.orthogonalize.annotation.' + geometry);
23108         context.perform(action, annotation);
23109     };
23110
23111     operation.available = function() {
23112         return selectedIDs.length === 1 &&
23113             entity.type === 'way' &&
23114             entity.isClosed() &&
23115             _.uniq(entity.nodes).length > 2;
23116     };
23117
23118     operation.disabled = function() {
23119         var reason;
23120         if (extent.percentContainedIn(context.extent()) < 0.8) {
23121             reason = 'too_large';
23122         } else if (context.hasHiddenConnections(entityId)) {
23123             reason = 'connected_to_hidden';
23124         }
23125         return action.disabled(context.graph()) || reason;
23126     };
23127
23128     operation.tooltip = function() {
23129         var disable = operation.disabled();
23130         return disable ?
23131             t('operations.orthogonalize.' + disable) :
23132             t('operations.orthogonalize.description.' + geometry);
23133     };
23134
23135     operation.id = 'orthogonalize';
23136     operation.keys = [t('operations.orthogonalize.key')];
23137     operation.title = t('operations.orthogonalize.title');
23138
23139     return operation;
23140 };
23141 iD.operations.Reverse = function(selectedIDs, context) {
23142     var entityId = selectedIDs[0];
23143
23144     var operation = function() {
23145         context.perform(
23146             iD.actions.Reverse(entityId),
23147             t('operations.reverse.annotation'));
23148     };
23149
23150     operation.available = function() {
23151         return selectedIDs.length === 1 &&
23152             context.geometry(entityId) === 'line';
23153     };
23154
23155     operation.disabled = function() {
23156         return false;
23157     };
23158
23159     operation.tooltip = function() {
23160         return t('operations.reverse.description');
23161     };
23162
23163     operation.id = 'reverse';
23164     operation.keys = [t('operations.reverse.key')];
23165     operation.title = t('operations.reverse.title');
23166
23167     return operation;
23168 };
23169 iD.operations.Rotate = function(selectedIDs, context) {
23170     var entityId = selectedIDs[0],
23171         entity = context.entity(entityId),
23172         extent = entity.extent(context.graph()),
23173         geometry = context.geometry(entityId);
23174
23175     var operation = function() {
23176         context.enter(iD.modes.RotateWay(context, entityId));
23177     };
23178
23179     operation.available = function() {
23180         if (selectedIDs.length !== 1 || entity.type !== 'way')
23181             return false;
23182         if (geometry === 'area')
23183             return true;
23184         if (entity.isClosed() &&
23185             context.graph().parentRelations(entity).some(function(r) { return r.isMultipolygon(); }))
23186             return true;
23187         return false;
23188     };
23189
23190     operation.disabled = function() {
23191         if (extent.percentContainedIn(context.extent()) < 0.8) {
23192             return 'too_large';
23193         } else if (context.hasHiddenConnections(entityId)) {
23194             return 'connected_to_hidden';
23195         } else {
23196             return false;
23197         }
23198     };
23199
23200     operation.tooltip = function() {
23201         var disable = operation.disabled();
23202         return disable ?
23203             t('operations.rotate.' + disable) :
23204             t('operations.rotate.description');
23205     };
23206
23207     operation.id = 'rotate';
23208     operation.keys = [t('operations.rotate.key')];
23209     operation.title = t('operations.rotate.title');
23210
23211     return operation;
23212 };
23213 iD.operations.Split = function(selectedIDs, context) {
23214     var vertices = _.filter(selectedIDs, function vertex(entityId) {
23215         return context.geometry(entityId) === 'vertex';
23216     });
23217
23218     var entityId = vertices[0],
23219         action = iD.actions.Split(entityId);
23220
23221     if (selectedIDs.length > 1) {
23222         action.limitWays(_.without(selectedIDs, entityId));
23223     }
23224
23225     var operation = function() {
23226         var annotation;
23227
23228         var ways = action.ways(context.graph());
23229         if (ways.length === 1) {
23230             annotation = t('operations.split.annotation.' + context.geometry(ways[0].id));
23231         } else {
23232             annotation = t('operations.split.annotation.multiple', {n: ways.length});
23233         }
23234
23235         var difference = context.perform(action, annotation);
23236         context.enter(iD.modes.Select(context, difference.extantIDs()));
23237     };
23238
23239     operation.available = function() {
23240         return vertices.length === 1;
23241     };
23242
23243     operation.disabled = function() {
23244         var reason;
23245         if (_.any(selectedIDs, context.hasHiddenConnections)) {
23246             reason = 'connected_to_hidden';
23247         }
23248         return action.disabled(context.graph()) || reason;
23249     };
23250
23251     operation.tooltip = function() {
23252         var disable = operation.disabled();
23253         if (disable) {
23254             return t('operations.split.' + disable);
23255         }
23256
23257         var ways = action.ways(context.graph());
23258         if (ways.length === 1) {
23259             return t('operations.split.description.' + context.geometry(ways[0].id));
23260         } else {
23261             return t('operations.split.description.multiple');
23262         }
23263     };
23264
23265     operation.id = 'split';
23266     operation.keys = [t('operations.split.key')];
23267     operation.title = t('operations.split.title');
23268
23269     return operation;
23270 };
23271 iD.operations.Straighten = function(selectedIDs, context) {
23272     var entityId = selectedIDs[0],
23273         action = iD.actions.Straighten(entityId, context.projection);
23274
23275     function operation() {
23276         var annotation = t('operations.straighten.annotation');
23277         context.perform(action, annotation);
23278     }
23279
23280     operation.available = function() {
23281         var entity = context.entity(entityId);
23282         return selectedIDs.length === 1 &&
23283             entity.type === 'way' &&
23284             !entity.isClosed() &&
23285             _.uniq(entity.nodes).length > 2;
23286     };
23287
23288     operation.disabled = function() {
23289         var reason;
23290         if (context.hasHiddenConnections(entityId)) {
23291             reason = 'connected_to_hidden';
23292         }
23293         return action.disabled(context.graph()) || reason;
23294     };
23295
23296     operation.tooltip = function() {
23297         var disable = operation.disabled();
23298         return disable ?
23299             t('operations.straighten.' + disable) :
23300             t('operations.straighten.description');
23301     };
23302
23303     operation.id = 'straighten';
23304     operation.keys = [t('operations.straighten.key')];
23305     operation.title = t('operations.straighten.title');
23306
23307     return operation;
23308 };
23309 iD.Connection = function() {
23310     var event = d3.dispatch('authenticating', 'authenticated', 'auth', 'loading', 'loaded'),
23311         url = 'http://www.openstreetmap.org',
23312         connection = {},
23313         inflight = {},
23314         loadedTiles = {},
23315         tileZoom = 16,
23316         oauth = osmAuth({
23317             url: 'http://www.openstreetmap.org',
23318             oauth_consumer_key: '5A043yRSEugj4DJ5TljuapfnrflWDte8jTOcWLlT',
23319             oauth_secret: 'aB3jKq1TRsCOUrfOIZ6oQMEDmv2ptV76PA54NGLL',
23320             loading: authenticating,
23321             done: authenticated
23322         }),
23323         ndStr = 'nd',
23324         tagStr = 'tag',
23325         memberStr = 'member',
23326         nodeStr = 'node',
23327         wayStr = 'way',
23328         relationStr = 'relation',
23329         userDetails,
23330         off;
23331
23332
23333     connection.changesetURL = function(changesetId) {
23334         return url + '/changeset/' + changesetId;
23335     };
23336
23337     connection.changesetsURL = function(center, zoom) {
23338         var precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2));
23339         return url + '/history#map=' +
23340             Math.floor(zoom) + '/' +
23341             center[1].toFixed(precision) + '/' +
23342             center[0].toFixed(precision);
23343     };
23344
23345     connection.entityURL = function(entity) {
23346         return url + '/' + entity.type + '/' + entity.osmId();
23347     };
23348
23349     connection.userURL = function(username) {
23350         return url + '/user/' + username;
23351     };
23352
23353     connection.loadFromURL = function(url, callback) {
23354         function done(err, dom) {
23355             return callback(err, parse(dom));
23356         }
23357         return d3.xml(url).get(done);
23358     };
23359
23360     connection.loadEntity = function(id, callback) {
23361         var type = iD.Entity.id.type(id),
23362             osmID = iD.Entity.id.toOSM(id);
23363
23364         connection.loadFromURL(
23365             url + '/api/0.6/' + type + '/' + osmID + (type !== 'node' ? '/full' : ''),
23366             function(err, entities) {
23367                 if (callback) callback(err, {data: entities});
23368             });
23369     };
23370
23371     connection.loadMultiple = function(ids, callback) {
23372         // TODO: upgrade lodash and just use _.chunk
23373         function chunk(arr, chunkSize) {
23374             var result = [];
23375             for (var i = 0; i < arr.length; i += chunkSize) {
23376                 result.push(arr.slice(i, i + chunkSize));
23377             }
23378             return result;
23379         }
23380
23381         _.each(_.groupBy(ids, iD.Entity.id.type), function(v, k) {
23382             var type = k + 's',
23383                 osmIDs = _.map(v, iD.Entity.id.toOSM);
23384
23385             _.each(chunk(osmIDs, 150), function(arr) {
23386                 connection.loadFromURL(
23387                     url + '/api/0.6/' + type + '?' + type + '=' + arr.join(),
23388                     function(err, entities) {
23389                         if (callback) callback(err, {data: entities});
23390                     });
23391             });
23392         });
23393     };
23394
23395     function authenticating() {
23396         event.authenticating();
23397     }
23398
23399     function authenticated() {
23400         event.authenticated();
23401     }
23402
23403     function getLoc(attrs) {
23404         var lon = attrs.lon && attrs.lon.value,
23405             lat = attrs.lat && attrs.lat.value;
23406         return [parseFloat(lon), parseFloat(lat)];
23407     }
23408
23409     function getNodes(obj) {
23410         var elems = obj.getElementsByTagName(ndStr),
23411             nodes = new Array(elems.length);
23412         for (var i = 0, l = elems.length; i < l; i++) {
23413             nodes[i] = 'n' + elems[i].attributes.ref.value;
23414         }
23415         return nodes;
23416     }
23417
23418     function getTags(obj) {
23419         var elems = obj.getElementsByTagName(tagStr),
23420             tags = {};
23421         for (var i = 0, l = elems.length; i < l; i++) {
23422             var attrs = elems[i].attributes;
23423             tags[attrs.k.value] = attrs.v.value;
23424         }
23425         return tags;
23426     }
23427
23428     function getMembers(obj) {
23429         var elems = obj.getElementsByTagName(memberStr),
23430             members = new Array(elems.length);
23431         for (var i = 0, l = elems.length; i < l; i++) {
23432             var attrs = elems[i].attributes;
23433             members[i] = {
23434                 id: attrs.type.value[0] + attrs.ref.value,
23435                 type: attrs.type.value,
23436                 role: attrs.role.value
23437             };
23438         }
23439         return members;
23440     }
23441
23442     function getVisible(attrs) {
23443         return (!attrs.visible || attrs.visible.value !== 'false');
23444     }
23445
23446     var parsers = {
23447         node: function nodeData(obj) {
23448             var attrs = obj.attributes;
23449             return new iD.Node({
23450                 id: iD.Entity.id.fromOSM(nodeStr, attrs.id.value),
23451                 loc: getLoc(attrs),
23452                 version: attrs.version.value,
23453                 user: attrs.user && attrs.user.value,
23454                 tags: getTags(obj),
23455                 visible: getVisible(attrs)
23456             });
23457         },
23458
23459         way: function wayData(obj) {
23460             var attrs = obj.attributes;
23461             return new iD.Way({
23462                 id: iD.Entity.id.fromOSM(wayStr, attrs.id.value),
23463                 version: attrs.version.value,
23464                 user: attrs.user && attrs.user.value,
23465                 tags: getTags(obj),
23466                 nodes: getNodes(obj),
23467                 visible: getVisible(attrs)
23468             });
23469         },
23470
23471         relation: function relationData(obj) {
23472             var attrs = obj.attributes;
23473             return new iD.Relation({
23474                 id: iD.Entity.id.fromOSM(relationStr, attrs.id.value),
23475                 version: attrs.version.value,
23476                 user: attrs.user && attrs.user.value,
23477                 tags: getTags(obj),
23478                 members: getMembers(obj),
23479                 visible: getVisible(attrs)
23480             });
23481         }
23482     };
23483
23484     function parse(dom) {
23485         if (!dom || !dom.childNodes) return;
23486
23487         var root = dom.childNodes[0],
23488             children = root.childNodes,
23489             entities = [];
23490
23491         for (var i = 0, l = children.length; i < l; i++) {
23492             var child = children[i],
23493                 parser = parsers[child.nodeName];
23494             if (parser) {
23495                 entities.push(parser(child));
23496             }
23497         }
23498
23499         return entities;
23500     }
23501
23502     connection.authenticated = function() {
23503         return oauth.authenticated();
23504     };
23505
23506     // Generate Changeset XML. Returns a string.
23507     connection.changesetJXON = function(tags) {
23508         return {
23509             osm: {
23510                 changeset: {
23511                     tag: _.map(tags, function(value, key) {
23512                         return { '@k': key, '@v': value };
23513                     }),
23514                     '@version': 0.3,
23515                     '@generator': 'iD'
23516                 }
23517             }
23518         };
23519     };
23520
23521     // Generate [osmChange](http://wiki.openstreetmap.org/wiki/OsmChange)
23522     // XML. Returns a string.
23523     connection.osmChangeJXON = function(changeset_id, changes) {
23524         function nest(x, order) {
23525             var groups = {};
23526             for (var i = 0; i < x.length; i++) {
23527                 var tagName = Object.keys(x[i])[0];
23528                 if (!groups[tagName]) groups[tagName] = [];
23529                 groups[tagName].push(x[i][tagName]);
23530             }
23531             var ordered = {};
23532             order.forEach(function(o) {
23533                 if (groups[o]) ordered[o] = groups[o];
23534             });
23535             return ordered;
23536         }
23537
23538         function rep(entity) {
23539             return entity.asJXON(changeset_id);
23540         }
23541
23542         return {
23543             osmChange: {
23544                 '@version': 0.3,
23545                 '@generator': 'iD',
23546                 'create': nest(changes.created.map(rep), ['node', 'way', 'relation']),
23547                 'modify': nest(changes.modified.map(rep), ['node', 'way', 'relation']),
23548                 'delete': _.extend(nest(changes.deleted.map(rep), ['relation', 'way', 'node']), {'@if-unused': true})
23549             }
23550         };
23551     };
23552
23553     connection.changesetTags = function(comment, imageryUsed) {
23554         var detected = iD.detect(),
23555             tags = {
23556                 created_by: 'iD ' + iD.version,
23557                 imagery_used: imageryUsed.join(';').substr(0, 255),
23558                 host: (window.location.origin + window.location.pathname).substr(0, 255),
23559                 locale: detected.locale,
23560                 browser: detected.browser + ' ' + detected.version,
23561                 platform: detected.platform
23562             };
23563
23564         if (comment) {
23565             tags.comment = comment.substr(0, 255);
23566         }
23567
23568         return tags;
23569     };
23570
23571     connection.putChangeset = function(changes, comment, imageryUsed, callback) {
23572         oauth.xhr({
23573                 method: 'PUT',
23574                 path: '/api/0.6/changeset/create',
23575                 options: { header: { 'Content-Type': 'text/xml' } },
23576                 content: JXON.stringify(connection.changesetJXON(connection.changesetTags(comment, imageryUsed)))
23577             }, function(err, changeset_id) {
23578                 if (err) return callback(err);
23579                 oauth.xhr({
23580                     method: 'POST',
23581                     path: '/api/0.6/changeset/' + changeset_id + '/upload',
23582                     options: { header: { 'Content-Type': 'text/xml' } },
23583                     content: JXON.stringify(connection.osmChangeJXON(changeset_id, changes))
23584                 }, function(err) {
23585                     if (err) return callback(err);
23586                     oauth.xhr({
23587                         method: 'PUT',
23588                         path: '/api/0.6/changeset/' + changeset_id + '/close'
23589                     }, function(err) {
23590                         callback(err, changeset_id);
23591                     });
23592                 });
23593             });
23594     };
23595
23596     connection.userDetails = function(callback) {
23597         if (userDetails) {
23598             callback(undefined, userDetails);
23599             return;
23600         }
23601
23602         function done(err, user_details) {
23603             if (err) return callback(err);
23604
23605             var u = user_details.getElementsByTagName('user')[0],
23606                 img = u.getElementsByTagName('img'),
23607                 image_url = '';
23608
23609             if (img && img[0] && img[0].getAttribute('href')) {
23610                 image_url = img[0].getAttribute('href');
23611             }
23612
23613             userDetails = {
23614                 display_name: u.attributes.display_name.value,
23615                 image_url: image_url,
23616                 id: u.attributes.id.value
23617             };
23618
23619             callback(undefined, userDetails);
23620         }
23621
23622         oauth.xhr({ method: 'GET', path: '/api/0.6/user/details' }, done);
23623     };
23624
23625     connection.status = function(callback) {
23626         function done(capabilities) {
23627             var apiStatus = capabilities.getElementsByTagName('status');
23628             callback(undefined, apiStatus[0].getAttribute('api'));
23629         }
23630         d3.xml(url + '/api/capabilities').get()
23631             .on('load', done)
23632             .on('error', callback);
23633     };
23634
23635     function abortRequest(i) { i.abort(); }
23636
23637     connection.tileZoom = function(_) {
23638         if (!arguments.length) return tileZoom;
23639         tileZoom = _;
23640         return connection;
23641     };
23642
23643     connection.loadTiles = function(projection, dimensions, callback) {
23644
23645         if (off) return;
23646
23647         var s = projection.scale() * 2 * Math.PI,
23648             z = Math.max(Math.log(s) / Math.log(2) - 8, 0),
23649             ts = 256 * Math.pow(2, z - tileZoom),
23650             origin = [
23651                 s / 2 - projection.translate()[0],
23652                 s / 2 - projection.translate()[1]];
23653
23654         var tiles = d3.geo.tile()
23655             .scaleExtent([tileZoom, tileZoom])
23656             .scale(s)
23657             .size(dimensions)
23658             .translate(projection.translate())()
23659             .map(function(tile) {
23660                 var x = tile[0] * ts - origin[0],
23661                     y = tile[1] * ts - origin[1];
23662
23663                 return {
23664                     id: tile.toString(),
23665                     extent: iD.geo.Extent(
23666                         projection.invert([x, y + ts]),
23667                         projection.invert([x + ts, y]))
23668                 };
23669             });
23670
23671         function bboxUrl(tile) {
23672             return url + '/api/0.6/map?bbox=' + tile.extent.toParam();
23673         }
23674
23675         _.filter(inflight, function(v, i) {
23676             var wanted = _.find(tiles, function(tile) {
23677                 return i === tile.id;
23678             });
23679             if (!wanted) delete inflight[i];
23680             return !wanted;
23681         }).map(abortRequest);
23682
23683         tiles.forEach(function(tile) {
23684             var id = tile.id;
23685
23686             if (loadedTiles[id] || inflight[id]) return;
23687
23688             if (_.isEmpty(inflight)) {
23689                 event.loading();
23690             }
23691
23692             inflight[id] = connection.loadFromURL(bboxUrl(tile), function(err, parsed) {
23693                 loadedTiles[id] = true;
23694                 delete inflight[id];
23695
23696                 if (callback) callback(err, _.extend({data: parsed}, tile));
23697
23698                 if (_.isEmpty(inflight)) {
23699                     event.loaded();
23700                 }
23701             });
23702         });
23703     };
23704
23705     connection.switch = function(options) {
23706         url = options.url;
23707         oauth.options(_.extend({
23708             loading: authenticating,
23709             done: authenticated
23710         }, options));
23711         event.auth();
23712         connection.flush();
23713         return connection;
23714     };
23715
23716     connection.toggle = function(_) {
23717         off = !_;
23718         return connection;
23719     };
23720
23721     connection.flush = function() {
23722         userDetails = undefined;
23723         _.forEach(inflight, abortRequest);
23724         loadedTiles = {};
23725         inflight = {};
23726         return connection;
23727     };
23728
23729     connection.loadedTiles = function(_) {
23730         if (!arguments.length) return loadedTiles;
23731         loadedTiles = _;
23732         return connection;
23733     };
23734
23735     connection.logout = function() {
23736         userDetails = undefined;
23737         oauth.logout();
23738         event.auth();
23739         return connection;
23740     };
23741
23742     connection.authenticate = function(callback) {
23743         userDetails = undefined;
23744         function done(err, res) {
23745             event.auth();
23746             if (callback) callback(err, res);
23747         }
23748         return oauth.authenticate(done);
23749     };
23750
23751     return d3.rebind(connection, event, 'on');
23752 };
23753 /*
23754     iD.Difference represents the difference between two graphs.
23755     It knows how to calculate the set of entities that were
23756     created, modified, or deleted, and also contains the logic
23757     for recursively extending a difference to the complete set
23758     of entities that will require a redraw, taking into account
23759     child and parent relationships.
23760  */
23761 iD.Difference = function(base, head) {
23762     var changes = {}, length = 0;
23763
23764     function changed(h, b) {
23765         return !_.isEqual(_.omit(h, 'v'), _.omit(b, 'v'));
23766     }
23767
23768     _.each(head.entities, function(h, id) {
23769         var b = base.entities[id];
23770         if (changed(h, b)) {
23771             changes[id] = {base: b, head: h};
23772             length++;
23773         }
23774     });
23775
23776     _.each(base.entities, function(b, id) {
23777         var h = head.entities[id];
23778         if (!changes[id] && changed(h, b)) {
23779             changes[id] = {base: b, head: h};
23780             length++;
23781         }
23782     });
23783
23784     function addParents(parents, result) {
23785         for (var i = 0; i < parents.length; i++) {
23786             var parent = parents[i];
23787
23788             if (parent.id in result)
23789                 continue;
23790
23791             result[parent.id] = parent;
23792             addParents(head.parentRelations(parent), result);
23793         }
23794     }
23795
23796     var difference = {};
23797
23798     difference.length = function() {
23799         return length;
23800     };
23801
23802     difference.changes = function() {
23803         return changes;
23804     };
23805
23806     difference.extantIDs = function() {
23807         var result = [];
23808         _.each(changes, function(change, id) {
23809             if (change.head) result.push(id);
23810         });
23811         return result;
23812     };
23813
23814     difference.modified = function() {
23815         var result = [];
23816         _.each(changes, function(change) {
23817             if (change.base && change.head) result.push(change.head);
23818         });
23819         return result;
23820     };
23821
23822     difference.created = function() {
23823         var result = [];
23824         _.each(changes, function(change) {
23825             if (!change.base && change.head) result.push(change.head);
23826         });
23827         return result;
23828     };
23829
23830     difference.deleted = function() {
23831         var result = [];
23832         _.each(changes, function(change) {
23833             if (change.base && !change.head) result.push(change.base);
23834         });
23835         return result;
23836     };
23837
23838     difference.summary = function() {
23839         var relevant = {};
23840
23841         function addEntity(entity, graph, changeType) {
23842             relevant[entity.id] = {
23843                 entity: entity,
23844                 graph: graph,
23845                 changeType: changeType
23846             };
23847         }
23848
23849         function addParents(entity) {
23850             var parents = head.parentWays(entity);
23851             for (var j = parents.length - 1; j >= 0; j--) {
23852                 var parent = parents[j];
23853                 if (!(parent.id in relevant)) addEntity(parent, head, 'modified');
23854             }
23855         }
23856
23857         _.each(changes, function(change) {
23858             if (change.head && change.head.geometry(head) !== 'vertex') {
23859                 addEntity(change.head, head, change.base ? 'modified' : 'created');
23860
23861             } else if (change.base && change.base.geometry(base) !== 'vertex') {
23862                 addEntity(change.base, base, 'deleted');
23863
23864             } else if (change.base && change.head) { // modified vertex
23865                 var moved    = !_.isEqual(change.base.loc,  change.head.loc),
23866                     retagged = !_.isEqual(change.base.tags, change.head.tags);
23867
23868                 if (moved) {
23869                     addParents(change.head);
23870                 }
23871
23872                 if (retagged || (moved && change.head.hasInterestingTags())) {
23873                     addEntity(change.head, head, 'modified');
23874                 }
23875
23876             } else if (change.head && change.head.hasInterestingTags()) { // created vertex
23877                 addEntity(change.head, head, 'created');
23878
23879             } else if (change.base && change.base.hasInterestingTags()) { // deleted vertex
23880                 addEntity(change.base, base, 'deleted');
23881             }
23882         });
23883
23884         return d3.values(relevant);
23885     };
23886
23887     difference.complete = function(extent) {
23888         var result = {}, id, change;
23889
23890         for (id in changes) {
23891             change = changes[id];
23892
23893             var h = change.head,
23894                 b = change.base,
23895                 entity = h || b;
23896
23897             if (extent &&
23898                 (!h || !h.intersects(extent, head)) &&
23899                 (!b || !b.intersects(extent, base)))
23900                 continue;
23901
23902             result[id] = h;
23903
23904             if (entity.type === 'way') {
23905                 var nh = h ? h.nodes : [],
23906                     nb = b ? b.nodes : [],
23907                     diff, i;
23908
23909                 diff = _.difference(nh, nb);
23910                 for (i = 0; i < diff.length; i++) {
23911                     result[diff[i]] = head.hasEntity(diff[i]);
23912                 }
23913
23914                 diff = _.difference(nb, nh);
23915                 for (i = 0; i < diff.length; i++) {
23916                     result[diff[i]] = head.hasEntity(diff[i]);
23917                 }
23918             }
23919
23920             addParents(head.parentWays(entity), result);
23921             addParents(head.parentRelations(entity), result);
23922         }
23923
23924         return result;
23925     };
23926
23927     return difference;
23928 };
23929 iD.Entity = function(attrs) {
23930     // For prototypal inheritance.
23931     if (this instanceof iD.Entity) return;
23932
23933     // Create the appropriate subtype.
23934     if (attrs && attrs.type) {
23935         return iD.Entity[attrs.type].apply(this, arguments);
23936     } else if (attrs && attrs.id) {
23937         return iD.Entity[iD.Entity.id.type(attrs.id)].apply(this, arguments);
23938     }
23939
23940     // Initialize a generic Entity (used only in tests).
23941     return (new iD.Entity()).initialize(arguments);
23942 };
23943
23944 iD.Entity.id = function(type) {
23945     return iD.Entity.id.fromOSM(type, iD.Entity.id.next[type]--);
23946 };
23947
23948 iD.Entity.id.next = {node: -1, way: -1, relation: -1};
23949
23950 iD.Entity.id.fromOSM = function(type, id) {
23951     return type[0] + id;
23952 };
23953
23954 iD.Entity.id.toOSM = function(id) {
23955     return id.slice(1);
23956 };
23957
23958 iD.Entity.id.type = function(id) {
23959     return {'n': 'node', 'w': 'way', 'r': 'relation'}[id[0]];
23960 };
23961
23962 // A function suitable for use as the second argument to d3.selection#data().
23963 iD.Entity.key = function(entity) {
23964     return entity.id + 'v' + (entity.v || 0);
23965 };
23966
23967 iD.Entity.prototype = {
23968     tags: {},
23969
23970     initialize: function(sources) {
23971         for (var i = 0; i < sources.length; ++i) {
23972             var source = sources[i];
23973             for (var prop in source) {
23974                 if (Object.prototype.hasOwnProperty.call(source, prop)) {
23975                     if (source[prop] === undefined) {
23976                         delete this[prop];
23977                     } else {
23978                         this[prop] = source[prop];
23979                     }
23980                 }
23981             }
23982         }
23983
23984         if (!this.id && this.type) {
23985             this.id = iD.Entity.id(this.type);
23986         }
23987         if (!this.hasOwnProperty('visible')) {
23988             this.visible = true;
23989         }
23990
23991         if (iD.debug) {
23992             Object.freeze(this);
23993             Object.freeze(this.tags);
23994
23995             if (this.loc) Object.freeze(this.loc);
23996             if (this.nodes) Object.freeze(this.nodes);
23997             if (this.members) Object.freeze(this.members);
23998         }
23999
24000         return this;
24001     },
24002
24003     copy: function() {
24004         // Returns an array so that we can support deep copying ways and relations.
24005         // The first array element will contain this.copy, followed by any descendants.
24006         return [iD.Entity(this, {id: undefined, user: undefined, version: undefined})];
24007     },
24008
24009     osmId: function() {
24010         return iD.Entity.id.toOSM(this.id);
24011     },
24012
24013     isNew: function() {
24014         return this.osmId() < 0;
24015     },
24016
24017     update: function(attrs) {
24018         return iD.Entity(this, attrs, {v: 1 + (this.v || 0)});
24019     },
24020
24021     mergeTags: function(tags) {
24022         var merged = _.clone(this.tags), changed = false;
24023         for (var k in tags) {
24024             var t1 = merged[k],
24025                 t2 = tags[k];
24026             if (!t1) {
24027                 changed = true;
24028                 merged[k] = t2;
24029             } else if (t1 !== t2) {
24030                 changed = true;
24031                 merged[k] = _.union(t1.split(/;\s*/), t2.split(/;\s*/)).join(';');
24032             }
24033         }
24034         return changed ? this.update({tags: merged}) : this;
24035     },
24036
24037     intersects: function(extent, resolver) {
24038         return this.extent(resolver).intersects(extent);
24039     },
24040
24041     isUsed: function(resolver) {
24042         return _.without(Object.keys(this.tags), 'area').length > 0 ||
24043             resolver.parentRelations(this).length > 0;
24044     },
24045
24046     hasInterestingTags: function() {
24047         return _.keys(this.tags).some(function(key) {
24048             return key !== 'attribution' &&
24049                 key !== 'created_by' &&
24050                 key !== 'source' &&
24051                 key !== 'odbl' &&
24052                 key.indexOf('tiger:') !== 0;
24053         });
24054     },
24055
24056     isHighwayIntersection: function() {
24057         return false;
24058     },
24059
24060     deprecatedTags: function() {
24061         var tags = _.pairs(this.tags);
24062         var deprecated = {};
24063
24064         iD.data.deprecated.forEach(function(d) {
24065             var match = _.pairs(d.old)[0];
24066             tags.forEach(function(t) {
24067                 if (t[0] === match[0] &&
24068                     (t[1] === match[1] || match[1] === '*')) {
24069                     deprecated[t[0]] = t[1];
24070                 }
24071             });
24072         });
24073
24074         return deprecated;
24075     }
24076 };
24077 iD.Graph = function(other, mutable) {
24078     if (!(this instanceof iD.Graph)) return new iD.Graph(other, mutable);
24079
24080     if (other instanceof iD.Graph) {
24081         var base = other.base();
24082         this.entities = _.assign(Object.create(base.entities), other.entities);
24083         this._parentWays = _.assign(Object.create(base.parentWays), other._parentWays);
24084         this._parentRels = _.assign(Object.create(base.parentRels), other._parentRels);
24085
24086     } else {
24087         this.entities = Object.create({});
24088         this._parentWays = Object.create({});
24089         this._parentRels = Object.create({});
24090         this.rebase(other || [], [this]);
24091     }
24092
24093     this.transients = {};
24094     this._childNodes = {};
24095     this.frozen = !mutable;
24096 };
24097
24098 iD.Graph.prototype = {
24099     hasEntity: function(id) {
24100         return this.entities[id];
24101     },
24102
24103     entity: function(id) {
24104         var entity = this.entities[id];
24105         if (!entity) {
24106             throw new Error('entity ' + id + ' not found');
24107         }
24108         return entity;
24109     },
24110
24111     transient: function(entity, key, fn) {
24112         var id = entity.id,
24113             transients = this.transients[id] ||
24114             (this.transients[id] = {});
24115
24116         if (transients[key] !== undefined) {
24117             return transients[key];
24118         }
24119
24120         transients[key] = fn.call(entity);
24121
24122         return transients[key];
24123     },
24124
24125     parentWays: function(entity) {
24126         var parents = this._parentWays[entity.id],
24127             result = [];
24128
24129         if (parents) {
24130             for (var i = 0; i < parents.length; i++) {
24131                 result.push(this.entity(parents[i]));
24132             }
24133         }
24134         return result;
24135     },
24136
24137     isPoi: function(entity) {
24138         var parentWays = this._parentWays[entity.id];
24139         return !parentWays || parentWays.length === 0;
24140     },
24141
24142     isShared: function(entity) {
24143         var parentWays = this._parentWays[entity.id];
24144         return parentWays && parentWays.length > 1;
24145     },
24146
24147     parentRelations: function(entity) {
24148         var parents = this._parentRels[entity.id],
24149             result = [];
24150
24151         if (parents) {
24152             for (var i = 0; i < parents.length; i++) {
24153                 result.push(this.entity(parents[i]));
24154             }
24155         }
24156         return result;
24157     },
24158
24159     childNodes: function(entity) {
24160         if (this._childNodes[entity.id])
24161             return this._childNodes[entity.id];
24162
24163         var nodes = [];
24164         if (entity.nodes) {
24165             for (var i = 0; i < entity.nodes.length; i++) {
24166                 nodes[i] = this.entity(entity.nodes[i]);
24167             }
24168         }
24169
24170         if (iD.debug) Object.freeze(nodes);
24171
24172         this._childNodes[entity.id] = nodes;
24173         return this._childNodes[entity.id];
24174     },
24175
24176     base: function() {
24177         return {
24178             'entities': iD.util.getPrototypeOf(this.entities),
24179             'parentWays': iD.util.getPrototypeOf(this._parentWays),
24180             'parentRels': iD.util.getPrototypeOf(this._parentRels)
24181         };
24182     },
24183
24184     // Unlike other graph methods, rebase mutates in place. This is because it
24185     // is used only during the history operation that merges newly downloaded
24186     // data into each state. To external consumers, it should appear as if the
24187     // graph always contained the newly downloaded data.
24188     rebase: function(entities, stack, force) {
24189         var base = this.base(),
24190             i, j, k, id;
24191
24192         for (i = 0; i < entities.length; i++) {
24193             var entity = entities[i];
24194
24195             if (!entity.visible || (!force && base.entities[entity.id]))
24196                 continue;
24197
24198             // Merging data into the base graph
24199             base.entities[entity.id] = entity;
24200             this._updateCalculated(undefined, entity, base.parentWays, base.parentRels);
24201
24202             // Restore provisionally-deleted nodes that are discovered to have an extant parent
24203             if (entity.type === 'way') {
24204                 for (j = 0; j < entity.nodes.length; j++) {
24205                     id = entity.nodes[j];
24206                     for (k = 1; k < stack.length; k++) {
24207                         var ents = stack[k].entities;
24208                         if (ents.hasOwnProperty(id) && ents[id] === undefined) {
24209                             delete ents[id];
24210                         }
24211                     }
24212                 }
24213             }
24214         }
24215
24216         for (i = 0; i < stack.length; i++) {
24217             stack[i]._updateRebased();
24218         }
24219     },
24220
24221     _updateRebased: function() {
24222         var base = this.base(),
24223             i, k, child, id, keys;
24224
24225         keys = Object.keys(this._parentWays);
24226         for (i = 0; i < keys.length; i++) {
24227             child = keys[i];
24228             if (base.parentWays[child]) {
24229                 for (k = 0; k < base.parentWays[child].length; k++) {
24230                     id = base.parentWays[child][k];
24231                     if (!this.entities.hasOwnProperty(id) && !_.contains(this._parentWays[child], id)) {
24232                         this._parentWays[child].push(id);
24233                     }
24234                 }
24235             }
24236         }
24237
24238         keys = Object.keys(this._parentRels);
24239         for (i = 0; i < keys.length; i++) {
24240             child = keys[i];
24241             if (base.parentRels[child]) {
24242                 for (k = 0; k < base.parentRels[child].length; k++) {
24243                     id = base.parentRels[child][k];
24244                     if (!this.entities.hasOwnProperty(id) && !_.contains(this._parentRels[child], id)) {
24245                         this._parentRels[child].push(id);
24246                     }
24247                 }
24248             }
24249         }
24250
24251         this.transients = {};
24252
24253         // this._childNodes is not updated, under the assumption that
24254         // ways are always downloaded with their child nodes.
24255     },
24256
24257     // Updates calculated properties (parentWays, parentRels) for the specified change
24258     _updateCalculated: function(oldentity, entity, parentWays, parentRels) {
24259
24260         parentWays = parentWays || this._parentWays;
24261         parentRels = parentRels || this._parentRels;
24262
24263         var type = entity && entity.type || oldentity && oldentity.type,
24264             removed, added, ways, rels, i;
24265
24266
24267         if (type === 'way') {
24268
24269             // Update parentWays
24270             if (oldentity && entity) {
24271                 removed = _.difference(oldentity.nodes, entity.nodes);
24272                 added = _.difference(entity.nodes, oldentity.nodes);
24273             } else if (oldentity) {
24274                 removed = oldentity.nodes;
24275                 added = [];
24276             } else if (entity) {
24277                 removed = [];
24278                 added = entity.nodes;
24279             }
24280             for (i = 0; i < removed.length; i++) {
24281                 parentWays[removed[i]] = _.without(parentWays[removed[i]], oldentity.id);
24282             }
24283             for (i = 0; i < added.length; i++) {
24284                 ways = _.without(parentWays[added[i]], entity.id);
24285                 ways.push(entity.id);
24286                 parentWays[added[i]] = ways;
24287             }
24288
24289         } else if (type === 'relation') {
24290
24291             // Update parentRels
24292             if (oldentity && entity) {
24293                 removed = _.difference(oldentity.members, entity.members);
24294                 added = _.difference(entity.members, oldentity);
24295             } else if (oldentity) {
24296                 removed = oldentity.members;
24297                 added = [];
24298             } else if (entity) {
24299                 removed = [];
24300                 added = entity.members;
24301             }
24302             for (i = 0; i < removed.length; i++) {
24303                 parentRels[removed[i].id] = _.without(parentRels[removed[i].id], oldentity.id);
24304             }
24305             for (i = 0; i < added.length; i++) {
24306                 rels = _.without(parentRels[added[i].id], entity.id);
24307                 rels.push(entity.id);
24308                 parentRels[added[i].id] = rels;
24309             }
24310         }
24311     },
24312
24313     replace: function(entity) {
24314         if (this.entities[entity.id] === entity)
24315             return this;
24316
24317         return this.update(function() {
24318             this._updateCalculated(this.entities[entity.id], entity);
24319             this.entities[entity.id] = entity;
24320         });
24321     },
24322
24323     remove: function(entity) {
24324         return this.update(function() {
24325             this._updateCalculated(entity, undefined);
24326             this.entities[entity.id] = undefined;
24327         });
24328     },
24329
24330     revert: function(id) {
24331         var baseEntity = this.base().entities[id],
24332             headEntity = this.entities[id];
24333
24334         if (headEntity === baseEntity)
24335             return this;
24336
24337         return this.update(function() {
24338             this._updateCalculated(headEntity, baseEntity);
24339             delete this.entities[id];
24340         });
24341     },
24342
24343     update: function() {
24344         var graph = this.frozen ? iD.Graph(this, true) : this;
24345
24346         for (var i = 0; i < arguments.length; i++) {
24347             arguments[i].call(graph, graph);
24348         }
24349
24350         if (this.frozen) graph.frozen = true;
24351
24352         return graph;
24353     },
24354
24355     // Obliterates any existing entities
24356     load: function(entities) {
24357         var base = this.base();
24358         this.entities = Object.create(base.entities);
24359
24360         for (var i in entities) {
24361             this.entities[i] = entities[i];
24362             this._updateCalculated(base.entities[i], this.entities[i]);
24363         }
24364
24365         return this;
24366     }
24367 };
24368 iD.History = function(context) {
24369     var stack, index, tree,
24370         imageryUsed = ['Bing'],
24371         dispatch = d3.dispatch('change', 'undone', 'redone'),
24372         lock = iD.util.SessionMutex('lock');
24373
24374     function perform(actions) {
24375         actions = Array.prototype.slice.call(actions);
24376
24377         var annotation;
24378
24379         if (!_.isFunction(_.last(actions))) {
24380             annotation = actions.pop();
24381         }
24382
24383         var graph = stack[index].graph;
24384         for (var i = 0; i < actions.length; i++) {
24385             graph = actions[i](graph);
24386         }
24387
24388         return {
24389             graph: graph,
24390             annotation: annotation,
24391             imageryUsed: imageryUsed
24392         };
24393     }
24394
24395     function change(previous) {
24396         var difference = iD.Difference(previous, history.graph());
24397         dispatch.change(difference);
24398         return difference;
24399     }
24400
24401     // iD uses namespaced keys so multiple installations do not conflict
24402     function getKey(n) {
24403         return 'iD_' + window.location.origin + '_' + n;
24404     }
24405
24406     var history = {
24407         graph: function() {
24408             return stack[index].graph;
24409         },
24410
24411         base: function() {
24412             return stack[0].graph;
24413         },
24414
24415         merge: function(entities, extent) {
24416             stack[0].graph.rebase(entities, _.pluck(stack, 'graph'), false);
24417             tree.rebase(entities, false);
24418
24419             dispatch.change(undefined, extent);
24420         },
24421
24422         perform: function() {
24423             var previous = stack[index].graph;
24424
24425             stack = stack.slice(0, index + 1);
24426             stack.push(perform(arguments));
24427             index++;
24428
24429             return change(previous);
24430         },
24431
24432         replace: function() {
24433             var previous = stack[index].graph;
24434
24435             // assert(index == stack.length - 1)
24436             stack[index] = perform(arguments);
24437
24438             return change(previous);
24439         },
24440
24441         pop: function() {
24442             var previous = stack[index].graph;
24443
24444             if (index > 0) {
24445                 index--;
24446                 stack.pop();
24447                 return change(previous);
24448             }
24449         },
24450
24451         // Same as calling pop and then perform
24452         overwrite: function() {
24453             var previous = stack[index].graph;
24454
24455             if (index > 0) {
24456                 index--;
24457                 stack.pop();
24458             }
24459             stack = stack.slice(0, index + 1);
24460             stack.push(perform(arguments));
24461             index++;
24462
24463             return change(previous);
24464         },
24465
24466         undo: function() {
24467             var previous = stack[index].graph;
24468
24469             // Pop to the next annotated state.
24470             while (index > 0) {
24471                 index--;
24472                 if (stack[index].annotation) break;
24473             }
24474
24475             dispatch.undone();
24476             return change(previous);
24477         },
24478
24479         redo: function() {
24480             var previous = stack[index].graph;
24481
24482             while (index < stack.length - 1) {
24483                 index++;
24484                 if (stack[index].annotation) break;
24485             }
24486
24487             dispatch.redone();
24488             return change(previous);
24489         },
24490
24491         undoAnnotation: function() {
24492             var i = index;
24493             while (i >= 0) {
24494                 if (stack[i].annotation) return stack[i].annotation;
24495                 i--;
24496             }
24497         },
24498
24499         redoAnnotation: function() {
24500             var i = index + 1;
24501             while (i <= stack.length - 1) {
24502                 if (stack[i].annotation) return stack[i].annotation;
24503                 i++;
24504             }
24505         },
24506
24507         intersects: function(extent) {
24508             return tree.intersects(extent, stack[index].graph);
24509         },
24510
24511         difference: function() {
24512             var base = stack[0].graph,
24513                 head = stack[index].graph;
24514             return iD.Difference(base, head);
24515         },
24516
24517         changes: function(action) {
24518             var base = stack[0].graph,
24519                 head = stack[index].graph;
24520
24521             if (action) {
24522                 head = action(head);
24523             }
24524
24525             var difference = iD.Difference(base, head);
24526
24527             return {
24528                 modified: difference.modified(),
24529                 created: difference.created(),
24530                 deleted: difference.deleted()
24531             };
24532         },
24533
24534         hasChanges: function() {
24535             return this.difference().length() > 0;
24536         },
24537
24538         imageryUsed: function(sources) {
24539             if (sources) {
24540                 imageryUsed = sources;
24541                 return history;
24542             } else {
24543                 return _(stack.slice(1, index + 1))
24544                     .pluck('imageryUsed')
24545                     .flatten()
24546                     .unique()
24547                     .without(undefined, 'Custom')
24548                     .value();
24549             }
24550         },
24551
24552         reset: function() {
24553             stack = [{graph: iD.Graph()}];
24554             index = 0;
24555             tree = iD.Tree(stack[0].graph);
24556             dispatch.change();
24557             return history;
24558         },
24559
24560         toJSON: function() {
24561             if (stack.length <= 1) return;
24562
24563             var allEntities = {},
24564                 baseEntities = {},
24565                 base = stack[0];
24566
24567             var s = stack.map(function(i) {
24568                 var modified = [], deleted = [];
24569
24570                 _.forEach(i.graph.entities, function(entity, id) {
24571                     if (entity) {
24572                         var key = iD.Entity.key(entity);
24573                         allEntities[key] = entity;
24574                         modified.push(key);
24575                     } else {
24576                         deleted.push(id);
24577                     }
24578
24579                     // make sure that the originals of changed or deleted entities get merged
24580                     // into the base of the stack after restoring the data from JSON.
24581                     if (id in base.graph.entities) {
24582                         baseEntities[id] = base.graph.entities[id];
24583                     }
24584                     // get originals of parent entities too
24585                     _.forEach(base.graph._parentWays[id], function(parentId) {
24586                         if (parentId in base.graph.entities) {
24587                             baseEntities[parentId] = base.graph.entities[parentId];
24588                         }
24589                     });
24590                 });
24591
24592                 var x = {};
24593
24594                 if (modified.length) x.modified = modified;
24595                 if (deleted.length) x.deleted = deleted;
24596                 if (i.imageryUsed) x.imageryUsed = i.imageryUsed;
24597                 if (i.annotation) x.annotation = i.annotation;
24598
24599                 return x;
24600             });
24601
24602             return JSON.stringify({
24603                 version: 3,
24604                 entities: _.values(allEntities),
24605                 baseEntities: _.values(baseEntities),
24606                 stack: s,
24607                 nextIDs: iD.Entity.id.next,
24608                 index: index
24609             });
24610         },
24611
24612         fromJSON: function(json) {
24613             var h = JSON.parse(json);
24614
24615             iD.Entity.id.next = h.nextIDs;
24616             index = h.index;
24617
24618             if (h.version === 2 || h.version === 3) {
24619                 var allEntities = {};
24620
24621                 h.entities.forEach(function(entity) {
24622                     allEntities[iD.Entity.key(entity)] = iD.Entity(entity);
24623                 });
24624
24625                 if (h.version === 3) {
24626                     // this merges originals for changed entities into the base of
24627                     // the stack even if the current stack doesn't have them (for
24628                     // example when iD has been restarted in a different region)
24629                     var baseEntities = h.baseEntities.map(function(entity) {
24630                         return iD.Entity(entity);
24631                     });
24632                     stack[0].graph.rebase(baseEntities, _.pluck(stack, 'graph'), true);
24633                     tree.rebase(baseEntities, true);
24634                 }
24635
24636                 stack = h.stack.map(function(d) {
24637                     var entities = {}, entity;
24638
24639                     if (d.modified) {
24640                         d.modified.forEach(function(key) {
24641                             entity = allEntities[key];
24642                             entities[entity.id] = entity;
24643                         });
24644                     }
24645
24646                     if (d.deleted) {
24647                         d.deleted.forEach(function(id) {
24648                             entities[id] = undefined;
24649                         });
24650                     }
24651
24652                     return {
24653                         graph: iD.Graph(stack[0].graph).load(entities),
24654                         annotation: d.annotation,
24655                         imageryUsed: d.imageryUsed
24656                     };
24657                 });
24658             } else { // original version
24659                 stack = h.stack.map(function(d) {
24660                     var entities = {};
24661
24662                     for (var i in d.entities) {
24663                         var entity = d.entities[i];
24664                         entities[i] = entity === 'undefined' ? undefined : iD.Entity(entity);
24665                     }
24666
24667                     d.graph = iD.Graph(stack[0].graph).load(entities);
24668                     return d;
24669                 });
24670             }
24671
24672             dispatch.change();
24673
24674             return history;
24675         },
24676
24677         save: function() {
24678             if (lock.locked()) context.storage(getKey('saved_history'), history.toJSON() || null);
24679             return history;
24680         },
24681
24682         clearSaved: function() {
24683             if (lock.locked()) context.storage(getKey('saved_history'), null);
24684             return history;
24685         },
24686
24687         lock: function() {
24688             return lock.lock();
24689         },
24690
24691         unlock: function() {
24692             lock.unlock();
24693         },
24694
24695         // is iD not open in another window and it detects that
24696         // there's a history stored in localStorage that's recoverable?
24697         restorableChanges: function() {
24698             return lock.locked() && !!context.storage(getKey('saved_history'));
24699         },
24700
24701         // load history from a version stored in localStorage
24702         restore: function() {
24703             if (!lock.locked()) return;
24704
24705             var json = context.storage(getKey('saved_history'));
24706             if (json) history.fromJSON(json);
24707         },
24708
24709         _getKey: getKey
24710
24711     };
24712
24713     history.reset();
24714
24715     return d3.rebind(history, dispatch, 'on');
24716 };
24717 iD.Node = iD.Entity.node = function iD_Node() {
24718     if (!(this instanceof iD_Node)) {
24719         return (new iD_Node()).initialize(arguments);
24720     } else if (arguments.length) {
24721         this.initialize(arguments);
24722     }
24723 };
24724
24725 iD.Node.prototype = Object.create(iD.Entity.prototype);
24726
24727 _.extend(iD.Node.prototype, {
24728     type: 'node',
24729
24730     extent: function() {
24731         return new iD.geo.Extent(this.loc);
24732     },
24733
24734     geometry: function(graph) {
24735         return graph.transient(this, 'geometry', function() {
24736             return graph.isPoi(this) ? 'point' : 'vertex';
24737         });
24738     },
24739
24740     move: function(loc) {
24741         return this.update({loc: loc});
24742     },
24743
24744     isIntersection: function(resolver) {
24745         return resolver.transient(this, 'isIntersection', function() {
24746             return resolver.parentWays(this).filter(function(parent) {
24747                 return (parent.tags.highway ||
24748                     parent.tags.waterway ||
24749                     parent.tags.railway ||
24750                     parent.tags.aeroway) &&
24751                     parent.geometry(resolver) === 'line';
24752             }).length > 1;
24753         });
24754     },
24755
24756     isHighwayIntersection: function(resolver) {
24757         return resolver.transient(this, 'isHighwayIntersection', function() {
24758             return resolver.parentWays(this).filter(function(parent) {
24759                 return parent.tags.highway && parent.geometry(resolver) === 'line';
24760             }).length > 1;
24761         });
24762     },
24763
24764     asJXON: function(changeset_id) {
24765         var r = {
24766             node: {
24767                 '@id': this.osmId(),
24768                 '@lon': this.loc[0],
24769                 '@lat': this.loc[1],
24770                 '@version': (this.version || 0),
24771                 tag: _.map(this.tags, function(v, k) {
24772                     return { keyAttributes: { k: k, v: v } };
24773                 })
24774             }
24775         };
24776         if (changeset_id) r.node['@changeset'] = changeset_id;
24777         return r;
24778     },
24779
24780     asGeoJSON: function() {
24781         return {
24782             type: 'Point',
24783             coordinates: this.loc
24784         };
24785     }
24786 });
24787 iD.oneWayTags = {
24788     'aerialway': {
24789         'chair_lift': true,
24790         'mixed_lift': true,
24791         't-bar': true,
24792         'j-bar': true,
24793         'platter': true,
24794         'rope_tow': true,
24795         'magic_carpet': true,
24796         'yes': true
24797     },
24798     'highway': {
24799         'motorway': true,
24800         'motorway_link': true
24801     },
24802     'junction': {
24803         'roundabout': true
24804     },
24805     'man_made': {
24806         'piste:halfpipe': true
24807     },
24808     'piste:type': {
24809         'downhill': true,
24810         'sled': true,
24811         'yes': true
24812     },
24813     'waterway': {
24814         'river': true,
24815         'stream': true
24816     }
24817 };
24818 iD.Relation = iD.Entity.relation = function iD_Relation() {
24819     if (!(this instanceof iD_Relation)) {
24820         return (new iD_Relation()).initialize(arguments);
24821     } else if (arguments.length) {
24822         this.initialize(arguments);
24823     }
24824 };
24825
24826 iD.Relation.prototype = Object.create(iD.Entity.prototype);
24827
24828 iD.Relation.creationOrder = function(a, b) {
24829     var aId = parseInt(iD.Entity.id.toOSM(a.id), 10);
24830     var bId = parseInt(iD.Entity.id.toOSM(b.id), 10);
24831
24832     if (aId < 0 || bId < 0) return aId - bId;
24833     return bId - aId;
24834 };
24835
24836 _.extend(iD.Relation.prototype, {
24837     type: 'relation',
24838     members: [],
24839
24840     copy: function(deep, resolver, replacements) {
24841         var copy = iD.Entity.prototype.copy.call(this);
24842         if (!deep || !resolver || !this.isComplete(resolver)) {
24843             return copy;
24844         }
24845
24846         var members = [],
24847             i, oldmember, oldid, newid, children;
24848
24849         replacements = replacements || {};
24850         replacements[this.id] = copy[0].id;
24851
24852         for (i = 0; i < this.members.length; i++) {
24853             oldmember = this.members[i];
24854             oldid = oldmember.id;
24855             newid = replacements[oldid];
24856             if (!newid) {
24857                 children = resolver.entity(oldid).copy(true, resolver, replacements);
24858                 newid = replacements[oldid] = children[0].id;
24859                 copy = copy.concat(children);
24860             }
24861             members.push({id: newid, type: oldmember.type, role: oldmember.role});
24862         }
24863
24864         copy[0] = copy[0].update({members: members});
24865         return copy;
24866     },
24867
24868     extent: function(resolver, memo) {
24869         return resolver.transient(this, 'extent', function() {
24870             if (memo && memo[this.id]) return iD.geo.Extent();
24871             memo = memo || {};
24872             memo[this.id] = true;
24873
24874             var extent = iD.geo.Extent();
24875             for (var i = 0; i < this.members.length; i++) {
24876                 var member = resolver.hasEntity(this.members[i].id);
24877                 if (member) {
24878                     extent._extend(member.extent(resolver, memo));
24879                 }
24880             }
24881             return extent;
24882         });
24883     },
24884
24885     geometry: function(graph) {
24886         return graph.transient(this, 'geometry', function() {
24887             return this.isMultipolygon() ? 'area' : 'relation';
24888         });
24889     },
24890
24891     isDegenerate: function() {
24892         return this.members.length === 0;
24893     },
24894
24895     // Return an array of members, each extended with an 'index' property whose value
24896     // is the member index.
24897     indexedMembers: function() {
24898         var result = new Array(this.members.length);
24899         for (var i = 0; i < this.members.length; i++) {
24900             result[i] = _.extend({}, this.members[i], {index: i});
24901         }
24902         return result;
24903     },
24904
24905     // Return the first member with the given role. A copy of the member object
24906     // is returned, extended with an 'index' property whose value is the member index.
24907     memberByRole: function(role) {
24908         for (var i = 0; i < this.members.length; i++) {
24909             if (this.members[i].role === role) {
24910                 return _.extend({}, this.members[i], {index: i});
24911             }
24912         }
24913     },
24914
24915     // Return the first member with the given id. A copy of the member object
24916     // is returned, extended with an 'index' property whose value is the member index.
24917     memberById: function(id) {
24918         for (var i = 0; i < this.members.length; i++) {
24919             if (this.members[i].id === id) {
24920                 return _.extend({}, this.members[i], {index: i});
24921             }
24922         }
24923     },
24924
24925     // Return the first member with the given id and role. A copy of the member object
24926     // is returned, extended with an 'index' property whose value is the member index.
24927     memberByIdAndRole: function(id, role) {
24928         for (var i = 0; i < this.members.length; i++) {
24929             if (this.members[i].id === id && this.members[i].role === role) {
24930                 return _.extend({}, this.members[i], {index: i});
24931             }
24932         }
24933     },
24934
24935     addMember: function(member, index) {
24936         var members = this.members.slice();
24937         members.splice(index === undefined ? members.length : index, 0, member);
24938         return this.update({members: members});
24939     },
24940
24941     updateMember: function(member, index) {
24942         var members = this.members.slice();
24943         members.splice(index, 1, _.extend({}, members[index], member));
24944         return this.update({members: members});
24945     },
24946
24947     removeMember: function(index) {
24948         var members = this.members.slice();
24949         members.splice(index, 1);
24950         return this.update({members: members});
24951     },
24952
24953     removeMembersWithID: function(id) {
24954         var members = _.reject(this.members, function(m) { return m.id === id; });
24955         return this.update({members: members});
24956     },
24957
24958     // Wherever a member appears with id `needle.id`, replace it with a member
24959     // with id `replacement.id`, type `replacement.type`, and the original role,
24960     // unless a member already exists with that id and role. Return an updated
24961     // relation.
24962     replaceMember: function(needle, replacement) {
24963         if (!this.memberById(needle.id))
24964             return this;
24965
24966         var members = [];
24967
24968         for (var i = 0; i < this.members.length; i++) {
24969             var member = this.members[i];
24970             if (member.id !== needle.id) {
24971                 members.push(member);
24972             } else if (!this.memberByIdAndRole(replacement.id, member.role)) {
24973                 members.push({id: replacement.id, type: replacement.type, role: member.role});
24974             }
24975         }
24976
24977         return this.update({members: members});
24978     },
24979
24980     asJXON: function(changeset_id) {
24981         var r = {
24982             relation: {
24983                 '@id': this.osmId(),
24984                 '@version': this.version || 0,
24985                 member: _.map(this.members, function(member) {
24986                     return { keyAttributes: { type: member.type, role: member.role, ref: iD.Entity.id.toOSM(member.id) } };
24987                 }),
24988                 tag: _.map(this.tags, function(v, k) {
24989                     return { keyAttributes: { k: k, v: v } };
24990                 })
24991             }
24992         };
24993         if (changeset_id) r.relation['@changeset'] = changeset_id;
24994         return r;
24995     },
24996
24997     asGeoJSON: function(resolver) {
24998         return resolver.transient(this, 'GeoJSON', function () {
24999             if (this.isMultipolygon()) {
25000                 return {
25001                     type: 'MultiPolygon',
25002                     coordinates: this.multipolygon(resolver)
25003                 };
25004             } else {
25005                 return {
25006                     type: 'FeatureCollection',
25007                     properties: this.tags,
25008                     features: this.members.map(function (member) {
25009                         return _.extend({role: member.role}, resolver.entity(member.id).asGeoJSON(resolver));
25010                     })
25011                 };
25012             }
25013         });
25014     },
25015
25016     area: function(resolver) {
25017         return resolver.transient(this, 'area', function() {
25018             return d3.geo.area(this.asGeoJSON(resolver));
25019         });
25020     },
25021
25022     isMultipolygon: function() {
25023         return this.tags.type === 'multipolygon';
25024     },
25025
25026     isComplete: function(resolver) {
25027         for (var i = 0; i < this.members.length; i++) {
25028             if (!resolver.hasEntity(this.members[i].id)) {
25029                 return false;
25030             }
25031         }
25032         return true;
25033     },
25034
25035     isRestriction: function() {
25036         return !!(this.tags.type && this.tags.type.match(/^restriction:?/));
25037     },
25038
25039     // Returns an array [A0, ... An], each Ai being an array of node arrays [Nds0, ... Ndsm],
25040     // where Nds0 is an outer ring and subsequent Ndsi's (if any i > 0) being inner rings.
25041     //
25042     // This corresponds to the structure needed for rendering a multipolygon path using a
25043     // `evenodd` fill rule, as well as the structure of a GeoJSON MultiPolygon geometry.
25044     //
25045     // In the case of invalid geometries, this function will still return a result which
25046     // includes the nodes of all way members, but some Nds may be unclosed and some inner
25047     // rings not matched with the intended outer ring.
25048     //
25049     multipolygon: function(resolver) {
25050         var outers = this.members.filter(function(m) { return 'outer' === (m.role || 'outer'); }),
25051             inners = this.members.filter(function(m) { return 'inner' === m.role; });
25052
25053         outers = iD.geo.joinWays(outers, resolver);
25054         inners = iD.geo.joinWays(inners, resolver);
25055
25056         outers = outers.map(function(outer) { return _.pluck(outer.nodes, 'loc'); });
25057         inners = inners.map(function(inner) { return _.pluck(inner.nodes, 'loc'); });
25058
25059         var result = outers.map(function(o) {
25060             // Heuristic for detecting counterclockwise winding order. Assumes
25061             // that OpenStreetMap polygons are not hemisphere-spanning.
25062             return [d3.geo.area({type: 'Polygon', coordinates: [o]}) > 2 * Math.PI ? o.reverse() : o];
25063         });
25064
25065         function findOuter(inner) {
25066             var o, outer;
25067
25068             for (o = 0; o < outers.length; o++) {
25069                 outer = outers[o];
25070                 if (iD.geo.polygonContainsPolygon(outer, inner))
25071                     return o;
25072             }
25073
25074             for (o = 0; o < outers.length; o++) {
25075                 outer = outers[o];
25076                 if (iD.geo.polygonIntersectsPolygon(outer, inner))
25077                     return o;
25078             }
25079         }
25080
25081         for (var i = 0; i < inners.length; i++) {
25082             var inner = inners[i];
25083
25084             if (d3.geo.area({type: 'Polygon', coordinates: [inner]}) < 2 * Math.PI) {
25085                 inner = inner.reverse();
25086             }
25087
25088             var o = findOuter(inners[i]);
25089             if (o !== undefined)
25090                 result[o].push(inners[i]);
25091             else
25092                 result.push([inners[i]]); // Invalid geometry
25093         }
25094
25095         return result;
25096     }
25097 });
25098 iD.Tree = function(head) {
25099     var rtree = rbush(),
25100         rectangles = {};
25101
25102     function extentRectangle(extent) {
25103         return [
25104             extent[0][0],
25105             extent[0][1],
25106             extent[1][0],
25107             extent[1][1]
25108         ];
25109     }
25110
25111     function entityRectangle(entity) {
25112         var rect = extentRectangle(entity.extent(head));
25113         rect.id = entity.id;
25114         rectangles[entity.id] = rect;
25115         return rect;
25116     }
25117
25118     function updateParents(entity, insertions, memo) {
25119         head.parentWays(entity).forEach(function(parent) {
25120             if (rectangles[parent.id]) {
25121                 rtree.remove(rectangles[parent.id]);
25122                 insertions[parent.id] = parent;
25123             }
25124         });
25125
25126         head.parentRelations(entity).forEach(function(parent) {
25127             if (memo[entity.id]) return;
25128             memo[entity.id] = true;
25129             if (rectangles[parent.id]) {
25130                 rtree.remove(rectangles[parent.id]);
25131                 insertions[parent.id] = parent;
25132             }
25133             updateParents(parent, insertions, memo);
25134         });
25135     }
25136
25137     var tree = {};
25138
25139     tree.rebase = function(entities, force) {
25140         var insertions = {};
25141
25142         for (var i = 0; i < entities.length; i++) {
25143             var entity = entities[i];
25144
25145             if (!entity.visible || (!force && (head.entities.hasOwnProperty(entity.id) || rectangles[entity.id])))
25146                 continue;
25147
25148             insertions[entity.id] = entity;
25149             updateParents(entity, insertions, {});
25150         }
25151
25152         rtree.load(_.map(insertions, entityRectangle));
25153
25154         return tree;
25155     };
25156
25157     tree.intersects = function(extent, graph) {
25158         if (graph !== head) {
25159             var diff = iD.Difference(head, graph),
25160                 insertions = {};
25161
25162             head = graph;
25163
25164             diff.deleted().forEach(function(entity) {
25165                 rtree.remove(rectangles[entity.id]);
25166                 delete rectangles[entity.id];
25167             });
25168
25169             diff.modified().forEach(function(entity) {
25170                 rtree.remove(rectangles[entity.id]);
25171                 insertions[entity.id] = entity;
25172                 updateParents(entity, insertions, {});
25173             });
25174
25175             diff.created().forEach(function(entity) {
25176                 insertions[entity.id] = entity;
25177             });
25178
25179             rtree.load(_.map(insertions, entityRectangle));
25180         }
25181
25182         return rtree.search(extentRectangle(extent)).map(function(rect) {
25183             return head.entity(rect.id);
25184         });
25185     };
25186
25187     return tree;
25188 };
25189 iD.Way = iD.Entity.way = function iD_Way() {
25190     if (!(this instanceof iD_Way)) {
25191         return (new iD_Way()).initialize(arguments);
25192     } else if (arguments.length) {
25193         this.initialize(arguments);
25194     }
25195 };
25196
25197 iD.Way.prototype = Object.create(iD.Entity.prototype);
25198
25199 _.extend(iD.Way.prototype, {
25200     type: 'way',
25201     nodes: [],
25202
25203     copy: function(deep, resolver) {
25204         var copy = iD.Entity.prototype.copy.call(this);
25205
25206         if (!deep || !resolver) {
25207             return copy;
25208         }
25209
25210         var nodes = [],
25211             replacements = {},
25212             i, oldid, newid, child;
25213
25214         for (i = 0; i < this.nodes.length; i++) {
25215             oldid = this.nodes[i];
25216             newid = replacements[oldid];
25217             if (!newid) {
25218                 child = resolver.entity(oldid).copy();
25219                 newid = replacements[oldid] = child[0].id;
25220                 copy = copy.concat(child);
25221             }
25222             nodes.push(newid);
25223         }
25224
25225         copy[0] = copy[0].update({nodes: nodes});
25226         return copy;
25227     },
25228
25229     extent: function(resolver) {
25230         return resolver.transient(this, 'extent', function() {
25231             var extent = iD.geo.Extent();
25232             for (var i = 0; i < this.nodes.length; i++) {
25233                 var node = resolver.hasEntity(this.nodes[i]);
25234                 if (node) {
25235                     extent._extend(node.extent());
25236                 }
25237             }
25238             return extent;
25239         });
25240     },
25241
25242     first: function() {
25243         return this.nodes[0];
25244     },
25245
25246     last: function() {
25247         return this.nodes[this.nodes.length - 1];
25248     },
25249
25250     contains: function(node) {
25251         return this.nodes.indexOf(node) >= 0;
25252     },
25253
25254     affix: function(node) {
25255         if (this.nodes[0] === node) return 'prefix';
25256         if (this.nodes[this.nodes.length - 1] === node) return 'suffix';
25257     },
25258
25259     layer: function() {
25260         // explicit layer tag, clamp between -10, 10..
25261         if (this.tags.layer !== undefined) {
25262             return Math.max(-10, Math.min(+(this.tags.layer), 10));
25263         }
25264
25265         // implied layer tag..
25266         if (this.tags.location === 'overground') return 1;
25267         if (this.tags.location === 'underground') return -1;
25268         if (this.tags.location === 'underwater') return -10;
25269
25270         if (this.tags.power === 'line') return 10;
25271         if (this.tags.power === 'minor_line') return 10;
25272         if (this.tags.aerialway) return 10;
25273         if (this.tags.bridge) return 1;
25274         if (this.tags.cutting) return -1;
25275         if (this.tags.tunnel) return -1;
25276         if (this.tags.waterway) return -1;
25277         if (this.tags.man_made === 'pipeline') return -10;
25278         if (this.tags.boundary) return -10;
25279         return 0;
25280     },
25281
25282     isOneWay: function() {
25283         // explicit oneway tag..
25284         if (['yes', '1', '-1'].indexOf(this.tags.oneway) !== -1) { return true; }
25285         if (['no', '0'].indexOf(this.tags.oneway) !== -1) { return false; }
25286
25287         // implied oneway tag..
25288         for (var key in this.tags) {
25289             if (key in iD.oneWayTags && (this.tags[key] in iD.oneWayTags[key]))
25290                 return true;
25291         }
25292         return false;
25293     },
25294
25295     isClosed: function() {
25296         return this.nodes.length > 0 && this.first() === this.last();
25297     },
25298
25299     isConvex: function(resolver) {
25300         if (!this.isClosed() || this.isDegenerate()) return null;
25301
25302         var nodes = _.uniq(resolver.childNodes(this)),
25303             coords = _.pluck(nodes, 'loc'),
25304             curr = 0, prev = 0;
25305
25306         for (var i = 0; i < coords.length; i++) {
25307             var o = coords[(i+1) % coords.length],
25308                 a = coords[i],
25309                 b = coords[(i+2) % coords.length],
25310                 res = iD.geo.cross(o, a, b);
25311
25312             curr = (res > 0) ? 1 : (res < 0) ? -1 : 0;
25313             if (curr === 0) {
25314                 continue;
25315             } else if (prev && curr !== prev) {
25316                 return false;
25317             }
25318             prev = curr;
25319         }
25320         return true;
25321     },
25322
25323     isArea: function() {
25324         if (this.tags.area === 'yes')
25325             return true;
25326         if (!this.isClosed() || this.tags.area === 'no')
25327             return false;
25328         for (var key in this.tags)
25329             if (key in iD.areaKeys && !(this.tags[key] in iD.areaKeys[key]))
25330                 return true;
25331         return false;
25332     },
25333
25334     isDegenerate: function() {
25335         return _.uniq(this.nodes).length < (this.isArea() ? 3 : 2);
25336     },
25337
25338     areAdjacent: function(n1, n2) {
25339         for (var i = 0; i < this.nodes.length; i++) {
25340             if (this.nodes[i] === n1) {
25341                 if (this.nodes[i - 1] === n2) return true;
25342                 if (this.nodes[i + 1] === n2) return true;
25343             }
25344         }
25345         return false;
25346     },
25347
25348     geometry: function(graph) {
25349         return graph.transient(this, 'geometry', function() {
25350             return this.isArea() ? 'area' : 'line';
25351         });
25352     },
25353
25354     addNode: function(id, index) {
25355         var nodes = this.nodes.slice();
25356         nodes.splice(index === undefined ? nodes.length : index, 0, id);
25357         return this.update({nodes: nodes});
25358     },
25359
25360     updateNode: function(id, index) {
25361         var nodes = this.nodes.slice();
25362         nodes.splice(index, 1, id);
25363         return this.update({nodes: nodes});
25364     },
25365
25366     replaceNode: function(needle, replacement) {
25367         if (this.nodes.indexOf(needle) < 0)
25368             return this;
25369
25370         var nodes = this.nodes.slice();
25371         for (var i = 0; i < nodes.length; i++) {
25372             if (nodes[i] === needle) {
25373                 nodes[i] = replacement;
25374             }
25375         }
25376         return this.update({nodes: nodes});
25377     },
25378
25379     removeNode: function(id) {
25380         var nodes = [];
25381
25382         for (var i = 0; i < this.nodes.length; i++) {
25383             var node = this.nodes[i];
25384             if (node !== id && nodes[nodes.length - 1] !== node) {
25385                 nodes.push(node);
25386             }
25387         }
25388
25389         // Preserve circularity
25390         if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] !== nodes[0]) {
25391             nodes.push(nodes[0]);
25392         }
25393
25394         return this.update({nodes: nodes});
25395     },
25396
25397     asJXON: function(changeset_id) {
25398         var r = {
25399             way: {
25400                 '@id': this.osmId(),
25401                 '@version': this.version || 0,
25402                 nd: _.map(this.nodes, function(id) {
25403                     return { keyAttributes: { ref: iD.Entity.id.toOSM(id) } };
25404                 }),
25405                 tag: _.map(this.tags, function(v, k) {
25406                     return { keyAttributes: { k: k, v: v } };
25407                 })
25408             }
25409         };
25410         if (changeset_id) r.way['@changeset'] = changeset_id;
25411         return r;
25412     },
25413
25414     asGeoJSON: function(resolver) {
25415         return resolver.transient(this, 'GeoJSON', function() {
25416             var coordinates = _.pluck(resolver.childNodes(this), 'loc');
25417             if (this.isArea() && this.isClosed()) {
25418                 return {
25419                     type: 'Polygon',
25420                     coordinates: [coordinates]
25421                 };
25422             } else {
25423                 return {
25424                     type: 'LineString',
25425                     coordinates: coordinates
25426                 };
25427             }
25428         });
25429     },
25430
25431     area: function(resolver) {
25432         return resolver.transient(this, 'area', function() {
25433             var nodes = resolver.childNodes(this);
25434
25435             var json = {
25436                 type: 'Polygon',
25437                 coordinates: [_.pluck(nodes, 'loc')]
25438             };
25439
25440             if (!this.isClosed() && nodes.length) {
25441                 json.coordinates[0].push(nodes[0].loc);
25442             }
25443
25444             var area = d3.geo.area(json);
25445
25446             // Heuristic for detecting counterclockwise winding order. Assumes
25447             // that OpenStreetMap polygons are not hemisphere-spanning.
25448             if (area > 2 * Math.PI) {
25449                 json.coordinates[0] = json.coordinates[0].reverse();
25450                 area = d3.geo.area(json);
25451             }
25452
25453             return isNaN(area) ? 0 : area;
25454         });
25455     }
25456 });
25457 iD.Background = function(context) {
25458     var dispatch = d3.dispatch('change'),
25459         baseLayer = iD.TileLayer()
25460             .projection(context.projection),
25461         gpxLayer = iD.GpxLayer(context, dispatch)
25462             .projection(context.projection),
25463         mapillaryLayer = iD.MapillaryLayer(context),
25464         overlayLayers = [];
25465
25466     var backgroundSources;
25467
25468     function findSource(id) {
25469         return _.find(backgroundSources, function(d) {
25470             return d.id && d.id === id;
25471         });
25472     }
25473
25474     function updateImagery() {
25475         var b = background.baseLayerSource(),
25476             o = overlayLayers.map(function (d) { return d.source().id; }).join(','),
25477             q = iD.util.stringQs(location.hash.substring(1));
25478
25479         var id = b.id;
25480         if (id === 'custom') {
25481             id = 'custom:' + b.template;
25482         }
25483
25484         if (id) {
25485             q.background = id;
25486         } else {
25487             delete q.background;
25488         }
25489
25490         if (o) {
25491             q.overlays = o;
25492         } else {
25493             delete q.overlays;
25494         }
25495
25496         location.replace('#' + iD.util.qsString(q, true));
25497
25498         var imageryUsed = [b.imageryUsed()];
25499
25500         overlayLayers.forEach(function (d) {
25501             var source = d.source();
25502             if (!source.isLocatorOverlay()) {
25503                 imageryUsed.push(source.imageryUsed());
25504             }
25505         });
25506
25507         if (background.showsGpxLayer()) {
25508             imageryUsed.push('Local GPX');
25509         }
25510
25511         context.history().imageryUsed(imageryUsed);
25512     }
25513
25514     function background(selection) {
25515         var base = selection.selectAll('.background-layer')
25516             .data([0]);
25517
25518         base.enter().insert('div', '.layer-data')
25519             .attr('class', 'layer-layer background-layer');
25520
25521         base.call(baseLayer);
25522
25523         var overlays = selection.selectAll('.layer-overlay')
25524             .data(overlayLayers, function(d) { return d.source().name(); });
25525
25526         overlays.enter().insert('div', '.layer-data')
25527             .attr('class', 'layer-layer layer-overlay');
25528
25529         overlays.each(function(layer) {
25530             d3.select(this).call(layer);
25531         });
25532
25533         overlays.exit()
25534             .remove();
25535
25536         var gpx = selection.selectAll('.layer-gpx')
25537             .data([0]);
25538
25539         gpx.enter().insert('div')
25540             .attr('class', 'layer-layer layer-gpx');
25541
25542         gpx.call(gpxLayer);
25543
25544         var mapillary = selection.selectAll('.layer-mapillary')
25545             .data([0]);
25546
25547         mapillary.enter().insert('div')
25548             .attr('class', 'layer-layer layer-mapillary');
25549
25550         mapillary.call(mapillaryLayer);
25551     }
25552
25553     background.sources = function(extent) {
25554         return backgroundSources.filter(function(source) {
25555             return source.intersects(extent);
25556         });
25557     };
25558
25559     background.dimensions = function(_) {
25560         baseLayer.dimensions(_);
25561         gpxLayer.dimensions(_);
25562         mapillaryLayer.dimensions(_);
25563
25564         overlayLayers.forEach(function(layer) {
25565             layer.dimensions(_);
25566         });
25567     };
25568
25569     background.baseLayerSource = function(d) {
25570         if (!arguments.length) return baseLayer.source();
25571
25572         baseLayer.source(d);
25573         dispatch.change();
25574         updateImagery();
25575
25576         return background;
25577     };
25578
25579     background.bing = function() {
25580         background.baseLayerSource(findSource('Bing'));
25581     };
25582
25583     background.hasGpxLayer = function() {
25584         return !_.isEmpty(gpxLayer.geojson());
25585     };
25586
25587     background.showsGpxLayer = function() {
25588         return background.hasGpxLayer() && gpxLayer.enable();
25589     };
25590
25591     function toDom(x) {
25592         return (new DOMParser()).parseFromString(x, 'text/xml');
25593     }
25594
25595     background.gpxLayerFiles = function(fileList) {
25596         var f = fileList[0],
25597             reader = new FileReader();
25598
25599         reader.onload = function(e) {
25600             gpxLayer.geojson(toGeoJSON.gpx(toDom(e.target.result)));
25601             background.zoomToGpxLayer();
25602             dispatch.change();
25603         };
25604
25605         reader.readAsText(f);
25606     };
25607
25608     background.zoomToGpxLayer = function() {
25609         if (background.hasGpxLayer()) {
25610             var map = context.map(),
25611                 viewport = map.trimmedExtent().polygon(),
25612                 coords = _.reduce(gpxLayer.geojson().features, function(coords, feature) {
25613                     var c = feature.geometry.coordinates;
25614                     return _.union(coords, feature.geometry.type === 'Point' ? [c] : c);
25615                 }, []);
25616
25617             if (!iD.geo.polygonIntersectsPolygon(viewport, coords)) {
25618                 var extent = iD.geo.Extent(d3.geo.bounds(gpxLayer.geojson()));
25619                 map.centerZoom(extent.center(), map.trimmedExtentZoom(extent));
25620             }
25621         }
25622     };
25623
25624     background.toggleGpxLayer = function() {
25625         gpxLayer.enable(!gpxLayer.enable());
25626         dispatch.change();
25627     };
25628
25629     background.showsMapillaryLayer = function() {
25630         return mapillaryLayer.enable();
25631     };
25632
25633     background.toggleMapillaryLayer = function() {
25634         mapillaryLayer.enable(!mapillaryLayer.enable());
25635         dispatch.change();
25636     };
25637
25638     background.showsLayer = function(d) {
25639         return d === baseLayer.source() ||
25640             (d.id === 'custom' && baseLayer.source().id === 'custom') ||
25641             overlayLayers.some(function(l) { return l.source() === d; });
25642     };
25643
25644     background.overlayLayerSources = function() {
25645         return overlayLayers.map(function (l) { return l.source(); });
25646     };
25647
25648     background.toggleOverlayLayer = function(d) {
25649         var layer;
25650
25651         for (var i = 0; i < overlayLayers.length; i++) {
25652             layer = overlayLayers[i];
25653             if (layer.source() === d) {
25654                 overlayLayers.splice(i, 1);
25655                 dispatch.change();
25656                 updateImagery();
25657                 return;
25658             }
25659         }
25660
25661         layer = iD.TileLayer()
25662             .source(d)
25663             .projection(context.projection)
25664             .dimensions(baseLayer.dimensions());
25665
25666         overlayLayers.push(layer);
25667         dispatch.change();
25668         updateImagery();
25669     };
25670
25671     background.nudge = function(d, zoom) {
25672         baseLayer.source().nudge(d, zoom);
25673         dispatch.change();
25674         return background;
25675     };
25676
25677     background.offset = function(d) {
25678         if (!arguments.length) return baseLayer.source().offset();
25679         baseLayer.source().offset(d);
25680         dispatch.change();
25681         return background;
25682     };
25683
25684     background.load = function(imagery) {
25685         backgroundSources = imagery.map(function(source) {
25686             if (source.type === 'bing') {
25687                 return iD.BackgroundSource.Bing(source, dispatch);
25688             } else {
25689                 return iD.BackgroundSource(source);
25690             }
25691         });
25692
25693         backgroundSources.unshift(iD.BackgroundSource.None());
25694
25695         var q = iD.util.stringQs(location.hash.substring(1)),
25696             chosen = q.background || q.layer;
25697
25698         if (chosen && chosen.indexOf('custom:') === 0) {
25699             background.baseLayerSource(iD.BackgroundSource.Custom(chosen.replace(/^custom:/, '')));
25700         } else {
25701             background.baseLayerSource(findSource(chosen) || findSource('Bing') || backgroundSources[1]);
25702         }
25703
25704         var locator = _.find(backgroundSources, function(d) {
25705             return d.overlay && d.default;
25706         });
25707
25708         if (locator) {
25709             background.toggleOverlayLayer(locator);
25710         }
25711
25712         var overlays = (q.overlays || '').split(',');
25713         overlays.forEach(function(overlay) {
25714             overlay = findSource(overlay);
25715             if (overlay) background.toggleOverlayLayer(overlay);
25716         });
25717
25718         var gpx = q.gpx;
25719         if (gpx) {
25720             d3.text(gpx, function(err, gpxTxt) {
25721                 gpxLayer.geojson(toGeoJSON.gpx(toDom(gpxTxt)));
25722                 dispatch.change();
25723             });
25724         }
25725     };
25726
25727     return d3.rebind(background, dispatch, 'on');
25728 };
25729 iD.BackgroundSource = function(data) {
25730     var source = _.clone(data),
25731         offset = [0, 0],
25732         name = source.name;
25733
25734     source.scaleExtent = data.scaleExtent || [0, 20];
25735     source.overzoom = data.overzoom !== false;
25736
25737     source.offset = function(_) {
25738         if (!arguments.length) return offset;
25739         offset = _;
25740         return source;
25741     };
25742
25743     source.nudge = function(_, zoomlevel) {
25744         offset[0] += _[0] / Math.pow(2, zoomlevel);
25745         offset[1] += _[1] / Math.pow(2, zoomlevel);
25746         return source;
25747     };
25748
25749     source.name = function() {
25750         return name;
25751     };
25752
25753     source.imageryUsed = function() {
25754         return source.id || name;
25755     };
25756
25757     source.url = function(coord) {
25758         return data.template
25759             .replace('{x}', coord[0])
25760             .replace('{y}', coord[1])
25761             // TMS-flipped y coordinate
25762             .replace(/\{[t-]y\}/, Math.pow(2, coord[2]) - coord[1] - 1)
25763             .replace(/\{z(oom)?\}/, coord[2])
25764             .replace(/\{switch:([^}]+)\}/, function(s, r) {
25765                 var subdomains = r.split(',');
25766                 return subdomains[(coord[0] + coord[1]) % subdomains.length];
25767             })
25768             .replace('{u}', function() {
25769                 var u = '';
25770                 for (var zoom = coord[2]; zoom > 0; zoom--) {
25771                     var b = 0;
25772                     var mask = 1 << (zoom - 1);
25773                     if ((coord[0] & mask) !== 0) b++;
25774                     if ((coord[1] & mask) !== 0) b += 2;
25775                     u += b.toString();
25776                 }
25777                 return u;
25778             });
25779     };
25780
25781     source.intersects = function(extent) {
25782         extent = extent.polygon();
25783         return !data.polygon || data.polygon.some(function(polygon) {
25784             return iD.geo.polygonIntersectsPolygon(polygon, extent);
25785         });
25786     };
25787
25788     source.validZoom = function(z) {
25789         return source.scaleExtent[0] <= z &&
25790             (source.overzoom || source.scaleExtent[1] > z);
25791     };
25792
25793     source.isLocatorOverlay = function() {
25794         return name === 'Locator Overlay';
25795     };
25796
25797     source.copyrightNotices = function() {};
25798
25799     return source;
25800 };
25801
25802 iD.BackgroundSource.Bing = function(data, dispatch) {
25803     // http://msdn.microsoft.com/en-us/library/ff701716.aspx
25804     // http://msdn.microsoft.com/en-us/library/ff701701.aspx
25805
25806     data.template = 'https://ecn.t{switch:0,1,2,3}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z';
25807
25808     var bing = iD.BackgroundSource(data),
25809         key = 'Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU', // Same as P2 and JOSM
25810         url = 'https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?include=ImageryProviders&key=' +
25811             key + '&jsonp={callback}',
25812         providers = [];
25813
25814     d3.jsonp(url, function(json) {
25815         providers = json.resourceSets[0].resources[0].imageryProviders.map(function(provider) {
25816             return {
25817                 attribution: provider.attribution,
25818                 areas: provider.coverageAreas.map(function(area) {
25819                     return {
25820                         zoom: [area.zoomMin, area.zoomMax],
25821                         extent: iD.geo.Extent([area.bbox[1], area.bbox[0]], [area.bbox[3], area.bbox[2]])
25822                     };
25823                 })
25824             };
25825         });
25826         dispatch.change();
25827     });
25828
25829     bing.copyrightNotices = function(zoom, extent) {
25830         zoom = Math.min(zoom, 21);
25831         return providers.filter(function(provider) {
25832             return _.any(provider.areas, function(area) {
25833                 return extent.intersects(area.extent) &&
25834                     area.zoom[0] <= zoom &&
25835                     area.zoom[1] >= zoom;
25836             });
25837         }).map(function(provider) {
25838             return provider.attribution;
25839         }).join(', ');
25840     };
25841
25842     bing.logo = 'bing_maps.png';
25843     bing.terms_url = 'http://opengeodata.org/microsoft-imagery-details';
25844
25845     return bing;
25846 };
25847
25848 iD.BackgroundSource.None = function() {
25849     var source = iD.BackgroundSource({id: 'none', template: ''});
25850
25851     source.name = function() {
25852         return t('background.none');
25853     };
25854
25855     source.imageryUsed = function() {
25856         return 'None';
25857     };
25858
25859     return source;
25860 };
25861
25862 iD.BackgroundSource.Custom = function(template) {
25863     var source = iD.BackgroundSource({id: 'custom', template: template});
25864
25865     source.name = function() {
25866         return t('background.custom');
25867     };
25868
25869     source.imageryUsed = function() {
25870         return 'Custom (' + template + ')';
25871     };
25872
25873     return source;
25874 };
25875 iD.Features = function(context) {
25876     var major_roads = {
25877         'motorway': true,
25878         'motorway_link': true,
25879         'trunk': true,
25880         'trunk_link': true,
25881         'primary': true,
25882         'primary_link': true,
25883         'secondary': true,
25884         'secondary_link': true,
25885         'tertiary': true,
25886         'tertiary_link': true,
25887         'residential': true
25888     };
25889
25890     var minor_roads = {
25891         'service': true,
25892         'living_street': true,
25893         'road': true,
25894         'unclassified': true,
25895         'track': true
25896     };
25897
25898     var paths = {
25899         'path': true,
25900         'footway': true,
25901         'cycleway': true,
25902         'bridleway': true,
25903         'steps': true,
25904         'pedestrian': true
25905     };
25906
25907     var past_futures = {
25908         'proposed': true,
25909         'construction': true,
25910         'abandoned': true,
25911         'dismantled': true,
25912         'disused': true,
25913         'razed': true,
25914         'demolished': true,
25915         'obliterated': true
25916     };
25917
25918     var dispatch = d3.dispatch('change', 'redraw'),
25919         _cullFactor = 1,
25920         _cache = {},
25921         _features = {},
25922         _stats = {},
25923         _keys = [],
25924         _hidden = [];
25925
25926     function update() {
25927         _hidden = features.hidden();
25928         dispatch.change();
25929         dispatch.redraw();
25930     }
25931
25932     function defineFeature(k, filter, max) {
25933         _keys.push(k);
25934         _features[k] = {
25935             filter: filter,
25936             enabled: true,   // whether the user wants it enabled..
25937             count: 0,
25938             currentMax: (max || Infinity),
25939             defaultMax: (max || Infinity),
25940             enable: function() { this.enabled = true; this.currentMax = this.defaultMax; },
25941             disable: function() { this.enabled = false; this.currentMax = 0; },
25942             hidden: function() { return !context.editable() || this.count > this.currentMax * _cullFactor; },
25943             autoHidden: function() { return this.hidden() && this.currentMax > 0; }
25944         };
25945     }
25946
25947
25948     defineFeature('points', function isPoint(entity, resolver, geometry) {
25949         return geometry === 'point';
25950     }, 200);
25951
25952     defineFeature('major_roads', function isMajorRoad(entity) {
25953         return major_roads[entity.tags.highway];
25954     });
25955
25956     defineFeature('minor_roads', function isMinorRoad(entity) {
25957         return minor_roads[entity.tags.highway];
25958     });
25959
25960     defineFeature('paths', function isPath(entity) {
25961         return paths[entity.tags.highway];
25962     });
25963
25964     defineFeature('buildings', function isBuilding(entity) {
25965         return (
25966             !!entity.tags['building:part'] ||
25967             (!!entity.tags.building && entity.tags.building !== 'no') ||
25968             entity.tags.amenity === 'shelter' ||
25969             entity.tags.parking === 'multi-storey' ||
25970             entity.tags.parking === 'sheds' ||
25971             entity.tags.parking === 'carports' ||
25972             entity.tags.parking === 'garage_boxes'
25973         );
25974     }, 250);
25975
25976     defineFeature('landuse', function isLanduse(entity, resolver, geometry) {
25977         return geometry === 'area' &&
25978             !_features.buildings.filter(entity) &&
25979             !_features.water.filter(entity);
25980     });
25981
25982     defineFeature('boundaries', function isBoundary(entity) {
25983         return !!entity.tags.boundary;
25984     });
25985
25986     defineFeature('water', function isWater(entity) {
25987         return (
25988             !!entity.tags.waterway ||
25989             entity.tags.natural === 'water' ||
25990             entity.tags.natural === 'coastline' ||
25991             entity.tags.natural === 'bay' ||
25992             entity.tags.landuse === 'pond' ||
25993             entity.tags.landuse === 'basin' ||
25994             entity.tags.landuse === 'reservoir' ||
25995             entity.tags.landuse === 'salt_pond'
25996         );
25997     });
25998
25999     defineFeature('rail', function isRail(entity) {
26000         return (
26001             !!entity.tags.railway ||
26002             entity.tags.landuse === 'railway'
26003         ) && !(
26004             major_roads[entity.tags.highway] ||
26005             minor_roads[entity.tags.highway] ||
26006             paths[entity.tags.highway]
26007         );
26008     });
26009
26010     defineFeature('power', function isPower(entity) {
26011         return !!entity.tags.power;
26012     });
26013
26014     // contains a past/future tag, but not in active use as a road/path/cycleway/etc..
26015     defineFeature('past_future', function isPastFuture(entity) {
26016         if (
26017             major_roads[entity.tags.highway] ||
26018             minor_roads[entity.tags.highway] ||
26019             paths[entity.tags.highway]
26020         ) { return false; }
26021
26022         var strings = Object.keys(entity.tags);
26023
26024         for (var i = 0; i < strings.length; i++) {
26025             var s = strings[i];
26026             if (past_futures[s] || past_futures[entity.tags[s]]) { return true; }
26027         }
26028         return false;
26029     });
26030
26031     // Lines or areas that don't match another feature filter.
26032     // IMPORTANT: The 'others' feature must be the last one defined,
26033     //   so that code in getMatches can skip this test if `hasMatch = true`
26034     defineFeature('others', function isOther(entity, resolver, geometry) {
26035         return (geometry === 'line' || geometry === 'area');
26036     });
26037
26038
26039     function features() {}
26040
26041     features.features = function() {
26042         return _features;
26043     };
26044
26045     features.keys = function() {
26046         return _keys;
26047     };
26048
26049     features.enabled = function(k) {
26050         if (!arguments.length) {
26051             return _.filter(_keys, function(k) { return _features[k].enabled; });
26052         }
26053         return _features[k] && _features[k].enabled;
26054     };
26055
26056     features.disabled = function(k) {
26057         if (!arguments.length) {
26058             return _.reject(_keys, function(k) { return _features[k].enabled; });
26059         }
26060         return _features[k] && !_features[k].enabled;
26061     };
26062
26063     features.hidden = function(k) {
26064         if (!arguments.length) {
26065             return _.filter(_keys, function(k) { return _features[k].hidden(); });
26066         }
26067         return _features[k] && _features[k].hidden();
26068     };
26069
26070     features.autoHidden = function(k) {
26071         if (!arguments.length) {
26072             return _.filter(_keys, function(k) { return _features[k].autoHidden(); });
26073         }
26074         return _features[k] && _features[k].autoHidden();
26075     };
26076
26077     features.enable = function(k) {
26078         if (_features[k] && !_features[k].enabled) {
26079             _features[k].enable();
26080             update();
26081         }
26082     };
26083
26084     features.disable = function(k) {
26085         if (_features[k] && _features[k].enabled) {
26086             _features[k].disable();
26087             update();
26088         }
26089     };
26090
26091     features.toggle = function(k) {
26092         if (_features[k]) {
26093             (function(f) { return f.enabled ? f.disable() : f.enable(); }(_features[k]));
26094             update();
26095         }
26096     };
26097
26098     features.resetStats = function() {
26099         _.each(_features, function(f) { f.count = 0; });
26100         dispatch.change();
26101     };
26102
26103     features.gatherStats = function(d, resolver, dimensions) {
26104         var needsRedraw = false,
26105             type = _.groupBy(d, function(ent) { return ent.type; }),
26106             entities = [].concat(type.relation || [], type.way || [], type.node || []),
26107             currHidden, geometry, matches;
26108
26109         _.each(_features, function(f) { f.count = 0; });
26110
26111         // adjust the threshold for point/building culling based on viewport size..
26112         // a _cullFactor of 1 corresponds to a 1000x1000px viewport..
26113         _cullFactor = dimensions[0] * dimensions[1] / 1000000;
26114
26115         for (var i = 0; i < entities.length; i++) {
26116             geometry = entities[i].geometry(resolver);
26117             if (!(geometry === 'vertex' || geometry === 'relation')) {
26118                 matches = Object.keys(features.getMatches(entities[i], resolver, geometry));
26119                 for (var j = 0; j < matches.length; j++) {
26120                     _features[matches[j]].count++;
26121                 }
26122             }
26123         }
26124
26125         currHidden = features.hidden();
26126         if (currHidden !== _hidden) {
26127             _hidden = currHidden;
26128             needsRedraw = true;
26129             dispatch.change();
26130         }
26131
26132         return needsRedraw;
26133     };
26134
26135     features.stats = function() {
26136         _.each(_keys, function(k) { _stats[k] = _features[k].count; });
26137         return _stats;
26138     };
26139
26140     features.clear = function(d) {
26141         for (var i = 0; i < d.length; i++) {
26142             features.clearEntity(d[i]);
26143         }
26144     };
26145
26146     features.clearEntity = function(entity) {
26147         delete _cache[iD.Entity.key(entity)];
26148     };
26149
26150     features.reset = function() {
26151         _cache = {};
26152     };
26153
26154     features.getMatches = function(entity, resolver, geometry) {
26155         var ent = iD.Entity.key(entity);
26156
26157         if (!_cache[ent]) {
26158             _cache[ent] = {};
26159         }
26160         if (!_cache[ent].matches) {
26161             var matches = {},
26162                 hasMatch = false;
26163
26164             if (!(geometry === 'vertex' || geometry === 'relation')) {
26165                 for (var i = 0; i < _keys.length; i++) {
26166
26167                     if (_keys[i] === 'others') {
26168                         if (hasMatch) continue;
26169
26170                         // If the entity is a way that has not matched any other
26171                         // feature type, see if it has a parent relation, and if so,
26172                         // match whatever feature types the parent has matched.
26173                         // (The way is a member of a multipolygon.)
26174                         //
26175                         // IMPORTANT:
26176                         // For this to work, getMatches must be called on relations before ways.
26177                         //
26178                         if (entity.type === 'way') {
26179                             var parents = features.getParents(entity, resolver, geometry);
26180                             if (parents.length === 1) {
26181                                 var pkey = iD.Entity.key(parents[0]);
26182                                 if (_cache[pkey] && _cache[pkey].matches) {
26183                                     matches = _.clone(_cache[pkey].matches);
26184                                     continue;
26185                                 }
26186                             }
26187                         }
26188                     }
26189
26190                     if (_features[_keys[i]].filter(entity, resolver, geometry)) {
26191                         matches[_keys[i]] = hasMatch = true;
26192                     }
26193                 }
26194             }
26195             _cache[ent].matches = matches;
26196         }
26197         return _cache[ent].matches;
26198     };
26199
26200     features.getParents = function(entity, resolver, geometry) {
26201         var ent = iD.Entity.key(entity);
26202
26203         if (!_cache[ent]) {
26204             _cache[ent] = {};
26205         }
26206         if (!_cache[ent].parents) {
26207             var parents = [];
26208
26209             if (geometry !== 'point') {
26210                 if (geometry === 'vertex') {
26211                     parents = resolver.parentWays(entity);
26212                 } else {   // 'line', 'area', 'relation'
26213                     parents = resolver.parentRelations(entity);
26214                 }
26215             }
26216             _cache[ent].parents = parents;
26217         }
26218         return _cache[ent].parents;
26219     };
26220
26221     features.isHiddenFeature = function(entity, resolver, geometry) {
26222         if (!entity.version) return false;
26223
26224         var matches = features.getMatches(entity, resolver, geometry);
26225
26226         for (var i = 0; i < _hidden.length; i++) {
26227             if (matches[_hidden[i]]) { return true; }
26228         }
26229         return false;
26230     };
26231
26232     features.isHiddenChild = function(entity, resolver, geometry) {
26233         if (!entity.version || geometry === 'point') { return false; }
26234
26235         var parents = features.getParents(entity, resolver, geometry);
26236
26237         if (!parents.length) { return false; }
26238
26239         for (var i = 0; i < parents.length; i++) {
26240             if (!features.isHidden(parents[i], resolver, parents[i].geometry(resolver))) {
26241                 return false;
26242             }
26243         }
26244         return true;
26245     };
26246
26247     features.hasHiddenConnections = function(entity, resolver) {
26248         var childNodes, connections;
26249
26250         if (entity.type === 'midpoint') {
26251             childNodes = [resolver.entity(entity.edge[0]), resolver.entity(entity.edge[1])];
26252             connections = [];
26253         } else {
26254             childNodes = resolver.childNodes(entity);
26255             connections = features.getParents(entity, resolver, entity.geometry(resolver));
26256         }
26257
26258         // gather ways connected to child nodes..
26259         connections = _.reduce(childNodes, function(result, e) {
26260             return resolver.isShared(e) ? _.union(result, resolver.parentWays(e)) : result;
26261         }, connections);
26262
26263         return connections.length ? _.any(connections, function(e) {
26264             return features.isHidden(e, resolver, e.geometry(resolver));
26265         }) : false;
26266     };
26267
26268     features.isHidden = function(entity, resolver, geometry) {
26269         if (!entity.version) return false;
26270
26271         if (geometry === 'vertex')
26272             return features.isHiddenChild(entity, resolver, geometry);
26273         if (geometry === 'point')
26274             return features.isHiddenFeature(entity, resolver, geometry);
26275
26276         return features.isHiddenFeature(entity, resolver, geometry) ||
26277                features.isHiddenChild(entity, resolver, geometry);
26278     };
26279
26280     features.filter = function(d, resolver) {
26281         if (!_hidden.length)
26282             return d;
26283
26284         var result = [];
26285         for (var i = 0; i < d.length; i++) {
26286             var entity = d[i];
26287             if (!features.isHidden(entity, resolver, entity.geometry(resolver))) {
26288                 result.push(entity);
26289             }
26290         }
26291         return result;
26292     };
26293
26294     return d3.rebind(features, dispatch, 'on');
26295 };
26296 iD.GpxLayer = function(context) {
26297     var projection,
26298         gj = {},
26299         enable = true,
26300         svg;
26301
26302     function render(selection) {
26303         svg = selection.selectAll('svg')
26304             .data([render]);
26305
26306         svg.enter()
26307             .append('svg');
26308
26309         svg.style('display', enable ? 'block' : 'none');
26310
26311         var paths = svg
26312             .selectAll('path')
26313             .data([gj]);
26314
26315         paths
26316             .enter()
26317             .append('path')
26318             .attr('class', 'gpx');
26319
26320         var path = d3.geo.path()
26321             .projection(projection);
26322
26323         paths
26324             .attr('d', path);
26325
26326         if (typeof gj.features !== 'undefined') {
26327             svg
26328                 .selectAll('text')
26329                 .remove();
26330
26331             svg
26332                 .selectAll('path')
26333                 .data(gj.features)
26334                 .enter()
26335                 .append('text')
26336                 .attr('class', 'gpx')
26337                 .text(function(d) {
26338                     return d.properties.desc || d.properties.name;
26339                 })
26340                 .attr('x', function(d) {
26341                     var centroid = path.centroid(d);
26342                     return centroid[0] + 5;
26343                 })
26344                 .attr('y', function(d) {
26345                     var centroid = path.centroid(d);
26346                     return centroid[1];
26347                 });
26348         }
26349     }
26350
26351     render.projection = function(_) {
26352         if (!arguments.length) return projection;
26353         projection = _;
26354         return render;
26355     };
26356
26357     render.enable = function(_) {
26358         if (!arguments.length) return enable;
26359         enable = _;
26360         return render;
26361     };
26362
26363     render.geojson = function(_) {
26364         if (!arguments.length) return gj;
26365         gj = _;
26366         return render;
26367     };
26368
26369     render.dimensions = function(_) {
26370         if (!arguments.length) return svg.dimensions();
26371         svg.dimensions(_);
26372         return render;
26373     };
26374
26375     render.id = 'layer-gpx';
26376
26377     function over() {
26378         d3.event.stopPropagation();
26379         d3.event.preventDefault();
26380         d3.event.dataTransfer.dropEffect = 'copy';
26381     }
26382
26383     d3.select('body')
26384         .attr('dropzone', 'copy')
26385         .on('drop.localgpx', function() {
26386             d3.event.stopPropagation();
26387             d3.event.preventDefault();
26388             if (!iD.detect().filedrop) return;
26389             context.background().gpxLayerFiles(d3.event.dataTransfer.files);
26390         })
26391         .on('dragenter.localgpx', over)
26392         .on('dragexit.localgpx', over)
26393         .on('dragover.localgpx', over);
26394
26395     return render;
26396 };
26397 iD.Map = function(context) {
26398     var dimensions = [1, 1],
26399         dispatch = d3.dispatch('move', 'drawn'),
26400         projection = context.projection,
26401         roundedProjection = iD.svg.RoundProjection(projection),
26402         zoom = d3.behavior.zoom()
26403             .translate(projection.translate())
26404             .scale(projection.scale() * 2 * Math.PI)
26405             .scaleExtent([1024, 256 * Math.pow(2, 24)])
26406             .on('zoom', zoomPan),
26407         dblclickEnabled = true,
26408         transformStart,
26409         transformed = false,
26410         minzoom = 0,
26411         points = iD.svg.Points(roundedProjection, context),
26412         vertices = iD.svg.Vertices(roundedProjection, context),
26413         lines = iD.svg.Lines(projection),
26414         areas = iD.svg.Areas(projection),
26415         midpoints = iD.svg.Midpoints(roundedProjection, context),
26416         labels = iD.svg.Labels(projection, context),
26417         supersurface, surface,
26418         mouse,
26419         mousemove;
26420
26421     function map(selection) {
26422         context.history()
26423             .on('change.map', redraw);
26424         context.background()
26425             .on('change.map', redraw);
26426         context.features()
26427             .on('redraw.map', redraw);
26428
26429         selection
26430             .on('dblclick.map', dblClick)
26431             .call(zoom);
26432
26433         supersurface = selection.append('div')
26434             .attr('id', 'supersurface');
26435
26436         // Need a wrapper div because Opera can't cope with an absolutely positioned
26437         // SVG element: http://bl.ocks.org/jfirebaugh/6fbfbd922552bf776c16
26438         var dataLayer = supersurface.append('div')
26439             .attr('class', 'layer-layer layer-data');
26440
26441         map.surface = surface = dataLayer.append('svg')
26442             .on('mousedown.zoom', function() {
26443                 if (d3.event.button === 2) {
26444                     d3.event.stopPropagation();
26445                 }
26446             }, true)
26447             .on('mouseup.zoom', function() {
26448                 if (resetTransform()) redraw();
26449             })
26450             .attr('id', 'surface')
26451             .call(iD.svg.Surface(context));
26452
26453         supersurface.call(context.background());
26454
26455         surface.on('mousemove.map', function() {
26456             mousemove = d3.event;
26457         });
26458
26459         surface.on('mouseover.vertices', function() {
26460             if (map.editable() && !transformed) {
26461                 var hover = d3.event.target.__data__;
26462                 surface.call(vertices.drawHover, context.graph(), hover, map.extent(), map.zoom());
26463                 dispatch.drawn({full: false});
26464             }
26465         });
26466
26467         surface.on('mouseout.vertices', function() {
26468             if (map.editable() && !transformed) {
26469                 var hover = d3.event.relatedTarget && d3.event.relatedTarget.__data__;
26470                 surface.call(vertices.drawHover, context.graph(), hover, map.extent(), map.zoom());
26471                 dispatch.drawn({full: false});
26472             }
26473         });
26474
26475         context.on('enter.map', function() {
26476             if (map.editable() && !transformed) {
26477                 var all = context.intersects(map.extent()),
26478                     filter = d3.functor(true),
26479                     graph = context.graph();
26480
26481                 all = context.features().filter(all, graph);
26482                 surface.call(vertices, graph, all, filter, map.extent(), map.zoom());
26483                 surface.call(midpoints, graph, all, filter, map.trimmedExtent());
26484                 dispatch.drawn({full: false});
26485             }
26486         });
26487
26488         map.dimensions(selection.dimensions());
26489
26490         labels.supersurface(supersurface);
26491     }
26492
26493     function pxCenter() { return [dimensions[0] / 2, dimensions[1] / 2]; }
26494
26495     function drawVector(difference, extent) {
26496         var graph = context.graph(),
26497             features = context.features(),
26498             all = context.intersects(map.extent()),
26499             data, filter;
26500
26501         if (difference) {
26502             var complete = difference.complete(map.extent());
26503             data = _.compact(_.values(complete));
26504             filter = function(d) { return d.id in complete; };
26505             features.clear(data);
26506
26507         } else {
26508             // force a full redraw if gatherStats detects that a feature
26509             // should be auto-hidden (e.g. points or buildings)..
26510             if (features.gatherStats(all, graph, dimensions)) {
26511                 extent = undefined;
26512             }
26513
26514             if (extent) {
26515                 data = context.intersects(map.extent().intersection(extent));
26516                 var set = d3.set(_.pluck(data, 'id'));
26517                 filter = function(d) { return set.has(d.id); };
26518
26519             } else {
26520                 data = all;
26521                 filter = d3.functor(true);
26522             }
26523         }
26524
26525         data = features.filter(data, graph);
26526
26527         surface
26528             .call(vertices, graph, data, filter, map.extent(), map.zoom())
26529             .call(lines, graph, data, filter)
26530             .call(areas, graph, data, filter)
26531             .call(midpoints, graph, data, filter, map.trimmedExtent())
26532             .call(labels, graph, data, filter, dimensions, !difference && !extent)
26533             .call(points, data, filter);
26534
26535         dispatch.drawn({full: true});
26536     }
26537
26538     function editOff() {
26539         context.features().resetStats();
26540         surface.selectAll('.layer *').remove();
26541         dispatch.drawn({full: true});
26542     }
26543
26544     function dblClick() {
26545         if (!dblclickEnabled) {
26546             d3.event.preventDefault();
26547             d3.event.stopImmediatePropagation();
26548         }
26549     }
26550
26551     function zoomPan() {
26552         if (Math.log(d3.event.scale) / Math.LN2 - 8 < minzoom) {
26553             surface.interrupt();
26554             iD.ui.flash(context.container())
26555                 .select('.content')
26556                 .text(t('cannot_zoom'));
26557             setZoom(context.minEditableZoom(), true);
26558             queueRedraw();
26559             dispatch.move(map);
26560             return;
26561         }
26562
26563         projection
26564             .translate(d3.event.translate)
26565             .scale(d3.event.scale / (2 * Math.PI));
26566
26567         var scale = d3.event.scale / transformStart[0],
26568             tX = Math.round((d3.event.translate[0] / scale - transformStart[1][0]) * scale),
26569             tY = Math.round((d3.event.translate[1] / scale - transformStart[1][1]) * scale);
26570
26571         transformed = true;
26572         iD.util.setTransform(supersurface, tX, tY, scale);
26573         queueRedraw();
26574
26575         dispatch.move(map);
26576     }
26577
26578     function resetTransform() {
26579         if (!transformed) return false;
26580         iD.util.setTransform(supersurface, 0, 0);
26581         transformed = false;
26582         return true;
26583     }
26584
26585     function redraw(difference, extent) {
26586
26587         if (!surface) return;
26588
26589         clearTimeout(timeoutId);
26590
26591         // If we are in the middle of a zoom/pan, we can't do differenced redraws.
26592         // It would result in artifacts where differenced entities are redrawn with
26593         // one transform and unchanged entities with another.
26594         if (resetTransform()) {
26595             difference = extent = undefined;
26596         }
26597
26598         var zoom = String(~~map.zoom());
26599         if (surface.attr('data-zoom') !== zoom) {
26600             surface.attr('data-zoom', zoom)
26601                 .classed('low-zoom', zoom <= 16);
26602         }
26603
26604         if (!difference) {
26605             supersurface.call(context.background());
26606         }
26607
26608         if (map.editable()) {
26609             context.loadTiles(projection, dimensions);
26610             drawVector(difference, extent);
26611         } else {
26612             editOff();
26613         }
26614
26615         transformStart = [
26616             projection.scale() * 2 * Math.PI,
26617             projection.translate().slice()];
26618
26619         return map;
26620     }
26621
26622     var timeoutId;
26623     function queueRedraw() {
26624         clearTimeout(timeoutId);
26625         timeoutId = setTimeout(function() { redraw(); }, 300);
26626     }
26627
26628     function pointLocation(p) {
26629         var translate = projection.translate(),
26630             scale = projection.scale() * 2 * Math.PI;
26631         return [(p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale];
26632     }
26633
26634     function locationPoint(l) {
26635         var translate = projection.translate(),
26636             scale = projection.scale() * 2 * Math.PI;
26637         return [l[0] * scale + translate[0], l[1] * scale + translate[1]];
26638     }
26639
26640     map.mouse = function() {
26641         var e = mousemove || d3.event, s;
26642         while ((s = e.sourceEvent)) e = s;
26643         return mouse(e);
26644     };
26645
26646     map.mouseCoordinates = function() {
26647         return projection.invert(map.mouse());
26648     };
26649
26650     map.dblclickEnable = function(_) {
26651         if (!arguments.length) return dblclickEnabled;
26652         dblclickEnabled = _;
26653         return map;
26654     };
26655
26656     function interpolateZoom(_) {
26657         var k = projection.scale(),
26658             t = projection.translate();
26659
26660         surface.node().__chart__ = {
26661             x: t[0],
26662             y: t[1],
26663             k: k * 2 * Math.PI
26664         };
26665
26666         setZoom(_);
26667         projection.scale(k).translate(t);  // undo setZoom projection changes
26668
26669         zoom.event(surface.transition());
26670     }
26671
26672     function setZoom(_, force) {
26673         if (_ === map.zoom() && !force)
26674             return false;
26675         var scale = 256 * Math.pow(2, _),
26676             center = pxCenter(),
26677             l = pointLocation(center);
26678         scale = Math.max(1024, Math.min(256 * Math.pow(2, 24), scale));
26679         projection.scale(scale / (2 * Math.PI));
26680         zoom.scale(scale);
26681         var t = projection.translate();
26682         l = locationPoint(l);
26683         t[0] += center[0] - l[0];
26684         t[1] += center[1] - l[1];
26685         projection.translate(t);
26686         zoom.translate(projection.translate());
26687         return true;
26688     }
26689
26690     function setCenter(_) {
26691         var c = map.center();
26692         if (_[0] === c[0] && _[1] === c[1])
26693             return false;
26694         var t = projection.translate(),
26695             pxC = pxCenter(),
26696             ll = projection(_);
26697         projection.translate([
26698             t[0] - ll[0] + pxC[0],
26699             t[1] - ll[1] + pxC[1]]);
26700         zoom.translate(projection.translate());
26701         return true;
26702     }
26703
26704     map.pan = function(d) {
26705         var t = projection.translate();
26706         t[0] += d[0];
26707         t[1] += d[1];
26708         projection.translate(t);
26709         zoom.translate(projection.translate());
26710         dispatch.move(map);
26711         return redraw();
26712     };
26713
26714     map.dimensions = function(_) {
26715         if (!arguments.length) return dimensions;
26716         var center = map.center();
26717         dimensions = _;
26718         surface.dimensions(dimensions);
26719         context.background().dimensions(dimensions);
26720         projection.clipExtent([[0, 0], dimensions]);
26721         mouse = iD.util.fastMouse(supersurface.node());
26722         setCenter(center);
26723         return redraw();
26724     };
26725
26726     map.zoomIn = function() { interpolateZoom(~~map.zoom() + 1); };
26727     map.zoomOut = function() { interpolateZoom(~~map.zoom() - 1); };
26728
26729     map.center = function(loc) {
26730         if (!arguments.length) {
26731             return projection.invert(pxCenter());
26732         }
26733
26734         if (setCenter(loc)) {
26735             dispatch.move(map);
26736         }
26737
26738         return redraw();
26739     };
26740
26741     map.zoom = function(z) {
26742         if (!arguments.length) {
26743             return Math.max(Math.log(projection.scale() * 2 * Math.PI) / Math.LN2 - 8, 0);
26744         }
26745
26746         if (z < minzoom) {
26747             surface.interrupt();
26748             iD.ui.flash(context.container())
26749                 .select('.content')
26750                 .text(t('cannot_zoom'));
26751             z = context.minEditableZoom();
26752         }
26753
26754         if (setZoom(z)) {
26755             dispatch.move(map);
26756         }
26757
26758         return redraw();
26759     };
26760
26761     map.zoomTo = function(entity, zoomLimits) {
26762         var extent = entity.extent(context.graph());
26763         if (!isFinite(extent.area())) return;
26764
26765         var zoom = map.trimmedExtentZoom(extent);
26766         zoomLimits = zoomLimits || [context.minEditableZoom(), 20];
26767         map.centerZoom(extent.center(), Math.min(Math.max(zoom, zoomLimits[0]), zoomLimits[1]));
26768     };
26769
26770     map.centerZoom = function(loc, z) {
26771         var centered = setCenter(loc),
26772             zoomed   = setZoom(z);
26773
26774         if (centered || zoomed) {
26775             dispatch.move(map);
26776         }
26777
26778         return redraw();
26779     };
26780
26781     map.centerEase = function(loc) {
26782         var from = map.center().slice(),
26783             t = 0,
26784             stop;
26785
26786         surface.one('mousedown.ease', function() {
26787             stop = true;
26788         });
26789
26790         d3.timer(function() {
26791             if (stop) return true;
26792             map.center(iD.geo.interp(from, loc, (t += 1) / 10));
26793             return t === 10;
26794         }, 20);
26795         return map;
26796     };
26797
26798     map.extent = function(_) {
26799         if (!arguments.length) {
26800             return new iD.geo.Extent(projection.invert([0, dimensions[1]]),
26801                                  projection.invert([dimensions[0], 0]));
26802         } else {
26803             var extent = iD.geo.Extent(_);
26804             map.centerZoom(extent.center(), map.extentZoom(extent));
26805         }
26806     };
26807
26808     map.trimmedExtent = function(_) {
26809         if (!arguments.length) {
26810             var headerY = 60, footerY = 30, pad = 10;
26811             return new iD.geo.Extent(projection.invert([pad, dimensions[1] - footerY - pad]),
26812                     projection.invert([dimensions[0] - pad, headerY + pad]));
26813         } else {
26814             var extent = iD.geo.Extent(_);
26815             map.centerZoom(extent.center(), map.trimmedExtentZoom(extent));
26816         }
26817     };
26818
26819     function calcZoom(extent, dim) {
26820         var tl = projection([extent[0][0], extent[1][1]]),
26821             br = projection([extent[1][0], extent[0][1]]);
26822
26823         // Calculate maximum zoom that fits extent
26824         var hFactor = (br[0] - tl[0]) / dim[0],
26825             vFactor = (br[1] - tl[1]) / dim[1],
26826             hZoomDiff = Math.log(Math.abs(hFactor)) / Math.LN2,
26827             vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2,
26828             newZoom = map.zoom() - Math.max(hZoomDiff, vZoomDiff);
26829
26830         return newZoom;
26831     }
26832
26833     map.extentZoom = function(_) {
26834         return calcZoom(iD.geo.Extent(_), dimensions);
26835     };
26836
26837     map.trimmedExtentZoom = function(_) {
26838         var trimY = 120, trimX = 40,
26839             trimmed = [dimensions[0] - trimX, dimensions[1] - trimY];
26840         return calcZoom(iD.geo.Extent(_), trimmed);
26841     };
26842
26843     map.editable = function() {
26844         return map.zoom() >= context.minEditableZoom();
26845     };
26846
26847     map.minzoom = function(_) {
26848         if (!arguments.length) return minzoom;
26849         minzoom = _;
26850         return map;
26851     };
26852
26853     return d3.rebind(map, dispatch, 'on');
26854 };
26855 iD.MapillaryLayer = function (context) {
26856     var enable = false,
26857         currentImage,
26858         svg, div, request;
26859
26860     function show(image) {
26861         svg.selectAll('g')
26862             .classed('selected', function(d) {
26863                 return currentImage && d.key === currentImage.key;
26864             });
26865
26866         div.classed('hidden', false)
26867             .classed('temp', image !== currentImage);
26868
26869         div.selectAll('img')
26870             .attr('src', 'https://d1cuyjsrcm0gby.cloudfront.net/' + image.key + '/thumb-320.jpg');
26871
26872         div.selectAll('a')
26873             .attr('href', 'http://mapillary.com/map/im/' + image.key);
26874     }
26875
26876     function hide() {
26877         currentImage = undefined;
26878
26879         svg.selectAll('g')
26880             .classed('selected', false);
26881
26882         div.classed('hidden', true);
26883     }
26884
26885     function transform(image) {
26886         var t = 'translate(' + context.projection(image.loc) + ')';
26887         if (image.ca) t += 'rotate(' + image.ca + ',0,0)';
26888         return t;
26889     }
26890
26891     function render(selection) {
26892         svg = selection.selectAll('svg')
26893             .data([0]);
26894
26895         svg.enter().append('svg')
26896             .on('click', function() {
26897                 var image = d3.event.target.__data__;
26898                 if (currentImage === image) {
26899                     hide();
26900                 } else {
26901                     currentImage = image;
26902                     show(image);
26903                 }
26904             })
26905             .on('mouseover', function() {
26906                 show(d3.event.target.__data__);
26907             })
26908             .on('mouseout', function() {
26909                 if (currentImage) {
26910                     show(currentImage);
26911                 } else {
26912                     hide();
26913                 }
26914             });
26915
26916         svg.style('display', enable ? 'block' : 'none');
26917
26918         div = context.container().selectAll('.mapillary-image')
26919             .data([0]);
26920
26921         var enter = div.enter().append('div')
26922             .attr('class', 'mapillary-image');
26923
26924         enter.append('button')
26925             .on('click', hide)
26926             .append('div')
26927             .attr('class', 'icon close');
26928
26929         enter.append('img');
26930
26931         var link = enter.append('a')
26932             .attr('class', 'link')
26933             .attr('target', '_blank');
26934
26935         link.append('span')
26936             .attr('class', 'icon icon-pre-text out-link');
26937
26938         link.append('span')
26939             .text(t('mapillary.view_on_mapillary'));
26940
26941         if (!enable) {
26942             hide();
26943
26944             svg.selectAll('g')
26945                 .remove();
26946
26947             return;
26948         }
26949
26950         // Update existing images while waiting for new ones to load.
26951         svg.selectAll('g')
26952             .attr('transform', transform);
26953
26954         var extent = context.map().extent();
26955
26956         if (request)
26957             request.abort();
26958
26959         request = d3.json('https://a.mapillary.com/v2/search/s/geojson?client_id=NzNRM2otQkR2SHJzaXJmNmdQWVQ0dzoxNjQ3MDY4ZTUxY2QzNGI2&min_lat=' +
26960             extent[0][1] + '&max_lat=' + extent[1][1] + '&min_lon=' +
26961             extent[0][0] + '&max_lon=' + extent[1][0] + '&max_results=100&geojson=true',
26962             function (error, data) {
26963                 if (error) return;
26964
26965                 var images = [];
26966
26967                 for (var i = 0; i < data.features.length; i++) {
26968                     var sequence = data.features[i];
26969                     for (var j = 0; j < sequence.geometry.coordinates.length; j++) {
26970                         images.push({
26971                             key: sequence.properties.keys[j],
26972                             ca: sequence.properties.cas[j],
26973                             loc: sequence.geometry.coordinates[j]
26974                         });
26975                         if (images.length >= 1000) break;
26976                     }
26977                 }
26978
26979                 var g = svg.selectAll('g')
26980                     .data(images, function(d) { return d.key; });
26981
26982                 var enter = g.enter().append('g')
26983                     .attr('class', 'image');
26984
26985                 enter.append('path')
26986                     .attr('d', 'M 0,-5 l 0,-20 l -5,30 l 10,0 l -5,-30');
26987
26988                 enter.append('circle')
26989                     .attr('dx', '0')
26990                     .attr('dy', '0')
26991                     .attr('r', '8');
26992
26993                 g.attr('transform', transform);
26994
26995                 g.exit()
26996                     .remove();
26997             });
26998     }
26999
27000     render.enable = function(_) {
27001         if (!arguments.length) return enable;
27002         enable = _;
27003         return render;
27004     };
27005
27006     render.dimensions = function(_) {
27007         if (!arguments.length) return svg.dimensions();
27008         svg.dimensions(_);
27009         return render;
27010     };
27011
27012     return render;
27013 };
27014 iD.TileLayer = function() {
27015     var tileSize = 256,
27016         tile = d3.geo.tile(),
27017         projection,
27018         cache = {},
27019         tileOrigin,
27020         z,
27021         transformProp = iD.util.prefixCSSProperty('Transform'),
27022         source = d3.functor('');
27023
27024     function tileSizeAtZoom(d, z) {
27025         return Math.ceil(tileSize * Math.pow(2, z - d[2])) / tileSize;
27026     }
27027
27028     function atZoom(t, distance) {
27029         var power = Math.pow(2, distance);
27030         return [
27031             Math.floor(t[0] * power),
27032             Math.floor(t[1] * power),
27033             t[2] + distance];
27034     }
27035
27036     function lookUp(d) {
27037         for (var up = -1; up > -d[2]; up--) {
27038             var tile = atZoom(d, up);
27039             if (cache[source.url(tile)] !== false) {
27040                 return tile;
27041             }
27042         }
27043     }
27044
27045     function uniqueBy(a, n) {
27046         var o = [], seen = {};
27047         for (var i = 0; i < a.length; i++) {
27048             if (seen[a[i][n]] === undefined) {
27049                 o.push(a[i]);
27050                 seen[a[i][n]] = true;
27051             }
27052         }
27053         return o;
27054     }
27055
27056     function addSource(d) {
27057         d.push(source.url(d));
27058         return d;
27059     }
27060
27061     // Update tiles based on current state of `projection`.
27062     function background(selection) {
27063         tile.scale(projection.scale() * 2 * Math.PI)
27064             .translate(projection.translate());
27065
27066         tileOrigin = [
27067             projection.scale() * Math.PI - projection.translate()[0],
27068             projection.scale() * Math.PI - projection.translate()[1]];
27069
27070         z = Math.max(Math.log(projection.scale() * 2 * Math.PI) / Math.log(2) - 8, 0);
27071
27072         render(selection);
27073     }
27074
27075     // Derive the tiles onscreen, remove those offscreen and position them.
27076     // Important that this part not depend on `projection` because it's
27077     // rentered when tiles load/error (see #644).
27078     function render(selection) {
27079         var requests = [];
27080
27081         if (source.validZoom(z)) {
27082             tile().forEach(function(d) {
27083                 addSource(d);
27084                 if (d[3] === '') return;
27085                 if (typeof d[3] !== 'string') return; // Workaround for chrome crash https://github.com/openstreetmap/iD/issues/2295
27086                 requests.push(d);
27087                 if (cache[d[3]] === false && lookUp(d)) {
27088                     requests.push(addSource(lookUp(d)));
27089                 }
27090             });
27091
27092             requests = uniqueBy(requests, 3).filter(function(r) {
27093                 // don't re-request tiles which have failed in the past
27094                 return cache[r[3]] !== false;
27095             });
27096         }
27097
27098         var pixelOffset = [
27099             Math.round(source.offset()[0] * Math.pow(2, z)),
27100             Math.round(source.offset()[1] * Math.pow(2, z))
27101         ];
27102
27103         function load(d) {
27104             cache[d[3]] = true;
27105             d3.select(this)
27106                 .on('error', null)
27107                 .on('load', null)
27108                 .classed('tile-loaded', true);
27109             render(selection);
27110         }
27111
27112         function error(d) {
27113             cache[d[3]] = false;
27114             d3.select(this)
27115                 .on('error', null)
27116                 .on('load', null)
27117                 .remove();
27118             render(selection);
27119         }
27120
27121         function imageTransform(d) {
27122             var _ts = tileSize * Math.pow(2, z - d[2]);
27123             var scale = tileSizeAtZoom(d, z);
27124             return 'translate(' +
27125                 (Math.round((d[0] * _ts) - tileOrigin[0]) + pixelOffset[0]) + 'px,' +
27126                 (Math.round((d[1] * _ts) - tileOrigin[1]) + pixelOffset[1]) + 'px)' +
27127                 'scale(' + scale + ',' + scale + ')';
27128         }
27129
27130         var image = selection
27131             .selectAll('img')
27132             .data(requests, function(d) { return d[3]; });
27133
27134         image.exit()
27135             .style(transformProp, imageTransform)
27136             .classed('tile-removing', true)
27137             .each(function() {
27138                 var tile = d3.select(this);
27139                 window.setTimeout(function() {
27140                     if (tile.classed('tile-removing')) {
27141                         tile.remove();
27142                     }
27143                 }, 300);
27144             });
27145
27146         image.enter().append('img')
27147             .attr('class', 'tile')
27148             .attr('src', function(d) { return d[3]; })
27149             .on('error', error)
27150             .on('load', load);
27151
27152         image
27153             .style(transformProp, imageTransform)
27154             .classed('tile-removing', false);
27155     }
27156
27157     background.projection = function(_) {
27158         if (!arguments.length) return projection;
27159         projection = _;
27160         return background;
27161     };
27162
27163     background.dimensions = function(_) {
27164         if (!arguments.length) return tile.size();
27165         tile.size(_);
27166         return background;
27167     };
27168
27169     background.source = function(_) {
27170         if (!arguments.length) return source;
27171         source = _;
27172         cache = {};
27173         tile.scaleExtent(source.scaleExtent);
27174         return background;
27175     };
27176
27177     return background;
27178 };
27179 iD.svg = {
27180     RoundProjection: function(projection) {
27181         return function(d) {
27182             return iD.geo.roundCoords(projection(d));
27183         };
27184     },
27185
27186     PointTransform: function(projection) {
27187         return function(entity) {
27188             // http://jsperf.com/short-array-join
27189             var pt = projection(entity.loc);
27190             return 'translate(' + pt[0] + ',' + pt[1] + ')';
27191         };
27192     },
27193
27194     Round: function () {
27195         return d3.geo.transform({
27196             point: function(x, y) { return this.stream.point(Math.floor(x), Math.floor(y)); }
27197         });
27198     },
27199
27200     Path: function(projection, graph, polygon) {
27201         var cache = {},
27202             round = iD.svg.Round().stream,
27203             clip = d3.geo.clipExtent().extent(projection.clipExtent()).stream,
27204             project = projection.stream,
27205             path = d3.geo.path()
27206                 .projection({stream: function(output) { return polygon ? project(round(output)) : project(clip(round(output))); }});
27207
27208         return function(entity) {
27209             if (entity.id in cache) {
27210                 return cache[entity.id];
27211             } else {
27212                 return cache[entity.id] = path(entity.asGeoJSON(graph)); // jshint ignore:line
27213             }
27214         };
27215     },
27216
27217     OneWaySegments: function(projection, graph, dt) {
27218         return function(entity) {
27219             var a,
27220                 b,
27221                 i = 0,
27222                 offset = dt,
27223                 segments = [],
27224                 viewport = iD.geo.Extent(projection.clipExtent()),
27225                 coordinates = graph.childNodes(entity).map(function(n) {
27226                     return n.loc;
27227                 });
27228
27229             if (entity.tags.oneway === '-1') coordinates.reverse();
27230
27231             d3.geo.stream({
27232                 type: 'LineString',
27233                 coordinates: coordinates
27234             }, projection.stream({
27235                 lineStart: function() {},
27236                 lineEnd: function() {
27237                     a = null;
27238                 },
27239                 point: function(x, y) {
27240                     b = [x, y];
27241
27242                     if (a) {
27243                         var extent = iD.geo.Extent(a).extend(b),
27244                             span = iD.geo.euclideanDistance(a, b) - offset;
27245
27246                         if (extent.intersects(viewport) && span >= 0) {
27247                             var angle = Math.atan2(b[1] - a[1], b[0] - a[0]),
27248                                 dx = dt * Math.cos(angle),
27249                                 dy = dt * Math.sin(angle),
27250                                 p = [a[0] + offset * Math.cos(angle),
27251                                      a[1] + offset * Math.sin(angle)];
27252
27253                             var segment = 'M' + a[0] + ',' + a[1] +
27254                                           'L' + p[0] + ',' + p[1];
27255
27256                             for (span -= dt; span >= 0; span -= dt) {
27257                                 p[0] += dx;
27258                                 p[1] += dy;
27259                                 segment += 'L' + p[0] + ',' + p[1];
27260                             }
27261
27262                             segment += 'L' + b[0] + ',' + b[1];
27263                             segments.push({id: entity.id, index: i, d: segment});
27264                         }
27265
27266                         offset = -span;
27267                         i++;
27268                     }
27269
27270                     a = b;
27271                 }
27272             }));
27273
27274             return segments;
27275         };
27276     },
27277
27278     MultipolygonMemberTags: function(graph) {
27279         return function(entity) {
27280             var tags = entity.tags;
27281             graph.parentRelations(entity).forEach(function(relation) {
27282                 if (relation.isMultipolygon()) {
27283                     tags = _.extend({}, relation.tags, tags);
27284                 }
27285             });
27286             return tags;
27287         };
27288     }
27289 };
27290 iD.svg.Areas = function(projection) {
27291     // Patterns only work in Firefox when set directly on element.
27292     // (This is not a bug: https://bugzilla.mozilla.org/show_bug.cgi?id=750632)
27293     var patterns = {
27294         wetland: 'wetland',
27295         beach: 'beach',
27296         scrub: 'scrub',
27297         construction: 'construction',
27298         military: 'construction',
27299         cemetery: 'cemetery',
27300         grave_yard: 'cemetery',
27301         meadow: 'meadow',
27302         farm: 'farmland',
27303         farmland: 'farmland',
27304         orchard: 'orchard'
27305     };
27306
27307     var patternKeys = ['landuse', 'natural', 'amenity'];
27308
27309     function setPattern(d) {
27310         for (var i = 0; i < patternKeys.length; i++) {
27311             if (patterns.hasOwnProperty(d.tags[patternKeys[i]])) {
27312                 this.style.fill = this.style.stroke = 'url("#pattern-' + patterns[d.tags[patternKeys[i]]] + '")';
27313                 return;
27314             }
27315         }
27316         this.style.fill = this.style.stroke = '';
27317     }
27318
27319     return function drawAreas(surface, graph, entities, filter) {
27320         var path = iD.svg.Path(projection, graph, true),
27321             areas = {},
27322             multipolygon;
27323
27324         for (var i = 0; i < entities.length; i++) {
27325             var entity = entities[i];
27326             if (entity.geometry(graph) !== 'area') continue;
27327
27328             multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph);
27329             if (multipolygon) {
27330                 areas[multipolygon.id] = {
27331                     entity: multipolygon.mergeTags(entity.tags),
27332                     area: Math.abs(entity.area(graph))
27333                 };
27334             } else if (!areas[entity.id]) {
27335                 areas[entity.id] = {
27336                     entity: entity,
27337                     area: Math.abs(entity.area(graph))
27338                 };
27339             }
27340         }
27341
27342         areas = d3.values(areas).filter(function hasPath(a) { return path(a.entity); });
27343         areas.sort(function areaSort(a, b) { return b.area - a.area; });
27344         areas = _.pluck(areas, 'entity');
27345
27346         var strokes = areas.filter(function(area) {
27347             return area.type === 'way';
27348         });
27349
27350         var data = {
27351             clip: areas,
27352             shadow: strokes,
27353             stroke: strokes,
27354             fill: areas
27355         };
27356
27357         var clipPaths = surface.selectAll('defs').selectAll('.clipPath')
27358            .filter(filter)
27359            .data(data.clip, iD.Entity.key);
27360
27361         clipPaths.enter()
27362            .append('clipPath')
27363            .attr('class', 'clipPath')
27364            .attr('id', function(entity) { return entity.id + '-clippath'; })
27365            .append('path');
27366
27367         clipPaths.selectAll('path')
27368            .attr('d', path);
27369
27370         clipPaths.exit()
27371            .remove();
27372
27373         var areagroup = surface
27374             .select('.layer-areas')
27375             .selectAll('g.areagroup')
27376             .data(['fill', 'shadow', 'stroke']);
27377
27378         areagroup.enter()
27379             .append('g')
27380             .attr('class', function(d) { return 'layer areagroup area-' + d; });
27381
27382         var paths = areagroup
27383             .selectAll('path')
27384             .filter(filter)
27385             .data(function(layer) { return data[layer]; }, iD.Entity.key);
27386
27387         // Remove exiting areas first, so they aren't included in the `fills`
27388         // array used for sorting below (https://github.com/openstreetmap/iD/issues/1903).
27389         paths.exit()
27390             .remove();
27391
27392         var fills = surface.selectAll('.area-fill path.area')[0];
27393
27394         var bisect = d3.bisector(function(node) {
27395             return -node.__data__.area(graph);
27396         }).left;
27397
27398         function sortedByArea(entity) {
27399             if (this.__data__ === 'fill') {
27400                 return fills[bisect(fills, -entity.area(graph))];
27401             }
27402         }
27403
27404         paths.enter()
27405             .insert('path', sortedByArea)
27406             .each(function(entity) {
27407                 var layer = this.parentNode.__data__;
27408
27409                 this.setAttribute('class', entity.type + ' area ' + layer + ' ' + entity.id);
27410
27411                 if (layer === 'fill') {
27412                     this.setAttribute('clip-path', 'url(#' + entity.id + '-clippath)');
27413                     setPattern.apply(this, arguments);
27414                 }
27415             })
27416             .call(iD.svg.TagClasses());
27417
27418         paths
27419             .attr('d', path);
27420     };
27421 };
27422 /*
27423     A standalone SVG element that contains only a `defs` sub-element. To be
27424     used once globally, since defs IDs must be unique within a document.
27425 */
27426 iD.svg.Defs = function(context) {
27427     function autosize(image) {
27428         var img = document.createElement('img');
27429         img.src = image.attr('xlink:href');
27430         img.onload = function() {
27431             image.attr({
27432                 width: img.width,
27433                 height: img.height
27434             });
27435         };
27436     }
27437
27438     function SpriteDefinition(id, href, data) {
27439         return function(defs) {
27440             defs.append('image')
27441                 .attr('id', id)
27442                 .attr('xlink:href', href)
27443                 .call(autosize);
27444
27445             defs.selectAll()
27446                 .data(data)
27447                 .enter().append('use')
27448                 .attr('id', function(d) { return d.key; })
27449                 .attr('transform', function(d) { return 'translate(-' + d.value[0] + ',-' + d.value[1] + ')'; })
27450                 .attr('xlink:href', '#' + id);
27451         };
27452     }
27453
27454     return function (selection) {
27455         var defs = selection.append('defs');
27456
27457         defs.append('marker')
27458             .attr({
27459                 id: 'oneway-marker',
27460                 viewBox: '0 0 10 10',
27461                 refY: 2.5,
27462                 refX: 5,
27463                 markerWidth: 2,
27464                 markerHeight: 2,
27465                 orient: 'auto'
27466             })
27467             .append('path')
27468             .attr('d', 'M 5 3 L 0 3 L 0 2 L 5 2 L 5 0 L 10 2.5 L 5 5 z');
27469
27470         var patterns = defs.selectAll('pattern')
27471             .data([
27472                 // pattern name, pattern image name
27473                 ['wetland', 'wetland'],
27474                 ['construction', 'construction'],
27475                 ['cemetery', 'cemetery'],
27476                 ['orchard', 'orchard'],
27477                 ['farmland', 'farmland'],
27478                 ['beach', 'dots'],
27479                 ['scrub', 'dots'],
27480                 ['meadow', 'dots']
27481             ])
27482             .enter()
27483             .append('pattern')
27484             .attr({
27485                 id: function (d) {
27486                     return 'pattern-' + d[0];
27487                 },
27488                 width: 32,
27489                 height: 32,
27490                 patternUnits: 'userSpaceOnUse'
27491             });
27492
27493         patterns.append('rect')
27494             .attr({
27495                 x: 0,
27496                 y: 0,
27497                 width: 32,
27498                 height: 32,
27499                 'class': function (d) {
27500                     return 'pattern-color-' + d[0];
27501                 }
27502             });
27503
27504         patterns.append('image')
27505             .attr({
27506                 x: 0,
27507                 y: 0,
27508                 width: 32,
27509                 height: 32
27510             })
27511             .attr('xlink:href', function (d) {
27512                 return context.imagePath('pattern/' + d[1] + '.png');
27513             });
27514
27515         defs.selectAll()
27516             .data([12, 18, 20, 32, 45])
27517             .enter().append('clipPath')
27518             .attr('id', function (d) {
27519                 return 'clip-square-' + d;
27520             })
27521             .append('rect')
27522             .attr('x', 0)
27523             .attr('y', 0)
27524             .attr('width', function (d) {
27525                 return d;
27526             })
27527             .attr('height', function (d) {
27528                 return d;
27529             });
27530
27531         var maki = [];
27532         _.forEach(iD.data.featureIcons, function (dimensions, name) {
27533             if (dimensions['12'] && dimensions['18'] && dimensions['24']) {
27534                 maki.push({key: 'maki-' + name + '-12', value: dimensions['12']});
27535                 maki.push({key: 'maki-' + name + '-18', value: dimensions['18']});
27536                 maki.push({key: 'maki-' + name + '-24', value: dimensions['24']});
27537             }
27538         });
27539
27540         defs.call(SpriteDefinition(
27541             'sprite',
27542             context.imagePath('sprite.svg'),
27543             d3.entries(iD.data.operations)));
27544
27545         defs.call(SpriteDefinition(
27546             'maki-sprite',
27547             context.imagePath('maki-sprite.png'),
27548             maki));
27549     };
27550 };
27551 iD.svg.Labels = function(projection, context) {
27552     var path = d3.geo.path().projection(projection);
27553
27554     // Replace with dict and iterate over entities tags instead?
27555     var label_stack = [
27556         ['line', 'aeroway'],
27557         ['line', 'highway'],
27558         ['line', 'railway'],
27559         ['line', 'waterway'],
27560         ['area', 'aeroway'],
27561         ['area', 'amenity'],
27562         ['area', 'building'],
27563         ['area', 'historic'],
27564         ['area', 'leisure'],
27565         ['area', 'man_made'],
27566         ['area', 'natural'],
27567         ['area', 'shop'],
27568         ['area', 'tourism'],
27569         ['point', 'aeroway'],
27570         ['point', 'amenity'],
27571         ['point', 'building'],
27572         ['point', 'historic'],
27573         ['point', 'leisure'],
27574         ['point', 'man_made'],
27575         ['point', 'natural'],
27576         ['point', 'shop'],
27577         ['point', 'tourism'],
27578         ['line', 'name'],
27579         ['area', 'name'],
27580         ['point', 'name']
27581     ];
27582
27583     var default_size = 12;
27584
27585     var font_sizes = label_stack.map(function(d) {
27586         var style = iD.util.getStyle('text.' + d[0] + '.tag-' + d[1]),
27587             m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
27588         if (m) return parseInt(m[1], 10);
27589
27590         style = iD.util.getStyle('text.' + d[0]);
27591         m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
27592         if (m) return parseInt(m[1], 10);
27593
27594         return default_size;
27595     });
27596
27597     var iconSize = 18;
27598
27599     var pointOffsets = [
27600         [15, -11, 'start'], // right
27601         [10, -11, 'start'], // unused right now
27602         [-15, -11, 'end']
27603     ];
27604
27605     var lineOffsets = [50, 45, 55, 40, 60, 35, 65, 30, 70, 25,
27606         75, 20, 80, 15, 95, 10, 90, 5, 95];
27607
27608
27609     var noIcons = ['building', 'landuse', 'natural'];
27610     function blacklisted(preset) {
27611         return _.any(noIcons, function(s) {
27612             return preset.id.indexOf(s) >= 0;
27613         });
27614     }
27615
27616     function get(array, prop) {
27617         return function(d, i) { return array[i][prop]; };
27618     }
27619
27620     var textWidthCache = {};
27621
27622     function textWidth(text, size, elem) {
27623         var c = textWidthCache[size];
27624         if (!c) c = textWidthCache[size] = {};
27625
27626         if (c[text]) {
27627             return c[text];
27628
27629         } else if (elem) {
27630             c[text] = elem.getComputedTextLength();
27631             return c[text];
27632
27633         } else {
27634             var str = encodeURIComponent(text).match(/%[CDEFcdef]/g);
27635             if (str === null) {
27636                 return size / 3 * 2 * text.length;
27637             } else {
27638                 return size / 3 * (2 * text.length + str.length);
27639             }
27640         }
27641     }
27642
27643     function drawLineLabels(group, entities, filter, classes, labels) {
27644         var texts = group.selectAll('text.' + classes)
27645             .filter(filter)
27646             .data(entities, iD.Entity.key);
27647
27648         texts.enter()
27649             .append('text')
27650             .attr('class', function(d, i) { return classes + ' ' + labels[i].classes + ' ' + d.id; })
27651             .append('textPath')
27652             .attr('class', 'textpath');
27653
27654
27655         texts.selectAll('.textpath')
27656             .filter(filter)
27657             .data(entities, iD.Entity.key)
27658             .attr({
27659                 'startOffset': '50%',
27660                 'xlink:href': function(d) { return '#labelpath-' + d.id; }
27661             })
27662             .text(iD.util.displayName);
27663
27664         texts.exit().remove();
27665     }
27666
27667     function drawLinePaths(group, entities, filter, classes, labels) {
27668         var halos = group.selectAll('path')
27669             .filter(filter)
27670             .data(entities, iD.Entity.key);
27671
27672         halos.enter()
27673             .append('path')
27674             .style('stroke-width', get(labels, 'font-size'))
27675             .attr('id', function(d) { return 'labelpath-' + d.id; })
27676             .attr('class', classes);
27677
27678         halos.attr('d', get(labels, 'lineString'));
27679
27680         halos.exit().remove();
27681     }
27682
27683     function drawPointLabels(group, entities, filter, classes, labels) {
27684
27685         var texts = group.selectAll('text.' + classes)
27686             .filter(filter)
27687             .data(entities, iD.Entity.key);
27688
27689         texts.enter()
27690             .append('text')
27691             .attr('class', function(d, i) { return classes + ' ' + labels[i].classes + ' ' + d.id; });
27692
27693         texts.attr('x', get(labels, 'x'))
27694             .attr('y', get(labels, 'y'))
27695             .style('text-anchor', get(labels, 'textAnchor'))
27696             .text(iD.util.displayName)
27697             .each(function(d, i) { textWidth(iD.util.displayName(d), labels[i].height, this); });
27698
27699         texts.exit().remove();
27700         return texts;
27701     }
27702
27703     function drawAreaLabels(group, entities, filter, classes, labels) {
27704         entities = entities.filter(hasText);
27705         labels = labels.filter(hasText);
27706         return drawPointLabels(group, entities, filter, classes, labels);
27707
27708         function hasText(d, i) {
27709             return labels[i].hasOwnProperty('x') && labels[i].hasOwnProperty('y');
27710         }
27711     }
27712
27713     function drawAreaIcons(group, entities, filter, classes, labels) {
27714
27715         var icons = group.selectAll('use')
27716             .filter(filter)
27717             .data(entities, iD.Entity.key);
27718
27719         icons.enter()
27720             .append('use')
27721             .attr('clip-path', 'url(#clip-square-18)')
27722             .attr('class', 'icon');
27723
27724         icons.attr('transform', get(labels, 'transform'))
27725             .attr('xlink:href', function(d) {
27726                 return '#maki-' + context.presets().match(d, context.graph()).icon + '-18';
27727             });
27728
27729
27730         icons.exit().remove();
27731     }
27732
27733     function reverse(p) {
27734         var angle = Math.atan2(p[1][1] - p[0][1], p[1][0] - p[0][0]);
27735         return !(p[0][0] < p[p.length - 1][0] && angle < Math.PI/2 && angle > - Math.PI/2);
27736     }
27737
27738     function lineString(nodes) {
27739         return 'M' + nodes.join('L');
27740     }
27741
27742     function subpath(nodes, from, to) {
27743         function segmentLength(i) {
27744             var dx = nodes[i][0] - nodes[i + 1][0];
27745             var dy = nodes[i][1] - nodes[i + 1][1];
27746             return Math.sqrt(dx * dx + dy * dy);
27747         }
27748
27749         var sofar = 0,
27750             start, end, i0, i1;
27751         for (var i = 0; i < nodes.length - 1; i++) {
27752             var current = segmentLength(i);
27753             var portion;
27754             if (!start && sofar + current >= from) {
27755                 portion = (from - sofar) / current;
27756                 start = [
27757                     nodes[i][0] + portion * (nodes[i + 1][0] - nodes[i][0]),
27758                     nodes[i][1] + portion * (nodes[i + 1][1] - nodes[i][1])
27759                 ];
27760                 i0 = i + 1;
27761             }
27762             if (!end && sofar + current >= to) {
27763                 portion = (to - sofar) / current;
27764                 end = [
27765                     nodes[i][0] + portion * (nodes[i + 1][0] - nodes[i][0]),
27766                     nodes[i][1] + portion * (nodes[i + 1][1] - nodes[i][1])
27767                 ];
27768                 i1 = i + 1;
27769             }
27770             sofar += current;
27771
27772         }
27773         var ret = nodes.slice(i0, i1);
27774         ret.unshift(start);
27775         ret.push(end);
27776         return ret;
27777
27778     }
27779
27780     function hideOnMouseover() {
27781         var layers = d3.select(this)
27782             .selectAll('.layer-label, .layer-halo');
27783
27784         layers.selectAll('.proximate')
27785             .classed('proximate', false);
27786
27787         var mouse = context.mouse(),
27788             pad = 50,
27789             rect = [mouse[0] - pad, mouse[1] - pad, mouse[0] + pad, mouse[1] + pad],
27790             ids = _.pluck(rtree.search(rect), 'id');
27791
27792         if (!ids.length) return;
27793         layers.selectAll('.' + ids.join(', .'))
27794             .classed('proximate', true);
27795     }
27796
27797     var rtree = rbush(),
27798         rectangles = {};
27799
27800     function labels(surface, graph, entities, filter, dimensions, fullRedraw) {
27801
27802         var hidePoints = !surface.select('.node.point').node();
27803
27804         var labelable = [], i, k, entity;
27805         for (i = 0; i < label_stack.length; i++) labelable.push([]);
27806
27807         if (fullRedraw) {
27808             rtree.clear();
27809             rectangles = {};
27810         } else {
27811             for (i = 0; i < entities.length; i++) {
27812                 rtree.remove(rectangles[entities[i].id]);
27813             }
27814         }
27815
27816         // Split entities into groups specified by label_stack
27817         for (i = 0; i < entities.length; i++) {
27818             entity = entities[i];
27819             var geometry = entity.geometry(graph);
27820
27821             if (geometry === 'vertex')
27822                 continue;
27823             if (hidePoints && geometry === 'point')
27824                 continue;
27825
27826             var preset = geometry === 'area' && context.presets().match(entity, graph),
27827                 icon = preset && !blacklisted(preset) && preset.icon;
27828
27829             if (!icon && !iD.util.displayName(entity))
27830                 continue;
27831
27832             for (k = 0; k < label_stack.length; k ++) {
27833                 if (geometry === label_stack[k][0] && entity.tags[label_stack[k][1]]) {
27834                     labelable[k].push(entity);
27835                     break;
27836                 }
27837             }
27838         }
27839
27840         var positions = {
27841             point: [],
27842             line: [],
27843             area: []
27844         };
27845
27846         var labelled = {
27847             point: [],
27848             line: [],
27849             area: []
27850         };
27851
27852         // Try and find a valid label for labellable entities
27853         for (k = 0; k < labelable.length; k++) {
27854             var font_size = font_sizes[k];
27855             for (i = 0; i < labelable[k].length; i ++) {
27856                 entity = labelable[k][i];
27857                 var name = iD.util.displayName(entity),
27858                     width = name && textWidth(name, font_size),
27859                     p;
27860                 if (entity.geometry(graph) === 'point') {
27861                     p = getPointLabel(entity, width, font_size);
27862                 } else if (entity.geometry(graph) === 'line') {
27863                     p = getLineLabel(entity, width, font_size);
27864                 } else if (entity.geometry(graph) === 'area') {
27865                     p = getAreaLabel(entity, width, font_size);
27866                 }
27867                 if (p) {
27868                     p.classes = entity.geometry(graph) + ' tag-' + label_stack[k][1];
27869                     positions[entity.geometry(graph)].push(p);
27870                     labelled[entity.geometry(graph)].push(entity);
27871                 }
27872             }
27873         }
27874
27875         function getPointLabel(entity, width, height) {
27876             var coord = projection(entity.loc),
27877                 m = 5,  // margin
27878                 offset = pointOffsets[0],
27879                 p = {
27880                     height: height,
27881                     width: width,
27882                     x: coord[0] + offset[0],
27883                     y: coord[1] + offset[1],
27884                     textAnchor: offset[2]
27885                 };
27886             var rect = [p.x - m, p.y - m, p.x + width + m, p.y + height + m];
27887             if (tryInsert(rect, entity.id)) return p;
27888         }
27889
27890
27891         function getLineLabel(entity, width, height) {
27892             var nodes = _.pluck(graph.childNodes(entity), 'loc').map(projection),
27893                 length = iD.geo.pathLength(nodes);
27894             if (length < width + 20) return;
27895
27896             for (var i = 0; i < lineOffsets.length; i ++) {
27897                 var offset = lineOffsets[i],
27898                     middle = offset / 100 * length,
27899                     start = middle - width/2;
27900                 if (start < 0 || start + width > length) continue;
27901                 var sub = subpath(nodes, start, start + width),
27902                     rev = reverse(sub),
27903                     rect = [
27904                         Math.min(sub[0][0], sub[sub.length - 1][0]) - 10,
27905                         Math.min(sub[0][1], sub[sub.length - 1][1]) - 10,
27906                         Math.max(sub[0][0], sub[sub.length - 1][0]) + 20,
27907                         Math.max(sub[0][1], sub[sub.length - 1][1]) + 30
27908                     ];
27909                 if (rev) sub = sub.reverse();
27910                 if (tryInsert(rect, entity.id)) return {
27911                     'font-size': height + 2,
27912                     lineString: lineString(sub),
27913                     startOffset: offset + '%'
27914                 };
27915             }
27916         }
27917
27918         function getAreaLabel(entity, width, height) {
27919             var centroid = path.centroid(entity.asGeoJSON(graph, true)),
27920                 extent = entity.extent(graph),
27921                 entitywidth = projection(extent[1])[0] - projection(extent[0])[0],
27922                 rect;
27923
27924             if (!centroid || entitywidth < 20) return;
27925
27926             var iconX = centroid[0] - (iconSize/2),
27927                 iconY = centroid[1] - (iconSize/2),
27928                 textOffset = iconSize + 5;
27929
27930             var p = {
27931                 transform: 'translate(' + iconX + ',' + iconY + ')'
27932             };
27933
27934             if (width && entitywidth >= width + 20) {
27935                 p.x = centroid[0];
27936                 p.y = centroid[1] + textOffset;
27937                 p.textAnchor = 'middle';
27938                 p.height = height;
27939                 rect = [p.x - width/2, p.y, p.x + width/2, p.y + height + textOffset];
27940             } else {
27941                 rect = [iconX, iconY, iconX + iconSize, iconY + iconSize];
27942             }
27943
27944             if (tryInsert(rect, entity.id)) return p;
27945
27946         }
27947
27948         function tryInsert(rect, id) {
27949             // Check that label is visible
27950             if (rect[0] < 0 || rect[1] < 0 || rect[2] > dimensions[0] ||
27951                 rect[3] > dimensions[1]) return false;
27952             var v = rtree.search(rect).length === 0;
27953             if (v) {
27954                 rect.id = id;
27955                 rtree.insert(rect);
27956                 rectangles[id] = rect;
27957             }
27958             return v;
27959         }
27960
27961         var label = surface.select('.layer-label'),
27962             halo = surface.select('.layer-halo');
27963
27964         // points
27965         drawPointLabels(label, labelled.point, filter, 'pointlabel', positions.point);
27966         drawPointLabels(halo, labelled.point, filter, 'pointlabel-halo', positions.point);
27967
27968         // lines
27969         drawLinePaths(halo, labelled.line, filter, '', positions.line);
27970         drawLineLabels(label, labelled.line, filter, 'linelabel', positions.line);
27971         drawLineLabels(halo, labelled.line, filter, 'linelabel-halo', positions.line);
27972
27973         // areas
27974         drawAreaLabels(label, labelled.area, filter, 'arealabel', positions.area);
27975         drawAreaLabels(halo, labelled.area, filter, 'arealabel-halo', positions.area);
27976         drawAreaIcons(label, labelled.area, filter, 'arealabel-icon', positions.area);
27977     }
27978
27979     labels.supersurface = function(supersurface) {
27980         supersurface
27981             .on('mousemove.hidelabels', hideOnMouseover)
27982             .on('mousedown.hidelabels', function () {
27983                 supersurface.on('mousemove.hidelabels', null);
27984             })
27985             .on('mouseup.hidelabels', function () {
27986                 supersurface.on('mousemove.hidelabels', hideOnMouseover);
27987             });
27988     };
27989
27990     return labels;
27991 };
27992 iD.svg.Lines = function(projection) {
27993
27994     var highway_stack = {
27995         motorway: 0,
27996         motorway_link: 1,
27997         trunk: 2,
27998         trunk_link: 3,
27999         primary: 4,
28000         primary_link: 5,
28001         secondary: 6,
28002         tertiary: 7,
28003         unclassified: 8,
28004         residential: 9,
28005         service: 10,
28006         footway: 11
28007     };
28008
28009     function waystack(a, b) {
28010         var as = 0, bs = 0;
28011
28012         if (a.tags.highway) { as -= highway_stack[a.tags.highway]; }
28013         if (b.tags.highway) { bs -= highway_stack[b.tags.highway]; }
28014         return as - bs;
28015     }
28016
28017     return function drawLines(surface, graph, entities, filter) {
28018         var ways = [], pathdata = {}, onewaydata = {},
28019             getPath = iD.svg.Path(projection, graph);
28020
28021         for (var i = 0; i < entities.length; i++) {
28022             var entity = entities[i],
28023                 outer = iD.geo.simpleMultipolygonOuterMember(entity, graph);
28024             if (outer) {
28025                 ways.push(entity.mergeTags(outer.tags));
28026             } else if (entity.geometry(graph) === 'line') {
28027                 ways.push(entity);
28028             }
28029         }
28030
28031         ways = ways.filter(getPath);
28032
28033         pathdata = _.groupBy(ways, function(way) { return way.layer(); });
28034
28035         _.forOwn(pathdata, function(v, k) {
28036             onewaydata[k] = _(v)
28037                 .filter(function(d) { return d.isOneWay(); })
28038                 .map(iD.svg.OneWaySegments(projection, graph, 35))
28039                 .flatten()
28040                 .valueOf();
28041         });
28042
28043         var layergroup = surface
28044             .select('.layer-lines')
28045             .selectAll('g.layergroup')
28046             .data(d3.range(-10, 11));
28047
28048         layergroup.enter()
28049             .append('g')
28050             .attr('class', function(d) { return 'layer layergroup layer' + String(d); });
28051
28052
28053         var linegroup = layergroup
28054             .selectAll('g.linegroup')
28055             .data(['shadow', 'casing', 'stroke']);
28056
28057         linegroup.enter()
28058             .append('g')
28059             .attr('class', function(d) { return 'layer linegroup line-' + d; });
28060
28061
28062         var lines = linegroup
28063             .selectAll('path')
28064             .filter(filter)
28065             .data(
28066                 function() { return pathdata[this.parentNode.parentNode.__data__] || []; },
28067                 iD.Entity.key
28068             );
28069
28070         // Optimization: call simple TagClasses only on enter selection. This
28071         // works because iD.Entity.key is defined to include the entity v attribute.
28072         lines.enter()
28073             .append('path')
28074             .attr('class', function(d) { return 'way line ' + this.parentNode.__data__ + ' ' + d.id; })
28075             .call(iD.svg.TagClasses());
28076
28077         lines
28078             .sort(waystack)
28079             .attr('d', getPath)
28080             .call(iD.svg.TagClasses().tags(iD.svg.MultipolygonMemberTags(graph)));
28081
28082         lines.exit()
28083             .remove();
28084
28085
28086         var onewaygroup = layergroup
28087             .selectAll('g.onewaygroup')
28088             .data(['oneway']);
28089
28090         onewaygroup.enter()
28091             .append('g')
28092             .attr('class', 'layer onewaygroup');
28093
28094
28095         var oneways = onewaygroup
28096             .selectAll('path')
28097             .filter(filter)
28098             .data(
28099                 function() { return onewaydata[this.parentNode.parentNode.__data__] || []; },
28100                 function(d) { return [d.id, d.index]; }
28101             );
28102
28103         oneways.enter()
28104             .append('path')
28105             .attr('class', 'oneway')
28106             .attr('marker-mid', 'url(#oneway-marker)');
28107
28108         oneways
28109             .attr('d', function(d) { return d.d; });
28110
28111         oneways.exit()
28112             .remove();
28113
28114     };
28115 };
28116 iD.svg.Midpoints = function(projection, context) {
28117     return function drawMidpoints(surface, graph, entities, filter, extent) {
28118         var poly = extent.polygon(),
28119             midpoints = {};
28120
28121         for (var i = 0; i < entities.length; i++) {
28122             var entity = entities[i];
28123
28124             if (entity.type !== 'way')
28125                 continue;
28126             if (!filter(entity))
28127                 continue;
28128             if (context.selectedIDs().indexOf(entity.id) < 0)
28129                 continue;
28130
28131             var nodes = graph.childNodes(entity);
28132             for (var j = 0; j < nodes.length - 1; j++) {
28133
28134                 var a = nodes[j],
28135                     b = nodes[j + 1],
28136                     id = [a.id, b.id].sort().join('-');
28137
28138                 if (midpoints[id]) {
28139                     midpoints[id].parents.push(entity);
28140                 } else {
28141                     if (iD.geo.euclideanDistance(projection(a.loc), projection(b.loc)) > 40) {
28142                         var point = iD.geo.interp(a.loc, b.loc, 0.5),
28143                             loc = null;
28144
28145                         if (extent.intersects(point)) {
28146                             loc = point;
28147                         } else {
28148                             for (var k = 0; k < 4; k++) {
28149                                 point = iD.geo.lineIntersection([a.loc, b.loc], [poly[k], poly[k+1]]);
28150                                 if (point &&
28151                                     iD.geo.euclideanDistance(projection(a.loc), projection(point)) > 20 &&
28152                                     iD.geo.euclideanDistance(projection(b.loc), projection(point)) > 20)
28153                                 {
28154                                     loc = point;
28155                                     break;
28156                                 }
28157                             }
28158                         }
28159
28160                         if (loc) {
28161                             midpoints[id] = {
28162                                 type: 'midpoint',
28163                                 id: id,
28164                                 loc: loc,
28165                                 edge: [a.id, b.id],
28166                                 parents: [entity]
28167                             };
28168                         }
28169                     }
28170                 }
28171             }
28172         }
28173
28174         function midpointFilter(d) {
28175             if (midpoints[d.id])
28176                 return true;
28177
28178             for (var i = 0; i < d.parents.length; i++)
28179                 if (filter(d.parents[i]))
28180                     return true;
28181
28182             return false;
28183         }
28184
28185         var groups = surface.select('.layer-hit').selectAll('g.midpoint')
28186             .filter(midpointFilter)
28187             .data(_.values(midpoints), function(d) { return d.id; });
28188
28189         var enter = groups.enter()
28190             .insert('g', ':first-child')
28191             .attr('class', 'midpoint');
28192
28193         enter.append('polygon')
28194             .attr('points', '-6,8 10,0 -6,-8')
28195             .attr('class', 'shadow');
28196
28197         enter.append('polygon')
28198             .attr('points', '-3,4 5,0 -3,-4')
28199             .attr('class', 'fill');
28200
28201         groups
28202             .attr('transform', function(d) {
28203                 var translate = iD.svg.PointTransform(projection),
28204                     a = context.entity(d.edge[0]),
28205                     b = context.entity(d.edge[1]),
28206                     angle = Math.round(iD.geo.angle(a, b, projection) * (180 / Math.PI));
28207                 return translate(d) + ' rotate(' + angle + ')';
28208             })
28209             .call(iD.svg.TagClasses().tags(
28210                 function(d) { return d.parents[0].tags; }
28211             ));
28212
28213         // Propagate data bindings.
28214         groups.select('polygon.shadow');
28215         groups.select('polygon.fill');
28216
28217         groups.exit()
28218             .remove();
28219     };
28220 };
28221 iD.svg.Points = function(projection, context) {
28222     function markerPath(selection, klass) {
28223         selection
28224             .attr('class', klass)
28225             .attr('transform', 'translate(-8, -23)')
28226             .attr('d', 'M 17,8 C 17,13 11,21 8.5,23.5 C 6,21 0,13 0,8 C 0,4 4,-0.5 8.5,-0.5 C 13,-0.5 17,4 17,8 z');
28227     }
28228
28229     function sortY(a, b) {
28230         return b.loc[1] - a.loc[1];
28231     }
28232
28233     return function drawPoints(surface, entities, filter) {
28234         var graph = context.graph(),
28235             wireframe = surface.classed('fill-wireframe'),
28236             points = wireframe ? [] : _.filter(entities, function(e) {
28237                 return e.geometry(graph) === 'point';
28238             });
28239
28240         points.sort(sortY);
28241
28242         var groups = surface.select('.layer-hit').selectAll('g.point')
28243             .filter(filter)
28244             .data(points, iD.Entity.key);
28245
28246         var group = groups.enter()
28247             .append('g')
28248             .attr('class', function(d) { return 'node point ' + d.id; })
28249             .order();
28250
28251         group.append('path')
28252             .call(markerPath, 'shadow');
28253
28254         group.append('path')
28255             .call(markerPath, 'stroke');
28256
28257         group.append('use')
28258             .attr('class', 'icon')
28259             .attr('transform', 'translate(-6, -20)')
28260             .attr('clip-path', 'url(#clip-square-12)');
28261
28262         groups.attr('transform', iD.svg.PointTransform(projection))
28263             .call(iD.svg.TagClasses());
28264
28265         // Selecting the following implicitly
28266         // sets the data (point entity) on the element
28267         groups.select('.shadow');
28268         groups.select('.stroke');
28269         groups.select('.icon')
28270             .attr('xlink:href', function(entity) {
28271                 var preset = context.presets().match(entity, context.graph());
28272                 return preset.icon ? '#maki-' + preset.icon + '-12' : '';
28273             });
28274
28275         groups.exit()
28276             .remove();
28277     };
28278 };
28279 iD.svg.Surface = function() {
28280     return function (selection) {
28281         selection.selectAll('defs')
28282             .data([0])
28283             .enter()
28284             .append('defs');
28285
28286         var layers = selection.selectAll('.layer')
28287             .data(['areas', 'lines', 'hit', 'halo', 'label']);
28288
28289         layers.enter().append('g')
28290             .attr('class', function(d) { return 'layer layer-' + d; });
28291     };
28292 };
28293 iD.svg.TagClasses = function() {
28294     var primary = [
28295             'building', 'highway', 'railway', 'waterway', 'aeroway',
28296             'motorway', 'boundary', 'power', 'amenity', 'natural', 'landuse',
28297             'leisure', 'place'
28298         ],
28299         secondary = [
28300             'oneway', 'bridge', 'tunnel', 'construction', 'embankment', 'cutting', 'barrier'
28301         ],
28302         tagClassRe = /^tag-/,
28303         tags = function(entity) { return entity.tags; };
28304
28305     var tagClasses = function(selection) {
28306         selection.each(function tagClassesEach(entity) {
28307             var classes, value = this.className;
28308
28309             if (value.baseVal !== undefined) value = value.baseVal;
28310
28311             classes = value.trim().split(/\s+/).filter(function(name) {
28312                 return name.length && !tagClassRe.test(name);
28313             }).join(' ');
28314
28315             var t = tags(entity), i, k, v;
28316
28317             for (i = 0; i < primary.length; i++) {
28318                 k = primary[i];
28319                 v = t[k];
28320                 if (!v || v === 'no') continue;
28321                 classes += ' tag-' + k + ' tag-' + k + '-' + v;
28322                 break;
28323             }
28324
28325             for (i = 0; i < secondary.length; i++) {
28326                 k = secondary[i];
28327                 v = t[k];
28328                 if (!v || v === 'no') continue;
28329                 classes += ' tag-' + k + ' tag-' + k + '-' + v;
28330             }
28331
28332             classes = classes.trim();
28333
28334             if (classes !== value) {
28335                 d3.select(this).attr('class', classes);
28336             }
28337         });
28338     };
28339
28340     tagClasses.tags = function(_) {
28341         if (!arguments.length) return tags;
28342         tags = _;
28343         return tagClasses;
28344     };
28345
28346     return tagClasses;
28347 };
28348 iD.svg.Turns = function(projection) {
28349     return function(surface, graph, turns) {
28350         function key(turn) {
28351             return [turn.from.node + turn.via.node + turn.to.node].join('-');
28352         }
28353
28354         function icon(turn) {
28355             var u = turn.u ? '-u' : '';
28356             if (!turn.restriction)
28357                 return '#icon-restriction-yes' + u;
28358             var restriction = graph.entity(turn.restriction).tags.restriction;
28359             return '#icon-restriction-' +
28360                 (!turn.indirect_restriction && /^only_/.test(restriction) ? 'only' : 'no') + u;
28361         }
28362
28363         var groups = surface.select('.layer-hit').selectAll('g.turn')
28364             .data(turns, key);
28365
28366         // Enter
28367
28368         var enter = groups.enter().append('g')
28369             .attr('class', 'turn');
28370
28371         var nEnter = enter.filter(function (turn) { return !turn.u; });
28372
28373         nEnter.append('rect')
28374             .attr('transform', 'translate(-12, -12)')
28375             .attr('width', '45')
28376             .attr('height', '25');
28377
28378         nEnter.append('use')
28379             .attr('transform', 'translate(-12, -12)')
28380             .attr('clip-path', 'url(#clip-square-45)');
28381
28382         var uEnter = enter.filter(function (turn) { return turn.u; });
28383
28384         uEnter.append('circle')
28385             .attr('r', '16');
28386
28387         uEnter.append('use')
28388             .attr('transform', 'translate(-16, -16)')
28389             .attr('clip-path', 'url(#clip-square-32)');
28390
28391         // Update
28392
28393         groups
28394             .attr('transform', function (turn) {
28395                 var v = graph.entity(turn.via.node),
28396                     t = graph.entity(turn.to.node),
28397                     a = iD.geo.angle(v, t, projection),
28398                     p = projection(v.loc),
28399                     r = turn.u ? 0 : 60;
28400
28401                 return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ')' +
28402                     'rotate(' + a * 180 / Math.PI + ')';
28403             });
28404
28405         groups.select('use')
28406             .attr('xlink:href', icon);
28407
28408         groups.select('rect');
28409         groups.select('circle');
28410
28411         // Exit
28412
28413         groups.exit()
28414             .remove();
28415
28416         return this;
28417     };
28418 };
28419 iD.svg.Vertices = function(projection, context) {
28420     var radiuses = {
28421         //       z16-, z17, z18+, tagged
28422         shadow: [6,    7.5,   7.5,  11.5],
28423         stroke: [2.5,  3.5,   3.5,  7],
28424         fill:   [1,    1.5,   1.5,  1.5]
28425     };
28426
28427     var hover;
28428
28429     function siblingAndChildVertices(ids, graph, extent) {
28430         var vertices = {};
28431
28432         function addChildVertices(entity) {
28433             if (!context.features().isHiddenFeature(entity, graph, entity.geometry(graph))) {
28434                 var i;
28435                 if (entity.type === 'way') {
28436                     for (i = 0; i < entity.nodes.length; i++) {
28437                         addChildVertices(graph.entity(entity.nodes[i]));
28438                     }
28439                 } else if (entity.type === 'relation') {
28440                     for (i = 0; i < entity.members.length; i++) {
28441                         var member = context.hasEntity(entity.members[i].id);
28442                         if (member) {
28443                             addChildVertices(member);
28444                         }
28445                     }
28446                 } else if (entity.intersects(extent, graph)) {
28447                     vertices[entity.id] = entity;
28448                 }
28449             }
28450         }
28451
28452         ids.forEach(function(id) {
28453             var entity = context.hasEntity(id);
28454             if (entity && entity.type === 'node') {
28455                 vertices[entity.id] = entity;
28456                 context.graph().parentWays(entity).forEach(function(entity) {
28457                     addChildVertices(entity);
28458                 });
28459             } else if (entity) {
28460                 addChildVertices(entity);
28461             }
28462         });
28463
28464         return vertices;
28465     }
28466
28467     function draw(selection, vertices, klass, graph, zoom) {
28468         var icons = {},
28469             z;
28470
28471         if (zoom < 17) {
28472             z = 0;
28473         } else if (zoom < 18) {
28474             z = 1;
28475         } else {
28476             z = 2;
28477         }
28478
28479         var groups = selection.data(vertices, function(entity) {
28480             return iD.Entity.key(entity);
28481         });
28482
28483         function icon(entity) {
28484             if (entity.id in icons) return icons[entity.id];
28485             icons[entity.id] =
28486                 entity.hasInterestingTags() &&
28487                 context.presets().match(entity, graph).icon;
28488             return icons[entity.id];
28489         }
28490
28491         function classCircle(klass) {
28492             return function(entity) {
28493                 this.setAttribute('class', 'node vertex ' + klass + ' ' + entity.id);
28494             };
28495         }
28496
28497         function setAttributes(selection) {
28498             ['shadow','stroke','fill'].forEach(function(klass) {
28499                 var rads = radiuses[klass];
28500                 selection.selectAll('.' + klass)
28501                     .each(function(entity) {
28502                         var i = z && icon(entity),
28503                             c = i ? 0.5 : 0,
28504                             r = rads[i ? 3 : z];
28505                         this.setAttribute('cx', c);
28506                         this.setAttribute('cy', -c);
28507                         this.setAttribute('r', r);
28508                         if (i && klass === 'fill') {
28509                             this.setAttribute('visibility', 'hidden');
28510                         } else {
28511                             this.removeAttribute('visibility');
28512                         }
28513                     });
28514             });
28515
28516             selection.selectAll('use')
28517                 .each(function() {
28518                     if (z) {
28519                         this.removeAttribute('visibility');
28520                     } else {
28521                         this.setAttribute('visibility', 'hidden');
28522                     }
28523                 });
28524         }
28525
28526         var enter = groups.enter()
28527             .append('g')
28528             .attr('class', function(d) { return 'node vertex ' + klass + ' ' + d.id; });
28529
28530         enter.append('circle')
28531             .each(classCircle('shadow'));
28532
28533         enter.append('circle')
28534             .each(classCircle('stroke'));
28535
28536         // Vertices with icons get a `use`.
28537         enter.filter(function(d) { return icon(d); })
28538             .append('use')
28539             .attr('transform', 'translate(-6, -6)')
28540             .attr('clip-path', 'url(#clip-square-12)')
28541             .attr('xlink:href', function(d) { return '#maki-' + icon(d) + '-12'; });
28542
28543         // Vertices with tags get a fill.
28544         enter.filter(function(d) { return d.hasInterestingTags(); })
28545             .append('circle')
28546             .each(classCircle('fill'));
28547
28548         groups
28549             .attr('transform', iD.svg.PointTransform(projection))
28550             .classed('shared', function(entity) { return graph.isShared(entity); })
28551             .call(setAttributes);
28552
28553         groups.exit()
28554             .remove();
28555     }
28556
28557     function drawVertices(surface, graph, entities, filter, extent, zoom) {
28558         var selected = siblingAndChildVertices(context.selectedIDs(), graph, extent),
28559             wireframe = surface.classed('fill-wireframe'),
28560             vertices = [];
28561
28562         for (var i = 0; i < entities.length; i++) {
28563             var entity = entities[i],
28564                 geometry = entity.geometry(graph);
28565
28566             if (wireframe && geometry === 'point') {
28567                 vertices.push(entity);
28568                 continue;
28569             }
28570
28571             if (geometry !== 'vertex')
28572                 continue;
28573
28574             if (entity.id in selected ||
28575                 entity.hasInterestingTags() ||
28576                 entity.isIntersection(graph)) {
28577                 vertices.push(entity);
28578             }
28579         }
28580
28581         surface.select('.layer-hit').selectAll('g.vertex.vertex-persistent')
28582             .filter(filter)
28583             .call(draw, vertices, 'vertex-persistent', graph, zoom);
28584
28585         drawHover(surface, graph, extent, zoom);
28586     }
28587
28588     function drawHover(surface, graph, extent, zoom) {
28589         var hovered = hover ? siblingAndChildVertices([hover.id], graph, extent) : {};
28590
28591         surface.select('.layer-hit').selectAll('g.vertex.vertex-hover')
28592             .call(draw, d3.values(hovered), 'vertex-hover', graph, zoom);
28593     }
28594
28595     drawVertices.drawHover = function(surface, graph, _, extent, zoom) {
28596         if (hover !== _) {
28597             hover = _;
28598             drawHover(surface, graph, extent, zoom);
28599         }
28600     };
28601
28602     return drawVertices;
28603 };
28604 iD.ui = function(context) {
28605     function render(container) {
28606         var map = context.map();
28607
28608         if (iD.detect().opera) container.classed('opera', true);
28609
28610         var hash = iD.behavior.Hash(context);
28611
28612         hash();
28613
28614         if (!hash.hadHash) {
28615             map.centerZoom([-77.02271, 38.90085], 20);
28616         }
28617
28618         container.append('svg')
28619             .attr('id', 'defs')
28620             .call(iD.svg.Defs(context));
28621
28622         container.append('div')
28623             .attr('id', 'sidebar')
28624             .attr('class', 'col4')
28625             .call(ui.sidebar);
28626
28627         var content = container.append('div')
28628             .attr('id', 'content');
28629
28630         var bar = content.append('div')
28631             .attr('id', 'bar')
28632             .attr('class', 'fillD');
28633
28634         var m = content.append('div')
28635             .attr('id', 'map')
28636             .call(map);
28637
28638         content.append('div')
28639             .attr('class', 'map-in-map')
28640             .style('display', 'none')
28641             .call(iD.ui.MapInMap(context));
28642
28643         bar.append('div')
28644             .attr('class', 'spacer col4');
28645
28646         var limiter = bar.append('div')
28647             .attr('class', 'limiter');
28648
28649         limiter.append('div')
28650             .attr('class', 'button-wrap joined col3')
28651             .call(iD.ui.Modes(context), limiter);
28652
28653         limiter.append('div')
28654             .attr('class', 'button-wrap joined col1')
28655             .call(iD.ui.UndoRedo(context));
28656
28657         limiter.append('div')
28658             .attr('class', 'button-wrap col1')
28659             .call(iD.ui.Save(context));
28660
28661         bar.append('div')
28662             .attr('class', 'spinner')
28663             .call(iD.ui.Spinner(context));
28664
28665         var controls = bar.append('div')
28666             .attr('class', 'map-controls');
28667
28668         controls.append('div')
28669             .attr('class', 'map-control zoombuttons')
28670             .call(iD.ui.Zoom(context));
28671
28672         controls.append('div')
28673             .attr('class', 'map-control geolocate-control')
28674             .call(iD.ui.Geolocate(map));
28675
28676         controls.append('div')
28677             .attr('class', 'map-control background-control')
28678             .call(iD.ui.Background(context));
28679
28680         controls.append('div')
28681             .attr('class', 'map-control map-data-control')
28682             .call(iD.ui.MapData(context));
28683
28684         controls.append('div')
28685             .attr('class', 'map-control help-control')
28686             .call(iD.ui.Help(context));
28687
28688         var about = content.append('div')
28689             .attr('id', 'about');
28690
28691         about.append('div')
28692             .attr('id', 'attrib')
28693             .call(iD.ui.Attribution(context));
28694
28695         var footer = about.append('div')
28696             .attr('id', 'footer')
28697             .attr('class', 'fillD');
28698
28699         footer.append('div')
28700             .attr('class', 'api-status')
28701             .call(iD.ui.Status(context));
28702
28703         footer.append('div')
28704             .attr('id', 'scale-block')
28705             .call(iD.ui.Scale(context));
28706
28707         var aboutList = footer.append('div')
28708             .attr('id', 'info-block')
28709             .append('ul')
28710             .attr('id', 'about-list');
28711
28712         if (!context.embed()) {
28713             aboutList.call(iD.ui.Account(context));
28714         }
28715
28716         aboutList.append('li')
28717             .append('a')
28718             .attr('target', '_blank')
28719             .attr('tabindex', -1)
28720             .attr('href', 'http://github.com/openstreetmap/iD')
28721             .text(iD.version);
28722
28723         var bugReport = aboutList.append('li')
28724             .append('a')
28725             .attr('target', '_blank')
28726             .attr('tabindex', -1)
28727             .attr('href', 'https://github.com/openstreetmap/iD/issues');
28728
28729         bugReport.append('span')
28730             .attr('class','icon bug light');
28731
28732         bugReport.call(bootstrap.tooltip()
28733                 .title(t('report_a_bug'))
28734                 .placement('top')
28735             );
28736
28737         aboutList.append('li')
28738             .attr('class', 'feature-warning')
28739             .attr('tabindex', -1)
28740             .call(iD.ui.FeatureInfo(context));
28741
28742         aboutList.append('li')
28743             .attr('class', 'user-list')
28744             .attr('tabindex', -1)
28745             .call(iD.ui.Contributors(context));
28746
28747         window.onbeforeunload = function() {
28748             return context.save();
28749         };
28750
28751         window.onunload = function() {
28752             context.history().unlock();
28753         };
28754
28755         d3.select(window).on('resize.editor', function() {
28756             map.dimensions(m.dimensions());
28757         });
28758
28759         function pan(d) {
28760             return function() {
28761                 context.pan(d);
28762             };
28763         }
28764
28765         // pan amount
28766         var pa = 5;
28767
28768         var keybinding = d3.keybinding('main')
28769             .on('⌫', function() { d3.event.preventDefault(); })
28770             .on('←', pan([pa, 0]))
28771             .on('↑', pan([0, pa]))
28772             .on('→', pan([-pa, 0]))
28773             .on('↓', pan([0, -pa]));
28774
28775         d3.select(document)
28776             .call(keybinding);
28777
28778         context.enter(iD.modes.Browse(context));
28779
28780         context.container()
28781             .call(iD.ui.Splash(context))
28782             .call(iD.ui.Restore(context));
28783
28784         var authenticating = iD.ui.Loading(context)
28785             .message(t('loading_auth'));
28786
28787         context.connection()
28788             .on('authenticating.ui', function() {
28789                 context.container()
28790                     .call(authenticating);
28791             })
28792             .on('authenticated.ui', function() {
28793                 authenticating.close();
28794             });
28795     }
28796
28797     function ui(container) {
28798         context.container(container);
28799         context.loadLocale(function() {
28800             render(container);
28801         });
28802     }
28803
28804     ui.sidebar = iD.ui.Sidebar(context);
28805
28806     return ui;
28807 };
28808
28809 iD.ui.tooltipHtml = function(text, key) {
28810     var s = '<span>' + text + '</span>';
28811     if (key) {
28812         s += '<div class="keyhint-wrap">' +
28813             '<span> ' + (t('tooltip_keyhint')) + ' </span>' +
28814             '<span class="keyhint"> ' + key + '</span></div>';
28815     }
28816     return s;
28817 };
28818 iD.ui.Account = function(context) {
28819     var connection = context.connection();
28820
28821     function update(selection) {
28822         if (!connection.authenticated()) {
28823             selection.selectAll('#userLink, #logoutLink')
28824                 .classed('hide', true);
28825             return;
28826         }
28827
28828         connection.userDetails(function(err, details) {
28829             var userLink = selection.select('#userLink'),
28830                 logoutLink = selection.select('#logoutLink');
28831
28832             userLink.html('');
28833             logoutLink.html('');
28834
28835             if (err) return;
28836
28837             selection.selectAll('#userLink, #logoutLink')
28838                 .classed('hide', false);
28839
28840             // Link
28841             userLink.append('a')
28842                 .attr('href', connection.userURL(details.display_name))
28843                 .attr('target', '_blank');
28844
28845             // Add thumbnail or dont
28846             if (details.image_url) {
28847                 userLink.append('img')
28848                     .attr('class', 'icon icon-pre-text user-icon')
28849                     .attr('src', details.image_url);
28850             } else {
28851                 userLink.append('span')
28852                     .attr('class', 'icon avatar light icon-pre-text');
28853             }
28854
28855             // Add user name
28856             userLink.append('span')
28857                 .attr('class', 'label')
28858                 .text(details.display_name);
28859
28860             logoutLink.append('a')
28861                 .attr('class', 'logout')
28862                 .attr('href', '#')
28863                 .text(t('logout'))
28864                 .on('click.logout', function() {
28865                     d3.event.preventDefault();
28866                     connection.logout();
28867                 });
28868         });
28869     }
28870
28871     return function(selection) {
28872         selection.append('li')
28873             .attr('id', 'logoutLink')
28874             .classed('hide', true);
28875
28876         selection.append('li')
28877             .attr('id', 'userLink')
28878             .classed('hide', true);
28879
28880         connection.on('auth.account', function() { update(selection); });
28881         update(selection);
28882     };
28883 };
28884 iD.ui.Attribution = function(context) {
28885     var selection;
28886
28887     function attribution(data, klass) {
28888         var div = selection.selectAll('.' + klass)
28889             .data([0]);
28890
28891         div.enter()
28892             .append('div')
28893             .attr('class', klass);
28894
28895         var background = div.selectAll('.attribution')
28896             .data(data, function(d) { return d.name(); });
28897
28898         background.enter()
28899             .append('span')
28900             .attr('class', 'attribution')
28901             .each(function(d) {
28902                 if (d.terms_html) {
28903                     d3.select(this)
28904                         .html(d.terms_html);
28905                     return;
28906                 }
28907
28908                 var source = d.terms_text || d.id || d.name();
28909
28910                 if (d.logo) {
28911                     source = '<img class="source-image" src="' + context.imagePath(d.logo) + '">';
28912                 }
28913
28914                 if (d.terms_url) {
28915                     d3.select(this)
28916                         .append('a')
28917                         .attr('href', d.terms_url)
28918                         .attr('target', '_blank')
28919                         .html(source);
28920                 } else {
28921                     d3.select(this)
28922                         .text(source);
28923                 }
28924             });
28925
28926         background.exit()
28927             .remove();
28928
28929         var copyright = background.selectAll('.copyright-notice')
28930             .data(function(d) {
28931                 var notice = d.copyrightNotices(context.map().zoom(), context.map().extent());
28932                 return notice ? [notice] : [];
28933             });
28934
28935         copyright.enter()
28936             .append('span')
28937             .attr('class', 'copyright-notice');
28938
28939         copyright.text(String);
28940
28941         copyright.exit()
28942             .remove();
28943     }
28944
28945     function update() {
28946         attribution([context.background().baseLayerSource()], 'base-layer-attribution');
28947         attribution(context.background().overlayLayerSources().filter(function (s) {
28948             return s.validZoom(context.map().zoom());
28949         }), 'overlay-layer-attribution');
28950     }
28951
28952     return function(select) {
28953         selection = select;
28954
28955         context.background()
28956             .on('change.attribution', update);
28957
28958         context.map()
28959             .on('move.attribution', _.throttle(update, 400, {leading: false}));
28960
28961         update();
28962     };
28963 };
28964 iD.ui.Background = function(context) {
28965     var key = 'B',
28966         opacities = [1, 0.75, 0.5, 0.25],
28967         directions = [
28968             ['left', [1, 0]],
28969             ['top', [0, -1]],
28970             ['right', [-1, 0]],
28971             ['bottom', [0, 1]]],
28972         opacityDefault = (context.storage('background-opacity') !== null) ?
28973             (+context.storage('background-opacity')) : 0.5,
28974         customTemplate = context.storage('background-custom-template') || '';
28975
28976     // Can be 0 from <1.3.0 use or due to issue #1923.
28977     if (opacityDefault === 0) opacityDefault = 0.5;
28978
28979     function background(selection) {
28980
28981         function setOpacity(d) {
28982             var bg = context.container().selectAll('.background-layer')
28983                 .transition()
28984                 .style('opacity', d)
28985                 .attr('data-opacity', d);
28986
28987             if (!iD.detect().opera) {
28988                 iD.util.setTransform(bg, 0, 0);
28989             }
28990
28991             opacityList.selectAll('li')
28992                 .classed('active', function(_) { return _ === d; });
28993
28994             context.storage('background-opacity', d);
28995         }
28996
28997         function selectLayer() {
28998             function active(d) {
28999                 return context.background().showsLayer(d);
29000             }
29001
29002             content.selectAll('.layer, .custom_layer')
29003                 .classed('active', active)
29004                 .selectAll('input')
29005                 .property('checked', active);
29006         }
29007
29008         function clickSetSource(d) {
29009             d3.event.preventDefault();
29010             context.background().baseLayerSource(d);
29011             selectLayer();
29012         }
29013
29014         function editCustom() {
29015             d3.event.preventDefault();
29016             var template = window.prompt(t('background.custom_prompt'), customTemplate);
29017             if (!template ||
29018                 template.indexOf('google.com') !== -1 ||
29019                 template.indexOf('googleapis.com') !== -1 ||
29020                 template.indexOf('google.ru') !== -1) {
29021                 selectLayer();
29022                 return;
29023             }
29024             setCustom(template);
29025         }
29026
29027         function setCustom(template) {
29028             context.background().baseLayerSource(iD.BackgroundSource.Custom(template));
29029             selectLayer();
29030             context.storage('background-custom-template', template);
29031         }
29032
29033         function clickSetOverlay(d) {
29034             d3.event.preventDefault();
29035             context.background().toggleOverlayLayer(d);
29036             selectLayer();
29037         }
29038
29039         function drawList(layerList, type, change, filter) {
29040             var sources = context.background()
29041                 .sources(context.map().extent())
29042                 .filter(filter);
29043
29044             var layerLinks = layerList.selectAll('li.layer')
29045                 .data(sources, function(d) { return d.name(); });
29046
29047             var enter = layerLinks.enter()
29048                 .insert('li', '.custom_layer')
29049                 .attr('class', 'layer');
29050
29051             // only set tooltips for layers with tooltips
29052             enter.filter(function(d) { return d.description; })
29053                 .call(bootstrap.tooltip()
29054                     .title(function(d) { return d.description; })
29055                     .placement('top'));
29056
29057             var label = enter.append('label');
29058
29059             label.append('input')
29060                 .attr('type', type)
29061                 .attr('name', 'layers')
29062                 .on('change', change);
29063
29064             label.append('span')
29065                 .text(function(d) { return d.name(); });
29066
29067             layerLinks.exit()
29068                 .remove();
29069
29070             layerList.style('display', layerList.selectAll('li.layer').data().length > 0 ? 'block' : 'none');
29071         }
29072
29073         function update() {
29074             backgroundList.call(drawList, 'radio', clickSetSource, function(d) { return !d.overlay; });
29075             overlayList.call(drawList, 'checkbox', clickSetOverlay, function(d) { return d.overlay; });
29076
29077             selectLayer();
29078
29079             var source = context.background().baseLayerSource();
29080             if (source.id === 'custom') {
29081                 customTemplate = source.template;
29082             }
29083         }
29084
29085         function clickNudge(d) {
29086
29087             var timeout = window.setTimeout(function() {
29088                     interval = window.setInterval(nudge, 100);
29089                 }, 500),
29090                 interval;
29091
29092             d3.select(this).on('mouseup', function() {
29093                 window.clearInterval(interval);
29094                 window.clearTimeout(timeout);
29095                 nudge();
29096             });
29097
29098             function nudge() {
29099                 var offset = context.background()
29100                     .nudge(d[1], context.map().zoom())
29101                     .offset();
29102                 resetButton.classed('disabled', offset[0] === 0 && offset[1] === 0);
29103             }
29104         }
29105
29106         function hide() { setVisible(false); }
29107
29108         function toggle() {
29109             if (d3.event) d3.event.preventDefault();
29110             tooltip.hide(button);
29111             setVisible(!button.classed('active'));
29112         }
29113
29114         function setVisible(show) {
29115             if (show !== shown) {
29116                 button.classed('active', show);
29117                 shown = show;
29118
29119                 if (show) {
29120                     selection.on('mousedown.background-inside', function() {
29121                         return d3.event.stopPropagation();
29122                     });
29123                     content.style('display', 'block')
29124                         .style('right', '-300px')
29125                         .transition()
29126                         .duration(200)
29127                         .style('right', '0px');
29128                 } else {
29129                     content.style('display', 'block')
29130                         .style('right', '0px')
29131                         .transition()
29132                         .duration(200)
29133                         .style('right', '-300px')
29134                         .each('end', function() {
29135                             d3.select(this).style('display', 'none');
29136                         });
29137                     selection.on('mousedown.background-inside', null);
29138                 }
29139             }
29140         }
29141
29142
29143         var content = selection.append('div')
29144                 .attr('class', 'fillL map-overlay col3 content hide'),
29145             tooltip = bootstrap.tooltip()
29146                 .placement('left')
29147                 .html(true)
29148                 .title(iD.ui.tooltipHtml(t('background.description'), key)),
29149             button = selection.append('button')
29150                 .attr('tabindex', -1)
29151                 .on('click', toggle)
29152                 .call(tooltip),
29153             shown = false;
29154
29155         button.append('span')
29156             .attr('class', 'icon layers light');
29157
29158
29159         var opa = content.append('div')
29160                 .attr('class', 'opacity-options-wrapper');
29161
29162         opa.append('h4')
29163             .text(t('background.title'));
29164
29165         var opacityList = opa.append('ul')
29166             .attr('class', 'opacity-options');
29167
29168         opacityList.selectAll('div.opacity')
29169             .data(opacities)
29170             .enter()
29171             .append('li')
29172             .attr('data-original-title', function(d) {
29173                 return t('background.percent_brightness', { opacity: (d * 100) });
29174             })
29175             .on('click.set-opacity', setOpacity)
29176             .html('<div class="select-box"></div>')
29177             .call(bootstrap.tooltip()
29178                 .placement('left'))
29179             .append('div')
29180             .attr('class', 'opacity')
29181             .style('opacity', function(d) { return 1.25 - d; });
29182
29183         var backgroundList = content.append('ul')
29184             .attr('class', 'layer-list');
29185
29186         var custom = backgroundList.append('li')
29187             .attr('class', 'custom_layer')
29188             .datum(iD.BackgroundSource.Custom());
29189
29190         custom.append('button')
29191             .attr('class', 'layer-browse')
29192             .call(bootstrap.tooltip()
29193                 .title(t('background.custom_button'))
29194                 .placement('left'))
29195             .on('click', editCustom)
29196             .append('span')
29197             .attr('class', 'icon geocode');
29198
29199         var label = custom.append('label');
29200
29201         label.append('input')
29202             .attr('type', 'radio')
29203             .attr('name', 'layers')
29204             .on('change', function () {
29205                 if (customTemplate) {
29206                     setCustom(customTemplate);
29207                 } else {
29208                     editCustom();
29209                 }
29210             });
29211
29212         label.append('span')
29213             .text(t('background.custom'));
29214
29215         var overlayList = content.append('ul')
29216             .attr('class', 'layer-list');
29217
29218         var adjustments = content.append('div')
29219             .attr('class', 'adjustments');
29220
29221         adjustments.append('a')
29222             .text(t('background.fix_misalignment'))
29223             .attr('href', '#')
29224             .classed('hide-toggle', true)
29225             .classed('expanded', false)
29226             .on('click', function() {
29227                 var exp = d3.select(this).classed('expanded');
29228                 nudgeContainer.style('display', exp ? 'none' : 'block');
29229                 d3.select(this).classed('expanded', !exp);
29230                 d3.event.preventDefault();
29231             });
29232
29233         var nudgeContainer = adjustments.append('div')
29234             .attr('class', 'nudge-container cf')
29235             .style('display', 'none');
29236
29237         nudgeContainer.selectAll('button')
29238             .data(directions).enter()
29239             .append('button')
29240             .attr('class', function(d) { return d[0] + ' nudge'; })
29241             .on('mousedown', clickNudge);
29242
29243         var resetButton = nudgeContainer.append('button')
29244             .attr('class', 'reset disabled')
29245             .on('click', function () {
29246                 context.background().offset([0, 0]);
29247                 resetButton.classed('disabled', true);
29248             });
29249
29250         resetButton.append('div')
29251             .attr('class', 'icon undo');
29252
29253         context.map()
29254             .on('move.background-update', _.debounce(update, 1000));
29255
29256         context.background()
29257             .on('change.background-update', update);
29258
29259         update();
29260         setOpacity(opacityDefault);
29261
29262         var keybinding = d3.keybinding('background')
29263             .on(key, toggle)
29264             .on('F', hide)
29265             .on('H', hide);
29266
29267         d3.select(document)
29268             .call(keybinding);
29269
29270         context.surface().on('mousedown.background-outside', hide);
29271         context.container().on('mousedown.background-outside', hide);
29272     }
29273
29274     return background;
29275 };
29276 // Translate a MacOS key command into the appropriate Windows/Linux equivalent.
29277 // For example, ⌘Z -> Ctrl+Z
29278 iD.ui.cmd = function(code) {
29279     if (iD.detect().os === 'mac')
29280         return code;
29281
29282     var replacements = {
29283         '⌘': 'Ctrl',
29284         '⇧': 'Shift',
29285         '⌥': 'Alt',
29286         '⌫': 'Backspace',
29287         '⌦': 'Delete'
29288     }, keys = [];
29289
29290     if (iD.detect().os === 'win') {
29291         if (code === '⌘⇧Z') return 'Ctrl+Y';
29292     }
29293
29294     for (var i = 0; i < code.length; i++) {
29295         if (code[i] in replacements) {
29296             keys.push(replacements[code[i]]);
29297         } else {
29298             keys.push(code[i]);
29299         }
29300     }
29301
29302     return keys.join('+');
29303 };
29304 iD.ui.Commit = function(context) {
29305     var event = d3.dispatch('cancel', 'save');
29306
29307     function commit(selection) {
29308         var changes = context.history().changes(),
29309             summary = context.history().difference().summary();
29310
29311         function zoomToEntity(change) {
29312
29313             var entity = change.entity;
29314             if (change.changeType !== 'deleted' &&
29315                 context.graph().entity(entity.id).geometry(context.graph()) !== 'vertex') {
29316                 context.map().zoomTo(entity);
29317                 context.surface().selectAll(
29318                     iD.util.entityOrMemberSelector([entity.id], context.graph()))
29319                     .classed('hover', true);
29320             }
29321         }
29322
29323         var header = selection.append('div')
29324             .attr('class', 'header fillL');
29325
29326         header.append('button')
29327             .attr('class', 'fr')
29328             .on('click', event.cancel)
29329             .append('span')
29330             .attr('class', 'icon close');
29331
29332         header.append('h3')
29333             .text(t('commit.title'));
29334
29335         var body = selection.append('div')
29336             .attr('class', 'body');
29337
29338         // Comment Section
29339         var commentSection = body.append('div')
29340             .attr('class', 'modal-section form-field commit-form');
29341
29342         commentSection.append('label')
29343             .attr('class', 'form-label')
29344             .text(t('commit.message_label'));
29345
29346         var commentField = commentSection.append('textarea')
29347             .attr('placeholder', t('commit.description_placeholder'))
29348             .attr('maxlength', 255)
29349             .property('value', context.storage('comment') || '')
29350             .on('blur.save', function () {
29351                 context.storage('comment', this.value);
29352             });
29353
29354         commentField.node().select();
29355
29356         // Warnings
29357         var warnings = body.selectAll('div.warning-section')
29358             .data([iD.validate(changes, context.graph())])
29359             .enter()
29360             .append('div')
29361             .attr('class', 'modal-section warning-section fillL2')
29362             .style('display', function(d) { return _.isEmpty(d) ? 'none' : null; })
29363             .style('background', '#ffb');
29364
29365         warnings.append('h3')
29366             .text(t('commit.warnings'));
29367
29368         var warningLi = warnings.append('ul')
29369             .attr('class', 'changeset-list')
29370             .selectAll('li')
29371             .data(function(d) { return d; })
29372             .enter()
29373             .append('li')
29374             .style()
29375             .on('mouseover', mouseover)
29376             .on('mouseout', mouseout)
29377             .on('click', warningClick);
29378
29379         warningLi.append('span')
29380             .attr('class', 'alert icon icon-pre-text');
29381
29382         warningLi.append('strong').text(function(d) {
29383             return d.message;
29384         });
29385
29386         warningLi.filter(function(d) { return d.tooltip; })
29387             .call(bootstrap.tooltip()
29388                 .title(function(d) { return d.tooltip; })
29389                 .placement('top')
29390             );
29391
29392         // Save Section
29393         var saveSection = body.append('div')
29394             .attr('class','modal-section fillL cf');
29395
29396         var prose = saveSection.append('p')
29397             .attr('class', 'commit-info')
29398             .html(t('commit.upload_explanation'));
29399
29400         context.connection().userDetails(function(err, user) {
29401             if (err) return;
29402
29403             var userLink = d3.select(document.createElement('div'));
29404
29405             if (user.image_url) {
29406                 userLink.append('img')
29407                     .attr('src', user.image_url)
29408                     .attr('class', 'icon icon-pre-text user-icon');
29409             }
29410
29411             userLink.append('a')
29412                 .attr('class','user-info')
29413                 .text(user.display_name)
29414                 .attr('href', context.connection().userURL(user.display_name))
29415                 .attr('tabindex', -1)
29416                 .attr('target', '_blank');
29417
29418             prose.html(t('commit.upload_explanation_with_user', {user: userLink.html()}));
29419         });
29420
29421         // Confirm Button
29422         var saveButton = saveSection.append('button')
29423             .attr('class', 'action col6 button')
29424             .on('click.save', function() {
29425                 event.save({
29426                     comment: commentField.node().value
29427                 });
29428             });
29429
29430         saveButton.append('span')
29431             .attr('class', 'label')
29432             .text(t('commit.save'));
29433
29434         var changeSection = body.selectAll('div.commit-section')
29435             .data([0])
29436             .enter()
29437             .append('div')
29438             .attr('class', 'commit-section modal-section fillL2');
29439
29440         changeSection.append('h3')
29441             .text(t('commit.changes', {count: summary.length}));
29442
29443         var li = changeSection.append('ul')
29444             .attr('class', 'changeset-list')
29445             .selectAll('li')
29446             .data(summary)
29447             .enter()
29448             .append('li')
29449             .on('mouseover', mouseover)
29450             .on('mouseout', mouseout)
29451             .on('click', zoomToEntity);
29452
29453         li.append('span')
29454             .attr('class', function(d) {
29455                 return d.entity.geometry(d.graph) + ' ' + d.changeType + ' icon icon-pre-text';
29456             });
29457
29458         li.append('span')
29459             .attr('class', 'change-type')
29460             .text(function(d) {
29461                 return t('commit.' + d.changeType) + ' ';
29462             });
29463
29464         li.append('strong')
29465             .attr('class', 'entity-type')
29466             .text(function(d) {
29467                 return context.presets().match(d.entity, d.graph).name();
29468             });
29469
29470         li.append('span')
29471             .attr('class', 'entity-name')
29472             .text(function(d) {
29473                 var name = iD.util.displayName(d.entity) || '',
29474                     string = '';
29475                 if (name !== '') string += ':';
29476                 return string += ' ' + name;
29477             });
29478
29479         li.style('opacity', 0)
29480             .transition()
29481             .style('opacity', 1);
29482
29483         li.style('opacity', 0)
29484             .transition()
29485             .style('opacity', 1);
29486
29487         function mouseover(d) {
29488             if (d.entity) {
29489                 context.surface().selectAll(
29490                     iD.util.entityOrMemberSelector([d.entity.id], context.graph())
29491                 ).classed('hover', true);
29492             }
29493         }
29494
29495         function mouseout() {
29496             context.surface().selectAll('.hover')
29497                 .classed('hover', false);
29498         }
29499
29500         function warningClick(d) {
29501             if (d.entity) {
29502                 context.map().zoomTo(d.entity);
29503                 context.enter(
29504                     iD.modes.Select(context, [d.entity.id])
29505                         .suppressMenu(true));
29506             }
29507         }
29508     }
29509
29510     return d3.rebind(commit, event, 'on');
29511 };
29512 iD.ui.confirm = function(selection) {
29513     var modal = iD.ui.modal(selection);
29514
29515     modal.select('.modal')
29516         .classed('modal-alert', true);
29517
29518     var section = modal.select('.content');
29519
29520     section.append('div')
29521         .attr('class', 'modal-section header');
29522
29523     section.append('div')
29524         .attr('class', 'modal-section message-text');
29525
29526     var buttons = section.append('div')
29527         .attr('class', 'modal-section buttons cf');
29528
29529     modal.okButton = function() {
29530         buttons
29531             .append('button')
29532             .attr('class', 'action col4')
29533             .on('click.confirm', function() {
29534                 modal.remove();
29535             })
29536             .text(t('confirm.okay'));
29537
29538         return modal;
29539     };
29540
29541     return modal;
29542 };
29543 iD.ui.Conflicts = function(context) {
29544     var dispatch = d3.dispatch('download', 'cancel', 'save'),
29545         list;
29546
29547     function conflicts(selection) {
29548         var header = selection
29549             .append('div')
29550             .attr('class', 'header fillL');
29551
29552         header
29553             .append('button')
29554             .attr('class', 'fr')
29555             .on('click', function() { dispatch.cancel(); })
29556             .append('span')
29557             .attr('class', 'icon close');
29558
29559         header
29560             .append('h3')
29561             .text(t('save.conflict.header'));
29562
29563         var body = selection
29564             .append('div')
29565             .attr('class', 'body fillL');
29566
29567         body
29568             .append('div')
29569             .attr('class', 'conflicts-help')
29570             .text(t('save.conflict.help'))
29571             .append('a')
29572             .attr('class', 'conflicts-download')
29573             .text(t('save.conflict.download_changes'))
29574             .on('click.download', function() { dispatch.download(); });
29575
29576         body
29577             .append('div')
29578             .attr('class', 'conflict-container fillL3')
29579             .call(showConflict, 0);
29580
29581         body
29582             .append('div')
29583             .attr('class', 'conflicts-done')
29584             .attr('opacity', 0)
29585             .style('display', 'none')
29586             .text(t('save.conflict.done'));
29587
29588         var buttons = body
29589             .append('div')
29590             .attr('class','buttons col12 joined conflicts-buttons');
29591
29592         buttons
29593             .append('button')
29594             .attr('disabled', list.length > 1)
29595             .attr('class', 'action conflicts-button col6')
29596             .text(t('save.title'))
29597             .on('click.try_again', function() { dispatch.save(); });
29598
29599         buttons
29600             .append('button')
29601             .attr('class', 'secondary-action conflicts-button col6')
29602             .text(t('confirm.cancel'))
29603             .on('click.cancel', function() { dispatch.cancel(); });
29604     }
29605
29606
29607     function showConflict(selection, index) {
29608         if (index < 0 || index >= list.length) return;
29609
29610         var parent = d3.select(selection.node().parentElement);
29611
29612         // enable save button if this is the last conflict being reviewed..
29613         if (index === list.length - 1) {
29614             window.setTimeout(function() {
29615                 parent.select('.conflicts-button')
29616                     .attr('disabled', null);
29617
29618                 parent.select('.conflicts-done')
29619                     .transition()
29620                     .attr('opacity', 1)
29621                     .style('display', 'block');
29622             }, 250);
29623         }
29624
29625         var item = selection
29626             .selectAll('.conflict')
29627             .data([list[index]]);
29628
29629         var enter = item.enter()
29630             .append('div')
29631             .attr('class', 'conflict');
29632
29633         enter
29634             .append('h4')
29635             .attr('class', 'conflict-count')
29636             .text(t('save.conflict.count', { num: index + 1, total: list.length }));
29637
29638         enter
29639             .append('a')
29640             .attr('class', 'conflict-description')
29641             .attr('href', '#')
29642             .text(function(d) { return d.name; })
29643             .on('click', function(d) {
29644                 zoomToEntity(d.id);
29645                 d3.event.preventDefault();
29646             });
29647
29648         var details = enter
29649             .append('div')
29650             .attr('class', 'conflict-detail-container');
29651
29652         details
29653             .append('ul')
29654             .attr('class', 'conflict-detail-list')
29655             .selectAll('li')
29656             .data(function(d) { return d.details || []; })
29657             .enter()
29658             .append('li')
29659             .attr('class', 'conflict-detail-item')
29660             .html(function(d) { return d; });
29661
29662         details
29663             .append('div')
29664             .attr('class', 'conflict-choices')
29665             .call(addChoices);
29666
29667         details
29668             .append('div')
29669             .attr('class', 'conflict-nav-buttons joined cf')
29670             .selectAll('button')
29671             .data(['previous', 'next'])
29672             .enter()
29673             .append('button')
29674             .text(function(d) { return t('save.conflict.' + d); })
29675             .attr('class', 'conflict-nav-button action col6')
29676             .attr('disabled', function(d, i) {
29677                 return (i === 0 && index === 0) ||
29678                     (i === 1 && index === list.length - 1) || null;
29679             })
29680             .on('click', function(d, i) {
29681                 var container = parent.select('.conflict-container'),
29682                 sign = (i === 0 ? -1 : 1);
29683
29684                 container
29685                     .selectAll('.conflict')
29686                     .remove();
29687
29688                 container
29689                     .call(showConflict, index + sign);
29690
29691                 d3.event.preventDefault();
29692             });
29693
29694         item.exit()
29695             .remove();
29696
29697     }
29698
29699     function addChoices(selection) {
29700         var choices = selection
29701             .append('ul')
29702             .attr('class', 'layer-list')
29703             .selectAll('li')
29704             .data(function(d) { return d.choices || []; });
29705
29706         var enter = choices.enter()
29707             .append('li')
29708             .attr('class', 'layer');
29709
29710         var label = enter
29711             .append('label');
29712
29713         label
29714             .append('input')
29715             .attr('type', 'radio')
29716             .attr('name', function(d) { return d.id; })
29717             .on('change', function(d, i) {
29718                 var ul = this.parentElement.parentElement.parentElement;
29719                 ul.__data__.chosen = i;
29720                 choose(ul, d);
29721             });
29722
29723         label
29724             .append('span')
29725             .text(function(d) { return d.text; });
29726
29727         choices
29728             .each(function(d, i) {
29729                 var ul = this.parentElement;
29730                 if (ul.__data__.chosen === i) choose(ul, d);
29731             });
29732     }
29733
29734     function choose(ul, datum) {
29735         if (d3.event) d3.event.preventDefault();
29736
29737         d3.select(ul)
29738             .selectAll('li')
29739             .classed('active', function(d) { return d === datum; })
29740             .selectAll('input')
29741             .property('checked', function(d) { return d === datum; });
29742
29743         var extent = iD.geo.Extent(),
29744             entity;
29745
29746         entity = context.graph().hasEntity(datum.id);
29747         if (entity) extent._extend(entity.extent(context.graph()));
29748
29749         datum.action();
29750
29751         entity = context.graph().hasEntity(datum.id);
29752         if (entity) extent._extend(entity.extent(context.graph()));
29753
29754         zoomToEntity(datum.id, extent);
29755     }
29756
29757     function zoomToEntity(id, extent) {
29758         context.surface().selectAll('.hover')
29759             .classed('hover', false);
29760
29761         var entity = context.graph().hasEntity(id);
29762         if (entity) {
29763             if (extent) {
29764                 context.map().trimmedExtent(extent);
29765             } else {
29766                 context.map().zoomTo(entity);
29767             }
29768             context.surface().selectAll(
29769                 iD.util.entityOrMemberSelector([entity.id], context.graph()))
29770                 .classed('hover', true);
29771         }
29772     }
29773
29774
29775     // The conflict list should be an array of objects like:
29776     // {
29777     //     id: id,
29778     //     name: entityName(local),
29779     //     details: merge.conflicts(),
29780     //     chosen: 1,
29781     //     choices: [
29782     //         choice(id, keepMine, forceLocal),
29783     //         choice(id, keepTheirs, forceRemote)
29784     //     ]
29785     // }
29786     conflicts.list = function(_) {
29787         if (!arguments.length) return list;
29788         list = _;
29789         return conflicts;
29790     };
29791
29792     return d3.rebind(conflicts, dispatch, 'on');
29793 };
29794 iD.ui.Contributors = function(context) {
29795     function update(selection) {
29796         var users = {},
29797             limit = 4,
29798             entities = context.intersects(context.map().extent());
29799
29800         entities.forEach(function(entity) {
29801             if (entity && entity.user) users[entity.user] = true;
29802         });
29803
29804         var u = Object.keys(users),
29805             subset = u.slice(0, u.length > limit ? limit - 1 : limit);
29806
29807         selection.html('')
29808             .append('span')
29809             .attr('class', 'icon nearby light icon-pre-text');
29810
29811         var userList = d3.select(document.createElement('span'));
29812
29813         userList.selectAll()
29814             .data(subset)
29815             .enter()
29816             .append('a')
29817             .attr('class', 'user-link')
29818             .attr('href', function(d) { return context.connection().userURL(d); })
29819             .attr('target', '_blank')
29820             .attr('tabindex', -1)
29821             .text(String);
29822
29823         if (u.length > limit) {
29824             var count = d3.select(document.createElement('span'));
29825
29826             count.append('a')
29827                 .attr('target', '_blank')
29828                 .attr('tabindex', -1)
29829                 .attr('href', function() {
29830                     return context.connection().changesetsURL(context.map().center(), context.map().zoom());
29831                 })
29832                 .text(u.length - limit + 1);
29833
29834             selection.append('span')
29835                 .html(t('contributors.truncated_list', {users: userList.html(), count: count.html()}));
29836         } else {
29837             selection.append('span')
29838                 .html(t('contributors.list', {users: userList.html()}));
29839         }
29840
29841         if (!u.length) {
29842             selection.transition().style('opacity', 0);
29843         } else if (selection.style('opacity') === '0') {
29844             selection.transition().style('opacity', 1);
29845         }
29846     }
29847
29848     return function(selection) {
29849         update(selection);
29850
29851         context.connection().on('loaded.contributors', function() {
29852             update(selection);
29853         });
29854
29855         context.map().on('move.contributors', _.debounce(function() {
29856             update(selection);
29857         }, 500));
29858     };
29859 };
29860 iD.ui.Disclosure = function() {
29861     var dispatch = d3.dispatch('toggled'),
29862         title,
29863         expanded = false,
29864         content = function () {};
29865
29866     var disclosure = function(selection) {
29867         var $link = selection.selectAll('.hide-toggle')
29868             .data([0]);
29869
29870         $link.enter().append('a')
29871             .attr('href', '#')
29872             .attr('class', 'hide-toggle');
29873
29874         $link.text(title)
29875             .on('click', toggle)
29876             .classed('expanded', expanded);
29877
29878         var $body = selection.selectAll('div')
29879             .data([0]);
29880
29881         $body.enter().append('div');
29882
29883         $body.classed('hide', !expanded)
29884             .call(content);
29885
29886         function toggle() {
29887             expanded = !expanded;
29888             $link.classed('expanded', expanded);
29889             $body.call(iD.ui.Toggle(expanded));
29890             dispatch.toggled(expanded);
29891         }
29892     };
29893
29894     disclosure.title = function(_) {
29895         if (!arguments.length) return title;
29896         title = _;
29897         return disclosure;
29898     };
29899
29900     disclosure.expanded = function(_) {
29901         if (!arguments.length) return expanded;
29902         expanded = _;
29903         return disclosure;
29904     };
29905
29906     disclosure.content = function(_) {
29907         if (!arguments.length) return content;
29908         content = _;
29909         return disclosure;
29910     };
29911
29912     return d3.rebind(disclosure, dispatch, 'on');
29913 };
29914 iD.ui.EntityEditor = function(context) {
29915     var event = d3.dispatch('choose'),
29916         state = 'select',
29917         id,
29918         preset,
29919         reference;
29920
29921     var presetEditor = iD.ui.preset(context)
29922         .on('change', changeTags);
29923     var rawTagEditor = iD.ui.RawTagEditor(context)
29924         .on('change', changeTags);
29925
29926     function entityEditor(selection) {
29927         var entity = context.entity(id),
29928             tags = _.clone(entity.tags);
29929
29930         var $header = selection.selectAll('.header')
29931             .data([0]);
29932
29933         // Enter
29934
29935         var $enter = $header.enter().append('div')
29936             .attr('class', 'header fillL cf');
29937
29938         $enter.append('button')
29939             .attr('class', 'fr preset-close')
29940             .append('span')
29941             .attr('class', 'icon close');
29942
29943         $enter.append('h3');
29944
29945         // Update
29946
29947         $header.select('h3')
29948             .text(t('inspector.edit'));
29949
29950         $header.select('.preset-close')
29951             .on('click', function() {
29952                 context.enter(iD.modes.Browse(context));
29953             });
29954
29955         var $body = selection.selectAll('.inspector-body')
29956             .data([0]);
29957
29958         // Enter
29959
29960         $enter = $body.enter().append('div')
29961             .attr('class', 'inspector-body');
29962
29963         $enter.append('div')
29964             .attr('class', 'preset-list-item inspector-inner')
29965             .append('div')
29966             .attr('class', 'preset-list-button-wrap')
29967             .append('button')
29968             .attr('class', 'preset-list-button preset-reset')
29969             .call(bootstrap.tooltip()
29970                 .title(t('inspector.back_tooltip'))
29971                 .placement('bottom'))
29972             .append('div')
29973             .attr('class', 'label');
29974
29975         $body.select('.preset-list-button-wrap')
29976             .call(reference.button);
29977
29978         $body.select('.preset-list-item')
29979             .call(reference.body);
29980
29981         $enter.append('div')
29982             .attr('class', 'inspector-border inspector-preset');
29983
29984         $enter.append('div')
29985             .attr('class', 'inspector-border raw-tag-editor inspector-inner');
29986
29987         $enter.append('div')
29988             .attr('class', 'inspector-border raw-member-editor inspector-inner');
29989
29990         $enter.append('div')
29991             .attr('class', 'raw-membership-editor inspector-inner');
29992
29993         selection.selectAll('.preset-reset')
29994             .on('click', function() {
29995                 event.choose(preset);
29996             });
29997
29998         // Update
29999
30000         $body.select('.preset-list-item button')
30001             .call(iD.ui.PresetIcon()
30002                 .geometry(context.geometry(id))
30003                 .preset(preset));
30004
30005         $body.select('.preset-list-item .label')
30006             .text(preset.name());
30007
30008         $body.select('.inspector-preset')
30009             .call(presetEditor
30010                 .preset(preset)
30011                 .entityID(id)
30012                 .tags(tags)
30013                 .state(state));
30014
30015         $body.select('.raw-tag-editor')
30016             .call(rawTagEditor
30017                 .preset(preset)
30018                 .entityID(id)
30019                 .tags(tags)
30020                 .state(state));
30021
30022         if (entity.type === 'relation') {
30023             $body.select('.raw-member-editor')
30024                 .style('display', 'block')
30025                 .call(iD.ui.RawMemberEditor(context)
30026                     .entityID(id));
30027         } else {
30028             $body.select('.raw-member-editor')
30029                 .style('display', 'none');
30030         }
30031
30032         $body.select('.raw-membership-editor')
30033             .call(iD.ui.RawMembershipEditor(context)
30034                 .entityID(id));
30035
30036         function historyChanged() {
30037             if (state === 'hide') return;
30038             var entity = context.hasEntity(id);
30039             if (!entity) return;
30040             entityEditor.preset(context.presets().match(entity, context.graph()));
30041             entityEditor(selection);
30042         }
30043
30044         context.history()
30045             .on('change.entity-editor', historyChanged);
30046     }
30047
30048     function clean(o) {
30049         function isOpeningHours(k) {
30050             return _.any(['opening_hours', 'service_times', 'collection_times',
30051                 'operating_times', 'smoking_hours', 'happy_hours'], function(s) {
30052                     return k.indexOf(s) !== -1;
30053             });
30054         }
30055         function cleanVal(k, v) {
30056             var cleaned = v.split(';')
30057                 .map(function(s) { return s.trim(); })
30058                 .join(isOpeningHours(k) ? '; ' : ';');
30059
30060             // The code below is not intended to validate websites and emails.
30061             // It is only intended to prevent obvious copy-paste errors. (#2323)
30062
30063             // clean website-like tags
30064             if (k.indexOf('website') !== -1 || cleaned.indexOf('http') !== -1) {
30065                 cleaned = cleaned
30066                     .replace(/[\u200B-\u200F\uFEFF]/g, '')  // strip LRM and other zero width chars
30067                     .replace(/[^\w\+\-\.\/\?\[\]\(\)~!@#$%&*',:;=]/g, encodeURIComponent);
30068
30069             // clean email-like tags
30070             } else if (k.indexOf('email') !== -1) {
30071                 cleaned = cleaned
30072                     .replace(/[\u200B-\u200F\uFEFF]/g, '')  // strip LRM and other zero width chars
30073                     .replace(/[^\w\+\-\.\/\?\|~!@#$%^&*'`{};=]/g, '');  // note: ';' allowed as OSM delimiter
30074             }
30075
30076             return cleaned;
30077         }
30078
30079         var out = {}, k, v;
30080         for (k in o) {
30081             if (k && (v = o[k]) !== undefined) {
30082                 out[k] = cleanVal(k, v);
30083             }
30084         }
30085         return out;
30086     }
30087
30088     function changeTags(changed) {
30089         var entity = context.entity(id),
30090             tags = clean(_.extend({}, entity.tags, changed));
30091
30092         if (!_.isEqual(entity.tags, tags)) {
30093             context.perform(
30094                 iD.actions.ChangeTags(id, tags),
30095                 t('operations.change_tags.annotation'));
30096         }
30097     }
30098
30099     entityEditor.state = function(_) {
30100         if (!arguments.length) return state;
30101         state = _;
30102         return entityEditor;
30103     };
30104
30105     entityEditor.entityID = function(_) {
30106         if (!arguments.length) return id;
30107         id = _;
30108         entityEditor.preset(context.presets().match(context.entity(id), context.graph()));
30109         return entityEditor;
30110     };
30111
30112     entityEditor.preset = function(_) {
30113         if (!arguments.length) return preset;
30114         if (_ !== preset) {
30115             preset = _;
30116             reference = iD.ui.TagReference(preset.reference(context.geometry(id)), context)
30117                 .showing(false);
30118         }
30119         return entityEditor;
30120     };
30121
30122     return d3.rebind(entityEditor, event, 'on');
30123 };
30124 iD.ui.FeatureInfo = function(context) {
30125     function update(selection) {
30126         var features = context.features(),
30127             stats = features.stats(),
30128             count = 0,
30129             hiddenList = _.compact(_.map(features.hidden(), function(k) {
30130                 if (stats[k]) {
30131                     count += stats[k];
30132                     return String(stats[k]) + ' ' + t('feature.' + k + '.description');
30133                 }
30134             }));
30135
30136         selection.html('');
30137
30138         if (hiddenList.length) {
30139             var tooltip = bootstrap.tooltip()
30140                     .placement('top')
30141                     .html(true)
30142                     .title(function() {
30143                         return iD.ui.tooltipHtml(hiddenList.join('<br/>'));
30144                     });
30145
30146             var warning = selection.append('a')
30147                 .attr('href', '#')
30148                 .attr('tabindex', -1)
30149                 .html(t('feature_info.hidden_warning', { count: count }))
30150                 .call(tooltip)
30151                 .on('click', function() {
30152                     tooltip.hide(warning);
30153                     // open map data panel?
30154                     d3.event.preventDefault();
30155                 });
30156         }
30157
30158         selection
30159             .classed('hide', !hiddenList.length);
30160     }
30161
30162     return function(selection) {
30163         update(selection);
30164
30165         context.features().on('change.feature_info', function() {
30166             update(selection);
30167         });
30168     };
30169 };
30170 iD.ui.FeatureList = function(context) {
30171     var geocodeResults;
30172
30173     function featureList(selection) {
30174         var header = selection.append('div')
30175             .attr('class', 'header fillL cf');
30176
30177         header.append('h3')
30178             .text(t('inspector.feature_list'));
30179
30180         function keypress() {
30181             var q = search.property('value'),
30182                 items = list.selectAll('.feature-list-item');
30183             if (d3.event.keyCode === 13 && q.length && items.size()) {
30184                 click(items.datum());
30185             }
30186         }
30187
30188         function inputevent() {
30189             geocodeResults = undefined;
30190             drawList();
30191         }
30192
30193         var searchWrap = selection.append('div')
30194             .attr('class', 'search-header');
30195
30196         var search = searchWrap.append('input')
30197             .attr('placeholder', t('inspector.search'))
30198             .attr('type', 'search')
30199             .on('keypress', keypress)
30200             .on('input', inputevent);
30201
30202         searchWrap.append('span')
30203             .attr('class', 'icon search');
30204
30205         var listWrap = selection.append('div')
30206             .attr('class', 'inspector-body');
30207
30208         var list = listWrap.append('div')
30209             .attr('class', 'feature-list cf');
30210
30211         context.map()
30212             .on('drawn.feature-list', mapDrawn);
30213
30214         function mapDrawn(e) {
30215             if (e.full) {
30216                 drawList();
30217             }
30218         }
30219
30220         function features() {
30221             var entities = {},
30222                 result = [],
30223                 graph = context.graph(),
30224                 q = search.property('value').toLowerCase();
30225
30226             if (!q) return result;
30227
30228             var idMatch = q.match(/^([nwr])([0-9]+)$/);
30229
30230             if (idMatch) {
30231                 result.push({
30232                     id: idMatch[0],
30233                     geometry: idMatch[1] === 'n' ? 'point' : idMatch[1] === 'w' ? 'line' : 'relation',
30234                     type: idMatch[1] === 'n' ? t('inspector.node') : idMatch[1] === 'w' ? t('inspector.way') : t('inspector.relation'),
30235                     name: idMatch[2]
30236                 });
30237             }
30238
30239             var locationMatch = sexagesimal.pair(q.toUpperCase()) || q.match(/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)$/);
30240
30241             if (locationMatch) {
30242                 var loc = [parseFloat(locationMatch[0]), parseFloat(locationMatch[1])];
30243                 result.push({
30244                     id: -1,
30245                     geometry: 'point',
30246                     type: t('inspector.location'),
30247                     name: loc[0].toFixed(6) + ', ' + loc[1].toFixed(6),
30248                     location: loc
30249                 });
30250             }
30251
30252             function addEntity(entity) {
30253                 if (entity.id in entities || result.length > 200)
30254                     return;
30255
30256                 entities[entity.id] = true;
30257
30258                 var name = iD.util.displayName(entity) || '';
30259                 if (name.toLowerCase().indexOf(q) >= 0) {
30260                     result.push({
30261                         id: entity.id,
30262                         entity: entity,
30263                         geometry: context.geometry(entity.id),
30264                         type: context.presets().match(entity, graph).name(),
30265                         name: name
30266                     });
30267                 }
30268
30269                 graph.parentRelations(entity).forEach(function(parent) {
30270                     addEntity(parent);
30271                 });
30272             }
30273
30274             var visible = context.surface().selectAll('.point, .line, .area')[0];
30275             for (var i = 0; i < visible.length && result.length <= 200; i++) {
30276                 addEntity(visible[i].__data__);
30277             }
30278
30279             (geocodeResults || []).forEach(function(d) {
30280                 // https://github.com/openstreetmap/iD/issues/1890
30281                 if (d.osm_type && d.osm_id) {
30282                     result.push({
30283                         id: iD.Entity.id.fromOSM(d.osm_type, d.osm_id),
30284                         geometry: d.osm_type === 'relation' ? 'relation' : d.osm_type === 'way' ? 'line' : 'point',
30285                         type: d.type !== 'yes' ? (d.type.charAt(0).toUpperCase() + d.type.slice(1)).replace('_', ' ')
30286                                                : (d.class.charAt(0).toUpperCase() + d.class.slice(1)).replace('_', ' '),
30287                         name: d.display_name,
30288                         extent: new iD.geo.Extent(
30289                             [parseFloat(d.boundingbox[3]), parseFloat(d.boundingbox[0])],
30290                             [parseFloat(d.boundingbox[2]), parseFloat(d.boundingbox[1])])
30291                     });
30292                 }
30293             });
30294
30295             return result;
30296         }
30297
30298         function drawList() {
30299             var value = search.property('value'),
30300                 results = features();
30301
30302             list.classed('filtered', value.length);
30303
30304             var noResultsWorldwide = geocodeResults && geocodeResults.length === 0;
30305
30306             var resultsIndicator = list.selectAll('.no-results-item')
30307                 .data([0])
30308                 .enter().append('button')
30309                 .property('disabled', true)
30310                 .attr('class', 'no-results-item');
30311
30312             resultsIndicator.append('span')
30313                 .attr('class', 'icon alert');
30314
30315             resultsIndicator.append('span')
30316                 .attr('class', 'entity-name');
30317
30318             list.selectAll('.no-results-item .entity-name')
30319                 .text(noResultsWorldwide ? t('geocoder.no_results_worldwide') : t('geocoder.no_results_visible'));
30320
30321             list.selectAll('.geocode-item')
30322                 .data([0])
30323                 .enter().append('button')
30324                 .attr('class', 'geocode-item')
30325                 .on('click', geocode)
30326                 .append('div')
30327                 .attr('class', 'label')
30328                 .append('span')
30329                 .attr('class', 'entity-name')
30330                 .text(t('geocoder.search'));
30331
30332             list.selectAll('.no-results-item')
30333                 .style('display', (value.length && !results.length) ? 'block' : 'none');
30334
30335             list.selectAll('.geocode-item')
30336                 .style('display', (value && geocodeResults === undefined) ? 'block' : 'none');
30337
30338             list.selectAll('.feature-list-item')
30339                 .data([-1])
30340                 .remove();
30341
30342             var items = list.selectAll('.feature-list-item')
30343                 .data(results, function(d) { return d.id; });
30344
30345             var enter = items.enter().insert('button', '.geocode-item')
30346                 .attr('class', 'feature-list-item')
30347                 .on('mouseover', mouseover)
30348                 .on('mouseout', mouseout)
30349                 .on('click', click);
30350
30351             var label = enter.append('div')
30352                 .attr('class', 'label');
30353
30354             label.append('span')
30355                 .attr('class', function(d) { return d.geometry + ' icon icon-pre-text'; });
30356
30357             label.append('span')
30358                 .attr('class', 'entity-type')
30359                 .text(function(d) { return d.type; });
30360
30361             label.append('span')
30362                 .attr('class', 'entity-name')
30363                 .text(function(d) { return d.name; });
30364
30365             enter.style('opacity', 0)
30366                 .transition()
30367                 .style('opacity', 1);
30368
30369             items.order();
30370
30371             items.exit()
30372                 .remove();
30373         }
30374
30375         function mouseover(d) {
30376             if (d.id === -1) return;
30377
30378             context.surface().selectAll(iD.util.entityOrMemberSelector([d.id], context.graph()))
30379                 .classed('hover', true);
30380         }
30381
30382         function mouseout() {
30383             context.surface().selectAll('.hover')
30384                 .classed('hover', false);
30385         }
30386
30387         function click(d) {
30388             d3.event.preventDefault();
30389             if (d.location) {
30390                 context.map().centerZoom([d.location[1], d.location[0]], 20);
30391             }
30392             else if (d.entity) {
30393                 context.enter(iD.modes.Select(context, [d.entity.id]));
30394             } else {
30395                 context.zoomToEntity(d.id);
30396             }
30397         }
30398
30399         function geocode() {
30400             var searchVal = encodeURIComponent(search.property('value'));
30401             d3.json('http://nominatim.openstreetmap.org/search/' + searchVal + '?limit=10&format=json', function(err, resp) {
30402                 geocodeResults = resp || [];
30403                 drawList();
30404             });
30405         }
30406     }
30407
30408     return featureList;
30409 };
30410 iD.ui.flash = function(selection) {
30411     var modal = iD.ui.modal(selection);
30412
30413     modal.select('.modal').classed('modal-flash', true);
30414
30415     modal.select('.content')
30416         .classed('modal-section', true)
30417         .append('div')
30418         .attr('class', 'description');
30419
30420     modal.on('click.flash', function() { modal.remove(); });
30421
30422     setTimeout(function() {
30423         modal.remove();
30424         return true;
30425     }, 1500);
30426
30427     return modal;
30428 };
30429 iD.ui.Geolocate = function(map) {
30430     function click() {
30431         navigator.geolocation.getCurrentPosition(
30432             success, error);
30433     }
30434
30435     function success(position) {
30436         var extent = iD.geo.Extent([position.coords.longitude, position.coords.latitude])
30437             .padByMeters(position.coords.accuracy);
30438
30439         map.centerZoom(extent.center(), Math.min(20, map.extentZoom(extent)));
30440     }
30441
30442     function error() { }
30443
30444     return function(selection) {
30445         if (!navigator.geolocation) return;
30446
30447         var button = selection.append('button')
30448             .attr('tabindex', -1)
30449             .attr('title', t('geolocate.title'))
30450             .on('click', click)
30451             .call(bootstrap.tooltip()
30452                 .placement('left'));
30453
30454          button.append('span')
30455              .attr('class', 'icon geolocate light');
30456     };
30457 };
30458 iD.ui.Help = function(context) {
30459     var key = 'H';
30460
30461     var docKeys = [
30462         'help.help',
30463         'help.editing_saving',
30464         'help.roads',
30465         'help.gps',
30466         'help.imagery',
30467         'help.addresses',
30468         'help.inspector',
30469         'help.buildings',
30470         'help.relations'];
30471
30472     var docs = docKeys.map(function(key) {
30473         var text = t(key);
30474         return {
30475             title: text.split('\n')[0].replace('#', '').trim(),
30476             html: marked(text.split('\n').slice(1).join('\n'))
30477         };
30478     });
30479
30480     function help(selection) {
30481
30482         function hide() {
30483             setVisible(false);
30484         }
30485
30486         function toggle() {
30487             if (d3.event) d3.event.preventDefault();
30488             tooltip.hide(button);
30489             setVisible(!button.classed('active'));
30490         }
30491
30492         function setVisible(show) {
30493             if (show !== shown) {
30494                 button.classed('active', show);
30495                 shown = show;
30496
30497                 if (show) {
30498                     selection.on('mousedown.help-inside', function() {
30499                         return d3.event.stopPropagation();
30500                     });
30501                     pane.style('display', 'block')
30502                         .style('right', '-500px')
30503                         .transition()
30504                         .duration(200)
30505                         .style('right', '0px');
30506                 } else {
30507                     pane.style('right', '0px')
30508                         .transition()
30509                         .duration(200)
30510                         .style('right', '-500px')
30511                         .each('end', function() {
30512                             d3.select(this).style('display', 'none');
30513                         });
30514                     selection.on('mousedown.help-inside', null);
30515                 }
30516             }
30517         }
30518
30519         function clickHelp(d, i) {
30520             pane.property('scrollTop', 0);
30521             doctitle.text(d.title);
30522             body.html(d.html);
30523             body.selectAll('a')
30524                 .attr('target', '_blank');
30525             menuItems.classed('selected', function(m) {
30526                 return m.title === d.title;
30527             });
30528
30529             nav.html('');
30530
30531             if (i > 0) {
30532                 var prevLink = nav.append('a')
30533                     .attr('class', 'previous')
30534                     .on('click', function() {
30535                         clickHelp(docs[i - 1], i - 1);
30536                     });
30537                 prevLink.append('span').attr('class', 'icon back blue');
30538                 prevLink.append('span').text(docs[i - 1].title);
30539             }
30540             if (i < docs.length - 1) {
30541                 var nextLink = nav.append('a')
30542                     .attr('class', 'next')
30543                     .on('click', function() {
30544                         clickHelp(docs[i + 1], i + 1);
30545                     });
30546                 nextLink.append('span').text(docs[i + 1].title);
30547                 nextLink.append('span').attr('class', 'icon forward blue');
30548             }
30549         }
30550
30551         function clickWalkthrough() {
30552             d3.select(document.body).call(iD.ui.intro(context));
30553             setVisible(false);
30554         }
30555
30556
30557         var pane = selection.append('div')
30558                 .attr('class', 'help-wrap map-overlay fillL col5 content hide'),
30559             tooltip = bootstrap.tooltip()
30560                 .placement('left')
30561                 .html(true)
30562                 .title(iD.ui.tooltipHtml(t('help.title'), key)),
30563             button = selection.append('button')
30564                 .attr('tabindex', -1)
30565                 .on('click', toggle)
30566                 .call(tooltip),
30567             shown = false;
30568
30569         button.append('span')
30570             .attr('class', 'icon help light');
30571
30572
30573         var toc = pane.append('ul')
30574             .attr('class', 'toc');
30575
30576         var menuItems = toc.selectAll('li')
30577             .data(docs)
30578             .enter()
30579             .append('li')
30580             .append('a')
30581             .text(function(d) { return d.title; })
30582             .on('click', clickHelp);
30583
30584         toc.append('li')
30585             .attr('class','walkthrough')
30586             .append('a')
30587             .text(t('splash.walkthrough'))
30588             .on('click', clickWalkthrough);
30589
30590         var content = pane.append('div')
30591             .attr('class', 'left-content');
30592
30593         var doctitle = content.append('h2')
30594             .text(t('help.title'));
30595
30596         var body = content.append('div')
30597             .attr('class', 'body');
30598
30599         var nav = content.append('div')
30600             .attr('class', 'nav');
30601
30602         clickHelp(docs[0], 0);
30603
30604         var keybinding = d3.keybinding('help')
30605             .on(key, toggle)
30606             .on('B', hide)
30607             .on('F', hide);
30608
30609         d3.select(document)
30610             .call(keybinding);
30611
30612         context.surface().on('mousedown.help-outside', hide);
30613         context.container().on('mousedown.help-outside', hide);
30614     }
30615
30616     return help;
30617 };
30618 iD.ui.Inspector = function(context) {
30619     var presetList = iD.ui.PresetList(context),
30620         entityEditor = iD.ui.EntityEditor(context),
30621         state = 'select',
30622         entityID,
30623         newFeature = false;
30624
30625     function inspector(selection) {
30626         presetList
30627             .entityID(entityID)
30628             .autofocus(newFeature)
30629             .on('choose', setPreset);
30630
30631         entityEditor
30632             .state(state)
30633             .entityID(entityID)
30634             .on('choose', showList);
30635
30636         var $wrap = selection.selectAll('.panewrap')
30637             .data([0]);
30638
30639         var $enter = $wrap.enter().append('div')
30640             .attr('class', 'panewrap');
30641
30642         $enter.append('div')
30643             .attr('class', 'preset-list-pane pane');
30644
30645         $enter.append('div')
30646             .attr('class', 'entity-editor-pane pane');
30647
30648         var $presetPane = $wrap.select('.preset-list-pane');
30649         var $editorPane = $wrap.select('.entity-editor-pane');
30650
30651         var graph = context.graph(),
30652             entity = context.entity(entityID),
30653             showEditor = state === 'hover' ||
30654                 entity.isUsed(graph) ||
30655                 entity.isHighwayIntersection(graph);
30656
30657         if (showEditor) {
30658             $wrap.style('right', '0%');
30659             $editorPane.call(entityEditor);
30660         } else {
30661             $wrap.style('right', '-100%');
30662             $presetPane.call(presetList);
30663         }
30664
30665         var $footer = selection.selectAll('.footer')
30666             .data([0]);
30667
30668         $footer.enter().append('div')
30669             .attr('class', 'footer');
30670
30671         selection.select('.footer')
30672             .call(iD.ui.ViewOnOSM(context)
30673                 .entityID(entityID));
30674
30675         function showList(preset) {
30676             $wrap.transition()
30677                 .styleTween('right', function() { return d3.interpolate('0%', '-100%'); });
30678
30679             $presetPane.call(presetList
30680                 .preset(preset)
30681                 .autofocus(true));
30682         }
30683
30684         function setPreset(preset) {
30685             $wrap.transition()
30686                 .styleTween('right', function() { return d3.interpolate('-100%', '0%'); });
30687
30688             $editorPane.call(entityEditor
30689                 .preset(preset));
30690         }
30691     }
30692
30693     inspector.state = function(_) {
30694         if (!arguments.length) return state;
30695         state = _;
30696         entityEditor.state(state);
30697         return inspector;
30698     };
30699
30700     inspector.entityID = function(_) {
30701         if (!arguments.length) return entityID;
30702         entityID = _;
30703         return inspector;
30704     };
30705
30706     inspector.newFeature = function(_) {
30707         if (!arguments.length) return newFeature;
30708         newFeature = _;
30709         return inspector;
30710     };
30711
30712     return inspector;
30713 };
30714 iD.ui.intro = function(context) {
30715
30716     var step;
30717
30718     function intro(selection) {
30719
30720         context.enter(iD.modes.Browse(context));
30721
30722         // Save current map state
30723         var history = context.history().toJSON(),
30724             hash = window.location.hash,
30725             background = context.background().baseLayerSource(),
30726             opacity = d3.select('.background-layer').style('opacity'),
30727             loadedTiles = context.connection().loadedTiles(),
30728             baseEntities = context.history().graph().base().entities,
30729             introGraph;
30730
30731         // Load semi-real data used in intro
30732         context.connection().toggle(false).flush();
30733         context.history().reset();
30734         
30735         introGraph = JSON.parse(iD.introGraph);
30736         for (var key in introGraph) {
30737             introGraph[key] = iD.Entity(introGraph[key]);
30738         }
30739         context.history().merge(d3.values(iD.Graph().load(introGraph).entities));
30740         context.background().bing();
30741
30742         // Block saving
30743         var savebutton = d3.select('#bar button.save'),
30744             save = savebutton.on('click');
30745         savebutton.on('click', null);
30746         context.inIntro(true);
30747
30748         d3.select('.background-layer').style('opacity', 1);
30749
30750         var curtain = d3.curtain();
30751         selection.call(curtain);
30752
30753         function reveal(box, text, options) {
30754             options = options || {};
30755             if (text) curtain.reveal(box, text, options.tooltipClass, options.duration);
30756             else curtain.reveal(box, '', '', options.duration);
30757         }
30758
30759         var steps = ['navigation', 'point', 'area', 'line', 'startEditing'].map(function(step, i) {
30760             var s = iD.ui.intro[step](context, reveal)
30761                 .on('done', function() {
30762                     entered.filter(function(d) {
30763                         return d.title === s.title;
30764                     }).classed('finished', true);
30765                     enter(steps[i + 1]);
30766                 });
30767             return s;
30768         });
30769
30770         steps[steps.length - 1].on('startEditing', function() {
30771             curtain.remove();
30772             navwrap.remove();
30773             d3.select('.background-layer').style('opacity', opacity);
30774             context.connection().toggle(true).flush().loadedTiles(loadedTiles);
30775             context.history().reset().merge(d3.values(baseEntities));
30776             context.background().baseLayerSource(background);
30777             if (history) context.history().fromJSON(history);
30778             window.location.replace(hash);
30779             context.inIntro(false);
30780             d3.select('#bar button.save').on('click', save);
30781         });
30782
30783         var navwrap = selection.append('div').attr('class', 'intro-nav-wrap fillD');
30784
30785         var buttonwrap = navwrap.append('div')
30786             .attr('class', 'joined')
30787             .selectAll('button.step');
30788
30789         var entered = buttonwrap.data(steps)
30790             .enter().append('button')
30791                 .attr('class', 'step')
30792                 .on('click', enter);
30793
30794         entered.append('div').attr('class','icon icon-pre-text apply');
30795         entered.append('label').text(function(d) { return t(d.title); });
30796         enter(steps[0]);
30797
30798         function enter (newStep) {
30799
30800             if (step) {
30801                 step.exit();
30802             }
30803
30804             context.enter(iD.modes.Browse(context));
30805
30806             step = newStep;
30807             step.enter();
30808
30809             entered.classed('active', function(d) {
30810                 return d.title === step.title;
30811             });
30812         }
30813
30814     }
30815     return intro;
30816 };
30817
30818 iD.ui.intro.pointBox = function(point, context) {
30819     var rect = context.surfaceRect();
30820     point = context.projection(point);
30821     return {
30822         left: point[0] + rect.left - 30,
30823         top: point[1] + rect.top - 50,
30824         width: 60,
30825         height: 70
30826     };
30827 };
30828
30829 iD.ui.intro.pad = function(box, padding, context) {
30830     if (box instanceof Array) {
30831         var rect = context.surfaceRect();
30832         box = context.projection(box);
30833         box = {
30834             left: box[0] + rect.left,
30835             top: box[1] + rect.top
30836         };
30837     }
30838     return {
30839         left: box.left - padding,
30840         top: box.top - padding,
30841         width: (box.width || 0) + 2 * padding,
30842         height: (box.width || 0) + 2 * padding
30843     };
30844 };
30845 iD.ui.Lasso = function(context) {
30846
30847     var box, group,
30848         a = [0, 0],
30849         b = [0, 0];
30850
30851     function lasso(selection) {
30852
30853         context.container().classed('lasso', true);
30854
30855         group = selection.append('g')
30856             .attr('class', 'lasso hide');
30857
30858         box = group.append('rect')
30859             .attr('class', 'lasso-box');
30860
30861         group.call(iD.ui.Toggle(true));
30862
30863     }
30864
30865     // top-left
30866     function topLeft(d) {
30867         return 'translate(' + Math.min(d[0][0], d[1][0]) + ',' + Math.min(d[0][1], d[1][1]) + ')';
30868     }
30869
30870     function width(d) { return Math.abs(d[0][0] - d[1][0]); }
30871     function height(d) { return Math.abs(d[0][1] - d[1][1]); }
30872
30873     function draw() {
30874         if (box) {
30875             box.data([[a, b]])
30876                 .attr('transform', topLeft)
30877                 .attr('width', width)
30878                 .attr('height', height);
30879         }
30880     }
30881
30882     lasso.a = function(_) {
30883         if (!arguments.length) return a;
30884         a = _;
30885         draw();
30886         return lasso;
30887     };
30888
30889     lasso.b = function(_) {
30890         if (!arguments.length) return b;
30891         b = _;
30892         draw();
30893         return lasso;
30894     };
30895
30896     lasso.close = function() {
30897         if (group) {
30898             group.call(iD.ui.Toggle(false, function() {
30899                 d3.select(this).remove();
30900             }));
30901         }
30902         context.container().classed('lasso', false);
30903     };
30904
30905     return lasso;
30906 };
30907 iD.ui.Loading = function(context) {
30908     var message = '',
30909         blocking = false,
30910         modal;
30911
30912     var loading = function(selection) {
30913         modal = iD.ui.modal(selection, blocking);
30914
30915         var loadertext = modal.select('.content')
30916             .classed('loading-modal', true)
30917             .append('div')
30918             .attr('class', 'modal-section fillL');
30919
30920         loadertext.append('img')
30921             .attr('class', 'loader')
30922             .attr('src', context.imagePath('loader-white.gif'));
30923
30924         loadertext.append('h3')
30925             .text(message);
30926
30927         modal.select('button.close')
30928             .attr('class', 'hide');
30929
30930         return loading;
30931     };
30932
30933     loading.message = function(_) {
30934         if (!arguments.length) return message;
30935         message = _;
30936         return loading;
30937     };
30938
30939     loading.blocking = function(_) {
30940         if (!arguments.length) return blocking;
30941         blocking = _;
30942         return loading;
30943     };
30944
30945     loading.close = function() {
30946         modal.remove();
30947     };
30948
30949     return loading;
30950 };
30951 iD.ui.MapData = function(context) {
30952     var key = 'F',
30953         features = context.features().keys(),
30954         fills = ['wireframe', 'partial', 'full'],
30955         fillDefault = context.storage('area-fill') || 'partial',
30956         fillSelected = fillDefault;
30957
30958     function map_data(selection) {
30959
30960         function showsFeature(d) {
30961             return context.features().enabled(d);
30962         }
30963
30964         function autoHiddenFeature(d) {
30965             return context.features().autoHidden(d);
30966         }
30967
30968         function clickFeature(d) {
30969             context.features().toggle(d);
30970             update();
30971         }
30972
30973         function showsFill(d) {
30974             return fillSelected === d;
30975         }
30976
30977         function setFill(d) {
30978             _.each(fills, function(opt) {
30979                 context.surface().classed('fill-' + opt, Boolean(opt === d));
30980             });
30981
30982             fillSelected = d;
30983             if (d !== 'wireframe') {
30984                 fillDefault = d;
30985                 context.storage('area-fill', d);
30986             }
30987             update();
30988         }
30989
30990         function clickGpx() {
30991             context.background().toggleGpxLayer();
30992             update();
30993         }
30994
30995         function clickMapillary() {
30996             context.background().toggleMapillaryLayer();
30997             update();
30998         }
30999
31000         function drawList(selection, data, type, name, change, active) {
31001             var items = selection.selectAll('li')
31002                 .data(data);
31003
31004             //enter
31005             var enter = items.enter()
31006                 .append('li')
31007                 .attr('class', 'layer')
31008                 .call(bootstrap.tooltip()
31009                     .html(true)
31010                     .title(function(d) {
31011                         var tip = t(name + '.' + d + '.tooltip'),
31012                             key = (d === 'wireframe' ? 'W' : null);
31013
31014                         if (name === 'feature' && autoHiddenFeature(d)) {
31015                             tip += '<div>' + t('map_data.autohidden') + '</div>';
31016                         }
31017                         return iD.ui.tooltipHtml(tip, key);
31018                     })
31019                     .placement('top')
31020                 );
31021
31022             var label = enter.append('label');
31023
31024             label.append('input')
31025                 .attr('type', type)
31026                 .attr('name', name)
31027                 .on('change', change);
31028
31029             label.append('span')
31030                 .text(function(d) { return t(name + '.' + d + '.description'); });
31031
31032             //update
31033             items
31034                 .classed('active', active)
31035                 .selectAll('input')
31036                 .property('checked', active)
31037                 .property('indeterminate', function(d) {
31038                     return (name === 'feature' && autoHiddenFeature(d));
31039                 });
31040
31041             //exit
31042             items.exit()
31043                 .remove();
31044         }
31045
31046         function update() {
31047             featureList.call(drawList, features, 'checkbox', 'feature', clickFeature, showsFeature);
31048             fillList.call(drawList, fills, 'radio', 'area_fill', setFill, showsFill);
31049
31050             var hasGpx = context.background().hasGpxLayer(),
31051                 showsGpx = context.background().showsGpxLayer(),
31052                 showsMapillary = context.background().showsMapillaryLayer();
31053
31054             gpxLayerItem
31055                 .classed('active', showsGpx)
31056                 .selectAll('input')
31057                 .property('disabled', !hasGpx)
31058                 .property('checked', showsGpx);
31059
31060             mapillaryLayerItem
31061                 .classed('active', showsMapillary)
31062                 .selectAll('input')
31063                 .property('checked', showsMapillary);
31064         }
31065
31066         function hidePanel() { setVisible(false); }
31067
31068         function togglePanel() {
31069             if (d3.event) d3.event.preventDefault();
31070             tooltip.hide(button);
31071             setVisible(!button.classed('active'));
31072         }
31073
31074         function toggleWireframe() {
31075             if (d3.event) {
31076                 d3.event.preventDefault();
31077                 d3.event.stopPropagation();
31078             }
31079             setFill((fillSelected === 'wireframe' ? fillDefault : 'wireframe'));
31080             context.map().pan([0,0]);  // trigger a redraw
31081         }
31082
31083         function setVisible(show) {
31084             if (show !== shown) {
31085                 button.classed('active', show);
31086                 shown = show;
31087
31088                 if (show) {
31089                     selection.on('mousedown.map_data-inside', function() {
31090                         return d3.event.stopPropagation();
31091                     });
31092                     content.style('display', 'block')
31093                         .style('right', '-300px')
31094                         .transition()
31095                         .duration(200)
31096                         .style('right', '0px');
31097                 } else {
31098                     content.style('display', 'block')
31099                         .style('right', '0px')
31100                         .transition()
31101                         .duration(200)
31102                         .style('right', '-300px')
31103                         .each('end', function() {
31104                             d3.select(this).style('display', 'none');
31105                         });
31106                     selection.on('mousedown.map_data-inside', null);
31107                 }
31108             }
31109         }
31110
31111
31112         var content = selection.append('div')
31113                 .attr('class', 'fillL map-overlay col3 content hide'),
31114             tooltip = bootstrap.tooltip()
31115                 .placement('left')
31116                 .html(true)
31117                 .title(iD.ui.tooltipHtml(t('map_data.description'), key)),
31118             button = selection.append('button')
31119                 .attr('tabindex', -1)
31120                 .on('click', togglePanel)
31121                 .call(tooltip),
31122             shown = false;
31123
31124         button.append('span')
31125             .attr('class', 'icon data light');
31126
31127         content.append('h4')
31128             .text(t('map_data.title'));
31129
31130
31131         // data layers
31132         content.append('a')
31133             .text(t('map_data.data_layers'))
31134             .attr('href', '#')
31135             .classed('hide-toggle', true)
31136             .classed('expanded', true)
31137             .on('click', function() {
31138                 var exp = d3.select(this).classed('expanded');
31139                 layerContainer.style('display', exp ? 'none' : 'block');
31140                 d3.select(this).classed('expanded', !exp);
31141                 d3.event.preventDefault();
31142             });
31143
31144         var layerContainer = content.append('div')
31145             .attr('class', 'filters')
31146             .style('display', 'block');
31147
31148         // mapillary
31149         var mapillaryLayerItem = layerContainer.append('ul')
31150             .attr('class', 'layer-list')
31151             .append('li');
31152
31153         var label = mapillaryLayerItem.append('label')
31154             .call(bootstrap.tooltip()
31155                 .title(t('mapillary.tooltip'))
31156                 .placement('top'));
31157
31158         label.append('input')
31159             .attr('type', 'checkbox')
31160             .on('change', clickMapillary);
31161
31162         label.append('span')
31163             .text(t('mapillary.title'));
31164
31165         // gpx
31166         var gpxLayerItem = layerContainer.append('ul')
31167             .style('display', iD.detect().filedrop ? 'block' : 'none')
31168             .attr('class', 'layer-list')
31169             .append('li')
31170             .classed('layer-toggle-gpx', true);
31171
31172         gpxLayerItem.append('button')
31173             .attr('class', 'layer-extent')
31174             .call(bootstrap.tooltip()
31175                 .title(t('gpx.zoom'))
31176                 .placement('left'))
31177             .on('click', function() {
31178                 d3.event.preventDefault();
31179                 d3.event.stopPropagation();
31180                 context.background().zoomToGpxLayer();
31181             })
31182             .append('span')
31183             .attr('class', 'icon geolocate');
31184
31185         gpxLayerItem.append('button')
31186             .attr('class', 'layer-browse')
31187             .call(bootstrap.tooltip()
31188                 .title(t('gpx.browse'))
31189                 .placement('left'))
31190             .on('click', function() {
31191                 d3.select(document.createElement('input'))
31192                     .attr('type', 'file')
31193                     .on('change', function() {
31194                         context.background().gpxLayerFiles(d3.event.target.files);
31195                     })
31196                     .node().click();
31197             })
31198             .append('span')
31199             .attr('class', 'icon geocode');
31200
31201         label = gpxLayerItem.append('label')
31202             .call(bootstrap.tooltip()
31203                 .title(t('gpx.drag_drop'))
31204                 .placement('top'));
31205
31206         label.append('input')
31207             .attr('type', 'checkbox')
31208             .property('disabled', true)
31209             .on('change', clickGpx);
31210
31211         label.append('span')
31212             .text(t('gpx.local_layer'));
31213
31214
31215         // area fills
31216         content.append('a')
31217             .text(t('map_data.fill_area'))
31218             .attr('href', '#')
31219             .classed('hide-toggle', true)
31220             .classed('expanded', false)
31221             .on('click', function() {
31222                 var exp = d3.select(this).classed('expanded');
31223                 fillContainer.style('display', exp ? 'none' : 'block');
31224                 d3.select(this).classed('expanded', !exp);
31225                 d3.event.preventDefault();
31226             });
31227
31228         var fillContainer = content.append('div')
31229             .attr('class', 'filters')
31230             .style('display', 'none');
31231
31232         var fillList = fillContainer.append('ul')
31233             .attr('class', 'layer-list');
31234
31235
31236         // feature filters
31237         content.append('a')
31238             .text(t('map_data.map_features'))
31239             .attr('href', '#')
31240             .classed('hide-toggle', true)
31241             .classed('expanded', false)
31242             .on('click', function() {
31243                 var exp = d3.select(this).classed('expanded');
31244                 featureContainer.style('display', exp ? 'none' : 'block');
31245                 d3.select(this).classed('expanded', !exp);
31246                 d3.event.preventDefault();
31247             });
31248
31249         var featureContainer = content.append('div')
31250             .attr('class', 'filters')
31251             .style('display', 'none');
31252
31253         var featureList = featureContainer.append('ul')
31254             .attr('class', 'layer-list');
31255
31256
31257         context.features()
31258             .on('change.map_data-update', update);
31259
31260         setFill(fillDefault);
31261
31262         var keybinding = d3.keybinding('features')
31263             .on(key, togglePanel)
31264             .on('W', toggleWireframe)
31265             .on('B', hidePanel)
31266             .on('H', hidePanel);
31267
31268         d3.select(document)
31269             .call(keybinding);
31270
31271         context.surface().on('mousedown.map_data-outside', hidePanel);
31272         context.container().on('mousedown.map_data-outside', hidePanel);
31273     }
31274
31275     return map_data;
31276 };
31277 iD.ui.MapInMap = function(context) {
31278     var key = '/';
31279
31280     function map_in_map(selection) {
31281         var backgroundLayer = iD.TileLayer(),
31282             overlayLayer = iD.TileLayer(),
31283             projection = iD.geo.RawMercator(),
31284             zoom = d3.behavior.zoom()
31285                 .scaleExtent([ztok(0.5), ztok(24)])
31286                 .on('zoom', zoomPan),
31287             transformed = false,
31288             panning = false,
31289             zDiff = 6,    // by default, minimap renders at (main zoom - 6)
31290             tStart, tLast, tCurr, kLast, kCurr, tiles, svg, timeoutId;
31291
31292         function ztok(z) { return 256 * Math.pow(2, z); }
31293         function ktoz(k) { return Math.log(k) / Math.LN2 - 8; }
31294
31295
31296         function startMouse() {
31297             context.surface().on('mouseup.map-in-map-outside', endMouse);
31298             context.container().on('mouseup.map-in-map-outside', endMouse);
31299
31300             tStart = tLast = tCurr = projection.translate();
31301             panning = true;
31302         }
31303
31304
31305         function zoomPan() {
31306             var e = d3.event.sourceEvent,
31307                 t = d3.event.translate,
31308                 k = d3.event.scale,
31309                 zMain = ktoz(context.projection.scale() * 2 * Math.PI),
31310                 zMini = ktoz(k);
31311
31312             // restrict minimap zoom to < (main zoom - 3)
31313             if (zMini > zMain - 3) {
31314                 zMini = zMain - 3;
31315                 zoom.scale(kCurr).translate(tCurr);  // restore last good values
31316                 return;
31317             }
31318
31319             tCurr = t;
31320             kCurr = k;
31321             zDiff = zMain - zMini;
31322
31323             var scale = kCurr / kLast,
31324                 tX = Math.round((tCurr[0] / scale - tLast[0]) * scale),
31325                 tY = Math.round((tCurr[1] / scale - tLast[1]) * scale);
31326
31327             iD.util.setTransform(tiles, tX, tY, scale);
31328             iD.util.setTransform(svg, 0, 0, scale);
31329             transformed = true;
31330
31331             queueRedraw();
31332
31333             e.preventDefault();
31334             e.stopPropagation();
31335         }
31336
31337
31338         function endMouse() {
31339             context.surface().on('mouseup.map-in-map-outside', null);
31340             context.container().on('mouseup.map-in-map-outside', null);
31341
31342             updateProjection();
31343             panning = false;
31344
31345             if (tCurr[0] !== tStart[0] && tCurr[1] !== tStart[1]) {
31346                 var dMini = selection.dimensions(),
31347                     cMini = [ dMini[0] / 2, dMini[1] / 2 ];
31348
31349                 context.map().center(projection.invert(cMini));
31350             }
31351         }
31352
31353
31354         function updateProjection() {
31355             var loc = context.map().center(),
31356                 dMini = selection.dimensions(),
31357                 cMini = [ dMini[0] / 2, dMini[1] / 2 ],
31358                 tMain = context.projection.translate(),
31359                 kMain = context.projection.scale(),
31360                 zMain = ktoz(kMain * 2 * Math.PI),
31361                 zMini = Math.max(zMain - zDiff, 0.5),
31362                 kMini = ztok(zMini);
31363
31364             projection
31365                 .translate(tMain)
31366                 .scale(kMini / (2 * Math.PI));
31367
31368             var s = projection(loc),
31369                 mouse = panning ? [ tCurr[0] - tStart[0], tCurr[1] - tStart[1] ] : [0, 0],
31370                 tMini = [
31371                     cMini[0] - s[0] + tMain[0] + mouse[0],
31372                     cMini[1] - s[1] + tMain[1] + mouse[1]
31373                 ];
31374
31375             projection
31376                 .translate(tMini)
31377                 .clipExtent([[0, 0], dMini]);
31378
31379             zoom
31380                 .center(cMini)
31381                 .translate(tMini)
31382                 .scale(kMini);
31383
31384             tLast = tCurr = tMini;
31385             kLast = kCurr = kMini;
31386
31387             if (transformed) {
31388                 iD.util.setTransform(tiles, 0, 0);
31389                 iD.util.setTransform(svg, 0, 0);
31390                 transformed = false;
31391             }
31392         }
31393
31394
31395         function redraw() {
31396             if (hidden()) return;
31397
31398             updateProjection();
31399
31400             var dMini = selection.dimensions(),
31401                 zMini = ktoz(projection.scale() * 2 * Math.PI);
31402
31403             // setup tile container
31404             tiles = selection
31405                 .selectAll('.map-in-map-tiles')
31406                 .data([0]);
31407
31408             tiles
31409                 .enter()
31410                 .append('div')
31411                 .attr('class', 'map-in-map-tiles');
31412
31413
31414             // redraw background
31415             backgroundLayer
31416                 .source(context.background().baseLayerSource())
31417                 .projection(projection)
31418                 .dimensions(dMini);
31419
31420             var background = tiles
31421                 .selectAll('.map-in-map-background')
31422                 .data([0]);
31423
31424             background.enter()
31425                 .append('div')
31426                 .attr('class', 'map-in-map-background');
31427
31428             background
31429                 .call(backgroundLayer);
31430
31431             // redraw overlay
31432             var overlaySources = context.background().overlayLayerSources(),
31433                 hasOverlay = false;
31434
31435             for (var i = 0; i < overlaySources.length; i++) {
31436                 if (overlaySources[i].validZoom(zMini)) {
31437                     overlayLayer
31438                         .source(overlaySources[i])
31439                         .projection(projection)
31440                         .dimensions(dMini);
31441
31442                     hasOverlay = true;
31443                     break;
31444                 }
31445             }
31446
31447             var overlay = tiles
31448                 .selectAll('.map-in-map-overlay')
31449                 .data(hasOverlay ? [0] : []);
31450
31451             overlay.enter()
31452                 .append('div')
31453                 .attr('class', 'map-in-map-overlay');
31454
31455             overlay.exit()
31456                 .remove();
31457
31458             if (hasOverlay) {
31459                 overlay
31460                     .call(overlayLayer);
31461             }
31462
31463             // redraw bounding box
31464             if (!panning) {
31465                 var getPath = d3.geo.path().projection(projection),
31466                     bbox = { type: 'Polygon', coordinates: [context.map().extent().polygon()] };
31467
31468                 svg = selection.selectAll('.map-in-map-svg')
31469                     .data([0]);
31470
31471                 svg.enter()
31472                     .append('svg')
31473                     .attr('class', 'map-in-map-svg');
31474
31475                 var path = svg.selectAll('.map-in-map-bbox')
31476                     .data([bbox]);
31477
31478                 path.enter()
31479                     .append('path')
31480                     .attr('class', 'map-in-map-bbox');
31481
31482                 path
31483                     .attr('d', getPath)
31484                     .classed('thick', function(d) { return getPath.area(d) < 30; });
31485             }
31486         }
31487
31488
31489         function queueRedraw() {
31490             clearTimeout(timeoutId);
31491             timeoutId = setTimeout(function() { redraw(); }, 300);
31492         }
31493
31494
31495         function hidden() {
31496             return selection.style('display') === 'none';
31497         }
31498
31499
31500         function toggle() {
31501             if (d3.event) d3.event.preventDefault();
31502
31503             if (hidden()) {
31504                 selection
31505                     .style('display', 'block')
31506                     .style('opacity', 0)
31507                     .transition()
31508                     .duration(200)
31509                     .style('opacity', 1);
31510
31511                 redraw();
31512
31513             } else {
31514                 selection
31515                     .style('display', 'block')
31516                     .style('opacity', 1)
31517                     .transition()
31518                     .duration(200)
31519                     .style('opacity', 0)
31520                     .each('end', function() {
31521                         d3.select(this).style('display', 'none');
31522                     });
31523             }
31524         }
31525
31526
31527         selection
31528             .on('mousedown.map-in-map', startMouse)
31529             .on('mouseup.map-in-map', endMouse);
31530
31531         selection
31532             .call(zoom)
31533             .on('dblclick.zoom', null);
31534
31535         context.map()
31536             .on('drawn.map-in-map', function(drawn) {
31537                 if (drawn.full === true) redraw();
31538             });
31539
31540         redraw();
31541
31542         var keybinding = d3.keybinding('map-in-map')
31543             .on(key, toggle);
31544
31545         d3.select(document)
31546             .call(keybinding);
31547     }
31548
31549     return map_in_map;
31550 };
31551 iD.ui.modal = function(selection, blocking) {
31552
31553     var previous = selection.select('div.modal');
31554     var animate = previous.empty();
31555
31556     previous.transition()
31557         .duration(200)
31558         .style('opacity', 0)
31559         .remove();
31560
31561     var shaded = selection
31562         .append('div')
31563         .attr('class', 'shaded')
31564         .style('opacity', 0);
31565
31566     shaded.close = function() {
31567         shaded
31568             .transition()
31569             .duration(200)
31570             .style('opacity',0)
31571             .remove();
31572         modal
31573             .transition()
31574             .duration(200)
31575             .style('top','0px');
31576         keybinding.off();
31577     };
31578
31579     var keybinding = d3.keybinding('modal')
31580         .on('⌫', shaded.close)
31581         .on('⎋', shaded.close);
31582
31583     d3.select(document).call(keybinding);
31584
31585     var modal = shaded.append('div')
31586         .attr('class', 'modal fillL col6');
31587
31588         shaded.on('click.remove-modal', function() {
31589             if (d3.event.target === this && !blocking) shaded.close();
31590         });
31591
31592     modal.append('button')
31593         .attr('class', 'close')
31594         .on('click', function() {
31595             if (!blocking) shaded.close();
31596         })
31597         .append('div')
31598             .attr('class','icon close');
31599
31600     modal.append('div')
31601         .attr('class', 'content');
31602
31603     if (animate) {
31604         shaded.transition().style('opacity', 1);
31605     } else {
31606         shaded.style('opacity', 1);
31607     }
31608
31609     return shaded;
31610 };
31611 iD.ui.Modes = function(context) {
31612     var modes = [
31613         iD.modes.AddPoint(context),
31614         iD.modes.AddLine(context),
31615         iD.modes.AddArea(context)];
31616
31617     function editable() {
31618         return context.editable() && context.mode().id !== 'save';
31619     }
31620
31621     return function(selection) {
31622         var buttons = selection.selectAll('button.add-button')
31623             .data(modes);
31624
31625        buttons.enter().append('button')
31626            .attr('tabindex', -1)
31627            .attr('class', function(mode) { return mode.id + ' add-button col4'; })
31628            .on('click.mode-buttons', function(mode) {
31629                if (mode.id === context.mode().id) {
31630                    context.enter(iD.modes.Browse(context));
31631                } else {
31632                    context.enter(mode);
31633                }
31634            })
31635            .call(bootstrap.tooltip()
31636                .placement('bottom')
31637                .html(true)
31638                .title(function(mode) {
31639                    return iD.ui.tooltipHtml(mode.description, mode.key);
31640                }));
31641
31642         context.map()
31643             .on('move.modes', _.debounce(update, 500));
31644
31645         context
31646             .on('enter.modes', update);
31647
31648         buttons.append('span')
31649             .attr('class', function(mode) { return mode.id + ' icon icon-pre-text'; });
31650
31651         buttons.append('span')
31652             .attr('class', 'label')
31653             .text(function(mode) { return mode.title; });
31654
31655         context.on('enter.editor', function(entered) {
31656             buttons.classed('active', function(mode) { return entered.button === mode.button; });
31657             context.container()
31658                 .classed('mode-' + entered.id, true);
31659         });
31660
31661         context.on('exit.editor', function(exited) {
31662             context.container()
31663                 .classed('mode-' + exited.id, false);
31664         });
31665
31666         var keybinding = d3.keybinding('mode-buttons');
31667
31668         modes.forEach(function(m) {
31669             keybinding.on(m.key, function() { if (editable()) context.enter(m); });
31670         });
31671
31672         d3.select(document)
31673             .call(keybinding);
31674
31675         function update() {
31676             buttons.property('disabled', !editable());
31677         }
31678     };
31679 };
31680 iD.ui.Notice = function(context) {
31681     return function(selection) {
31682         var div = selection.append('div')
31683             .attr('class', 'notice');
31684
31685         var button = div.append('button')
31686             .attr('class', 'zoom-to notice')
31687             .on('click', function() { context.map().zoom(context.minEditableZoom()); });
31688
31689         button.append('span')
31690             .attr('class', 'icon zoom-in-invert');
31691
31692         button.append('span')
31693             .attr('class', 'label')
31694             .text(t('zoom_in_edit'));
31695
31696         function disableTooHigh() {
31697             div.style('display', context.editable() ? 'none' : 'block');
31698         }
31699
31700         context.map()
31701             .on('move.notice', _.debounce(disableTooHigh, 500));
31702
31703         disableTooHigh();
31704     };
31705 };
31706 iD.ui.preset = function(context) {
31707     var event = d3.dispatch('change'),
31708         state,
31709         fields,
31710         preset,
31711         tags,
31712         id;
31713
31714     function UIField(field, entity, show) {
31715         field = _.clone(field);
31716
31717         field.input = iD.ui.preset[field.type](field, context)
31718             .on('change', event.change);
31719
31720         if (field.input.entity) field.input.entity(entity);
31721
31722         field.keys = field.keys || [field.key];
31723
31724         field.show = show;
31725
31726         field.shown = function() {
31727             return field.id === 'name' || field.show || _.any(field.keys, function(key) { return !!tags[key]; });
31728         };
31729
31730         field.modified = function() {
31731             var original = context.graph().base().entities[entity.id];
31732             return _.any(field.keys, function(key) {
31733                 return original ? tags[key] !== original.tags[key] : tags[key];
31734             });
31735         };
31736
31737         field.revert = function() {
31738             var original = context.graph().base().entities[entity.id],
31739                 t = {};
31740             field.keys.forEach(function(key) {
31741                 t[key] = original ? original.tags[key] : undefined;
31742             });
31743             return t;
31744         };
31745
31746         field.present = function() {
31747             return _.any(field.keys, function(key) {
31748                 return tags[key];
31749             });
31750         };
31751
31752         field.remove = function() {
31753             var t = {};
31754             field.keys.forEach(function(key) {
31755                 t[key] = undefined;
31756             });
31757             return t;
31758         };
31759
31760         return field;
31761     }
31762
31763     function fieldKey(field) {
31764         return field.id;
31765     }
31766
31767     function presets(selection) {
31768         if (!fields) {
31769             var entity = context.entity(id),
31770                 geometry = context.geometry(id);
31771
31772             fields = [UIField(context.presets().field('name'), entity)];
31773
31774             preset.fields.forEach(function(field) {
31775                 if (field.matchGeometry(geometry)) {
31776                     fields.push(UIField(field, entity, true));
31777                 }
31778             });
31779
31780             if (entity.isHighwayIntersection(context.graph())) {
31781                 fields.push(UIField(context.presets().field('restrictions'), entity, true));
31782             }
31783
31784             context.presets().universal().forEach(function(field) {
31785                 if (preset.fields.indexOf(field) < 0) {
31786                     fields.push(UIField(field, entity));
31787                 }
31788             });
31789         }
31790
31791         var shown = fields.filter(function(field) { return field.shown(); }),
31792             notShown = fields.filter(function(field) { return !field.shown(); });
31793
31794         var $form = selection.selectAll('.preset-form')
31795             .data([0]);
31796
31797         $form.enter().append('div')
31798             .attr('class', 'preset-form inspector-inner fillL3');
31799
31800         var $fields = $form.selectAll('.form-field')
31801             .data(shown, fieldKey);
31802
31803         // Enter
31804
31805         var $enter = $fields.enter()
31806             .append('div')
31807             .attr('class', function(field) {
31808                 return 'form-field form-field-' + field.id;
31809             });
31810
31811         var $label = $enter.append('label')
31812             .attr('class', 'form-label')
31813             .attr('for', function(field) { return 'preset-input-' + field.id; })
31814             .text(function(field) { return field.label(); });
31815
31816         var wrap = $label.append('div')
31817             .attr('class', 'form-label-button-wrap');
31818
31819         wrap.append('button')
31820             .attr('class', 'remove-icon')
31821             .append('span').attr('class', 'icon delete');
31822
31823         wrap.append('button')
31824             .attr('class', 'modified-icon')
31825             .attr('tabindex', -1)
31826             .append('div')
31827             .attr('class', 'icon undo');
31828
31829         // Update
31830
31831         $fields.select('.form-label-button-wrap .remove-icon')
31832             .on('click', remove);
31833
31834         $fields.select('.modified-icon')
31835             .on('click', revert);
31836
31837         $fields
31838             .order()
31839             .classed('modified', function(field) {
31840                 return field.modified();
31841             })
31842             .classed('present', function(field) {
31843                 return field.present();
31844             })
31845             .each(function(field) {
31846                 var reference = iD.ui.TagReference(field.reference || {key: field.key}, context);
31847
31848                 if (state === 'hover') {
31849                     reference.showing(false);
31850                 }
31851
31852                 d3.select(this)
31853                     .call(field.input)
31854                     .call(reference.body)
31855                     .select('.form-label-button-wrap')
31856                     .call(reference.button);
31857
31858                 field.input.tags(tags);
31859             });
31860
31861         $fields.exit()
31862             .remove();
31863
31864         notShown = notShown.map(function(field) {
31865             return {
31866                 title: field.label(),
31867                 value: field.label(),
31868                 field: field
31869             };
31870         });
31871
31872         var $more = selection.selectAll('.more-fields')
31873             .data((notShown.length > 0) ? [0] : []);
31874
31875         $more.enter().append('div')
31876             .attr('class', 'more-fields')
31877             .append('label')
31878                 .text(t('inspector.add_fields'));
31879
31880         var $input = $more.selectAll('.value')
31881             .data([0]);
31882
31883         $input.enter().append('input')
31884             .attr('class', 'value')
31885             .attr('type', 'text');
31886
31887         $input.value('')
31888             .attr('placeholder', function() {
31889                 var placeholder = [];
31890                 for (var field in notShown) {
31891                     placeholder.push(notShown[field].title);
31892                 }
31893                 return placeholder.slice(0,3).join(', ') + ((placeholder.length > 3) ? '…' : '');
31894             })
31895             .call(d3.combobox().data(notShown)
31896                 .minItems(1)
31897                 .on('accept', show));
31898
31899         $more.exit()
31900             .remove();
31901
31902         $input.exit()
31903             .remove();
31904
31905         function show(field) {
31906             field = field.field;
31907             field.show = true;
31908             presets(selection);
31909             field.input.focus();
31910         }
31911
31912         function revert(field) {
31913             d3.event.stopPropagation();
31914             d3.event.preventDefault();
31915             event.change(field.revert());
31916         }
31917
31918         function remove(field) {
31919             d3.event.stopPropagation();
31920             d3.event.preventDefault();
31921             event.change(field.remove());
31922         }
31923     }
31924
31925     presets.preset = function(_) {
31926         if (!arguments.length) return preset;
31927         if (preset && preset.id === _.id) return presets;
31928         preset = _;
31929         fields = null;
31930         return presets;
31931     };
31932
31933     presets.state = function(_) {
31934         if (!arguments.length) return state;
31935         state = _;
31936         return presets;
31937     };
31938
31939     presets.tags = function(_) {
31940         if (!arguments.length) return tags;
31941         tags = _;
31942         // Don't reset fields here.
31943         return presets;
31944     };
31945
31946     presets.entityID = function(_) {
31947         if (!arguments.length) return id;
31948         if (id === _) return presets;
31949         id = _;
31950         fields = null;
31951         return presets;
31952     };
31953
31954     return d3.rebind(presets, event, 'on');
31955 };
31956 iD.ui.PresetIcon = function() {
31957     var preset, geometry;
31958
31959     function presetIcon(selection) {
31960         selection.each(setup);
31961     }
31962
31963     function setup() {
31964         var selection = d3.select(this),
31965             p = preset.apply(this, arguments),
31966             geom = geometry.apply(this, arguments);
31967
31968         var $fill = selection.selectAll('.preset-icon-fill')
31969             .data([0]);
31970
31971         $fill.enter().append('div');
31972
31973         $fill.attr('class', function() {
31974             var s = 'preset-icon-fill preset-icon-fill-' + geom;
31975             for (var i in p.tags) {
31976                 s += ' tag-' + i + ' tag-' + i + '-' + p.tags[i];
31977             }
31978             return s;
31979         });
31980
31981         var $icon = selection.selectAll('.preset-icon')
31982             .data([0]);
31983
31984         $icon.enter().append('div');
31985
31986         $icon.attr('class', function() {
31987             var icon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked'),
31988                 klass = 'feature-' + icon + ' preset-icon';
31989
31990             var featureicon = iD.data.featureIcons[icon];
31991             if (featureicon && featureicon[geom]) {
31992                 klass += ' preset-icon-' + geom;
31993             } else if (icon === 'multipolygon') {
31994                 // Special case (geometry === 'area')
31995                 klass += ' preset-icon-relation';
31996             }
31997
31998             return klass;
31999         });
32000     }
32001
32002     presetIcon.preset = function(_) {
32003         if (!arguments.length) return preset;
32004         preset = d3.functor(_);
32005         return presetIcon;
32006     };
32007
32008     presetIcon.geometry = function(_) {
32009         if (!arguments.length) return geometry;
32010         geometry = d3.functor(_);
32011         return presetIcon;
32012     };
32013
32014     return presetIcon;
32015 };
32016 iD.ui.PresetList = function(context) {
32017     var event = d3.dispatch('choose'),
32018         id,
32019         currentPreset,
32020         autofocus = false;
32021
32022     function presetList(selection) {
32023         var geometry = context.geometry(id),
32024             presets = context.presets().matchGeometry(geometry);
32025
32026         selection.html('');
32027
32028         var messagewrap = selection.append('div')
32029             .attr('class', 'header fillL cf');
32030
32031         var message = messagewrap.append('h3')
32032             .text(t('inspector.choose'));
32033
32034         if (context.entity(id).isUsed(context.graph())) {
32035             messagewrap.append('button')
32036                 .attr('class', 'preset-choose')
32037                 .on('click', function() { event.choose(currentPreset); })
32038                 .append('span')
32039                 .attr('class', 'icon forward');
32040         } else {
32041             messagewrap.append('button')
32042                 .attr('class', 'close')
32043                 .on('click', function() {
32044                     context.enter(iD.modes.Browse(context));
32045                 })
32046                 .append('span')
32047                 .attr('class', 'icon close');
32048         }
32049
32050         function keydown() {
32051             // hack to let delete shortcut work when search is autofocused
32052             if (search.property('value').length === 0 &&
32053                 (d3.event.keyCode === d3.keybinding.keyCodes['⌫'] ||
32054                  d3.event.keyCode === d3.keybinding.keyCodes['⌦'])) {
32055                 d3.event.preventDefault();
32056                 d3.event.stopPropagation();
32057                 iD.operations.Delete([id], context)();
32058             } else if (search.property('value').length === 0 &&
32059                 (d3.event.ctrlKey || d3.event.metaKey) &&
32060                 d3.event.keyCode === d3.keybinding.keyCodes.z) {
32061                 d3.event.preventDefault();
32062                 d3.event.stopPropagation();
32063                 context.undo();
32064             } else if (!d3.event.ctrlKey && !d3.event.metaKey) {
32065                 d3.select(this).on('keydown', null);
32066             }
32067         }
32068
32069         function keypress() {
32070             // enter
32071             var value = search.property('value');
32072             if (d3.event.keyCode === 13 && value.length) {
32073                 list.selectAll('.preset-list-item:first-child').datum().choose();
32074             }
32075         }
32076
32077         function inputevent() {
32078             var value = search.property('value');
32079             list.classed('filtered', value.length);
32080             if (value.length) {
32081                 var results = presets.search(value, geometry);
32082                 message.text(t('inspector.results', {
32083                     n: results.collection.length,
32084                     search: value
32085                 }));
32086                 list.call(drawList, results);
32087             } else {
32088                 list.call(drawList, context.presets().defaults(geometry, 36));
32089                 message.text(t('inspector.choose'));
32090             }
32091         }
32092
32093         var searchWrap = selection.append('div')
32094             .attr('class', 'search-header');
32095
32096         var search = searchWrap.append('input')
32097             .attr('class', 'preset-search-input')
32098             .attr('placeholder', t('inspector.search'))
32099             .attr('type', 'search')
32100             .on('keydown', keydown)
32101             .on('keypress', keypress)
32102             .on('input', inputevent);
32103
32104         searchWrap.append('span')
32105             .attr('class', 'icon search');
32106
32107         if (autofocus) {
32108             search.node().focus();
32109         }
32110
32111         var listWrap = selection.append('div')
32112             .attr('class', 'inspector-body');
32113
32114         var list = listWrap.append('div')
32115             .attr('class', 'preset-list fillL cf')
32116             .call(drawList, context.presets().defaults(geometry, 36));
32117     }
32118
32119     function drawList(list, presets) {
32120         var collection = presets.collection.map(function(preset) {
32121             return preset.members ? CategoryItem(preset) : PresetItem(preset);
32122         });
32123
32124         var items = list.selectAll('.preset-list-item')
32125             .data(collection, function(d) { return d.preset.id; });
32126
32127         items.enter().append('div')
32128             .attr('class', function(item) { return 'preset-list-item preset-' + item.preset.id.replace('/', '-'); })
32129             .classed('current', function(item) { return item.preset === currentPreset; })
32130             .each(function(item) {
32131                 d3.select(this).call(item);
32132             })
32133             .style('opacity', 0)
32134             .transition()
32135             .style('opacity', 1);
32136
32137         items.order();
32138
32139         items.exit()
32140             .remove();
32141     }
32142
32143     function CategoryItem(preset) {
32144         var box, sublist, shown = false;
32145
32146         function item(selection) {
32147             var wrap = selection.append('div')
32148                 .attr('class', 'preset-list-button-wrap category col12');
32149
32150             wrap.append('button')
32151                 .attr('class', 'preset-list-button')
32152                 .call(iD.ui.PresetIcon()
32153                     .geometry(context.geometry(id))
32154                     .preset(preset))
32155                 .on('click', item.choose)
32156                 .append('div')
32157                 .attr('class', 'label')
32158                 .text(preset.name());
32159
32160             box = selection.append('div')
32161                 .attr('class', 'subgrid col12')
32162                 .style('max-height', '0px')
32163                 .style('opacity', 0);
32164
32165             box.append('div')
32166                 .attr('class', 'arrow');
32167
32168             sublist = box.append('div')
32169                 .attr('class', 'preset-list fillL3 cf fl');
32170         }
32171
32172         item.choose = function() {
32173             if (shown) {
32174                 shown = false;
32175                 box.transition()
32176                     .duration(200)
32177                     .style('opacity', '0')
32178                     .style('max-height', '0px')
32179                     .style('padding-bottom', '0px');
32180             } else {
32181                 shown = true;
32182                 sublist.call(drawList, preset.members);
32183                 box.transition()
32184                     .duration(200)
32185                     .style('opacity', '1')
32186                     .style('max-height', 200 + preset.members.collection.length * 80 + 'px')
32187                     .style('padding-bottom', '20px');
32188             }
32189         };
32190
32191         item.preset = preset;
32192
32193         return item;
32194     }
32195
32196     function PresetItem(preset) {
32197         function item(selection) {
32198             var wrap = selection.append('div')
32199                 .attr('class', 'preset-list-button-wrap col12');
32200
32201             wrap.append('button')
32202                 .attr('class', 'preset-list-button')
32203                 .call(iD.ui.PresetIcon()
32204                     .geometry(context.geometry(id))
32205                     .preset(preset))
32206                 .on('click', item.choose)
32207                 .append('div')
32208                 .attr('class', 'label')
32209                 .text(preset.name());
32210
32211             wrap.call(item.reference.button);
32212             selection.call(item.reference.body);
32213         }
32214
32215         item.choose = function() {
32216             context.presets().choose(preset);
32217
32218             context.perform(
32219                 iD.actions.ChangePreset(id, currentPreset, preset),
32220                 t('operations.change_tags.annotation'));
32221
32222             event.choose(preset);
32223         };
32224
32225         item.help = function() {
32226             d3.event.stopPropagation();
32227             item.reference.toggle();
32228         };
32229
32230         item.preset = preset;
32231         item.reference = iD.ui.TagReference(preset.reference(context.geometry(id)), context);
32232
32233         return item;
32234     }
32235
32236     presetList.autofocus = function(_) {
32237         if (!arguments.length) return autofocus;
32238         autofocus = _;
32239         return presetList;
32240     };
32241
32242     presetList.entityID = function(_) {
32243         if (!arguments.length) return id;
32244         id = _;
32245         presetList.preset(context.presets().match(context.entity(id), context.graph()));
32246         return presetList;
32247     };
32248
32249     presetList.preset = function(_) {
32250         if (!arguments.length) return currentPreset;
32251         currentPreset = _;
32252         return presetList;
32253     };
32254
32255     return d3.rebind(presetList, event, 'on');
32256 };
32257 iD.ui.RadialMenu = function(context, operations) {
32258     var menu,
32259         center = [0, 0],
32260         tooltip;
32261
32262     var radialMenu = function(selection) {
32263         if (!operations.length)
32264             return;
32265
32266         selection.node().parentNode.focus();
32267
32268         function click(operation) {
32269             d3.event.stopPropagation();
32270             if (operation.disabled())
32271                 return;
32272             operation();
32273             radialMenu.close();
32274         }
32275
32276         menu = selection.append('g')
32277             .attr('class', 'radial-menu')
32278             .attr('transform', 'translate(' + center + ')')
32279             .attr('opacity', 0);
32280
32281         menu.transition()
32282             .attr('opacity', 1);
32283
32284         var r = 50,
32285             a = Math.PI / 4,
32286             a0 = -Math.PI / 4,
32287             a1 = a0 + (operations.length - 1) * a;
32288
32289         menu.append('path')
32290             .attr('class', 'radial-menu-background')
32291             .attr('d', 'M' + r * Math.sin(a0) + ',' +
32292                              r * Math.cos(a0) +
32293                       ' A' + r + ',' + r + ' 0 ' + (operations.length > 5 ? '1' : '0') + ',0 ' +
32294                              (r * Math.sin(a1) + 1e-3) + ',' +
32295                              (r * Math.cos(a1) + 1e-3)) // Force positive-length path (#1305)
32296             .attr('stroke-width', 50)
32297             .attr('stroke-linecap', 'round');
32298
32299         var button = menu.selectAll()
32300             .data(operations)
32301             .enter().append('g')
32302             .attr('transform', function(d, i) {
32303                 return 'translate(' + r * Math.sin(a0 + i * a) + ',' +
32304                                       r * Math.cos(a0 + i * a) + ')';
32305             });
32306
32307         button.append('circle')
32308             .attr('class', function(d) { return 'radial-menu-item radial-menu-item-' + d.id; })
32309             .attr('r', 15)
32310             .classed('disabled', function(d) { return d.disabled(); })
32311             .on('click', click)
32312             .on('mousedown', mousedown)
32313             .on('mouseover', mouseover)
32314             .on('mouseout', mouseout);
32315
32316         button.append('use')
32317             .attr('transform', 'translate(-10, -10)')
32318             .attr('clip-path', 'url(#clip-square-20)')
32319             .attr('xlink:href', function(d) { return '#icon-operation-' + (d.disabled() ? 'disabled-' : '') + d.id; });
32320
32321         tooltip = d3.select(document.body)
32322             .append('div')
32323             .attr('class', 'tooltip-inner radial-menu-tooltip');
32324
32325         function mousedown() {
32326             d3.event.stopPropagation(); // https://github.com/openstreetmap/iD/issues/1869
32327         }
32328
32329         function mouseover(d, i) {
32330             var rect = context.surfaceRect(),
32331                 angle = a0 + i * a,
32332                 top = rect.top + (r + 25) * Math.cos(angle) + center[1] + 'px',
32333                 left = rect.left + (r + 25) * Math.sin(angle) + center[0] + 'px',
32334                 bottom = rect.height - (r + 25) * Math.cos(angle) - center[1] + 'px',
32335                 right = rect.width - (r + 25) * Math.sin(angle) - center[0] + 'px';
32336
32337             tooltip
32338                 .style('top', null)
32339                 .style('left', null)
32340                 .style('bottom', null)
32341                 .style('right', null)
32342                 .style('display', 'block')
32343                 .html(iD.ui.tooltipHtml(d.tooltip(), d.keys[0]));
32344
32345             if (i === 0) {
32346                 tooltip
32347                     .style('right', right)
32348                     .style('top', top);
32349             } else if (i >= 4) {
32350                 tooltip
32351                     .style('left', left)
32352                     .style('bottom', bottom);
32353             } else {
32354                 tooltip
32355                     .style('left', left)
32356                     .style('top', top);
32357             }
32358         }
32359
32360         function mouseout() {
32361             tooltip.style('display', 'none');
32362         }
32363     };
32364
32365     radialMenu.close = function() {
32366         if (menu) {
32367             menu
32368                 .style('pointer-events', 'none')
32369                 .transition()
32370                 .attr('opacity', 0)
32371                 .remove();
32372         }
32373
32374         if (tooltip) {
32375             tooltip.remove();
32376         }
32377     };
32378
32379     radialMenu.center = function(_) {
32380         if (!arguments.length) return center;
32381         center = _;
32382         return radialMenu;
32383     };
32384
32385     return radialMenu;
32386 };
32387 iD.ui.RawMemberEditor = function(context) {
32388     var id;
32389
32390     function selectMember(d) {
32391         d3.event.preventDefault();
32392         context.enter(iD.modes.Select(context, [d.id]));
32393     }
32394
32395     function changeRole(d) {
32396         var role = d3.select(this).property('value');
32397         context.perform(
32398             iD.actions.ChangeMember(d.relation.id, _.extend({}, d.id, {role: role}), d.index),
32399             t('operations.change_role.annotation'));
32400     }
32401
32402     function deleteMember(d) {
32403         context.perform(
32404             iD.actions.DeleteMember(d.relation.id, d.index),
32405             t('operations.delete_member.annotation'));
32406
32407         if (!context.hasEntity(d.relation.id)) {
32408             context.enter(iD.modes.Browse(context));
32409         }
32410     }
32411
32412     function rawMemberEditor(selection) {
32413         var entity = context.entity(id),
32414             memberships = [];
32415
32416         entity.members.forEach(function(member, index) {
32417             memberships.push({
32418                 index: index,
32419                 id: member.id,
32420                 role: member.role,
32421                 relation: entity,
32422                 member: context.hasEntity(member.id)
32423             });
32424         });
32425
32426         selection.call(iD.ui.Disclosure()
32427             .title(t('inspector.all_members') + ' (' + memberships.length + ')')
32428             .expanded(true)
32429             .on('toggled', toggled)
32430             .content(content));
32431
32432         function toggled(expanded) {
32433             if (expanded) {
32434                 selection.node().parentNode.scrollTop += 200;
32435             }
32436         }
32437
32438         function content($wrap) {
32439             var $list = $wrap.selectAll('.member-list')
32440                 .data([0]);
32441
32442             $list.enter().append('ul')
32443                 .attr('class', 'member-list');
32444
32445             var $items = $list.selectAll('li')
32446                 .data(memberships, function(d) {
32447                     return iD.Entity.key(d.relation) + ',' + d.index + ',' +
32448                         (d.member ? iD.Entity.key(d.member) : 'incomplete');
32449                 });
32450
32451             var $enter = $items.enter().append('li')
32452                 .attr('class', 'member-row form-field')
32453                 .classed('member-incomplete', function(d) { return !d.member; });
32454
32455             $enter.each(function(d) {
32456                 if (d.member) {
32457                     var $label = d3.select(this).append('label')
32458                         .attr('class', 'form-label')
32459                         .append('a')
32460                         .attr('href', '#')
32461                         .on('click', selectMember);
32462
32463                     $label.append('span')
32464                         .attr('class', 'member-entity-type')
32465                         .text(function(d) { return context.presets().match(d.member, context.graph()).name(); });
32466
32467                     $label.append('span')
32468                         .attr('class', 'member-entity-name')
32469                         .text(function(d) { return iD.util.displayName(d.member); });
32470
32471                 } else {
32472                     d3.select(this).append('label')
32473                         .attr('class', 'form-label')
32474                         .text(t('inspector.incomplete'));
32475                 }
32476             });
32477
32478             $enter.append('input')
32479                 .attr('class', 'member-role')
32480                 .property('type', 'text')
32481                 .attr('maxlength', 255)
32482                 .attr('placeholder', t('inspector.role'))
32483                 .property('value', function(d) { return d.role; })
32484                 .on('change', changeRole);
32485
32486             $enter.append('button')
32487                 .attr('tabindex', -1)
32488                 .attr('class', 'remove button-input-action member-delete minor')
32489                 .on('click', deleteMember)
32490                 .append('span')
32491                 .attr('class', 'icon delete');
32492
32493             $items.exit()
32494                 .remove();
32495         }
32496     }
32497
32498     rawMemberEditor.entityID = function(_) {
32499         if (!arguments.length) return id;
32500         id = _;
32501         return rawMemberEditor;
32502     };
32503
32504     return rawMemberEditor;
32505 };
32506 iD.ui.RawMembershipEditor = function(context) {
32507     var id, showBlank;
32508
32509     function selectRelation(d) {
32510         d3.event.preventDefault();
32511         context.enter(iD.modes.Select(context, [d.relation.id]));
32512     }
32513
32514     function changeRole(d) {
32515         var role = d3.select(this).property('value');
32516         context.perform(
32517             iD.actions.ChangeMember(d.relation.id, _.extend({}, d.member, {role: role}), d.index),
32518             t('operations.change_role.annotation'));
32519     }
32520
32521     function addMembership(d, role) {
32522         showBlank = false;
32523
32524         if (d.relation) {
32525             context.perform(
32526                 iD.actions.AddMember(d.relation.id, {id: id, type: context.entity(id).type, role: role}),
32527                 t('operations.add_member.annotation'));
32528
32529         } else {
32530             var relation = iD.Relation();
32531
32532             context.perform(
32533                 iD.actions.AddEntity(relation),
32534                 iD.actions.AddMember(relation.id, {id: id, type: context.entity(id).type, role: role}),
32535                 t('operations.add.annotation.relation'));
32536
32537             context.enter(iD.modes.Select(context, [relation.id]));
32538         }
32539     }
32540
32541     function deleteMembership(d) {
32542         context.perform(
32543             iD.actions.DeleteMember(d.relation.id, d.index),
32544             t('operations.delete_member.annotation'));
32545     }
32546
32547     function relations(q) {
32548         var newRelation = {
32549                 relation: null,
32550                 value: t('inspector.new_relation')
32551             },
32552             result = [],
32553             graph = context.graph();
32554
32555         context.intersects(context.extent()).forEach(function(entity) {
32556             if (entity.type !== 'relation' || entity.id === id)
32557                 return;
32558
32559             var presetName = context.presets().match(entity, graph).name(),
32560                 entityName = iD.util.displayName(entity) || '';
32561
32562             var value = presetName + ' ' + entityName;
32563             if (q && value.toLowerCase().indexOf(q.toLowerCase()) === -1)
32564                 return;
32565
32566             result.push({
32567                 relation: entity,
32568                 value: value
32569             });
32570         });
32571
32572         result.sort(function(a, b) {
32573             return iD.Relation.creationOrder(a.relation, b.relation);
32574         });
32575         result.unshift(newRelation);
32576
32577         return result;
32578     }
32579
32580     function rawMembershipEditor(selection) {
32581         var entity = context.entity(id),
32582             memberships = [];
32583
32584         context.graph().parentRelations(entity).forEach(function(relation) {
32585             relation.members.forEach(function(member, index) {
32586                 if (member.id === entity.id) {
32587                     memberships.push({relation: relation, member: member, index: index});
32588                 }
32589             });
32590         });
32591
32592         selection.call(iD.ui.Disclosure()
32593             .title(t('inspector.all_relations') + ' (' + memberships.length + ')')
32594             .expanded(true)
32595             .on('toggled', toggled)
32596             .content(content));
32597
32598         function toggled(expanded) {
32599             if (expanded) {
32600                 selection.node().parentNode.scrollTop += 200;
32601             }
32602         }
32603
32604         function content($wrap) {
32605             var $list = $wrap.selectAll('.member-list')
32606                 .data([0]);
32607
32608             $list.enter().append('ul')
32609                 .attr('class', 'member-list');
32610
32611             var $items = $list.selectAll('li.member-row-normal')
32612                 .data(memberships, function(d) { return iD.Entity.key(d.relation) + ',' + d.index; });
32613
32614             var $enter = $items.enter().append('li')
32615                 .attr('class', 'member-row member-row-normal form-field');
32616
32617             var $label = $enter.append('label')
32618                 .attr('class', 'form-label')
32619                 .append('a')
32620                 .attr('href', '#')
32621                 .on('click', selectRelation);
32622
32623             $label.append('span')
32624                 .attr('class', 'member-entity-type')
32625                 .text(function(d) { return context.presets().match(d.relation, context.graph()).name(); });
32626
32627             $label.append('span')
32628                 .attr('class', 'member-entity-name')
32629                 .text(function(d) { return iD.util.displayName(d.relation); });
32630
32631             $enter.append('input')
32632                 .attr('class', 'member-role')
32633                 .property('type', 'text')
32634                 .attr('maxlength', 255)
32635                 .attr('placeholder', t('inspector.role'))
32636                 .property('value', function(d) { return d.member.role; })
32637                 .on('change', changeRole);
32638
32639             $enter.append('button')
32640                 .attr('tabindex', -1)
32641                 .attr('class', 'remove button-input-action member-delete minor')
32642                 .on('click', deleteMembership)
32643                 .append('span')
32644                 .attr('class', 'icon delete');
32645
32646             $items.exit()
32647                 .remove();
32648
32649             if (showBlank) {
32650                 var $new = $list.selectAll('.member-row-new')
32651                     .data([0]);
32652
32653                 $enter = $new.enter().append('li')
32654                     .attr('class', 'member-row member-row-new form-field');
32655
32656                 $enter.append('input')
32657                     .attr('type', 'text')
32658                     .attr('class', 'member-entity-input')
32659                     .call(d3.combobox()
32660                         .minItems(1)
32661                         .fetcher(function(value, callback) {
32662                             callback(relations(value));
32663                         })
32664                         .on('accept', function(d) {
32665                             addMembership(d, $new.select('.member-role').property('value'));
32666                         }));
32667
32668                 $enter.append('input')
32669                     .attr('class', 'member-role')
32670                     .property('type', 'text')
32671                     .attr('maxlength', 255)
32672                     .attr('placeholder', t('inspector.role'))
32673                     .on('change', changeRole);
32674
32675                 $enter.append('button')
32676                     .attr('tabindex', -1)
32677                     .attr('class', 'remove button-input-action member-delete minor')
32678                     .on('click', deleteMembership)
32679                     .append('span')
32680                     .attr('class', 'icon delete');
32681
32682             } else {
32683                 $list.selectAll('.member-row-new')
32684                     .remove();
32685             }
32686
32687             var $add = $wrap.selectAll('.add-relation')
32688                 .data([0]);
32689
32690             $add.enter().append('button')
32691                 .attr('class', 'add-relation')
32692                 .append('span')
32693                 .attr('class', 'icon plus light');
32694
32695             $wrap.selectAll('.add-relation')
32696                 .on('click', function() {
32697                     showBlank = true;
32698                     content($wrap);
32699                     $list.selectAll('.member-entity-input').node().focus();
32700                 });
32701         }
32702     }
32703
32704     rawMembershipEditor.entityID = function(_) {
32705         if (!arguments.length) return id;
32706         id = _;
32707         return rawMembershipEditor;
32708     };
32709
32710     return rawMembershipEditor;
32711 };
32712 iD.ui.RawTagEditor = function(context) {
32713     var event = d3.dispatch('change'),
32714         showBlank = false,
32715         state,
32716         preset,
32717         tags,
32718         id;
32719
32720     function rawTagEditor(selection) {
32721         var count = Object.keys(tags).filter(function(d) { return d; }).length;
32722
32723         selection.call(iD.ui.Disclosure()
32724             .title(t('inspector.all_tags') + ' (' + count + ')')
32725             .expanded(context.storage('raw_tag_editor.expanded') === 'true' || preset.isFallback())
32726             .on('toggled', toggled)
32727             .content(content));
32728
32729         function toggled(expanded) {
32730             context.storage('raw_tag_editor.expanded', expanded);
32731             if (expanded) {
32732                 selection.node().parentNode.scrollTop += 200;
32733             }
32734         }
32735     }
32736
32737     function content($wrap) {
32738         var entries = d3.entries(tags);
32739
32740         if (!entries.length || showBlank) {
32741             showBlank = false;
32742             entries.push({key: '', value: ''});
32743         }
32744
32745         var $list = $wrap.selectAll('.tag-list')
32746             .data([0]);
32747
32748         $list.enter().append('ul')
32749             .attr('class', 'tag-list');
32750
32751         var $newTag = $wrap.selectAll('.add-tag')
32752             .data([0]);
32753
32754         var $enter = $newTag.enter().append('button')
32755             .attr('class', 'add-tag');
32756
32757         $enter.append('span')
32758             .attr('class', 'icon plus light');
32759
32760         $newTag.on('click', addTag);
32761
32762         var $items = $list.selectAll('li')
32763             .data(entries, function(d) { return d.key; });
32764
32765         // Enter
32766
32767         $enter = $items.enter().append('li')
32768             .attr('class', 'tag-row cf');
32769
32770         $enter.append('div')
32771             .attr('class', 'key-wrap')
32772             .append('input')
32773             .property('type', 'text')
32774             .attr('class', 'key')
32775             .attr('maxlength', 255);
32776
32777         $enter.append('div')
32778             .attr('class', 'input-wrap-position')
32779             .append('input')
32780             .property('type', 'text')
32781             .attr('class', 'value')
32782             .attr('maxlength', 255);
32783
32784         $enter.append('button')
32785             .attr('tabindex', -1)
32786             .attr('class', 'remove minor')
32787             .append('span')
32788             .attr('class', 'icon delete');
32789
32790         if (context.taginfo()) {
32791             $enter.each(bindTypeahead);
32792         }
32793
32794         // Update
32795
32796         $items.order();
32797
32798         $items.each(function(tag) {
32799             var reference = iD.ui.TagReference({key: tag.key}, context);
32800
32801             if (state === 'hover') {
32802                 reference.showing(false);
32803             }
32804
32805             d3.select(this)
32806                 .call(reference.button)
32807                 .call(reference.body);
32808         });
32809
32810         $items.select('input.key')
32811             .value(function(d) { return d.key; })
32812             .on('blur', keyChange)
32813             .on('change', keyChange);
32814
32815         $items.select('input.value')
32816             .value(function(d) { return d.value; })
32817             .on('blur', valueChange)
32818             .on('change', valueChange)
32819             .on('keydown.push-more', pushMore);
32820
32821         $items.select('button.remove')
32822             .on('click', removeTag);
32823
32824         $items.exit()
32825             .remove();
32826
32827         function pushMore() {
32828             if (d3.event.keyCode === 9 && !d3.event.shiftKey &&
32829                 $list.selectAll('li:last-child input.value').node() === this) {
32830                 addTag();
32831             }
32832         }
32833
32834         function bindTypeahead() {
32835             var row = d3.select(this),
32836                 key = row.selectAll('input.key'),
32837                 value = row.selectAll('input.value');
32838
32839             function sort(value, data) {
32840                 var sameletter = [],
32841                     other = [];
32842                 for (var i = 0; i < data.length; i++) {
32843                     if (data[i].value.substring(0, value.length) === value) {
32844                         sameletter.push(data[i]);
32845                     } else {
32846                         other.push(data[i]);
32847                     }
32848                 }
32849                 return sameletter.concat(other);
32850             }
32851
32852             key.call(d3.combobox()
32853                 .fetcher(function(value, callback) {
32854                     context.taginfo().keys({
32855                         debounce: true,
32856                         geometry: context.geometry(id),
32857                         query: value
32858                     }, function(err, data) {
32859                         if (!err) callback(sort(value, data));
32860                     });
32861                 }));
32862
32863             value.call(d3.combobox()
32864                 .fetcher(function(value, callback) {
32865                     context.taginfo().values({
32866                         debounce: true,
32867                         key: key.value(),
32868                         geometry: context.geometry(id),
32869                         query: value
32870                     }, function(err, data) {
32871                         if (!err) callback(sort(value, data));
32872                     });
32873                 }));
32874         }
32875
32876         function keyChange(d) {
32877             var kOld = d.key,
32878                 kNew = this.value.trim(),
32879                 tag = {};
32880
32881             if (kNew && kNew !== kOld) {
32882                 var match = kNew.match(/^(.*?)(?:_(\d+))?$/),
32883                     base = match[1],
32884                     suffix = +(match[2] || 1);
32885                 while (tags[kNew]) {  // rename key if already in use
32886                     kNew = base + '_' + suffix++;
32887                 }
32888             }
32889             tag[kOld] = undefined;
32890             tag[kNew] = d.value;
32891             d.key = kNew; // Maintain DOM identity through the subsequent update.
32892             this.value = kNew;
32893             event.change(tag);
32894         }
32895
32896         function valueChange(d) {
32897             var tag = {};
32898             tag[d.key] = this.value;
32899             event.change(tag);
32900         }
32901
32902         function removeTag(d) {
32903             var tag = {};
32904             tag[d.key] = undefined;
32905             event.change(tag);
32906             d3.select(this.parentNode).remove();
32907         }
32908
32909         function addTag() {
32910             // Wrapped in a setTimeout in case it's being called from a blur
32911             // handler. Without the setTimeout, the call to `content` would
32912             // wipe out the pending value change.
32913             setTimeout(function() {
32914                 showBlank = true;
32915                 content($wrap);
32916                 $list.selectAll('li:last-child input.key').node().focus();
32917             }, 0);
32918         }
32919     }
32920
32921     rawTagEditor.state = function(_) {
32922         if (!arguments.length) return state;
32923         state = _;
32924         return rawTagEditor;
32925     };
32926
32927     rawTagEditor.preset = function(_) {
32928         if (!arguments.length) return preset;
32929         preset = _;
32930         return rawTagEditor;
32931     };
32932
32933     rawTagEditor.tags = function(_) {
32934         if (!arguments.length) return tags;
32935         tags = _;
32936         return rawTagEditor;
32937     };
32938
32939     rawTagEditor.entityID = function(_) {
32940         if (!arguments.length) return id;
32941         id = _;
32942         return rawTagEditor;
32943     };
32944
32945     return d3.rebind(rawTagEditor, event, 'on');
32946 };
32947 iD.ui.Restore = function(context) {
32948     return function(selection) {
32949         if (!context.history().lock() || !context.history().restorableChanges())
32950             return;
32951
32952         var modal = iD.ui.modal(selection);
32953
32954         modal.select('.modal')
32955             .attr('class', 'modal fillL col6');
32956
32957         var introModal = modal.select('.content');
32958
32959         introModal.attr('class','cf');
32960
32961         introModal.append('div')
32962             .attr('class', 'modal-section')
32963             .append('h3')
32964             .text(t('restore.heading'));
32965
32966         introModal.append('div')
32967             .attr('class','modal-section')
32968             .append('p')
32969             .text(t('restore.description'));
32970
32971         var buttonWrap = introModal.append('div')
32972             .attr('class', 'modal-actions cf');
32973
32974         var restore = buttonWrap.append('button')
32975             .attr('class', 'restore col6')
32976             .text(t('restore.restore'))
32977             .on('click', function() {
32978                 context.history().restore();
32979                 modal.remove();
32980             });
32981
32982         buttonWrap.append('button')
32983             .attr('class', 'reset col6')
32984             .text(t('restore.reset'))
32985             .on('click', function() {
32986                 context.history().clearSaved();
32987                 modal.remove();
32988             });
32989
32990         restore.node().focus();
32991     };
32992 };
32993 iD.ui.Save = function(context) {
32994     var history = context.history(),
32995         key = iD.ui.cmd('⌘S');
32996
32997     function saving() {
32998         return context.mode().id === 'save';
32999     }
33000
33001     function save() {
33002         d3.event.preventDefault();
33003         if (!saving() && history.hasChanges()) {
33004             context.enter(iD.modes.Save(context));
33005         }
33006     }
33007
33008     return function(selection) {
33009         var tooltip = bootstrap.tooltip()
33010             .placement('bottom')
33011             .html(true)
33012             .title(iD.ui.tooltipHtml(t('save.no_changes'), key));
33013
33014         var button = selection.append('button')
33015             .attr('class', 'save col12 disabled')
33016             .attr('tabindex', -1)
33017             .on('click', save)
33018             .call(tooltip);
33019
33020         button.append('span')
33021             .attr('class', 'label')
33022             .text(t('save.title'));
33023
33024         button.append('span')
33025             .attr('class', 'count')
33026             .text('0');
33027
33028         var keybinding = d3.keybinding('undo-redo')
33029             .on(key, save, true);
33030
33031         d3.select(document)
33032             .call(keybinding);
33033
33034         var numChanges = 0;
33035
33036         context.history().on('change.save', function() {
33037             var _ = history.difference().summary().length;
33038             if (_ === numChanges)
33039                 return;
33040             numChanges = _;
33041
33042             tooltip.title(iD.ui.tooltipHtml(t(numChanges > 0 ?
33043                     'save.help' : 'save.no_changes'), key));
33044
33045             button
33046                 .classed('disabled', numChanges === 0)
33047                 .classed('has-count', numChanges > 0);
33048
33049             button.select('span.count')
33050                 .text(numChanges);
33051         });
33052
33053         context.on('enter.save', function() {
33054             button.property('disabled', saving());
33055             if (saving()) button.call(tooltip.hide);
33056         });
33057     };
33058 };
33059 iD.ui.Scale = function(context) {
33060     var projection = context.projection,
33061         imperial = (iD.detect().locale.toLowerCase() === 'en-us'),
33062         maxLength = 180,
33063         tickHeight = 8;
33064
33065     function scaleDefs(loc1, loc2) {
33066         var lat = (loc2[1] + loc1[1]) / 2,
33067             conversion = (imperial ? 3.28084 : 1),
33068             dist = iD.geo.lonToMeters(loc2[0] - loc1[0], lat) * conversion,
33069             scale = { dist: 0, px: 0, text: '' },
33070             buckets, i, val, dLon;
33071
33072         if (imperial) {
33073             buckets = [5280000, 528000, 52800, 5280, 500, 50, 5, 1];
33074         } else {
33075             buckets = [5000000, 500000, 50000, 5000, 500, 50, 5, 1];
33076         }
33077
33078         // determine a user-friendly endpoint for the scale
33079         for (i = 0; i < buckets.length; i++) {
33080             val = buckets[i];
33081             if (dist >= val) {
33082                 scale.dist = Math.floor(dist / val) * val;
33083                 break;
33084             }
33085         }
33086
33087         dLon = iD.geo.metersToLon(scale.dist / conversion, lat);
33088         scale.px = Math.round(projection([loc1[0] + dLon, loc1[1]])[0]);
33089
33090         if (imperial) {
33091             if (scale.dist >= 5280) {
33092                 scale.dist /= 5280;
33093                 scale.text = String(scale.dist) + ' mi';
33094             } else {
33095                 scale.text = String(scale.dist) + ' ft';
33096             }
33097         } else {
33098             if (scale.dist >= 1000) {
33099                 scale.dist /= 1000;
33100                 scale.text = String(scale.dist) + ' km';
33101             } else {
33102                 scale.text = String(scale.dist) + ' m';
33103             }
33104         }
33105
33106         return scale;
33107     }
33108
33109     function update(selection) {
33110         // choose loc1, loc2 along bottom of viewport (near where the scale will be drawn)
33111         var dims = context.map().dimensions(),
33112             loc1 = projection.invert([0, dims[1]]),
33113             loc2 = projection.invert([maxLength, dims[1]]),
33114             scale = scaleDefs(loc1, loc2);
33115
33116         selection.select('#scalepath')
33117             .attr('d', 'M0.5,0.5v' + tickHeight + 'h' + scale.px + 'v-' + tickHeight);
33118
33119         selection.select('#scaletext')
33120             .attr('x', scale.px + 8)
33121             .attr('y', tickHeight)
33122             .text(scale.text);
33123     }
33124
33125     return function(selection) {
33126         var g = selection.append('svg')
33127             .attr('id', 'scale')
33128             .append('g')
33129             .attr('transform', 'translate(10,11)');
33130
33131         g.append('path').attr('id', 'scalepath');
33132         g.append('text').attr('id', 'scaletext');
33133
33134         update(selection);
33135
33136         context.map().on('move.scale', function() {
33137             update(selection);
33138         });
33139     };
33140 };
33141 iD.ui.SelectionList = function(context, selectedIDs) {
33142
33143     function selectEntity(entity) {
33144         context.enter(iD.modes.Select(context, [entity.id]).suppressMenu(true));
33145     }
33146
33147
33148     function selectionList(selection) {
33149         selection.classed('selection-list-pane', true);
33150
33151         var header = selection.append('div')
33152             .attr('class', 'header fillL cf');
33153
33154         header.append('h3')
33155             .text(t('inspector.multiselect'));
33156
33157         var listWrap = selection.append('div')
33158             .attr('class', 'inspector-body');
33159
33160         var list = listWrap.append('div')
33161             .attr('class', 'feature-list cf');
33162
33163         context.history().on('change.selection-list', drawList);
33164         drawList();
33165
33166         function drawList() {
33167             var entities = selectedIDs
33168                 .map(function(id) { return context.hasEntity(id); })
33169                 .filter(function(entity) { return entity; });
33170
33171             var items = list.selectAll('.feature-list-item')
33172                 .data(entities, iD.Entity.key);
33173
33174             var enter = items.enter().append('button')
33175                 .attr('class', 'feature-list-item')
33176                 .on('click', selectEntity);
33177
33178             // Enter
33179
33180             var label = enter.append('div')
33181                 .attr('class', 'label');
33182
33183             label.append('span')
33184                 .attr('class', 'icon icon-pre-text');
33185
33186             label.append('span')
33187                 .attr('class', 'entity-type');
33188
33189             label.append('span')
33190                 .attr('class', 'entity-name');
33191
33192             // Update
33193
33194             items.selectAll('.icon')
33195                 .attr('class', function(entity) { return context.geometry(entity.id) + ' icon icon-pre-text'; });
33196
33197             items.selectAll('.entity-type')
33198                 .text(function(entity) { return context.presets().match(entity, context.graph()).name(); });
33199
33200             items.selectAll('.entity-name')
33201                 .text(function(entity) { return iD.util.displayName(entity); });
33202
33203             // Exit
33204
33205             items.exit()
33206                 .remove();
33207         }
33208     }
33209
33210     return selectionList;
33211
33212 };
33213 iD.ui.Sidebar = function(context) {
33214     var inspector = iD.ui.Inspector(context),
33215         current;
33216
33217     function sidebar(selection) {
33218         var featureListWrap = selection.append('div')
33219             .attr('class', 'feature-list-pane')
33220             .call(iD.ui.FeatureList(context));
33221
33222         selection.call(iD.ui.Notice(context));
33223
33224         var inspectorWrap = selection.append('div')
33225             .attr('class', 'inspector-hidden inspector-wrap fr');
33226
33227         sidebar.hover = function(id) {
33228             if (!current && id) {
33229                 featureListWrap.classed('inspector-hidden', true);
33230                 inspectorWrap.classed('inspector-hidden', false)
33231                     .classed('inspector-hover', true);
33232
33233                 if (inspector.entityID() !== id || inspector.state() !== 'hover') {
33234                     inspector
33235                         .state('hover')
33236                         .entityID(id);
33237
33238                     inspectorWrap.call(inspector);
33239                 }
33240             } else if (!current) {
33241                 featureListWrap.classed('inspector-hidden', false);
33242                 inspectorWrap.classed('inspector-hidden', true);
33243                 inspector.state('hide');
33244             }
33245         };
33246
33247         sidebar.hover = _.throttle(sidebar.hover, 200);
33248
33249         sidebar.select = function(id, newFeature) {
33250             if (!current && id) {
33251                 featureListWrap.classed('inspector-hidden', true);
33252                 inspectorWrap.classed('inspector-hidden', false)
33253                     .classed('inspector-hover', false);
33254
33255                 if (inspector.entityID() !== id || inspector.state() !== 'select') {
33256                     inspector
33257                         .state('select')
33258                         .entityID(id)
33259                         .newFeature(newFeature);
33260
33261                     inspectorWrap.call(inspector);
33262                 }
33263             } else if (!current) {
33264                 featureListWrap.classed('inspector-hidden', false);
33265                 inspectorWrap.classed('inspector-hidden', true);
33266                 inspector.state('hide');
33267             }
33268         };
33269
33270         sidebar.show = function(component) {
33271             featureListWrap.classed('inspector-hidden', true);
33272             inspectorWrap.classed('inspector-hidden', true);
33273             if (current) current.remove();
33274             current = selection.append('div')
33275                 .attr('class', 'sidebar-component')
33276                 .call(component);
33277         };
33278
33279         sidebar.hide = function() {
33280             featureListWrap.classed('inspector-hidden', false);
33281             inspectorWrap.classed('inspector-hidden', true);
33282             if (current) current.remove();
33283             current = null;
33284         };
33285     }
33286
33287     sidebar.hover = function() {};
33288     sidebar.select = function() {};
33289     sidebar.show = function() {};
33290     sidebar.hide = function() {};
33291
33292     return sidebar;
33293 };
33294 iD.ui.SourceSwitch = function(context) {
33295     var keys;
33296
33297     function click() {
33298         d3.event.preventDefault();
33299
33300         if (context.history().hasChanges() &&
33301             !window.confirm(t('source_switch.lose_changes'))) return;
33302
33303         var live = d3.select(this)
33304             .classed('live');
33305
33306         context.connection()
33307             .switch(live ? keys[1] : keys[0]);
33308
33309         context.flush();
33310
33311         d3.select(this)
33312             .text(live ? t('source_switch.dev') : t('source_switch.live'))
33313             .classed('live', !live);
33314     }
33315
33316     var sourceSwitch = function(selection) {
33317         selection.append('a')
33318             .attr('href', '#')
33319             .text(t('source_switch.live'))
33320             .classed('live', true)
33321             .attr('tabindex', -1)
33322             .on('click', click);
33323     };
33324
33325     sourceSwitch.keys = function(_) {
33326         if (!arguments.length) return keys;
33327         keys = _;
33328         return sourceSwitch;
33329     };
33330
33331     return sourceSwitch;
33332 };
33333 iD.ui.Spinner = function(context) {
33334     var connection = context.connection();
33335
33336     return function(selection) {
33337         var img = selection.append('img')
33338             .attr('src', context.imagePath('loader-black.gif'))
33339             .style('opacity', 0);
33340
33341         connection.on('loading.spinner', function() {
33342             img.transition()
33343                 .style('opacity', 1);
33344         });
33345
33346         connection.on('loaded.spinner', function() {
33347             img.transition()
33348                 .style('opacity', 0);
33349         });
33350     };
33351 };
33352 iD.ui.Splash = function(context) {
33353     return function(selection) {
33354         if (context.storage('sawSplash'))
33355              return;
33356
33357         context.storage('sawSplash', true);
33358
33359         var modal = iD.ui.modal(selection);
33360
33361         modal.select('.modal')
33362             .attr('class', 'modal-splash modal col6');
33363
33364         var introModal = modal.select('.content')
33365             .append('div')
33366             .attr('class', 'fillL');
33367
33368         introModal.append('div')
33369             .attr('class','modal-section cf')
33370             .append('h3').text(t('splash.welcome'));
33371
33372         introModal.append('div')
33373             .attr('class','modal-section')
33374             .append('p')
33375             .html(t('splash.text', {
33376                 version: iD.version,
33377                 website: '<a href="http://ideditor.com/">ideditor.com</a>',
33378                 github: '<a href="https://github.com/openstreetmap/iD">github.com</a>'
33379             }));
33380
33381         var buttons = introModal.append('div').attr('class', 'modal-actions cf');
33382
33383         buttons.append('button')
33384             .attr('class', 'col6 walkthrough')
33385             .text(t('splash.walkthrough'))
33386             .on('click', function() {
33387                 d3.select(document.body).call(iD.ui.intro(context));
33388                 modal.close();
33389             });
33390
33391         buttons.append('button')
33392             .attr('class', 'col6 start')
33393             .text(t('splash.start'))
33394             .on('click', modal.close);
33395
33396         modal.select('button.close').attr('class','hide');
33397
33398     };
33399 };
33400 iD.ui.Status = function(context) {
33401     var connection = context.connection(),
33402         errCount = 0;
33403
33404     return function(selection) {
33405
33406         function update() {
33407
33408             connection.status(function(err, apiStatus) {
33409
33410                 selection.html('');
33411
33412                 if (err && errCount++ < 2) return;
33413
33414                 if (err) {
33415                     selection.text(t('status.error'));
33416
33417                 } else if (apiStatus === 'readonly') {
33418                     selection.text(t('status.readonly'));
33419
33420                 } else if (apiStatus === 'offline') {
33421                     selection.text(t('status.offline'));
33422                 }
33423
33424                 selection.attr('class', 'api-status ' + (err ? 'error' : apiStatus));
33425                 if (!err) errCount = 0;
33426
33427             });
33428         }
33429
33430         connection.on('auth', function() { update(selection); });
33431         window.setInterval(update, 90000);
33432         update(selection);
33433     };
33434 };
33435 iD.ui.Success = function(context) {
33436     var event = d3.dispatch('cancel'),
33437         changeset;
33438
33439     function success(selection) {
33440         var message = (changeset.comment || t('success.edited_osm')).substring(0, 130) +
33441             ' ' + context.connection().changesetURL(changeset.id);
33442
33443         var header = selection.append('div')
33444             .attr('class', 'header fillL');
33445
33446         header.append('button')
33447             .attr('class', 'fr')
33448             .append('span')
33449             .attr('class', 'icon close')
33450             .on('click', function() { event.cancel(success); });
33451
33452         header.append('h3')
33453             .text(t('success.just_edited'));
33454
33455         var body = selection.append('div')
33456             .attr('class', 'body save-success fillL');
33457
33458         body.append('p')
33459             .html(t('success.help_html'));
33460
33461         var changesetURL = context.connection().changesetURL(changeset.id);
33462
33463         body.append('a')
33464             .attr('class', 'button col12 osm')
33465             .attr('target', '_blank')
33466             .attr('href', changesetURL)
33467             .text(t('success.view_on_osm'));
33468
33469         var sharing = {
33470             facebook: 'https://facebook.com/sharer/sharer.php?u=' + encodeURIComponent(changesetURL),
33471             twitter: 'https://twitter.com/intent/tweet?source=webclient&text=' + encodeURIComponent(message),
33472             google: 'https://plus.google.com/share?url=' + encodeURIComponent(changesetURL)
33473         };
33474
33475         body.selectAll('.button.social')
33476             .data(d3.entries(sharing))
33477             .enter().append('a')
33478             .attr('class', function(d) { return 'button social col4 ' + d.key; })
33479             .attr('target', '_blank')
33480             .attr('href', function(d) { return d.value; })
33481             .call(bootstrap.tooltip()
33482                 .title(function(d) { return t('success.' + d.key); })
33483                 .placement('bottom'));
33484     }
33485
33486     success.changeset = function(_) {
33487         if (!arguments.length) return changeset;
33488         changeset = _;
33489         return success;
33490     };
33491
33492     return d3.rebind(success, event, 'on');
33493 };
33494 iD.ui.TagReference = function(tag, context) {
33495     var tagReference = {},
33496         button,
33497         body,
33498         loaded,
33499         showing;
33500
33501     function findLocal(docs) {
33502         var locale = iD.detect().locale.toLowerCase(),
33503             localized;
33504
33505         localized = _.find(docs, function(d) {
33506             return d.lang.toLowerCase() === locale;
33507         });
33508         if (localized) return localized;
33509
33510         // try the non-regional version of a language, like
33511         // 'en' if the language is 'en-US'
33512         if (locale.indexOf('-') !== -1) {
33513             var first = locale.split('-')[0];
33514             localized = _.find(docs, function(d) {
33515                 return d.lang.toLowerCase() === first;
33516             });
33517             if (localized) return localized;
33518         }
33519
33520         // finally fall back to english
33521         return _.find(docs, function(d) {
33522             return d.lang.toLowerCase() === 'en';
33523         });
33524     }
33525
33526     function load() {
33527         button.classed('tag-reference-loading', true);
33528
33529         context.taginfo().docs(tag, function(err, docs) {
33530             if (!err && docs) {
33531                 docs = findLocal(docs);
33532             }
33533
33534             body.html('');
33535
33536             if (!docs || !docs.description) {
33537                 body.append('p').text(t('inspector.no_documentation_key'));
33538                 show();
33539                 return;
33540             }
33541
33542             if (docs.image && docs.image.thumb_url_prefix) {
33543                 body
33544                     .append('img')
33545                     .attr('class', 'wiki-image')
33546                     .attr('src', docs.image.thumb_url_prefix + '100' + docs.image.thumb_url_suffix)
33547                     .on('load', function() { show(); })
33548                     .on('error', function() { d3.select(this).remove(); show(); });
33549             } else {
33550                 show();
33551             }
33552
33553             body
33554                 .append('p')
33555                 .text(docs.description);
33556
33557             var wikiLink = body
33558                 .append('a')
33559                 .attr('target', '_blank')
33560                 .attr('href', 'http://wiki.openstreetmap.org/wiki/' + docs.title);
33561
33562             wikiLink.append('span')
33563                 .attr('class','icon icon-pre-text out-link');
33564
33565             wikiLink.append('span')
33566                 .text(t('inspector.reference'));
33567         });
33568     }
33569
33570     function show() {
33571         loaded = true;
33572
33573         button.classed('tag-reference-loading', false);
33574
33575         body.transition()
33576             .duration(200)
33577             .style('max-height', '200px')
33578             .style('opacity', '1');
33579
33580         showing = true;
33581     }
33582
33583     function hide(selection) {
33584         selection = selection || body.transition().duration(200);
33585
33586         selection
33587             .style('max-height', '0px')
33588             .style('opacity', '0');
33589
33590         showing = false;
33591     }
33592
33593     tagReference.button = function(selection) {
33594         button = selection.selectAll('.tag-reference-button')
33595             .data([0]);
33596
33597         var enter = button.enter().append('button')
33598             .attr('tabindex', -1)
33599             .attr('class', 'tag-reference-button');
33600
33601         enter.append('span')
33602             .attr('class', 'icon inspect');
33603
33604         button.on('click', function () {
33605             d3.event.stopPropagation();
33606             d3.event.preventDefault();
33607             if (showing) {
33608                 hide();
33609             } else if (loaded) {
33610                 show();
33611             } else {
33612                 if (context.taginfo()) {
33613                     load();
33614                 }
33615             }
33616         });
33617     };
33618
33619     tagReference.body = function(selection) {
33620         body = selection.selectAll('.tag-reference-body')
33621             .data([0]);
33622
33623         body.enter().append('div')
33624             .attr('class', 'tag-reference-body cf')
33625             .style('max-height', '0')
33626             .style('opacity', '0');
33627
33628         if (showing === false) {
33629             hide(body);
33630         }
33631     };
33632
33633     tagReference.showing = function(_) {
33634         if (!arguments.length) return showing;
33635         showing = _;
33636         return tagReference;
33637     };
33638
33639     return tagReference;
33640 };// toggles the visibility of ui elements, using a combination of the
33641 // hide class, which sets display=none, and a d3 transition for opacity.
33642 // this will cause blinking when called repeatedly, so check that the
33643 // value actually changes between calls.
33644 iD.ui.Toggle = function(show, callback) {
33645     return function(selection) {
33646         selection
33647             .style('opacity', show ? 0 : 1)
33648             .classed('hide', false)
33649             .transition()
33650             .style('opacity', show ? 1 : 0)
33651             .each('end', function() {
33652                 d3.select(this).classed('hide', !show);
33653                 if (callback) callback.apply(this);
33654             });
33655     };
33656 };
33657 iD.ui.UndoRedo = function(context) {
33658     var commands = [{
33659         id: 'undo',
33660         cmd: iD.ui.cmd('⌘Z'),
33661         action: function() { if (!saving()) context.undo(); },
33662         annotation: function() { return context.history().undoAnnotation(); }
33663     }, {
33664         id: 'redo',
33665         cmd: iD.ui.cmd('⌘⇧Z'),
33666         action: function() { if (!saving()) context.redo(); },
33667         annotation: function() { return context.history().redoAnnotation(); }
33668     }];
33669
33670     function saving() {
33671         return context.mode().id === 'save';
33672     }
33673
33674     return function(selection) {
33675         var tooltip = bootstrap.tooltip()
33676             .placement('bottom')
33677             .html(true)
33678             .title(function (d) {
33679                 return iD.ui.tooltipHtml(d.annotation() ?
33680                     t(d.id + '.tooltip', {action: d.annotation()}) :
33681                     t(d.id + '.nothing'), d.cmd);
33682             });
33683
33684         var buttons = selection.selectAll('button')
33685             .data(commands)
33686             .enter().append('button')
33687             .attr('class', 'col6 disabled')
33688             .on('click', function(d) { return d.action(); })
33689             .call(tooltip);
33690
33691         buttons.append('span')
33692             .attr('class', function(d) { return 'icon ' + d.id; });
33693
33694         var keybinding = d3.keybinding('undo')
33695             .on(commands[0].cmd, function() { d3.event.preventDefault(); commands[0].action(); })
33696             .on(commands[1].cmd, function() { d3.event.preventDefault(); commands[1].action(); });
33697
33698         d3.select(document)
33699             .call(keybinding);
33700
33701         context.history()
33702             .on('change.undo_redo', update);
33703
33704         context
33705             .on('enter.undo_redo', update);
33706
33707         function update() {
33708             buttons
33709                 .property('disabled', saving())
33710                 .classed('disabled', function(d) { return !d.annotation(); })
33711                 .each(function() {
33712                     var selection = d3.select(this);
33713                     if (selection.property('tooltipVisible')) {
33714                         selection.call(tooltip.show);
33715                     }
33716                 });
33717         }
33718     };
33719 };
33720 iD.ui.ViewOnOSM = function(context) {
33721     var id;
33722
33723     function viewOnOSM(selection) {
33724         var entity = context.entity(id);
33725
33726         selection.style('display', entity.isNew() ? 'none' : null);
33727
33728         var $link = selection.selectAll('.view-on-osm')
33729             .data([0]);
33730
33731         var $enter = $link.enter().append('a')
33732             .attr('class', 'view-on-osm')
33733             .attr('target', '_blank');
33734
33735         $enter.append('span')
33736             .attr('class', 'icon icon-pre-text out-link');
33737
33738         $enter.append('span')
33739             .text(t('inspector.view_on_osm'));
33740
33741         $link.attr('href', context.connection().entityURL(entity));
33742     }
33743
33744     viewOnOSM.entityID = function(_) {
33745         if (!arguments.length) return id;
33746         id = _;
33747         return viewOnOSM;
33748     };
33749
33750     return viewOnOSM;
33751 };
33752 iD.ui.Zoom = function(context) {
33753     var zooms = [{
33754         id: 'zoom-in',
33755         title: t('zoom.in'),
33756         action: context.zoomIn,
33757         key: '+'
33758     }, {
33759         id: 'zoom-out',
33760         title: t('zoom.out'),
33761         action: context.zoomOut,
33762         key: '-'
33763     }];
33764
33765     return function(selection) {
33766         var button = selection.selectAll('button')
33767             .data(zooms)
33768             .enter().append('button')
33769             .attr('tabindex', -1)
33770             .attr('class', function(d) { return d.id; })
33771             .on('click.editor', function(d) { d.action(); })
33772             .call(bootstrap.tooltip()
33773                 .placement('left')
33774                 .html(true)
33775                 .title(function(d) {
33776                     return iD.ui.tooltipHtml(d.title, d.key);
33777                 }));
33778
33779         button.append('span')
33780             .attr('class', function(d) { return d.id + ' icon'; });
33781
33782         var keybinding = d3.keybinding('zoom');
33783
33784         _.each(['=','ffequals','plus','ffplus'], function(key) {
33785             keybinding.on(key, function() { context.zoomIn(); });
33786             keybinding.on('⇧' + key, function() { context.zoomIn(); });
33787         });
33788         _.each(['-','ffminus','_','dash'], function(key) {
33789             keybinding.on(key, function() { context.zoomOut(); });
33790             keybinding.on('⇧' + key, function() { context.zoomOut(); });
33791         });
33792
33793         d3.select(document)
33794             .call(keybinding);
33795     };
33796 };
33797 iD.ui.preset.access = function(field) {
33798     var event = d3.dispatch('change'),
33799         items;
33800
33801     function access(selection) {
33802         var wrap = selection.selectAll('.preset-input-wrap')
33803             .data([0]);
33804
33805         wrap.enter().append('div')
33806             .attr('class', 'cf preset-input-wrap')
33807             .append('ul');
33808
33809         items = wrap.select('ul').selectAll('li')
33810             .data(field.keys);
33811
33812         // Enter
33813
33814         var enter = items.enter().append('li')
33815             .attr('class', function(d) { return 'cf preset-access-' + d; });
33816
33817         enter.append('span')
33818             .attr('class', 'col6 label preset-label-access')
33819             .attr('for', function(d) { return 'preset-input-access-' + d; })
33820             .text(function(d) { return field.t('types.' + d); });
33821
33822         enter.append('div')
33823             .attr('class', 'col6 preset-input-access-wrap')
33824             .append('input')
33825             .attr('type', 'text')
33826             .attr('class', 'preset-input-access')
33827             .attr('id', function(d) { return 'preset-input-access-' + d; })
33828             .each(function(d) {
33829                 d3.select(this)
33830                     .call(d3.combobox()
33831                         .data(access.options(d)));
33832             });
33833
33834         // Update
33835
33836         wrap.selectAll('.preset-input-access')
33837             .on('change', change)
33838             .on('blur', change);
33839     }
33840
33841     function change(d) {
33842         var tag = {};
33843         tag[d] = d3.select(this).value() || undefined;
33844         event.change(tag);
33845     }
33846
33847     access.options = function(type) {
33848         var options = ['no', 'permissive', 'private', 'destination'];
33849
33850         if (type !== 'access') {
33851             options.unshift('yes');
33852             options.push('designated');
33853         }
33854
33855         return options.map(function(option) {
33856             return {
33857                 title: field.t('options.' + option + '.description'),
33858                 value: option
33859             };
33860         });
33861     };
33862
33863     var placeholders = {
33864         footway: {
33865             foot: 'designated',
33866             motor_vehicle: 'no'
33867         },
33868         steps: {
33869             foot: 'yes',
33870             motor_vehicle: 'no',
33871             bicycle: 'no',
33872             horse: 'no'
33873         },
33874         pedestrian: {
33875             foot: 'yes',
33876             motor_vehicle: 'no'
33877         },
33878         cycleway: {
33879             motor_vehicle: 'no',
33880             bicycle: 'designated'
33881         },
33882         bridleway: {
33883             motor_vehicle: 'no',
33884             horse: 'designated'
33885         },
33886         path: {
33887             foot: 'yes',
33888             motor_vehicle: 'no',
33889             bicycle: 'yes',
33890             horse: 'yes'
33891         },
33892         motorway: {
33893             foot: 'no',
33894             motor_vehicle: 'yes',
33895             bicycle: 'no',
33896             horse: 'no'
33897         },
33898         trunk: {
33899             motor_vehicle: 'yes'
33900         },
33901         primary: {
33902             foot: 'yes',
33903             motor_vehicle: 'yes',
33904             bicycle: 'yes',
33905             horse: 'yes'
33906         },
33907         secondary: {
33908             foot: 'yes',
33909             motor_vehicle: 'yes',
33910             bicycle: 'yes',
33911             horse: 'yes'
33912         },
33913         tertiary: {
33914             foot: 'yes',
33915             motor_vehicle: 'yes',
33916             bicycle: 'yes',
33917             horse: 'yes'
33918         },
33919         residential: {
33920             foot: 'yes',
33921             motor_vehicle: 'yes',
33922             bicycle: 'yes',
33923             horse: 'yes'
33924         },
33925         unclassified: {
33926             foot: 'yes',
33927             motor_vehicle: 'yes',
33928             bicycle: 'yes',
33929             horse: 'yes'
33930         },
33931         service: {
33932             foot: 'yes',
33933             motor_vehicle: 'yes',
33934             bicycle: 'yes',
33935             horse: 'yes'
33936         },
33937         motorway_link: {
33938             foot: 'no',
33939             motor_vehicle: 'yes',
33940             bicycle: 'no',
33941             horse: 'no'
33942         },
33943         trunk_link: {
33944             motor_vehicle: 'yes'
33945         },
33946         primary_link: {
33947             foot: 'yes',
33948             motor_vehicle: 'yes',
33949             bicycle: 'yes',
33950             horse: 'yes'
33951         },
33952         secondary_link: {
33953             foot: 'yes',
33954             motor_vehicle: 'yes',
33955             bicycle: 'yes',
33956             horse: 'yes'
33957         },
33958         tertiary_link: {
33959             foot: 'yes',
33960             motor_vehicle: 'yes',
33961             bicycle: 'yes',
33962             horse: 'yes'
33963         }
33964     };
33965
33966     access.tags = function(tags) {
33967         items.selectAll('.preset-input-access')
33968             .value(function(d) { return tags[d] || ''; })
33969             .attr('placeholder', function() {
33970                 return tags.access ? tags.access : field.placeholder();
33971             });
33972
33973         items.selectAll('#preset-input-access-access')
33974             .attr('placeholder', 'yes');
33975
33976         _.forEach(placeholders[tags.highway], function(value, key) {
33977             items.selectAll('#preset-input-access-' + key)
33978                 .attr('placeholder', function() {
33979                     return (tags.access && (value === 'yes' || value === 'designated')) ? tags.access : value;
33980                 });
33981         });
33982     };
33983
33984     access.focus = function() {
33985         items.selectAll('.preset-input-access')
33986             .node().focus();
33987     };
33988
33989     return d3.rebind(access, event, 'on');
33990 };
33991 iD.ui.preset.address = function(field, context) {
33992     var event = d3.dispatch('init', 'change'),
33993         wrap,
33994         entity,
33995         isInitialized;
33996
33997     var widths = {
33998         housenumber: 1/3,
33999         street: 2/3,
34000         city: 2/3,
34001         state: 1/4,
34002         postcode: 1/3
34003     };
34004
34005     function getStreets() {
34006         var extent = entity.extent(context.graph()),
34007             l = extent.center(),
34008             box = iD.geo.Extent(l).padByMeters(200);
34009
34010         return context.intersects(box)
34011             .filter(isAddressable)
34012             .map(function(d) {
34013                 var loc = context.projection([
34014                     (extent[0][0] + extent[1][0]) / 2,
34015                     (extent[0][1] + extent[1][1]) / 2]),
34016                     choice = iD.geo.chooseEdge(context.childNodes(d), loc, context.projection);
34017                 return {
34018                     title: d.tags.name,
34019                     value: d.tags.name,
34020                     dist: choice.distance
34021                 };
34022             }).sort(function(a, b) {
34023                 return a.dist - b.dist;
34024             });
34025
34026         function isAddressable(d) {
34027             return d.tags.highway && d.tags.name && d.type === 'way';
34028         }
34029     }
34030
34031     function getCities() {
34032         var extent = entity.extent(context.graph()),
34033             l = extent.center(),
34034             box = iD.geo.Extent(l).padByMeters(200);
34035
34036         return context.intersects(box)
34037             .filter(isAddressable)
34038             .map(function(d) {
34039                 return {
34040                     title: d.tags['addr:city'] || d.tags.name,
34041                     value: d.tags['addr:city'] || d.tags.name,
34042                     dist: iD.geo.sphericalDistance(d.extent(context.graph()).center(), l)
34043                 };
34044             }).sort(function(a, b) {
34045                 return a.dist - b.dist;
34046             });
34047
34048         function isAddressable(d) {
34049             if (d.tags.name &&
34050                 (d.tags.admin_level === '8' || d.tags.border_type === 'city'))
34051                 return true;
34052
34053             if (d.tags.place && d.tags.name && (
34054                     d.tags.place === 'city' ||
34055                     d.tags.place === 'town' ||
34056                     d.tags.place === 'village'))
34057                 return true;
34058
34059             if (d.tags['addr:city']) return true;
34060
34061             return false;
34062         }
34063     }
34064
34065     function getPostCodes() {
34066         var extent = entity.extent(context.graph()),
34067             l = extent.center(),
34068             box = iD.geo.Extent(l).padByMeters(200);
34069
34070         return context.intersects(box)
34071             .filter(isAddressable)
34072             .map(function(d) {
34073                 return {
34074                     title: d.tags['addr:postcode'],
34075                     value: d.tags['addr:postcode'],
34076                     dist: iD.geo.sphericalDistance(d.extent(context.graph()).center(), l)
34077                 };
34078             }).sort(function(a, b) {
34079                 return a.dist - b.dist;
34080             });
34081
34082         function isAddressable(d) {
34083             return d.tags['addr:postcode'];
34084         }
34085     }
34086
34087     function address(selection) {
34088         isInitialized = false;
34089         
34090         selection.selectAll('.preset-input-wrap')
34091             .remove();
34092
34093         var center = entity.extent(context.graph()).center(),
34094             addressFormat;
34095
34096         // Enter
34097
34098         wrap = selection.append('div')
34099             .attr('class', 'preset-input-wrap');
34100
34101         iD.countryCode().search(center, function (err, countryCode) {
34102             addressFormat = _.find(iD.data.addressFormats, function (a) {
34103                 return a && a.countryCodes && _.contains(a.countryCodes, countryCode);
34104             }) || _.first(iD.data.addressFormats);
34105
34106             function row(r) {
34107                 // Normalize widths.
34108                 var total = _.reduce(r, function(sum, field) {
34109                     return sum + (widths[field] || 0.5);
34110                 }, 0);
34111
34112                 return r.map(function (field) {
34113                     return {
34114                         id: field,
34115                         width: (widths[field] || 0.5) / total
34116                     };
34117                 });
34118             }
34119
34120             wrap.selectAll('div')
34121                 .data(addressFormat.format)
34122                 .enter()
34123                 .append('div')
34124                 .attr('class', 'addr-row')
34125                 .selectAll('input')
34126                 .data(row)
34127                 .enter()
34128                 .append('input')
34129                 .property('type', 'text')
34130                 .attr('placeholder', function (d) { return field.t('placeholders.' + d.id); })
34131                 .attr('class', function (d) { return 'addr-' + d.id; })
34132                 .style('width', function (d) { return d.width * 100 + '%'; });
34133
34134             // Update
34135
34136             wrap.selectAll('.addr-street')
34137                 .call(d3.combobox()
34138                     .fetcher(function(value, callback) {
34139                         callback(getStreets());
34140                     }));
34141
34142             wrap.selectAll('.addr-city')
34143                 .call(d3.combobox()
34144                     .fetcher(function(value, callback) {
34145                         callback(getCities());
34146                     }));
34147
34148             wrap.selectAll('.addr-postcode')
34149                 .call(d3.combobox()
34150                     .fetcher(function(value, callback) {
34151                         callback(getPostCodes());
34152                     }));
34153
34154             wrap.selectAll('input')
34155                 .on('blur', change)
34156                 .on('change', change);
34157
34158             event.init();
34159             isInitialized = true;
34160         });
34161     }
34162
34163     function change() {
34164         var tags = {};
34165
34166         wrap.selectAll('input')
34167             .each(function (field) {
34168                 tags['addr:' + field.id] = this.value || undefined;
34169             });
34170
34171         event.change(tags);
34172     }
34173
34174     function updateTags(tags) {
34175         wrap.selectAll('input')
34176             .value(function (field) {
34177                 return tags['addr:' + field.id] || '';
34178             });
34179     }
34180
34181     address.entity = function(_) {
34182         if (!arguments.length) return entity;
34183         entity = _;
34184         return address;
34185     };
34186
34187     address.tags = function(tags) {
34188         if (isInitialized) {
34189             updateTags(tags);
34190         } else {
34191             event.on('init', function () {
34192                 updateTags(tags);
34193             });
34194         }
34195     };
34196
34197     address.focus = function() {
34198         var node = wrap.selectAll('input').node();
34199         if (node) node.focus();
34200     };
34201
34202     return d3.rebind(address, event, 'on');
34203 };
34204 iD.ui.preset.check =
34205 iD.ui.preset.defaultcheck = function(field) {
34206     var event = d3.dispatch('change'),
34207         options = field.strings && field.strings.options,
34208         values = [],
34209         texts = [],
34210         entity, value, box, text, label;
34211
34212     if (options) {
34213         for (var k in options) {
34214             values.push(k === 'undefined' ? undefined : k);
34215             texts.push(field.t('options.' + k, { 'default': options[k] }));
34216         }
34217     } else {
34218         values = [undefined, 'yes'];
34219         texts = [t('inspector.unknown'), t('inspector.check.yes')];
34220         if (field.type === 'check') {
34221             values.push('no');
34222             texts.push(t('inspector.check.no'));
34223         }
34224     }
34225
34226     var check = function(selection) {
34227         // hack: pretend oneway field is a oneway_yes field
34228         // where implied oneway tag exists (e.g. `junction=roundabout`) #2220, #1841
34229         if (field.id === 'oneway') {
34230             for (var key in entity.tags) {
34231                 if (key in iD.oneWayTags && (entity.tags[key] in iD.oneWayTags[key])) {
34232                     texts[0] = t('presets.fields.oneway_yes.options.undefined');
34233                     break;
34234                 }
34235             }
34236         }
34237
34238         selection.classed('checkselect', 'true');
34239
34240         label = selection.selectAll('.preset-input-wrap')
34241             .data([0]);
34242
34243         var enter = label.enter().append('label')
34244             .attr('class', 'preset-input-wrap');
34245
34246         enter.append('input')
34247             .property('indeterminate', field.type === 'check')
34248             .attr('type', 'checkbox')
34249             .attr('id', 'preset-input-' + field.id);
34250
34251         enter.append('span')
34252             .text(texts[0])
34253             .attr('class', 'value');
34254
34255         box = label.select('input')
34256             .on('click', function() {
34257                 var t = {};
34258                 t[field.key] = values[(values.indexOf(value) + 1) % values.length];
34259                 event.change(t);
34260                 d3.event.stopPropagation();
34261             });
34262
34263         text = label.select('span.value');
34264     };
34265
34266     check.entity = function(_) {
34267         if (!arguments.length) return entity;
34268         entity = _;
34269         return check;
34270     };
34271
34272     check.tags = function(tags) {
34273         value = tags[field.key];
34274         box.property('indeterminate', field.type === 'check' && !value);
34275         box.property('checked', value === 'yes');
34276         text.text(texts[values.indexOf(value)]);
34277         label.classed('set', !!value);
34278     };
34279
34280     check.focus = function() {
34281         box.node().focus();
34282     };
34283
34284     return d3.rebind(check, event, 'on');
34285 };
34286 iD.ui.preset.combo =
34287 iD.ui.preset.typeCombo = function(field, context) {
34288     var event = d3.dispatch('change'),
34289         optstrings = field.strings && field.strings.options,
34290         optarray = field.options,
34291         strings = {},
34292         input;
34293
34294     function combo(selection) {
34295         var combobox = d3.combobox();
34296
34297         input = selection.selectAll('input')
34298             .data([0]);
34299
34300         var enter = input.enter()
34301             .append('input')
34302             .attr('type', 'text')
34303             .attr('id', 'preset-input-' + field.id);
34304
34305         if (optstrings) { enter.attr('readonly', 'readonly'); }
34306
34307         input
34308             .call(combobox)
34309             .on('change', change)
34310             .on('blur', change)
34311             .each(function() {
34312                 if (optstrings) {
34313                     _.each(optstrings, function(v, k) {
34314                         strings[k] = field.t('options.' + k, { 'default': v });
34315                     });
34316                     stringsLoaded();
34317                 } else if (optarray) {
34318                     _.each(optarray, function(k) {
34319                         strings[k] = k.replace(/_+/g, ' ');
34320                     });
34321                     stringsLoaded();
34322                 } else if (context.taginfo()) {
34323                     context.taginfo().values({key: field.key}, function(err, data) {
34324                         if (!err) {
34325                             _.each(_.pluck(data, 'value'), function(k) {
34326                                 strings[k] = k.replace(/_+/g, ' ');
34327                             });
34328                             stringsLoaded();
34329                         }
34330                     });
34331                 }
34332             });
34333
34334         function stringsLoaded() {
34335             var keys = _.keys(strings),
34336                 strs = [],
34337                 placeholders;
34338
34339             combobox.data(keys.map(function(k) {
34340                 var s = strings[k],
34341                     o = {};
34342                 o.title = o.value = s;
34343                 if (s.length < 20) { strs.push(s); }
34344                 return o;
34345             }));
34346
34347             placeholders = strs.length > 1 ? strs : keys;
34348             input.attr('placeholder', field.placeholder() ||
34349                 (placeholders.slice(0, 3).join(', ') + '...'));
34350         }
34351     }
34352
34353     function change() {
34354         var optstring = _.find(_.keys(strings), function(k) { return strings[k] === input.value(); }),
34355             value = optstring || (input.value()
34356                 .split(';')
34357                 .map(function(s) { return s.trim(); })
34358                 .join(';')
34359                 .replace(/\s+/g, '_'));
34360
34361         if (field.type === 'typeCombo' && !value) value = 'yes';
34362
34363         var t = {};
34364         t[field.key] = value || undefined;
34365         event.change(t);
34366     }
34367
34368     combo.tags = function(tags) {
34369         var key = tags[field.key],
34370             value = strings[key] || key || '';
34371         if (field.type === 'typeCombo' && value.toLowerCase() === 'yes') value = '';
34372         input.value(value);
34373     };
34374
34375     combo.focus = function() {
34376         input.node().focus();
34377     };
34378
34379     return d3.rebind(combo, event, 'on');
34380 };
34381 iD.ui.preset.text =
34382 iD.ui.preset.number =
34383 iD.ui.preset.tel =
34384 iD.ui.preset.email =
34385 iD.ui.preset.url = function(field) {
34386
34387     var event = d3.dispatch('change'),
34388         input;
34389
34390     function i(selection) {
34391         input = selection.selectAll('input')
34392             .data([0]);
34393
34394         input.enter().append('input')
34395             .attr('type', field.type)
34396             .attr('id', 'preset-input-' + field.id)
34397             .attr('placeholder', field.placeholder() || t('inspector.unknown'));
34398
34399         input
34400             .on('blur', change)
34401             .on('change', change);
34402
34403         if (field.type === 'number') {
34404             input.attr('type', 'text');
34405
34406             var spinControl = selection.selectAll('.spin-control')
34407                 .data([0]);
34408
34409             var enter = spinControl.enter().append('div')
34410                 .attr('class', 'spin-control');
34411
34412             enter.append('button')
34413                 .datum(1)
34414                 .attr('class', 'increment');
34415
34416             enter.append('button')
34417                 .datum(-1)
34418                 .attr('class', 'decrement');
34419
34420             spinControl.selectAll('button')
34421                 .on('click', function(d) {
34422                     d3.event.preventDefault();
34423                     var num = parseInt(input.node().value || 0, 10);
34424                     if (!isNaN(num)) input.node().value = num + d;
34425                     change();
34426                 });
34427         }
34428     }
34429
34430     function change() {
34431         var t = {};
34432         t[field.key] = input.value() || undefined;
34433         event.change(t);
34434     }
34435
34436     i.tags = function(tags) {
34437         input.value(tags[field.key] || '');
34438     };
34439
34440     i.focus = function() {
34441         input.node().focus();
34442     };
34443
34444     return d3.rebind(i, event, 'on');
34445 };
34446 iD.ui.preset.localized = function(field, context) {
34447
34448     var event = d3.dispatch('change'),
34449         wikipedia = iD.wikipedia(),
34450         input, localizedInputs, wikiTitles,
34451         entity;
34452
34453     function i(selection) {
34454         input = selection.selectAll('.localized-main')
34455             .data([0]);
34456
34457         input.enter().append('input')
34458             .attr('type', 'text')
34459             .attr('id', 'preset-input-' + field.id)
34460             .attr('class', 'localized-main')
34461             .attr('placeholder', field.placeholder());
34462
34463         if (field.id === 'name') {
34464             var preset = context.presets().match(entity, context.graph());
34465             input.call(d3.combobox().fetcher(
34466                 iD.util.SuggestNames(preset, iD.data.suggestions)
34467             ));
34468         }
34469
34470         input
34471             .on('blur', change)
34472             .on('change', change);
34473
34474         var translateButton = selection.selectAll('.localized-add')
34475             .data([0]);
34476
34477         translateButton.enter().append('button')
34478             .attr('class', 'button-input-action localized-add minor')
34479             .call(bootstrap.tooltip()
34480                 .title(t('translate.translate'))
34481                 .placement('left'))
34482             .append('span')
34483             .attr('class', 'icon plus');
34484
34485         translateButton
34486             .on('click', addBlank);
34487
34488         localizedInputs = selection.selectAll('.localized-wrap')
34489             .data([0]);
34490
34491         localizedInputs.enter().append('div')
34492             .attr('class', 'localized-wrap');
34493     }
34494
34495     function addBlank() {
34496         d3.event.preventDefault();
34497         var data = localizedInputs.selectAll('div.entry').data();
34498         data.push({ lang: '', value: '' });
34499         localizedInputs.call(render, data);
34500     }
34501
34502     function change() {
34503         var t = {};
34504         t[field.key] = d3.select(this).value() || undefined;
34505         event.change(t);
34506     }
34507
34508     function key(lang) { return field.key + ':' + lang; }
34509
34510     function changeLang(d) {
34511         var lang = d3.select(this).value(),
34512             t = {},
34513             language = _.find(iD.data.wikipedia, function(d) {
34514                 return d[0].toLowerCase() === lang.toLowerCase() ||
34515                     d[1].toLowerCase() === lang.toLowerCase();
34516             });
34517
34518         if (language) lang = language[2];
34519
34520         if (d.lang && d.lang !== lang) {
34521             t[key(d.lang)] = undefined;
34522         }
34523
34524         var value = d3.select(this.parentNode)
34525             .selectAll('.localized-value')
34526             .value();
34527
34528         if (lang && value) {
34529             t[key(lang)] = value;
34530         } else if (lang && wikiTitles && wikiTitles[d.lang]) {
34531             t[key(lang)] = wikiTitles[d.lang];
34532         }
34533
34534         d.lang = lang;
34535         event.change(t);
34536     }
34537
34538     function changeValue(d) {
34539         if (!d.lang) return;
34540         var t = {};
34541         t[key(d.lang)] = d3.select(this).value() || undefined;
34542         event.change(t);
34543     }
34544
34545     function fetcher(value, cb) {
34546         var v = value.toLowerCase();
34547
34548         cb(iD.data.wikipedia.filter(function(d) {
34549             return d[0].toLowerCase().indexOf(v) >= 0 ||
34550             d[1].toLowerCase().indexOf(v) >= 0 ||
34551             d[2].toLowerCase().indexOf(v) >= 0;
34552         }).map(function(d) {
34553             return { value: d[1] };
34554         }));
34555     }
34556
34557     function render(selection, data) {
34558         var wraps = selection.selectAll('div.entry').
34559             data(data, function(d) { return d.lang; });
34560
34561         var innerWrap = wraps.enter()
34562             .insert('div', ':first-child');
34563
34564         innerWrap.attr('class', 'entry')
34565             .each(function() {
34566                 var wrap = d3.select(this);
34567                 var langcombo = d3.combobox().fetcher(fetcher);
34568
34569                 var label = wrap.append('label')
34570                     .attr('class','form-label')
34571                     .text(t('translate.localized_translation_label'))
34572                     .attr('for','localized-lang');
34573
34574                 label.append('button')
34575                     .attr('class', 'minor remove')
34576                     .on('click', function(d){
34577                         d3.event.preventDefault();
34578                         var t = {};
34579                         t[key(d.lang)] = undefined;
34580                         event.change(t);
34581                         d3.select(this.parentNode.parentNode)
34582                             .style('top','0')
34583                             .style('max-height','240px')
34584                             .transition()
34585                             .style('opacity', '0')
34586                             .style('max-height','0px')
34587                             .remove();
34588                     })
34589                     .append('span').attr('class', 'icon delete');
34590
34591                 wrap.append('input')
34592                     .attr('class', 'localized-lang')
34593                     .attr('type', 'text')
34594                     .attr('placeholder',t('translate.localized_translation_language'))
34595                     .on('blur', changeLang)
34596                     .on('change', changeLang)
34597                     .call(langcombo);
34598
34599                 wrap.append('input')
34600                     .on('blur', changeValue)
34601                     .on('change', changeValue)
34602                     .attr('type', 'text')
34603                     .attr('placeholder', t('translate.localized_translation_name'))
34604                     .attr('class', 'localized-value');
34605             });
34606
34607         innerWrap
34608             .style('margin-top', '0px')
34609             .style('max-height', '0px')
34610             .style('opacity', '0')
34611             .transition()
34612             .duration(200)
34613             .style('margin-top', '10px')
34614             .style('max-height', '240px')
34615             .style('opacity', '1')
34616             .each('end', function() {
34617                 d3.select(this)
34618                     .style('max-height', '')
34619                     .style('overflow', 'visible');
34620             });
34621
34622         wraps.exit()
34623             .transition()
34624             .duration(200)
34625             .style('max-height','0px')
34626             .style('opacity', '0')
34627             .style('top','-10px')
34628             .remove();
34629
34630         var entry = selection.selectAll('.entry');
34631
34632         entry.select('.localized-lang')
34633             .value(function(d) {
34634                 var lang = _.find(iD.data.wikipedia, function(lang) { return lang[2] === d.lang; });
34635                 return lang ? lang[1] : d.lang;
34636             });
34637
34638         entry.select('.localized-value')
34639             .value(function(d) { return d.value; });
34640     }
34641
34642     i.tags = function(tags) {
34643
34644         // Fetch translations from wikipedia
34645         if (tags.wikipedia && !wikiTitles) {
34646             wikiTitles = {};
34647             var wm = tags.wikipedia.match(/([^:]+):(.+)/);
34648             if (wm && wm[0] && wm[1]) {
34649                 wikipedia.translations(wm[1], wm[2], function(d) {
34650                     wikiTitles = d;
34651                 });
34652             }
34653         }
34654
34655         input.value(tags[field.key] || '');
34656
34657         var postfixed = [];
34658         for (var i in tags) {
34659             var m = i.match(new RegExp(field.key + ':([a-zA-Z_-]+)$'));
34660             if (m && m[1]) {
34661                 postfixed.push({ lang: m[1], value: tags[i]});
34662             }
34663         }
34664
34665         localizedInputs.call(render, postfixed.reverse());
34666     };
34667
34668     i.focus = function() {
34669         input.node().focus();
34670     };
34671
34672     i.entity = function(_) {
34673         entity = _;
34674     };
34675
34676     return d3.rebind(i, event, 'on');
34677 };
34678 iD.ui.preset.maxspeed = function(field, context) {
34679
34680     var event = d3.dispatch('change'),
34681         entity,
34682         imperial,
34683         unitInput,
34684         combobox,
34685         input;
34686
34687     var metricValues = [20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],
34688         imperialValues = [20, 25, 30, 35, 40, 45, 50, 55, 65, 70];
34689
34690     function maxspeed(selection) {
34691         combobox = d3.combobox();
34692         var unitCombobox = d3.combobox().data(['km/h', 'mph'].map(comboValues));
34693
34694         input = selection.selectAll('#preset-input-' + field.id)
34695             .data([0]);
34696
34697         input.enter().append('input')
34698             .attr('type', 'text')
34699             .attr('id', 'preset-input-' + field.id)
34700             .attr('placeholder', field.placeholder());
34701
34702         input
34703             .call(combobox)
34704             .on('change', change)
34705             .on('blur', change);
34706
34707         var childNodes = context.graph().childNodes(context.entity(entity.id)),
34708             loc = childNodes[~~(childNodes.length/2)].loc;
34709
34710         imperial = _.any(iD.data.imperial.features, function(f) {
34711             return _.any(f.geometry.coordinates, function(d) {
34712                 return iD.geo.pointInPolygon(loc, d[0]);
34713             });
34714         });
34715
34716         unitInput = selection.selectAll('input.maxspeed-unit')
34717             .data([0]);
34718
34719         unitInput.enter().append('input')
34720             .attr('type', 'text')
34721             .attr('class', 'maxspeed-unit');
34722
34723         unitInput
34724             .on('blur', changeUnits)
34725             .on('change', changeUnits)
34726             .call(unitCombobox);
34727
34728         function changeUnits() {
34729             imperial = unitInput.value() === 'mph';
34730             unitInput.value(imperial ? 'mph' : 'km/h');
34731             setSuggestions();
34732             change();
34733         }
34734
34735     }
34736
34737     function setSuggestions() {
34738         combobox.data((imperial ? imperialValues : metricValues).map(comboValues));
34739         unitInput.value(imperial ? 'mph' : 'km/h');
34740     }
34741
34742     function comboValues(d) {
34743         return {
34744             value: d.toString(),
34745             title: d.toString()
34746         };
34747     }
34748
34749     function change() {
34750         var tag = {},
34751             value = input.value();
34752
34753         if (!value) {
34754             tag[field.key] = undefined;
34755         } else if (isNaN(value) || !imperial) {
34756             tag[field.key] = value;
34757         } else {
34758             tag[field.key] = value + ' mph';
34759         }
34760
34761         event.change(tag);
34762     }
34763
34764     maxspeed.tags = function(tags) {
34765         var value = tags[field.key];
34766
34767         if (value && value.indexOf('mph') >= 0) {
34768             value = parseInt(value, 10);
34769             imperial = true;
34770         } else if (value) {
34771             imperial = false;
34772         }
34773
34774         setSuggestions();
34775
34776         input.value(value || '');
34777     };
34778
34779     maxspeed.focus = function() {
34780         input.node().focus();
34781     };
34782
34783     maxspeed.entity = function(_) {
34784         entity = _;
34785     };
34786
34787     return d3.rebind(maxspeed, event, 'on');
34788 };
34789 iD.ui.preset.radio = function(field) {
34790
34791     var event = d3.dispatch('change'),
34792         labels, radios, placeholder;
34793
34794     function radio(selection) {
34795         selection.classed('preset-radio', true);
34796
34797         var wrap = selection.selectAll('.preset-input-wrap')
34798             .data([0]);
34799
34800         var buttonWrap = wrap.enter().append('div')
34801             .attr('class', 'preset-input-wrap toggle-list');
34802
34803         buttonWrap.append('span')
34804             .attr('class', 'placeholder');
34805
34806         placeholder = selection.selectAll('.placeholder');
34807
34808         labels = wrap.selectAll('label')
34809             .data(field.options || field.keys);
34810
34811         var enter = labels.enter().append('label');
34812
34813         enter.append('input')
34814             .attr('type', 'radio')
34815             .attr('name', field.id)
34816             .attr('value', function(d) { return field.t('options.' + d, { 'default': d }); })
34817             .attr('checked', false);
34818
34819         enter.append('span')
34820             .text(function(d) { return field.t('options.' + d, { 'default': d }); });
34821
34822         radios = labels.selectAll('input')
34823             .on('change', change);
34824     }
34825
34826     function change() {
34827         var t = {};
34828         if (field.key) t[field.key] = undefined;
34829         radios.each(function(d) {
34830             var active = d3.select(this).property('checked');
34831             if (field.key) {
34832                 if (active) t[field.key] = d;
34833             } else {
34834                 t[d] = active ? 'yes' : undefined;
34835             }
34836         });
34837         event.change(t);
34838     }
34839
34840     radio.tags = function(tags) {
34841         function checked(d) {
34842             if (field.key) {
34843                 return tags[field.key] === d;
34844             } else {
34845                 return !!(tags[d] && tags[d] !== 'no');
34846             }
34847         }
34848
34849         labels.classed('active', checked);
34850         radios.property('checked', checked);
34851         var selection = radios.filter(function() { return this.checked; });
34852         if (selection.empty()) {
34853             placeholder.text(t('inspector.none'));
34854         } else {
34855             placeholder.text(selection.attr('value'));
34856         }
34857     };
34858
34859     radio.focus = function() {
34860         radios.node().focus();
34861     };
34862
34863     return d3.rebind(radio, event, 'on');
34864 };
34865 iD.ui.preset.restrictions = function(field, context) {
34866     var event = d3.dispatch('change'),
34867         vertexID,
34868         fromNodeID;
34869
34870     function restrictions(selection) {
34871         var wrap = selection.selectAll('.preset-input-wrap')
34872             .data([0]);
34873
34874         var enter = wrap.enter().append('div')
34875             .attr('class', 'preset-input-wrap');
34876
34877         enter.append('div')
34878             .attr('class', 'restriction-help');
34879
34880         enter.append('svg')
34881             .call(iD.svg.Surface(context))
34882             .call(iD.behavior.Hover(context));
34883
34884         var intersection = iD.geo.Intersection(context.graph(), vertexID),
34885             graph = intersection.graph,
34886             vertex = graph.entity(vertexID),
34887             surface = wrap.selectAll('svg'),
34888             filter = function () { return true; },
34889             extent = iD.geo.Extent(),
34890             projection = iD.geo.RawMercator(),
34891             lines = iD.svg.Lines(projection, context),
34892             vertices = iD.svg.Vertices(projection, context),
34893             turns = iD.svg.Turns(projection, context);
34894
34895         var d = wrap.dimensions(),
34896             c = [d[0] / 2, d[1] / 2],
34897             z = 21;
34898
34899         projection
34900             .scale(256 * Math.pow(2, z) / (2 * Math.PI));
34901
34902         var s = projection(vertex.loc);
34903
34904         projection
34905             .translate([c[0] - s[0], c[1] - s[1]])
34906             .clipExtent([[0, 0], d]);
34907
34908         surface
34909             .call(vertices, graph, [vertex], filter, extent, z)
34910             .call(lines, graph, intersection.highways, filter)
34911             .call(turns, graph, intersection.turns(fromNodeID));
34912
34913         surface
34914             .on('click.restrictions', click)
34915             .on('mouseover.restrictions', mouseover)
34916             .on('mouseout.restrictions', mouseout);
34917
34918         surface
34919             .selectAll('.selected')
34920             .classed('selected', false);
34921
34922         if (fromNodeID) {
34923             surface
34924                 .selectAll('.' + _.find(intersection.highways, function(way) { return way.contains(fromNodeID); }).id)
34925                 .classed('selected', true);
34926         }
34927
34928         mouseout();
34929
34930         context.history()
34931             .on('change.restrictions', render);
34932
34933         d3.select(window)
34934             .on('resize.restrictions', render);
34935
34936         function click() {
34937             var datum = d3.event.target.__data__;
34938             if (datum instanceof iD.Entity) {
34939                 fromNodeID = datum.nodes[(datum.first() === vertexID) ? 1 : datum.nodes.length - 2];
34940                 render();
34941             } else if (datum instanceof iD.geo.Turn) {
34942                 if (datum.restriction) {
34943                     context.perform(
34944                         iD.actions.UnrestrictTurn(datum, projection),
34945                         t('operations.restriction.annotation.delete'));
34946                 } else {
34947                     context.perform(
34948                         iD.actions.RestrictTurn(datum, projection),
34949                         t('operations.restriction.annotation.create'));
34950                 }
34951             }
34952         }
34953
34954         function mouseover() {
34955             var datum = d3.event.target.__data__;
34956             if (datum instanceof iD.geo.Turn) {
34957                 var graph = context.graph(),
34958                     presets = context.presets(),
34959                     preset;
34960
34961                 if (datum.restriction) {
34962                     preset = presets.match(graph.entity(datum.restriction), graph);
34963                 } else {
34964                     preset = presets.item('type/restriction/' +
34965                         iD.geo.inferRestriction(
34966                             graph,
34967                             datum.from,
34968                             datum.via,
34969                             datum.to,
34970                             projection));
34971                 }
34972
34973                 wrap.selectAll('.restriction-help')
34974                     .text(t('operations.restriction.help.' +
34975                         (datum.restriction ? 'toggle_off' : 'toggle_on'),
34976                         {restriction: preset.name()}));
34977             }
34978         }
34979
34980         function mouseout() {
34981             wrap.selectAll('.restriction-help')
34982                 .text(t('operations.restriction.help.' +
34983                     (fromNodeID ? 'toggle' : 'select')));
34984         }
34985
34986         function render() {
34987             if (context.hasEntity(vertexID)) {
34988                 restrictions(selection);
34989             }
34990         }
34991     }
34992
34993     restrictions.entity = function(_) {
34994         if (!vertexID || vertexID !== _.id) {
34995             fromNodeID = null;
34996             vertexID = _.id;
34997         }
34998     };
34999
35000     restrictions.tags = function() {};
35001     restrictions.focus = function() {};
35002
35003     return d3.rebind(restrictions, event, 'on');
35004 };
35005 iD.ui.preset.textarea = function(field) {
35006
35007     var event = d3.dispatch('change'),
35008         input;
35009
35010     function i(selection) {
35011         input = selection.selectAll('textarea')
35012             .data([0]);
35013
35014         input.enter().append('textarea')
35015             .attr('id', 'preset-input-' + field.id)
35016             .attr('placeholder', field.placeholder() || t('inspector.unknown'))
35017             .attr('maxlength', 255);
35018
35019         input
35020             .on('blur', change)
35021             .on('change', change);
35022     }
35023
35024     function change() {
35025         var t = {};
35026         t[field.key] = input.value() || undefined;
35027         event.change(t);
35028     }
35029
35030     i.tags = function(tags) {
35031         input.value(tags[field.key] || '');
35032     };
35033
35034     i.focus = function() {
35035         input.node().focus();
35036     };
35037
35038     return d3.rebind(i, event, 'on');
35039 };
35040 iD.ui.preset.wikipedia = function(field, context) {
35041
35042     var event = d3.dispatch('change'),
35043         wikipedia = iD.wikipedia(),
35044         link, entity, lang, title;
35045
35046     function i(selection) {
35047
35048         var langcombo = d3.combobox()
35049             .fetcher(function(value, cb) {
35050                 var v = value.toLowerCase();
35051
35052                 cb(iD.data.wikipedia.filter(function(d) {
35053                     return d[0].toLowerCase().indexOf(v) >= 0 ||
35054                         d[1].toLowerCase().indexOf(v) >= 0 ||
35055                         d[2].toLowerCase().indexOf(v) >= 0;
35056                 }).map(function(d) {
35057                     return { value: d[1] };
35058                 }));
35059             });
35060
35061         var titlecombo = d3.combobox()
35062             .fetcher(function(value, cb) {
35063
35064                 if (!value) value = context.entity(entity.id).tags.name || '';
35065                 var searchfn = value.length > 7 ? wikipedia.search : wikipedia.suggestions;
35066
35067                 searchfn(language()[2], value, function(query, data) {
35068                     cb(data.map(function(d) {
35069                         return { value: d };
35070                     }));
35071                 });
35072             });
35073
35074         lang = selection.selectAll('input.wiki-lang')
35075             .data([0]);
35076
35077         lang.enter().append('input')
35078             .attr('type', 'text')
35079             .attr('class', 'wiki-lang')
35080             .value('English');
35081
35082         lang
35083             .call(langcombo)
35084             .on('blur', changeLang)
35085             .on('change', changeLang);
35086
35087         title = selection.selectAll('input.wiki-title')
35088             .data([0]);
35089
35090         title.enter().append('input')
35091             .attr('type', 'text')
35092             .attr('class', 'wiki-title')
35093             .attr('id', 'preset-input-' + field.id);
35094
35095         title
35096             .call(titlecombo)
35097             .on('blur', change)
35098             .on('change', change);
35099
35100         link = selection.selectAll('a.wiki-link')
35101             .data([0]);
35102
35103         link.enter().append('a')
35104             .attr('class', 'wiki-link button-input-action minor')
35105             .attr('target', '_blank')
35106             .append('span')
35107             .attr('class', 'icon out-link');
35108     }
35109
35110     function language() {
35111         var value = lang.value().toLowerCase();
35112         return _.find(iD.data.wikipedia, function(d) {
35113             return d[0].toLowerCase() === value ||
35114                 d[1].toLowerCase() === value ||
35115                 d[2].toLowerCase() === value;
35116         }) || iD.data.wikipedia[0];
35117     }
35118
35119     function changeLang() {
35120         lang.value(language()[1]);
35121         change();
35122     }
35123
35124     function change() {
35125         var value = title.value(),
35126             m = value.match(/https?:\/\/([a-z]+)\.wikipedia\.org\/wiki\/(.+)/),
35127             l = m && _.find(iD.data.wikipedia, function(d) { return m[1] === d[2]; });
35128
35129         if (l) {
35130             // Normalize title http://www.mediawiki.org/wiki/API:Query#Title_normalization
35131             value = m[2].replace(/_/g, ' ');
35132             value = value.slice(0, 1).toUpperCase() + value.slice(1);
35133             lang.value(l[1]);
35134             title.value(value);
35135         }
35136
35137         var t = {};
35138         t[field.key] = value ? language()[2] + ':' + value : undefined;
35139         event.change(t);
35140     }
35141
35142     i.tags = function(tags) {
35143         var value = tags[field.key] || '',
35144             m = value.match(/([^:]+):(.+)/),
35145             l = m && _.find(iD.data.wikipedia, function(d) { return m[1] === d[2]; });
35146
35147         // value in correct format
35148         if (l) {
35149             lang.value(l[1]);
35150             title.value(m[2]);
35151             link.attr('href', 'http://' + m[1] + '.wikipedia.org/wiki/' + m[2]);
35152
35153         // unrecognized value format
35154         } else {
35155             title.value(value);
35156             link.attr('href', 'http://en.wikipedia.org/wiki/Special:Search?search=' + value);
35157         }
35158     };
35159
35160     i.entity = function(_) {
35161         entity = _;
35162     };
35163
35164     i.focus = function() {
35165         title.node().focus();
35166     };
35167
35168     return d3.rebind(i, event, 'on');
35169 };
35170 iD.ui.intro.area = function(context, reveal) {
35171
35172     var event = d3.dispatch('done'),
35173         timeout;
35174
35175     var step = {
35176         title: 'intro.areas.title'
35177     };
35178
35179     step.enter = function() {
35180
35181         var playground = [-85.63552, 41.94159],
35182             corner = [-85.63565411045074, 41.9417715536927];
35183         context.map().centerZoom(playground, 19);
35184         reveal('button.add-area', t('intro.areas.add'), {tooltipClass: 'intro-areas-add'});
35185
35186         context.on('enter.intro', addArea);
35187
35188         function addArea(mode) {
35189             if (mode.id !== 'add-area') return;
35190             context.on('enter.intro', drawArea);
35191
35192             var padding = 120 * Math.pow(2, context.map().zoom() - 19);
35193             var pointBox = iD.ui.intro.pad(corner, padding, context);
35194             reveal(pointBox, t('intro.areas.corner'));
35195
35196             context.map().on('move.intro', function() {
35197                 padding = 120 * Math.pow(2, context.map().zoom() - 19);
35198                 pointBox = iD.ui.intro.pad(corner, padding, context);
35199                 reveal(pointBox, t('intro.areas.corner'), {duration: 0});
35200             });
35201         }
35202
35203         function drawArea(mode) {
35204             if (mode.id !== 'draw-area') return;
35205             context.on('enter.intro', enterSelect);
35206
35207             var padding = 150 * Math.pow(2, context.map().zoom() - 19);
35208             var pointBox = iD.ui.intro.pad(playground, padding, context);
35209             reveal(pointBox, t('intro.areas.place'));
35210
35211             context.map().on('move.intro', function() {
35212                 padding = 150 * Math.pow(2, context.map().zoom() - 19);
35213                 pointBox = iD.ui.intro.pad(playground, padding, context);
35214                 reveal(pointBox, t('intro.areas.place'), {duration: 0});
35215             });
35216         }
35217
35218         function enterSelect(mode) {
35219             if (mode.id !== 'select') return;
35220             context.map().on('move.intro', null);
35221             context.on('enter.intro', null);
35222
35223             timeout = setTimeout(function() {
35224                 reveal('.preset-search-input', t('intro.areas.search', {name: context.presets().item('leisure/playground').name()}));
35225                 d3.select('.preset-search-input').on('keyup.intro', keySearch);
35226             }, 500);
35227         }
35228
35229         function keySearch() {
35230             var first = d3.select('.preset-list-item:first-child');
35231             if (first.classed('preset-leisure-playground')) {
35232                 reveal(first.select('.preset-list-button').node(), t('intro.areas.choose'));
35233                 d3.selection.prototype.one.call(context.history(), 'change.intro', selectedPreset);
35234                 d3.select('.preset-search-input').on('keyup.intro', null);
35235             }
35236         }
35237
35238         function selectedPreset() {
35239             reveal('.pane', t('intro.areas.describe'));
35240             context.on('exit.intro', event.done);
35241         }
35242     };
35243
35244     step.exit = function() {
35245         window.clearTimeout(timeout);
35246         context.on('enter.intro', null);
35247         context.on('exit.intro', null);
35248         context.history().on('change.intro', null);
35249         context.map().on('move.intro', null);
35250         d3.select('.preset-search-input').on('keyup.intro', null);
35251     };
35252
35253     return d3.rebind(step, event, 'on');
35254 };
35255 iD.ui.intro.line = function(context, reveal) {
35256
35257     var event = d3.dispatch('done'),
35258         timeouts = [];
35259
35260     var step = {
35261         title: 'intro.lines.title'
35262     };
35263
35264     function timeout(f, t) {
35265         timeouts.push(window.setTimeout(f, t));
35266     }
35267
35268     step.enter = function() {
35269
35270         var centroid = [-85.62830, 41.95699];
35271         var midpoint = [-85.62975395449628, 41.95787501510204];
35272         var start = [-85.6297754121684, 41.95805253325314];
35273         var intersection = [-85.62974496187628, 41.95742515554585];
35274
35275         context.map().centerZoom(start, 18);
35276         reveal('button.add-line', t('intro.lines.add'), {tooltipClass: 'intro-lines-add'});
35277
35278         context.on('enter.intro', addLine);
35279
35280         function addLine(mode) {
35281             if (mode.id !== 'add-line') return;
35282             context.on('enter.intro', drawLine);
35283
35284             var padding = 150 * Math.pow(2, context.map().zoom() - 18);
35285             var pointBox = iD.ui.intro.pad(start, padding, context);
35286             reveal(pointBox, t('intro.lines.start'));
35287
35288             context.map().on('move.intro', function() {
35289                 padding = 150 * Math.pow(2, context.map().zoom() - 18);
35290                 pointBox = iD.ui.intro.pad(start, padding, context);
35291                 reveal(pointBox, t('intro.lines.start'), {duration: 0});
35292             });
35293         }
35294
35295         function drawLine(mode) {
35296             if (mode.id !== 'draw-line') return;
35297             context.history().on('change.intro', addIntersection);
35298             context.on('enter.intro', retry);
35299
35300             var padding = 300 * Math.pow(2, context.map().zoom() - 19);
35301             var pointBox = iD.ui.intro.pad(midpoint, padding, context);
35302             reveal(pointBox, t('intro.lines.intersect'));
35303
35304             context.map().on('move.intro', function() {
35305                 padding = 300 * Math.pow(2, context.map().zoom() - 19);
35306                 pointBox = iD.ui.intro.pad(midpoint, padding, context);
35307                 reveal(pointBox, t('intro.lines.intersect'), {duration: 0});
35308             });
35309         }
35310
35311         // ended line before creating intersection
35312         function retry(mode) {
35313             if (mode.id !== 'select') return;
35314             var pointBox = iD.ui.intro.pad(intersection, 30, context);
35315             reveal(pointBox, t('intro.lines.restart'));
35316             timeout(function() {
35317                 context.replace(iD.actions.DeleteMultiple(mode.selectedIDs()));
35318                 step.exit();
35319                 step.enter();
35320             }, 3000);
35321         }
35322
35323         function addIntersection(changes) {
35324             if ( _.any(changes.created(), function(d) {
35325                 return d.type === 'node' && context.graph().parentWays(d).length > 1;
35326             })) {
35327                 context.history().on('change.intro', null);
35328                 context.on('enter.intro', enterSelect);
35329
35330                 var padding = 900 * Math.pow(2, context.map().zoom() - 19);
35331                 var pointBox = iD.ui.intro.pad(centroid, padding, context);
35332                 reveal(pointBox, t('intro.lines.finish'));
35333
35334                 context.map().on('move.intro', function() {
35335                     padding = 900 * Math.pow(2, context.map().zoom() - 19);
35336                     pointBox = iD.ui.intro.pad(centroid, padding, context);
35337                     reveal(pointBox, t('intro.lines.finish'), {duration: 0});
35338                 });
35339             }
35340         }
35341
35342         function enterSelect(mode) {
35343             if (mode.id !== 'select') return;
35344             context.map().on('move.intro', null);
35345             context.on('enter.intro', null);
35346             d3.select('#curtain').style('pointer-events', 'all');
35347
35348             presetCategory();
35349         }
35350
35351         function presetCategory() {
35352             timeout(function() {
35353                 d3.select('#curtain').style('pointer-events', 'none');
35354                 var road = d3.select('.preset-category-road .preset-list-button');
35355                 reveal(road.node(), t('intro.lines.road'));
35356                 road.one('click.intro', roadCategory);
35357             }, 500);
35358         }
35359
35360         function roadCategory() {
35361             timeout(function() {
35362                 var grid = d3.select('.subgrid');
35363                 reveal(grid.node(), t('intro.lines.residential'));
35364                 grid.selectAll(':not(.preset-highway-residential) .preset-list-button')
35365                     .one('click.intro', retryPreset);
35366                 grid.selectAll('.preset-highway-residential .preset-list-button')
35367                     .one('click.intro', roadDetails);
35368             }, 500);
35369         }
35370
35371         // selected wrong road type
35372         function retryPreset() {
35373             timeout(function() {
35374                 var preset = d3.select('.entity-editor-pane .preset-list-button');
35375                 reveal(preset.node(), t('intro.lines.wrong_preset'));
35376                 preset.one('click.intro', presetCategory);
35377             }, 500);
35378         }
35379
35380         function roadDetails() {
35381             reveal('.pane', t('intro.lines.describe'));
35382             context.on('exit.intro', event.done);
35383         }
35384
35385     };
35386
35387     step.exit = function() {
35388         d3.select('#curtain').style('pointer-events', 'none');
35389         timeouts.forEach(window.clearTimeout);
35390         context.on('enter.intro', null);
35391         context.on('exit.intro', null);
35392         context.map().on('move.intro', null);
35393         context.history().on('change.intro', null);
35394     };
35395
35396     return d3.rebind(step, event, 'on');
35397 };
35398 iD.ui.intro.navigation = function(context, reveal) {
35399
35400     var event = d3.dispatch('done'),
35401         timeouts = [];
35402
35403     var step = {
35404         title: 'intro.navigation.title'
35405     };
35406
35407     function set(f, t) {
35408         timeouts.push(window.setTimeout(f, t));
35409     }
35410
35411     /*
35412      * Steps:
35413      * Drag map
35414      * Select poi
35415      * Show editor header
35416      * Show editor pane
35417      * Select road
35418      * Show header
35419      */
35420
35421     step.enter = function() {
35422
35423         var rect = context.surfaceRect(),
35424             map = {
35425                 left: rect.left + 10,
35426                 top: rect.top + 70,
35427                 width: rect.width - 70,
35428                 height: rect.height - 170
35429             };
35430
35431         context.map().centerZoom([-85.63591, 41.94285], 19);
35432
35433         reveal(map, t('intro.navigation.drag'));
35434
35435         context.map().on('move.intro', _.debounce(function() {
35436             context.map().on('move.intro', null);
35437             townhall();
35438             context.on('enter.intro', inspectTownHall);
35439         }, 400));
35440
35441         function townhall() {
35442             var hall = [-85.63645945147184, 41.942986488012565];
35443
35444             var point = context.projection(hall);
35445             if (point[0] < 0 || point[0] > rect.width ||
35446                 point[1] < 0 || point[1] > rect.height) {
35447                 context.map().center(hall);
35448             }
35449
35450             var box = iD.ui.intro.pointBox(hall, context);
35451             reveal(box, t('intro.navigation.select'));
35452
35453             context.map().on('move.intro', function() {
35454                 var box = iD.ui.intro.pointBox(hall, context);
35455                 reveal(box, t('intro.navigation.select'), {duration: 0});
35456             });
35457         }
35458
35459         function inspectTownHall(mode) {
35460             if (mode.id !== 'select') return;
35461             context.on('enter.intro', null);
35462             context.map().on('move.intro', null);
35463             set(function() {
35464                 reveal('.entity-editor-pane', t('intro.navigation.pane'));
35465                 context.on('exit.intro', event.done);
35466             }, 700);
35467         }
35468
35469     };
35470
35471     step.exit = function() {
35472         context.map().on('move.intro', null);
35473         context.on('enter.intro', null);
35474         context.on('exit.intro', null);
35475         timeouts.forEach(window.clearTimeout);
35476     };
35477
35478     return d3.rebind(step, event, 'on');
35479 };
35480 iD.ui.intro.point = function(context, reveal) {
35481
35482     var event = d3.dispatch('done'),
35483         timeouts = [];
35484
35485     var step = {
35486         title: 'intro.points.title'
35487     };
35488
35489     function setTimeout(f, t) {
35490         timeouts.push(window.setTimeout(f, t));
35491     }
35492
35493     step.enter = function() {
35494
35495         context.map().centerZoom([-85.63279, 41.94394], 19);
35496         reveal('button.add-point', t('intro.points.add'), {tooltipClass: 'intro-points-add'});
35497
35498         var corner = [-85.632481,41.944094];
35499
35500         context.on('enter.intro', addPoint);
35501
35502         function addPoint(mode) {
35503             if (mode.id !== 'add-point') return;
35504             context.on('enter.intro', enterSelect);
35505
35506             var pointBox = iD.ui.intro.pad(corner, 150, context);
35507             reveal(pointBox, t('intro.points.place'));
35508
35509             context.map().on('move.intro', function() {
35510                 pointBox = iD.ui.intro.pad(corner, 150, context);
35511                 reveal(pointBox, t('intro.points.place'), {duration: 0});
35512             });
35513
35514         }
35515
35516         function enterSelect(mode) {
35517             if (mode.id !== 'select') return;
35518             context.map().on('move.intro', null);
35519             context.on('enter.intro', null);
35520
35521             setTimeout(function() {
35522                 reveal('.preset-search-input', t('intro.points.search', {name: context.presets().item('amenity/cafe').name()}));
35523                 d3.select('.preset-search-input').on('keyup.intro', keySearch);
35524             }, 500);
35525         }
35526
35527         function keySearch() {
35528             var first = d3.select('.preset-list-item:first-child');
35529             if (first.classed('preset-amenity-cafe')) {
35530                 reveal(first.select('.preset-list-button').node(), t('intro.points.choose'));
35531                 d3.selection.prototype.one.call(context.history(), 'change.intro', selectedPreset);
35532
35533                 d3.select('.preset-search-input').on('keydown.intro', function() {
35534                     // Prevent search from updating and changing the grid
35535                     d3.event.stopPropagation();
35536                     d3.event.preventDefault();
35537                 }, true).on('keyup.intro', null);
35538             }
35539         }
35540
35541         function selectedPreset() {
35542             setTimeout(function() {
35543                 reveal('.entity-editor-pane', t('intro.points.describe'), {tooltipClass: 'intro-points-describe'});
35544                 context.history().on('change.intro', closeEditor);
35545                 context.on('exit.intro', selectPoint);
35546             }, 400);
35547         }
35548
35549         function closeEditor() {
35550             d3.select('.preset-search-input').on('keydown.intro', null);
35551             context.history().on('change.intro', null);
35552             reveal('.entity-editor-pane', t('intro.points.close'));
35553         }
35554
35555         function selectPoint() {
35556             context.on('exit.intro', null);
35557             context.history().on('change.intro', null);
35558             context.on('enter.intro', enterReselect);
35559
35560             var pointBox = iD.ui.intro.pad(corner, 150, context);
35561             reveal(pointBox, t('intro.points.reselect'));
35562
35563             context.map().on('move.intro', function() {
35564                 pointBox = iD.ui.intro.pad(corner, 150, context);
35565                 reveal(pointBox, t('intro.points.reselect'), {duration: 0});
35566             });
35567         }
35568
35569         function enterReselect(mode) {
35570             if (mode.id !== 'select') return;
35571             context.map().on('move.intro', null);
35572             context.on('enter.intro', null);
35573
35574             setTimeout(function() {
35575                 reveal('.entity-editor-pane', t('intro.points.fixname'));
35576                 context.on('exit.intro', deletePoint);
35577             }, 500);
35578         }
35579
35580         function deletePoint() {
35581             context.on('exit.intro', null);
35582             context.on('enter.intro', enterDelete);
35583
35584             var pointBox = iD.ui.intro.pad(corner, 150, context);
35585             reveal(pointBox, t('intro.points.reselect_delete'));
35586
35587             context.map().on('move.intro', function() {
35588                 pointBox = iD.ui.intro.pad(corner, 150, context);
35589                 reveal(pointBox, t('intro.points.reselect_delete'), {duration: 0});
35590             });
35591         }
35592
35593         function enterDelete(mode) {
35594             if (mode.id !== 'select') return;
35595             context.map().on('move.intro', null);
35596             context.on('enter.intro', null);
35597             context.on('exit.intro', deletePoint);
35598             context.map().on('move.intro', deletePoint);
35599             context.history().on('change.intro', deleted);
35600
35601             setTimeout(function() {
35602                 var node = d3.select('.radial-menu-item-delete').node();
35603                 var pointBox = iD.ui.intro.pad(node.getBoundingClientRect(), 50, context);
35604                 reveal(pointBox, t('intro.points.delete'));
35605             }, 300);
35606         }
35607
35608         function deleted(changed) {
35609             if (changed.deleted().length) event.done();
35610         }
35611
35612     };
35613
35614     step.exit = function() {
35615         timeouts.forEach(window.clearTimeout);
35616         context.on('exit.intro', null);
35617         context.on('enter.intro', null);
35618         context.map().on('move.intro', null);
35619         context.history().on('change.intro', null);
35620         d3.select('.preset-search-input').on('keyup.intro', null).on('keydown.intro', null);
35621     };
35622
35623     return d3.rebind(step, event, 'on');
35624 };
35625 iD.ui.intro.startEditing = function(context, reveal) {
35626
35627     var event = d3.dispatch('done', 'startEditing'),
35628         modal,
35629         timeouts = [];
35630
35631     var step = {
35632         title: 'intro.startediting.title'
35633     };
35634
35635     function timeout(f, t) {
35636         timeouts.push(window.setTimeout(f, t));
35637     }
35638
35639     step.enter = function() {
35640
35641         reveal('.map-control.help-control', t('intro.startediting.help'));
35642
35643         timeout(function() {
35644             reveal('#bar button.save', t('intro.startediting.save'));
35645         }, 3500);
35646
35647         timeout(function() {
35648             reveal('#surface');
35649         }, 7000);
35650
35651         timeout(function() {
35652             modal = iD.ui.modal(context.container());
35653
35654             modal.select('.modal')
35655                 .attr('class', 'modal-splash modal col6');
35656
35657             modal.selectAll('.close').remove();
35658
35659             var startbutton = modal.select('.content')
35660                 .attr('class', 'fillL')
35661                     .append('button')
35662                         .attr('class', 'modal-section huge-modal-button')
35663                         .on('click', function() {
35664                                 modal.remove();
35665                         });
35666
35667                 startbutton.append('div')
35668                     .attr('class','illustration');
35669                 startbutton.append('h2')
35670                     .text(t('intro.startediting.start'));
35671
35672             event.startEditing();
35673
35674         }, 7500);
35675     };
35676
35677     step.exit = function() {
35678         if (modal) modal.remove();
35679         timeouts.forEach(window.clearTimeout);
35680     };
35681
35682     return d3.rebind(step, event, 'on');
35683 };
35684 iD.presets = function() {
35685
35686     // an iD.presets.Collection with methods for
35687     // loading new data and returning defaults
35688
35689     var all = iD.presets.Collection([]),
35690         defaults = { area: all, line: all, point: all, vertex: all, relation: all },
35691         fields = {},
35692         universal = [],
35693         recent = iD.presets.Collection([]);
35694
35695     // Index of presets by (geometry, tag key).
35696     var index = {
35697         point: {},
35698         vertex: {},
35699         line: {},
35700         area: {},
35701         relation: {}
35702     };
35703
35704     all.match = function(entity, resolver) {
35705         var geometry = entity.geometry(resolver),
35706             geometryMatches = index[geometry],
35707             best = -1,
35708             match;
35709
35710         for (var k in entity.tags) {
35711             var keyMatches = geometryMatches[k];
35712             if (!keyMatches) continue;
35713
35714             for (var i = 0; i < keyMatches.length; i++) {
35715                 var score = keyMatches[i].matchScore(entity);
35716                 if (score > best) {
35717                     best = score;
35718                     match = keyMatches[i];
35719                 }
35720             }
35721         }
35722
35723         return match || all.item(geometry);
35724     };
35725
35726     // Because of the open nature of tagging, iD will never have a complete
35727     // list of tags used in OSM, so we want it to have logic like "assume
35728     // that a closed way with an amenity tag is an area, unless the amenity
35729     // is one of these specific types". This function computes a structure
35730     // that allows testing of such conditions, based on the presets designated
35731     // as as supporting (or not supporting) the area geometry.
35732     //
35733     // The returned object L is a whitelist/blacklist of tags. A closed way
35734     // with a tag (k, v) is considered to be an area if `k in L && !(v in L[k])`
35735     // (see `iD.Way#isArea()`). In other words, the keys of L form the whitelist,
35736     // and the subkeys form the blacklist.
35737     all.areaKeys = function() {
35738         var areaKeys = {},
35739             ignore = ['barrier', 'highway', 'footway', 'railway', 'type'],
35740             presets = _.reject(all.collection, 'suggestion');
35741
35742         // whitelist
35743         presets.forEach(function(d) {
35744             for (var key in d.tags) break;
35745             if (!key) return;
35746             if (ignore.indexOf(key) !== -1) return;
35747
35748             if (d.geometry.indexOf('area') !== -1) {
35749                 areaKeys[key] = areaKeys[key] || {};
35750             }
35751         });
35752
35753         // blacklist
35754         presets.forEach(function(d) {
35755             for (var key in d.tags) break;
35756             if (!key) return;
35757             if (ignore.indexOf(key) !== -1) return;
35758
35759             var value = d.tags[key];
35760             if (d.geometry.indexOf('area') === -1 && key in areaKeys && value !== '*') {
35761                 areaKeys[key][value] = true;
35762             }
35763         });
35764
35765         return areaKeys;
35766     };
35767
35768     all.load = function(d) {
35769
35770         if (d.fields) {
35771             _.forEach(d.fields, function(d, id) {
35772                 fields[id] = iD.presets.Field(id, d);
35773                 if (d.universal) universal.push(fields[id]);
35774             });
35775         }
35776
35777         if (d.presets) {
35778             _.forEach(d.presets, function(d, id) {
35779                 all.collection.push(iD.presets.Preset(id, d, fields));
35780             });
35781         }
35782
35783         if (d.categories) {
35784             _.forEach(d.categories, function(d, id) {
35785                 all.collection.push(iD.presets.Category(id, d, all));
35786             });
35787         }
35788
35789         if (d.defaults) {
35790             var getItem = _.bind(all.item, all);
35791             defaults = {
35792                 area: iD.presets.Collection(d.defaults.area.map(getItem)),
35793                 line: iD.presets.Collection(d.defaults.line.map(getItem)),
35794                 point: iD.presets.Collection(d.defaults.point.map(getItem)),
35795                 vertex: iD.presets.Collection(d.defaults.vertex.map(getItem)),
35796                 relation: iD.presets.Collection(d.defaults.relation.map(getItem))
35797             };
35798         }
35799
35800         for (var i = 0; i < all.collection.length; i++) {
35801             var preset = all.collection[i],
35802                 geometry = preset.geometry;
35803
35804             for (var j = 0; j < geometry.length; j++) {
35805                 var g = index[geometry[j]];
35806                 for (var k in preset.tags) {
35807                     (g[k] = g[k] || []).push(preset);
35808                 }
35809             }
35810         }
35811
35812         return all;
35813     };
35814
35815     all.field = function(id) {
35816         return fields[id];
35817     };
35818
35819     all.universal = function() {
35820         return universal;
35821     };
35822
35823     all.defaults = function(geometry, n) {
35824         var rec = recent.matchGeometry(geometry).collection.slice(0, 4),
35825             def = _.uniq(rec.concat(defaults[geometry].collection)).slice(0, n - 1);
35826         return iD.presets.Collection(_.unique(rec.concat(def).concat(all.item(geometry))));
35827     };
35828
35829     all.choose = function(preset) {
35830         if (!preset.isFallback()) {
35831             recent = iD.presets.Collection(_.unique([preset].concat(recent.collection)));
35832         }
35833         return all;
35834     };
35835
35836     return all;
35837 };
35838 iD.presets.Category = function(id, category, all) {
35839     category = _.clone(category);
35840
35841     category.id = id;
35842
35843     category.members = iD.presets.Collection(category.members.map(function(id) {
35844         return all.item(id);
35845     }));
35846
35847     category.matchGeometry = function(geometry) {
35848         return category.geometry.indexOf(geometry) >= 0;
35849     };
35850
35851     category.matchScore = function() { return -1; };
35852
35853     category.name = function() {
35854         return t('presets.categories.' + id + '.name', {'default': id});
35855     };
35856
35857     category.terms = function() {
35858         return [];
35859     };
35860
35861     return category;
35862 };
35863 iD.presets.Collection = function(collection) {
35864
35865     var maxSearchResults = 50,
35866         maxSuggestionResults = 10;
35867
35868     var presets = {
35869
35870         collection: collection,
35871
35872         item: function(id) {
35873             return _.find(collection, function(d) {
35874                 return d.id === id;
35875             });
35876         },
35877
35878         matchGeometry: function(geometry) {
35879             return iD.presets.Collection(collection.filter(function(d) {
35880                 return d.matchGeometry(geometry);
35881             }));
35882         },
35883
35884         search: function(value, geometry) {
35885             if (!value) return this;
35886
35887             value = value.toLowerCase();
35888
35889             var searchable = _.filter(collection, function(a) {
35890                 return a.searchable !== false && a.suggestion !== true;
35891             }),
35892             suggestions = _.filter(collection, function(a) {
35893                 return a.suggestion === true;
35894             });
35895
35896             // matches value to preset.name
35897             var leading_name = _.filter(searchable, function(a) {
35898                     return leading(a.name().toLowerCase());
35899                 }).sort(function(a, b) {
35900                     var i = a.name().toLowerCase().indexOf(value) - b.name().toLowerCase().indexOf(value);
35901                     if (i === 0) return a.name().length - b.name().length;
35902                     else return i;
35903                 });
35904
35905             // matches value to preset.terms values
35906             var leading_terms = _.filter(searchable, function(a) {
35907                 return _.any(a.terms() || [], leading);
35908             });
35909
35910             function leading(a) {
35911                 var index = a.indexOf(value);
35912                 return index === 0 || a[index - 1] === ' ';
35913             }
35914
35915             // finds close matches to value in preset.name
35916             var levenstein_name = searchable.map(function(a) {
35917                     return {
35918                         preset: a,
35919                         dist: iD.util.editDistance(value, a.name().toLowerCase())
35920                     };
35921                 }).filter(function(a) {
35922                     return a.dist + Math.min(value.length - a.preset.name().length, 0) < 3;
35923                 }).sort(function(a, b) {
35924                     return a.dist - b.dist;
35925                 }).map(function(a) {
35926                     return a.preset;
35927                 });
35928
35929             // finds close matches to value in preset.terms
35930             var leventstein_terms = _.filter(searchable, function(a) {
35931                     return _.any(a.terms() || [], function(b) {
35932                         return iD.util.editDistance(value, b) + Math.min(value.length - b.length, 0) < 3;
35933                     });
35934                 });
35935
35936             function suggestionName(name) {
35937                 var nameArray = name.split(' - ');
35938                 if (nameArray.length > 1) {
35939                     name = nameArray.slice(0, nameArray.length-1).join(' - ');
35940                 }
35941                 return name.toLowerCase();
35942             }
35943
35944             var leading_suggestions = _.filter(suggestions, function(a) {
35945                     return leading(suggestionName(a.name()));
35946                 }).sort(function(a, b) {
35947                     a = suggestionName(a.name());
35948                     b = suggestionName(b.name());
35949                     var i = a.indexOf(value) - b.indexOf(value);
35950                     if (i === 0) return a.length - b.length;
35951                     else return i;
35952                 });
35953
35954             var leven_suggestions = suggestions.map(function(a) {
35955                     return {
35956                         preset: a,
35957                         dist: iD.util.editDistance(value, suggestionName(a.name()))
35958                     };
35959                 }).filter(function(a) {
35960                     return a.dist + Math.min(value.length - suggestionName(a.preset.name()).length, 0) < 1;
35961                 }).sort(function(a, b) {
35962                     return a.dist - b.dist;
35963                 }).map(function(a) {
35964                     return a.preset;
35965                 });
35966
35967             var other = presets.item(geometry);
35968
35969             var results = leading_name.concat(
35970                             leading_terms,
35971                             leading_suggestions.slice(0, maxSuggestionResults+5),
35972                             levenstein_name,
35973                             leventstein_terms,
35974                             leven_suggestions.slice(0, maxSuggestionResults)
35975                         ).slice(0, maxSearchResults-1);
35976
35977             return iD.presets.Collection(_.unique(
35978                     results.concat(other)
35979                 ));
35980         }
35981     };
35982
35983     return presets;
35984 };
35985 iD.presets.Field = function(id, field) {
35986     field = _.clone(field);
35987
35988     field.id = id;
35989
35990     field.matchGeometry = function(geometry) {
35991         return !field.geometry || field.geometry === geometry;
35992     };
35993
35994     field.t = function(scope, options) {
35995         return t('presets.fields.' + id + '.' + scope, options);
35996     };
35997
35998     field.label = function() {
35999         return field.t('label', {'default': id});
36000     };
36001
36002     var placeholder = field.placeholder;
36003     field.placeholder = function() {
36004         return field.t('placeholder', {'default': placeholder});
36005     };
36006
36007     return field;
36008 };
36009 iD.presets.Preset = function(id, preset, fields) {
36010     preset = _.clone(preset);
36011
36012     preset.id = id;
36013     preset.fields = (preset.fields || []).map(getFields);
36014     preset.geometry = (preset.geometry || []);
36015
36016     function getFields(f) {
36017         return fields[f];
36018     }
36019
36020     preset.matchGeometry = function(geometry) {
36021         return preset.geometry.indexOf(geometry) >= 0;
36022     };
36023
36024     var matchScore = preset.matchScore || 1;
36025     preset.matchScore = function(entity) {
36026         var tags = preset.tags,
36027             score = 0;
36028
36029         for (var t in tags) {
36030             if (entity.tags[t] === tags[t]) {
36031                 score += matchScore;
36032             } else if (tags[t] === '*' && t in entity.tags) {
36033                 score += matchScore / 2;
36034             } else {
36035                 return -1;
36036             }
36037         }
36038
36039         return score;
36040     };
36041
36042     preset.t = function(scope, options) {
36043         return t('presets.presets.' + id + '.' + scope, options);
36044     };
36045
36046     var name = preset.name;
36047     preset.name = function() {
36048         if (preset.suggestion) {
36049             id = id.split('/');
36050             id = id[0] + '/' + id[1];
36051             return name + ' - ' + t('presets.presets.' + id + '.name');
36052         }
36053         return preset.t('name', {'default': name});
36054     };
36055
36056     preset.terms = function() {
36057         return preset.t('terms', {'default': ''}).split(',');
36058     };
36059
36060     preset.isFallback = function() {
36061         return Object.keys(preset.tags).length === 0;
36062     };
36063
36064     preset.reference = function(geometry) {
36065         var key = Object.keys(preset.tags)[0],
36066             value = preset.tags[key];
36067
36068         if (geometry === 'relation' && key === 'type') {
36069             return { rtype: value };
36070         } else if (value === '*') {
36071             return { key: key };
36072         } else {
36073             return { key: key, value: value };
36074         }
36075     };
36076
36077     var removeTags = preset.removeTags || preset.tags;
36078     preset.removeTags = function(tags, geometry) {
36079         tags = _.omit(tags, _.keys(removeTags));
36080
36081         for (var f in preset.fields) {
36082             var field = preset.fields[f];
36083             if (field.matchGeometry(geometry) && field['default'] === tags[field.key]) {
36084                 delete tags[field.key];
36085             }
36086         }
36087
36088         delete tags.area;
36089         return tags;
36090     };
36091
36092     var applyTags = preset.addTags || preset.tags;
36093     preset.applyTags = function(tags, geometry) {
36094         var k;
36095
36096         tags = _.clone(tags);
36097
36098         for (k in applyTags) {
36099             if (applyTags[k] === '*') {
36100                 tags[k] = 'yes';
36101             } else {
36102                 tags[k] = applyTags[k];
36103             }
36104         }
36105
36106         // Add area=yes if necessary.
36107         // This is necessary if the geometry is already an area (e.g. user drew an area) AND any of:
36108         // 1. chosen preset could be either an area or a line (`barrier=city_wall`)
36109         // 2. chosen preset doesn't have a key in areaKeys (`railway=station`)
36110         if (geometry === 'area') {
36111             var needsAreaTag = true;
36112             if (preset.geometry.indexOf('line') === -1) {
36113                 for (k in applyTags) {
36114                     if (k in iD.areaKeys) {
36115                         needsAreaTag = false;
36116                         break;
36117                     }
36118                 }
36119             }
36120             if (needsAreaTag) {
36121                 tags.area = 'yes';
36122             }
36123         }
36124
36125         for (var f in preset.fields) {
36126             var field = preset.fields[f];
36127             if (field.matchGeometry(geometry) && field.key && !tags[field.key] && field['default']) {
36128                 tags[field.key] = field['default'];
36129             }
36130         }
36131
36132         return tags;
36133     };
36134
36135     return preset;
36136 };
36137 iD.validate = function(changes, graph) {
36138     var warnings = [];
36139
36140     // https://github.com/openstreetmap/josm/blob/mirror/src/org/
36141     // openstreetmap/josm/data/validation/tests/UnclosedWays.java#L80
36142     function tagSuggestsArea(change) {
36143         if (_.isEmpty(change.tags)) return false;
36144         var tags = change.tags;
36145         var presence = ['landuse', 'amenities', 'tourism', 'shop'];
36146         for (var i = 0; i < presence.length; i++) {
36147             if (tags[presence[i]] !== undefined) {
36148                 return presence[i] + '=' + tags[presence[i]];
36149             }
36150         }
36151         if (tags.building && tags.building === 'yes') return 'building=yes';
36152     }
36153
36154     if (changes.deleted.length > 100) {
36155         warnings.push({
36156             message: t('validations.many_deletions', { n: changes.deleted.length })
36157         });
36158     }
36159
36160     for (var i = 0; i < changes.created.length; i++) {
36161         var change = changes.created[i],
36162             geometry = change.geometry(graph);
36163
36164         if ((geometry === 'point' || geometry === 'line' || geometry === 'area') && !change.isUsed(graph)) {
36165             warnings.push({
36166                 message: t('validations.untagged_' + geometry),
36167                 tooltip: t('validations.untagged_' + geometry + '_tooltip'),
36168                 entity: change
36169             });
36170         }
36171
36172         var deprecatedTags = change.deprecatedTags();
36173         if (!_.isEmpty(deprecatedTags)) {
36174             warnings.push({
36175                 message: t('validations.deprecated_tags', {
36176                     tags: iD.util.tagText({ tags: deprecatedTags })
36177                 }), entity: change });
36178         }
36179
36180         if (geometry === 'line' && tagSuggestsArea(change)) {
36181             warnings.push({
36182                 message: t('validations.tag_suggests_area', {tag: tagSuggestsArea(change)}),
36183                 entity: change
36184             });
36185         }
36186     }
36187
36188     return warnings;
36189 };
36190 /* jshint ignore:start */
36191 })();
36192 window.locale = { _current: 'en' };
36193
36194 locale.current = function(_) {
36195     if (!arguments.length) return locale._current;
36196     if (locale[_] !== undefined) locale._current = _;
36197     else if (locale[_.split('-')[0]]) locale._current = _.split('-')[0];
36198     return locale;
36199 };
36200
36201 function t(s, o, loc) {
36202     loc = loc || locale._current;
36203
36204     var path = s.split(".").reverse(),
36205         rep = locale[loc];
36206
36207     while (rep !== undefined && path.length) rep = rep[path.pop()];
36208
36209     if (rep !== undefined) {
36210         if (o) for (var k in o) rep = rep.replace('{' + k + '}', o[k]);
36211         return rep;
36212     }
36213
36214     if (loc !== 'en') {
36215         return t(s, o, 'en');
36216     }
36217
36218     if (o && 'default' in o) {
36219         return o['default'];
36220     }
36221
36222     var missing = 'Missing ' + loc + ' translation: ' + s;
36223     if (typeof console !== "undefined") console.error(missing);
36224
36225     return missing;
36226 }
36227 iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:33Z","tags":{}},"n185964961":{"id":"n185964961","loc":[-85.6406588,41.942601],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185964962":{"id":"n185964962","loc":[-85.6394548,41.94261],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185970607":{"id":"n185970607","loc":[-85.641094,41.94006],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970614":{"id":"n185970614","loc":[-85.641825,41.941316],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970616":{"id":"n185970616","loc":[-85.641838,41.941556],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185973650":{"id":"n185973650","loc":[-85.639918,41.940064],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973660":{"id":"n185973660","loc":[-85.640645,41.941339],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973659":{"id":"n185973659","loc":[-85.6406115,41.9400658],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185974479":{"id":"n185974479","loc":[-85.639402,41.941344],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:18Z","tags":{}},"n185974481":{"id":"n185974481","loc":[-85.643071,41.941288],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:18Z","tags":{}},"n185976259":{"id":"n185976259","loc":[-85.642213,41.940043],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:24Z","tags":{}},"n185976261":{"id":"n185976261","loc":[-85.643056,41.94001],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:24Z","tags":{}},"n185964959":{"id":"n185964959","loc":[-85.6431031,41.9425754],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:12Z","tags":{}},"n185964960":{"id":"n185964960","loc":[-85.6418749,41.9425864],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:12Z","tags":{}},"n185981481":{"id":"n185981481","loc":[-85.6386827,41.9400828],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185981482":{"id":"n185981482","loc":[-85.6393664,41.9400854],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n2138493844":{"id":"n2138493844","loc":[-85.6427969,41.940522],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493845":{"id":"n2138493845","loc":[-85.6425891,41.9405228],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493846":{"id":"n2138493846","loc":[-85.6425868,41.9402875],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493847":{"id":"n2138493847","loc":[-85.6427969,41.9402858],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493848":{"id":"n2138493848","loc":[-85.6425708,41.9405234],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493849":{"id":"n2138493849","loc":[-85.642568,41.9402855],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493850":{"id":"n2138493850","loc":[-85.6423157,41.9402886],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493851":{"id":"n2138493851","loc":[-85.6423212,41.9404362],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493852":{"id":"n2138493852","loc":[-85.6422923,41.9404578],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493853":{"id":"n2138493853","loc":[-85.6422868,41.9404834],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493854":{"id":"n2138493854","loc":[-85.6423226,41.9405091],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493855":{"id":"n2138493855","loc":[-85.6423847,41.9405111],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2138493856":{"id":"n2138493856","loc":[-85.6424081,41.9405265],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{}},"n2140155811":{"id":"n2140155811","loc":[-85.6419547,41.9410956],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155814":{"id":"n2140155814","loc":[-85.6427577,41.9410884],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155816":{"id":"n2140155816","loc":[-85.6427545,41.9410052],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155818":{"id":"n2140155818","loc":[-85.6428057,41.9410028],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155821":{"id":"n2140155821","loc":[-85.6427993,41.9407339],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155823":{"id":"n2140155823","loc":[-85.6427385,41.9407339],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155825":{"id":"n2140155825","loc":[-85.6427417,41.9406435],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155827":{"id":"n2140155827","loc":[-85.6419515,41.9406482],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155828":{"id":"n2140155828","loc":[-85.6429368,41.9412407],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155829":{"id":"n2140155829","loc":[-85.6417756,41.9412526],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155830":{"id":"n2140155830","loc":[-85.641766,41.9405983],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155831":{"id":"n2140155831","loc":[-85.6419803,41.9405983],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155832":{"id":"n2140155832","loc":[-85.6419611,41.9401366],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155833":{"id":"n2140155833","loc":[-85.6429336,41.94012],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155834":{"id":"n2140155834","loc":[-85.6430697,41.9411732],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155835":{"id":"n2140155835","loc":[-85.6428411,41.9409974],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155837":{"id":"n2140155837","loc":[-85.6428388,41.9407211],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155839":{"id":"n2140155839","loc":[-85.6430624,41.9405521],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155840":{"id":"n2140155840","loc":[-85.6427323,41.9412396],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155842":{"id":"n2140155842","loc":[-85.6418147,41.9412457],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155844":{"id":"n2140155844","loc":[-85.641813,41.9411319],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155845":{"id":"n2140155845","loc":[-85.6418394,41.9411111],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155847":{"id":"n2140155847","loc":[-85.6418838,41.9410977],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155849":{"id":"n2140155849","loc":[-85.6427324,41.9410921],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155851":{"id":"n2140155851","loc":[-85.6427798,41.9412945],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155852":{"id":"n2140155852","loc":[-85.6427701,41.9411777],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155854":{"id":"n2140155854","loc":[-85.6427323,41.9411572],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2140155856":{"id":"n2140155856","loc":[-85.6418478,41.9411666],"version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{}},"n2165942818":{"id":"n2165942818","loc":[-85.6437533,41.9415029],"version":"1","changeset":"15116533","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-21T20:33:02Z","tags":{}},"n2165942819":{"id":"n2165942819","loc":[-85.6437623,41.9421195],"version":"1","changeset":"15116533","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-21T20:33:02Z","tags":{}},"n2168510551":{"id":"n2168510551","loc":[-85.6423795,41.9422615],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510552":{"id":"n2168510552","loc":[-85.6423744,41.9419439],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510553":{"id":"n2168510553","loc":[-85.642518,41.9419427],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510554":{"id":"n2168510554","loc":[-85.6425186,41.9419801],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510555":{"id":"n2168510555","loc":[-85.6428314,41.9419773],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510556":{"id":"n2168510556","loc":[-85.6428368,41.9423116],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510557":{"id":"n2168510557","loc":[-85.6424947,41.9423146],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2168510558":{"id":"n2168510558","loc":[-85.6424938,41.9422605],"version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:23Z","tags":{}},"n2189046007":{"id":"n2189046007","loc":[-85.6410866,41.9424327],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046009":{"id":"n2189046009","loc":[-85.6410805,41.9420061],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046011":{"id":"n2189046011","loc":[-85.6412443,41.9420048],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046012":{"id":"n2189046012","loc":[-85.6412505,41.9424314],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046014":{"id":"n2189046014","loc":[-85.6413311,41.942968],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046016":{"id":"n2189046016","loc":[-85.6413281,41.942713],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046018":{"id":"n2189046018","loc":[-85.641521,41.9427117],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046021":{"id":"n2189046021","loc":[-85.6415234,41.9429236],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046022":{"id":"n2189046022","loc":[-85.6415045,41.9429238],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046025":{"id":"n2189046025","loc":[-85.641505,41.9429668],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046053":{"id":"n2189046053","loc":[-85.6385988,41.942412],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046054":{"id":"n2189046054","loc":[-85.6385985,41.9423311],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046055":{"id":"n2189046055","loc":[-85.6387617,41.9423308],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046056":{"id":"n2189046056","loc":[-85.6387616,41.9423026],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046058":{"id":"n2189046058","loc":[-85.6388215,41.9423025],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046059":{"id":"n2189046059","loc":[-85.6388219,41.9424115],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046060":{"id":"n2189046060","loc":[-85.6391096,41.9424486],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046061":{"id":"n2189046061","loc":[-85.6391105,41.9423673],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046063":{"id":"n2189046063","loc":[-85.6392911,41.9423684],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046065":{"id":"n2189046065","loc":[-85.6392903,41.9424497],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046067":{"id":"n2189046067","loc":[-85.6397927,41.9423876],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046069":{"id":"n2189046069","loc":[-85.6397897,41.9422981],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046070":{"id":"n2189046070","loc":[-85.6399702,41.9422947],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046072":{"id":"n2189046072","loc":[-85.6399732,41.9423843],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046074":{"id":"n2189046074","loc":[-85.6396331,41.9430227],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046075":{"id":"n2189046075","loc":[-85.6398673,41.9430189],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046077":{"id":"n2189046077","loc":[-85.6398656,41.9429637],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046079":{"id":"n2189046079","loc":[-85.6398885,41.9429633],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046082":{"id":"n2189046082","loc":[-85.6398832,41.942779],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046083":{"id":"n2189046083","loc":[-85.6398513,41.9427796],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046085":{"id":"n2189046085","loc":[-85.6398502,41.9427401],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046087":{"id":"n2189046087","loc":[-85.6397889,41.9427411],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046089":{"id":"n2189046089","loc":[-85.6397892,41.942753],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046090":{"id":"n2189046090","loc":[-85.6396983,41.9427544],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046092":{"id":"n2189046092","loc":[-85.6396993,41.9427882],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046094":{"id":"n2189046094","loc":[-85.6396746,41.9427886],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046096":{"id":"n2189046096","loc":[-85.6396758,41.9428296],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046097":{"id":"n2189046097","loc":[-85.6397007,41.9428292],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046099":{"id":"n2189046099","loc":[-85.6397018,41.9428686],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:43Z","tags":{}},"n2189046103":{"id":"n2189046103","loc":[-85.6396289,41.9428697],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046112":{"id":"n2189046112","loc":[-85.6435683,41.9429457],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046113":{"id":"n2189046113","loc":[-85.643568,41.9427766],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046115":{"id":"n2189046115","loc":[-85.6434011,41.9427767],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046116":{"id":"n2189046116","loc":[-85.6434012,41.9428631],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046117":{"id":"n2189046117","loc":[-85.643448,41.9428631],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046118":{"id":"n2189046118","loc":[-85.6434481,41.9429457],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046119":{"id":"n2189046119","loc":[-85.6428363,41.9429809],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046120":{"id":"n2189046120","loc":[-85.6429171,41.9429791],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046121":{"id":"n2189046121","loc":[-85.642914,41.9429041],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046122":{"id":"n2189046122","loc":[-85.6429385,41.9429035],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046123":{"id":"n2189046123","loc":[-85.6429348,41.9428126],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046124":{"id":"n2189046124","loc":[-85.6427746,41.9428163],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046125":{"id":"n2189046125","loc":[-85.6427783,41.942906],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046126":{"id":"n2189046126","loc":[-85.6428332,41.9429047],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046127":{"id":"n2189046127","loc":[-85.6423018,41.9428859],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046128":{"id":"n2189046128","loc":[-85.6422987,41.9427208],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046130":{"id":"n2189046130","loc":[-85.6424218,41.9427195],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046131":{"id":"n2189046131","loc":[-85.6424246,41.9428684],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046132":{"id":"n2189046132","loc":[-85.6423845,41.9428689],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046133":{"id":"n2189046133","loc":[-85.6423848,41.942885],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046134":{"id":"n2189046134","loc":[-85.641533,41.9429392],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046135":{"id":"n2189046135","loc":[-85.6416096,41.9428768],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046137":{"id":"n2189046137","loc":[-85.6416763,41.9429221],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046138":{"id":"n2189046138","loc":[-85.6415997,41.9429845],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046139":{"id":"n2189046139","loc":[-85.6420598,41.9428016],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046140":{"id":"n2189046140","loc":[-85.6420593,41.9427415],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046141":{"id":"n2189046141","loc":[-85.6421957,41.9427409],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046142":{"id":"n2189046142","loc":[-85.6421963,41.9428182],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046143":{"id":"n2189046143","loc":[-85.6421281,41.9428185],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046144":{"id":"n2189046144","loc":[-85.6421279,41.9428013],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046145":{"id":"n2189046145","loc":[-85.6409429,41.9429345],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046146":{"id":"n2189046146","loc":[-85.6410354,41.9429334],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046147":{"id":"n2189046147","loc":[-85.6410325,41.9427972],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046148":{"id":"n2189046148","loc":[-85.640997,41.9427976],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046149":{"id":"n2189046149","loc":[-85.6409963,41.9427643],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046150":{"id":"n2189046150","loc":[-85.6408605,41.9427659],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046152":{"id":"n2189046152","loc":[-85.6408623,41.9428482],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189046153":{"id":"n2189046153","loc":[-85.640941,41.9428473],"version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:44Z","tags":{}},"n2189152992":{"id":"n2189152992","loc":[-85.6437661,41.9422257],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152993":{"id":"n2189152993","loc":[-85.643768,41.9424067],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152994":{"id":"n2189152994","loc":[-85.6432176,41.9417705],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152995":{"id":"n2189152995","loc":[-85.6432097,41.941327],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152996":{"id":"n2189152996","loc":[-85.6436493,41.9413226],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152997":{"id":"n2189152997","loc":[-85.6436563,41.9417164],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152998":{"id":"n2189152998","loc":[-85.6435796,41.9417171],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189152999":{"id":"n2189152999","loc":[-85.6435805,41.9417669],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153000":{"id":"n2189153000","loc":[-85.6438202,41.9414953],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153001":{"id":"n2189153001","loc":[-85.6438173,41.9413175],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153004":{"id":"n2189153004","loc":[-85.6432535,41.9418466],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153005":{"id":"n2189153005","loc":[-85.6433935,41.9418599],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153006":{"id":"n2189153006","loc":[-85.6434831,41.9418986],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153007":{"id":"n2189153007","loc":[-85.6435678,41.9419774],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153008":{"id":"n2189153008","loc":[-85.6435987,41.9420282],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153009":{"id":"n2189153009","loc":[-85.643438,41.9419573],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153010":{"id":"n2189153010","loc":[-85.6435284,41.9424676],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153011":{"id":"n2189153011","loc":[-85.6436207,41.9423631],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153012":{"id":"n2189153012","loc":[-85.6434957,41.9422973],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153013":{"id":"n2189153013","loc":[-85.6434457,41.9422458],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153014":{"id":"n2189153014","loc":[-85.6433976,41.9421772],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153015":{"id":"n2189153015","loc":[-85.6433861,41.9420785],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153016":{"id":"n2189153016","loc":[-85.6433765,41.9420313],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153017":{"id":"n2189153017","loc":[-85.6432207,41.9420284],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153018":{"id":"n2189153018","loc":[-85.6432245,41.9422759],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153019":{"id":"n2189153019","loc":[-85.6432649,41.9423474],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153020":{"id":"n2189153020","loc":[-85.6433226,41.9424132],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153021":{"id":"n2189153021","loc":[-85.6434111,41.9424704],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153022":{"id":"n2189153022","loc":[-85.6434591,41.9424347],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153025":{"id":"n2189153025","loc":[-85.6437669,41.9423073],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153026":{"id":"n2189153026","loc":[-85.6436611,41.942293],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153027":{"id":"n2189153027","loc":[-85.6435784,41.9422473],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153028":{"id":"n2189153028","loc":[-85.6435245,41.9421443],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153029":{"id":"n2189153029","loc":[-85.6435149,41.9420613],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153030":{"id":"n2189153030","loc":[-85.6433528,41.9419269],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153031":{"id":"n2189153031","loc":[-85.6432535,41.9419191],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153032":{"id":"n2189153032","loc":[-85.6430868,41.9419198],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153033":{"id":"n2189153033","loc":[-85.6434894,41.9420033],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153034":{"id":"n2189153034","loc":[-85.6432974,41.9419225],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153035":{"id":"n2189153035","loc":[-85.6433055,41.9421632],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153036":{"id":"n2189153036","loc":[-85.6433538,41.9422849],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153037":{"id":"n2189153037","loc":[-85.6434718,41.9423887],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153038":{"id":"n2189153038","loc":[-85.6436134,41.9422667],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153040":{"id":"n2189153040","loc":[-85.6438759,41.9414017],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153041":{"id":"n2189153041","loc":[-85.6438181,41.9413687],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153042":{"id":"n2189153042","loc":[-85.6436821,41.9413044],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153043":{"id":"n2189153043","loc":[-85.6435899,41.9412862],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153044":{"id":"n2189153044","loc":[-85.6433169,41.9417268],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153045":{"id":"n2189153045","loc":[-85.643301,41.9412859],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153046":{"id":"n2189153046","loc":[-85.6435531,41.9416981],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n2189153047":{"id":"n2189153047","loc":[-85.6435427,41.9412863],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"n185948706":{"id":"n185948706","loc":[-85.6369439,41.940122],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185949348":{"id":"n185949348","loc":[-85.640039,41.931135],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:09Z","tags":{}},"n185949870":{"id":"n185949870","loc":[-85.643195,41.949261],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:20Z","tags":{}},"n185954680":{"id":"n185954680","loc":[-85.6337802,41.9401143],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185954784":{"id":"n185954784","loc":[-85.6487485,41.942527],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185958670":{"id":"n185958670","loc":[-85.637255,41.940104],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958672":{"id":"n185958672","loc":[-85.636996,41.941355],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:31Z","tags":{}},"n185960207":{"id":"n185960207","loc":[-85.634992,41.940118],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:09Z","tags":{}},"n185963163":{"id":"n185963163","loc":[-85.638831,41.93398],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:45Z","tags":{}},"n185963165":{"id":"n185963165","loc":[-85.640073,41.933968],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:45Z","tags":{}},"n185963167":{"id":"n185963167","loc":[-85.641225,41.933972],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:45Z","tags":{}},"n185963168":{"id":"n185963168","loc":[-85.642386,41.933952],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:45Z","tags":{}},"n185964695":{"id":"n185964695","loc":[-85.6443608,41.9425645],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:12Z","tags":{}},"n185964697":{"id":"n185964697","loc":[-85.644384,41.939941],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:31Z","tags":{}},"n185964963":{"id":"n185964963","loc":[-85.6382347,41.9426146],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185964965":{"id":"n185964965","loc":[-85.637022,41.942622],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:40Z","tags":{}},"n185964967":{"id":"n185964967","loc":[-85.6363706,41.9426606],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185964968":{"id":"n185964968","loc":[-85.6357988,41.9427748],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185964969":{"id":"n185964969","loc":[-85.6355409,41.9428465],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185964970":{"id":"n185964970","loc":[-85.6348729,41.9430443],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185966958":{"id":"n185966958","loc":[-85.641946,41.946413],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:51Z","tags":{}},"n185966960":{"id":"n185966960","loc":[-85.643148,41.946389],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:51Z","tags":{}},"n185967774":{"id":"n185967774","loc":[-85.641889,41.943852],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:12Z","tags":{}},"n185967775":{"id":"n185967775","loc":[-85.641922,41.945121],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:12Z","tags":{}},"n185967776":{"id":"n185967776","loc":[-85.641927,41.947544],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:12Z","tags":{}},"n185967777":{"id":"n185967777","loc":[-85.641982,41.947622],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:12Z","tags":{}},"n185969289":{"id":"n185969289","loc":[-85.63928,41.929221],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:52Z","tags":{}},"n185969704":{"id":"n185969704","loc":[-85.6388186,41.9350099],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185969706":{"id":"n185969706","loc":[-85.6400709,41.9349957],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185969708":{"id":"n185969708","loc":[-85.6412214,41.9349827],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185969710":{"id":"n185969710","loc":[-85.6423509,41.934974],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185970602":{"id":"n185970602","loc":[-85.641293,41.931817],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970604":{"id":"n185970604","loc":[-85.641258,41.932705],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970605":{"id":"n185970605","loc":[-85.641148,41.936984],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970606":{"id":"n185970606","loc":[-85.641112,41.938169],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:43Z","tags":{}},"n185970906":{"id":"n185970906","loc":[-85.639454,41.943871],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:50Z","tags":{}},"n185970908":{"id":"n185970908","loc":[-85.6394635,41.9450504],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185970909":{"id":"n185970909","loc":[-85.6394914,41.9451911],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185971368":{"id":"n185971368","loc":[-85.635769,41.940122],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:01Z","tags":{}},"n185971978":{"id":"n185971978","loc":[-85.640003,41.936988],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:14Z","tags":{}},"n185971980":{"id":"n185971980","loc":[-85.642299,41.936988],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:14Z","tags":{}},"n185973633":{"id":"n185973633","loc":[-85.639023,41.92861],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973635":{"id":"n185973635","loc":[-85.639153,41.928969],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973637":{"id":"n185973637","loc":[-85.639213,41.929088],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973639":{"id":"n185973639","loc":[-85.63935,41.929396],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973641":{"id":"n185973641","loc":[-85.640143,41.931462],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973644":{"id":"n185973644","loc":[-85.64019,41.931788],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185973646":{"id":"n185973646","loc":[-85.6401365,41.9327199],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185973648":{"id":"n185973648","loc":[-85.639983,41.938174],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:59Z","tags":{}},"n185974477":{"id":"n185974477","loc":[-85.638206,41.941331],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:18Z","tags":{}},"n185975928":{"id":"n185975928","loc":[-85.640683,41.94513],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:13Z","tags":{}},"n185975930":{"id":"n185975930","loc":[-85.643102,41.945103],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:13Z","tags":{}},"n185976255":{"id":"n185976255","loc":[-85.642424,41.931817],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:24Z","tags":{}},"n185976257":{"id":"n185976257","loc":[-85.64242,41.932699],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:24Z","tags":{}},"n185976258":{"id":"n185976258","loc":[-85.6422621,41.9381489],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n185977452":{"id":"n185977452","loc":[-85.6457497,41.9398834],"version":"3","changeset":"5841745","user":"themps","uid":"196173","visible":"true","timestamp":"2010-09-22T00:20:34Z","tags":{}},"n185978772":{"id":"n185978772","loc":[-85.646656,41.939869],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185981472":{"id":"n185981472","loc":[-85.6388962,41.9321266],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185981474":{"id":"n185981474","loc":[-85.6388769,41.9327334],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185981476":{"id":"n185981476","loc":[-85.638829,41.934116],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:11Z","tags":{}},"n185981478":{"id":"n185981478","loc":[-85.63876,41.937002],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:11Z","tags":{}},"n185981480":{"id":"n185981480","loc":[-85.638682,41.93819],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:11Z","tags":{}},"n185981999":{"id":"n185981999","loc":[-85.638194,41.9400866],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n185982001":{"id":"n185982001","loc":[-85.646302,41.93988],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:26Z","tags":{}},"n185982877":{"id":"n185982877","loc":[-85.640676,41.943867],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:54Z","tags":{}},"n185982879":{"id":"n185982879","loc":[-85.640734,41.945887],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:54Z","tags":{}},"n185985823":{"id":"n185985823","loc":[-85.643106,41.943841],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:39Z","tags":{}},"n185985824":{"id":"n185985824","loc":[-85.643145,41.947641],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:39Z","tags":{}},"n185985825":{"id":"n185985825","loc":[-85.643219,41.950829],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:39Z","tags":{}},"n1475301385":{"id":"n1475301385","loc":[-85.6360612,41.9427042],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:12Z","tags":{}},"n1475301397":{"id":"n1475301397","loc":[-85.6366651,41.9426328],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:12Z","tags":{}},"n2139795811":{"id":"n2139795811","loc":[-85.6469154,41.9425427],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795830":{"id":"n2139795830","loc":[-85.6443194,41.9399444],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:57Z","tags":{}},"n2139795834":{"id":"n2139795834","loc":[-85.6453506,41.9399002],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:57Z","tags":{}},"n2139795837":{"id":"n2139795837","loc":[-85.645806,41.9398831],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:57Z","tags":{}},"n2139858932":{"id":"n2139858932","loc":[-85.6351721,41.9429557],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2140019000":{"id":"n2140019000","loc":[-85.6359935,41.9427224],"version":"1","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{}},"n2165942817":{"id":"n2165942817","loc":[-85.6442017,41.9414993],"version":"1","changeset":"15116533","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-21T20:33:02Z","tags":{}},"n2165942820":{"id":"n2165942820","loc":[-85.6442107,41.9421159],"version":"1","changeset":"15116533","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-21T20:33:02Z","tags":{}},"n2189152990":{"id":"n2189152990","loc":[-85.6442328,41.942404],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:05Z","tags":{}},"n2189152991":{"id":"n2189152991","loc":[-85.6442309,41.9422229],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153002":{"id":"n2189153002","loc":[-85.6441329,41.9413147],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153003":{"id":"n2189153003","loc":[-85.6441357,41.9414925],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153023":{"id":"n2189153023","loc":[-85.6443453,41.9423074],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153024":{"id":"n2189153024","loc":[-85.6442318,41.9423045],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:06Z","tags":{}},"n2189153039":{"id":"n2189153039","loc":[-85.6441343,41.9414025],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:07Z","tags":{}},"w208643102":{"id":"w208643102","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153034","n2189153035","n2189153036","n2189153037","n2189153038"]},"w17966942":{"id":"w17966942","version":"3","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:48:04Z","tags":{"highway":"residential","name":"Millard St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Millard","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312476:15312477:15312478:15326070:15326071:15329003:15329004:15312479:15312480:15312483:15326956:15326957:15312485:15312486:15322600:15325988","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185954680","n185960207","n185971368","n185948706","n185958670","n185981999","n185981481","n185981482","n185973650","n185973659","n185970607","n185976259","n185976261","n2139795830","n185964697","n2139795834","n185977452","n2139795837","n185982001","n185978772"]},"w208643105":{"id":"w208643105","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153046","n2189153047"]},"w208631637":{"id":"w208631637","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046014","n2189046016","n2189046018","n2189046021","n2189046022","n2189046025","n2189046014"]},"w208643096":{"id":"w208643096","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"amenity":"parking","area":"yes","fee":"no"},"nodes":["n2189152990","n2189153024","n2189152991","n2189152992","n2189153025","n2189152993","n2189152990"]},"w208631656":{"id":"w208631656","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046134","n2189046135","n2189046137","n2189046138","n2189046134"]},"w204003417":{"id":"w204003417","version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{"area":"yes","building":"school"},"nodes":["n2140155811","n2140155814","n2140155816","n2140155818","n2140155821","n2140155823","n2140155825","n2140155827","n2140155811"]},"w208631654":{"id":"w208631654","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046127","n2189046128","n2189046130","n2189046131","n2189046132","n2189046133","n2189046127"]},"w17966327":{"id":"w17966327","version":"3","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:16Z","tags":{"highway":"residential","name":"S Douglas Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Douglas","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185976261","n2140155839","n2140155834","n185974481","n2189153032","n185964959"]},"w41785752":{"id":"w41785752","version":"10","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:59Z","tags":{"highway":"primary","name":"West Michigan Avenue","old_ref":"US 131","ref":"US 131 Business;M 60","tiger:cfcc":"A21","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_base_2":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"W","tiger:name_type":"Ave","tiger:reviewed":"no","access":"yes"},"nodes":["n185954784","n2139795811","n185964695","n185964959","n185964960","n185964961","n185964962","n185964963","n185964965","n1475301397","n185964967","n1475301385","n2140019000","n185964968","n185964969","n2139858932","n185964970"]},"w203841842":{"id":"w203841842","version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{"area":"yes","leisure":"playground"},"nodes":["n2138493848","n2138493849","n2138493850","n2138493851","n2138493852","n2138493853","n2138493854","n2138493855","n2138493856","n2138493848"]},"w208643103":{"id":"w208643103","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"highway":"service"},"nodes":["n2189153039","n2189153040","n2189153041","n2189153042","n2189153043","n2189153047","n2189153045","n185974481"]},"w208643098":{"id":"w208643098","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153000","n2189153041","n2189153001","n2189153002","n2189153039","n2189153003","n2189153000"]},"w208631646":{"id":"w208631646","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046067","n2189046069","n2189046070","n2189046072","n2189046067"]},"w208631653":{"id":"w208631653","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046119","n2189046120","n2189046121","n2189046122","n2189046123","n2189046124","n2189046125","n2189046126","n2189046119"]},"w17966041":{"id":"w17966041","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:41:50Z","tags":{"highway":"residential","name":"S Lincoln Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Lincoln","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312474:15312448","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185973659","n185973660","n185964961"]},"w208631645":{"id":"w208631645","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046060","n2189046061","n2189046063","n2189046065","n2189046060"]},"w206803397":{"id":"w206803397","version":"1","changeset":"15132039","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:10:25Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168510551","n2168510552","n2168510553","n2168510554","n2168510555","n2168510556","n2168510557","n2168510558","n2168510551"]},"w17965792":{"id":"w17965792","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:10Z","tags":{"highway":"residential","name":"N Hooker Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hooker","tiger:name_direction_prefix":"N","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313197:15312414:15312395","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185964962","n185970906","n185970908","n185970909"]},"w208631651":{"id":"w208631651","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046112","n2189046113","n2189046115","n2189046116","n2189046117","n2189046118","n2189046112"]},"w208631643":{"id":"w208631643","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046053","n2189046054","n2189046055","n2189046056","n2189046058","n2189046059","n2189046053"]},"w17966878":{"id":"w17966878","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:48:03Z","tags":{"highway":"residential","name":"S Hooker Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hooker","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312508:15312529:15312553:15312597:15328883:15338803","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185981472","n185981474","n185963163","n185981476","n185969704","n185981478","n185981480","n185981481"]},"w17966102":{"id":"w17966102","version":"2","changeset":"14896694","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:01:36Z","tags":{"highway":"residential","name":"South St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"South","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312446","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185958672","n185974477","n185974479","n185973660","n185970614"]},"w208631660":{"id":"w208631660","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046145","n2189046146","n2189046147","n2189046148","n2189046149","n2189046150","n2189046152","n2189046153","n2189046145"]},"w208643101":{"id":"w208643101","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"highway":"service"},"nodes":["n2189153023","n2189153024","n2189153025","n2189153026","n2189153038","n2189153027","n2189153028","n2189153029","n2189153033","n2189153009","n2189153030","n2189153034","n2189153031","n2189153032"]},"w204000205":{"id":"w204000205","version":"2","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:19Z","tags":{"highway":"residential","name":"South St","oneway":"yes","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"South","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312446","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185974481","n2140155851","n185970614"]},"w203841841":{"id":"w203841841","version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{"area":"yes","leisure":"pitch","pitch":"basketball"},"nodes":["n2138493844","n2138493845","n2138493846","n2138493847","n2138493844"]},"w17965444":{"id":"w17965444","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:37:03Z","tags":{"highway":"residential","name":"N Grant Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Grant","tiger:name_direction_prefix":"N","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312348:15312365:15312422:15312392","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185964960","n185967774","n185967775","n185966958","n185967776","n185967777"]},"w208631648":{"id":"w208631648","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046074","n2189046075","n2189046077","n2189046079","n2189046082","n2189046083","n2189046085","n2189046087","n2189046089","n2189046090","n2189046092","n2189046094","n2189046096","n2189046097","n2189046099","n2189046103","n2189046074"]},"w208643100":{"id":"w208643100","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153010","n2189153011","n2189153012","n2189153013","n2189153014","n2189153015","n2189153016","n2189153017","n2189153018","n2189153019","n2189153020","n2189153021","n2189153022","n2189153010"]},"w17965749":{"id":"w17965749","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:39:28Z","tags":{"highway":"residential","name":"S Grant Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Grant","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312445","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185970614","n185970616","n185964960"]},"w206574482":{"id":"w206574482","version":"2","changeset":"15128027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-22T20:03:31Z","tags":{"addr:state":"MI","amenity":"library","area":"yes","building":"yes","ele":"249","gnis:county_name":"St. Joseph","gnis:feature_id":"2418162","gnis:import_uuid":"57871b70-0100-4405-bb30-88b2e001a944","gnis:reviewed":"no","name":"Three Rivers Public Library","source":"USGS Geonames"},"nodes":["n2165942817","n2165942818","n2165942819","n2165942820","n2165942817"]},"w208643097":{"id":"w208643097","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189152994","n2189152995","n2189152996","n2189152997","n2189152998","n2189152999","n2189152994"]},"w17966879":{"id":"w17966879","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:48:03Z","tags":{"highway":"residential","name":"S Hooker Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hooker","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312475:15312449","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185981482","n185974479","n185964962"]},"w17966325":{"id":"w17966325","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:43:58Z","tags":{"highway":"residential","name":"S Douglas Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Douglas","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15330300:15312522:15312547:15330299:15312603:15312571:15331740","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185976255","n185976257","n185963168","n185969710","n185971980","n185976258","n185954700","n185976259"]},"w17967390":{"id":"w17967390","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:51:27Z","tags":{"highway":"residential","name":"N Douglas Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Douglas","tiger:name_direction_prefix":"N","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312300","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185964959","n185985823","n185975930","n185966960","n185985824","n185949870","n185985825"]},"w208631635":{"id":"w208631635","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046007","n2189046009","n2189046011","n2189046012","n2189046007"]},"w208643099":{"id":"w208643099","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153031","n2189153004","n2189153005","n2189153006","n2189153007","n2189153008","n2189153029","n2189153033","n2189153009","n2189153030","n2189153031"]},"w208631658":{"id":"w208631658","version":"1","changeset":"15276417","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:05:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189046139","n2189046140","n2189046141","n2189046142","n2189046143","n2189046144","n2189046139"]},"w208643104":{"id":"w208643104","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153044","n2189153045"]},"w17966039":{"id":"w17966039","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:41:49Z","tags":{"highway":"residential","name":"S Lincoln Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Lincoln","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312526:15312511:15312550:15312601:15312998:15312626:15312574:15328327:15328328:15313210","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185973633","n185973635","n185973637","n185969289","n185973639","n185949348","n185973641","n185973644","n185973646","n185963165","n185969706","n185971978","n185973648","n185973650"]},"w204003420":{"id":"w204003420","version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2140155840","n2140155842","n2140155844","n2140155845","n2140155847","n2140155849","n2140155854","n2140155840"]},"w204003419":{"id":"w204003419","version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{"highway":"service"},"nodes":["n2140155834","n2140155835","n2140155837","n2140155839"]},"w204003418":{"id":"w204003418","version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{"amenity":"school","area":"yes","name":"Andrews Elementary School"},"nodes":["n2140155828","n2140155829","n2140155830","n2140155831","n2140155832","n2140155833","n2140155828"]},"w17965747":{"id":"w17965747","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:39:27Z","tags":{"highway":"residential","name":"S Grant Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Grant","tiger:name_direction_prefix":"S","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312509:15312524:15312549:15312605:15329008:15312572","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185970602","n185970604","n185963167","n185969708","n185970605","n185970606","n185970607"]},"w17967073":{"id":"w17967073","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:49:07Z","tags":{"highway":"residential","name":"N Lincoln Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Lincoln","tiger:name_direction_prefix":"N","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313196:15312424:15312394","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185964961","n185982877","n185975928","n185982879"]},"w204003421":{"id":"w204003421","version":"1","changeset":"14897169","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T14:35:18Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2140155851","n2140155852","n2140155854","n2140155856"]},"r1943857":{"id":"r1943857","version":"2","changeset":"13612265","user":"migurski","uid":"8287","visible":"true","timestamp":"2012-10-24T04:10:54Z","tags":{"is_in:state":"MI","modifier":"Business","name":"US 131 Business (Three Rivers, MI)","network":"US:US","ref":"131","route":"road","type":"route"},"members":[{"id":"w17966509","type":"way","role":"forward"},{"id":"w143497377","type":"way","role":""},{"id":"w134150811","type":"way","role":""},{"id":"w134150800","type":"way","role":""},{"id":"w134150789","type":"way","role":""},{"id":"w134150795","type":"way","role":""},{"id":"w41785752","type":"way","role":""},{"id":"w17965146","type":"way","role":"forward"},{"id":"w17964031","type":"way","role":"forward"}]},"r270277":{"id":"r270277","version":"21","changeset":"15347356","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T03:41:02Z","tags":{"network":"US:MI","ref":"60","route":"road","state_id":"MI","type":"route","url":"http://en.wikipedia.org/wiki/M-60_%28Michigan_highway%29"},"members":[{"id":"w17751087","type":"way","role":"east"},{"id":"w117148312","type":"way","role":"east"},{"id":"w40942155","type":"way","role":"west"},{"id":"w17751017","type":"way","role":""},{"id":"w17751083","type":"way","role":""},{"id":"w17747780","type":"way","role":""},{"id":"w41068082","type":"way","role":""},{"id":"w197025212","type":"way","role":""},{"id":"w17743874","type":"way","role":""},{"id":"w17751044","type":"way","role":""},{"id":"w17752167","type":"way","role":""},{"id":"w17751089","type":"way","role":""},{"id":"w17743879","type":"way","role":""},{"id":"w17751064","type":"way","role":""},{"id":"w197057073","type":"way","role":""},{"id":"w167699963","type":"way","role":""},{"id":"w167699972","type":"way","role":""},{"id":"w17967584","type":"way","role":""},{"id":"w167699964","type":"way","role":""},{"id":"w17967582","type":"way","role":"west"},{"id":"w41260270","type":"way","role":"west"},{"id":"w17965146","type":"way","role":"west"},{"id":"w41785752","type":"way","role":""},{"id":"w134150795","type":"way","role":""},{"id":"w134150789","type":"way","role":""},{"id":"w134150800","type":"way","role":""},{"id":"w134150811","type":"way","role":""},{"id":"w134150836","type":"way","role":""},{"id":"w134150802","type":"way","role":""},{"id":"w41074896","type":"way","role":""},{"id":"w17966773","type":"way","role":""},{"id":"w17967415","type":"way","role":""},{"id":"w41074899","type":"way","role":""},{"id":"w17967581","type":"way","role":""},{"id":"w41074902","type":"way","role":""},{"id":"w41074906","type":"way","role":""},{"id":"w209707997","type":"way","role":""},{"id":"w209707998","type":"way","role":""},{"id":"w17964798","type":"way","role":""},{"id":"w17966034","type":"way","role":""},{"id":"w17967593","type":"way","role":""},{"id":"w41074888","type":"way","role":""},{"id":"w17733772","type":"way","role":""},{"id":"w41074813","type":"way","role":""},{"id":"w17742213","type":"way","role":""},{"id":"w17746863","type":"way","role":""},{"id":"w17745772","type":"way","role":""},{"id":"w17742222","type":"way","role":""},{"id":"w17745922","type":"way","role":""},{"id":"w17742198","type":"way","role":""},{"id":"w17747675","type":"way","role":""},{"id":"w17739927","type":"way","role":""},{"id":"w17745708","type":"way","role":""},{"id":"w41006323","type":"way","role":""},{"id":"w17744233","type":"way","role":""},{"id":"w17739436","type":"way","role":""},{"id":"w17742201","type":"way","role":""},{"id":"w151418616","type":"way","role":""},{"id":"w17750062","type":"way","role":""},{"id":"w17742227","type":"way","role":"east"},{"id":"w41006348","type":"way","role":"east"},{"id":"w41260984","type":"way","role":""},{"id":"w17832427","type":"way","role":""},{"id":"w17838408","type":"way","role":""},{"id":"w17835846","type":"way","role":""},{"id":"w17832923","type":"way","role":""},{"id":"w17839388","type":"way","role":""},{"id":"w17838390","type":"way","role":""},{"id":"w17831272","type":"way","role":""},{"id":"w17828581","type":"way","role":""},{"id":"w38240686","type":"way","role":""},{"id":"w17838405","type":"way","role":"east"},{"id":"w123323711","type":"way","role":"east"},{"id":"w17830167","type":"way","role":"east"},{"id":"w99011909","type":"way","role":"east"},{"id":"w41911361","type":"way","role":"east"},{"id":"w41911355","type":"way","role":"east"},{"id":"w41911356","type":"way","role":"east"},{"id":"w117148326","type":"way","role":"west"},{"id":"w41911352","type":"way","role":"west"},{"id":"w41911353","type":"way","role":"west"},{"id":"w41911354","type":"way","role":"west"},{"id":"w41911360","type":"way","role":"west"},{"id":"w38240676","type":"way","role":"west"},{"id":"w123323710","type":"way","role":"west"},{"id":"w41260271","type":"way","role":"east"},{"id":"w41260273","type":"way","role":"east"},{"id":"w17964031","type":"way","role":"east"},{"id":"w41006344","type":"way","role":"west"},{"id":"w41006351","type":"way","role":"west"}]},"n367813436":{"id":"n367813436","loc":[-85.63605205663384,41.94305506683346],"version":"2","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{"addr:state":"MI","amenity":"fire_station","ele":"245","gnis:county_name":"St. Joseph","gnis:feature_id":"2417894","gnis:import_uuid":"57871b70-0100-4405-bb30-88b2e001a944","gnis:reviewed":"no","name":"Three Rivers Fire Department","source":"USGS Geonames"}},"n185948708":{"id":"n185948708","loc":[-85.6369828,41.9408789],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185948710":{"id":"n185948710","loc":[-85.6370184,41.9411346],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T20:04:13Z","tags":{}},"n185954691":{"id":"n185954691","loc":[-85.634476,41.941475],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:32Z","tags":{}},"n185954692":{"id":"n185954692","loc":[-85.635008,41.941846],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:32Z","tags":{}},"n185954693":{"id":"n185954693","loc":[-85.635362,41.941962],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:33Z","tags":{}},"n185954695":{"id":"n185954695","loc":[-85.63578,41.941978],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:33Z","tags":{}},"n185972903":{"id":"n185972903","loc":[-85.63295,41.9430062],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185964971":{"id":"n185964971","loc":[-85.6346811,41.9431023],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n1819805854":{"id":"n1819805854","loc":[-85.6331275,41.9404837],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805918":{"id":"n1819805918","loc":[-85.6331168,41.942798],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805762":{"id":"n1819805762","loc":[-85.6333034,41.9424123],"version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n1819805907":{"id":"n1819805907","loc":[-85.6334819,41.9419121],"version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n1819805915":{"id":"n1819805915","loc":[-85.6334554,41.9413588],"version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n1819848888":{"id":"n1819848888","loc":[-85.6331625,41.942679],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848930":{"id":"n1819848930","loc":[-85.6338684,41.9431252],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819858505":{"id":"n1819858505","loc":[-85.6346782,41.9429092],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858507":{"id":"n1819858507","loc":[-85.6339003,41.9414534],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858508":{"id":"n1819858508","loc":[-85.6345709,41.9427742],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858509":{"id":"n1819858509","loc":[-85.63419,41.9417322],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858511":{"id":"n1819858511","loc":[-85.6340666,41.9415652],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858512":{"id":"n1819858512","loc":[-85.6343295,41.9423027],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858514":{"id":"n1819858514","loc":[-85.6343241,41.942207],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858521":{"id":"n1819858521","loc":[-85.633391,41.941231],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858528":{"id":"n1819858528","loc":[-85.6343027,41.9419716],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n185954683":{"id":"n185954683","loc":[-85.6335412,41.940147],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185954685":{"id":"n185954685","loc":[-85.6334296,41.9403023],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185954687":{"id":"n185954687","loc":[-85.6333988,41.9404704],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185954689":{"id":"n185954689","loc":[-85.6335511,41.9410225],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185954690":{"id":"n185954690","loc":[-85.6336721,41.9411669],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n1820938802":{"id":"n1820938802","loc":[-85.6330671,41.941845],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1821006702":{"id":"n1821006702","loc":[-85.6344047,41.9395496],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n2130304133":{"id":"n2130304133","loc":[-85.6349025,41.9427659],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304136":{"id":"n2130304136","loc":[-85.6346027,41.9422017],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304138":{"id":"n2130304138","loc":[-85.6348577,41.9421517],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304140":{"id":"n2130304140","loc":[-85.6348419,41.9422694],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304142":{"id":"n2130304142","loc":[-85.6349071,41.9423135],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304144":{"id":"n2130304144","loc":[-85.6350495,41.9423312],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304146":{"id":"n2130304146","loc":[-85.6351009,41.9422812],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304147":{"id":"n2130304147","loc":[-85.6351227,41.9421532],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304148":{"id":"n2130304148","loc":[-85.635526,41.9421547],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304149":{"id":"n2130304149","loc":[-85.6355339,41.9425768],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304150":{"id":"n2130304150","loc":[-85.6351582,41.9426562],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304151":{"id":"n2130304151","loc":[-85.6351207,41.9427032],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2138493807":{"id":"n2138493807","loc":[-85.6350923,41.9415216],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493808":{"id":"n2138493808","loc":[-85.6353603,41.9411061],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493809":{"id":"n2138493809","loc":[-85.6354421,41.9410942],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493810":{"id":"n2138493810","loc":[-85.6355079,41.9411044],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493811":{"id":"n2138493811","loc":[-85.6355693,41.9411246],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493812":{"id":"n2138493812","loc":[-85.6355829,41.9411061],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493813":{"id":"n2138493813","loc":[-85.6355624,41.9409777],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493814":{"id":"n2138493814","loc":[-85.6355011,41.9409152],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493815":{"id":"n2138493815","loc":[-85.635383,41.9409219],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493816":{"id":"n2138493816","loc":[-85.635299,41.9409658],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493817":{"id":"n2138493817","loc":[-85.6351695,41.941204],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493818":{"id":"n2138493818","loc":[-85.6348879,41.9415166],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493819":{"id":"n2138493819","loc":[-85.634897,41.9415757],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493820":{"id":"n2138493820","loc":[-85.6349606,41.9416399],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493821":{"id":"n2138493821","loc":[-85.6350219,41.9416669],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493822":{"id":"n2138493822","loc":[-85.6351241,41.9416314],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493823":{"id":"n2138493823","loc":[-85.6350855,41.9415622],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493824":{"id":"n2138493824","loc":[-85.6350401,41.9413603],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493825":{"id":"n2138493825","loc":[-85.6352206,41.9410765],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493826":{"id":"n2138493826","loc":[-85.6343865,41.9415594],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493827":{"id":"n2138493827","loc":[-85.6343506,41.9415873],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493828":{"id":"n2138493828","loc":[-85.6344158,41.9417557],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493829":{"id":"n2138493829","loc":[-85.6344614,41.9417968],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493830":{"id":"n2138493830","loc":[-85.6345005,41.9418186],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493831":{"id":"n2138493831","loc":[-85.6345965,41.9418162],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493832":{"id":"n2138493832","loc":[-85.6347317,41.9417242],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493833":{"id":"n2138493833","loc":[-85.6346722,41.941775],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2139858909":{"id":"n2139858909","loc":[-85.633403,41.9391006],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858910":{"id":"n2139858910","loc":[-85.6332973,41.9393967],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858911":{"id":"n2139858911","loc":[-85.633205,41.9396742],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858912":{"id":"n2139858912","loc":[-85.6332203,41.9397772],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858913":{"id":"n2139858913","loc":[-85.6333453,41.939936],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858914":{"id":"n2139858914","loc":[-85.6333761,41.9400018],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858915":{"id":"n2139858915","loc":[-85.63328,41.9402249],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858916":{"id":"n2139858916","loc":[-85.6332357,41.9403523],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858917":{"id":"n2139858917","loc":[-85.6332838,41.9405831],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858918":{"id":"n2139858918","loc":[-85.6333643,41.9408744],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858919":{"id":"n2139858919","loc":[-85.6334394,41.9410519],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858920":{"id":"n2139858920","loc":[-85.6335815,41.9411717],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858921":{"id":"n2139858921","loc":[-85.6337478,41.9412734],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858922":{"id":"n2139858922","loc":[-85.6343174,41.9415268],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858923":{"id":"n2139858923","loc":[-85.6343886,41.9417397],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858924":{"id":"n2139858924","loc":[-85.6344407,41.9418015],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858925":{"id":"n2139858925","loc":[-85.6345139,41.9418366],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858926":{"id":"n2139858926","loc":[-85.6344846,41.942005],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858927":{"id":"n2139858927","loc":[-85.6345775,41.9422218],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858928":{"id":"n2139858928","loc":[-85.6348771,41.9427814],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858929":{"id":"n2139858929","loc":[-85.6349487,41.9427995],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858930":{"id":"n2139858930","loc":[-85.6350415,41.9427874],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858931":{"id":"n2139858931","loc":[-85.6351246,41.9428589],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858978":{"id":"n2139858978","loc":[-85.6349658,41.9431481],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858979":{"id":"n2139858979","loc":[-85.6350081,41.9431287],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858980":{"id":"n2139858980","loc":[-85.6349967,41.9430997],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858981":{"id":"n2139858981","loc":[-85.6352158,41.9430352],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858982":{"id":"n2139858982","loc":[-85.6348174,41.94267],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858983":{"id":"n2139858983","loc":[-85.6346142,41.9425989],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858984":{"id":"n2139858984","loc":[-85.6344938,41.9423809],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858985":{"id":"n2139858985","loc":[-85.6344856,41.9422997],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139870380":{"id":"n2139870380","loc":[-85.6346707,41.9417955],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870381":{"id":"n2139870381","loc":[-85.6345949,41.9418311],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870382":{"id":"n2139870382","loc":[-85.6343322,41.9418659],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870383":{"id":"n2139870383","loc":[-85.6342072,41.941885],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870384":{"id":"n2139870384","loc":[-85.6341325,41.9418919],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870385":{"id":"n2139870385","loc":[-85.6341314,41.9422028],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870386":{"id":"n2139870386","loc":[-85.6340472,41.9423271],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870387":{"id":"n2139870387","loc":[-85.6342185,41.9427933],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870388":{"id":"n2139870388","loc":[-85.6340605,41.9423924],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870389":{"id":"n2139870389","loc":[-85.6339889,41.9424069],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870390":{"id":"n2139870390","loc":[-85.633971,41.942356],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870391":{"id":"n2139870391","loc":[-85.63361,41.9424235],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870392":{"id":"n2139870392","loc":[-85.6337137,41.9426819],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870393":{"id":"n2139870393","loc":[-85.6336977,41.9428632],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870394":{"id":"n2139870394","loc":[-85.6338823,41.9428647],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870395":{"id":"n2139870395","loc":[-85.6339412,41.9430069],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870396":{"id":"n2139870396","loc":[-85.6338873,41.9430353],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870397":{"id":"n2139870397","loc":[-85.6337676,41.942815],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870398":{"id":"n2139870398","loc":[-85.6336822,41.9423505],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870399":{"id":"n2139870399","loc":[-85.634037,41.9422725],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870400":{"id":"n2139870400","loc":[-85.6340294,41.9422518],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870401":{"id":"n2139870401","loc":[-85.6336726,41.9423312],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870402":{"id":"n2139870402","loc":[-85.6342188,41.9425715],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870403":{"id":"n2139870403","loc":[-85.6342524,41.942565],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870404":{"id":"n2139870404","loc":[-85.6341438,41.942299],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870405":{"id":"n2139870405","loc":[-85.6341149,41.9423061],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870407":{"id":"n2139870407","loc":[-85.6340846,41.9431458],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870408":{"id":"n2139870408","loc":[-85.6339436,41.9429032],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870409":{"id":"n2139870409","loc":[-85.6343143,41.9428207],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870410":{"id":"n2139870410","loc":[-85.6343507,41.94277],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870411":{"id":"n2139870411","loc":[-85.6341527,41.942254],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870412":{"id":"n2139870412","loc":[-85.6340925,41.9422199],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870413":{"id":"n2139870413","loc":[-85.6335435,41.9423433],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870414":{"id":"n2139870414","loc":[-85.6335023,41.9423975],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870415":{"id":"n2139870415","loc":[-85.6335086,41.9424552],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870416":{"id":"n2139870416","loc":[-85.6336296,41.942665],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870417":{"id":"n2139870417","loc":[-85.6341396,41.9428596],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870418":{"id":"n2139870418","loc":[-85.6339701,41.9424487],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870419":{"id":"n2139870419","loc":[-85.6335514,41.9425294],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870420":{"id":"n2139870420","loc":[-85.6337406,41.9424929],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870421":{"id":"n2139870421","loc":[-85.6338939,41.9428687],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870422":{"id":"n2139870422","loc":[-85.6341323,41.9419538],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870423":{"id":"n2139870423","loc":[-85.6340321,41.9420376],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870424":{"id":"n2139870424","loc":[-85.6337648,41.942238],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870425":{"id":"n2139870425","loc":[-85.6337604,41.9422685],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870426":{"id":"n2139870426","loc":[-85.6337682,41.9422928],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870427":{"id":"n2139870427","loc":[-85.6338086,41.9423862],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870428":{"id":"n2139870428","loc":[-85.6349465,41.9416631],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870429":{"id":"n2139870429","loc":[-85.6351097,41.9416973],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870430":{"id":"n2139870430","loc":[-85.6353371,41.9416798],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870431":{"id":"n2139870431","loc":[-85.6349627,41.9422506],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870432":{"id":"n2139870432","loc":[-85.634979,41.9421815],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870433":{"id":"n2139870433","loc":[-85.634885,41.9421679],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870434":{"id":"n2139870434","loc":[-85.6348689,41.9422377],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870435":{"id":"n2139870435","loc":[-85.6349779,41.9419486],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870436":{"id":"n2139870436","loc":[-85.6349505,41.9418933],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870437":{"id":"n2139870437","loc":[-85.6347327,41.9419505],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870438":{"id":"n2139870438","loc":[-85.6347614,41.9420087],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870439":{"id":"n2139870439","loc":[-85.6351889,41.9416912],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870440":{"id":"n2139870440","loc":[-85.6351092,41.9418426],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870441":{"id":"n2139870441","loc":[-85.635086,41.9419659],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870442":{"id":"n2139870442","loc":[-85.6350584,41.9421466],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870443":{"id":"n2139870443","loc":[-85.6350993,41.9421606],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870444":{"id":"n2139870444","loc":[-85.6350993,41.9422132],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870445":{"id":"n2139870445","loc":[-85.6350794,41.9422855],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870446":{"id":"n2139870446","loc":[-85.6350474,41.9423159],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870447":{"id":"n2139870447","loc":[-85.6349251,41.9422998],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870448":{"id":"n2139870448","loc":[-85.634911,41.9422755],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870449":{"id":"n2139870449","loc":[-85.6349157,41.9422553],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870450":{"id":"n2139870450","loc":[-85.6347213,41.9419324],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870451":{"id":"n2139870451","loc":[-85.6349535,41.9418771],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139870452":{"id":"n2139870452","loc":[-85.6350135,41.9419421],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870453":{"id":"n2139870453","loc":[-85.6348584,41.9418997],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870454":{"id":"n2139870454","loc":[-85.6348113,41.9418101],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870455":{"id":"n2139870455","loc":[-85.6347306,41.9417449],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870456":{"id":"n2139870456","loc":[-85.6349123,41.941776],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870457":{"id":"n2139870457","loc":[-85.6349423,41.9421448],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870458":{"id":"n2139870458","loc":[-85.6349436,41.9420652],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870459":{"id":"n2139870459","loc":[-85.6349136,41.9419963],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139870460":{"id":"n2139870460","loc":[-85.6349814,41.9419789],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{}},"n2139989328":{"id":"n2139989328","loc":[-85.6334188,41.9421725],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989330":{"id":"n2139989330","loc":[-85.6335087,41.9416308],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989335":{"id":"n2139989335","loc":[-85.6336856,41.9429371],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989337":{"id":"n2139989337","loc":[-85.6333713,41.9427217],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989339":{"id":"n2139989339","loc":[-85.6332912,41.9425383],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989341":{"id":"n2139989341","loc":[-85.6339369,41.9409198],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989344":{"id":"n2139989344","loc":[-85.634097,41.9409469],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989346":{"id":"n2139989346","loc":[-85.634137,41.9412852],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989348":{"id":"n2139989348","loc":[-85.6344536,41.9414151],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989350":{"id":"n2139989350","loc":[-85.6350794,41.9412392],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989351":{"id":"n2139989351","loc":[-85.6352541,41.9409387],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989353":{"id":"n2139989353","loc":[-85.6357198,41.9408007],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989355":{"id":"n2139989355","loc":[-85.6357235,41.9427088],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989357":{"id":"n2139989357","loc":[-85.6337119,41.9421256],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989359":{"id":"n2139989359","loc":[-85.6336913,41.9420655],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989360":{"id":"n2139989360","loc":[-85.633582,41.9420867],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989362":{"id":"n2139989362","loc":[-85.6336058,41.9421491],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989364":{"id":"n2139989364","loc":[-85.6339685,41.9410995],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989366":{"id":"n2139989366","loc":[-85.6339067,41.9411383],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989368":{"id":"n2139989368","loc":[-85.6339685,41.9411972],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139989370":{"id":"n2139989370","loc":[-85.6340398,41.9411619],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2139870379":{"id":"n2139870379","loc":[-85.6348391,41.9416651],"version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2140006363":{"id":"n2140006363","loc":[-85.6353144,41.9430345],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006364":{"id":"n2140006364","loc":[-85.6349191,41.9431422],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140018997":{"id":"n2140018997","loc":[-85.63645945147184,41.942986488012565],"version":"1","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{"amenity":"townhall","name":"Three Rivers City Hall"}},"n2140018998":{"id":"n2140018998","loc":[-85.6370319,41.9427919],"version":"1","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{}},"n2140018999":{"id":"n2140018999","loc":[-85.6360687,41.9427808],"version":"1","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{}},"n2199856288":{"id":"n2199856288","loc":[-85.6344968,41.9407307],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856289":{"id":"n2199856289","loc":[-85.634492,41.9406036],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856290":{"id":"n2199856290","loc":[-85.634891,41.9406001],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856291":{"id":"n2199856291","loc":[-85.6348894,41.9405288],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856292":{"id":"n2199856292","loc":[-85.6349166,41.94053],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856293":{"id":"n2199856293","loc":[-85.6349166,41.9404956],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856294":{"id":"n2199856294","loc":[-85.6350219,41.9404956],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856295":{"id":"n2199856295","loc":[-85.6350251,41.94053],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856296":{"id":"n2199856296","loc":[-85.6350538,41.9405288],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856297":{"id":"n2199856297","loc":[-85.6350602,41.94079],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856298":{"id":"n2199856298","loc":[-85.6351703,41.9407912],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856299":{"id":"n2199856299","loc":[-85.6351688,41.9409171],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856300":{"id":"n2199856300","loc":[-85.6347889,41.9409135],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856301":{"id":"n2199856301","loc":[-85.6347921,41.94079],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856302":{"id":"n2199856302","loc":[-85.6348942,41.9407888],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n2199856303":{"id":"n2199856303","loc":[-85.6348926,41.9407283],"version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{}},"n185951869":{"id":"n185951869","loc":[-85.6387639,41.957288],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185958643":{"id":"n185958643","loc":[-85.636746,41.929221],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958645":{"id":"n185958645","loc":[-85.636791,41.929363],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958647":{"id":"n185958647","loc":[-85.6375975,41.9314987],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n185958649":{"id":"n185958649","loc":[-85.637669,41.931667],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958651":{"id":"n185958651","loc":[-85.637728,41.931901],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958653":{"id":"n185958653","loc":[-85.637724,41.932187],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958656":{"id":"n185958656","loc":[-85.637732,41.932761],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958658":{"id":"n185958658","loc":[-85.637688,41.93398],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958660":{"id":"n185958660","loc":[-85.637685,41.934223],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958662":{"id":"n185958662","loc":[-85.6376468,41.9350232],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n185958664":{"id":"n185958664","loc":[-85.637564,41.937028],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958666":{"id":"n185958666","loc":[-85.637458,41.938197],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185958668":{"id":"n185958668","loc":[-85.637424,41.938692],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:30Z","tags":{}},"n185964972":{"id":"n185964972","loc":[-85.6341901,41.9432732],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185971361":{"id":"n185971361","loc":[-85.635762,41.938208],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:01Z","tags":{}},"n185971364":{"id":"n185971364","loc":[-85.635732,41.9384],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:01Z","tags":{}},"n185971366":{"id":"n185971366","loc":[-85.635736,41.938697],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:01Z","tags":{}},"n185972775":{"id":"n185972775","loc":[-85.635638,42.070357],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972777":{"id":"n185972777","loc":[-85.635724,42.069929],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972779":{"id":"n185972779","loc":[-85.635804,42.069248],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972781":{"id":"n185972781","loc":[-85.635869,42.068361],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972783":{"id":"n185972783","loc":[-85.635883,42.067582],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972785":{"id":"n185972785","loc":[-85.635875,42.067114],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972787":{"id":"n185972787","loc":[-85.635778,42.065359],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972788":{"id":"n185972788","loc":[-85.635728,42.063416],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972789":{"id":"n185972789","loc":[-85.635665,42.062491],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972790":{"id":"n185972790","loc":[-85.635617,42.061928],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972791":{"id":"n185972791","loc":[-85.635614,42.061898],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972793":{"id":"n185972793","loc":[-85.635379,42.060288],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972795":{"id":"n185972795","loc":[-85.635092,42.05799],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972797":{"id":"n185972797","loc":[-85.634843,42.055781],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972798":{"id":"n185972798","loc":[-85.634817,42.055549],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:36Z","tags":{}},"n185972800":{"id":"n185972800","loc":[-85.634708,42.053942],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972802":{"id":"n185972802","loc":[-85.634447,42.051809],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972805":{"id":"n185972805","loc":[-85.634241,42.04946],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972807":{"id":"n185972807","loc":[-85.633787,42.045926],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972809":{"id":"n185972809","loc":[-85.633811,42.045645],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972811":{"id":"n185972811","loc":[-85.63373,42.043626],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972813":{"id":"n185972813","loc":[-85.633698,42.042184],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972814":{"id":"n185972814","loc":[-85.63369,42.04181],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972815":{"id":"n185972815","loc":[-85.633681,42.040714],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972816":{"id":"n185972816","loc":[-85.633571,42.036322],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972817":{"id":"n185972817","loc":[-85.633537,42.034044],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972819":{"id":"n185972819","loc":[-85.633481,42.030785],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972821":{"id":"n185972821","loc":[-85.633452,42.027538],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972824":{"id":"n185972824","loc":[-85.633438,42.027427],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972826":{"id":"n185972826","loc":[-85.633342,42.022656],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972830":{"id":"n185972830","loc":[-85.63327,42.020724],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972832":{"id":"n185972832","loc":[-85.633198,42.019106],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972834":{"id":"n185972834","loc":[-85.633249,42.018363],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972835":{"id":"n185972835","loc":[-85.633139,42.012944],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:37Z","tags":{}},"n185972836":{"id":"n185972836","loc":[-85.63309,42.008284],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:38Z","tags":{}},"n185972839":{"id":"n185972839","loc":[-85.63298,42.00005],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:38Z","tags":{}},"n185972845":{"id":"n185972845","loc":[-85.6325369,41.9764959],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185972847":{"id":"n185972847","loc":[-85.6327549,41.9750005],"version":"4","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185972849":{"id":"n185972849","loc":[-85.6329374,41.9742527],"version":"4","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185972851":{"id":"n185972851","loc":[-85.6331387,41.9736039],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185972862":{"id":"n185972862","loc":[-85.6383589,41.9585023],"version":"4","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185972868":{"id":"n185972868","loc":[-85.6393633,41.9551716],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972878":{"id":"n185972878","loc":[-85.639377,41.95335],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:39Z","tags":{}},"n185972882":{"id":"n185972882","loc":[-85.6389179,41.9516944],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972885":{"id":"n185972885","loc":[-85.6387444,41.9512105],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972891":{"id":"n185972891","loc":[-85.636421,41.946392],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:39Z","tags":{}},"n185972895":{"id":"n185972895","loc":[-85.635965,41.945809],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:39Z","tags":{}},"n185972897":{"id":"n185972897","loc":[-85.635683,41.945449],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:39Z","tags":{}},"n185972899":{"id":"n185972899","loc":[-85.635281,41.9450252],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185972905":{"id":"n185972905","loc":[-85.6324428,41.9425743],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185985217":{"id":"n185985217","loc":[-85.638243,41.943674],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985219":{"id":"n185985219","loc":[-85.638228,41.943747],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985221":{"id":"n185985221","loc":[-85.638163,41.943797],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985222":{"id":"n185985222","loc":[-85.638089,41.943832],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985223":{"id":"n185985223","loc":[-85.637969,41.943841],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985225":{"id":"n185985225","loc":[-85.637841,41.943833],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985227":{"id":"n185985227","loc":[-85.637601,41.943789],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985229":{"id":"n185985229","loc":[-85.637449,41.943754],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985231":{"id":"n185985231","loc":[-85.637342,41.943734],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:20Z","tags":{}},"n185985233":{"id":"n185985233","loc":[-85.637218,41.943703],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:21Z","tags":{}},"n185985235":{"id":"n185985235","loc":[-85.637151,41.943663],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:21Z","tags":{}},"n185985238":{"id":"n185985238","loc":[-85.637118,41.943615],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:21Z","tags":{}},"n185985240":{"id":"n185985240","loc":[-85.637073,41.943494],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:21Z","tags":{}},"n185990434":{"id":"n185990434","loc":[-85.6329028,41.9984292],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:18Z","tags":{"railway":"level_crossing"}},"n1475284023":{"id":"n1475284023","loc":[-85.6336163,41.9435806],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{"railway":"level_crossing"}},"n1475293222":{"id":"n1475293222","loc":[-85.6394045,41.953658],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:50Z","tags":{"railway":"level_crossing"}},"n1475293226":{"id":"n1475293226","loc":[-85.6364975,41.9638663],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:50Z","tags":{"railway":"level_crossing"}},"n1475293234":{"id":"n1475293234","loc":[-85.6390449,41.9565145],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293240":{"id":"n1475293240","loc":[-85.636943,41.9473114],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293252":{"id":"n1475293252","loc":[-85.6392115,41.9559003],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293254":{"id":"n1475293254","loc":[-85.6348931,41.9685127],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{"railway":"level_crossing"}},"n1475293260":{"id":"n1475293260","loc":[-85.6375999,41.9485401],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{}},"n1475293261":{"id":"n1475293261","loc":[-85.6391256,41.9523817],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{"railway":"level_crossing"}},"n1475293264":{"id":"n1475293264","loc":[-85.6394155,41.9546493],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{"railway":"level_crossing"}},"n1819805614":{"id":"n1819805614","loc":[-85.6345652,41.9363097],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805618":{"id":"n1819805618","loc":[-85.6295334,41.9426862],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805622":{"id":"n1819805622","loc":[-85.6308208,41.9430773],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805626":{"id":"n1819805626","loc":[-85.6274734,41.9406592],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805629":{"id":"n1819805629","loc":[-85.6296943,41.9430533],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805632":{"id":"n1819805632","loc":[-85.6340931,41.9354477],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805636":{"id":"n1819805636","loc":[-85.6304131,41.9436598],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805639":{"id":"n1819805639","loc":[-85.6304882,41.9426623],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:25Z","tags":{}},"n1819805641":{"id":"n1819805641","loc":[-85.6336103,41.9367487],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805643":{"id":"n1819805643","loc":[-85.6300376,41.9418084],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805645":{"id":"n1819805645","loc":[-85.6365286,41.9336679],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805647":{"id":"n1819805647","loc":[-85.632016,41.9429221],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805666":{"id":"n1819805666","loc":[-85.6314753,41.9442663],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805669":{"id":"n1819805669","loc":[-85.6268619,41.9402203],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805673":{"id":"n1819805673","loc":[-85.6296728,41.9412099],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805676":{"id":"n1819805676","loc":[-85.6354557,41.932766],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805680":{"id":"n1819805680","loc":[-85.632752,41.9431012],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805683":{"id":"n1819805683","loc":[-85.631147,41.9432014],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805687":{"id":"n1819805687","loc":[-85.635284,41.9343942],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805690":{"id":"n1819805690","loc":[-85.6249736,41.9405794],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805694":{"id":"n1819805694","loc":[-85.6294153,41.9417925],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805698":{"id":"n1819805698","loc":[-85.6323486,41.9426986],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805702":{"id":"n1819805702","loc":[-85.6340287,41.9373871],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805707":{"id":"n1819805707","loc":[-85.6353698,41.9316326],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805711":{"id":"n1819805711","loc":[-85.6284176,41.940356],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805715":{"id":"n1819805715","loc":[-85.6291471,41.9412897],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805718":{"id":"n1819805718","loc":[-85.6311105,41.943979],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805722":{"id":"n1819805722","loc":[-85.6320868,41.9400128],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805724":{"id":"n1819805724","loc":[-85.635166,41.9324627],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805727":{"id":"n1819805727","loc":[-85.6344686,41.9350567],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805728":{"id":"n1819805728","loc":[-85.6357132,41.9332369],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805731":{"id":"n1819805731","loc":[-85.629984,41.9434444],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:26Z","tags":{}},"n1819805760":{"id":"n1819805760","loc":[-85.6330996,41.9378784],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805766":{"id":"n1819805766","loc":[-85.625274,41.9411141],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805770":{"id":"n1819805770","loc":[-85.6326321,41.9412173],"version":"2","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{}},"n1819805774":{"id":"n1819805774","loc":[-85.6347047,41.9312096],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805777":{"id":"n1819805777","loc":[-85.6363569,41.9339552],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805780":{"id":"n1819805780","loc":[-85.6327392,41.941926],"version":"2","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{}},"n1819805783":{"id":"n1819805783","loc":[-85.6357239,41.9338435],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805786":{"id":"n1819805786","loc":[-85.6356595,41.9346576],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805789":{"id":"n1819805789","loc":[-85.6316469,41.9436598],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805792":{"id":"n1819805792","loc":[-85.6350587,41.9354557],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805795":{"id":"n1819805795","loc":[-85.6360028,41.9322791],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805798":{"id":"n1819805798","loc":[-85.63125,41.9443062],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805802":{"id":"n1819805802","loc":[-85.6263362,41.9408109],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805805":{"id":"n1819805805","loc":[-85.6315075,41.9438753],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805808":{"id":"n1819805808","loc":[-85.6340008,41.9316051],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805810":{"id":"n1819805810","loc":[-85.6345545,41.9320557],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805812":{"id":"n1819805812","loc":[-85.6250809,41.9408587],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805814":{"id":"n1819805814","loc":[-85.6257783,41.9400926],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805834":{"id":"n1819805834","loc":[-85.6326408,41.9424363],"version":"2","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{}},"n1819805838":{"id":"n1819805838","loc":[-85.6365607,41.9334365],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805842":{"id":"n1819805842","loc":[-85.6288253,41.9410343],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805846":{"id":"n1819805846","loc":[-85.6279133,41.9402921],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:27Z","tags":{}},"n1819805849":{"id":"n1819805849","loc":[-85.6289433,41.9405156],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805852":{"id":"n1819805852","loc":[-85.6313787,41.9439152],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805858":{"id":"n1819805858","loc":[-85.6300805,41.9420398],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805861":{"id":"n1819805861","loc":[-85.6321941,41.9396297],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805864":{"id":"n1819805864","loc":[-85.6329129,41.9393903],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805868":{"id":"n1819805868","loc":[-85.632001,41.9434922],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805870":{"id":"n1819805870","loc":[-85.6314903,41.9431535],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805873":{"id":"n1819805873","loc":[-85.6251667,41.9401166],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805876":{"id":"n1819805876","loc":[-85.63287,41.939941],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805878":{"id":"n1819805878","loc":[-85.6307886,41.9437317],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805880":{"id":"n1819805880","loc":[-85.6321727,41.940348],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805883":{"id":"n1819805883","loc":[-85.6265872,41.940113],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805885":{"id":"n1819805885","loc":[-85.6268404,41.9406672],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805887":{"id":"n1819805887","loc":[-85.6325267,41.9389035],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805889":{"id":"n1819805889","loc":[-85.6364964,41.933189],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805911":{"id":"n1819805911","loc":[-85.6248663,41.9401804],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805922":{"id":"n1819805922","loc":[-85.633267,41.9387199],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819805925":{"id":"n1819805925","loc":[-85.6293402,41.9408428],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:08:28Z","tags":{}},"n1819848849":{"id":"n1819848849","loc":[-85.6464957,41.9695178],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848850":{"id":"n1819848850","loc":[-85.6497642,41.9611355],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848851":{"id":"n1819848851","loc":[-85.6480943,41.9624818],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848854":{"id":"n1819848854","loc":[-85.6500362,41.9657367],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848855":{"id":"n1819848855","loc":[-85.6493673,41.9783496],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848856":{"id":"n1819848856","loc":[-85.6457409,41.9548007],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848857":{"id":"n1819848857","loc":[-85.651313,41.9760426],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848858":{"id":"n1819848858","loc":[-85.6495819,41.9784772],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848859":{"id":"n1819848859","loc":[-85.6495105,41.9833722],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848860":{"id":"n1819848860","loc":[-85.6405053,41.9492792],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848863":{"id":"n1819848863","loc":[-85.6502293,41.9786826],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848865":{"id":"n1819848865","loc":[-85.6406877,41.9495106],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848870":{"id":"n1819848870","loc":[-85.6493136,41.9704611],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848871":{"id":"n1819848871","loc":[-85.6372249,41.9441284],"version":"2","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n1819848873":{"id":"n1819848873","loc":[-85.6512379,41.9659441],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848875":{"id":"n1819848875","loc":[-85.6508087,41.9650187],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848877":{"id":"n1819848877","loc":[-85.6487166,41.9605352],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848878":{"id":"n1819848878","loc":[-85.6506478,41.9760665],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848879":{"id":"n1819848879","loc":[-85.651431,41.9758512],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848886":{"id":"n1819848886","loc":[-85.6477617,41.9563945],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848889":{"id":"n1819848889","loc":[-85.6497895,41.9832286],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848892":{"id":"n1819848892","loc":[-85.6504868,41.9791931],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848893":{"id":"n1819848893","loc":[-85.6498002,41.9615085],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848894":{"id":"n1819848894","loc":[-85.6404302,41.9502846],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848901":{"id":"n1819848901","loc":[-85.6354412,41.9439886],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848903":{"id":"n1819848903","loc":[-85.6472145,41.9698528],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848904":{"id":"n1819848904","loc":[-85.6401979,41.9486233],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848905":{"id":"n1819848905","loc":[-85.6475042,41.963503],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848909":{"id":"n1819848909","loc":[-85.6343405,41.94358],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848914":{"id":"n1819848914","loc":[-85.6503474,41.9737773],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848915":{"id":"n1819848915","loc":[-85.6389533,41.9470992],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848916":{"id":"n1819848916","loc":[-85.6483625,41.9577907],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848917":{"id":"n1819848917","loc":[-85.6484768,41.9617419],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848918":{"id":"n1819848918","loc":[-85.644078,41.9545693],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848919":{"id":"n1819848919","loc":[-85.6437169,41.9543041],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848920":{"id":"n1819848920","loc":[-85.6478331,41.9627949],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848922":{"id":"n1819848922","loc":[-85.6499144,41.9785889],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848924":{"id":"n1819848924","loc":[-85.647633,41.9720066],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848926":{"id":"n1819848926","loc":[-85.6487987,41.978868],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848927":{"id":"n1819848927","loc":[-85.6495105,41.9730355],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848928":{"id":"n1819848928","loc":[-85.648223,41.9829654],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848929":{"id":"n1819848929","loc":[-85.6514846,41.9659122],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848931":{"id":"n1819848931","loc":[-85.6498753,41.9731871],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848932":{"id":"n1819848932","loc":[-85.640906,41.9508575],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848933":{"id":"n1819848933","loc":[-85.649775,41.9799767],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848934":{"id":"n1819848934","loc":[-85.6507014,41.9739927],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848937":{"id":"n1819848937","loc":[-85.6479763,41.9840899],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848938":{"id":"n1819848938","loc":[-85.6501113,41.9600884],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848939":{"id":"n1819848939","loc":[-85.6389962,41.9478253],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848941":{"id":"n1819848941","loc":[-85.637469,41.9445791],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848942":{"id":"n1819848942","loc":[-85.6494569,41.9601682],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848943":{"id":"n1819848943","loc":[-85.6368803,41.9439351],"version":"2","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n1819848945":{"id":"n1819848945","loc":[-85.6474398,41.9724213],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848946":{"id":"n1819848946","loc":[-85.6382629,41.9463666],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848948":{"id":"n1819848948","loc":[-85.6489633,41.9830771],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848952":{"id":"n1819848952","loc":[-85.6488882,41.9600326],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848953":{"id":"n1819848953","loc":[-85.6488094,41.9774324],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848954":{"id":"n1819848954","loc":[-85.6491135,41.9600485],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848955":{"id":"n1819848955","loc":[-85.6501435,41.9734583],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848956":{"id":"n1819848956","loc":[-85.6495534,41.960958],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848958":{"id":"n1819848958","loc":[-85.6474683,41.9561491],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848959":{"id":"n1819848959","loc":[-85.6401083,41.9485451],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848960":{"id":"n1819848960","loc":[-85.6481764,41.9678686],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848961":{"id":"n1819848961","loc":[-85.6484017,41.967382],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848962":{"id":"n1819848962","loc":[-85.6501328,41.959897],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848964":{"id":"n1819848964","loc":[-85.6403695,41.9504586],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848966":{"id":"n1819848966","loc":[-85.6398975,41.9491499],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848967":{"id":"n1819848967","loc":[-85.6412455,41.9510187],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848968":{"id":"n1819848968","loc":[-85.6482622,41.9619493],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848969":{"id":"n1819848969","loc":[-85.6405841,41.9501474],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848970":{"id":"n1819848970","loc":[-85.6478583,41.9703394],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848971":{"id":"n1819848971","loc":[-85.6493388,41.9832845],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848972":{"id":"n1819848972","loc":[-85.6485664,41.9829415],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848974":{"id":"n1819848974","loc":[-85.6491457,41.9779887],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848975":{"id":"n1819848975","loc":[-85.6468889,41.9697033],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848976":{"id":"n1819848976","loc":[-85.6452726,41.9546072],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848977":{"id":"n1819848977","loc":[-85.6448435,41.9546072],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848979":{"id":"n1819848979","loc":[-85.6485342,41.9763138],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848980":{"id":"n1819848980","loc":[-85.6495282,41.9664087],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848986":{"id":"n1819848986","loc":[-85.6486307,41.9603278],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848987":{"id":"n1819848987","loc":[-85.6492278,41.9791871],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848990":{"id":"n1819848990","loc":[-85.6501934,41.9800724],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848992":{"id":"n1819848992","loc":[-85.6482445,41.9819685],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848993":{"id":"n1819848993","loc":[-85.6481871,41.9704451],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848994":{"id":"n1819848994","loc":[-85.6371364,41.9457602],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848996":{"id":"n1819848996","loc":[-85.6500362,41.9801023],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849000":{"id":"n1819849000","loc":[-85.639007,41.9485914],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849001":{"id":"n1819849001","loc":[-85.6488882,41.9669253],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849002":{"id":"n1819849002","loc":[-85.6484698,41.9565062],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849004":{"id":"n1819849004","loc":[-85.6510769,41.9761064],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849005":{"id":"n1819849005","loc":[-85.6503581,41.9799029],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849006":{"id":"n1819849006","loc":[-85.6489381,41.9703893],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849008":{"id":"n1819849008","loc":[-85.6497457,41.9833588],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849011":{"id":"n1819849011","loc":[-85.6497358,41.9717593],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849012":{"id":"n1819849012","loc":[-85.6494676,41.9796796],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849019":{"id":"n1819849019","loc":[-85.6486093,41.9771034],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849021":{"id":"n1819849021","loc":[-85.6504546,41.9796556],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849022":{"id":"n1819849022","loc":[-85.6371294,41.9454154],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849023":{"id":"n1819849023","loc":[-85.6503436,41.9759249],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849025":{"id":"n1819849025","loc":[-85.6462382,41.9693822],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849026":{"id":"n1819849026","loc":[-85.6497573,41.983093],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849028":{"id":"n1819849028","loc":[-85.6497465,41.9602799],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849029":{"id":"n1819849029","loc":[-85.6374728,41.9460698],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849030":{"id":"n1819849030","loc":[-85.6486592,41.9566039],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849031":{"id":"n1819849031","loc":[-85.6515989,41.9654993],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849032":{"id":"n1819849032","loc":[-85.6387028,41.9482658],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849033":{"id":"n1819849033","loc":[-85.6464742,41.9688398],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849034":{"id":"n1819849034","loc":[-85.6495212,41.9589236],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849035":{"id":"n1819849035","loc":[-85.6490599,41.9790096],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849036":{"id":"n1819849036","loc":[-85.6489918,41.9800724],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849038":{"id":"n1819849038","loc":[-85.6499182,41.9659042],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849040":{"id":"n1819849040","loc":[-85.639758,41.9490143],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849041":{"id":"n1819849041","loc":[-85.6514846,41.9755241],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849042":{"id":"n1819849042","loc":[-85.6436633,41.9540647],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849045":{"id":"n1819849045","loc":[-85.6475541,41.9726387],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849046":{"id":"n1819849046","loc":[-85.6488308,41.9718331],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849047":{"id":"n1819849047","loc":[-85.6377694,41.9460953],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849048":{"id":"n1819849048","loc":[-85.6490706,41.9804452],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849049":{"id":"n1819849049","loc":[-85.6485449,41.9766248],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849051":{"id":"n1819849051","loc":[-85.6483625,41.9790256],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849052":{"id":"n1819849052","loc":[-85.6490706,41.9585167],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849053":{"id":"n1819849053","loc":[-85.6425008,41.9522874],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849054":{"id":"n1819849054","loc":[-85.6475793,41.9632158],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849055":{"id":"n1819849055","loc":[-85.6408631,41.9499399],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849056":{"id":"n1819849056","loc":[-85.6483373,41.9814681],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849057":{"id":"n1819849057","loc":[-85.6313548,41.9442876],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849058":{"id":"n1819849058","loc":[-85.6432663,41.9529796],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849059":{"id":"n1819849059","loc":[-85.6487128,41.9582873],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849060":{"id":"n1819849060","loc":[-85.6482338,41.9817612],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849062":{"id":"n1819849062","loc":[-85.6485664,41.9788661],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849063":{"id":"n1819849063","loc":[-85.6373081,41.9448824],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849064":{"id":"n1819849064","loc":[-85.6472215,41.9557582],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849065":{"id":"n1819849065","loc":[-85.6348984,41.9440414],"version":"2","changeset":"14893390","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:53:38Z","tags":{}},"n1819849066":{"id":"n1819849066","loc":[-85.6501972,41.9647315],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849067":{"id":"n1819849067","loc":[-85.6489741,41.9808281],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849068":{"id":"n1819849068","loc":[-85.6420111,41.9515034],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849069":{"id":"n1819849069","loc":[-85.6397972,41.9488882],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849070":{"id":"n1819849070","loc":[-85.6499718,41.9593465],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849071":{"id":"n1819849071","loc":[-85.6486844,41.9811311],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849072":{"id":"n1819849072","loc":[-85.6390392,41.9474663],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849074":{"id":"n1819849074","loc":[-85.6495642,41.9616362],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849075":{"id":"n1819849075","loc":[-85.6483518,41.9791931],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849076":{"id":"n1819849076","loc":[-85.6478974,41.9833104],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849077":{"id":"n1819849077","loc":[-85.640155,41.948719],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849078":{"id":"n1819849078","loc":[-85.6399366,41.9487845],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849079":{"id":"n1819849079","loc":[-85.6492959,41.9825348],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849080":{"id":"n1819849080","loc":[-85.6505083,41.9648352],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849081":{"id":"n1819849081","loc":[-85.6492959,41.9645241],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849082":{"id":"n1819849082","loc":[-85.6402049,41.9491835],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849083":{"id":"n1819849083","loc":[-85.6495175,41.9826963],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849084":{"id":"n1819849084","loc":[-85.6480836,41.9728361],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849085":{"id":"n1819849085","loc":[-85.6374349,41.9443425],"version":"2","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n1819849086":{"id":"n1819849086","loc":[-85.6478331,41.9681238],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849089":{"id":"n1819849089","loc":[-85.639368,41.9486169],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849092":{"id":"n1819849092","loc":[-85.6503581,41.9788022],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849093":{"id":"n1819849093","loc":[-85.64862,41.9568014],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849094":{"id":"n1819849094","loc":[-85.6496999,41.9828877],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849095":{"id":"n1819849095","loc":[-85.647472,41.972198],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849096":{"id":"n1819849096","loc":[-85.6485771,41.9644523],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849097":{"id":"n1819849097","loc":[-85.6388353,41.9480488],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849099":{"id":"n1819849099","loc":[-85.6472752,41.9683312],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849104":{"id":"n1819849104","loc":[-85.6479548,41.9836035],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849105":{"id":"n1819849105","loc":[-85.6462489,41.9691668],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849107":{"id":"n1819849107","loc":[-85.6511912,41.9746328],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849108":{"id":"n1819849108","loc":[-85.6498646,41.9714881],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849111":{"id":"n1819849111","loc":[-85.6488239,41.961684],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849112":{"id":"n1819849112","loc":[-85.6469356,41.9553812],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849114":{"id":"n1819849114","loc":[-85.6479548,41.9640853],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849119":{"id":"n1819849119","loc":[-85.6491565,41.961692],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849121":{"id":"n1819849121","loc":[-85.651667,41.9656728],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849124":{"id":"n1819849124","loc":[-85.6388423,41.9484414],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849126":{"id":"n1819849126","loc":[-85.6371686,41.9450978],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849127":{"id":"n1819849127","loc":[-85.6502615,41.9656728],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849129":{"id":"n1819849129","loc":[-85.6498501,41.9613031],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849131":{"id":"n1819849131","loc":[-85.6513881,41.9653298],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849133":{"id":"n1819849133","loc":[-85.639883,41.9485291],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849139":{"id":"n1819849139","loc":[-85.6508693,41.9658264],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849140":{"id":"n1819849140","loc":[-85.6486806,41.9761642],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849141":{"id":"n1819849141","loc":[-85.6483159,41.9717613],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849144":{"id":"n1819849144","loc":[-85.6443714,41.9546232],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849146":{"id":"n1819849146","loc":[-85.641775,41.9513359],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849147":{"id":"n1819849147","loc":[-85.6495604,41.9757335],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849148":{"id":"n1819849148","loc":[-85.6465671,41.9551678],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849150":{"id":"n1819849150","loc":[-85.6485127,41.9794084],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849151":{"id":"n1819849151","loc":[-85.6499144,41.9757096],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849152":{"id":"n1819849152","loc":[-85.6433736,41.9531072],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849154":{"id":"n1819849154","loc":[-85.6489741,41.9607426],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849155":{"id":"n1819849155","loc":[-85.640627,41.9507697],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849156":{"id":"n1819849156","loc":[-85.6509659,41.9743058],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849157":{"id":"n1819849157","loc":[-85.6486844,41.9704431],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849158":{"id":"n1819849158","loc":[-85.6498538,41.9711132],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849159":{"id":"n1819849159","loc":[-85.6358937,41.943719],"version":"2","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n1819849160":{"id":"n1819849160","loc":[-85.6497358,41.9707702],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849161":{"id":"n1819849161","loc":[-85.6480476,41.9564842],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849162":{"id":"n1819849162","loc":[-85.6482982,41.9574556],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849163":{"id":"n1819849163","loc":[-85.6501757,41.9757794],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849164":{"id":"n1819849164","loc":[-85.6372973,41.9459916],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849165":{"id":"n1819849165","loc":[-85.6513773,41.9750775],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849166":{"id":"n1819849166","loc":[-85.6436418,41.9537455],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849167":{"id":"n1819849167","loc":[-85.6483625,41.9571524],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849169":{"id":"n1819849169","loc":[-85.647751,41.9727962],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849170":{"id":"n1819849170","loc":[-85.6504546,41.9656808],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849171":{"id":"n1819849171","loc":[-85.6479977,41.971839],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849172":{"id":"n1819849172","loc":[-85.6482767,41.9642449],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849174":{"id":"n1819849174","loc":[-85.6414317,41.9512086],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849176":{"id":"n1819849176","loc":[-85.6469034,41.9685287],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849179":{"id":"n1819849179","loc":[-85.6408631,41.9497564],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849182":{"id":"n1819849182","loc":[-85.6476721,41.96384],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849183":{"id":"n1819849183","loc":[-85.6479725,41.983111],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849184":{"id":"n1819849184","loc":[-85.640788,41.9500516],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849185":{"id":"n1819849185","loc":[-85.6427798,41.9528778],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849186":{"id":"n1819849186","loc":[-85.6435308,41.9534124],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849187":{"id":"n1819849187","loc":[-85.6483733,41.9821998],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849189":{"id":"n1819849189","loc":[-85.6351752,41.9440796],"version":"2","changeset":"14893390","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:53:38Z","tags":{}},"n1819849191":{"id":"n1819849191","loc":[-85.6487021,41.9601463],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849192":{"id":"n1819849192","loc":[-85.6363811,41.9437605],"version":"2","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n1819849193":{"id":"n1819849193","loc":[-85.6490883,41.9759728],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849194":{"id":"n1819849194","loc":[-85.6423292,41.9520081],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849195":{"id":"n1819849195","loc":[-85.6500003,41.960242],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849196":{"id":"n1819849196","loc":[-85.6385778,41.9466443],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849197":{"id":"n1819849197","loc":[-85.6494032,41.9718789],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849198":{"id":"n1819849198","loc":[-85.6404339,41.9506501],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849199":{"id":"n1819849199","loc":[-85.6426226,41.9527083],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849200":{"id":"n1819849200","loc":[-85.6439101,41.9545035],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849201":{"id":"n1819849201","loc":[-85.6516563,41.9657845],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:00Z","tags":{}},"n1819849202":{"id":"n1819849202","loc":[-85.6473395,41.9699585],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:00Z","tags":{}},"n1819858501":{"id":"n1819858501","loc":[-85.6361263,41.9437126],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858503":{"id":"n1819858503","loc":[-85.6350068,41.944034],"version":"2","changeset":"14893390","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:53:38Z","tags":{}},"n1819858513":{"id":"n1819858513","loc":[-85.6371402,41.9453282],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858518":{"id":"n1819858518","loc":[-85.6348713,41.9432923],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858523":{"id":"n1819858523","loc":[-85.6357047,41.943799],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858526":{"id":"n1819858526","loc":[-85.6349947,41.9435756],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858531":{"id":"n1819858531","loc":[-85.6350376,41.943827],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1820937508":{"id":"n1820937508","loc":[-85.1026013,42.0881722],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937509":{"id":"n1820937509","loc":[-85.0558088,42.102493],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937511":{"id":"n1820937511","loc":[-85.3030116,41.9724451],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937513":{"id":"n1820937513","loc":[-85.0353221,42.1027398],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937514":{"id":"n1820937514","loc":[-85.0835468,42.1015469],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937515":{"id":"n1820937515","loc":[-85.2421298,42.0106305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937517":{"id":"n1820937517","loc":[-85.0090632,42.0910452],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937518":{"id":"n1820937518","loc":[-85.086626,42.0948838],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:57Z","tags":{}},"n1820937520":{"id":"n1820937520","loc":[-85.2552039,42.0015448],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937521":{"id":"n1820937521","loc":[-85.3739614,41.9969917],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937522":{"id":"n1820937522","loc":[-85.4831166,41.993898],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937523":{"id":"n1820937523","loc":[-85.0341084,42.0977657],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937524":{"id":"n1820937524","loc":[-85.3272802,41.9710333],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937525":{"id":"n1820937525","loc":[-85.2125568,42.0414521],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937526":{"id":"n1820937526","loc":[-85.3798022,41.9992458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937527":{"id":"n1820937527","loc":[-85.2652021,41.999768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937528":{"id":"n1820937528","loc":[-85.3852739,42.0004896],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937529":{"id":"n1820937529","loc":[-85.3911919,42.0030513],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937530":{"id":"n1820937530","loc":[-85.5440349,41.9717109],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937531":{"id":"n1820937531","loc":[-85.2790155,41.9911764],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937532":{"id":"n1820937532","loc":[-85.4723277,41.9950518],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937533":{"id":"n1820937533","loc":[-85.5690546,41.9653931],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937535":{"id":"n1820937535","loc":[-85.5674882,41.9649623],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937536":{"id":"n1820937536","loc":[-85.6362815,41.9189165],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937537":{"id":"n1820937537","loc":[-85.5659003,41.963638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:58Z","tags":{}},"n1820937539":{"id":"n1820937539","loc":[-85.6391353,41.9122262],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937540":{"id":"n1820937540","loc":[-85.4834385,41.9894803],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937541":{"id":"n1820937541","loc":[-85.6399078,41.9160744],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937542":{"id":"n1820937542","loc":[-85.632874,41.941031],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937543":{"id":"n1820937543","loc":[-85.1307591,42.0726961],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937544":{"id":"n1820937544","loc":[-85.6444397,41.9128378],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937545":{"id":"n1820937545","loc":[-85.6197204,41.9420365],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937546":{"id":"n1820937546","loc":[-85.1164857,42.0864631],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937547":{"id":"n1820937547","loc":[-85.6476111,41.9142222],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937548":{"id":"n1820937548","loc":[-85.2915747,41.9774223],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937549":{"id":"n1820937549","loc":[-85.6430192,41.9102461],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937550":{"id":"n1820937550","loc":[-85.1597495,42.0639017],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937551":{"id":"n1820937551","loc":[-85.5504079,41.9701793],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937553":{"id":"n1820937553","loc":[-85.2781317,41.9948951],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937555":{"id":"n1820937555","loc":[-85.3724594,41.997518],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937556":{"id":"n1820937556","loc":[-85.5629434,41.9665155],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937557":{"id":"n1820937557","loc":[-85.3791971,41.9990808],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937558":{"id":"n1820937558","loc":[-85.001891,42.0878843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:55:59Z","tags":{}},"n1820937560":{"id":"n1820937560","loc":[-85.3140838,41.9709056],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937561":{"id":"n1820937561","loc":[-85.2468032,42.0146987],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937563":{"id":"n1820937563","loc":[-85.0877378,42.097255],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937564":{"id":"n1820937564","loc":[-85.2442498,42.0150654],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937566":{"id":"n1820937566","loc":[-85.3108973,41.9701478],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937568":{"id":"n1820937568","loc":[-85.0344584,42.1016572],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937569":{"id":"n1820937569","loc":[-85.2331025,42.0297387],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937570":{"id":"n1820937570","loc":[-85.5058446,41.9746996],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937571":{"id":"n1820937571","loc":[-85.5622739,41.9676427],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937572":{"id":"n1820937572","loc":[-85.2792687,41.9890337],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937574":{"id":"n1820937574","loc":[-84.9909302,42.08695],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937575":{"id":"n1820937575","loc":[-85.6218233,41.9418609],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937576":{"id":"n1820937576","loc":[-85.3577437,41.9931062],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937577":{"id":"n1820937577","loc":[-85.639028,41.9165853],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937578":{"id":"n1820937578","loc":[-84.9956576,42.0865348],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937579":{"id":"n1820937579","loc":[-85.4828376,41.990198],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937580":{"id":"n1820937580","loc":[-85.3244478,41.9720543],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937582":{"id":"n1820937582","loc":[-85.0517479,42.1035159],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937583":{"id":"n1820937583","loc":[-85.225646,42.0338025],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937584":{"id":"n1820937584","loc":[-84.9941019,42.0862163],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937586":{"id":"n1820937586","loc":[-85.1051762,42.0879452],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937587":{"id":"n1820937587","loc":[-85.1245203,42.0753162],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937588":{"id":"n1820937588","loc":[-85.3250808,41.9719506],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937589":{"id":"n1820937589","loc":[-85.2720109,41.997933],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:00Z","tags":{}},"n1820937590":{"id":"n1820937590","loc":[-85.2556653,42.0027248],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937591":{"id":"n1820937591","loc":[-85.0872483,42.0943544],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937592":{"id":"n1820937592","loc":[-85.2778353,41.9955023],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937593":{"id":"n1820937593","loc":[-85.2984733,41.9735538],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937594":{"id":"n1820937594","loc":[-85.101578,42.0889552],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937595":{"id":"n1820937595","loc":[-85.3888745,42.0016959],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937596":{"id":"n1820937596","loc":[-84.9903508,42.0870654],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937597":{"id":"n1820937597","loc":[-85.6405558,41.9146261],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937598":{"id":"n1820937598","loc":[-85.6460704,41.9141311],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937599":{"id":"n1820937599","loc":[-85.0377468,42.1037428],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937600":{"id":"n1820937600","loc":[-85.2298345,42.0312899],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937601":{"id":"n1820937601","loc":[-85.1080958,42.0861964],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937602":{"id":"n1820937602","loc":[-85.6325307,41.9402329],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937603":{"id":"n1820937603","loc":[-85.1165984,42.0832184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937604":{"id":"n1820937604","loc":[-85.6354446,41.9190602],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937605":{"id":"n1820937605","loc":[-85.1114592,42.0862959],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937606":{"id":"n1820937606","loc":[-85.0858763,42.1001646],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937607":{"id":"n1820937607","loc":[-85.0472083,42.1015151],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937608":{"id":"n1820937608","loc":[-85.0802477,42.1027609],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937610":{"id":"n1820937610","loc":[-85.0924585,42.0928564],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937611":{"id":"n1820937611","loc":[-85.0329617,42.09827],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937612":{"id":"n1820937612","loc":[-85.2814617,41.993465],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937613":{"id":"n1820937613","loc":[-85.3097708,41.9700282],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937614":{"id":"n1820937614","loc":[-85.2809427,41.993695],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937615":{"id":"n1820937615","loc":[-85.0583233,42.1026494],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:01Z","tags":{}},"n1820937617":{"id":"n1820937617","loc":[-85.2801592,41.9840021],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937619":{"id":"n1820937619","loc":[-85.1064154,42.0863449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937620":{"id":"n1820937620","loc":[-85.0423173,42.1014662],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937621":{"id":"n1820937621","loc":[-85.2168913,42.0398107],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937622":{"id":"n1820937622","loc":[-85.2798481,41.9833401],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937623":{"id":"n1820937623","loc":[-85.0575468,42.1028672],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937625":{"id":"n1820937625","loc":[-85.0130369,42.0893067],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937626":{"id":"n1820937626","loc":[-85.0346985,42.1018256],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937627":{"id":"n1820937627","loc":[-85.2231569,42.0372768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937628":{"id":"n1820937628","loc":[-85.2956195,41.9732268],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937629":{"id":"n1820937629","loc":[-85.1052312,42.086893],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937630":{"id":"n1820937630","loc":[-85.4813356,41.9958436],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937631":{"id":"n1820937631","loc":[-85.0961599,42.0914672],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937632":{"id":"n1820937632","loc":[-85.308419,41.9704749],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937633":{"id":"n1820937633","loc":[-85.295952,41.9715119],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937634":{"id":"n1820937634","loc":[-85.3310933,41.9703923],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937635":{"id":"n1820937635","loc":[-85.2940745,41.9739686],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937636":{"id":"n1820937636","loc":[-85.3803343,42.000484],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937637":{"id":"n1820937637","loc":[-85.1174231,42.0845533],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:02Z","tags":{}},"n1820937638":{"id":"n1820937638","loc":[-85.0095836,42.089839],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937639":{"id":"n1820937639","loc":[-85.3179354,41.9705866],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937640":{"id":"n1820937640","loc":[-85.257708,42.0001189],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937641":{"id":"n1820937641","loc":[-85.2563522,42.0002771],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937642":{"id":"n1820937642","loc":[-85.3181929,41.970419],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937643":{"id":"n1820937643","loc":[-85.2911884,41.9757154],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937644":{"id":"n1820937644","loc":[-85.2714423,41.9975862],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937645":{"id":"n1820937645","loc":[-85.0193669,42.089888],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937646":{"id":"n1820937646","loc":[-85.3889818,42.0039921],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937647":{"id":"n1820937647","loc":[-85.3408093,41.9853965],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937648":{"id":"n1820937648","loc":[-85.1258091,42.0748332],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937649":{"id":"n1820937649","loc":[-85.5722561,41.962782],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937650":{"id":"n1820937650","loc":[-85.3266902,41.9721819],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937651":{"id":"n1820937651","loc":[-85.1473255,42.065192],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937652":{"id":"n1820937652","loc":[-85.1462526,42.0655106],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937653":{"id":"n1820937653","loc":[-85.4641051,42.0013929],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937654":{"id":"n1820937654","loc":[-85.5620379,41.9700677],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937655":{"id":"n1820937655","loc":[-85.3226025,41.971121],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937656":{"id":"n1820937656","loc":[-85.0200965,42.0899516],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937657":{"id":"n1820937657","loc":[-85.0624714,42.1044711],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937658":{"id":"n1820937658","loc":[-85.5649562,41.9637178],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937659":{"id":"n1820937659","loc":[-85.2360315,42.0253315],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937660":{"id":"n1820937660","loc":[-85.3881449,41.9994475],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937661":{"id":"n1820937661","loc":[-85.5032911,41.976263],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937662":{"id":"n1820937662","loc":[-85.481297,41.9871414],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937663":{"id":"n1820937663","loc":[-85.1167056,42.0841898],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937664":{"id":"n1820937664","loc":[-85.2891714,41.9787223],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937665":{"id":"n1820937665","loc":[-85.4393429,42.0058736],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937666":{"id":"n1820937666","loc":[-85.0077007,42.0895762],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937667":{"id":"n1820937667","loc":[-85.2736202,41.9979171],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937668":{"id":"n1820937668","loc":[-84.9935332,42.0859296],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:03Z","tags":{}},"n1820937669":{"id":"n1820937669","loc":[-85.0622769,42.1046713],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937670":{"id":"n1820937670","loc":[-85.2309031,42.0311249],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937671":{"id":"n1820937671","loc":[-85.0343726,42.10069],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937672":{"id":"n1820937672","loc":[-85.0596551,42.1048612],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937673":{"id":"n1820937673","loc":[-85.1338597,42.0707449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937674":{"id":"n1820937674","loc":[-85.3117663,41.9689194],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937675":{"id":"n1820937675","loc":[-85.0705649,42.1057499],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937676":{"id":"n1820937676","loc":[-85.2441425,42.0180944],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937677":{"id":"n1820937677","loc":[-85.1171174,42.0862692],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937678":{"id":"n1820937678","loc":[-85.0346824,42.1005519],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937680":{"id":"n1820937680","loc":[-85.2389927,42.0229245],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937681":{"id":"n1820937681","loc":[-85.0834892,42.1018642],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937682":{"id":"n1820937682","loc":[-85.0619443,42.1049459],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937683":{"id":"n1820937683","loc":[-85.2845366,41.9811868],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937684":{"id":"n1820937684","loc":[-85.210411,42.0394123],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937685":{"id":"n1820937685","loc":[-85.4377383,42.0055942],"version":"2","changeset":"12524188","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-28T14:51:01Z","tags":{}},"n1820937686":{"id":"n1820937686","loc":[-85.2882058,41.9789138],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937687":{"id":"n1820937687","loc":[-85.2741191,41.9955808],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937688":{"id":"n1820937688","loc":[-85.3442211,41.9903575],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937689":{"id":"n1820937689","loc":[-85.2641413,41.9995237],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937690":{"id":"n1820937690","loc":[-85.2804489,41.9829174],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937691":{"id":"n1820937691","loc":[-85.5593342,41.9729074],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937692":{"id":"n1820937692","loc":[-85.3590912,41.9932601],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:04Z","tags":{}},"n1820937694":{"id":"n1820937694","loc":[-85.4826445,41.9957479],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937695":{"id":"n1820937695","loc":[-85.4539127,42.0063041],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937696":{"id":"n1820937696","loc":[-85.2456767,42.0153683],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937697":{"id":"n1820937697","loc":[-85.5794015,41.9489631],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937698":{"id":"n1820937698","loc":[-85.4108686,42.0078507],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937699":{"id":"n1820937699","loc":[-85.0616386,42.1051529],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937700":{"id":"n1820937700","loc":[-85.4977979,41.978241],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937701":{"id":"n1820937701","loc":[-85.2488417,42.0086319],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937702":{"id":"n1820937702","loc":[-85.5588836,41.9728116],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937703":{"id":"n1820937703","loc":[-85.4557366,42.0051241],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937705":{"id":"n1820937705","loc":[-85.0723151,42.1056094],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937706":{"id":"n1820937706","loc":[-85.0057909,42.0887323],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937707":{"id":"n1820937707","loc":[-85.0756786,42.105677],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937708":{"id":"n1820937708","loc":[-85.0901504,42.0940001],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937709":{"id":"n1820937709","loc":[-85.0979999,42.0910213],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937710":{"id":"n1820937710","loc":[-85.2376301,42.0239686],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937711":{"id":"n1820937711","loc":[-85.2780671,41.9902299],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937712":{"id":"n1820937712","loc":[-85.251481,42.0113188],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937713":{"id":"n1820937713","loc":[-85.3114767,41.9690311],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937714":{"id":"n1820937714","loc":[-85.2649621,41.9975662],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937715":{"id":"n1820937715","loc":[-85.283807,41.9813383],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:05Z","tags":{}},"n1820937716":{"id":"n1820937716","loc":[-85.5515451,41.9703867],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937717":{"id":"n1820937717","loc":[-85.1176605,42.0850896],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937718":{"id":"n1820937718","loc":[-85.1069317,42.0862441],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937719":{"id":"n1820937719","loc":[-85.2739314,41.9976938],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937720":{"id":"n1820937720","loc":[-85.5550212,41.9702112],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937721":{"id":"n1820937721","loc":[-85.3076679,41.9719904],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937722":{"id":"n1820937722","loc":[-85.592319,41.9440316],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937723":{"id":"n1820937723","loc":[-85.3139979,41.9704031],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937724":{"id":"n1820937724","loc":[-85.0421134,42.1013149],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937725":{"id":"n1820937725","loc":[-85.2508373,42.0102741],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937726":{"id":"n1820937726","loc":[-85.0830922,42.1038821],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937727":{"id":"n1820937727","loc":[-85.6342473,41.9360031],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937730":{"id":"n1820937730","loc":[-85.0500192,42.1024942],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937731":{"id":"n1820937731","loc":[-85.3498644,41.9926221],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937732":{"id":"n1820937732","loc":[-85.0234117,42.0918903],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937733":{"id":"n1820937733","loc":[-85.0464425,42.1009408],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937734":{"id":"n1820937734","loc":[-85.033938,42.099886],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937736":{"id":"n1820937736","loc":[-85.0152752,42.0886009],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937737":{"id":"n1820937737","loc":[-85.0441894,42.1012671],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937738":{"id":"n1820937738","loc":[-85.4668731,41.9979804],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937739":{"id":"n1820937739","loc":[-85.4407377,42.006033],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937740":{"id":"n1820937740","loc":[-85.2262253,42.0344878],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937741":{"id":"n1820937741","loc":[-85.2550001,42.0033706],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937742":{"id":"n1820937742","loc":[-85.3071422,41.9722617],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937743":{"id":"n1820937743","loc":[-85.6147852,41.942228],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937744":{"id":"n1820937744","loc":[-85.0183853,42.0901825],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:06Z","tags":{}},"n1820937745":{"id":"n1820937745","loc":[-85.6323161,41.9228489],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937746":{"id":"n1820937746","loc":[-85.0095568,42.0901376],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937747":{"id":"n1820937747","loc":[-85.2524037,42.0113826],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937748":{"id":"n1820937748","loc":[-85.3186864,41.9708578],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937749":{"id":"n1820937749","loc":[-85.2805669,41.9870883],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937750":{"id":"n1820937750","loc":[-85.0585768,42.1038144],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937751":{"id":"n1820937751","loc":[-85.2970786,41.9715358],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937752":{"id":"n1820937752","loc":[-85.1315758,42.0723445],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937753":{"id":"n1820937753","loc":[-85.2448291,42.0175444],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937754":{"id":"n1820937754","loc":[-85.2446468,42.0174248],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937755":{"id":"n1820937755","loc":[-85.229165,42.032129],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937756":{"id":"n1820937756","loc":[-85.5612654,41.9724926],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937757":{"id":"n1820937757","loc":[-85.2331776,42.030854],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937758":{"id":"n1820937758","loc":[-85.2271909,42.0334519],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937759":{"id":"n1820937759","loc":[-85.1032396,42.0879214],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937760":{"id":"n1820937760","loc":[-85.0638447,42.1044154],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937761":{"id":"n1820937761","loc":[-85.1260706,42.0745556],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937762":{"id":"n1820937762","loc":[-85.3454485,41.99132],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937763":{"id":"n1820937763","loc":[-85.2639321,41.9980088],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937764":{"id":"n1820937764","loc":[-85.0837681,42.1013746],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937765":{"id":"n1820937765","loc":[-85.2808137,41.9869368],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937766":{"id":"n1820937766","loc":[-85.6338997,41.9309373],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937767":{"id":"n1820937767","loc":[-85.2267403,42.0332766],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937768":{"id":"n1820937768","loc":[-85.0605831,42.1052074],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937769":{"id":"n1820937769","loc":[-85.0259021,42.0930037],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937770":{"id":"n1820937770","loc":[-85.232963,42.0313162],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937771":{"id":"n1820937771","loc":[-85.2404947,42.0125381],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:07Z","tags":{}},"n1820937772":{"id":"n1820937772","loc":[-85.0910892,42.0935742],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937773":{"id":"n1820937773","loc":[-85.2554829,42.0019435],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937774":{"id":"n1820937774","loc":[-85.2799339,41.9867773],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937775":{"id":"n1820937775","loc":[-85.1075432,42.0852767],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937776":{"id":"n1820937776","loc":[-85.1176927,42.0854001],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937777":{"id":"n1820937777","loc":[-85.1067064,42.0863357],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937778":{"id":"n1820937778","loc":[-85.2517492,42.0106333],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937779":{"id":"n1820937779","loc":[-85.0987174,42.0909031],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937780":{"id":"n1820937780","loc":[-85.1160083,42.0863994],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937781":{"id":"n1820937781","loc":[-85.1268645,42.0739703],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937782":{"id":"n1820937782","loc":[-85.0454702,42.1002852],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937783":{"id":"n1820937783","loc":[-85.1334145,42.0705418],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937784":{"id":"n1820937784","loc":[-85.5866542,41.947431],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937786":{"id":"n1820937786","loc":[-85.2359886,42.0250366],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937787":{"id":"n1820937787","loc":[-85.3138048,41.9698527],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937788":{"id":"n1820937788","loc":[-85.1274291,42.0733081],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937790":{"id":"n1820937790","loc":[-85.6292905,41.9411267],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937791":{"id":"n1820937791","loc":[-85.5958809,41.9417333],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:08Z","tags":{}},"n1820937792":{"id":"n1820937792","loc":[-85.1271019,42.0737581],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937793":{"id":"n1820937793","loc":[-85.2312679,42.0314437],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937794":{"id":"n1820937794","loc":[-85.1081387,42.0863516],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937795":{"id":"n1820937795","loc":[-85.2424473,42.0212109],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937796":{"id":"n1820937796","loc":[-85.2710654,41.9975236],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937797":{"id":"n1820937797","loc":[-85.4798408,41.9863223],"version":"2","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1820937798":{"id":"n1820937798","loc":[-85.035939,42.104296],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937799":{"id":"n1820937799","loc":[-85.2178139,42.0395398],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937800":{"id":"n1820937800","loc":[-85.0630709,42.1042614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937801":{"id":"n1820937801","loc":[-85.0440124,42.1014861],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937802":{"id":"n1820937802","loc":[-85.1321874,42.0720458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937804":{"id":"n1820937804","loc":[-85.079427,42.1029121],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937805":{"id":"n1820937805","loc":[-85.2962632,41.9738968],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937806":{"id":"n1820937806","loc":[-85.6334748,41.9274627],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937807":{"id":"n1820937807","loc":[-85.1057341,42.0872804],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937808":{"id":"n1820937808","loc":[-85.4960169,41.9778263],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937809":{"id":"n1820937809","loc":[-85.2821226,41.9910273],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937810":{"id":"n1820937810","loc":[-85.0013868,42.0885054],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937811":{"id":"n1820937811","loc":[-85.2952547,41.9729795],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937812":{"id":"n1820937812","loc":[-85.1298375,42.0667842],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937813":{"id":"n1820937813","loc":[-85.1339201,42.0710025],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937814":{"id":"n1820937814","loc":[-85.0374356,42.103691],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937815":{"id":"n1820937815","loc":[-85.0061115,42.0880607],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937817":{"id":"n1820937817","loc":[-85.2398402,42.0226934],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937818":{"id":"n1820937818","loc":[-85.123501,42.076236],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:09Z","tags":{}},"n1820937819":{"id":"n1820937819","loc":[-85.1209489,42.0791294],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937820":{"id":"n1820937820","loc":[-85.0818624,42.1025778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937821":{"id":"n1820937821","loc":[-85.4428835,42.0054749],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937822":{"id":"n1820937822","loc":[-85.4710359,41.9961147],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937823":{"id":"n1820937823","loc":[-85.4253354,42.006198],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937824":{"id":"n1820937824","loc":[-85.5486483,41.9709451],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937825":{"id":"n1820937825","loc":[-85.2303238,42.0310452],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937826":{"id":"n1820937826","loc":[-85.6450405,41.9136361],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937828":{"id":"n1820937828","loc":[-85.2606853,41.9964073],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937830":{"id":"n1820937830","loc":[-85.097383,42.0911447],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937831":{"id":"n1820937831","loc":[-85.0498207,42.102136],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937832":{"id":"n1820937832","loc":[-85.1232435,42.0763793],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937833":{"id":"n1820937833","loc":[-85.394093,42.0055921],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937834":{"id":"n1820937834","loc":[-85.3566665,41.9928295],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937835":{"id":"n1820937835","loc":[-85.3543276,41.9920002],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937837":{"id":"n1820937837","loc":[-85.084668,42.1034932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937838":{"id":"n1820937838","loc":[-85.4400296,42.0060649],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937839":{"id":"n1820937839","loc":[-85.2362246,42.025714],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937840":{"id":"n1820937840","loc":[-85.0409225,42.1012791],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937841":{"id":"n1820937841","loc":[-85.2442283,42.019832],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937842":{"id":"n1820937842","loc":[-85.1123001,42.084824],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937843":{"id":"n1820937843","loc":[-85.1603074,42.0638061],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937844":{"id":"n1820937844","loc":[-85.1359744,42.0650646],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937845":{"id":"n1820937845","loc":[-85.1757569,42.053849],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937846":{"id":"n1820937846","loc":[-85.5200925,41.9716686],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937848":{"id":"n1820937848","loc":[-85.5525322,41.9701315],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937849":{"id":"n1820937849","loc":[-85.0406489,42.10149],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:10Z","tags":{}},"n1820937850":{"id":"n1820937850","loc":[-85.0142547,42.088825],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937851":{"id":"n1820937851","loc":[-85.343749,41.9881884],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937852":{"id":"n1820937852","loc":[-85.074996,42.1060205],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937853":{"id":"n1820937853","loc":[-85.2436275,42.0136864],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937854":{"id":"n1820937854","loc":[-85.2641453,41.9980897],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937856":{"id":"n1820937856","loc":[-85.2802343,41.9870086],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937857":{"id":"n1820937857","loc":[-85.0099256,42.0909946],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937858":{"id":"n1820937858","loc":[-85.493957,41.9786079],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937859":{"id":"n1820937859","loc":[-85.0739405,42.1059795],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937860":{"id":"n1820937860","loc":[-85.2331605,42.0301423],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937862":{"id":"n1820937862","loc":[-85.2035231,42.0438425],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937863":{"id":"n1820937863","loc":[-85.0884928,42.0986971],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937864":{"id":"n1820937864","loc":[-85.131597,42.0690142],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937865":{"id":"n1820937865","loc":[-85.3937454,42.0052677],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937866":{"id":"n1820937866","loc":[-85.2212729,42.0378561],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937867":{"id":"n1820937867","loc":[-85.0886068,42.0982421],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937868":{"id":"n1820937868","loc":[-85.0875004,42.0968064],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:11Z","tags":{}},"n1820937869":{"id":"n1820937869","loc":[-85.0771323,42.1042642],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937870":{"id":"n1820937870","loc":[-85.0164554,42.0894887],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937871":{"id":"n1820937871","loc":[-85.6069102,41.9415577],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937872":{"id":"n1820937872","loc":[-85.3273875,41.9704908],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937873":{"id":"n1820937873","loc":[-85.3890891,41.9997983],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937875":{"id":"n1820937875","loc":[-85.5091276,41.9723705],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937876":{"id":"n1820937876","loc":[-85.0770626,42.1047696],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937877":{"id":"n1820937877","loc":[-85.612575,41.9419567],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937878":{"id":"n1820937878","loc":[-85.3868146,42.0036094],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937879":{"id":"n1820937879","loc":[-85.2722738,41.9981204],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937880":{"id":"n1820937880","loc":[-85.3064878,41.9723733],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937882":{"id":"n1820937882","loc":[-85.1270845,42.0727678],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937884":{"id":"n1820937884","loc":[-85.3316512,41.97923],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937885":{"id":"n1820937885","loc":[-85.3932519,42.0042472],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937886":{"id":"n1820937886","loc":[-85.2457411,42.0175444],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937887":{"id":"n1820937887","loc":[-85.1397509,42.0648415],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937891":{"id":"n1820937891","loc":[-85.3196735,41.9719665],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937892":{"id":"n1820937892","loc":[-85.3372473,41.9845033],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937894":{"id":"n1820937894","loc":[-85.3254778,41.9719745],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937897":{"id":"n1820937897","loc":[-85.3185148,41.9691268],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937899":{"id":"n1820937899","loc":[-85.5419106,41.9714556],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937901":{"id":"n1820937901","loc":[-85.3293509,41.9748368],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:12Z","tags":{}},"n1820937903":{"id":"n1820937903","loc":[-85.0798078,42.1028365],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937905":{"id":"n1820937905","loc":[-85.3954191,42.0056025],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937909":{"id":"n1820937909","loc":[-85.3417534,41.9857155],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937913":{"id":"n1820937913","loc":[-84.9927822,42.0857107],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937915":{"id":"n1820937915","loc":[-85.5444212,41.9712801],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937917":{"id":"n1820937917","loc":[-85.259088,41.9981682],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937921":{"id":"n1820937921","loc":[-85.2784576,41.9876358],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937922":{"id":"n1820937922","loc":[-84.9971918,42.087753],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937924":{"id":"n1820937924","loc":[-85.5310688,41.966899],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820937928":{"id":"n1820937928","loc":[-85.3766436,41.9979326],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937930":{"id":"n1820937930","loc":[-85.5494852,41.9704346],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937933":{"id":"n1820937933","loc":[-85.5548281,41.9695412],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937935":{"id":"n1820937935","loc":[-85.0768588,42.105088],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937937":{"id":"n1820937937","loc":[-85.2646885,41.9978054],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937939":{"id":"n1820937939","loc":[-85.2441532,42.0176082],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937941":{"id":"n1820937941","loc":[-85.105553,42.0877928],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937943":{"id":"n1820937943","loc":[-85.0879457,42.0958909],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937944":{"id":"n1820937944","loc":[-85.3187015,41.9704402],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937945":{"id":"n1820937945","loc":[-85.5624456,41.970626],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937946":{"id":"n1820937946","loc":[-85.0580176,42.1028644],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937948":{"id":"n1820937948","loc":[-85.3016061,41.9726286],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937949":{"id":"n1820937949","loc":[-85.4310388,42.0069418],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937950":{"id":"n1820937950","loc":[-85.2945144,41.9740723],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937951":{"id":"n1820937951","loc":[-85.1170222,42.082657],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:13Z","tags":{}},"n1820937952":{"id":"n1820937952","loc":[-85.0864503,42.0947632],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937953":{"id":"n1820937953","loc":[-85.4285926,42.0059533],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937970":{"id":"n1820937970","loc":[-85.3629965,41.9938023],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937972":{"id":"n1820937972","loc":[-85.2438099,42.0199755],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937974":{"id":"n1820937974","loc":[-85.1327654,42.0699285],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937977":{"id":"n1820937977","loc":[-85.1515956,42.0611935],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937978":{"id":"n1820937978","loc":[-85.0107369,42.0896638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937979":{"id":"n1820937979","loc":[-85.1152626,42.0862083],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937980":{"id":"n1820937980","loc":[-85.4531831,42.0062881],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937981":{"id":"n1820937981","loc":[-85.0341473,42.0985924],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937982":{"id":"n1820937982","loc":[-85.0877485,42.0960171],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937983":{"id":"n1820937983","loc":[-85.2756373,41.9951742],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937984":{"id":"n1820937984","loc":[-85.2965421,41.9714401],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937985":{"id":"n1820937985","loc":[-85.2409775,42.0226934],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937986":{"id":"n1820937986","loc":[-85.0170723,42.0900579],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937987":{"id":"n1820937987","loc":[-85.1034663,42.0880555],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937988":{"id":"n1820937988","loc":[-85.0585071,42.1031577],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937990":{"id":"n1820937990","loc":[-85.0819174,42.1032373],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937992":{"id":"n1820937992","loc":[-85.0546608,42.1030542],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937993":{"id":"n1820937993","loc":[-85.0100811,42.0906125],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937995":{"id":"n1820937995","loc":[-85.6304278,41.9432655],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820937997":{"id":"n1820937997","loc":[-85.0255628,42.092778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:14Z","tags":{}},"n1820938011":{"id":"n1820938011","loc":[-85.2316756,42.0317146],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938012":{"id":"n1820938012","loc":[-85.4067917,42.008042],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938013":{"id":"n1820938013","loc":[-85.390398,42.0028759],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938014":{"id":"n1820938014","loc":[-85.0161604,42.0886527],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938015":{"id":"n1820938015","loc":[-85.125337,42.0744589],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938016":{"id":"n1820938016","loc":[-85.2151317,42.0404801],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938017":{"id":"n1820938017","loc":[-85.3165085,41.9706025],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938018":{"id":"n1820938018","loc":[-85.5641193,41.9640688],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938019":{"id":"n1820938019","loc":[-85.147583,42.0642203],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938022":{"id":"n1820938022","loc":[-85.2803781,41.9947886],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938024":{"id":"n1820938024","loc":[-85.2692469,41.9982053],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938026":{"id":"n1820938026","loc":[-85.4321975,42.0067505],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938028":{"id":"n1820938028","loc":[-85.572535,41.9633405],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938030":{"id":"n1820938030","loc":[-85.3237505,41.9716475],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938032":{"id":"n1820938032","loc":[-85.6487698,41.9141583],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938033":{"id":"n1820938033","loc":[-85.0526371,42.1038315],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938034":{"id":"n1820938034","loc":[-85.088069,42.0978731],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938035":{"id":"n1820938035","loc":[-85.2516312,42.0102267],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938039":{"id":"n1820938039","loc":[-85.2731374,41.9982958],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:15Z","tags":{}},"n1820938040":{"id":"n1820938040","loc":[-85.5453224,41.9713439],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938041":{"id":"n1820938041","loc":[-85.4480548,42.0049647],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938043":{"id":"n1820938043","loc":[-85.2504081,42.010322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938045":{"id":"n1820938045","loc":[-85.2663447,41.99919],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938046":{"id":"n1820938046","loc":[-85.0507287,42.102907],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938047":{"id":"n1820938047","loc":[-85.0408246,42.1024743],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938048":{"id":"n1820938048","loc":[-85.2796335,41.9866099],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938050":{"id":"n1820938050","loc":[-85.452475,42.0061127],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938051":{"id":"n1820938051","loc":[-85.2410569,42.0128147],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938052":{"id":"n1820938052","loc":[-85.0413302,42.1011477],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938053":{"id":"n1820938053","loc":[-85.6327409,41.9197627],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938056":{"id":"n1820938056","loc":[-85.1072039,42.0857994],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938057":{"id":"n1820938057","loc":[-85.2001114,42.0448145],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938058":{"id":"n1820938058","loc":[-85.2655347,41.9978186],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938059":{"id":"n1820938059","loc":[-85.2330918,42.0304874],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938060":{"id":"n1820938060","loc":[-85.2601113,41.9966545],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938061":{"id":"n1820938061","loc":[-85.5397863,41.9708494],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938062":{"id":"n1820938062","loc":[-85.2702085,41.9977217],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938063":{"id":"n1820938063","loc":[-85.2219982,42.03699],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938064":{"id":"n1820938064","loc":[-85.0668957,42.105121],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938065":{"id":"n1820938065","loc":[-85.2328665,42.0270769],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938066":{"id":"n1820938066","loc":[-85.3189654,41.9694778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938067":{"id":"n1820938067","loc":[-85.3814115,42.0022915],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938068":{"id":"n1820938068","loc":[-85.2759108,41.9956008],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:16Z","tags":{}},"n1820938069":{"id":"n1820938069","loc":[-85.0391938,42.1034853],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938070":{"id":"n1820938070","loc":[-85.2850623,41.9810353],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938071":{"id":"n1820938071","loc":[-85.538074,41.970855],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938073":{"id":"n1820938073","loc":[-85.1319661,42.0670932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938074":{"id":"n1820938074","loc":[-85.2816763,41.9913678],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938075":{"id":"n1820938075","loc":[-85.3182144,41.9700282],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938076":{"id":"n1820938076","loc":[-85.5909028,41.9458989],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938077":{"id":"n1820938077","loc":[-85.4057617,42.0074361],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938078":{"id":"n1820938078","loc":[-85.2620438,41.9967729],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938079":{"id":"n1820938079","loc":[-85.1122143,42.0851107],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938080":{"id":"n1820938080","loc":[-85.2443785,42.0174567],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938081":{"id":"n1820938081","loc":[-85.0319733,42.0953853],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938082":{"id":"n1820938082","loc":[-85.0878276,42.09443],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938083":{"id":"n1820938083","loc":[-85.0271789,42.0935809],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938084":{"id":"n1820938084","loc":[-85.0326399,42.0974222],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938085":{"id":"n1820938085","loc":[-85.3989167,42.0065592],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938086":{"id":"n1820938086","loc":[-85.3263361,41.9721261],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938087":{"id":"n1820938087","loc":[-85.2547855,42.0037134],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938088":{"id":"n1820938088","loc":[-85.4373259,42.005746],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938089":{"id":"n1820938089","loc":[-85.3094275,41.9699245],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938090":{"id":"n1820938090","loc":[-85.2783246,41.9872793],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938092":{"id":"n1820938092","loc":[-85.0815633,42.1025169],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938093":{"id":"n1820938093","loc":[-85.1788511,42.0522134],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938095":{"id":"n1820938095","loc":[-85.2830345,41.9816733],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938096":{"id":"n1820938096","loc":[-85.0744984,42.1059835],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938097":{"id":"n1820938097","loc":[-85.2788396,41.9879333],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:17Z","tags":{}},"n1820938098":{"id":"n1820938098","loc":[-85.3640093,41.9946531],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938099":{"id":"n1820938099","loc":[-85.291167,41.9787463],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938100":{"id":"n1820938100","loc":[-85.0772436,42.1038156],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938101":{"id":"n1820938101","loc":[-85.00563,42.0887482],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938102":{"id":"n1820938102","loc":[-85.0326881,42.0961245],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938104":{"id":"n1820938104","loc":[-85.0530448,42.1038634],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938105":{"id":"n1820938105","loc":[-85.2625266,41.9970639],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938106":{"id":"n1820938106","loc":[-85.2827556,41.9823512],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938107":{"id":"n1820938107","loc":[-85.2784319,41.9910752],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938108":{"id":"n1820938108","loc":[-85.0882099,42.094393],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938109":{"id":"n1820938109","loc":[-85.5718484,41.9645371],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938110":{"id":"n1820938110","loc":[-85.2559764,42.0099317],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938111":{"id":"n1820938111","loc":[-85.2969284,41.973179],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938113":{"id":"n1820938113","loc":[-85.3875055,42.0019726],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938114":{"id":"n1820938114","loc":[-85.4250779,42.0068199],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938115":{"id":"n1820938115","loc":[-85.0645367,42.104889],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938116":{"id":"n1820938116","loc":[-85.1636762,42.0623724],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938117":{"id":"n1820938117","loc":[-85.0757322,42.1055935],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:18Z","tags":{}},"n1820938118":{"id":"n1820938118","loc":[-85.3695197,41.9981559],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938120":{"id":"n1820938120","loc":[-85.1297516,42.0671027],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938121":{"id":"n1820938121","loc":[-85.1057448,42.0875551],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938122":{"id":"n1820938122","loc":[-85.2805175,41.9943182],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938123":{"id":"n1820938123","loc":[-85.2545173,42.0040722],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938124":{"id":"n1820938124","loc":[-84.9966607,42.0871319],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938125":{"id":"n1820938125","loc":[-85.0099899,42.0904612],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938126":{"id":"n1820938126","loc":[-85.2489919,42.0091102],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938127":{"id":"n1820938127","loc":[-85.0342706,42.0979476],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938128":{"id":"n1820938128","loc":[-85.1080891,42.0855884],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938129":{"id":"n1820938129","loc":[-85.0128183,42.0905356],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938130":{"id":"n1820938130","loc":[-85.631608,41.9434251],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938131":{"id":"n1820938131","loc":[-85.2551975,42.0008524],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938132":{"id":"n1820938132","loc":[-85.6421823,41.9096233],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938133":{"id":"n1820938133","loc":[-85.0125059,42.0906284],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938134":{"id":"n1820938134","loc":[-85.5499358,41.9701793],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938135":{"id":"n1820938135","loc":[-85.5472107,41.9712323],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938136":{"id":"n1820938136","loc":[-85.2760758,41.9958691],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938137":{"id":"n1820938137","loc":[-85.276678,41.9960433],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938138":{"id":"n1820938138","loc":[-85.0570319,42.1024731],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938140":{"id":"n1820938140","loc":[-85.2394325,42.0227492],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938142":{"id":"n1820938142","loc":[-85.5666341,41.9638829],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938144":{"id":"n1820938144","loc":[-85.258101,41.9996353],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938147":{"id":"n1820938147","loc":[-85.2129645,42.0413565],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:19Z","tags":{}},"n1820938149":{"id":"n1820938149","loc":[-84.9962369,42.0868373],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938151":{"id":"n1820938151","loc":[-85.2570386,42.0084968],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938153":{"id":"n1820938153","loc":[-85.3971142,42.0050285],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938155":{"id":"n1820938155","loc":[-85.1072093,42.0855566],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938157":{"id":"n1820938157","loc":[-85.2840323,41.9920959],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938159":{"id":"n1820938159","loc":[-85.1187924,42.0816458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938161":{"id":"n1820938161","loc":[-85.2681324,41.9985788],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938163":{"id":"n1820938163","loc":[-85.0887034,42.0984969],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938165":{"id":"n1820938165","loc":[-85.4133405,42.0073141],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938166":{"id":"n1820938166","loc":[-85.0097445,42.0902888],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938167":{"id":"n1820938167","loc":[-85.0828133,42.1037388],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938168":{"id":"n1820938168","loc":[-85.0549599,42.1030833],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938169":{"id":"n1820938169","loc":[-85.4571528,42.0010421],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938178":{"id":"n1820938178","loc":[-85.2706644,41.9975941],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938180":{"id":"n1820938180","loc":[-85.2258606,42.0335794],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938182":{"id":"n1820938182","loc":[-85.2832276,41.9814659],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938184":{"id":"n1820938184","loc":[-85.1082299,42.0860928],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938185":{"id":"n1820938185","loc":[-85.3839392,42.0022381],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938186":{"id":"n1820938186","loc":[-85.2772131,41.995905],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938187":{"id":"n1820938187","loc":[-85.1044895,42.0879214],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938188":{"id":"n1820938188","loc":[-85.2135267,42.0407087],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938189":{"id":"n1820938189","loc":[-85.2543993,42.0044628],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938190":{"id":"n1820938190","loc":[-85.1501793,42.0617351],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938191":{"id":"n1820938191","loc":[-85.3350587,41.9820469],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938192":{"id":"n1820938192","loc":[-85.1350731,42.0655735],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938193":{"id":"n1820938193","loc":[-85.0404008,42.1028843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:20Z","tags":{}},"n1820938194":{"id":"n1820938194","loc":[-85.6323161,41.943042],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938195":{"id":"n1820938195","loc":[-85.1259593,42.0742837],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938196":{"id":"n1820938196","loc":[-85.4562988,42.0033758],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938197":{"id":"n1820938197","loc":[-85.256824,42.0056826],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938198":{"id":"n1820938198","loc":[-85.2742103,41.9963862],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938199":{"id":"n1820938199","loc":[-85.0380888,42.1037877],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938200":{"id":"n1820938200","loc":[-85.47404,41.9944721],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938201":{"id":"n1820938201","loc":[-85.103021,42.087948],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938202":{"id":"n1820938202","loc":[-85.4030151,42.0065113],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938203":{"id":"n1820938203","loc":[-85.2113981,42.040735],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938204":{"id":"n1820938204","loc":[-85.2603433,41.9965137],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938206":{"id":"n1820938206","loc":[-85.1669378,42.0607634],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938207":{"id":"n1820938207","loc":[-85.0642027,42.1046076],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938208":{"id":"n1820938208","loc":[-85.2812428,41.9915696],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938209":{"id":"n1820938209","loc":[-85.0839559,42.1038343],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938210":{"id":"n1820938210","loc":[-85.1239946,42.0769368],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938211":{"id":"n1820938211","loc":[-85.2311177,42.0283042],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938212":{"id":"n1820938212","loc":[-85.2791614,41.9882682],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938213":{"id":"n1820938213","loc":[-85.2674941,41.9987582],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938214":{"id":"n1820938214","loc":[-85.352787,41.9919579],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938215":{"id":"n1820938215","loc":[-85.0874146,42.0952182],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938216":{"id":"n1820938216","loc":[-85.0069711,42.0877092],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938217":{"id":"n1820938217","loc":[-85.2059049,42.0404004],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938218":{"id":"n1820938218","loc":[-85.2403552,42.0227332],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938219":{"id":"n1820938219","loc":[-85.2492923,42.0098915],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:21Z","tags":{}},"n1820938220":{"id":"n1820938220","loc":[-85.269778,41.9979541],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938221":{"id":"n1820938221","loc":[-85.2097673,42.0389024],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938222":{"id":"n1820938222","loc":[-85.0845942,42.1032015],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938223":{"id":"n1820938223","loc":[-84.993206,42.0858142],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938224":{"id":"n1820938224","loc":[-85.2108187,42.0402729],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938225":{"id":"n1820938225","loc":[-84.9893959,42.0873043],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938226":{"id":"n1820938226","loc":[-85.2952332,41.9719984],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938227":{"id":"n1820938227","loc":[-85.4100961,42.0081536],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938228":{"id":"n1820938228","loc":[-85.3299088,41.9785696],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938229":{"id":"n1820938229","loc":[-85.2258176,42.0340097],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938230":{"id":"n1820938230","loc":[-85.3146739,41.9711449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938231":{"id":"n1820938231","loc":[-85.5447645,41.9712801],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938232":{"id":"n1820938232","loc":[-85.5510087,41.9705941],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938233":{"id":"n1820938233","loc":[-85.5122389,41.9703445],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938234":{"id":"n1820938234","loc":[-85.2792687,41.9865381],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938235":{"id":"n1820938235","loc":[-85.1475229,42.0630151],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938237":{"id":"n1820938237","loc":[-85.0332889,42.0996034],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938238":{"id":"n1820938238","loc":[-85.2588882,41.9986877],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938239":{"id":"n1820938239","loc":[-85.0656458,42.1050892],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:22Z","tags":{}},"n1820938240":{"id":"n1820938240","loc":[-84.9913915,42.086098],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938241":{"id":"n1820938241","loc":[-85.4752416,41.9944402],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938242":{"id":"n1820938242","loc":[-85.1214304,42.0791147],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938243":{"id":"n1820938243","loc":[-85.0075183,42.0886925],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938244":{"id":"n1820938244","loc":[-85.1052888,42.0872087],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938245":{"id":"n1820938245","loc":[-85.3104252,41.9703393],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938246":{"id":"n1820938246","loc":[-85.232109,42.0318158],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938247":{"id":"n1820938247","loc":[-85.0756075,42.1059528],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938248":{"id":"n1820938248","loc":[-85.0075612,42.0890866],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938249":{"id":"n1820938249","loc":[-85.1013312,42.0897474],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938250":{"id":"n1820938250","loc":[-85.1168076,42.0828919],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938251":{"id":"n1820938251","loc":[-85.2951367,41.9723334],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938252":{"id":"n1820938252","loc":[-85.0879363,42.0976053],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938253":{"id":"n1820938253","loc":[-85.0354763,42.1021838],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938254":{"id":"n1820938254","loc":[-85.2379627,42.0236339],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938255":{"id":"n1820938255","loc":[-85.1308245,42.0685364],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938256":{"id":"n1820938256","loc":[-85.0914446,42.0934774],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938257":{"id":"n1820938257","loc":[-85.2436812,42.014069],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938258":{"id":"n1820938258","loc":[-85.0682529,42.1056106],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938259":{"id":"n1820938259","loc":[-85.290652,41.9766805],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938260":{"id":"n1820938260","loc":[-85.0133494,42.0897434],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938261":{"id":"n1820938261","loc":[-85.2753047,41.9949429],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938262":{"id":"n1820938262","loc":[-85.0314691,42.0950788],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:23Z","tags":{}},"n1820938263":{"id":"n1820938263","loc":[-85.3444786,41.9908359],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938264":{"id":"n1820938264","loc":[-85.0443115,42.1009061],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938265":{"id":"n1820938265","loc":[-85.0634853,42.1043159],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938267":{"id":"n1820938267","loc":[-85.3978223,42.0053952],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938268":{"id":"n1820938268","loc":[-85.0228659,42.0911885],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938269":{"id":"n1820938269","loc":[-85.0220237,42.0906272],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938270":{"id":"n1820938270","loc":[-85.1061525,42.0863369],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938271":{"id":"n1820938271","loc":[-85.2382309,42.0233708],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938272":{"id":"n1820938272","loc":[-85.310672,41.9702755],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938273":{"id":"n1820938273","loc":[-85.1448192,42.0652613],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938274":{"id":"n1820938274","loc":[-85.6036057,41.9403766],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938275":{"id":"n1820938275","loc":[-85.0778941,42.1032413],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938276":{"id":"n1820938276","loc":[-85.1279374,42.0723974],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938277":{"id":"n1820938277","loc":[-85.2806635,41.9847836],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938278":{"id":"n1820938278","loc":[-85.2653201,41.9976352],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938279":{"id":"n1820938279","loc":[-85.0351665,42.1001805],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938280":{"id":"n1820938280","loc":[-85.0718269,42.1056253],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938281":{"id":"n1820938281","loc":[-85.2574248,42.0075322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938282":{"id":"n1820938282","loc":[-85.126666,42.0740778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938283":{"id":"n1820938283","loc":[-85.077705,42.1034733],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938284":{"id":"n1820938284","loc":[-85.3535552,41.9919045],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938286":{"id":"n1820938286","loc":[-85.2810711,41.9866657],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938287":{"id":"n1820938287","loc":[-85.4567494,42.0019885],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938288":{"id":"n1820938288","loc":[-85.2642419,41.9992936],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938289":{"id":"n1820938289","loc":[-85.2643344,41.9980925],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938290":{"id":"n1820938290","loc":[-85.3270335,41.9776125],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938291":{"id":"n1820938291","loc":[-85.1200584,42.0795077],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:24Z","tags":{}},"n1820938292":{"id":"n1820938292","loc":[-85.2290792,42.0340256],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938293":{"id":"n1820938293","loc":[-85.6015887,41.9401372],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938294":{"id":"n1820938294","loc":[-85.5370869,41.970488],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938295":{"id":"n1820938295","loc":[-85.3108866,41.9698048],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938297":{"id":"n1820938297","loc":[-85.1556511,42.0628184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938298":{"id":"n1820938298","loc":[-85.0027922,42.0875221],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938300":{"id":"n1820938300","loc":[-85.3873338,42.0040614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938301":{"id":"n1820938301","loc":[-85.0350753,42.1004034],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938302":{"id":"n1820938302","loc":[-85.6239476,41.9411906],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938304":{"id":"n1820938304","loc":[-85.0118246,42.0897964],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938306":{"id":"n1820938306","loc":[-85.4796877,41.995275],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938307":{"id":"n1820938307","loc":[-85.5388636,41.9707856],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938309":{"id":"n1820938309","loc":[-85.2971902,41.9727773],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938310":{"id":"n1820938310","loc":[-85.5426831,41.9715513],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938311":{"id":"n1820938311","loc":[-85.2798373,41.9836671],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938312":{"id":"n1820938312","loc":[-85.2432198,42.0104017],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938313":{"id":"n1820938313","loc":[-85.2650412,41.9987554],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938317":{"id":"n1820938317","loc":[-85.0015423,42.0882386],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:25Z","tags":{}},"n1820938318":{"id":"n1820938318","loc":[-85.1409783,42.064879],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938319":{"id":"n1820938319","loc":[-85.1691908,42.058995],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938320":{"id":"n1820938320","loc":[-85.1059165,42.0864882],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938321":{"id":"n1820938321","loc":[-85.3664941,41.9965771],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938323":{"id":"n1820938323","loc":[-85.3143198,41.9710971],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938324":{"id":"n1820938324","loc":[-85.0016067,42.0880675],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938325":{"id":"n1820938325","loc":[-85.0148139,42.0887164],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938326":{"id":"n1820938326","loc":[-85.0324682,42.0959056],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938327":{"id":"n1820938327","loc":[-85.0898661,42.0939921],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938328":{"id":"n1820938328","loc":[-85.2556427,42.0004936],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938329":{"id":"n1820938329","loc":[-85.6287112,41.9407437],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938330":{"id":"n1820938330","loc":[-84.9913392,42.0866701],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938331":{"id":"n1820938331","loc":[-85.2685777,41.9984632],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938332":{"id":"n1820938332","loc":[-85.0078884,42.0901614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938333":{"id":"n1820938333","loc":[-84.999642,42.0878616],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938334":{"id":"n1820938334","loc":[-85.0188909,42.0899186],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938335":{"id":"n1820938335","loc":[-85.2830238,41.9819843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938336":{"id":"n1820938336","loc":[-85.2491421,42.0096204],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:26Z","tags":{}},"n1820938337":{"id":"n1820938337","loc":[-85.0585701,42.1034295],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938338":{"id":"n1820938338","loc":[-85.0651965,42.1051636],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938339":{"id":"n1820938339","loc":[-85.0583944,42.104292],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938340":{"id":"n1820938340","loc":[-85.119876,42.0801567],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938341":{"id":"n1820938341","loc":[-85.0943937,42.0931323],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938342":{"id":"n1820938342","loc":[-85.1504583,42.0613209],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938343":{"id":"n1820938343","loc":[-85.0425426,42.1019836],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938345":{"id":"n1820938345","loc":[-84.9991391,42.0878206],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938346":{"id":"n1820938346","loc":[-85.2563841,42.0094614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938347":{"id":"n1820938347","loc":[-85.0515387,42.103297],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938348":{"id":"n1820938348","loc":[-85.0857261,42.1003636],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938349":{"id":"n1820938349","loc":[-85.078971,42.1029241],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938350":{"id":"n1820938350","loc":[-85.5699558,41.958931],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938351":{"id":"n1820938351","loc":[-85.3181285,41.9696533],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938352":{"id":"n1820938352","loc":[-85.5998506,41.9402329],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938353":{"id":"n1820938353","loc":[-85.2567277,42.000317],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938354":{"id":"n1820938354","loc":[-85.3082795,41.9708338],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938355":{"id":"n1820938355","loc":[-85.3127856,41.9692784],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938356":{"id":"n1820938356","loc":[-85.0340775,42.1010721],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938357":{"id":"n1820938357","loc":[-85.3158111,41.9706583],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938359":{"id":"n1820938359","loc":[-85.2312035,42.0280412],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938360":{"id":"n1820938360","loc":[-85.2448613,42.018477],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938361":{"id":"n1820938361","loc":[-85.29077,41.9759068],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:27Z","tags":{}},"n1820938364":{"id":"n1820938364","loc":[-85.3677387,41.9976615],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938365":{"id":"n1820938365","loc":[-85.0785204,42.1030355],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938366":{"id":"n1820938366","loc":[-85.2262039,42.0333722],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938367":{"id":"n1820938367","loc":[-85.1226011,42.0780902],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938368":{"id":"n1820938368","loc":[-85.3229673,41.971129],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938369":{"id":"n1820938369","loc":[-85.385334,42.0000056],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938370":{"id":"n1820938370","loc":[-85.000098,42.0879094],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938372":{"id":"n1820938372","loc":[-85.3852481,42.0025091],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938373":{"id":"n1820938373","loc":[-85.3770513,41.9982515],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938374":{"id":"n1820938374","loc":[-85.6278314,41.9405362],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938375":{"id":"n1820938375","loc":[-85.6355133,41.9344068],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938376":{"id":"n1820938376","loc":[-85.635642,41.9324753],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938377":{"id":"n1820938377","loc":[-85.3154463,41.970778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938378":{"id":"n1820938378","loc":[-85.0920334,42.093411],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938379":{"id":"n1820938379","loc":[-85.3269155,41.9722297],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938381":{"id":"n1820938381","loc":[-85.1134334,42.0849184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938382":{"id":"n1820938382","loc":[-85.005968,42.088585],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938384":{"id":"n1820938384","loc":[-85.1245203,42.0757183],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938385":{"id":"n1820938385","loc":[-85.020704,42.0905396],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938386":{"id":"n1820938386","loc":[-85.119585,42.0808984],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938387":{"id":"n1820938387","loc":[-85.0072447,42.0880117],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938388":{"id":"n1820938388","loc":[-85.2742908,41.9960273],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938389":{"id":"n1820938389","loc":[-85.3275807,41.9696852],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938390":{"id":"n1820938390","loc":[-85.2385635,42.0231556],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:28Z","tags":{}},"n1820938392":{"id":"n1820938392","loc":[-85.0202856,42.0900778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938393":{"id":"n1820938393","loc":[-85.2067847,42.0395398],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938394":{"id":"n1820938394","loc":[-85.5183544,41.9713495],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938396":{"id":"n1820938396","loc":[-85.5073037,41.9736787],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938397":{"id":"n1820938397","loc":[-85.2519638,42.0114225],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938398":{"id":"n1820938398","loc":[-85.287487,41.9793285],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938399":{"id":"n1820938399","loc":[-85.2298088,42.0336431],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938400":{"id":"n1820938400","loc":[-85.229444,42.0339141],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938401":{"id":"n1820938401","loc":[-85.2421791,42.0220239],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938402":{"id":"n1820938402","loc":[-85.2976687,41.9737612],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938403":{"id":"n1820938403","loc":[-85.3622069,41.993473],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938404":{"id":"n1820938404","loc":[-85.2465458,42.014906],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938405":{"id":"n1820938405","loc":[-85.5724663,41.9639412],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938406":{"id":"n1820938406","loc":[-85.3708501,41.9982037],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938408":{"id":"n1820938408","loc":[-85.2564592,42.0055311],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938409":{"id":"n1820938409","loc":[-85.1192846,42.0810856],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938410":{"id":"n1820938410","loc":[-85.5623812,41.971663],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938411":{"id":"n1820938411","loc":[-85.3221948,41.9719665],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938412":{"id":"n1820938412","loc":[-85.5168738,41.9710305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938413":{"id":"n1820938413","loc":[-85.4546852,42.0061127],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938414":{"id":"n1820938414","loc":[-85.5896153,41.9463617],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:29Z","tags":{}},"n1820938415":{"id":"n1820938415","loc":[-85.2978189,41.9722138],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938416":{"id":"n1820938416","loc":[-85.1021681,42.0883581],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938417":{"id":"n1820938417","loc":[-85.2797193,41.9912984],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938419":{"id":"n1820938419","loc":[-85.2362461,42.0248533],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938420":{"id":"n1820938420","loc":[-85.4833639,41.9846252],"version":"2","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1820938422":{"id":"n1820938422","loc":[-85.3281064,41.9689433],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938424":{"id":"n1820938424","loc":[-85.2416963,42.0130088],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938425":{"id":"n1820938425","loc":[-85.5718655,41.9564577],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938426":{"id":"n1820938426","loc":[-85.0512812,42.1030701],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938427":{"id":"n1820938427","loc":[-85.1273527,42.0723616],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938428":{"id":"n1820938428","loc":[-85.0215033,42.0904083],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938429":{"id":"n1820938429","loc":[-85.6169953,41.942228],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938430":{"id":"n1820938430","loc":[-85.2829165,41.9907243],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938431":{"id":"n1820938431","loc":[-85.2240796,42.0374203],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938432":{"id":"n1820938432","loc":[-85.0167598,42.0898442],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938433":{"id":"n1820938433","loc":[-85.2132649,42.0411334],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938434":{"id":"n1820938434","loc":[-85.2293839,42.031513],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:30Z","tags":{}},"n1820938435":{"id":"n1820938435","loc":[-85.1203374,42.0792608],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938436":{"id":"n1820938436","loc":[-85.109571,42.086268],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938437":{"id":"n1820938437","loc":[-85.1079026,42.0853842],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938438":{"id":"n1820938438","loc":[-85.109237,42.0862413],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938439":{"id":"n1820938439","loc":[-85.2259936,42.0350831],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938440":{"id":"n1820938440","loc":[-85.3669705,41.99679],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938441":{"id":"n1820938441","loc":[-85.2418143,42.0223507],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938442":{"id":"n1820938442","loc":[-85.3101248,41.9702515],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938443":{"id":"n1820938443","loc":[-85.069315,42.1059688],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938444":{"id":"n1820938444","loc":[-85.205862,42.0410378],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938445":{"id":"n1820938445","loc":[-85.0388076,42.1036604],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938446":{"id":"n1820938446","loc":[-85.2225389,42.0370115],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938447":{"id":"n1820938447","loc":[-85.3241474,41.9719346],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938448":{"id":"n1820938448","loc":[-85.3125496,41.9690789],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938449":{"id":"n1820938449","loc":[-85.1146497,42.0857039],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938450":{"id":"n1820938450","loc":[-85.1333944,42.0714963],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938451":{"id":"n1820938451","loc":[-85.5619306,41.9720937],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938452":{"id":"n1820938452","loc":[-85.2553651,42.0006479],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938453":{"id":"n1820938453","loc":[-85.3151137,41.9710093],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938454":{"id":"n1820938454","loc":[-85.2592315,41.9977947],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938455":{"id":"n1820938455","loc":[-85.2655723,41.9995966],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:31Z","tags":{}},"n1820938456":{"id":"n1820938456","loc":[-85.4820652,41.9959233],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938459":{"id":"n1820938459","loc":[-85.450737,42.0055068],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938460":{"id":"n1820938460","loc":[-85.2428658,42.0205573],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938461":{"id":"n1820938461","loc":[-85.0835576,42.1021559],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938462":{"id":"n1820938462","loc":[-85.244636,42.0194733],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938463":{"id":"n1820938463","loc":[-85.5702562,41.9581332],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938465":{"id":"n1820938465","loc":[-85.5680031,41.9659515],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938467":{"id":"n1820938467","loc":[-85.2798752,41.9948353],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938468":{"id":"n1820938468","loc":[-85.0477407,42.1015537],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938469":{"id":"n1820938469","loc":[-85.6403842,41.913732],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938470":{"id":"n1820938470","loc":[-85.0396029,42.103289],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938471":{"id":"n1820938471","loc":[-85.2824702,41.9907777],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938472":{"id":"n1820938472","loc":[-85.2969284,41.9735538],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938474":{"id":"n1820938474","loc":[-85.401041,42.0070853],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938475":{"id":"n1820938475","loc":[-85.4116625,42.0073883],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938476":{"id":"n1820938476","loc":[-85.0437764,42.1016214],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938477":{"id":"n1820938477","loc":[-85.3643269,41.9958436],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938478":{"id":"n1820938478","loc":[-85.3895182,42.0009465],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938479":{"id":"n1820938479","loc":[-85.636157,41.9333373],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:32Z","tags":{}},"n1820938480":{"id":"n1820938480","loc":[-85.2811355,41.9858044],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938481":{"id":"n1820938481","loc":[-85.0239052,42.092153],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938482":{"id":"n1820938482","loc":[-85.2558798,42.0053557],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938483":{"id":"n1820938483","loc":[-85.2544422,42.0047339],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938484":{"id":"n1820938484","loc":[-85.4864683,41.9843183],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938485":{"id":"n1820938485","loc":[-85.2554185,42.0031075],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938486":{"id":"n1820938486","loc":[-85.3082795,41.9712486],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938487":{"id":"n1820938487","loc":[-85.2433378,42.0133436],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938488":{"id":"n1820938488","loc":[-85.0216696,42.0904162],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938489":{"id":"n1820938489","loc":[-85.2546138,42.0050289],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938490":{"id":"n1820938490","loc":[-85.2717521,41.9977349],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938491":{"id":"n1820938491","loc":[-85.0100489,42.0908195],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938492":{"id":"n1820938492","loc":[-85.207879,42.0392211],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938493":{"id":"n1820938493","loc":[-85.0007363,42.0882836],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938494":{"id":"n1820938494","loc":[-85.5775303,41.9504097],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938495":{"id":"n1820938495","loc":[-85.1131584,42.0847683],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938496":{"id":"n1820938496","loc":[-85.0887825,42.0941633],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938497":{"id":"n1820938497","loc":[-85.1185926,42.0818938],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938498":{"id":"n1820938498","loc":[-85.2748487,41.9948712],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938499":{"id":"n1820938499","loc":[-85.2566952,42.0090788],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938500":{"id":"n1820938500","loc":[-85.0774757,42.1036234],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938501":{"id":"n1820938501","loc":[-85.4190869,42.008903],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938502":{"id":"n1820938502","loc":[-85.1140395,42.0850577],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938503":{"id":"n1820938503","loc":[-85.1136104,42.0848627],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938504":{"id":"n1820938504","loc":[-85.5828089,41.9480638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938505":{"id":"n1820938505","loc":[-85.625514,41.9405202],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938506":{"id":"n1820938506","loc":[-85.2063384,42.0398322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938507":{"id":"n1820938507","loc":[-85.3395476,41.9851636],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:33Z","tags":{}},"n1820938508":{"id":"n1820938508","loc":[-85.0328853,42.0963606],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938510":{"id":"n1820938510","loc":[-85.1170369,42.0843702],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938511":{"id":"n1820938511","loc":[-85.2784748,41.9868487],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938512":{"id":"n1820938512","loc":[-85.6310501,41.9435528],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938514":{"id":"n1820938514","loc":[-85.0334284,42.0981028],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938515":{"id":"n1820938515","loc":[-84.9912091,42.0868226],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938516":{"id":"n1820938516","loc":[-85.2806141,41.9940351],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938517":{"id":"n1820938517","loc":[-85.1233025,42.0776734],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938518":{"id":"n1820938518","loc":[-85.2047891,42.0429023],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938519":{"id":"n1820938519","loc":[-85.1475443,42.0648312],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938520":{"id":"n1820938520","loc":[-85.2644685,41.9990891],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938521":{"id":"n1820938521","loc":[-85.1056281,42.0872553],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938522":{"id":"n1820938522","loc":[-85.4813184,41.9930105],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938523":{"id":"n1820938523","loc":[-85.321551,41.9722936],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938524":{"id":"n1820938524","loc":[-85.1564664,42.0631211],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938525":{"id":"n1820938525","loc":[-85.4149885,42.0079144],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938527":{"id":"n1820938527","loc":[-85.2861888,41.9803653],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938528":{"id":"n1820938528","loc":[-85.1301379,42.0682178],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938529":{"id":"n1820938529","loc":[-85.4156537,42.0084247],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938530":{"id":"n1820938530","loc":[-85.245151,42.0176082],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938531":{"id":"n1820938531","loc":[-85.457818,42.0001651],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:34Z","tags":{}},"n1820938532":{"id":"n1820938532","loc":[-85.310951,41.9694538],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938533":{"id":"n1820938533","loc":[-85.1509089,42.0611298],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938534":{"id":"n1820938534","loc":[-85.1108249,42.086321],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938535":{"id":"n1820938535","loc":[-85.1260344,42.0740687],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938536":{"id":"n1820938536","loc":[-85.4561228,42.0042791],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938537":{"id":"n1820938537","loc":[-85.2805082,41.9945761],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938538":{"id":"n1820938538","loc":[-85.273352,41.9981921],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938539":{"id":"n1820938539","loc":[-85.1084216,42.0864364],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938540":{"id":"n1820938540","loc":[-85.5009737,41.9773637],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938541":{"id":"n1820938541","loc":[-85.3960843,42.0051879],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938542":{"id":"n1820938542","loc":[-85.3425088,41.9865034],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938545":{"id":"n1820938545","loc":[-84.9937907,42.0860849],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938546":{"id":"n1820938546","loc":[-85.1084176,42.086065],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938547":{"id":"n1820938547","loc":[-85.3492851,41.9924786],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938548":{"id":"n1820938548","loc":[-85.2512235,42.0101147],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938549":{"id":"n1820938549","loc":[-85.3717298,41.9979326],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:35Z","tags":{}},"n1820938551":{"id":"n1820938551","loc":[-85.2573712,42.0064081],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938552":{"id":"n1820938552","loc":[-85.2514596,42.010139],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938553":{"id":"n1820938553","loc":[-85.416512,42.0088073],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938554":{"id":"n1820938554","loc":[-85.4365964,42.0061606],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938555":{"id":"n1820938555","loc":[-85.4552431,42.0057301],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938556":{"id":"n1820938556","loc":[-85.2916283,41.9778769],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938557":{"id":"n1820938557","loc":[-85.100709,42.0902968],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938558":{"id":"n1820938558","loc":[-85.4703064,41.9965771],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938559":{"id":"n1820938559","loc":[-85.3134722,41.9696134],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938560":{"id":"n1820938560","loc":[-85.4834213,41.9885768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938561":{"id":"n1820938561","loc":[-85.2740641,41.9975236],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938562":{"id":"n1820938562","loc":[-85.148334,42.0623405],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938563":{"id":"n1820938563","loc":[-85.2358598,42.0263675],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938565":{"id":"n1820938565","loc":[-85.2902979,41.9790892],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938566":{"id":"n1820938566","loc":[-85.2528865,42.0112869],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938567":{"id":"n1820938567","loc":[-85.2595319,41.9973003],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938568":{"id":"n1820938568","loc":[-85.071151,42.105689],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938570":{"id":"n1820938570","loc":[-85.299278,41.9732188],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938571":{"id":"n1820938571","loc":[-85.0354669,42.1024771],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938583":{"id":"n1820938583","loc":[-85.3313937,41.972562],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938585":{"id":"n1820938585","loc":[-85.0756933,42.1058334],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938587":{"id":"n1820938587","loc":[-85.3130324,41.9694219],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:36Z","tags":{}},"n1820938590":{"id":"n1820938590","loc":[-85.0934227,42.0931681],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938592":{"id":"n1820938592","loc":[-85.3517956,41.9922553],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938593":{"id":"n1820938593","loc":[-85.4023971,42.0065169],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938594":{"id":"n1820938594","loc":[-85.3506798,41.9925583],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938595":{"id":"n1820938595","loc":[-85.3673524,41.9971193],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938596":{"id":"n1820938596","loc":[-85.1073608,42.0853523],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938597":{"id":"n1820938597","loc":[-85.2976579,41.972477],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938598":{"id":"n1820938598","loc":[-85.5616517,41.9694295],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938599":{"id":"n1820938599","loc":[-85.3552074,41.9921915],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938600":{"id":"n1820938600","loc":[-85.4665126,41.9999953],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938601":{"id":"n1820938601","loc":[-85.2740695,41.9966226],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938602":{"id":"n1820938602","loc":[-85.279376,41.9886669],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938603":{"id":"n1820938603","loc":[-85.0771109,42.1040413],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938604":{"id":"n1820938604","loc":[-85.2636049,41.9977895],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938605":{"id":"n1820938605","loc":[-85.3762145,41.9976456],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938606":{"id":"n1820938606","loc":[-85.2321369,42.0289577],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938620":{"id":"n1820938620","loc":[-85.4947724,41.9776189],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938622":{"id":"n1820938622","loc":[-85.1547069,42.0622768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938624":{"id":"n1820938624","loc":[-85.0005056,42.0880249],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938626":{"id":"n1820938626","loc":[-85.0735596,42.1059357],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938628":{"id":"n1820938628","loc":[-85.4665298,41.99932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938629":{"id":"n1820938629","loc":[-85.434515,42.0065273],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938630":{"id":"n1820938630","loc":[-85.117462,42.0823823],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938631":{"id":"n1820938631","loc":[-85.0131777,42.0890707],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938632":{"id":"n1820938632","loc":[-85.0875326,42.0961934],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:37Z","tags":{}},"n1820938634":{"id":"n1820938634","loc":[-85.6433839,41.9112042],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938635":{"id":"n1820938635","loc":[-85.1366181,42.064969],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938636":{"id":"n1820938636","loc":[-85.073109,42.1057925],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938638":{"id":"n1820938638","loc":[-85.161406,42.0632541],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938640":{"id":"n1820938640","loc":[-85.6343932,41.9188845],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938642":{"id":"n1820938642","loc":[-85.2500004,42.010306],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938644":{"id":"n1820938644","loc":[-85.291918,41.9753166],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938663":{"id":"n1820938663","loc":[-85.2841611,41.9916812],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938664":{"id":"n1820938664","loc":[-85.1052955,42.0868134],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938665":{"id":"n1820938665","loc":[-85.4606118,42.0005534],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938666":{"id":"n1820938666","loc":[-85.5672736,41.9642922],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938667":{"id":"n1820938667","loc":[-85.6348481,41.9316932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938668":{"id":"n1820938668","loc":[-85.0224904,42.0909576],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938669":{"id":"n1820938669","loc":[-85.0133856,42.0899755],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938670":{"id":"n1820938670","loc":[-85.344779,41.991139],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938671":{"id":"n1820938671","loc":[-85.632874,41.9425313],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938673":{"id":"n1820938673","loc":[-85.4941501,41.9779698],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938675":{"id":"n1820938675","loc":[-85.0862559,42.0997519],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938676":{"id":"n1820938676","loc":[-85.0097874,42.0898032],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938678":{"id":"n1820938678","loc":[-84.9913553,42.0863675],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938680":{"id":"n1820938680","loc":[-85.0533666,42.1038315],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938682":{"id":"n1820938682","loc":[-85.2950294,41.9743914],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938684":{"id":"n1820938684","loc":[-85.2517385,42.0104499],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938686":{"id":"n1820938686","loc":[-85.0247971,42.0922514],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938688":{"id":"n1820938688","loc":[-85.0807037,42.1026017],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:38Z","tags":{}},"n1820938690":{"id":"n1820938690","loc":[-85.52462,41.9722748],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938694":{"id":"n1820938694","loc":[-85.2586535,41.9988818],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938695":{"id":"n1820938695","loc":[-85.0931612,42.092948],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938697":{"id":"n1820938697","loc":[-85.2470822,42.016564],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938698":{"id":"n1820938698","loc":[-85.4143018,42.0075158],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938699":{"id":"n1820938699","loc":[-85.0771484,42.104487],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938700":{"id":"n1820938700","loc":[-85.0291208,42.0942775],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938701":{"id":"n1820938701","loc":[-85.6367964,41.9185971],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938702":{"id":"n1820938702","loc":[-85.085419,42.1010693],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938703":{"id":"n1820938703","loc":[-85.0583877,42.1040584],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938705":{"id":"n1820938705","loc":[-85.2573379,42.0003182],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938706":{"id":"n1820938706","loc":[-85.2655937,41.9981575],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938707":{"id":"n1820938707","loc":[-85.023181,42.0915758],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938708":{"id":"n1820938708","loc":[-85.2318687,42.0274674],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938709":{"id":"n1820938709","loc":[-85.1056389,42.0866184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938710":{"id":"n1820938710","loc":[-85.5276265,41.9700978],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820938711":{"id":"n1820938711","loc":[-85.0864128,42.0945761],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938712":{"id":"n1820938712","loc":[-84.9897071,42.0871888],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:39Z","tags":{}},"n1820938714":{"id":"n1820938714","loc":[-85.1328845,42.0665611],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938715":{"id":"n1820938715","loc":[-85.0336537,42.0991377],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938716":{"id":"n1820938716","loc":[-85.087597,42.0986692],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938717":{"id":"n1820938717","loc":[-85.1241394,42.0761882],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938718":{"id":"n1820938718","loc":[-85.1176002,42.0847723],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938719":{"id":"n1820938719","loc":[-85.2423615,42.0216572],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938721":{"id":"n1820938721","loc":[-85.2196378,42.0387908],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938722":{"id":"n1820938722","loc":[-85.0164272,42.0890082],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938723":{"id":"n1820938723","loc":[-85.5917182,41.9451807],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938724":{"id":"n1820938724","loc":[-85.2458806,42.0086638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938725":{"id":"n1820938725","loc":[-85.1264474,42.0740527],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938726":{"id":"n1820938726","loc":[-85.1961631,42.04738],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938727":{"id":"n1820938727","loc":[-85.2784643,41.9943648],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938728":{"id":"n1820938728","loc":[-85.2905554,41.9763216],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938729":{"id":"n1820938729","loc":[-85.2913386,41.9771511],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938730":{"id":"n1820938730","loc":[-85.0112519,42.0895683],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938732":{"id":"n1820938732","loc":[-85.4290261,42.0064531],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:40Z","tags":{}},"n1820938733":{"id":"n1820938733","loc":[-85.3867073,42.0031629],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938734":{"id":"n1820938734","loc":[-85.4943647,41.9836005],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938735":{"id":"n1820938735","loc":[-85.4900303,41.9860728],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938736":{"id":"n1820938736","loc":[-85.0866153,42.0944539],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938737":{"id":"n1820938737","loc":[-85.0869532,42.0990911],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938738":{"id":"n1820938738","loc":[-85.6321659,41.9208851],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938739":{"id":"n1820938739","loc":[-85.5930485,41.9433453],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938740":{"id":"n1820938740","loc":[-85.0406851,42.102733],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938741":{"id":"n1820938741","loc":[-85.1051131,42.0869846],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938742":{"id":"n1820938742","loc":[-85.1377554,42.0648893],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938743":{"id":"n1820938743","loc":[-85.2795694,41.994604],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938745":{"id":"n1820938745","loc":[-85.4948153,41.9826594],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938746":{"id":"n1820938746","loc":[-85.4488916,42.0050923],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938747":{"id":"n1820938747","loc":[-85.1052526,42.0866144],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938748":{"id":"n1820938748","loc":[-85.1468749,42.0653991],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938749":{"id":"n1820938749","loc":[-85.0856886,42.1006104],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938750":{"id":"n1820938750","loc":[-85.2144022,42.0404004],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938751":{"id":"n1820938751","loc":[-85.277771,41.9907458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938752":{"id":"n1820938752","loc":[-85.1474542,42.0636149],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938753":{"id":"n1820938753","loc":[-85.0820515,42.1028075],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938754":{"id":"n1820938754","loc":[-85.1122948,42.08525],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:41Z","tags":{}},"n1820938756":{"id":"n1820938756","loc":[-85.0173352,42.0901933],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938757":{"id":"n1820938757","loc":[-85.2259721,42.0354018],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938758":{"id":"n1820938758","loc":[-85.0872389,42.0987795],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938759":{"id":"n1820938759","loc":[-85.2291436,42.031874],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938760":{"id":"n1820938760","loc":[-85.3802485,42.0016002],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938761":{"id":"n1820938761","loc":[-85.3945822,42.0057938],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938762":{"id":"n1820938762","loc":[-85.5273237,41.9713017],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938763":{"id":"n1820938763","loc":[-85.2868862,41.9798629],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938764":{"id":"n1820938764","loc":[-85.2516677,42.0107899],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938766":{"id":"n1820938766","loc":[-85.3183002,41.9693103],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938768":{"id":"n1820938768","loc":[-85.2159042,42.0401932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938770":{"id":"n1820938770","loc":[-85.0094481,42.0911141],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938771":{"id":"n1820938771","loc":[-85.0244538,42.0922155],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938772":{"id":"n1820938772","loc":[-85.231697,42.028862],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938773":{"id":"n1820938773","loc":[-85.2102394,42.0390617],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938774":{"id":"n1820938774","loc":[-85.2463419,42.0151212],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938775":{"id":"n1820938775","loc":[-85.0726195,42.1056424],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938776":{"id":"n1820938776","loc":[-85.0060431,42.0883262],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938778":{"id":"n1820938778","loc":[-85.425889,42.0056982],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938779":{"id":"n1820938779","loc":[-85.1183042,42.0820638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:42Z","tags":{}},"n1820938780":{"id":"n1820938780","loc":[-85.441596,42.0058257],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938781":{"id":"n1820938781","loc":[-85.1124879,42.0847086],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938782":{"id":"n1820938782","loc":[-85.2452733,42.0153894],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938783":{"id":"n1820938783","loc":[-85.2741191,41.9969244],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938784":{"id":"n1820938784","loc":[-85.2829487,41.9822236],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938785":{"id":"n1820938785","loc":[-85.3202743,41.972142],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938786":{"id":"n1820938786","loc":[-85.2345402,42.0266465],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938787":{"id":"n1820938787","loc":[-85.3037626,41.9724611],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938789":{"id":"n1820938789","loc":[-85.2474792,42.0161973],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938790":{"id":"n1820938790","loc":[-85.2951045,41.9727323],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938791":{"id":"n1820938791","loc":[-85.322345,41.9712726],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938792":{"id":"n1820938792","loc":[-85.2402372,42.0110394],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938793":{"id":"n1820938793","loc":[-85.5135693,41.9698659],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938794":{"id":"n1820938794","loc":[-85.4695339,41.9967366],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938796":{"id":"n1820938796","loc":[-85.0418492,42.1011131],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938797":{"id":"n1820938797","loc":[-85.3334107,41.9806337],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938798":{"id":"n1820938798","loc":[-85.5625314,41.9711685],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938799":{"id":"n1820938799","loc":[-85.3755707,41.9973585],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938800":{"id":"n1820938800","loc":[-85.5227532,41.9722429],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938801":{"id":"n1820938801","loc":[-85.4267687,42.0052836],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938803":{"id":"n1820938803","loc":[-85.0284704,42.0940837],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938804":{"id":"n1820938804","loc":[-85.015585,42.0885305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938805":{"id":"n1820938805","loc":[-85.0765905,42.1053865],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938806":{"id":"n1820938806","loc":[-85.2614953,41.9964551],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:43Z","tags":{}},"n1820938808":{"id":"n1820938808","loc":[-85.0307355,42.0947313],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938810":{"id":"n1820938810","loc":[-85.3894753,42.0003565],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938812":{"id":"n1820938812","loc":[-85.0868848,42.095006],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938813":{"id":"n1820938813","loc":[-85.3854198,42.0009465],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938814":{"id":"n1820938814","loc":[-85.2659692,41.9993534],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938815":{"id":"n1820938815","loc":[-85.1234259,42.0765266],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938816":{"id":"n1820938816","loc":[-85.1426906,42.0648893],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938818":{"id":"n1820938818","loc":[-85.1014533,42.0893067],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938819":{"id":"n1820938819","loc":[-85.0883064,42.098067],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938820":{"id":"n1820938820","loc":[-85.0503156,42.102704],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938821":{"id":"n1820938821","loc":[-85.1179649,42.0821884],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938822":{"id":"n1820938822","loc":[-85.3484697,41.9921596],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938823":{"id":"n1820938823","loc":[-85.3732962,41.9970874],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938824":{"id":"n1820938824","loc":[-85.2784104,41.9898312],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938825":{"id":"n1820938825","loc":[-85.4441709,42.0052198],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938826":{"id":"n1820938826","loc":[-85.3925438,42.0038326],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938829":{"id":"n1820938829","loc":[-85.5717582,41.9621861],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:44Z","tags":{}},"n1820938830":{"id":"n1820938830","loc":[-85.0866314,42.0995051],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938831":{"id":"n1820938831","loc":[-85.576672,41.9522769],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938832":{"id":"n1820938832","loc":[-85.1587238,42.0636205],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938833":{"id":"n1820938833","loc":[-85.3804245,41.9999155],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938834":{"id":"n1820938834","loc":[-85.280083,41.9948843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938836":{"id":"n1820938836","loc":[-85.561892,41.9686693],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938837":{"id":"n1820938837","loc":[-85.0158975,42.0885253],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938838":{"id":"n1820938838","loc":[-85.4248204,42.007633],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938839":{"id":"n1820938839","loc":[-85.0352738,42.1039657],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938840":{"id":"n1820938840","loc":[-85.211956,42.0411812],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938841":{"id":"n1820938841","loc":[-85.4816575,41.9908997],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938842":{"id":"n1820938842","loc":[-85.3807635,42.0020308],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938843":{"id":"n1820938843","loc":[-85.0100865,42.0898521],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938844":{"id":"n1820938844","loc":[-85.0103936,42.0897434],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938848":{"id":"n1820938848","loc":[-85.2430052,42.0131363],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938849":{"id":"n1820938849","loc":[-85.112559,42.0853723],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:45Z","tags":{}},"n1820938851":{"id":"n1820938851","loc":[-85.3641553,41.9952535],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938852":{"id":"n1820938852","loc":[-85.2087373,42.0390777],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938853":{"id":"n1820938853","loc":[-85.2473933,42.0148263],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938854":{"id":"n1820938854","loc":[-85.0213464,42.090509],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938855":{"id":"n1820938855","loc":[-85.0673208,42.1052353],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938856":{"id":"n1820938856","loc":[-85.1003053,42.0905528],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938857":{"id":"n1820938857","loc":[-85.2617367,41.9965389],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938858":{"id":"n1820938858","loc":[-85.280363,41.9916015],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938859":{"id":"n1820938859","loc":[-85.0038866,42.0873469],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938860":{"id":"n1820938860","loc":[-85.2476401,42.0151451],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938861":{"id":"n1820938861","loc":[-85.193717,42.0499294],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938862":{"id":"n1820938862","loc":[-85.3478689,41.9917609],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938863":{"id":"n1820938863","loc":[-85.5638017,41.9648881],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938864":{"id":"n1820938864","loc":[-85.4356308,42.0064476],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938865":{"id":"n1820938865","loc":[-85.0561722,42.1023509],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938867":{"id":"n1820938867","loc":[-85.2256031,42.0356034],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938868":{"id":"n1820938868","loc":[-85.6102576,41.9420844],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938869":{"id":"n1820938869","loc":[-85.2285213,42.0339938],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:46Z","tags":{}},"n1820938870":{"id":"n1820938870","loc":[-85.0326238,42.0978003],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938871":{"id":"n1820938871","loc":[-85.0131389,42.0903736],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938872":{"id":"n1820938872","loc":[-85.2550859,42.0012259],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938873":{"id":"n1820938873","loc":[-85.1130029,42.0846966],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938874":{"id":"n1820938874","loc":[-85.1579041,42.06336],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938875":{"id":"n1820938875","loc":[-85.0430522,42.1020234],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938876":{"id":"n1820938876","loc":[-85.2786679,41.9865935],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938877":{"id":"n1820938877","loc":[-85.1221666,42.0788706],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938878":{"id":"n1820938878","loc":[-85.2554614,42.0103303],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938879":{"id":"n1820938879","loc":[-85.2349801,42.0265748],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938880":{"id":"n1820938880","loc":[-85.0997434,42.0907864],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938881":{"id":"n1820938881","loc":[-85.0045464,42.0878167],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938882":{"id":"n1820938882","loc":[-85.2728048,41.9982519],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938883":{"id":"n1820938883","loc":[-85.3111333,41.9691587],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938884":{"id":"n1820938884","loc":[-85.3219802,41.9721899],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938885":{"id":"n1820938885","loc":[-85.3091378,41.9699325],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938887":{"id":"n1820938887","loc":[-85.4242367,42.0085203],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938888":{"id":"n1820938888","loc":[-84.9968377,42.0874504],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:47Z","tags":{}},"n1820938890":{"id":"n1820938890","loc":[-85.5443139,41.9714078],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938891":{"id":"n1820938891","loc":[-85.6404013,41.9154676],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938892":{"id":"n1820938892","loc":[-85.3644986,41.9962582],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938893":{"id":"n1820938893","loc":[-85.0496772,42.1018323],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938894":{"id":"n1820938894","loc":[-85.297261,41.9737373],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938895":{"id":"n1820938895","loc":[-85.0327096,42.098071],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938896":{"id":"n1820938896","loc":[-85.3856773,41.9996867],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938897":{"id":"n1820938897","loc":[-85.0493862,42.1015509],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938898":{"id":"n1820938898","loc":[-84.9969879,42.0876614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938899":{"id":"n1820938899","loc":[-85.0848625,42.1013587],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938900":{"id":"n1820938900","loc":[-85.5853195,41.9479201],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938901":{"id":"n1820938901","loc":[-85.6329169,41.9387964],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938902":{"id":"n1820938902","loc":[-85.0843046,42.1029468],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938903":{"id":"n1820938903","loc":[-85.1228747,42.0778474],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938904":{"id":"n1820938904","loc":[-85.4855456,41.984095],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938905":{"id":"n1820938905","loc":[-85.0573269,42.1026801],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938906":{"id":"n1820938906","loc":[-85.2425868,42.0131523],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938907":{"id":"n1820938907","loc":[-85.1149622,42.0860053],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938908":{"id":"n1820938908","loc":[-85.4833097,41.9951578],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938909":{"id":"n1820938909","loc":[-85.075979,42.1056372],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938910":{"id":"n1820938910","loc":[-85.0338509,42.0977139],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938911":{"id":"n1820938911","loc":[-85.6384272,41.9115715],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938912":{"id":"n1820938912","loc":[-85.0458363,42.1004074],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938913":{"id":"n1820938913","loc":[-85.0592138,42.1048305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:48Z","tags":{}},"n1820938914":{"id":"n1820938914","loc":[-85.2807493,41.9916653],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938915":{"id":"n1820938915","loc":[-85.1103274,42.0864193],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938916":{"id":"n1820938916","loc":[-85.6267156,41.9404404],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938918":{"id":"n1820938918","loc":[-85.0331374,42.0982911],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938919":{"id":"n1820938919","loc":[-85.5637331,41.965409],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938920":{"id":"n1820938920","loc":[-85.5457515,41.9714237],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938922":{"id":"n1820938922","loc":[-85.082073,42.1030104],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938923":{"id":"n1820938923","loc":[-85.0780765,42.103102],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938924":{"id":"n1820938924","loc":[-85.4208035,42.0089508],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938925":{"id":"n1820938925","loc":[-85.3469934,41.9914795],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938926":{"id":"n1820938926","loc":[-85.0322,42.095619],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938927":{"id":"n1820938927","loc":[-85.4784431,41.9949401],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938928":{"id":"n1820938928","loc":[-85.1303095,42.0667523],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938929":{"id":"n1820938929","loc":[-85.2463784,42.0084781],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938930":{"id":"n1820938930","loc":[-85.6299986,41.9427707],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938931":{"id":"n1820938931","loc":[-85.6325907,41.9238499],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938932":{"id":"n1820938932","loc":[-85.4808464,41.9914476],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938934":{"id":"n1820938934","loc":[-85.2411599,42.0105292],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938935":{"id":"n1820938935","loc":[-85.0163213,42.0892379],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938936":{"id":"n1820938936","loc":[-85.3290934,41.9682322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938937":{"id":"n1820938937","loc":[-85.4925623,41.9853231],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:49Z","tags":{}},"n1820938938":{"id":"n1820938938","loc":[-85.0338294,42.09892],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938940":{"id":"n1820938940","loc":[-85.4174561,42.008903],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938941":{"id":"n1820938941","loc":[-85.1165595,42.0838845],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938942":{"id":"n1820938942","loc":[-85.2954585,41.9717192],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938943":{"id":"n1820938943","loc":[-85.6330199,41.9257338],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938944":{"id":"n1820938944","loc":[-85.2294654,42.0324478],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938945":{"id":"n1820938945","loc":[-85.5601282,41.9728914],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938946":{"id":"n1820938946","loc":[-85.1176324,42.08568],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938947":{"id":"n1820938947","loc":[-85.0210245,42.0906005],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938948":{"id":"n1820938948","loc":[-85.0251887,42.09253],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938949":{"id":"n1820938949","loc":[-85.0895832,42.0939551],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938950":{"id":"n1820938950","loc":[-84.9915109,42.085842],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938951":{"id":"n1820938951","loc":[-85.2187366,42.0393486],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938952":{"id":"n1820938952","loc":[-85.006605,42.087579],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938953":{"id":"n1820938953","loc":[-85.046641,42.1012393],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938954":{"id":"n1820938954","loc":[-85.052102,42.103695],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938955":{"id":"n1820938955","loc":[-85.283925,41.9912825],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938956":{"id":"n1820938956","loc":[-85.2326626,42.0316349],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938957":{"id":"n1820938957","loc":[-85.1174298,42.0859694],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938958":{"id":"n1820938958","loc":[-85.3802056,41.9994794],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938959":{"id":"n1820938959","loc":[-85.4586334,41.9999737],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938960":{"id":"n1820938960","loc":[-85.4302234,42.0069418],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938961":{"id":"n1820938961","loc":[-85.092201,42.0930674],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938962":{"id":"n1820938962","loc":[-85.3684511,41.9979382],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938963":{"id":"n1820938963","loc":[-85.4618735,42.0011856],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938964":{"id":"n1820938964","loc":[-85.4828205,41.9877793],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:50Z","tags":{}},"n1820938965":{"id":"n1820938965","loc":[-85.0837789,42.1025726],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938966":{"id":"n1820938966","loc":[-85.0176195,42.090253],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938967":{"id":"n1820938967","loc":[-85.3801627,42.001074],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938968":{"id":"n1820938968","loc":[-85.4767007,41.994488],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938969":{"id":"n1820938969","loc":[-85.274268,41.9957495],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938970":{"id":"n1820938970","loc":[-85.2977438,41.9719506],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938971":{"id":"n1820938971","loc":[-85.2425546,42.0208682],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938972":{"id":"n1820938972","loc":[-85.2557082,42.002382],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938973":{"id":"n1820938973","loc":[-85.3187937,41.9691986],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938975":{"id":"n1820938975","loc":[-85.2448077,42.0153045],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938977":{"id":"n1820938977","loc":[-85.0343015,42.0997718],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938978":{"id":"n1820938978","loc":[-85.2449364,42.01874],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938979":{"id":"n1820938979","loc":[-85.2598391,41.9969602],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938980":{"id":"n1820938980","loc":[-85.4294724,42.0067665],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938981":{"id":"n1820938981","loc":[-85.428082,42.0055124],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938983":{"id":"n1820938983","loc":[-85.5436315,41.9717484],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938985":{"id":"n1820938985","loc":[-85.5978336,41.9407437],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938986":{"id":"n1820938986","loc":[-85.491661,41.9860249],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938987":{"id":"n1820938987","loc":[-85.4942789,41.9801392],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:51Z","tags":{}},"n1820938988":{"id":"n1820938988","loc":[-85.0416306,42.1010841],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938989":{"id":"n1820938989","loc":[-85.2653644,41.9984433],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938990":{"id":"n1820938990","loc":[-85.1028266,42.0881124],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938991":{"id":"n1820938991","loc":[-85.0163146,42.0887932],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938992":{"id":"n1820938992","loc":[-85.5282209,41.9678112],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820938993":{"id":"n1820938993","loc":[-85.5442752,41.9715888],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938994":{"id":"n1820938994","loc":[-85.5634327,41.9658558],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938995":{"id":"n1820938995","loc":[-85.0384227,42.1037627],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938996":{"id":"n1820938996","loc":[-85.1144258,42.0854439],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938997":{"id":"n1820938997","loc":[-85.1870651,42.0506305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938998":{"id":"n1820938998","loc":[-85.1256159,42.0747376],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820938999":{"id":"n1820938999","loc":[-85.3272695,41.9715836],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939000":{"id":"n1820939000","loc":[-85.0543067,42.103098],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939001":{"id":"n1820939001","loc":[-85.4678173,41.9973585],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939003":{"id":"n1820939003","loc":[-85.0266626,42.0933154],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939004":{"id":"n1820939004","loc":[-85.0353046,42.1019728],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939005":{"id":"n1820939005","loc":[-85.1237961,42.0762798],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939006":{"id":"n1820939006","loc":[-85.2812214,41.9826702],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:52Z","tags":{}},"n1820939007":{"id":"n1820939007","loc":[-85.2927763,41.9747343],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939008":{"id":"n1820939008","loc":[-85.3270979,41.9720862],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939009":{"id":"n1820939009","loc":[-85.488657,41.9856581],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939010":{"id":"n1820939010","loc":[-85.3087301,41.9701399],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939011":{"id":"n1820939011","loc":[-85.0276939,42.093768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939012":{"id":"n1820939012","loc":[-85.2956516,41.9748779],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939013":{"id":"n1820939013","loc":[-85.1298579,42.0726443],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939014":{"id":"n1820939014","loc":[-85.105144,42.0870893],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939015":{"id":"n1820939015","loc":[-85.0677486,42.1053917],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939016":{"id":"n1820939016","loc":[-85.0333681,42.0993459],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939017":{"id":"n1820939017","loc":[-85.6384272,41.910805],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939018":{"id":"n1820939018","loc":[-85.399496,42.006894],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939019":{"id":"n1820939019","loc":[-85.2648427,41.9998318],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939020":{"id":"n1820939020","loc":[-85.1237424,42.0766779],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939021":{"id":"n1820939021","loc":[-85.2515025,42.0109442],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939022":{"id":"n1820939022","loc":[-85.5566306,41.9718385],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939023":{"id":"n1820939023","loc":[-85.090644,42.0938369],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939024":{"id":"n1820939024","loc":[-85.1245525,42.074914],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939025":{"id":"n1820939025","loc":[-85.1099934,42.0863926],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939026":{"id":"n1820939026","loc":[-85.1251653,42.0744589],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:53Z","tags":{}},"n1820939027":{"id":"n1820939027","loc":[-85.401792,42.0068143],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939028":{"id":"n1820939028","loc":[-85.0094763,42.0899584],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939029":{"id":"n1820939029","loc":[-85.1330779,42.0705605],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939030":{"id":"n1820939030","loc":[-85.4935064,41.984398],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939031":{"id":"n1820939031","loc":[-85.5713334,41.9613939],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939032":{"id":"n1820939032","loc":[-85.0873945,42.0964669],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939033":{"id":"n1820939033","loc":[-85.0886497,42.0986481],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939034":{"id":"n1820939034","loc":[-85.3276343,41.9758897],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939035":{"id":"n1820939035","loc":[-85.1304386,42.0727387],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939036":{"id":"n1820939036","loc":[-85.2551932,42.0052999],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939037":{"id":"n1820939037","loc":[-85.2206936,42.0384458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939038":{"id":"n1820939038","loc":[-85.2313645,42.0286389],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939039":{"id":"n1820939039","loc":[-85.0754586,42.1059835],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939040":{"id":"n1820939040","loc":[-85.0663324,42.1050812],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939041":{"id":"n1820939041","loc":[-85.2406234,42.0106887],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939042":{"id":"n1820939042","loc":[-85.0685962,42.1058175],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939043":{"id":"n1820939043","loc":[-85.0689462,42.1059437],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939044":{"id":"n1820939044","loc":[-85.0586144,42.1046144],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939045":{"id":"n1820939045","loc":[-85.3650565,41.9965452],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939047":{"id":"n1820939047","loc":[-85.5752558,41.9536014],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:54Z","tags":{}},"n1820939048":{"id":"n1820939048","loc":[-85.5110159,41.9710624],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939050":{"id":"n1820939050","loc":[-85.2832641,41.9926477],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939051":{"id":"n1820939051","loc":[-85.0078402,42.0898947],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939052":{"id":"n1820939052","loc":[-85.3882737,42.0017916],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939053":{"id":"n1820939053","loc":[-85.1718945,42.0564937],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939054":{"id":"n1820939054","loc":[-85.0947048,42.0929293],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939055":{"id":"n1820939055","loc":[-85.4456944,42.0051082],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939056":{"id":"n1820939056","loc":[-85.3139872,41.9706903],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939057":{"id":"n1820939057","loc":[-85.3893895,42.0034021],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939058":{"id":"n1820939058","loc":[-85.2425332,42.0106089],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939059":{"id":"n1820939059","loc":[-85.6085624,41.9420844],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939060":{"id":"n1820939060","loc":[-85.210411,42.0397789],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939061":{"id":"n1820939061","loc":[-85.2762542,41.9960473],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939062":{"id":"n1820939062","loc":[-85.4686584,41.9969973],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939063":{"id":"n1820939063","loc":[-85.3860421,42.0018394],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939064":{"id":"n1820939064","loc":[-85.5636944,41.9644414],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939065":{"id":"n1820939065","loc":[-85.3267331,41.9766554],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939066":{"id":"n1820939066","loc":[-85.0868996,42.0943822],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939067":{"id":"n1820939067","loc":[-85.104861,42.0880038],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939068":{"id":"n1820939068","loc":[-85.5537123,41.9695093],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939069":{"id":"n1820939069","loc":[-85.6325092,41.9396743],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939070":{"id":"n1820939070","loc":[-85.3869648,42.0024454],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939071":{"id":"n1820939071","loc":[-85.2775349,41.9957335],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:55Z","tags":{}},"n1820939072":{"id":"n1820939072","loc":[-85.2055616,42.0421533],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939073":{"id":"n1820939073","loc":[-85.4731431,41.9946531],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939074":{"id":"n1820939074","loc":[-85.0399609,42.1030833],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939075":{"id":"n1820939075","loc":[-85.3055758,41.9725169],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939076":{"id":"n1820939076","loc":[-85.4834599,41.994488],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939077":{"id":"n1820939077","loc":[-85.3819866,42.0023018],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939078":{"id":"n1820939078","loc":[-85.1218756,42.0789992],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939079":{"id":"n1820939079","loc":[-85.2793159,41.9944458],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939080":{"id":"n1820939080","loc":[-85.2495498,42.0101466],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939081":{"id":"n1820939081","loc":[-85.0035969,42.0872434],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939082":{"id":"n1820939082","loc":[-85.1054243,42.0865626],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939083":{"id":"n1820939083","loc":[-85.0917665,42.0934774],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939084":{"id":"n1820939084","loc":[-85.3442211,41.988938],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939086":{"id":"n1820939086","loc":[-85.273989,41.9953588],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939087":{"id":"n1820939087","loc":[-85.1142541,42.0852488],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939089":{"id":"n1820939089","loc":[-85.1526684,42.0615758],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939090":{"id":"n1820939090","loc":[-85.2538843,42.0110159],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939091":{"id":"n1820939091","loc":[-85.28341,41.9909635],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939092":{"id":"n1820939092","loc":[-85.3963178,42.0050217],"version":"2","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:29Z","tags":{}},"n1820939093":{"id":"n1820939093","loc":[-85.0851682,42.1012472],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939095":{"id":"n1820939095","loc":[-85.2811784,41.986243],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939096":{"id":"n1820939096","loc":[-85.4274125,42.0052995],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939097":{"id":"n1820939097","loc":[-85.0871262,42.0951652],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:56Z","tags":{}},"n1820939099":{"id":"n1820939099","loc":[-85.1314253,42.0671665],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939100":{"id":"n1820939100","loc":[-85.2778997,41.991001],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939101":{"id":"n1820939101","loc":[-85.112107,42.0862812],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939102":{"id":"n1820939102","loc":[-85.299911,41.9729955],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939103":{"id":"n1820939103","loc":[-85.639822,41.9094796],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939104":{"id":"n1820939104","loc":[-85.122294,42.0785334],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939105":{"id":"n1820939105","loc":[-85.2476294,42.015719],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939106":{"id":"n1820939106","loc":[-85.4946007,41.9814631],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939107":{"id":"n1820939107","loc":[-85.0879524,42.0986919],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939108":{"id":"n1820939108","loc":[-85.0342814,42.098274],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939109":{"id":"n1820939109","loc":[-85.2450695,42.0095463],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939110":{"id":"n1820939110","loc":[-85.3847546,42.0024135],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939111":{"id":"n1820939111","loc":[-85.2961344,41.9742558],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939112":{"id":"n1820939112","loc":[-85.27899,41.994317],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939114":{"id":"n1820939114","loc":[-85.1017644,42.0886618],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939115":{"id":"n1820939115","loc":[-85.076215,42.1056333],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939116":{"id":"n1820939116","loc":[-85.1198009,42.0805349],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939117":{"id":"n1820939117","loc":[-85.11988,42.0798513],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939118":{"id":"n1820939118","loc":[-85.147819,42.0625476],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939119":{"id":"n1820939119","loc":[-85.0585969,42.1029042],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939120":{"id":"n1820939120","loc":[-85.1248596,42.0745744],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:57Z","tags":{}},"n1820939121":{"id":"n1820939121","loc":[-85.3023786,41.9725249],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939123":{"id":"n1820939123","loc":[-85.0119332,42.0900699],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939124":{"id":"n1820939124","loc":[-85.2466852,42.0170343],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939125":{"id":"n1820939125","loc":[-85.0033019,42.0872792],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939126":{"id":"n1820939126","loc":[-85.0042084,42.0875778],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939128":{"id":"n1820939128","loc":[-85.0052961,42.0885424],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939130":{"id":"n1820939130","loc":[-85.0647942,42.10508],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939131":{"id":"n1820939131","loc":[-85.2824123,41.9825107],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939132":{"id":"n1820939132","loc":[-85.3210039,41.9723255],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939133":{"id":"n1820939133","loc":[-85.0491033,42.1014184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939134":{"id":"n1820939134","loc":[-85.1127776,42.0855168],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939135":{"id":"n1820939135","loc":[-85.1243768,42.0759322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939137":{"id":"n1820939137","loc":[-85.125974,42.0747547],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939138":{"id":"n1820939138","loc":[-85.1071248,42.0859973],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939139":{"id":"n1820939139","loc":[-85.5326175,41.9674833],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:32Z","tags":{}},"n1820939140":{"id":"n1820939140","loc":[-85.1338715,42.0660833],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939142":{"id":"n1820939142","loc":[-85.649671,41.9135675],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:58Z","tags":{}},"n1820939144":{"id":"n1820939144","loc":[-85.0236545,42.0920444],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939145":{"id":"n1820939145","loc":[-85.1084391,42.0859376],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939146":{"id":"n1820939146","loc":[-85.1539988,42.0618626],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939147":{"id":"n1820939147","loc":[-85.2354521,42.026511],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939148":{"id":"n1820939148","loc":[-85.2362246,42.0260408],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939149":{"id":"n1820939149","loc":[-85.2401342,42.0115233],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939150":{"id":"n1820939150","loc":[-85.295319,41.9747423],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939151":{"id":"n1820939151","loc":[-85.1164696,42.0835409],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939152":{"id":"n1820939152","loc":[-85.3232891,41.9712885],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939153":{"id":"n1820939153","loc":[-85.2574463,42.0068944],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939155":{"id":"n1820939155","loc":[-85.5704064,41.9598246],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939156":{"id":"n1820939156","loc":[-85.0349077,42.0998116],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939157":{"id":"n1820939157","loc":[-85.0949529,42.0925619],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939159":{"id":"n1820939159","loc":[-85.0179829,42.0902343],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939160":{"id":"n1820939160","loc":[-85.0405832,42.1016942],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939161":{"id":"n1820939161","loc":[-85.2534015,42.0111833],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939162":{"id":"n1820939162","loc":[-85.0839881,42.102708],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939163":{"id":"n1820939163","loc":[-85.0341996,42.1008385],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939164":{"id":"n1820939164","loc":[-85.1037761,42.0879731],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:56:59Z","tags":{}},"n1820939173":{"id":"n1820939173","loc":[-85.0460616,42.1005786],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939177":{"id":"n1820939177","loc":[-85.0061651,42.0878059],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939181":{"id":"n1820939181","loc":[-85.1456775,42.0654684],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939183":{"id":"n1820939183","loc":[-85.1325508,42.0718439],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939185":{"id":"n1820939185","loc":[-85.2485842,42.008329],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939187":{"id":"n1820939187","loc":[-85.2744128,41.9949322],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939189":{"id":"n1820939189","loc":[-85.2579025,41.9999542],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939191":{"id":"n1820939191","loc":[-85.3358998,41.9828987],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939193":{"id":"n1820939193","loc":[-85.3192658,41.9716714],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939194":{"id":"n1820939194","loc":[-85.6400795,41.9130725],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939195":{"id":"n1820939195","loc":[-85.3278489,41.9780591],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939196":{"id":"n1820939196","loc":[-85.2800197,41.983061],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939197":{"id":"n1820939197","loc":[-85.3278167,41.9692943],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939198":{"id":"n1820939198","loc":[-85.3366894,41.9838653],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939199":{"id":"n1820939199","loc":[-85.0328383,42.0969923],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939201":{"id":"n1820939201","loc":[-85.3259284,41.9720383],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:00Z","tags":{}},"n1820939217":{"id":"n1820939217","loc":[-85.1840181,42.0503277],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939220":{"id":"n1820939220","loc":[-85.422563,42.0089986],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939222":{"id":"n1820939222","loc":[-85.555386,41.9707856],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939224":{"id":"n1820939224","loc":[-85.3830809,42.002254],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939226":{"id":"n1820939226","loc":[-84.9917938,42.0857517],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939227":{"id":"n1820939227","loc":[-85.2936775,41.9740484],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939228":{"id":"n1820939228","loc":[-85.2632133,41.9975024],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939229":{"id":"n1820939229","loc":[-85.2809424,41.9853259],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939230":{"id":"n1820939230","loc":[-85.242104,42.0131204],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939232":{"id":"n1820939232","loc":[-85.2610246,41.9963901],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939233":{"id":"n1820939233","loc":[-85.2335531,42.0268378],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939234":{"id":"n1820939234","loc":[-85.3188839,41.9713575],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939235":{"id":"n1820939235","loc":[-85.2413637,42.0225658],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939237":{"id":"n1820939237","loc":[-85.0010796,42.0887215],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939239":{"id":"n1820939239","loc":[-85.2241697,42.0362624],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939243":{"id":"n1820939243","loc":[-85.0368456,42.1040134],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939244":{"id":"n1820939244","loc":[-85.1327986,42.069524],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939260":{"id":"n1820939260","loc":[-85.5408163,41.9711206],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:01Z","tags":{}},"n1820939261":{"id":"n1820939261","loc":[-85.2959199,41.9746546],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939262":{"id":"n1820939262","loc":[-85.3298659,41.9683598],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939263":{"id":"n1820939263","loc":[-85.2240581,42.0358425],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939264":{"id":"n1820939264","loc":[-85.2438206,42.0101944],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939265":{"id":"n1820939265","loc":[-85.3984489,42.0059589],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939266":{"id":"n1820939266","loc":[-85.2330811,42.0294279],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939268":{"id":"n1820939268","loc":[-85.1126877,42.0857704],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939271":{"id":"n1820939271","loc":[-85.254925,42.0106253],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939273":{"id":"n1820939273","loc":[-85.4328046,42.0064662],"version":"2","changeset":"12524188","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-28T14:51:01Z","tags":{}},"n1820939277":{"id":"n1820939277","loc":[-85.289622,41.9789616],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939279":{"id":"n1820939279","loc":[-85.4574532,42.0004043],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939281":{"id":"n1820939281","loc":[-85.4803486,41.9867211],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939283":{"id":"n1820939283","loc":[-85.157475,42.0631848],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939285":{"id":"n1820939285","loc":[-85.2571458,42.0059935],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939287":{"id":"n1820939287","loc":[-85.2818544,41.9825984],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939289":{"id":"n1820939289","loc":[-85.2298302,42.0328781],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:02Z","tags":{}},"n1820939291":{"id":"n1820939291","loc":[-85.4819523,41.984821],"version":"2","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1820939301":{"id":"n1820939301","loc":[-85.3139765,41.9701159],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939304":{"id":"n1820939304","loc":[-85.0424447,42.101742],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939306":{"id":"n1820939306","loc":[-85.6360283,41.9338482],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939310":{"id":"n1820939310","loc":[-85.3463025,41.9913622],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939312":{"id":"n1820939312","loc":[-85.4664869,41.9988097],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939314":{"id":"n1820939314","loc":[-85.149364,42.0622449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939316":{"id":"n1820939316","loc":[-85.2460415,42.0153125],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939318":{"id":"n1820939318","loc":[-85.4806103,41.9924523],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939320":{"id":"n1820939320","loc":[-85.2449042,42.0190987],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939322":{"id":"n1820939322","loc":[-85.5280165,41.9689263],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820939324":{"id":"n1820939324","loc":[-85.0051204,42.0882625],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939326":{"id":"n1820939326","loc":[-85.1240925,42.0771546],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939329":{"id":"n1820939329","loc":[-85.2261653,42.0342225],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939331":{"id":"n1820939331","loc":[-85.5259933,41.972211],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939333":{"id":"n1820939333","loc":[-85.0074754,42.0883183],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939335":{"id":"n1820939335","loc":[-85.0764014,42.1055549],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939336":{"id":"n1820939336","loc":[-85.2908773,41.9769597],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939337":{"id":"n1820939337","loc":[-85.4095382,42.0083449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939346":{"id":"n1820939346","loc":[-85.2514166,42.0111753],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939348":{"id":"n1820939348","loc":[-85.0030377,42.0873799],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939350":{"id":"n1820939350","loc":[-85.3659362,41.9964974],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:03Z","tags":{}},"n1820939352":{"id":"n1820939352","loc":[-85.226058,42.0348281],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939355":{"id":"n1820939355","loc":[-85.1902408,42.0507101],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939357":{"id":"n1820939357","loc":[-85.2781854,41.9946001],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939359":{"id":"n1820939359","loc":[-85.2139988,42.0405175],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939361":{"id":"n1820939361","loc":[-85.0086609,42.0908262],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939363":{"id":"n1820939363","loc":[-85.0627128,42.1043398],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939365":{"id":"n1820939365","loc":[-85.1311346,42.072501],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939369":{"id":"n1820939369","loc":[-85.248198,42.0082652],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939370":{"id":"n1820939370","loc":[-84.99792,42.087794],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939371":{"id":"n1820939371","loc":[-85.2786775,41.9942783],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939372":{"id":"n1820939372","loc":[-85.0342103,42.1013957],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939373":{"id":"n1820939373","loc":[-85.2022357,42.0444799],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939374":{"id":"n1820939374","loc":[-85.2279205,42.0337388],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939375":{"id":"n1820939375","loc":[-85.1337699,42.0712614],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939376":{"id":"n1820939376","loc":[-85.317517,41.9707062],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939377":{"id":"n1820939377","loc":[-85.1326326,42.070218],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939394":{"id":"n1820939394","loc":[-85.0197746,42.0899118],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939397":{"id":"n1820939397","loc":[-85.2590076,41.9984632],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939399":{"id":"n1820939399","loc":[-85.2469964,42.0083449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939400":{"id":"n1820939400","loc":[-85.2470929,42.0146668],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939401":{"id":"n1820939401","loc":[-84.9984095,42.0878087],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939402":{"id":"n1820939402","loc":[-85.2372653,42.0243273],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:04Z","tags":{}},"n1820939403":{"id":"n1820939403","loc":[-85.2454986,42.0091955],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939404":{"id":"n1820939404","loc":[-85.0539205,42.1035995],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939405":{"id":"n1820939405","loc":[-85.550601,41.9706101],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939406":{"id":"n1820939406","loc":[-85.0351343,42.0999656],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939407":{"id":"n1820939407","loc":[-85.0082908,42.0905755],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939408":{"id":"n1820939408","loc":[-85.0132904,42.0902251],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939410":{"id":"n1820939410","loc":[-85.0892546,42.094012],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939412":{"id":"n1820939412","loc":[-85.0350793,42.1030315],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939416":{"id":"n1820939416","loc":[-85.0012406,42.0886777],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939418":{"id":"n1820939418","loc":[-85.0577453,42.1029229],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939420":{"id":"n1820939420","loc":[-85.1230786,42.0776722],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939422":{"id":"n1820939422","loc":[-85.571136,41.9649304],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939436":{"id":"n1820939436","loc":[-85.1137968,42.0848997],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939437":{"id":"n1820939437","loc":[-85.3559584,41.9925105],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939438":{"id":"n1820939438","loc":[-85.0080172,42.0903565],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939439":{"id":"n1820939439","loc":[-85.0048897,42.0880913],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939441":{"id":"n1820939441","loc":[-85.0406959,42.1018574],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939443":{"id":"n1820939443","loc":[-85.3897328,42.0029078],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939445":{"id":"n1820939445","loc":[-85.122349,42.0782814],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939448":{"id":"n1820939448","loc":[-85.4872193,41.985036],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939450":{"id":"n1820939450","loc":[-85.0120459,42.0904919],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:05Z","tags":{}},"n1820939452":{"id":"n1820939452","loc":[-85.6320543,41.921982],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939456":{"id":"n1820939456","loc":[-85.0844749,42.1036843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939458":{"id":"n1820939458","loc":[-85.0968037,42.091296],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939463":{"id":"n1820939463","loc":[-85.5339747,41.9681841],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820939465":{"id":"n1820939465","loc":[-85.4125423,42.0072129],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939467":{"id":"n1820939467","loc":[-85.6335563,41.9303626],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939469":{"id":"n1820939469","loc":[-85.2821014,41.9932126],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939471":{"id":"n1820939471","loc":[-85.374691,41.9969917],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939485":{"id":"n1820939485","loc":[-85.4471321,42.0049806],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939487":{"id":"n1820939487","loc":[-85.3752532,41.9972206],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939489":{"id":"n1820939489","loc":[-85.4517283,42.005927],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939492":{"id":"n1820939492","loc":[-85.4662552,42.0005693],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939494":{"id":"n1820939494","loc":[-85.0120083,42.0902928],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939496":{"id":"n1820939496","loc":[-85.044463,42.1004631],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939498":{"id":"n1820939498","loc":[-85.418293,42.0089667],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939500":{"id":"n1820939500","loc":[-85.0554762,42.1027358],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939504":{"id":"n1820939504","loc":[-85.1246289,42.0746858],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:06Z","tags":{}},"n1820939507":{"id":"n1820939507","loc":[-85.0408139,42.1021838],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939508":{"id":"n1820939508","loc":[-85.1236204,42.0775169],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939509":{"id":"n1820939509","loc":[-85.0350109,42.1037428],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939510":{"id":"n1820939510","loc":[-85.0551583,42.1029878],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939511":{"id":"n1820939511","loc":[-85.0956771,42.0916662],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939512":{"id":"n1820939512","loc":[-85.2323408,42.0273638],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939513":{"id":"n1820939513","loc":[-85.1232771,42.0762388],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939531":{"id":"n1820939531","loc":[-85.264608,41.9997828],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939533":{"id":"n1820939533","loc":[-85.4198808,42.0087914],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939535":{"id":"n1820939535","loc":[-85.3080864,41.9715677],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939536":{"id":"n1820939536","loc":[-85.1189426,42.0812596],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939537":{"id":"n1820939537","loc":[-85.2642741,41.9996764],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939538":{"id":"n1820939538","loc":[-85.2572531,42.0079627],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939539":{"id":"n1820939539","loc":[-85.2907807,41.9790174],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939540":{"id":"n1820939540","loc":[-85.3171415,41.9707301],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939541":{"id":"n1820939541","loc":[-85.08777,42.0953841],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939542":{"id":"n1820939542","loc":[-85.1239262,42.0773218],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939543":{"id":"n1820939543","loc":[-84.9973956,42.0877968],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939544":{"id":"n1820939544","loc":[-85.011606,42.0896161],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939545":{"id":"n1820939545","loc":[-85.4077358,42.0082971],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939546":{"id":"n1820939546","loc":[-85.3614945,41.9933717],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:07Z","tags":{}},"n1820939547":{"id":"n1820939547","loc":[-85.3189118,41.9697649],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939550":{"id":"n1820939550","loc":[-85.1262691,42.0740221],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939551":{"id":"n1820939551","loc":[-85.3863639,41.9994635],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939552":{"id":"n1820939552","loc":[-85.2836034,41.9923953],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939554":{"id":"n1820939554","loc":[-85.3222377,41.9715916],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939555":{"id":"n1820939555","loc":[-85.0122658,42.0906312],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939556":{"id":"n1820939556","loc":[-85.0022652,42.0877581],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939557":{"id":"n1820939557","loc":[-85.1011314,42.0899954],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939559":{"id":"n1820939559","loc":[-85.0008181,42.0885293],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939561":{"id":"n1820939561","loc":[-85.3637046,41.9942488],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939562":{"id":"n1820939562","loc":[-85.4500117,42.0052892],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939563":{"id":"n1820939563","loc":[-85.0537636,42.1036365],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939565":{"id":"n1820939565","loc":[-85.2367503,42.0246939],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939566":{"id":"n1820939566","loc":[-85.0448479,42.1002653],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939567":{"id":"n1820939567","loc":[-85.6337065,41.9295006],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939568":{"id":"n1820939568","loc":[-85.0879792,42.095623],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939569":{"id":"n1820939569","loc":[-85.6347623,41.9352369],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939570":{"id":"n1820939570","loc":[-85.1497931,42.0620378],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:08Z","tags":{}},"n1820939571":{"id":"n1820939571","loc":[-85.5676169,41.9656324],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939572":{"id":"n1820939572","loc":[-85.638041,41.9166971],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939573":{"id":"n1820939573","loc":[-85.4993429,41.9781293],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939574":{"id":"n1820939574","loc":[-85.5352831,41.9692127],"version":"2","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:33Z","tags":{}},"n1820939575":{"id":"n1820939575","loc":[-84.9924429,42.0857118],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939577":{"id":"n1820939577","loc":[-85.0581101,42.1026721],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939578":{"id":"n1820939578","loc":[-85.641088,41.9094477],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939579":{"id":"n1820939579","loc":[-85.2548821,42.0052282],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939580":{"id":"n1820939580","loc":[-85.1124463,42.0859734],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939581":{"id":"n1820939581","loc":[-85.1083479,42.0857624],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939583":{"id":"n1820939583","loc":[-85.1387424,42.0648893],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939584":{"id":"n1820939584","loc":[-85.5152645,41.9700892],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939585":{"id":"n1820939585","loc":[-85.5463738,41.9713439],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939586":{"id":"n1820939586","loc":[-85.360207,41.9933717],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939587":{"id":"n1820939587","loc":[-85.2402372,42.0120917],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939588":{"id":"n1820939588","loc":[-85.3936381,42.0047255],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939589":{"id":"n1820939589","loc":[-85.3310246,41.973784],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939590":{"id":"n1820939590","loc":[-85.0329403,42.096642],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:09Z","tags":{}},"n1820939591":{"id":"n1820939591","loc":[-85.0097271,42.0910981],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939593":{"id":"n1820939593","loc":[-85.0446562,42.1003437],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939595":{"id":"n1820939595","loc":[-85.0856671,42.1008452],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939596":{"id":"n1820939596","loc":[-85.4087228,42.0083449],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939597":{"id":"n1820939597","loc":[-85.0609519,42.1052564],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939598":{"id":"n1820939598","loc":[-85.3432126,41.9874548],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939599":{"id":"n1820939599","loc":[-85.4041738,42.0067027],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939600":{"id":"n1820939600","loc":[-85.0825437,42.1035768],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939601":{"id":"n1820939601","loc":[-85.048422,42.101498],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939602":{"id":"n1820939602","loc":[-85.0336256,42.0999031],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939603":{"id":"n1820939603","loc":[-85.046818,42.1014104],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939605":{"id":"n1820939605","loc":[-85.2856524,41.98078],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939607":{"id":"n1820939607","loc":[-85.1118173,42.0864245],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939609":{"id":"n1820939609","loc":[-85.0443397,42.1006263],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939610":{"id":"n1820939610","loc":[-85.0336698,42.0978361],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:10Z","tags":{}},"n1820939611":{"id":"n1820939611","loc":[-85.4630322,42.0014248],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939612":{"id":"n1820939612","loc":[-85.0613127,42.1052353],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939613":{"id":"n1820939613","loc":[-85.0137571,42.0887801],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939614":{"id":"n1820939614","loc":[-85.272487,41.9982013],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939616":{"id":"n1820939616","loc":[-85.4665727,41.9983791],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939617":{"id":"n1820939617","loc":[-85.1288078,42.0725476],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939618":{"id":"n1820939618","loc":[-85.4653282,42.00109],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939619":{"id":"n1820939619","loc":[-85.2314717,42.0276746],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939620":{"id":"n1820939620","loc":[-85.255982,42.0003569],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939621":{"id":"n1820939621","loc":[-85.2886779,41.9787223],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939622":{"id":"n1820939622","loc":[-85.22438,42.0367509],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939623":{"id":"n1820939623","loc":[-85.0334713,42.0998382],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939624":{"id":"n1820939624","loc":[-85.2236504,42.037484],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939625":{"id":"n1820939625","loc":[-85.636908,41.9175162],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939627":{"id":"n1820939627","loc":[-85.2669187,41.9989707],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939628":{"id":"n1820939628","loc":[-85.3247268,41.9720702],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939629":{"id":"n1820939629","loc":[-85.3785104,41.9987299],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:11Z","tags":{}},"n1820939630":{"id":"n1820939630","loc":[-85.5267658,41.9720515],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939631":{"id":"n1820939631","loc":[-85.2445116,42.0098811],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939632":{"id":"n1820939632","loc":[-85.1271448,42.0725077],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939633":{"id":"n1820939633","loc":[-85.0345751,42.099724],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939634":{"id":"n1820939634","loc":[-85.4217476,42.0089986],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939635":{"id":"n1820939635","loc":[-85.3121848,41.9689433],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939636":{"id":"n1820939636","loc":[-85.2826419,41.9929985],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939637":{"id":"n1820939637","loc":[-85.3160257,41.9706344],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939638":{"id":"n1820939638","loc":[-85.5684967,41.9657919],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939640":{"id":"n1820939640","loc":[-85.225131,42.0356194],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939642":{"id":"n1820939642","loc":[-85.1324124,42.0693328],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939644":{"id":"n1820939644","loc":[-84.9994073,42.0878843],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939645":{"id":"n1820939645","loc":[-85.1087596,42.0863329],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939646":{"id":"n1820939646","loc":[-85.2915532,41.9782996],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939647":{"id":"n1820939647","loc":[-84.9988708,42.0877808],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939648":{"id":"n1820939648","loc":[-85.2243628,42.0356728],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939649":{"id":"n1820939649","loc":[-85.0427397,42.1020524],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:12Z","tags":{}},"n1820939650":{"id":"n1820939650","loc":[-85.6388392,41.9100752],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939651":{"id":"n1820939651","loc":[-85.0133709,42.0888557],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939652":{"id":"n1820939652","loc":[-85.318798,41.9701211],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939653":{"id":"n1820939653","loc":[-85.6335778,41.9190602],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939654":{"id":"n1820939654","loc":[-85.6338396,41.9370247],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939655":{"id":"n1820939655","loc":[-85.0939069,42.0931988],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939656":{"id":"n1820939656","loc":[-85.5702347,41.9651378],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939657":{"id":"n1820939657","loc":[-85.4235286,42.0088392],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939658":{"id":"n1820939658","loc":[-85.2740856,41.9972206],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939659":{"id":"n1820939659","loc":[-85.4824299,41.9934195],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939660":{"id":"n1820939660","loc":[-85.3857846,42.0014408],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939661":{"id":"n1820939661","loc":[-85.0451658,42.10028],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939662":{"id":"n1820939662","loc":[-85.3893036,42.001377],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939664":{"id":"n1820939664","loc":[-85.2455845,42.0088607],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939665":{"id":"n1820939665","loc":[-85.2741071,41.9951116],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939666":{"id":"n1820939666","loc":[-85.1298375,42.0677718],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939667":{"id":"n1820939667","loc":[-85.5491848,41.9707377],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:13Z","tags":{}},"n1820939669":{"id":"n1820939669","loc":[-85.2780298,41.995238],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939670":{"id":"n1820939670","loc":[-85.1330068,42.0716926],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939671":{"id":"n1820939671","loc":[-85.0811342,42.1025129],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939672":{"id":"n1820939672","loc":[-85.2325124,42.0290135],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939673":{"id":"n1820939673","loc":[-85.2975077,41.9716953],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939674":{"id":"n1820939674","loc":[-85.0951729,42.0922394],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939676":{"id":"n1820939676","loc":[-85.0363252,42.1043119],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939677":{"id":"n1820939677","loc":[-85.2960057,41.97349],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939678":{"id":"n1820939678","loc":[-85.3701849,41.9982515],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939679":{"id":"n1820939679","loc":[-85.3381486,41.9848861],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939680":{"id":"n1820939680","loc":[-85.2058448,42.0417286],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939682":{"id":"n1820939682","loc":[-85.0819335,42.1034443],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939683":{"id":"n1820939683","loc":[-85.3872223,41.9993359],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939684":{"id":"n1820939684","loc":[-85.095366,42.091909],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939685":{"id":"n1820939685","loc":[-85.2327914,42.0291888],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939686":{"id":"n1820939686","loc":[-85.0433459,42.1018773],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939687":{"id":"n1820939687","loc":[-85.0585339,42.1027318],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939688":{"id":"n1820939688","loc":[-85.0062885,42.0876347],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939689":{"id":"n1820939689","loc":[-85.246299,42.017377],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939690":{"id":"n1820939690","loc":[-85.2932376,41.9742877],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939691":{"id":"n1820939691","loc":[-85.2962846,41.9736815],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:14Z","tags":{}},"n1820939692":{"id":"n1820939692","loc":[-85.6052365,41.9409193],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939693":{"id":"n1820939693","loc":[-85.2570536,42.0003341],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939694":{"id":"n1820939694","loc":[-85.0488458,42.1014064],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939695":{"id":"n1820939695","loc":[-85.4050321,42.0069578],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939696":{"id":"n1820939696","loc":[-85.4847517,41.9845894],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939697":{"id":"n1820939697","loc":[-85.0844655,42.1013826],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939698":{"id":"n1820939698","loc":[-85.1437206,42.0650008],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939699":{"id":"n1820939699","loc":[-85.1168183,42.0864034],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939700":{"id":"n1820939700","loc":[-85.5479831,41.9711366],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939701":{"id":"n1820939701","loc":[-85.0349948,42.1034124],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939702":{"id":"n1820939702","loc":[-85.0835589,42.1038821],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939703":{"id":"n1820939703","loc":[-85.0203875,42.0902649],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939704":{"id":"n1820939704","loc":[-85.0371191,42.1038184],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939705":{"id":"n1820939705","loc":[-85.1273312,42.0735681],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939707":{"id":"n1820939707","loc":[-85.1272239,42.0730226],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939710":{"id":"n1820939710","loc":[-85.0349881,42.1019012],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939712":{"id":"n1820939712","loc":[-85.2440459,42.0178313],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939713":{"id":"n1820939713","loc":[-85.2444751,42.0182618],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939714":{"id":"n1820939714","loc":[-85.0539996,42.1032863],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:15Z","tags":{}},"n1820939715":{"id":"n1820939715","loc":[-85.2215905,42.0373246],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939716":{"id":"n1820939716","loc":[-85.0649712,42.1051994],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939717":{"id":"n1820939717","loc":[-85.0927146,42.0927581],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939718":{"id":"n1820939718","loc":[-85.3884668,42.0042312],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939719":{"id":"n1820939719","loc":[-85.0840672,42.1013241],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939720":{"id":"n1820939720","loc":[-85.304739,41.9725408],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939721":{"id":"n1820939721","loc":[-85.2243585,42.0371334],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939722":{"id":"n1820939722","loc":[-85.0599823,42.1049686],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939723":{"id":"n1820939723","loc":[-85.0298825,42.0944288],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939724":{"id":"n1820939724","loc":[-85.0366095,42.1042443],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939725":{"id":"n1820939725","loc":[-85.0698783,42.1058135],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939726":{"id":"n1820939726","loc":[-85.1054551,42.0873361],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939727":{"id":"n1820939727","loc":[-84.9952324,42.0864285],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939728":{"id":"n1820939728","loc":[-85.3442211,41.9897993],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939729":{"id":"n1820939729","loc":[-85.4386134,42.0056822],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939730":{"id":"n1820939730","loc":[-85.2438528,42.0146589],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939731":{"id":"n1820939731","loc":[-85.0355581,42.1041846],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939732":{"id":"n1820939732","loc":[-85.557682,41.9724447],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939734":{"id":"n1820939734","loc":[-85.2299418,42.033314],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939735":{"id":"n1820939735","loc":[-85.6297412,41.9419088],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939736":{"id":"n1820939736","loc":[-85.2645101,41.9980259],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939738":{"id":"n1820939738","loc":[-85.082195,42.1035649],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:16Z","tags":{}},"n1820939739":{"id":"n1820939739","loc":[-85.234272,42.0267102],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939740":{"id":"n1820939740","loc":[-85.0130758,42.0895006],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939741":{"id":"n1820939741","loc":[-85.4594702,42.0000375],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939742":{"id":"n1820939742","loc":[-84.9946745,42.0863687],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939743":{"id":"n1820939743","loc":[-85.6438775,41.9120186],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939744":{"id":"n1820939744","loc":[-85.6372685,41.9168089],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939745":{"id":"n1820939745","loc":[-85.2789468,41.9893208],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939747":{"id":"n1820939747","loc":[-85.3775019,41.998427],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939749":{"id":"n1820939749","loc":[-85.0993571,42.0909178],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939750":{"id":"n1820939750","loc":[-85.1308503,42.0669339],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939751":{"id":"n1820939751","loc":[-85.4802566,41.9856659],"version":"2","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1820939752":{"id":"n1820939752","loc":[-85.2543563,42.0108804],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939753":{"id":"n1820939753","loc":[-85.1041033,42.0878815],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939755":{"id":"n1820939755","loc":[-85.4000969,42.0071651],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939757":{"id":"n1820939757","loc":[-85.3858275,42.0022381],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939758":{"id":"n1820939758","loc":[-85.3653998,41.996609],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939759":{"id":"n1820939759","loc":[-85.2432949,42.0202305],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939760":{"id":"n1820939760","loc":[-85.3878874,42.0042472],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939761":{"id":"n1820939761","loc":[-85.2516741,42.0114145],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:17Z","tags":{}},"n1820939762":{"id":"n1820939762","loc":[-85.2788825,41.9865142],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939763":{"id":"n1820939763","loc":[-85.0009147,42.0886686],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939764":{"id":"n1820939764","loc":[-85.3918142,42.003434],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939765":{"id":"n1820939765","loc":[-85.5532832,41.9696848],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939766":{"id":"n1820939766","loc":[-85.5545063,41.969254],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939768":{"id":"n1820939768","loc":[-85.1327989,42.0704769],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939770":{"id":"n1820939770","loc":[-85.0588558,42.1047696],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939772":{"id":"n1820939772","loc":[-85.555798,41.9713017],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939773":{"id":"n1820939773","loc":[-85.0565853,42.1023589],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939774":{"id":"n1820939774","loc":[-85.2582941,41.9992765],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939775":{"id":"n1820939775","loc":[-85.3007264,41.9727642],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939776":{"id":"n1820939776","loc":[-85.2477045,42.0082652],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1820939777":{"id":"n1820939777","loc":[-85.2415247,42.0104973],"version":"1","changeset":"12180411","user":"Thad C","uid":"349027","visible":"true","timestamp":"2012-07-10T22:57:18Z","tags":{}},"n1821006698":{"id":"n1821006698","loc":[-85.6345227,41.9382009],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006700":{"id":"n1821006700","loc":[-85.6344894,41.938975],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006704":{"id":"n1821006704","loc":[-85.6351181,41.9370157],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006706":{"id":"n1821006706","loc":[-85.6357554,41.9361657],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006708":{"id":"n1821006708","loc":[-85.6351235,41.9368481],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006710":{"id":"n1821006710","loc":[-85.6352844,41.9364211],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006712":{"id":"n1821006712","loc":[-85.6351503,41.937307],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006716":{"id":"n1821006716","loc":[-85.6350366,41.9379774],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821006725":{"id":"n1821006725","loc":[-85.6352147,41.9375903],"version":"1","changeset":"12181163","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T01:58:48Z","tags":{}},"n1821137607":{"id":"n1821137607","loc":[-85.5297057,41.9669915],"version":"1","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:32Z","tags":{}},"n1821137608":{"id":"n1821137608","loc":[-85.5288598,41.9673094],"version":"1","changeset":"12182668","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:35:32Z","tags":{}},"n1821139530":{"id":"n1821139530","loc":[-85.4832228,41.9881686],"version":"1","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1821139531":{"id":"n1821139531","loc":[-85.4812101,41.9851258],"version":"1","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1821139532":{"id":"n1821139532","loc":[-85.4799127,41.9860244],"version":"1","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1821139533":{"id":"n1821139533","loc":[-85.4800313,41.9865555],"version":"1","changeset":"12182679","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T07:37:01Z","tags":{}},"n1841425201":{"id":"n1841425201","loc":[-85.4334577,42.0063713],"version":"1","changeset":"12524188","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-28T14:50:57Z","tags":{}},"n1841425222":{"id":"n1841425222","loc":[-85.4382449,42.0055785],"version":"1","changeset":"12524188","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-28T14:50:58Z","tags":{}},"n1914861007":{"id":"n1914861007","loc":[-85.394959,42.0057472],"version":"1","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:21Z","tags":{}},"n1914861057":{"id":"n1914861057","loc":[-85.3967185,42.0049695],"version":"1","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:22Z","tags":{}},"n1914861112":{"id":"n1914861112","loc":[-85.394179,42.0056906],"version":"1","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:24Z","tags":{}},"n1914861306":{"id":"n1914861306","loc":[-85.3900226,42.0028488],"version":"1","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:27Z","tags":{}},"n2114807565":{"id":"n2114807565","loc":[-85.6385979,41.9577824],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807568":{"id":"n2114807568","loc":[-85.6325097,41.9775713],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807572":{"id":"n2114807572","loc":[-85.6328996,41.9980965],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807578":{"id":"n2114807578","loc":[-85.6344818,41.9696956],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807583":{"id":"n2114807583","loc":[-85.6326289,41.9757853],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807593":{"id":"n2114807593","loc":[-85.6360828,41.9650674],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2130304159":{"id":"n2130304159","loc":[-85.6352537,41.9450015],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{"railway":"level_crossing"}},"n2139795852":{"id":"n2139795852","loc":[-85.6374708,41.9311633],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:57Z","tags":{}},"n2139858882":{"id":"n2139858882","loc":[-85.635178,41.9356158],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858883":{"id":"n2139858883","loc":[-85.63533,41.9355886],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858884":{"id":"n2139858884","loc":[-85.6353819,41.93556],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858885":{"id":"n2139858885","loc":[-85.6353665,41.9355157],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858886":{"id":"n2139858886","loc":[-85.6353165,41.9354971],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858887":{"id":"n2139858887","loc":[-85.6352454,41.9355328],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858888":{"id":"n2139858888","loc":[-85.6350184,41.9357846],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858889":{"id":"n2139858889","loc":[-85.634978,41.9359448],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858890":{"id":"n2139858890","loc":[-85.6347723,41.9361523],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858891":{"id":"n2139858891","loc":[-85.6347165,41.9362667],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858892":{"id":"n2139858892","loc":[-85.6346992,41.9364312],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858893":{"id":"n2139858893","loc":[-85.634603,41.9366329],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858894":{"id":"n2139858894","loc":[-85.6345973,41.9367488],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858895":{"id":"n2139858895","loc":[-85.6345127,41.9369734],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858896":{"id":"n2139858896","loc":[-85.634478,41.9371923],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858897":{"id":"n2139858897","loc":[-85.6344838,41.9373768],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858898":{"id":"n2139858898","loc":[-85.6346242,41.9375299],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858899":{"id":"n2139858899","loc":[-85.6347723,41.9376357],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858900":{"id":"n2139858900","loc":[-85.6347607,41.9377788],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858901":{"id":"n2139858901","loc":[-85.6346204,41.9379533],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858902":{"id":"n2139858902","loc":[-85.6344184,41.9380105],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858903":{"id":"n2139858903","loc":[-85.6341627,41.9380406],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858904":{"id":"n2139858904","loc":[-85.634005,41.9381679],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858905":{"id":"n2139858905","loc":[-85.63393,41.9383353],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:11Z","tags":{}},"n2139858906":{"id":"n2139858906","loc":[-85.6338588,41.9384597],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858907":{"id":"n2139858907","loc":[-85.6336627,41.9387759],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858908":{"id":"n2139858908","loc":[-85.6335127,41.9389361],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858933":{"id":"n2139858933","loc":[-85.6353118,41.9432646],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858934":{"id":"n2139858934","loc":[-85.6353952,41.9433002],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858935":{"id":"n2139858935","loc":[-85.6356496,41.9433255],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858936":{"id":"n2139858936","loc":[-85.6363128,41.9433373],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858937":{"id":"n2139858937","loc":[-85.6365467,41.9433779],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858938":{"id":"n2139858938","loc":[-85.6368692,41.9435265],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858939":{"id":"n2139858939","loc":[-85.6370986,41.9437039],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858940":{"id":"n2139858940","loc":[-85.6372371,41.9437732],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858941":{"id":"n2139858941","loc":[-85.6374756,41.9438171],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858942":{"id":"n2139858942","loc":[-85.6376164,41.9439286],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858943":{"id":"n2139858943","loc":[-85.6377504,41.944138],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858944":{"id":"n2139858944","loc":[-85.6384204,41.9443137],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858945":{"id":"n2139858945","loc":[-85.6385726,41.9444506],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858946":{"id":"n2139858946","loc":[-85.638702,41.9445739],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858947":{"id":"n2139858947","loc":[-85.6387179,41.9446516],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858948":{"id":"n2139858948","loc":[-85.6387088,41.9447985],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858949":{"id":"n2139858949","loc":[-85.6387656,41.9449877],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858950":{"id":"n2139858950","loc":[-85.638777,41.9451448],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858951":{"id":"n2139858951","loc":[-85.6387088,41.9452631],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858964":{"id":"n2139858964","loc":[-85.6383346,41.9442912],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858966":{"id":"n2139858966","loc":[-85.6384724,41.9443605],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858967":{"id":"n2139858967","loc":[-85.6354078,41.9434285],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858968":{"id":"n2139858968","loc":[-85.635271,41.943654],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858969":{"id":"n2139858969","loc":[-85.6352657,41.9437437],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858970":{"id":"n2139858970","loc":[-85.635271,41.9438195],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858971":{"id":"n2139858971","loc":[-85.6351563,41.9438906],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858972":{"id":"n2139858972","loc":[-85.6351384,41.9438882],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858973":{"id":"n2139858973","loc":[-85.6351514,41.9438034],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858974":{"id":"n2139858974","loc":[-85.6351237,41.9436641],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858975":{"id":"n2139858975","loc":[-85.6351498,41.9436108],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858976":{"id":"n2139858976","loc":[-85.6351058,41.9435345],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858977":{"id":"n2139858977","loc":[-85.6349641,41.9432051],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858986":{"id":"n2139858986","loc":[-85.6341205,41.9380746],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858990":{"id":"n2139858990","loc":[-85.6345671,41.9381816],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858995":{"id":"n2139858995","loc":[-85.6339783,41.9382273],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139859003":{"id":"n2139859003","loc":[-85.6340477,41.9373489],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{}},"n2139859004":{"id":"n2139859004","loc":[-85.6339784,41.9374752],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{}},"n2139870406":{"id":"n2139870406","loc":[-85.6342265,41.9432605],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:01Z","tags":{}},"n2139877106":{"id":"n2139877106","loc":[-85.6346323,41.9438746],"version":"1","changeset":"14893390","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:53:38Z","tags":{}},"n2139982399":{"id":"n2139982399","loc":[-85.6324055,41.9408537],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982400":{"id":"n2139982400","loc":[-85.632488,41.941063],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{"leisure":"slipway"}},"n2139982401":{"id":"n2139982401","loc":[-85.6327261,41.9415366],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982402":{"id":"n2139982402","loc":[-85.6326391,41.9413598],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982403":{"id":"n2139982403","loc":[-85.6327041,41.9414391],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982405":{"id":"n2139982405","loc":[-85.6322891,41.9406009],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982406":{"id":"n2139982406","loc":[-85.6325412,41.9425257],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139989333":{"id":"n2139989333","loc":[-85.6340584,41.9431731],"version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{}},"n2140006331":{"id":"n2140006331","loc":[-85.6361751,41.9459744],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006334":{"id":"n2140006334","loc":[-85.636528,41.9459751],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006336":{"id":"n2140006336","loc":[-85.6370918,41.9458926],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006338":{"id":"n2140006338","loc":[-85.6378806,41.9456474],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006340":{"id":"n2140006340","loc":[-85.6385831,41.9454343],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006342":{"id":"n2140006342","loc":[-85.639341,41.945157],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006344":{"id":"n2140006344","loc":[-85.6393497,41.9450232],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006346":{"id":"n2140006346","loc":[-85.6388245,41.9450145],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006348":{"id":"n2140006348","loc":[-85.6388167,41.9441739],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006351":{"id":"n2140006351","loc":[-85.6382915,41.9441797],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006353":{"id":"n2140006353","loc":[-85.63828,41.9438109],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006355":{"id":"n2140006355","loc":[-85.6381949,41.9436009],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006357":{"id":"n2140006357","loc":[-85.6371904,41.9435918],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006359":{"id":"n2140006359","loc":[-85.6366966,41.9432727],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006361":{"id":"n2140006361","loc":[-85.6353755,41.9432744],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006365":{"id":"n2140006365","loc":[-85.6350906,41.9435472],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006366":{"id":"n2140006366","loc":[-85.6343461,41.9441573],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006395":{"id":"n2140006395","loc":[-85.6351171,41.9437175],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006397":{"id":"n2140006397","loc":[-85.635352,41.9450206],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006399":{"id":"n2140006399","loc":[-85.6358194,41.9454937],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006401":{"id":"n2140006401","loc":[-85.6348693,41.9445739],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006431":{"id":"n2140006431","loc":[-85.6376737,41.9438023],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006437":{"id":"n2140006437","loc":[-85.6382631,41.9442724],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2189123379":{"id":"n2189123379","loc":[-85.6342671,41.9352665],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"w203974076":{"id":"w203974076","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139870442","n2139870457","n2139870458","n2139870459","n2139870460","n2139870452"]},"w170989131":{"id":"w170989131","version":"5","changeset":"13114234","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-09-15T03:33:30Z","tags":{"name":"St Joseph River","source":"Bing Imagery","waterway":"river"},"nodes":["n1820938225","n1820938712","n1820937596","n1820937574","n1820938515","n1820938330","n1820938678","n1820938240","n1820938950","n1820939226","n1820939575","n1820937913","n1820938223","n1820937668","n1820938545","n1820937584","n1820939742","n1820939727","n1820937578","n1820938149","n1820938124","n1820938888","n1820938898","n1820937922","n1820939543","n1820939370","n1820939401","n1820939647","n1820938345","n1820939644","n1820938333","n1820938370","n1820938624","n1820938493","n1820939559","n1820939763","n1820939237","n1820939416","n1820937810","n1820938317","n1820938324","n1820937558","n1820939556","n1820938298","n1820939348","n1820939125","n1820939081","n1820938859","n1820939126","n1820938881","n1820939439","n1820939324","n1820939128","n1820938101","n1820937706","n1820938382","n1820938776","n1820937815","n1820939177","n1820939688","n1820938952","n1820938216","n1820938387","n1820939333","n1820938243","n1820938248","n1820937666","n1820939051","n1820938332","n1820939438","n1820939407","n1820939361","n1820937517","n1820938770","n1820939591","n1820937857","n1820938491","n1820937993","n1820938125","n1820938166","n1820937746","n1820939028","n1820937638","n1820938676","n1820938843","n1820938844","n1820937978","n1820938730","n1820939544","n1820938304","n1820939123","n1820939494","n1820939450","n1820939555","n1820938133","n1820938129","n1820938871","n1820939408","n1820938669","n1820938260","n1820939740","n1820937625","n1820938631","n1820939651","n1820939613","n1820937850","n1820938325","n1820937736","n1820938804","n1820938837","n1820938014","n1820938991","n1820938722","n1820938935","n1820937870","n1820938432","n1820937986","n1820938756","n1820938966","n1820939159","n1820937744","n1820938334","n1820937645","n1820939394","n1820937656","n1820938392","n1820939703","n1820938385","n1820938947","n1820938854","n1820938428","n1820938488","n1820938269","n1820938668","n1820938268","n1820938707","n1820937732","n1820939144","n1820938481","n1820938771","n1820938686","n1820938948","n1820937997","n1820937769","n1820939003","n1820938083","n1820939011","n1820938803","n1820938700","n1820939723","n1820938808","n1820938262","n1820938081","n1820938926","n1820938326","n1820938102","n1820938508","n1820939590","n1820939199","n1820938084","n1820938870","n1820938895","n1820937611","n1820938918","n1820938514","n1820939610","n1820938910","n1820937523","n1820938127","n1820939108","n1820937981","n1820938938","n1820938715","n1820939016","n1820938237","n1820939623","n1820939602","n1820937734","n1820938977","n1820939633","n1820939156","n1820939406","n1820938279","n1820938301","n1820937678","n1820937671","n1820939163","n1820938356","n1820939372","n1820937568","n1820937626","n1820939710","n1820939004","n1820938253","n1820938571","n1820937513","n1820939412","n1820939701","n1820939509","n1820938839","n1820939731","n1820937798","n1820939676","n1820939724","n1820939243","n1820939704","n1820937814","n1820937599","n1820938199","n1820938995","n1820938445","n1820938069","n1820938470","n1820939074","n1820938193","n1820938740","n1820938047","n1820939507","n1820939441","n1820939160","n1820937849","n1820937840","n1820938052","n1820938988","n1820938796","n1820937724","n1820937620","n1820939304","n1820938343","n1820939649","n1820938875","n1820939686","n1820938476","n1820937801","n1820937737","n1820938264","n1820939609","n1820939496","n1820939593","n1820939566","n1820939661","n1820937782","n1820938912","n1820939173","n1820937733","n1820938953","n1820939603","n1820937607","n1820938468","n1820939601","n1820939694","n1820939133","n1820938897","n1820938893","n1820937831","n1820937730","n1820938820","n1820938046","n1820938426","n1820938347","n1820937582","n1820938954","n1820938033","n1820938104","n1820938680","n1820939563","n1820939404","n1820939714","n1820939000","n1820937992","n1820938168","n1820939510","n1820939500","n1820937509","n1820938865","n1820939773","n1820938138","n1820938905","n1820937623","n1820939418","n1820937946","n1820939577","n1820937615","n1820939687","n1820939119","n1820937988","n1820938337","n1820937750","n1820938703","n1820938339","n1820939044","n1820939770","n1820938913","n1820937672","n1820939722","n1820937768","n1820939597","n1820939612","n1820937699","n1820937682","n1820937669","n1820937657","n1820939363","n1820937800","n1820938265","n1820937760","n1820938207","n1820938115","n1820939130","n1820939716","n1820938338","n1820938239","n1820939040","n1820938064","n1820938855","n1820939015","n1820938258","n1820939042","n1820939043","n1820938443","n1820939725","n1820937675","n1820938568","n1820938280","n1820937705","n1820938775","n1820938636","n1820938626","n1820937859","n1820938096","n1820937852","n1820939039","n1820938247","n1820938585","n1820937707","n1820938117","n1820938909","n1820939115","n1820939335","n1820938805","n1820937935","n1820937876","n1820938699","n1820937869","n1820938603","n1820938100","n1820938500","n1820938283","n1820938275","n1820938923","n1820938365","n1820938349","n1820937804","n1820937903","n1820937608","n1820938688","n1820939671","n1820938092","n1820937820","n1820938753","n1820938922","n1820937990","n1820939682","n1820939738","n1820939600","n1820938167","n1820937726","n1820939702","n1820938209","n1820939456","n1820937837","n1820938222","n1820938902","n1820939162","n1820938965","n1820938461","n1820937681","n1820937514","n1820937764","n1820939719","n1820939697","n1820938899","n1820939093","n1820938702","n1820939595","n1820938749","n1820938348","n1820937606","n1820938675","n1820938830","n1820938737","n1820938758","n1820938716","n1820939107","n1820937863","n1820939033","n1820938163","n1820937867","n1820938819","n1820938034","n1820938252","n1820937563","n1820937868","n1820939032","n1820938632","n1820937982","n1820937943","n1820939568","n1820939541","n1820938215","n1820939097","n1820938812","n1820937518","n1820937952","n1820938711","n1820938736","n1820939066","n1820937591","n1820938082","n1820938108","n1820938496","n1820939410","n1820938949","n1820938327","n1820937708","n1820939023","n1820937772","n1820938256","n1820939083","n1820938378","n1820938961","n1820937610","n1820939717","n1820938695","n1820938590","n1820939655","n1820938341","n1820939054","n1820939157","n1820939674","n1820939684","n1820939511","n1820937631","n1820939458","n1820937830","n1820937709","n1820937779","n1820939749","n1820938880","n1820938856","n1820938557","n1820939557","n1820938249","n1820938818","n1820937594","n1820939114","n1820938416","n1820937508","n1820938990","n1820938201","n1820937759","n1820937987","n1820939164","n1820939753","n1820938187","n1820939067","n1820937586","n1820937941","n1820938121","n1820937807","n1820938521","n1820939726","n1820938244","n1820939014","n1820938741","n1820937629","n1820938664","n1820938747","n1820939082","n1820938709","n1820938320","n1820938270","n1820937619","n1820937777","n1820937718","n1820939138","n1820938056","n1820938155","n1820938596","n1820937775","n1820938437","n1820938128","n1820939581","n1820939145","n1820938546","n1820938184","n1820937601","n1820937794","n1820938539","n1820939645","n1820938438","n1820938436","n1820939025","n1820938915","n1820938534","n1820937605","n1820939607","n1820939101","n1820939580","n1820939268","n1820939134","n1820938849","n1820938754","n1820938079","n1820937842","n1820938781","n1820938873","n1820938495","n1820938381","n1820938503","n1820939436","n1820938502","n1820939087","n1820938996","n1820938449","n1820938907","n1820937979","n1820937780","n1820937546","n1820939699","n1820937677","n1820938957","n1820938946","n1820937776","n1820937717","n1820938718","n1820937637","n1820938510","n1820937663","n1820938941","n1820939151","n1820937603","n1820938250","n1820937951","n1820938630","n1820938821","n1820938779","n1820938497","n1820938159","n1820939536","n1820938409","n1820938386","n1820939116","n1820938340","n1820939117","n1820938291","n1820938435","n1820937819","n1820938242","n1820939078","n1820938877","n1820939104","n1820939445","n1820938367","n1820938903","n1820939420","n1820938517","n1820939508","n1820939542","n1820939326","n1820938210","n1820939020","n1820938815","n1820937832","n1820939513","n1820937818","n1820939005","n1820938717","n1820939135","n1820938384","n1820937587","n1820939024","n1820939504","n1820939120","n1820939026","n1820938015","n1820938998","n1820937648","n1820939137","n1820937761","n1820938195","n1820938535","n1820939550","n1820938725","n1820938282","n1820937781","n1820937792","n1820939705","n1820937788","n1820939707","n1820937882","n1820939632","n1820938427","n1820938276","n1820939617","n1820939013","n1820939035","n1820937543","n1820939365","n1820937752","n1820937802","n1820939183","n1820939670","n1820938450","n1820939375","n1820937813","n1820937673","n1820937783","n1820939029","n1820939768","n1820939377","n1820937974","n1820939244","n1820939642","n1820937864","n1820938255","n1820938528","n1820939666","n1820938120","n1820937812","n1820938928","n1820939750","n1820939099","n1820938073","n1820938714","n1820939140","n1820938192","n1820937844","n1820938635","n1820938742","n1820939583","n1820937887","n1820938318","n1820938816","n1820939698","n1820938273","n1820939181","n1820937652","n1820938748","n1820937651","n1820938519","n1820938019","n1820938752","n1820938235","n1820939118","n1820938562","n1820939314","n1820939570","n1820938190","n1820938342","n1820938533","n1820937977","n1820939089","n1820939146","n1820938622","n1820938297","n1820938524","n1820939283","n1820938874","n1820938832","n1820937550","n1820937843","n1820938638","n1820938116","n1820938206","n1820938319","n1820939053","n1820937845","n1820938093","n1820939217","n1820938997","n1820939355","n1820938861","n1820938726","n1820938057","n1820939373","n1820937862","n1820938518","n1820939072","n1820939680","n1820938444","n1820938217","n1820938506","n1820938393","n1820938492","n1820938852","n1820938221","n1820938773","n1820937684","n1820939060","n1820938224","n1820938203","n1820938840","n1820937525","n1820938147","n1820938433","n1820938188","n1820939359","n1820938750","n1820938016","n1820938768","n1820937621","n1820937799","n1820938951","n1820938721","n1820939037","n1820937866","n1820939715","n1820938063","n1820938446","n1820937627","n1820939624","n1820938431","n1820939721","n1820939622","n1820939239","n1820939263","n1820939648","n1820939640","n1820938867","n1820938757","n1820938439","n1820939352","n1820937740","n1820939329","n1820938229","n1820937583","n1820938180","n1820938366","n1820937767","n1820937758","n1820939374","n1820938869","n1820938292","n1820938400","n1820938399","n1820939734","n1820939289","n1820938944","n1820937755","n1820938759","n1820938434","n1820937600","n1820937825","n1820937670","n1820937793","n1820938011","n1820938246","n1820938956","n1820937770","n1820937757","n1820938059","n1820937860","n1820937569","n1820939266","n1820939685","n1820939672","n1820938606","n1820938772","n1820939038","n1820938211","n1820938359","n1820939619","n1820938708","n1820939512","n1820938065","n1820939233","n1820939739","n1820938786","n1820938879","n1820939147","n1820938563","n1820939148","n1820937839","n1820937659","n1820937786","n1820938419","n1820939565","n1820939402","n1820937710","n1820938254","n1820938271","n1820938390","n1820937680","n1820938140","n1820937817","n1820938218","n1820937985","n1820939235","n1820938441","n1820938401","n1820938719","n1820937795","n1820938971","n1820938460","n1820939759","n1820937972","n1820937841","n1820938462","n1820939320","n1820938978","n1820938360","n1820939713","n1820937676","n1820939712","n1820937939","n1820938080","n1820937754","n1820937753","n1820938530","n1820937886","n1820939689","n1820939124","n1820938697","n1820938789","n1820939105","n1820938860","n1820938853","n1820939400","n1820937561","n1820938404","n1820938774","n1820939316","n1820937696","n1820938782","n1820938975","n1820937564","n1820939730","n1820938257","n1820937853","n1820938487","n1820938848","n1820938906","n1820939230","n1820938424","n1820938051","n1820937771","n1820939587","n1820939149","n1820938792","n1820939041","n1820938934","n1820939777","n1820937515","n1820939058","n1820938312","n1820939264","n1820939631","n1820939109","n1820939403","n1820939664","n1820938724","n1820938929","n1820939399","n1820939776","n1820939369","n1820939185","n1820937701","n1820938126","n1820938336","n1820938219","n1820939080","n1820938642","n1820938043","n1820937725","n1820938548","n1820938552","n1820938035","n1820938684","n1820937778","n1820938764","n1820939021","n1820939346","n1820937712","n1820939761","n1820938397","n1820937747","n1820938566","n1820939161","n1820939090","n1820939752","n1820939271","n1820938878","n1820938110","n1820938346","n1820938499","n1820938151","n1820939538","n1820938281","n1820939153","n1820938551","n1820939285","n1820938197","n1820938408","n1820938482","n1820939036","n1820939579","n1820938489","n1820938483","n1820938189","n1820938123","n1820938087","n1820937741","n1820938485","n1820937590","n1820938972","n1820937773","n1820937520","n1820938872","n1820938131","n1820938452","n1820938328","n1820939620","n1820937641","n1820938353","n1820939693","n1820938705","n1820937640","n1820939189","n1820938144","n1820939774","n1820938694","n1820938238","n1820939397","n1820937917","n1820938454","n1820938567","n1820938979","n1820938060","n1820938204","n1820937828","n1820939232","n1820938806","n1820938857","n1820938078","n1820938105","n1820939228","n1820938604","n1820937763","n1820937854","n1820938289","n1820939736","n1820937937","n1820937714","n1820938278","n1820938058","n1820938706","n1820938989","n1820938313","n1820938520","n1820938288","n1820937689","n1820939537","n1820939531","n1820939019","n1820937527","n1820938455","n1820938814","n1820938045","n1820939627","n1820938213","n1820938161","n1820938331","n1820938024","n1820938220","n1820938062","n1820938178","n1820937796","n1820937644","n1820938490","n1820937589","n1820937879","n1820939614","n1820938882","n1820938039","n1820938538","n1820937667","n1820937719","n1820938561","n1820939658","n1820938783","n1820938601","n1820938198","n1820938388","n1820938969","n1820937687","n1820939086","n1820939665","n1820939187","n1820938498","n1820938261","n1820937983","n1820938068","n1820938136","n1820939061","n1820938137","n1820938186","n1820939071","n1820937592","n1820939669","n1820937553","n1820939357","n1820938727","n1820939371","n1820939112","n1820939079","n1820938743","n1820938467","n1820938834","n1820938022","n1820938537","n1820938122","n1820938516","n1820937614","n1820937612","n1820939469","n1820939636","n1820939050","n1820939552","n1820938157","n1820938663","n1820938955","n1820939091","n1820938430","n1820938471","n1820937809","n1820938074","n1820938208","n1820938914","n1820938858","n1820938417","n1820937531","n1820938107","n1820939100","n1820938751","n1820937711","n1820938824","n1820939745","n1820937572","n1820938602","n1820938212","n1820938097","n1820937921","n1820938090","n1820938511","n1820938876","n1820939762","n1820938234","n1820938048","n1820937774","n1820937856","n1820937749","n1820937765","n1820938286","n1820939095","n1820938480","n1820939229","n1820938277","n1820937617","n1820938311","n1820937622","n1820939196","n1820937690","n1820939006","n1820939287","n1820939131","n1820938106","n1820938784","n1820938335","n1820938095","n1820938182","n1820937715","n1820937683","n1820938070","n1820939605","n1820938527","n1820938763","n1820938398","n1820937686","n1820939621","n1820937664","n1820939277","n1820938565","n1820939539","n1820938099","n1820939646","n1820938556","n1820937548","n1820938729","n1820939336","n1820938259","n1820938728","n1820938361","n1820937643","n1820938644","n1820939007","n1820939690","n1820939227","n1820937635","n1820937950","n1820938682","n1820939150","n1820939012","n1820939261","n1820939111","n1820937805","n1820939691","n1820939677","n1820937628","n1820937811","n1820938790","n1820938251","n1820938226","n1820938942","n1820937633","n1820937984","n1820937751","n1820939673","n1820938970","n1820938415","n1820938597","n1820938309","n1820938111","n1820938472","n1820938894","n1820938402","n1820937593","n1820938570","n1820939102","n1820939775","n1820937948","n1820939121","n1820937511","n1820938787","n1820939720","n1820939075","n1820937880","n1820937742","n1820937721","n1820939535","n1820938486","n1820938354","n1820937632","n1820939010","n1820938885","n1820938089","n1820937613","n1820938442","n1820938245","n1820938272","n1820937566","n1820938295","n1820938532","n1820938883","n1820937713","n1820937674","n1820939635","n1820938448","n1820938355","n1820938587","n1820938559","n1820937787","n1820939301","n1820937723","n1820939056","n1820937560","n1820938323","n1820938230","n1820938453","n1820938377","n1820938357","n1820939637","n1820938017","n1820939540","n1820939376","n1820937639","n1820937642","n1820938075","n1820938351","n1820938766","n1820937897","n1820938973","n1820938066","n1820939547","n1820939652","n1820937944","n1820937748","n1820939234","n1820939193","n1820937891","n1820938785","n1820939132","n1820938523","n1820938884","n1820938411","n1820939554","n1820938791","n1820937655","n1820938368","n1820939152","n1820938030","n1820938447","n1820937580","n1820939628","n1820937588","n1820937894","n1820939201","n1820938086","n1820937650","n1820938379","n1820939008","n1820938999","n1820937524","n1820937872","n1820938389","n1820939197","n1820938422","n1820938936","n1820939262","n1820937634","n1820938583","n1820939589","n1820937901","n1820939034","n1820939065","n1820938290","n1820939195","n1820938228","n1820937884","n1820938797","n1820938191","n1820939191","n1820939198","n1820937892","n1820939679","n1820938507","n1820937647","n1820937909","n1820938542","n1820939598","n1820937851","n1820939084","n1820939728","n1820937688","n1820938263","n1820938670","n1820937762","n1820939310","n1820938925","n1820938862","n1820938822","n1820938547","n1820937731","n1820938594","n1820938592","n1820938214","n1820938284","n1820937835","n1820938599","n1820939437","n1820937834","n1820937576","n1820937692","n1820939586","n1820939546","n1820938403","n1820937970","n1820939561","n1820938098","n1820938851","n1820938477","n1820938892","n1820939045","n1820939758","n1820939350","n1820938321","n1820938440","n1820938595","n1820938364","n1820938962","n1820938118","n1820939678","n1820938406","n1820938549","n1820937555","n1820938823","n1820937521","n1820939471","n1820939487","n1820938799","n1820938605","n1820937928","n1820938373","n1820939747","n1820939629","n1820937557","n1820937526","n1820938958","n1820938833","n1820937636","n1820938967","n1820938760","n1820938842","n1820938067","n1820939077","n1820939224","n1820938185","n1820939110","n1820938372","n1820939757","n1820939063","n1820939660","n1820938813","n1820937528","n1820938369","n1820938896","n1820939551","n1820939683","n1820937660","n1820937873","n1820938810","n1820938478","n1820939662","n1820937595","n1820939052","n1820938113","n1820939070","n1820938733","n1820937878","n1820938300","n1820939760","n1820939718","n1820937646","n1820939057","n1820939443","n1914861306","n1820938013","n1820937529","n1820939764","n1820938826","n1820937885","n1820939588","n1820937865","n1820937833","n1914861112","n1820938761","n1914861007","n1820937905","n1820938541","n1820939092","n1914861057","n1820938153","n1820938267","n1820939265","n1820938085","n1820939018","n1820939755","n1820938474","n1820939027","n1820938593","n1820938202","n1820939599","n1820939695","n1820938077","n1820938012","n1820939545","n1820939596","n1820939337","n1820938227","n1820937698","n1820938475","n1820939465","n1820938165","n1820938698","n1820938525","n1820938529","n1820938553","n1820938940","n1820939498","n1820938501","n1820939533","n1820938924","n1820939634","n1820939220","n1820939657","n1820938887","n1820938838","n1820938114","n1820937823","n1820938778","n1820938801","n1820939096","n1820938981","n1820937953","n1820938732","n1820938980","n1820938960","n1820937949","n1820938026","n1820939273","n1841425201","n1820938629","n1820938864","n1820938554","n1820938088","n1820937685","n1841425222","n1820939729","n1820937665","n1820937838","n1820937739","n1820938780","n1820937821","n1820938825","n1820939055","n1820939485","n1820938041","n1820938746","n1820939562","n1820938459","n1820939489","n1820938050","n1820937980","n1820937695","n1820938413","n1820938555","n1820937703","n1820938536","n1820938196","n1820938287","n1820938169","n1820939279","n1820938531","n1820938959","n1820939741","n1820938665","n1820938963","n1820939611","n1820937653","n1820939618","n1820939492","n1820938600","n1820938628","n1820939312","n1820939616","n1820937738","n1820939001","n1820939062","n1820938794","n1820938558","n1820937822","n1820937532","n1820939073","n1820938200","n1820938241","n1820938968","n1820938927","n1820938306","n1820937630","n1820938456","n1820937694","n1820938908","n1820939076","n1820937522","n1820939659","n1820938522","n1820939318","n1820938932","n1820938841","n1820937579","n1820937540","n1820938560","n1821139530","n1820938964","n1820937662","n1820939281","n1821139533","n1820937797","n1821139532","n1820939751","n1821139531","n1820939291","n1820938420","n1820939696","n1820938904","n1820938484","n1820939448","n1820939009","n1820938735","n1820938986","n1820938937","n1820939030","n1820938734","n1820938745","n1820939106","n1820938987","n1820937858","n1820938673","n1820938620","n1820937808","n1820937700","n1820939573","n1820938540","n1820937661","n1820937570","n1820938396","n1820937875","n1820939048","n1820938233","n1820938793","n1820939584","n1820938412","n1820938394","n1820937846","n1820938800","n1820938690","n1820939331","n1820939630","n1820938762","n1820938710","n1820939322","n1820938992","n1821137608","n1821137607","n1820937924","n1820939139","n1820939463","n1820939574","n1820938294","n1820938071","n1820938307","n1820938061","n1820939260","n1820937899","n1820938310","n1820938983","n1820937530","n1820938993","n1820938890","n1820937915","n1820938231","n1820938040","n1820938920","n1820939585","n1820938135","n1820939700","n1820937824","n1820939667","n1820937930","n1820938134","n1820937551","n1820939405","n1820938232","n1820937716","n1820937848","n1820939765","n1820939068","n1820939766","n1820937933","n1820937720","n1820939222","n1820939772","n1820939022","n1820939732","n1820937702","n1820937691","n1820938945","n1820937756","n1820938451","n1820938410","n1820938798","n1820937945","n1820937654","n1820938598","n1820938836","n1820937571","n1820937556","n1820938994","n1820938919","n1820938863","n1820939064","n1820938018","n1820937658","n1820937537","n1820938142","n1820938666","n1820937535","n1820939571","n1820938465","n1820939638","n1820937533","n1820939656","n1820939422","n1820938109","n1820938405","n1820938028","n1820937649","n1820938829","n1820939031","n1820939155","n1820938350","n1820938463","n1820938425","n1820939047","n1820938831","n1820938494","n1820937697","n1820938504","n1820938900","n1820937784","n1820938414","n1820938076","n1820938723","n1820937722","n1820938739","n1820937791","n1820938985","n1820938352","n1820938293","n1820938274","n1820939692","n1820937871","n1820939059","n1820938868","n1820937877","n1820937743","n1820938429","n1820937545","n1820937575","n1820938302","n1820938505","n1820938916","n1820938374","n1820938329","n1820937790","n1820939735","n1820938930","n1820937995","n1820938512","n1820938130","n1820938194","n1820938671","n1820938802","n1820937542","n1820937602","n1820939069","n1820938901","n1820939654","n1820937727","n1820939569","n1820938375","n1820939306","n1820938479","n1820938376","n1820938667","n1820937766","n1820939467","n1820939567","n1820937806","n1820938943","n1820938931","n1820937745","n1820939452","n1820938738","n1820938053","n1820939653","n1820938640","n1820937604","n1820937536","n1820938701","n1820939625","n1820939744","n1820939572","n1820937577","n1820937541","n1820938891","n1820937597","n1820938469","n1820939194","n1820937539","n1820938911","n1820939017","n1820939650","n1820939103","n1820939578","n1820938132","n1820937549","n1820938634","n1820939743","n1820937544","n1820937826","n1820937598","n1820937547","n1820938032","n1820939142"]},"w17963021":{"id":"w17963021","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:22:17Z","tags":{"highway":"residential","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15331667","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185948706","n185948708","n185948710"]},"w203974069":{"id":"w203974069","version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:34Z","tags":{"amenity":"shelter","area":"yes","building":"yes","shelter_type":"picnic_shelter"},"nodes":["n2139870431","n2139870432","n2139870433","n2139870434","n2139870431"]},"w209816575":{"id":"w209816575","version":"1","changeset":"15353718","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T16:29:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199856288","n2199856289","n2199856290","n2199856291","n2199856292","n2199856293","n2199856294","n2199856295","n2199856296","n2199856297","n2199856298","n2199856299","n2199856300","n2199856301","n2199856302","n2199856303","n2199856288"]},"w203841838":{"id":"w203841838","version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{"area":"yes","natural":"water"},"nodes":["n2138493826","n2138493827","n2138493828","n2138493829","n2138493830","n2138493831","n2138493833","n2138493832","n2138493826"]},"w203972937":{"id":"w203972937","version":"2","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:26Z","tags":{"highway":"path","name":"Riverwalk Trail","surface":"asphalt","width":"3"},"nodes":["n2139858882","n2139858883","n2139858884","n2139858885","n2139858886","n2139858887","n2139858882","n2139858888","n2139858889","n2139858890","n2139858891","n2139858892","n2139858893","n2139858894","n2139858895","n2139858896","n2139858897","n2139858898","n2139858899","n2139858900","n2139858901","n2139858902","n2139858903","n2139858986","n2139858904","n2139858995","n2139858905","n2139858906","n2139858907","n2139858908","n2139858909","n2139858910","n2139858911","n2139858912","n2139858913","n2139858914","n2139858915","n2139858916","n2139858917","n2139858918","n2139858919","n2139858920","n2139858921","n2139858922","n2139858923","n2139858924","n2139858925","n2139858926","n2139858927","n2139858982","n2139858928","n2139858929","n2139858930","n2139858931","n2139858932","n2139858981","n2139858933","n2139858934","n2139858935","n2139858936","n2139858937","n2139858938","n2139858939","n2139858940","n2139858941","n2139858942","n2139858943","n2140006437","n2139858964","n2139858944","n2139858966","n2139858945","n2139858946","n2139858947","n2139858948","n2139858949","n2139858950","n2139858951"]},"w17964015":{"id":"w17964015","version":"2","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"residential","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326005:15326006","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185954680","n185954683","n185954685","n185954687","n185954689","n185954690","n185954691","n2139870379","n2139870456","n185954692","n185954693","n185954695"]},"w17967315":{"id":"w17967315","version":"2","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:01Z","tags":{"highway":"residential","name":"South Andrews Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Andrews","tiger:name_direction_prefix":"S","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185981999","n185974477","n185964963"]},"w203974071":{"id":"w203974071","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139870439","n2139870440","n2139870441","n2139870442","n2139870443","n2139870444","n2139870445","n2139870446","n2139870447","n2139870448","n2139870449"]},"w170848824":{"id":"w170848824","version":"3","changeset":"15276848","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:54:30Z","tags":{"name":"Rocky River","source":"Bing","waterway":"river"},"nodes":["n1819858503","n1819858531","n1819858526","n1819858518","n1819858505","n1819858508","n1819858512","n1819858514","n1819858528","n1819858509","n1819858511","n1819858507","n1819858521"]},"w203986458":{"id":"w203986458","version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{"amenity":"shelter","area":"yes","shelter_type":"picnic_shelter"},"nodes":["n2139989357","n2139989359","n2139989360","n2139989362","n2139989357"]},"w170844917":{"id":"w170844917","version":"7","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{"source":"Bing","waterway":"riverbank"},"nodes":["n1819805911","n1819805690","n1819805812","n1819805766","n1819805802","n1819805885","n1819805626","n1819805842","n1819805715","n1819805694","n1819805618","n1819805629","n1819805731","n1819805636","n1819805878","n1819805718","n1819805798","n1819849057","n1819805666","n1819805852","n1819805805","n1819805789","n1819805868","n1819805680","n1819805918","n1819848888","n1819805762","n2139989328","n1819805907","n2139989330","n1819805915","n1819858521","n1819805854","n1819805876","n1819805864","n1819805922","n2139859004","n1819805702","n2139859003","n1819805614","n1819805792","n1819805786","n1819805777","n1819805645","n1819805838","n1819805889","n1819805795","n1819805707","n1819805774","n1819805808","n1819805810","n1819805724","n1819805676","n1819805728","n1819805783","n1819805687","n1819805727","n2189123379","n1819805632","n1819805641","n1819805760","n1819805887","n1819805861","n1819805722","n1819805880","n2139982405","n2139982399","n2139982400","n1819805770","n2139982402","n2139982403","n2139982401","n1819805780","n1819805834","n2139982406","n1819805698","n1819805647","n1819805870","n1819805683","n1819805622","n1819805639","n1819805858","n1819805643","n1819805673","n1819805925","n1819805849","n1819805711","n1819805846","n1819805669","n1819805883","n1819805814","n1819805873","n1819805911"]},"w17967326":{"id":"w17967326","version":"4","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:01Z","tags":{"highway":"residential","name":"North Constantine Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Constantine","tiger:name_direction_prefix":"N","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185985217","n185985219","n185985221","n185985222","n185985223","n185985225","n2140006431","n185985227","n185985229","n185985231","n185985233","n185985235","n185985238","n185985240","n2140018998","n185964965"]},"w134150789":{"id":"w134150789","version":"5","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:59Z","tags":{"highway":"primary","name":"West Michigan Avenue","old_ref":"US 131","ref":"US 131 Business;M 60","tiger:cfcc":"A21","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_base_2":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"W","tiger:name_type":"Ave","tiger:reviewed":"no"},"nodes":["n185964971","n2139870406","n185964972"]},"w17966400":{"id":"w17966400","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:01Z","tags":{"highway":"tertiary","name":"South Constantine Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Constantine","tiger:name_direction_prefix":"S","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958672","n185964965"]},"w203974066":{"id":"w203974066","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139870417","n2139870418","n2139870420","n2139870419"]},"w17965998":{"id":"w17965998","version":"5","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:53Z","tags":{"name":"Conrail Railroad","railway":"rail","tiger:cfcc":"B11","tiger:county":"St. Joseph, MI","tiger:name_base":"Conrail Railroad","tiger:reviewed":"no"},"nodes":["n185972775","n185972777","n185972779","n185972781","n185972783","n185972785","n185972787","n185972788","n185972789","n185972790","n185972791","n185972793","n185972795","n185972797","n185972798","n185972800","n185972802","n185972805","n185972807","n185972809","n185972811","n185972813","n185972814","n185972815","n185972816","n185972817","n185972819","n185972821","n185972824","n185972826","n185972830","n185972832","n185972834","n185972835","n185972836","n185972839","n185990434","n2114807572","n2114807568","n185972845","n2114807583","n185972847","n185972849","n185972851","n2114807578","n1475293254","n2114807593","n1475293226","n185972862","n2114807565","n185951869","n1475293234","n1475293252","n185972868","n1475293264","n1475293222","n185972878","n1475293261","n185972882","n185972885","n1475293260","n1475293240","n185972891","n185972895","n185972897","n185972899","n2130304159","n1475284023","n185972903"]},"w134150795":{"id":"w134150795","version":"4","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:59Z","tags":{"bridge":"yes","highway":"primary","name":"West Michigan Avenue","old_ref":"US 131","ref":"US 131 Business;M 60","tiger:cfcc":"A21","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_base_2":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"W","tiger:name_type":"Ave","tiger:reviewed":"no"},"nodes":["n185964970","n185964971"]},"w203974067":{"id":"w203974067","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139870420","n2139870421"]},"w170995908":{"id":"w170995908","version":"3","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:15Z","tags":{"highway":"residential","name":"Thomas Street","source":"Bing"},"nodes":["n1821006702","n1821006700","n1821006698","n2139858990","n1821006716","n1821006725","n1821006712","n1821006704","n1821006708","n1821006710","n1821006706"]},"w17965834":{"id":"w17965834","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:01Z","tags":{"highway":"residential","name":"Spring Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Spring","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185971361","n185971364","n185971366","n185971368","n185954695","n185964968"]},"w203974070":{"id":"w203974070","version":"2","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:34Z","tags":{"amenity":"shelter","area":"yes","building":"yes","shelter_type":"picnic_shelter"},"nodes":["n2139870435","n2139870436","n2139870437","n2139870438","n2139870435"]},"w203989879":{"id":"w203989879","version":"1","changeset":"14895342","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:35:05Z","tags":{"highway":"service"},"nodes":["n2140018998","n2140018999","n2140019000"]},"w203974062":{"id":"w203974062","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139870387","n2139870388","n2139870389","n2139870390","n2139870391","n2139870392","n2139870397","n2139870393","n2139870396","n2139870395","n2139870394","n2139870387"]},"w203974061":{"id":"w203974061","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"bridge":"yes","highway":"footway"},"nodes":["n2139870382","n2139870383"]},"w203049587":{"id":"w203049587","version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{"area":"yes","name":"Scidmore Park Petting Zoo","tourism":"zoo","zoo":"petting_zoo"},"nodes":["n2130304133","n2130304136","n2130304138","n2130304140","n2130304142","n2130304144","n2130304146","n2130304147","n2130304148","n2130304149","n2130304150","n2130304151","n2130304133"]},"w203972941":{"id":"w203972941","version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{"highway":"path"},"nodes":["n2139858982","n2139858983","n2139858984","n2139858985","n2139858927"]},"w203974065":{"id":"w203974065","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"service"},"nodes":["n2139870406","n2139870407","n2139870408","n2139870417","n2139870409","n2139870410","n2139870411","n2139870412","n2139870426","n2139870413","n2139870414","n2139870415","n2139870419","n2139870416","n2139870421","n2139870408"]},"w203972940":{"id":"w203972940","version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{"highway":"path","name":"Riverwalk Trail"},"nodes":["n2139858934","n2139858967","n2139858968","n2139858969","n2139858970","n2139858971","n2139858972","n2139858973","n2139858974","n2139858975","n2139858976","n2139858977","n2139858978","n2139858979","n2139858980","n2139858981"]},"w203974072":{"id":"w203974072","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139858925","n2139870450","n2139870453","n2139870451","n2139870452","n2139870441"]},"w203974074":{"id":"w203974074","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139870454","n2139870456","n2139870429"]},"w203974060":{"id":"w203974060","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"footway"},"nodes":["n2139870383","n2139870384","n2139870422","n2139870385","n2139870386","n2139870388"]},"w203841837":{"id":"w203841837","version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{"area":"yes","natural":"water"},"nodes":["n2138493807","n2138493808","n2138493809","n2138493810","n2138493811","n2138493812","n2138493813","n2138493814","n2138493815","n2138493816","n2138493825","n2138493817","n2138493824","n2138493818","n2138493819","n2138493820","n2138493821","n2138493822","n2138493823","n2138493807"]},"w134150845":{"id":"w134150845","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{"bridge":"yes","name":"Conrail Railroad","railway":"rail","tiger:cfcc":"B11","tiger:county":"St. Joseph, MI","tiger:name_base":"Conrail Railroad","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15324560:15329061:15329062:15333515:15333516:15333517:15328802:15312982:15312984:15312980:15326010:15326011:15313203:15322169:15324562:15312971:15312973:15312977:15328799:15328907:15328908:15322175:15329059:15333626:15333627:15325105:15322549:15337756:153","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185972903","n185972905"]},"w203974059":{"id":"w203974059","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"footway"},"nodes":["n2139870430","n2139870439","n2139870429","n2139870428","n2139870379","n2139870455","n2139870380","n2139870381","n2139858925","n2139870382"]},"w203986457":{"id":"w203986457","version":"2","changeset":"15287771","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T21:56:30Z","tags":{"area":"yes","ele":"241","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417887","gnis:state_id":"26","leisure":"park","name":"Scidmore Park","website":"http://www.threeriversmi.us/?page_id=53"},"nodes":["n2139989333","n2139989335","n2139989337","n2139989339","n1819805762","n2139989328","n1819805907","n2139989330","n1819805915","n2139989341","n2139989344","n2139989346","n2139989348","n2139989350","n2139989351","n2139989353","n2139989355","n2139989333"]},"w170848331":{"id":"w170848331","version":"4","changeset":"15276848","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T22:54:29Z","tags":{"name":"Rocky River","source":"Bing","waterway":"river"},"nodes":["n1819848937","n1819849104","n1819849076","n1819849183","n1819848928","n1819848972","n1819848948","n1819848971","n1819848859","n1819849008","n1819848889","n1819849026","n1819849094","n1819849083","n1819849079","n1819849187","n1819848992","n1819849060","n1819849056","n1819849071","n1819849067","n1819849048","n1819849036","n1819849150","n1819849075","n1819849051","n1819849062","n1819848926","n1819849035","n1819848987","n1819849012","n1819848933","n1819848996","n1819848990","n1819849005","n1819849021","n1819848892","n1819849092","n1819848863","n1819848922","n1819848858","n1819848855","n1819848974","n1819848953","n1819849019","n1819849049","n1819848979","n1819849140","n1819849193","n1819849147","n1819849151","n1819849163","n1819849023","n1819848878","n1819849004","n1819848857","n1819848879","n1819849041","n1819849165","n1819849107","n1819849156","n1819848934","n1819848914","n1819848955","n1819848931","n1819848927","n1819849084","n1819849169","n1819849045","n1819848945","n1819849095","n1819848924","n1819849171","n1819849141","n1819849046","n1819849197","n1819849011","n1819849108","n1819849158","n1819849160","n1819848870","n1819849006","n1819849157","n1819848993","n1819848970","n1819849202","n1819848903","n1819848975","n1819848849","n1819849025","n1819849105","n1819849033","n1819849176","n1819849099","n1819849086","n1819848960","n1819848961","n1819849001","n1819848980","n1819849038","n1819848854","n1819849127","n1819849170","n1819849139","n1819848873","n1819848929","n1819849201","n1819849121","n1819849031","n1819849131","n1819848875","n1819849080","n1819849066","n1819849081","n1819849096","n1819849172","n1819849114","n1819849182","n1819848905","n1819849054","n1819848920","n1819848851","n1819848968","n1819848917","n1819849111","n1819849119","n1819849074","n1819848893","n1819849129","n1819848850","n1819848956","n1819849154","n1819848877","n1819848986","n1819849191","n1819848952","n1819848954","n1819848942","n1819849028","n1819849195","n1819848938","n1819848962","n1819849070","n1819849034","n1819849052","n1819849059","n1819848916","n1819849162","n1819849167","n1819849093","n1819849030","n1819849002","n1819849161","n1819848886","n1819848958","n1819849064","n1819849112","n1819849148","n1819848856","n1819848976","n1819848977","n1819849144","n1819848918","n1819849200","n1819848919","n1819849042","n1819849166","n1819849186","n1819849152","n1819849058","n1819849185","n1819849199","n1819849053","n1819849194","n1819849068","n1819849146","n1819849174","n1819848967","n1819848932","n1819849155","n1819849198","n1819848964","n1819848894","n1819848969","n1819849184","n1819849055","n1819849179","n1819848865","n1819848860","n1819849082","n1819848966","n1819849040","n1819849069","n1819849078","n1819849077","n1819848904","n1819848959","n1819849133","n1819849089","n1819849000","n1819849124","n1819849032","n1819849097","n1819848939","n1819849072","n1819848915","n1819849196","n1819848946","n1819849047","n1819849029","n1819849164","n1819848994","n1819849022","n1819858513","n1819849126","n1819849063","n1819848941","n1819849085","n1819848871","n1819848943","n1819849192","n1819858501","n1819849159","n1819858523","n1819848901","n1819849189","n1819858503","n1819849065","n2139877106","n1819848909","n1819848930","n1819848888"]},"w17967397":{"id":"w17967397","version":"2","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:01Z","tags":{"highway":"residential","name":"North Andrews Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Andrews","tiger:name_direction_prefix":"N","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185964963","n185985217"]},"w17964497":{"id":"w17964497","version":"3","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:48:05Z","tags":{"highway":"tertiary","name":"Constantine St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Constantine","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958643","n185958645","n2139795852","n185958647","n185958649","n185958651","n185958653","n185958656","n185958658","n185958660","n185958662","n185958664","n185958666","n185958668","n185958670","n185948710","n185958672"]},"w203974068":{"id":"w203974068","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139870422","n2139870423","n2139870424","n2139870425","n2139870426","n2139870427"]},"w203974063":{"id":"w203974063","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139870398","n2139870399","n2139870400","n2139870401","n2139870398"]},"w203986459":{"id":"w203986459","version":"1","changeset":"14894902","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:02:33Z","tags":{"amenity":"shelter","area":"yes","shelter_type":"picnic_shelter"},"nodes":["n2139989364","n2139989366","n2139989368","n2139989370","n2139989364"]},"w203988286":{"id":"w203988286","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"area":"yes","leisure":"park","name":"Memory Isle Park","website":"http://www.threeriversmi.us/?page_id=53"},"nodes":["n2140006331","n2140006334","n2140006336","n2140006338","n2140006340","n2140006342","n2140006344","n2140006346","n2140006348","n2140006351","n2140006353","n2140006355","n2140006357","n2140006359","n2140006361","n2140006363","n2140006364","n2140006365","n2140006395","n2140006366","n2140006401","n2140006397","n2140006399","n2140006331"]},"w203974073":{"id":"w203974073","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"footway"},"nodes":["n2139870453","n2139870454","n2139870455"]},"w203974064":{"id":"w203974064","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139870402","n2139870403","n2139870404","n2139870405","n2139870402"]},"n185966959":{"id":"n185966959","loc":[-85.642185,41.946411],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:51Z","tags":{}},"n1475283980":{"id":"n1475283980","loc":[-85.6398249,41.9451425],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284013":{"id":"n1475284013","loc":[-85.6396448,41.9451666],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284042":{"id":"n1475284042","loc":[-85.6386382,41.9454789],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n185975925":{"id":"n185975925","loc":[-85.6393332,41.9452388],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185975919":{"id":"n185975919","loc":[-85.6391279,41.9453044],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185975917":{"id":"n185975917","loc":[-85.6389034,41.9453872],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n2140006369":{"id":"n2140006369","loc":[-85.6386163,41.9451631],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006370":{"id":"n2140006370","loc":[-85.6385144,41.9449357],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006417":{"id":"n2140006417","loc":[-85.6385785,41.9450299],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006419":{"id":"n2140006419","loc":[-85.6385781,41.9452152],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2189123361":{"id":"n2189123361","loc":[-85.6404948,41.947015],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123363":{"id":"n2189123363","loc":[-85.6395765,41.946495],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123365":{"id":"n2189123365","loc":[-85.6389347,41.9460875],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n185966962":{"id":"n185966962","loc":[-85.644417,41.946364],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:51Z","tags":{}},"n185975911":{"id":"n185975911","loc":[-85.637532,41.9458276],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185975913":{"id":"n185975913","loc":[-85.6376323,41.9457936],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185975915":{"id":"n185975915","loc":[-85.6383596,41.9455425],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185975932":{"id":"n185975932","loc":[-85.644403,41.945088],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:13Z","tags":{}},"n185975934":{"id":"n185975934","loc":[-85.645486,41.945084],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:13Z","tags":{}},"n185979974":{"id":"n185979974","loc":[-85.644381,41.943831],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:24Z","tags":{}},"n2139795809":{"id":"n2139795809","loc":[-85.6464756,41.9450813],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795810":{"id":"n2139795810","loc":[-85.6466646,41.945174],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139858952":{"id":"n2139858952","loc":[-85.6383567,41.9454039],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:12Z","tags":{}},"n2139858953":{"id":"n2139858953","loc":[-85.6380506,41.9455301],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858954":{"id":"n2139858954","loc":[-85.6377321,41.9455546],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858955":{"id":"n2139858955","loc":[-85.6376571,41.9455245],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858956":{"id":"n2139858956","loc":[-85.6375859,41.9454544],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858957":{"id":"n2139858957","loc":[-85.6376686,41.9453185],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858958":{"id":"n2139858958","loc":[-85.6378936,41.9451712],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858959":{"id":"n2139858959","loc":[-85.6379225,41.9450825],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858960":{"id":"n2139858960","loc":[-85.6379302,41.9447564],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858961":{"id":"n2139858961","loc":[-85.6379763,41.9446963],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858962":{"id":"n2139858962","loc":[-85.6380436,41.9446706],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858963":{"id":"n2139858963","loc":[-85.6381286,41.9445969],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2139858965":{"id":"n2139858965","loc":[-85.6382523,41.9444134],"version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:13Z","tags":{}},"n2140006367":{"id":"n2140006367","loc":[-85.6380923,41.9454418],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006368":{"id":"n2140006368","loc":[-85.6384089,41.9453146],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006372":{"id":"n2140006372","loc":[-85.6383252,41.9447706],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006374":{"id":"n2140006374","loc":[-85.6381033,41.9447436],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006376":{"id":"n2140006376","loc":[-85.6379759,41.9447815],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006378":{"id":"n2140006378","loc":[-85.6379832,41.9448654],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006380":{"id":"n2140006380","loc":[-85.6380632,41.9450738],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006382":{"id":"n2140006382","loc":[-85.6380414,41.9452064],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006389":{"id":"n2140006389","loc":[-85.6379068,41.9453092],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006391":{"id":"n2140006391","loc":[-85.637925,41.9453904],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006393":{"id":"n2140006393","loc":[-85.6379977,41.94545],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2189123275":{"id":"n2189123275","loc":[-85.6371346,41.9462544],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123278":{"id":"n2189123278","loc":[-85.6368371,41.9466153],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123280":{"id":"n2189123280","loc":[-85.6379537,41.9489088],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123282":{"id":"n2189123282","loc":[-85.6383816,41.9497858],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123285":{"id":"n2189123285","loc":[-85.6393673,41.9512417],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123287":{"id":"n2189123287","loc":[-85.640554,41.9517766],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123289":{"id":"n2189123289","loc":[-85.6411,41.9522344],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123291":{"id":"n2189123291","loc":[-85.6417418,41.9526574],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123293":{"id":"n2189123293","loc":[-85.642321,41.9529407],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123295":{"id":"n2189123295","loc":[-85.6427697,41.9532278],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123297":{"id":"n2189123297","loc":[-85.6433332,41.9538254],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123300":{"id":"n2189123300","loc":[-85.6435785,41.9543648],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123301":{"id":"n2189123301","loc":[-85.6444394,41.9541048],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123303":{"id":"n2189123303","loc":[-85.6450603,41.954],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123312":{"id":"n2189123312","loc":[-85.6454829,41.9539108],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123314":{"id":"n2189123314","loc":[-85.6460464,41.9538526],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123315":{"id":"n2189123315","loc":[-85.6463178,41.9537167],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123316":{"id":"n2189123316","loc":[-85.646276,41.9534141],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123317":{"id":"n2189123317","loc":[-85.6459995,41.9531541],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123318":{"id":"n2189123318","loc":[-85.645222,41.9531929],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123319":{"id":"n2189123319","loc":[-85.6447316,41.9531813],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:20Z","tags":{}},"n2189123320":{"id":"n2189123320","loc":[-85.6440637,41.9532977],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123321":{"id":"n2189123321","loc":[-85.6438185,41.9531774],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123322":{"id":"n2189123322","loc":[-85.6440011,41.9528398],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123323":{"id":"n2189123323","loc":[-85.6442672,41.9525914],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123324":{"id":"n2189123324","loc":[-85.6442881,41.9523276],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123326":{"id":"n2189123326","loc":[-85.644262,41.952153],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123328":{"id":"n2189123328","loc":[-85.6441681,41.9520404],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123330":{"id":"n2189123330","loc":[-85.6442098,41.9517494],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123333":{"id":"n2189123333","loc":[-85.6438498,41.9515864],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123336":{"id":"n2189123336","loc":[-85.6435889,41.9513225],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123339":{"id":"n2189123339","loc":[-85.6425349,41.9510315],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123342":{"id":"n2189123342","loc":[-85.6422688,41.9508802],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123345":{"id":"n2189123345","loc":[-85.6418775,41.9508142],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123348":{"id":"n2189123348","loc":[-85.6415488,41.9508064],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123351":{"id":"n2189123351","loc":[-85.6411027,41.9505488],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123353":{"id":"n2189123353","loc":[-85.6410374,41.9498208],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123355":{"id":"n2189123355","loc":[-85.6410061,41.9494327],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123357":{"id":"n2189123357","loc":[-85.6411522,41.9482569],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123359":{"id":"n2189123359","loc":[-85.6410548,41.9473036],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123368":{"id":"n2189123368","loc":[-85.6380216,41.9458974],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123370":{"id":"n2189123370","loc":[-85.6386721,41.9507782],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"w17968193":{"id":"w17968193","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:56:35Z","tags":{"highway":"residential","name":"French St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"French","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312389:15312396","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185970906","n185982877","n185967774","n185985823","n185979974"]},"w203972939":{"id":"w203972939","version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{"highway":"path"},"nodes":["n2139858965","n2139858966"]},"w203988289":{"id":"w203988289","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"area":"yes","natural":"water"},"nodes":["n2140006367","n2140006368","n2140006419","n2140006369","n2140006417","n2140006370","n2140006372","n2140006374","n2140006376","n2140006378","n2140006380","n2140006382","n2140006389","n2140006391","n2140006393","n2140006367"]},"w208640157":{"id":"w208640157","version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{"area":"yes","natural":"wetland"},"nodes":["n1819849029","n2189123275","n2189123278","n2189123280","n2189123282","n2189123370","n2189123285","n2189123287","n2189123289","n2189123291","n2189123293","n2189123295","n2189123297","n2189123300","n2189123301","n2189123303","n2189123312","n2189123314","n2189123315","n2189123316","n2189123317","n2189123318","n2189123319","n2189123320","n2189123321","n2189123322","n2189123323","n2189123324","n2189123326","n2189123328","n2189123330","n2189123333","n2189123336","n2189123339","n2189123342","n2189123345","n2189123348","n2189123351","n2189123353","n2189123355","n2189123357","n2189123359","n2189123361","n2189123363","n2189123365","n2189123368","n1819849029"]},"w17966281":{"id":"w17966281","version":"3","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:48:03Z","tags":{"highway":"residential","name":"Pealer St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Pealer","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312363:15312366:15312367:15312368:15325990:15325991:15324554","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185975911","n185975913","n185975915","n1475284042","n185975917","n185975919","n185975925","n185970909","n1475284013","n1475283980","n185975928","n185967775","n185975930","n185975932","n185975934","n2139795809","n2139795810"]},"w17965353":{"id":"w17965353","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:36:24Z","tags":{"highway":"residential","name":"Yauney St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Yauney","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312346:15312347","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185966958","n185966959","n185966960","n185966962"]},"w203972938":{"id":"w203972938","version":"1","changeset":"14893110","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:29:14Z","tags":{"highway":"path","name":"Riverwalk Trail"},"nodes":["n2139858964","n2139858965","n2139858963","n2139858962","n2139858961","n2139858960","n2139858959","n2139858958","n2139858957","n2139858956","n2139858955","n2139858954","n2139858953","n2139858952","n2139858951"]},"n354002665":{"id":"n354002665","loc":[-85.6366599,41.9444923],"version":"1","changeset":"698464","user":"iandees","uid":"4732","visible":"true","timestamp":"2009-02-28T21:20:26Z","tags":{"ele":"244","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:feature_id":"1624726","gnis:state_id":"26","name":"Memory Isle","place":"island"}},"n354031301":{"id":"n354031301","loc":[-85.635,41.9463889],"version":"1","changeset":"698464","user":"iandees","uid":"4732","visible":"true","timestamp":"2009-02-28T22:12:53Z","tags":{"amenity":"post_office","ele":"248","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2418163","gnis:state_id":"26","name":"Three Rivers Post Office"}},"n185963454":{"id":"n185963454","loc":[-85.633686,41.946072],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:55Z","tags":{}},"n185963455":{"id":"n185963455","loc":[-85.633815,41.946131],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:55Z","tags":{}},"n185963456":{"id":"n185963456","loc":[-85.633951,41.946174],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:55Z","tags":{}},"n185978375":{"id":"n185978375","loc":[-85.634385,41.94559],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:23Z","tags":{}},"n185978377":{"id":"n185978377","loc":[-85.634544,41.945725],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:23Z","tags":{}},"n185978379":{"id":"n185978379","loc":[-85.634573,41.945764],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:23Z","tags":{}},"n185978381":{"id":"n185978381","loc":[-85.634616,41.945849],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:23Z","tags":{}},"n185978383":{"id":"n185978383","loc":[-85.634629,41.945893],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:24Z","tags":{}},"n185984011":{"id":"n185984011","loc":[-85.636058,41.946201],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:46Z","tags":{}},"n185984013":{"id":"n185984013","loc":[-85.636112,41.946366],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:46Z","tags":{}},"n185984015":{"id":"n185984015","loc":[-85.636143,41.946551],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:46Z","tags":{}},"n185988237":{"id":"n185988237","loc":[-85.6354162,41.946044],"version":"3","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:16Z","tags":{}},"n185988969":{"id":"n185988969","loc":[-85.635374,41.945325],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:16Z","tags":{}},"n185988971":{"id":"n185988971","loc":[-85.635643,41.945585],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:16Z","tags":{}},"n185988972":{"id":"n185988972","loc":[-85.635853,41.94586],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:16Z","tags":{}},"n1475283992":{"id":"n1475283992","loc":[-85.6372968,41.9459007],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284011":{"id":"n1475284011","loc":[-85.6359415,41.9459797],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284019":{"id":"n1475284019","loc":[-85.6364433,41.9460423],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n185984009":{"id":"n185984009","loc":[-85.6360524,41.9460485],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185988239":{"id":"n185988239","loc":[-85.6358187,41.9460423],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185988243":{"id":"n185988243","loc":[-85.6366156,41.9460282],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185988244":{"id":"n185988244","loc":[-85.6368316,41.9460046],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185988245":{"id":"n185988245","loc":[-85.6370133,41.9459704],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185988241":{"id":"n185988241","loc":[-85.636291,41.9460461],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185964976":{"id":"n185964976","loc":[-85.633923,41.9434157],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185964980":{"id":"n185964980","loc":[-85.6333656,41.9437293],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185978388":{"id":"n185978388","loc":[-85.6346449,41.9460571],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n1819858504":{"id":"n1819858504","loc":[-85.6365343,41.9447926],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858506":{"id":"n1819858506","loc":[-85.6370546,41.9451882],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858516":{"id":"n1819858516","loc":[-85.6358369,41.9444654],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858519":{"id":"n1819858519","loc":[-85.6361534,41.9446176],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858525":{"id":"n1819858525","loc":[-85.6368025,41.9449442],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858527":{"id":"n1819858527","loc":[-85.6334199,41.9457495],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n185963452":{"id":"n185963452","loc":[-85.633564,41.9458519],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185963453":{"id":"n185963453","loc":[-85.6336152,41.9459804],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:56Z","tags":{}},"n185963451":{"id":"n185963451","loc":[-85.6332888,41.9456871],"version":"3","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:57Z","tags":{}},"n2130304152":{"id":"n2130304152","loc":[-85.6359466,41.9454599],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304153":{"id":"n2130304153","loc":[-85.6362773,41.9452683],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304154":{"id":"n2130304154","loc":[-85.6352028,41.9442868],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304155":{"id":"n2130304155","loc":[-85.6348756,41.9444769],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304156":{"id":"n2130304156","loc":[-85.6349723,41.9444207],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304157":{"id":"n2130304157","loc":[-85.6338698,41.9434443],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304158":{"id":"n2130304158","loc":[-85.635094,41.9451026],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304160":{"id":"n2130304160","loc":[-85.6353716,41.9449322],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304162":{"id":"n2130304162","loc":[-85.6365942,41.9459352],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304163":{"id":"n2130304163","loc":[-85.6369006,41.9457469],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304164":{"id":"n2130304164","loc":[-85.6363292,41.9452278],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2130304165":{"id":"n2130304165","loc":[-85.6360248,41.9454175],"version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{}},"n2139824683":{"id":"n2139824683","loc":[-85.6339825,41.9446441],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:01Z","tags":{}},"n2139824689":{"id":"n2139824689","loc":[-85.6340437,41.9446925],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:01Z","tags":{}},"n2139824702":{"id":"n2139824702","loc":[-85.6340961,41.9447551],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824705":{"id":"n2139824705","loc":[-85.6337467,41.944809],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824707":{"id":"n2139824707","loc":[-85.6341598,41.9448129],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824710":{"id":"n2139824710","loc":[-85.6342771,41.9448223],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824712":{"id":"n2139824712","loc":[-85.6346058,41.944841],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824713":{"id":"n2139824713","loc":[-85.633808,41.9448574],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824714":{"id":"n2139824714","loc":[-85.6340889,41.9448589],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824716":{"id":"n2139824716","loc":[-85.6343335,41.944871],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824717":{"id":"n2139824717","loc":[-85.6343341,41.9448717],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824720":{"id":"n2139824720","loc":[-85.6338757,41.9449069],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824721":{"id":"n2139824721","loc":[-85.6341445,41.9449071],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824724":{"id":"n2139824724","loc":[-85.6334787,41.9449262],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824726":{"id":"n2139824726","loc":[-85.6347119,41.9449332],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824727":{"id":"n2139824727","loc":[-85.6347175,41.9449418],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824728":{"id":"n2139824728","loc":[-85.6344284,41.9449538],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824729":{"id":"n2139824729","loc":[-85.6339339,41.9449573],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824730":{"id":"n2139824730","loc":[-85.6339179,41.9449682],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824732":{"id":"n2139824732","loc":[-85.6335472,41.9449895],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824733":{"id":"n2139824733","loc":[-85.6339736,41.9450164],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824735":{"id":"n2139824735","loc":[-85.6336034,41.9450415],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824736":{"id":"n2139824736","loc":[-85.6348317,41.945043],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824737":{"id":"n2139824737","loc":[-85.63403,41.9450651],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824738":{"id":"n2139824738","loc":[-85.6336611,41.9450949],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824740":{"id":"n2139824740","loc":[-85.6336582,41.9450966],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824744":{"id":"n2139824744","loc":[-85.6331702,41.9451107],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824745":{"id":"n2139824745","loc":[-85.6333388,41.9451142],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824746":{"id":"n2139824746","loc":[-85.6337131,41.9451341],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824747":{"id":"n2139824747","loc":[-85.6337021,41.9451372],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824748":{"id":"n2139824748","loc":[-85.6341244,41.9451472],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824749":{"id":"n2139824749","loc":[-85.6333952,41.945166],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:02Z","tags":{}},"n2139824750":{"id":"n2139824750","loc":[-85.633395,41.9451661],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824751":{"id":"n2139824751","loc":[-85.6346258,41.9451725],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824752":{"id":"n2139824752","loc":[-85.6332387,41.9451741],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824753":{"id":"n2139824753","loc":[-85.6346901,41.9451853],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824754":{"id":"n2139824754","loc":[-85.6346611,41.9452035],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824755":{"id":"n2139824755","loc":[-85.6346574,41.9452059],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824756":{"id":"n2139824756","loc":[-85.6345611,41.9452133],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824757":{"id":"n2139824757","loc":[-85.633453,41.9452194],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824758":{"id":"n2139824758","loc":[-85.6335508,41.9452283],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824759":{"id":"n2139824759","loc":[-85.6347424,41.9452312],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824760":{"id":"n2139824760","loc":[-85.6342305,41.9452395],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824761":{"id":"n2139824761","loc":[-85.6342319,41.9452449],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824762":{"id":"n2139824762","loc":[-85.6334969,41.94526],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824763":{"id":"n2139824763","loc":[-85.63468,41.9452706],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824764":{"id":"n2139824764","loc":[-85.6346772,41.9452724],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824765":{"id":"n2139824765","loc":[-85.6338611,41.9452763],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824766":{"id":"n2139824766","loc":[-85.6347811,41.9452939],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824767":{"id":"n2139824767","loc":[-85.6347375,41.9453211],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824768":{"id":"n2139824768","loc":[-85.6339171,41.9453301],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824769":{"id":"n2139824769","loc":[-85.6348307,41.9453377],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824770":{"id":"n2139824770","loc":[-85.6347067,41.9453405],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824771":{"id":"n2139824771","loc":[-85.6343461,41.9453461],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824772":{"id":"n2139824772","loc":[-85.6343481,41.9453475],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824773":{"id":"n2139824773","loc":[-85.634805,41.9453538],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824774":{"id":"n2139824774","loc":[-85.6336997,41.9453692],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824775":{"id":"n2139824775","loc":[-85.6339709,41.9453818],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824776":{"id":"n2139824776","loc":[-85.6336229,41.9454134],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824777":{"id":"n2139824777","loc":[-85.6349022,41.9454141],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824778":{"id":"n2139824778","loc":[-85.6348854,41.9454246],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824779":{"id":"n2139824779","loc":[-85.6340286,41.9454373],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824780":{"id":"n2139824780","loc":[-85.6336963,41.9454572],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824781":{"id":"n2139824781","loc":[-85.6336789,41.9454672],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824782":{"id":"n2139824782","loc":[-85.6344933,41.945475],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824783":{"id":"n2139824783","loc":[-85.6340854,41.9454918],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824784":{"id":"n2139824784","loc":[-85.6350036,41.9455034],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824785":{"id":"n2139824785","loc":[-85.6337501,41.9455089],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824786":{"id":"n2139824786","loc":[-85.6337497,41.9455091],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824787":{"id":"n2139824787","loc":[-85.6345425,41.9455186],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824788":{"id":"n2139824788","loc":[-85.6341459,41.9455372],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824789":{"id":"n2139824789","loc":[-85.6341376,41.945542],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824790":{"id":"n2139824790","loc":[-85.6338394,41.9455462],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824791":{"id":"n2139824791","loc":[-85.6349171,41.9455588],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824792":{"id":"n2139824792","loc":[-85.6338074,41.9455646],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824793":{"id":"n2139824793","loc":[-85.6346229,41.9455894],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824794":{"id":"n2139824794","loc":[-85.6338983,41.9455995],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824795":{"id":"n2139824795","loc":[-85.6338962,41.9456007],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824796":{"id":"n2139824796","loc":[-85.6342475,41.9456348],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824797":{"id":"n2139824797","loc":[-85.6339505,41.9456497],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824798":{"id":"n2139824798","loc":[-85.6347243,41.9456788],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824799":{"id":"n2139824799","loc":[-85.635057,41.9456831],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824800":{"id":"n2139824800","loc":[-85.635287,41.9457056],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824801":{"id":"n2139824801","loc":[-85.6350753,41.9457068],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:03Z","tags":{}},"n2139824802":{"id":"n2139824802","loc":[-85.6347753,41.9457252],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824803":{"id":"n2139824803","loc":[-85.6340521,41.9457473],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824804":{"id":"n2139824804","loc":[-85.6352875,41.9457611],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824805":{"id":"n2139824805","loc":[-85.6352941,41.9457611],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824806":{"id":"n2139824806","loc":[-85.6350758,41.9457623],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824807":{"id":"n2139824807","loc":[-85.6348194,41.9457638],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824808":{"id":"n2139824808","loc":[-85.635296,41.9459428],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139824809":{"id":"n2139824809","loc":[-85.6348212,41.9459455],"version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{}},"n2139832635":{"id":"n2139832635","loc":[-85.6354612,41.9448791],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832636":{"id":"n2139832636","loc":[-85.6360241,41.9453844],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832637":{"id":"n2139832637","loc":[-85.6361452,41.9453121],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832639":{"id":"n2139832639","loc":[-85.6355997,41.944797],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832641":{"id":"n2139832641","loc":[-85.6351346,41.9443541],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832647":{"id":"n2139832647","loc":[-85.6329883,41.9453692],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832653":{"id":"n2139832653","loc":[-85.6333643,41.9456293],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832663":{"id":"n2139832663","loc":[-85.6335394,41.9455339],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832665":{"id":"n2139832665","loc":[-85.6332375,41.9452476],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832667":{"id":"n2139832667","loc":[-85.6331664,41.9452161],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832669":{"id":"n2139832669","loc":[-85.6331144,41.9451875],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832671":{"id":"n2139832671","loc":[-85.6330779,41.9451274],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832673":{"id":"n2139832673","loc":[-85.6330664,41.9450802],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832678":{"id":"n2139832678","loc":[-85.6332218,41.9453585],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832686":{"id":"n2139832686","loc":[-85.6334246,41.945541],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832691":{"id":"n2139832691","loc":[-85.6329898,41.9454997],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832693":{"id":"n2139832693","loc":[-85.6343554,41.9443274],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832694":{"id":"n2139832694","loc":[-85.6336339,41.9437089],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832696":{"id":"n2139832696","loc":[-85.633532,41.9437708],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832697":{"id":"n2139832697","loc":[-85.6338316,41.9440868],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832698":{"id":"n2139832698","loc":[-85.6342258,41.9444141],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832699":{"id":"n2139832699","loc":[-85.6339164,41.9442166],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832700":{"id":"n2139832700","loc":[-85.6341389,41.944384],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832701":{"id":"n2139832701","loc":[-85.634235,41.9443259],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832702":{"id":"n2139832702","loc":[-85.633613,41.9437875],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832703":{"id":"n2139832703","loc":[-85.633915,41.9436132],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832704":{"id":"n2139832704","loc":[-85.6340019,41.9435613],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832706":{"id":"n2139832706","loc":[-85.6343197,41.9438427],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832708":{"id":"n2139832708","loc":[-85.6342361,41.9438936],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832709":{"id":"n2139832709","loc":[-85.6353839,41.9460401],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832710":{"id":"n2139832710","loc":[-85.6354032,41.9456763],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832711":{"id":"n2139832711","loc":[-85.6356839,41.9459252],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832712":{"id":"n2139832712","loc":[-85.6356109,41.945735],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832713":{"id":"n2139832713","loc":[-85.6353997,41.9457421],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832714":{"id":"n2139832714","loc":[-85.6353895,41.9459347],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832715":{"id":"n2139832715","loc":[-85.6334777,41.9436628],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832716":{"id":"n2139832716","loc":[-85.6333137,41.9435382],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832717":{"id":"n2139832717","loc":[-85.6330938,41.9435406],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832721":{"id":"n2139832721","loc":[-85.6333023,41.9434922],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832722":{"id":"n2139832722","loc":[-85.6330466,41.943623],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832723":{"id":"n2139832723","loc":[-85.6332746,41.9435624],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832724":{"id":"n2139832724","loc":[-85.6333511,41.9435176],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832725":{"id":"n2139832725","loc":[-85.6332241,41.9434001],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832726":{"id":"n2139832726","loc":[-85.6332355,41.9433686],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139870373":{"id":"n2139870373","loc":[-85.6351783,41.9439117],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870374":{"id":"n2139870374","loc":[-85.6351431,41.9439217],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870375":{"id":"n2139870375","loc":[-85.6348853,41.9439117],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870376":{"id":"n2139870376","loc":[-85.6348317,41.9439105],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870377":{"id":"n2139870377","loc":[-85.6346384,41.944007],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2139870378":{"id":"n2139870378","loc":[-85.6345563,41.9440523],"version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:00Z","tags":{}},"n2140006403":{"id":"n2140006403","loc":[-85.6359942,41.9450097],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006405":{"id":"n2140006405","loc":[-85.6363884,41.9446079],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006407":{"id":"n2140006407","loc":[-85.6362148,41.9447874],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006409":{"id":"n2140006409","loc":[-85.6379476,41.9445869],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006411":{"id":"n2140006411","loc":[-85.6378485,41.9445674],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006413":{"id":"n2140006413","loc":[-85.6378952,41.9444547],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006415":{"id":"n2140006415","loc":[-85.6379962,41.944477],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006421":{"id":"n2140006421","loc":[-85.6355248,41.9433702],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:24Z","tags":{}},"n2140006423":{"id":"n2140006423","loc":[-85.6378471,41.9439233],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006425":{"id":"n2140006425","loc":[-85.6378913,41.9441238],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006426":{"id":"n2140006426","loc":[-85.6381674,41.9442289],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006427":{"id":"n2140006427","loc":[-85.6382359,41.9440975],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006428":{"id":"n2140006428","loc":[-85.6382071,41.9440252],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006429":{"id":"n2140006429","loc":[-85.6381409,41.9439973],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006430":{"id":"n2140006430","loc":[-85.6380569,41.9440153],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006433":{"id":"n2140006433","loc":[-85.6379071,41.9442467],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006435":{"id":"n2140006435","loc":[-85.6381634,41.9443125],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006436":{"id":"n2140006436","loc":[-85.6382407,41.944301],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006438":{"id":"n2140006438","loc":[-85.6382761,41.9442188],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006439":{"id":"n2140006439","loc":[-85.6382429,41.9441761],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006440":{"id":"n2140006440","loc":[-85.6382016,41.9441632],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2140006441":{"id":"n2140006441","loc":[-85.6378185,41.9439835],"version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{}},"n2166205688":{"id":"n2166205688","loc":[-85.6349963,41.9444392],"version":"1","changeset":"15117845","user":"rolandg","uid":"8703","visible":"true","timestamp":"2013-02-21T23:02:38Z","tags":{}},"n2168544780":{"id":"n2168544780","loc":[-85.633944,41.945807],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544781":{"id":"n2168544781","loc":[-85.6340783,41.9458621],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544782":{"id":"n2168544782","loc":[-85.6338184,41.9457548],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544783":{"id":"n2168544783","loc":[-85.6339925,41.9459777],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544784":{"id":"n2168544784","loc":[-85.6337317,41.9458698],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544785":{"id":"n2168544785","loc":[-85.6337297,41.9460042],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544786":{"id":"n2168544786","loc":[-85.633919,41.9460797],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544787":{"id":"n2168544787","loc":[-85.6338672,41.9459263],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544788":{"id":"n2168544788","loc":[-85.6338246,41.9459853],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544789":{"id":"n2168544789","loc":[-85.6337615,41.9459601],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544790":{"id":"n2168544790","loc":[-85.6342079,41.9460399],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544791":{"id":"n2168544791","loc":[-85.6343346,41.9458503],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544792":{"id":"n2168544792","loc":[-85.6343759,41.9458116],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544793":{"id":"n2168544793","loc":[-85.6344394,41.9458109],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544795":{"id":"n2168544795","loc":[-85.6344827,41.945851],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544797":{"id":"n2168544797","loc":[-85.6344807,41.945969],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544798":{"id":"n2168544798","loc":[-85.6344404,41.9459697],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544799":{"id":"n2168544799","loc":[-85.6344413,41.9460333],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544800":{"id":"n2168544800","loc":[-85.6342173,41.9460705],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544801":{"id":"n2168544801","loc":[-85.6342162,41.9460392],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544802":{"id":"n2168544802","loc":[-85.6344251,41.9460351],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544805":{"id":"n2168544805","loc":[-85.6344257,41.9460507],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544807":{"id":"n2168544807","loc":[-85.6344721,41.9460498],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544809":{"id":"n2168544809","loc":[-85.6344754,41.9461427],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544811":{"id":"n2168544811","loc":[-85.6344311,41.9461435],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544813":{"id":"n2168544813","loc":[-85.6344317,41.9461592],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544815":{"id":"n2168544815","loc":[-85.6343708,41.9461604],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544817":{"id":"n2168544817","loc":[-85.6343715,41.9461786],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544819":{"id":"n2168544819","loc":[-85.6343229,41.9461795],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544821":{"id":"n2168544821","loc":[-85.6343222,41.9461606],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544823":{"id":"n2168544823","loc":[-85.6342476,41.9461621],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544825":{"id":"n2168544825","loc":[-85.6342444,41.94607],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544827":{"id":"n2168544827","loc":[-85.634138,41.9461632],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544829":{"id":"n2168544829","loc":[-85.6342016,41.9460703],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544830":{"id":"n2168544830","loc":[-85.6332929,41.9463092],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544831":{"id":"n2168544831","loc":[-85.633122,41.946239],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544832":{"id":"n2168544832","loc":[-85.6332954,41.9460055],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544833":{"id":"n2168544833","loc":[-85.6333954,41.9460466],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544834":{"id":"n2168544834","loc":[-85.6334044,41.9460345],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544835":{"id":"n2168544835","loc":[-85.6334594,41.9460571],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544836":{"id":"n2168544836","loc":[-85.6333871,41.9461544],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544837":{"id":"n2168544837","loc":[-85.633403,41.9461609],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544838":{"id":"n2168544838","loc":[-85.6341683,41.9464167],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544839":{"id":"n2168544839","loc":[-85.6341711,41.9463411],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544840":{"id":"n2168544840","loc":[-85.6344471,41.9463469],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544841":{"id":"n2168544841","loc":[-85.6344441,41.9464243],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544842":{"id":"n2168544842","loc":[-85.6343622,41.9464226],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544843":{"id":"n2168544843","loc":[-85.6343593,41.9464989],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544844":{"id":"n2168544844","loc":[-85.6342812,41.9464973],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544845":{"id":"n2168544845","loc":[-85.634283,41.9464504],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544846":{"id":"n2168544846","loc":[-85.6342609,41.9464499],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544847":{"id":"n2168544847","loc":[-85.6342621,41.9464187],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544848":{"id":"n2168544848","loc":[-85.6348414,41.9463396],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544849":{"id":"n2168544849","loc":[-85.6348387,41.9461872],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544850":{"id":"n2168544850","loc":[-85.6351186,41.9461844],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544851":{"id":"n2168544851","loc":[-85.635119,41.9462112],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544852":{"id":"n2168544852","loc":[-85.6351918,41.9462104],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544853":{"id":"n2168544853","loc":[-85.6351944,41.9463515],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544854":{"id":"n2168544854","loc":[-85.6351049,41.9463524],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2168544855":{"id":"n2168544855","loc":[-85.6351046,41.946337],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{}},"n2189153180":{"id":"n2189153180","loc":[-85.6340369,41.9469572],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153181":{"id":"n2189153181","loc":[-85.6342531,41.946953],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153183":{"id":"n2189153183","loc":[-85.6348115,41.9465468],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153184":{"id":"n2189153184","loc":[-85.6348105,41.9464569],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153185":{"id":"n2189153185","loc":[-85.6351431,41.9464549],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153186":{"id":"n2189153186","loc":[-85.6351441,41.9465448],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153187":{"id":"n2189153187","loc":[-85.6350077,41.9465456],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153188":{"id":"n2189153188","loc":[-85.635008,41.9465721],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153189":{"id":"n2189153189","loc":[-85.6348965,41.9465727],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153190":{"id":"n2189153190","loc":[-85.6348962,41.9465463],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153191":{"id":"n2189153191","loc":[-85.6348963,41.9471586],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153192":{"id":"n2189153192","loc":[-85.6348944,41.947032],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153193":{"id":"n2189153193","loc":[-85.6350241,41.947031],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153194":{"id":"n2189153194","loc":[-85.635026,41.9471575],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153195":{"id":"n2189153195","loc":[-85.6352328,41.9471053],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153196":{"id":"n2189153196","loc":[-85.6352359,41.9469906],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153197":{"id":"n2189153197","loc":[-85.6353694,41.9469925],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153198":{"id":"n2189153198","loc":[-85.6353664,41.9471072],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153199":{"id":"n2189153199","loc":[-85.6348241,41.9469287],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153200":{"id":"n2189153200","loc":[-85.6348248,41.9468185],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153201":{"id":"n2189153201","loc":[-85.6351199,41.9468195],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153202":{"id":"n2189153202","loc":[-85.6351192,41.9469298],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153203":{"id":"n2189153203","loc":[-85.6347965,41.9468057],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153204":{"id":"n2189153204","loc":[-85.634792,41.9466044],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153205":{"id":"n2189153205","loc":[-85.6349483,41.9466025],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153206":{"id":"n2189153206","loc":[-85.6349493,41.9466448],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153207":{"id":"n2189153207","loc":[-85.6349753,41.9466445],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153208":{"id":"n2189153208","loc":[-85.6349743,41.9465995],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153209":{"id":"n2189153209","loc":[-85.6351173,41.9465977],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153210":{"id":"n2189153210","loc":[-85.6351219,41.9468015],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153211":{"id":"n2189153211","loc":[-85.6349806,41.9468032],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153212":{"id":"n2189153212","loc":[-85.6349794,41.9467519],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153213":{"id":"n2189153213","loc":[-85.6349521,41.9467523],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153214":{"id":"n2189153214","loc":[-85.6349532,41.9468037],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153215":{"id":"n2189153215","loc":[-85.6346302,41.9468381],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153216":{"id":"n2189153216","loc":[-85.6343028,41.9468449],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153217":{"id":"n2189153217","loc":[-85.6342006,41.9468297],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153218":{"id":"n2189153218","loc":[-85.6336698,41.9465918],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153219":{"id":"n2189153219","loc":[-85.6344663,41.9466639],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153220":{"id":"n2189153220","loc":[-85.6344639,41.9466015],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153221":{"id":"n2189153221","loc":[-85.6342283,41.9466065],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153222":{"id":"n2189153222","loc":[-85.6342303,41.9466587],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153223":{"id":"n2189153223","loc":[-85.6342843,41.9466575],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153224":{"id":"n2189153224","loc":[-85.6342851,41.9466794],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153225":{"id":"n2189153225","loc":[-85.6343475,41.9466781],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153226":{"id":"n2189153226","loc":[-85.634347,41.9466664],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153227":{"id":"n2189153227","loc":[-85.6354428,41.9470148],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153228":{"id":"n2189153228","loc":[-85.6354432,41.9468005],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153229":{"id":"n2189153229","loc":[-85.6360277,41.9468011],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153230":{"id":"n2189153230","loc":[-85.6360273,41.9470154],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153231":{"id":"n2189153231","loc":[-85.6354565,41.9465823],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153232":{"id":"n2189153232","loc":[-85.6354496,41.946218],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153233":{"id":"n2189153233","loc":[-85.6356355,41.9465788],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153234":{"id":"n2189153234","loc":[-85.6357155,41.9468008],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153235":{"id":"n2189153235","loc":[-85.6359539,41.9467969],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153236":{"id":"n2189153236","loc":[-85.6359561,41.9463036],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153237":{"id":"n2189153237","loc":[-85.6360129,41.9464793],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153238":{"id":"n2189153238","loc":[-85.6360152,41.9463898],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153239":{"id":"n2189153239","loc":[-85.6359607,41.9464928],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153240":{"id":"n2189153240","loc":[-85.6356903,41.9462227],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153242":{"id":"n2189153242","loc":[-85.6354163,41.946142],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153243":{"id":"n2189153243","loc":[-85.6357546,41.9462214],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153244":{"id":"n2189153244","loc":[-85.6357937,41.9462542],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153245":{"id":"n2189153245","loc":[-85.6358723,41.9467048],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153246":{"id":"n2189153246","loc":[-85.6361494,41.946757],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153247":{"id":"n2189153247","loc":[-85.6354173,41.9469082],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153248":{"id":"n2189153248","loc":[-85.635443,41.9469079],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153249":{"id":"n2189153249","loc":[-85.6360275,41.9469093],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153250":{"id":"n2189153250","loc":[-85.6361542,41.946915],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153251":{"id":"n2189153251","loc":[-85.6358654,41.9464843],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153252":{"id":"n2189153252","loc":[-85.6359549,41.9467499],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153253":{"id":"n2189153253","loc":[-85.6357172,41.9466335],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153254":{"id":"n2189153254","loc":[-85.6355644,41.9461768],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153255":{"id":"n2189153255","loc":[-85.6355655,41.946528],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153256":{"id":"n2189153256","loc":[-85.6357055,41.9465971],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153257":{"id":"n2189153257","loc":[-85.635869,41.9465971],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153259":{"id":"n2189153259","loc":[-85.6354561,41.9470278],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153260":{"id":"n2189153260","loc":[-85.6357961,41.9470233],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153261":{"id":"n2189153261","loc":[-85.6357977,41.9470907],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153262":{"id":"n2189153262","loc":[-85.6357297,41.9470916],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153263":{"id":"n2189153263","loc":[-85.635733,41.947233],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153264":{"id":"n2189153264","loc":[-85.6362674,41.9468637],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153265":{"id":"n2189153265","loc":[-85.6362646,41.9467047],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153266":{"id":"n2189153266","loc":[-85.6363267,41.9467047],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153267":{"id":"n2189153267","loc":[-85.6362633,41.9465848],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153268":{"id":"n2189153268","loc":[-85.6363805,41.9465468],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153269":{"id":"n2189153269","loc":[-85.6364604,41.9466842],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153270":{"id":"n2189153270","loc":[-85.6364604,41.9468647],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2199109756":{"id":"n2199109756","loc":[-85.6337134,41.9471841],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109757":{"id":"n2199109757","loc":[-85.6336514,41.94716],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109758":{"id":"n2199109758","loc":[-85.6337043,41.9470847],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109759":{"id":"n2199109759","loc":[-85.6335997,41.9470441],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109760":{"id":"n2199109760","loc":[-85.6335064,41.9471771],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n185960195":{"id":"n185960195","loc":[-85.6295992,41.9524346],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185960796":{"id":"n185960796","loc":[-85.634723,41.953681],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:24Z","tags":{}},"n185961396":{"id":"n185961396","loc":[-85.634767,41.959009],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:39Z","tags":{}},"n185962625":{"id":"n185962625","loc":[-85.635175,41.97201],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:29Z","tags":{}},"n185964982":{"id":"n185964982","loc":[-85.632799,41.9440543],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185965289":{"id":"n185965289","loc":[-85.634621,41.947323],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:49Z","tags":{}},"n185965291":{"id":"n185965291","loc":[-85.636166,41.947296],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:49Z","tags":{}},"n185965399":{"id":"n185965399","loc":[-85.634776,41.959834],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:52Z","tags":{}},"n185966937":{"id":"n185966937","loc":[-85.633183,41.947315],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185966948":{"id":"n185966948","loc":[-85.626406,41.957188],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185967422":{"id":"n185967422","loc":[-85.6320229,41.9490123],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185967917":{"id":"n185967917","loc":[-85.634763,41.958292],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:17Z","tags":{}},"n185967918":{"id":"n185967918","loc":[-85.636271,41.958311],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:17Z","tags":{}},"n185968100":{"id":"n185968100","loc":[-85.630835,41.950656],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185970515":{"id":"n185970515","loc":[-85.634832,41.963866],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:41Z","tags":{}},"n185971578":{"id":"n185971578","loc":[-85.634641,41.948627],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:05Z","tags":{}},"n185971580":{"id":"n185971580","loc":[-85.6361818,41.9486135],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185971631":{"id":"n185971631","loc":[-85.634729,41.954667],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:06Z","tags":{}},"n185971632":{"id":"n185971632","loc":[-85.636236,41.954656],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:06Z","tags":{}},"n185972155":{"id":"n185972155","loc":[-85.623333,41.961987],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185974583":{"id":"n185974583","loc":[-85.634686,41.951158],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:21Z","tags":{}},"n185974585":{"id":"n185974585","loc":[-85.6362059,41.9511457],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185975064":{"id":"n185975064","loc":[-85.636218,41.953667],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:49Z","tags":{}},"n185975735":{"id":"n185975735","loc":[-85.634923,41.969269],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:09Z","tags":{}},"n185978390":{"id":"n185978390","loc":[-85.634668,41.949875],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:24Z","tags":{}},"n185978392":{"id":"n185978392","loc":[-85.634686,41.952415],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:24Z","tags":{}},"n185978394":{"id":"n185978394","loc":[-85.634726,41.955921],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:24Z","tags":{}},"n185978399":{"id":"n185978399","loc":[-85.6347861,41.9606613],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185978402":{"id":"n185978402","loc":[-85.634806,41.961485],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:24Z","tags":{}},"n185978406":{"id":"n185978406","loc":[-85.6348298,41.964783],"version":"3","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:48:00Z","tags":{}},"n185978410":{"id":"n185978410","loc":[-85.6348766,41.9677088],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185978414":{"id":"n185978414","loc":[-85.634938,41.971566],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:25Z","tags":{}},"n185978415":{"id":"n185978415","loc":[-85.634942,41.971611],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:25Z","tags":{}},"n185978417":{"id":"n185978417","loc":[-85.634952,41.971655],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:25Z","tags":{}},"n185978419":{"id":"n185978419","loc":[-85.634989,41.971741],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:25Z","tags":{}},"n185978420":{"id":"n185978420","loc":[-85.635063,41.971864],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:25Z","tags":{}},"n185978787":{"id":"n185978787","loc":[-85.627936,41.954693],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185978790":{"id":"n185978790","loc":[-85.626832,41.954677],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185978967":{"id":"n185978967","loc":[-85.632278,41.948613],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:39Z","tags":{}},"n185980735":{"id":"n185980735","loc":[-85.628639,41.953725],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:47Z","tags":{}},"n185982163":{"id":"n185982163","loc":[-85.636233,41.952398],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:31Z","tags":{}},"n185982193":{"id":"n185982193","loc":[-85.6313855,41.9499125],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185982195":{"id":"n185982195","loc":[-85.6304857,41.9511945],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185982196":{"id":"n185982196","loc":[-85.626336,41.957291],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:32Z","tags":{}},"n185982197":{"id":"n185982197","loc":[-85.625578,41.958664],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:32Z","tags":{}},"n185982198":{"id":"n185982198","loc":[-85.624619,41.960145],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:32Z","tags":{}},"n185982200":{"id":"n185982200","loc":[-85.624494,41.960338],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:32Z","tags":{}},"n185984017":{"id":"n185984017","loc":[-85.636163,41.947382],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:46Z","tags":{}},"n185984020":{"id":"n185984020","loc":[-85.636188,41.9498803],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185984022":{"id":"n185984022","loc":[-85.636276,41.955919],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:47Z","tags":{}},"n185984024":{"id":"n185984024","loc":[-85.636279,41.956901],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:47Z","tags":{}},"n185988036":{"id":"n185988036","loc":[-85.631422,41.948294],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:30Z","tags":{}},"n185988867":{"id":"n185988867","loc":[-85.63102,41.948805],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988869":{"id":"n185988869","loc":[-85.630773,41.949209],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988871":{"id":"n185988871","loc":[-85.63005,41.95016],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988872":{"id":"n185988872","loc":[-85.629423,41.951016],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988873":{"id":"n185988873","loc":[-85.629252,41.951256],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988875":{"id":"n185988875","loc":[-85.629126,41.951489],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988877":{"id":"n185988877","loc":[-85.628991,41.951704],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988878":{"id":"n185988878","loc":[-85.628689,41.952112],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988879":{"id":"n185988879","loc":[-85.628313,41.952666],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988880":{"id":"n185988880","loc":[-85.627687,41.953529],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988882":{"id":"n185988882","loc":[-85.627394,41.953947],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:13Z","tags":{}},"n185988884":{"id":"n185988884","loc":[-85.627287,41.954128],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:14Z","tags":{}},"n1819858502":{"id":"n1819858502","loc":[-85.6328435,41.9455473],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858510":{"id":"n1819858510","loc":[-85.6324841,41.9453438],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858515":{"id":"n1819858515","loc":[-85.6318511,41.9446409],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858520":{"id":"n1819858520","loc":[-85.6326558,41.9454708],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:54Z","tags":{}},"n1819858522":{"id":"n1819858522","loc":[-85.6319048,41.9447407],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858524":{"id":"n1819858524","loc":[-85.6317718,41.9443666],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n1819858530":{"id":"n1819858530","loc":[-85.632055,41.9449128],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n2139795768":{"id":"n2139795768","loc":[-85.6243023,41.9606102],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139832645":{"id":"n2139832645","loc":[-85.6324455,41.9448607],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832649":{"id":"n2139832649","loc":[-85.6328043,41.9454773],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832651":{"id":"n2139832651","loc":[-85.6322547,41.9449621],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832675":{"id":"n2139832675","loc":[-85.6327356,41.944757],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832677":{"id":"n2139832677","loc":[-85.6325433,41.9448599],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832680":{"id":"n2139832680","loc":[-85.6328885,41.9455614],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832682":{"id":"n2139832682","loc":[-85.6320913,41.9449492],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832684":{"id":"n2139832684","loc":[-85.6325366,41.9447133],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832688":{"id":"n2139832688","loc":[-85.6322786,41.94485],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:49Z","tags":{}},"n2139832718":{"id":"n2139832718","loc":[-85.6327486,41.9432475],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832719":{"id":"n2139832719","loc":[-85.6327926,41.9431773],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832720":{"id":"n2139832720","loc":[-85.6329033,41.943153],"version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{}},"n2139832727":{"id":"n2139832727","loc":[-85.6328975,41.9430783],"version":"2","changeset":"14892929","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:11:47Z","tags":{}},"n2139844839":{"id":"n2139844839","loc":[-85.6326261,41.9432308],"version":"1","changeset":"14892929","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:11:47Z","tags":{}},"n2189015992":{"id":"n2189015992","loc":[-85.6347706,41.9593383],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189153179":{"id":"n2189153179","loc":[-85.6340476,41.9472565],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153182":{"id":"n2189153182","loc":[-85.6342638,41.9472522],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:10Z","tags":{}},"n2189153241":{"id":"n2189153241","loc":[-85.6354184,41.9473091],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153258":{"id":"n2189153258","loc":[-85.6354611,41.9472366],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153277":{"id":"n2189153277","loc":[-85.6328948,41.9462374],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2199109755":{"id":"n2199109755","loc":[-85.6336729,41.9472417],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"w203970139":{"id":"w203970139","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824793","n2139824787","n2139824773","n2139824778","n2139824793"]},"w203970098":{"id":"w203970098","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824748","n2139824712","n2139824726","n2139824760","n2139824748"]},"w208643132":{"id":"w208643132","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:14Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153195","n2189153196","n2189153197","n2189153198","n2189153195"]},"w203970094":{"id":"w203970094","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824755","n2139824753","n2139824759","n2139824764","n2139824763","n2139824767","n2139824770","n2139824782","n2139824772","n2139824756","n2139824751","n2139824754","n2139824755"]},"w208643138":{"id":"w208643138","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153231","n2189153232","n2189153240","n2189153244","n2189153236","n2189153238","n2189153237","n2189153239","n2189153252","n2189153235","n2189153234","n2189153253","n2189153233","n2189153231"]},"w203970125":{"id":"w203970125","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824735","n2139824738","n2139824757","n2139824749","n2139824735"]},"w170848823":{"id":"w170848823","version":"2","changeset":"14893390","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:53:39Z","tags":{"name":"Rocky River","source":"Bing","waterway":"river"},"nodes":["n1819849189","n1819858516","n1819858519","n1819858504","n1819858525","n1819858506","n1819858513"]},"w203970898":{"id":"w203970898","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832645","n2139832647","n2139832649","n2139832651","n2139832645"]},"w203970134":{"id":"w203970134","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824796","n2139824803","n2139824797","n2139824788","n2139824796"]},"w203970104":{"id":"w203970104","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824733","n2139824730","n2139824714","n2139824721","n2139824733"]},"w206805245":{"id":"w206805245","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544780","n2168544781","n2139824796","n2139824803","n2168544780"]},"w206805252":{"id":"w206805252","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544838","n2168544839","n2168544840","n2168544841","n2168544842","n2168544843","n2168544844","n2168544845","n2168544846","n2168544847","n2168544838"]},"w203970099":{"id":"w203970099","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824783","n2139824795","n2139824790","n2139824779","n2139824783"]},"w17967730":{"id":"w17967730","version":"2","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:18Z","tags":{"highway":"residential","name":"Water St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Water","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185963451","n2189153277","n185988036","n185988867","n185988869","n185988871","n185988872","n185988873","n185988875","n185988877","n185988878","n185988879","n185988880","n185988882","n185988884","n185978790"]},"w208643133":{"id":"w208643133","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:14Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153199","n2189153200","n2189153201","n2189153202","n2189153199"]},"w203970127":{"id":"w203970127","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824794","n2139824783","n2139824789","n2139824797","n2139824794"]},"w208643139":{"id":"w208643139","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"highway":"service"},"nodes":["n185988237","n2189153242","n2189153247","n2189153241"]},"w203988297":{"id":"w203988297","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2140006423","n2140006441","n2140006425","n2140006426","n2140006440","n2140006427","n2140006428","n2140006429","n2140006430","n2140006423"]},"w206805250":{"id":"w206805250","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544827","n2168544823","n2168544825","n2168544800","n2168544829","n2168544827"]},"w208643140":{"id":"w208643140","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153242","n2189153254","n2189153243","n2189153244","n2189153251","n2189153257","n2189153245","n2189153252","n2189153246"]},"w203974055":{"id":"w203974055","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"bridge":"yes","highway":"path","name":"Riverwalk Trail"},"nodes":["n2139870376","n2139870377"]},"w206805247":{"id":"w206805247","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544785","n2168544786","n2168544783","n2168544787","n2168544788","n2168544789","n2168544785"]},"w17964996":{"id":"w17964996","version":"3","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:51Z","tags":{"highway":"residential","name":"Foster St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Foster","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312360","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n1819858524","n1819858515","n1819858522","n1819858530","n2139832682","n1819858510","n1819858520","n1819858502","n2139832680","n185963451","n1819858527","n185963452","n185963453","n185963454","n185963455","n185963456"]},"w208643144":{"id":"w208643144","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153264","n2189153265","n2189153266","n2189153267","n2189153268","n2189153269","n2189153270","n2189153264"]},"w203970914":{"id":"w203970914","version":"2","changeset":"14892929","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:11:47Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832722","n2139832723","n2139832724","n2139832725","n2139832726","n2139832727","n2139844839","n2139832722"]},"w208643143":{"id":"w208643143","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153258","n2189153259","n2189153260","n2189153261","n2189153262","n2189153263","n2189153258"]},"w203049590":{"id":"w203049590","version":"3","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2130304152","n2130304153","n2140006403","n2130304154","n2130304156","n2130304155","n2130304160","n2130304152"]},"w203974054":{"id":"w203974054","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"path","name":"Riverwalk Trail"},"nodes":["n2139858971","n2139870373","n2139870374"]},"w203049595":{"id":"w203049595","version":"2","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:51Z","tags":{"highway":"service"},"nodes":["n2130304158","n2130304159","n2130304160","n2139832635","n2139832639"]},"w203970913":{"id":"w203970913","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:51Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139832715","n2139832716","n2139832717","n2139832718","n2139832719","n2139832720","n2139832721","n2139832716"]},"w208643134":{"id":"w208643134","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153203","n2189153204","n2189153205","n2189153206","n2189153207","n2189153208","n2189153209","n2189153210","n2189153211","n2189153212","n2189153213","n2189153214","n2189153203"]},"w134150808":{"id":"w134150808","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:53Z","tags":{"bridge":"yes","highway":"residential","name":"Moore St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Moore","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15328392:15312870:15312967","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185988239","n185984009","n185988241","n1475284019"]},"w203970115":{"id":"w203970115","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824761","n2139824727","n2139824736","n2139824771","n2139824761"]},"w208643130":{"id":"w208643130","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:14Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153183","n2189153184","n2189153185","n2189153186","n2189153187","n2189153188","n2189153189","n2189153190","n2189153183"]},"w206805246":{"id":"w206805246","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544782","n2168544780","n2168544781","n2168544783","n2168544787","n2168544784","n2168544782"]},"w203970138":{"id":"w203970138","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824729","n2139824720","n2139824702","n2139824707","n2139824729"]},"w203970133":{"id":"w203970133","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824748","n2139824737","n2139824717","n2139824728","n2139824748"]},"w203970907":{"id":"w203970907","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139832700","n2139832701","n2139832702"]},"w203974056":{"id":"w203974056","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"path","name":"Riverwalk Trail"},"nodes":["n2139870377","n2139870378"]},"w203970897":{"id":"w203970897","version":"2","changeset":"15117845","user":"rolandg","uid":"8703","visible":"true","timestamp":"2013-02-21T23:02:38Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2130304156","n2166205688","n2139832635","n2139832636","n2139832637","n2139832639","n2139832641","n2166205688"]},"w203974057":{"id":"w203974057","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"highway":"path","name":"Riverwalk Trail"},"nodes":["n2139870375","n2139870376"]},"w203049594":{"id":"w203049594","version":"3","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:03Z","tags":{"highway":"service"},"nodes":["n2130304156","n2139870378","n2139832706","n2139832704","n2130304157"]},"w203970122":{"id":"w203970122","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824757","n2139824740","n2139824747","n2139824762","n2139824757"]},"w208643136":{"id":"w208643136","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153219","n2189153220","n2189153221","n2189153222","n2189153223","n2189153224","n2189153225","n2189153226","n2189153219"]},"w203970128":{"id":"w203970128","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824732","n2139824752","n2139824744","n2139824724","n2139824732"]},"w203970097":{"id":"w203970097","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824737","n2139824733","n2139824710","n2139824716","n2139824737"]},"w203970137":{"id":"w203970137","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824765","n2139824774","n2139824758","n2139824746","n2139824765"]},"w134150840":{"id":"w134150840","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:56Z","tags":{"highway":"residential","name":"Moore St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Moore","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15328392:15312870:15312967","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n1475284019","n185988243","n185988244","n185988245"]},"w17967628":{"id":"w17967628","version":"3","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:51Z","tags":{"highway":"residential","name":"Moore St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Moore","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15328392:15312870:15312967","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185978388","n2139832709","n185988237","n185988239"]},"w203988292":{"id":"w203988292","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"bridge":"yes","highway":"footway"},"nodes":["n2140006407","n2140006405"]},"w203970118":{"id":"w203970118","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824775","n2139824785","n2139824780","n2139824768","n2139824775"]},"w203970121":{"id":"w203970121","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824768","n2139824781","n2139824776","n2139824765","n2139824768"]},"w17967752":{"id":"w17967752","version":"5","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:00Z","tags":{"highway":"residential","name":"Railroad Drive","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Railroad","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185964980","n2139832699","n2139832700","n2130304158","n185988969","n185988971","n185988972","n1475284011"]},"w203970136":{"id":"w203970136","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824798","n2139824793","n2139824777","n2139824784","n2139824798"]},"w203970142":{"id":"w203970142","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824808","n2139824809","n2139824807","n2139824806","n2139824801","n2139824800","n2139824804","n2139824805","n2139824808"]},"w208643137":{"id":"w208643137","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153227","n2189153248","n2189153228","n2189153234","n2189153235","n2189153229","n2189153249","n2189153230","n2189153227"]},"w208643129":{"id":"w208643129","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:14Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153179","n2189153180","n2189153181","n2189153182","n2189153179"]},"w203970909":{"id":"w203970909","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832703","n2139832704","n2139832706","n2139832708","n2139832703"]},"w203970905":{"id":"w203970905","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139832688","n2139832691"]},"w203988298":{"id":"w203988298","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"highway":"service"},"nodes":["n2140006431","n2140006433","n2140006435","n2140006436","n2140006437","n2140006438","n2140006439","n2140006440"]},"w203970106":{"id":"w203970106","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824798","n2139824791","n2139824799","n2139824802","n2139824798"]},"w203970129":{"id":"w203970129","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:06Z","tags":{"building":"yes"},"nodes":["n2139824787","n2139824782","n2139824766","n2139824769","n2139824787"]},"w208643131":{"id":"w208643131","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:14Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189153191","n2189153192","n2189153193","n2189153194","n2189153191"]},"w206805249":{"id":"w206805249","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544800","n2168544801","n2168544802","n2168544805","n2168544807","n2168544809","n2168544811","n2168544813","n2168544815","n2168544817","n2168544819","n2168544821","n2168544823","n2168544825","n2168544800"]},"w134150800":{"id":"w134150800","version":"3","changeset":"13675000","user":"NE2","uid":"207745","visible":"true","timestamp":"2012-10-29T15:08:54Z","tags":{"bridge":"yes","highway":"primary","name":"W Michigan Ave","old_ref":"US 131","ref":"US 131 Business;M 60","tiger:cfcc":"A21","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_base_2":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"W","tiger:name_type":"Ave","tiger:reviewed":"no"},"nodes":["n185964972","n185964976"]},"w17966984":{"id":"w17966984","version":"4","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:21Z","tags":{"highway":"residential","name":"Portage Avenue","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Portage","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978375","n185963456","n2189153218","n185966937","n185978967","n185967422","n185982193","n185968100","n185982195","n185960195","n185980735","n185978787","n185966948","n185982196","n185982197","n185982198","n185982200","n2139795768","n185972155"]},"w203988294":{"id":"w203988294","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"amenity":"shelter","area":"yes","building":"yes","shelter_type":"picnic_shelter"},"nodes":["n2140006409","n2140006411","n2140006413","n2140006415","n2140006409"]},"w203970912":{"id":"w203970912","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832711","n2139832712","n2139832713","n2139832714","n2139832711"]},"w203970119":{"id":"w203970119","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824713","n2139824705","n2139824683","n2139824689","n2139824713"]},"w203970114":{"id":"w203970114","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:05Z","tags":{"building":"yes"},"nodes":["n2139824735","n2139824750","n2139824745","n2139824732","n2139824735"]},"w208643142":{"id":"w208643142","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153254","n2189153255","n2189153256","n2189153257"]},"w206805253":{"id":"w206805253","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544848","n2168544849","n2168544850","n2168544851","n2168544852","n2168544853","n2168544854","n2168544855","n2168544848"]},"w143497377":{"id":"w143497377","version":"7","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:59Z","tags":{"highway":"primary","name":"North Main Street","old_ref":"US 131","ref":"US 131 Business","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Main","tiger:name_base_1":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"N","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_left_1":"49093","tiger:zip_right":"49093","tiger:zip_right_1":"49093"},"nodes":["n185962625","n185978420","n185978419","n185978417","n185978415","n185978414","n185975735","n1475293254","n185978410","n185978406","n185970515","n185978402","n185978399","n185965399","n2189015992","n185961396","n185967917","n185978394","n185971631","n185960796","n185978392","n185974583","n185978390","n185971578","n185965289","n2189153215","n185978388","n185978383","n185978381","n185978379","n185978377","n185978375","n185964982"]},"w134150811":{"id":"w134150811","version":"6","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:58Z","tags":{"highway":"primary","name":"West Michigan Avenue","old_ref":"US 131","ref":"US 131 Business;M 60","tiger:cfcc":"A21","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_base_2":"US Hwy 131 (Bus)","tiger:name_direction_prefix":"W","tiger:name_type":"Ave","tiger:reviewed":"no"},"nodes":["n185964976","n2130304157","n1475284023","n2139832715","n185964980","n185964982"]},"w208643135":{"id":"w208643135","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153215","n2189153216","n2189153217","n2189153218"]},"w17967183":{"id":"w17967183","version":"4","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:23Z","tags":{"highway":"residential","name":"West Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"West","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n1475284011","n185984011","n185984013","n185984015","n2189153246","n2189153250","n185965291","n185984017","n185971580","n185984020","n185974585","n185982163","n185975064","n185971632","n185984022","n185984024","n185967918"]},"w134150778":{"id":"w134150778","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{"bridge":"yes","highway":"residential","name":"Moore St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Moore","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15328392:15312870:15312967","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185988245","n1475283992","n185975911"]},"w206805248":{"id":"w206805248","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544790","n2168544791","n2168544792","n2168544793","n2168544795","n2168544797","n2168544798","n2168544799","n2168544802","n2168544801","n2168544790"]},"w203974058":{"id":"w203974058","version":"1","changeset":"14893310","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T09:47:02Z","tags":{"bridge":"yes","highway":"path","name":"Riverwalk Trail"},"nodes":["n2139870374","n2139870375"]},"w203970902":{"id":"w203970902","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"highway":"service"},"nodes":["n2139832678","n2139832691","n2139832680"]},"w203988296":{"id":"w203988296","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"highway":"path"},"nodes":["n2139858967","n2140006421","n2139858935"]},"w206805251":{"id":"w206805251","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:04Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544830","n2168544831","n2168544832","n2168544833","n2168544834","n2168544835","n2168544836","n2168544837","n2168544830"]},"w203970906":{"id":"w203970906","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832693","n2139832694","n2139832696","n2139832697","n2139832698","n2139832693"]},"w203049598":{"id":"w203049598","version":"1","changeset":"14802606","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-01-27T04:50:52Z","tags":{"area":"yes","leisure":"pitch","sport":"tennis"},"nodes":["n2130304162","n2130304163","n2130304164","n2130304165","n2130304162"]},"w203970911":{"id":"w203970911","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"highway":"service"},"nodes":["n2139832709","n2139832714","n2139832713","n2139832710","n185988971"]},"w203970105":{"id":"w203970105","version":"1","changeset":"14892598","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:37:04Z","tags":{"building":"yes"},"nodes":["n2139824779","n2139824792","n2139824786","n2139824775","n2139824779"]},"w203988290":{"id":"w203988290","version":"1","changeset":"14895132","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T12:19:25Z","tags":{"highway":"footway"},"nodes":["n2140006403","n2140006407"]},"w203970900":{"id":"w203970900","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139832653","n2139832663","n2139832665","n2139832667","n2139832669","n2139832671","n2139832673","n2139832675","n2139832677","n2139832653"]},"w209717048":{"id":"w209717048","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109755","n2199109756","n2199109757","n2199109758","n2199109759","n2199109760","n2199109755"]},"w208643141":{"id":"w208643141","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153247","n2189153248","n2189153249","n2189153250"]},"w203970903":{"id":"w203970903","version":"1","changeset":"14892737","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T08:51:50Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2139832682","n2139832688","n2139832684","n2139832678","n2139832686"]},"n354002527":{"id":"n354002527","loc":[-85.6236039,41.9458813],"version":"1","changeset":"698464","user":"iandees","uid":"4732","visible":"true","timestamp":"2009-02-28T21:20:07Z","tags":{"amenity":"school","ele":"246","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:edited":"02/21/2008","gnis:feature_id":"1624371","gnis:state_id":"26","name":"Barrows School"}},"n185963396":{"id":"n185963396","loc":[-85.627401,41.943496],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:52Z","tags":{}},"n185963397":{"id":"n185963397","loc":[-85.627403,41.943625],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:52Z","tags":{}},"n185965101":{"id":"n185965101","loc":[-85.626409,41.943215],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:44Z","tags":{}},"n185971474":{"id":"n185971474","loc":[-85.624884,41.943508],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185971475":{"id":"n185971475","loc":[-85.625191,41.943509],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185971482":{"id":"n185971482","loc":[-85.624882,41.94382],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185983135":{"id":"n185983135","loc":[-85.624893,41.945616],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:01Z","tags":{}},"n185983137":{"id":"n185983137","loc":[-85.624912,41.946524],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:01Z","tags":{}},"n185988027":{"id":"n185988027","loc":[-85.622721,41.946535],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:30Z","tags":{}},"n185963398":{"id":"n185963398","loc":[-85.6273993,41.9446899],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185983238":{"id":"n185983238","loc":[-85.6227157,41.9456321],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185980374":{"id":"n185980374","loc":[-85.6248856,41.9447242],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185980373":{"id":"n185980373","loc":[-85.6226744,41.9447371],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n2196831342":{"id":"n2196831342","loc":[-85.6250924,41.945063],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831343":{"id":"n2196831343","loc":[-85.6252335,41.9450636],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831344":{"id":"n2196831344","loc":[-85.6252286,41.9448707],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831345":{"id":"n2196831345","loc":[-85.6250661,41.9448707],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831346":{"id":"n2196831346","loc":[-85.6250243,41.9449012],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831347":{"id":"n2196831347","loc":[-85.6250251,41.9449244],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831348":{"id":"n2196831348","loc":[-85.6250867,41.9449257],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831349":{"id":"n2196831349","loc":[-85.625349,41.9445058],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831350":{"id":"n2196831350","loc":[-85.6253471,41.9443882],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831351":{"id":"n2196831351","loc":[-85.6251516,41.94439],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831352":{"id":"n2196831352","loc":[-85.6251522,41.9444308],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831353":{"id":"n2196831353","loc":[-85.6251344,41.9444309],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831354":{"id":"n2196831354","loc":[-85.6251356,41.9445077],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831355":{"id":"n2196831355","loc":[-85.6232357,41.9463406],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:39Z","tags":{}},"n2196831356":{"id":"n2196831356","loc":[-85.6232409,41.9460668],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831357":{"id":"n2196831357","loc":[-85.6232072,41.9460665],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831358":{"id":"n2196831358","loc":[-85.6232117,41.9458272],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831359":{"id":"n2196831359","loc":[-85.6229808,41.9458248],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831360":{"id":"n2196831360","loc":[-85.6229763,41.9460627],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831361":{"id":"n2196831361","loc":[-85.623006,41.946063],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831362":{"id":"n2196831362","loc":[-85.6230023,41.9462557],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831363":{"id":"n2196831363","loc":[-85.6230755,41.9462565],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831364":{"id":"n2196831364","loc":[-85.6230739,41.9463389],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n185947349":{"id":"n185947349","loc":[-85.618327,41.945607],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947359":{"id":"n185947359","loc":[-85.615453,41.945597],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947378":{"id":"n185947378","loc":[-85.617231,41.945603],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:12Z","tags":{}},"n185947474":{"id":"n185947474","loc":[-85.616136,41.945602],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185948972":{"id":"n185948972","loc":[-85.615273,41.945637],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:02Z","tags":{}},"n185955019":{"id":"n185955019","loc":[-85.620172,41.945627],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:37Z","tags":{}},"n185960682":{"id":"n185960682","loc":[-85.622759,41.951845],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:21Z","tags":{}},"n185961369":{"id":"n185961369","loc":[-85.622758,41.947444],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:38Z","tags":{}},"n185961371":{"id":"n185961371","loc":[-85.624908,41.947416],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:38Z","tags":{}},"n185963392":{"id":"n185963392","loc":[-85.6270462,41.9409953],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185963393":{"id":"n185963393","loc":[-85.627295,41.941304],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:51Z","tags":{}},"n185963394":{"id":"n185963394","loc":[-85.627352,41.94148],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:52Z","tags":{}},"n185963395":{"id":"n185963395","loc":[-85.62737,41.942261],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:52Z","tags":{}},"n185965099":{"id":"n185965099","loc":[-85.6264,41.942263],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:44Z","tags":{}},"n185965108":{"id":"n185965108","loc":[-85.622769,41.949224],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:44Z","tags":{}},"n185965110":{"id":"n185965110","loc":[-85.624937,41.949237],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:44Z","tags":{}},"n185966295":{"id":"n185966295","loc":[-85.6299942,41.9446689],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n185966342":{"id":"n185966342","loc":[-85.624873,41.942022],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185970222":{"id":"n185970222","loc":[-85.622761,41.948357],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:17Z","tags":{}},"n185970224":{"id":"n185970224","loc":[-85.624924,41.9483338],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n185971477":{"id":"n185971477","loc":[-85.620051,41.94383],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185971478":{"id":"n185971478","loc":[-85.621219,41.943801],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185971481":{"id":"n185971481","loc":[-85.621812,41.943807],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:03Z","tags":{}},"n185973866":{"id":"n185973866","loc":[-85.627629,41.946498],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:03Z","tags":{}},"n185974699":{"id":"n185974699","loc":[-85.6227688,41.950119],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n185978800":{"id":"n185978800","loc":[-85.623953,41.954684],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185980372":{"id":"n185980372","loc":[-85.621459,41.944756],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:37Z","tags":{}},"n185980378":{"id":"n185980378","loc":[-85.6286375,41.9446764],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185980380":{"id":"n185980380","loc":[-85.630139,41.944661],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980382":{"id":"n185980382","loc":[-85.630298,41.944635],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980384":{"id":"n185980384","loc":[-85.630759,41.94454],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980386":{"id":"n185980386","loc":[-85.6312369,41.9444548],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185983133":{"id":"n185983133","loc":[-85.6248672,41.9415903],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185983139":{"id":"n185983139","loc":[-85.624951,41.950239],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:01Z","tags":{}},"n185983140":{"id":"n185983140","loc":[-85.624934,41.950681],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:01Z","tags":{}},"n185983141":{"id":"n185983141","loc":[-85.624813,41.950983],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:02Z","tags":{}},"n185983143":{"id":"n185983143","loc":[-85.6246225,41.951591],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:03Z","tags":{}},"n185983144":{"id":"n185983144","loc":[-85.623908,41.9539165],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:03Z","tags":{}},"n185983145":{"id":"n185983145","loc":[-85.6238903,41.9540956],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:03Z","tags":{}},"n185983146":{"id":"n185983146","loc":[-85.623898,41.95431],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:02Z","tags":{}},"n185983236":{"id":"n185983236","loc":[-85.628481,41.945611],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:05Z","tags":{}},"n185985914":{"id":"n185985914","loc":[-85.620072,41.946538],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185986812":{"id":"n185986812","loc":[-85.6227785,41.9510005],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n185988028":{"id":"n185988028","loc":[-85.6281401,41.9469632],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185988030":{"id":"n185988030","loc":[-85.6282451,41.9470314],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185988032":{"id":"n185988032","loc":[-85.6283312,41.9470656],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"w17964989":{"id":"w17964989","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:33:37Z","tags":{"highway":"residential","name":"Middle St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Middle","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312433:15328741:15312403:15312465","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185963392","n185963393","n185963394","n185963395","n185963396","n185963397","n185963398"]},"w17965158":{"id":"w17965158","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:34:55Z","tags":{"access":"private","highway":"service","name":"Battle St","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Battle","tiger:name_type":"St","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313281","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185965099","n185965101"]},"w41074896":{"id":"w41074896","version":"4","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:58Z","tags":{"highway":"secondary","name":"East Michigan Avenue","name_1":"State Highway 60","ref":"M 60","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_direction_prefix":"E","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980372","n185980373","n185980374","n185963398","n185980378","n185966295","n185980380","n185980382","n185980384","n185980386"]},"w17965846":{"id":"w17965846","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:40:12Z","tags":{"highway":"residential","name":"2nd Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"2nd","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313726","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971477","n185971478","n185971481","n185971482"]},"w209470306":{"id":"w209470306","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831349","n2196831350","n2196831351","n2196831352","n2196831353","n2196831354","n2196831349"]},"w17965845":{"id":"w17965845","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:40:12Z","tags":{"highway":"residential","name":"2nd Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"2nd","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15335065","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971474","n185971475","n185963396"]},"w209470307":{"id":"w209470307","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831355","n2196831356","n2196831357","n2196831358","n2196831359","n2196831360","n2196831361","n2196831362","n2196831363","n2196831364","n2196831355"]},"w17968192":{"id":"w17968192","version":"2","changeset":"15473162","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:43:17Z","tags":{"highway":"residential","name":"Washington St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Washington","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980373","n185983238","n185988027","n185961369","n185970222","n185965108","n185974699","n185986812","n185960682"]},"w17967603":{"id":"w17967603","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:23Z","tags":{"highway":"residential","name":"5th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"5th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312324:15312811:15314055:15314056:15313692:15328995:15313188","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185985914","n185988027","n185983137","n185973866","n185988028","n185988030","n185988032"]},"w209470305":{"id":"w209470305","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831342","n2196831343","n2196831344","n2196831345","n2196831346","n2196831347","n2196831348","n2196831342"]},"w17967092":{"id":"w17967092","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:49:18Z","tags":{"highway":"residential","name":"Wood St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Wood","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313653:15313659:15313679:15314060","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185983133","n185966342","n185971474","n185971482","n185980374","n185983135","n185983137","n185961371","n185970224","n185965110","n185983139","n185983140","n185983141","n185983143","n185983144","n185983145","n185983146","n185978800"]},"w17967107":{"id":"w17967107","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:49:23Z","tags":{"highway":"residential","name":"4th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"4th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314053:15314054:15313697:15313698:15313700:15313701:15313699:15314427","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185983236","n185983135","n185983238","n185955019","n185947349","n185947378","n185947474","n185947359","n185948972"]},"n354030330":{"id":"n354030330","loc":[-85.6297222,41.9444444],"version":"1","changeset":"698464","user":"iandees","uid":"4732","visible":"true","timestamp":"2009-02-28T22:10:58Z","tags":{"ele":"243","gnis:county_id":"149","gnis:created":"03/21/2008","gnis:feature_id":"2401246","gnis:state_id":"26","leisure":"park","name":"Scouter Park"}},"n185966296":{"id":"n185966296","loc":[-85.629998,41.944078],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966298":{"id":"n185966298","loc":[-85.629972,41.943927],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966300":{"id":"n185966300","loc":[-85.629948,41.943783],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185980391":{"id":"n185980391","loc":[-85.6322992,41.9442766],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185980393":{"id":"n185980393","loc":[-85.6324925,41.9442136],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185980389":{"id":"n185980389","loc":[-85.6320272,41.9443281],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185980388":{"id":"n185980388","loc":[-85.6315778,41.9443959],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n354031320":{"id":"n354031320","loc":[-85.6280556,41.9447222],"version":"3","changeset":"3908860","user":"Geogast","uid":"51045","visible":"true","timestamp":"2010-02-18T13:28:21Z","tags":{"amenity":"place_of_worship","ele":"245","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417881","gnis:state_id":"26","name":"Riverside Church","religion":"christian"}},"n185987309":{"id":"n185987309","loc":[-85.6286497,41.9453531],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185987311":{"id":"n185987311","loc":[-85.6285942,41.9454805],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185988034":{"id":"n185988034","loc":[-85.6285815,41.9471692],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185988896":{"id":"n185988896","loc":[-85.6318433,41.9437929],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185977764":{"id":"n185977764","loc":[-85.6322988,41.943472],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n1819848852":{"id":"n1819848852","loc":[-85.6315188,41.9448808],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848912":{"id":"n1819848912","loc":[-85.6284289,41.9472189],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848925":{"id":"n1819848925","loc":[-85.6314501,41.9451617],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848949":{"id":"n1819848949","loc":[-85.6309394,41.9455192],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848951":{"id":"n1819848951","loc":[-85.6290297,41.9457187],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848963":{"id":"n1819848963","loc":[-85.630521,41.9455591],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848981":{"id":"n1819848981","loc":[-85.6292936,41.9455846],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848989":{"id":"n1819848989","loc":[-85.6298451,41.9455431],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819848998":{"id":"n1819848998","loc":[-85.6314973,41.9446254],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849018":{"id":"n1819849018","loc":[-85.6302807,41.9455527],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849043":{"id":"n1819849043","loc":[-85.6285533,41.9469731],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849087":{"id":"n1819849087","loc":[-85.6314501,41.9453532],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849090":{"id":"n1819849090","loc":[-85.628843,41.9461033],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849109":{"id":"n1819849109","loc":[-85.6311926,41.9454729],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849116":{"id":"n1819849116","loc":[-85.6288967,41.9459437],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849177":{"id":"n1819849177","loc":[-85.6287894,41.9464544],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819858529":{"id":"n1819858529","loc":[-85.6325485,41.9445625],"version":"1","changeset":"12170230","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:56:55Z","tags":{}},"n2189112797":{"id":"n2189112797","loc":[-85.6275271,41.944555],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112798":{"id":"n2189112798","loc":[-85.6275196,41.9437258],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112799":{"id":"n2189112799","loc":[-85.6278937,41.943723],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112800":{"id":"n2189112800","loc":[-85.6278969,41.9439191],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112801":{"id":"n2189112801","loc":[-85.6279907,41.9439345],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112802":{"id":"n2189112802","loc":[-85.6280817,41.9439663],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112803":{"id":"n2189112803","loc":[-85.6281768,41.9440145],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112804":{"id":"n2189112804","loc":[-85.6281933,41.9440483],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112805":{"id":"n2189112805","loc":[-85.6281671,41.9440535],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112806":{"id":"n2189112806","loc":[-85.6281933,41.9440935],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112807":{"id":"n2189112807","loc":[-85.6282126,41.9441437],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112808":{"id":"n2189112808","loc":[-85.628214,41.9441991],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112809":{"id":"n2189112809","loc":[-85.6283298,41.944196],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112810":{"id":"n2189112810","loc":[-85.6283285,41.9442616],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112811":{"id":"n2189112811","loc":[-85.6281727,41.9442616],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112812":{"id":"n2189112812","loc":[-85.6281713,41.9442934],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112813":{"id":"n2189112813","loc":[-85.6280386,41.9442963],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112814":{"id":"n2189112814","loc":[-85.6280405,41.9443292],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112815":{"id":"n2189112815","loc":[-85.627829,41.9443349],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189112816":{"id":"n2189112816","loc":[-85.6278347,41.9445495],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:16Z","tags":{}},"n2189153271":{"id":"n2189153271","loc":[-85.6321053,41.9460342],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153272":{"id":"n2189153272","loc":[-85.632278,41.9457841],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153273":{"id":"n2189153273","loc":[-85.632823,41.9459936],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153274":{"id":"n2189153274","loc":[-85.6326845,41.9461963],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:11Z","tags":{}},"n2189153275":{"id":"n2189153275","loc":[-85.6325664,41.9461507],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2189153276":{"id":"n2189153276","loc":[-85.6325323,41.946198],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2189153278":{"id":"n2189153278","loc":[-85.6321916,41.9459733],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2189153279":{"id":"n2189153279","loc":[-85.6322598,41.9458703],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2189153280":{"id":"n2189153280","loc":[-85.6327208,41.9460358],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n2189153281":{"id":"n2189153281","loc":[-85.6326413,41.9461422],"version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:12Z","tags":{}},"n185959079":{"id":"n185959079","loc":[-85.6293702,41.9474668],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185966301":{"id":"n185966301","loc":[-85.629692,41.943136],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966304":{"id":"n185966304","loc":[-85.629565,41.942916],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966308":{"id":"n185966308","loc":[-85.629501,41.942751],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966315":{"id":"n185966315","loc":[-85.629472,41.942578],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966319":{"id":"n185966319","loc":[-85.629444,41.942414],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966321":{"id":"n185966321","loc":[-85.629391,41.94205],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966323":{"id":"n185966323","loc":[-85.629369,41.941858],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966327":{"id":"n185966327","loc":[-85.629297,41.941604],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966331":{"id":"n185966331","loc":[-85.629233,41.941549],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966336":{"id":"n185966336","loc":[-85.628504,41.941364],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966338":{"id":"n185966338","loc":[-85.628275,41.941303],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966340":{"id":"n185966340","loc":[-85.6269038,41.9410983],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n185973867":{"id":"n185973867","loc":[-85.626843,41.947333],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:03Z","tags":{}},"n185977762":{"id":"n185977762","loc":[-85.6318441,41.9429453],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n1819848853":{"id":"n1819848853","loc":[-85.625854,41.9492218],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848861":{"id":"n1819848861","loc":[-85.6251459,41.9552376],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848874":{"id":"n1819848874","loc":[-85.6267445,41.9482961],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848882":{"id":"n1819848882","loc":[-85.6257209,41.9552396],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848883":{"id":"n1819848883","loc":[-85.624706,41.9523173],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848907":{"id":"n1819848907","loc":[-85.62609,41.9561471],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848908":{"id":"n1819848908","loc":[-85.6244013,41.9549284],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848911":{"id":"n1819848911","loc":[-85.6265578,41.9553672],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848923":{"id":"n1819848923","loc":[-85.6246802,41.9550959],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848936":{"id":"n1819848936","loc":[-85.6241588,41.9539291],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848940":{"id":"n1819848940","loc":[-85.62506,41.9511129],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848944":{"id":"n1819848944","loc":[-85.624942,41.9515912],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848950":{"id":"n1819848950","loc":[-85.6273989,41.9475461],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848957":{"id":"n1819848957","loc":[-85.627695,41.947404],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819849009":{"id":"n1819849009","loc":[-85.6259248,41.94896],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849037":{"id":"n1819849037","loc":[-85.6257252,41.9502112],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849061":{"id":"n1819849061","loc":[-85.6270084,41.9479626],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849073":{"id":"n1819849073","loc":[-85.6243734,41.9534583],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849091":{"id":"n1819849091","loc":[-85.6241373,41.9543918],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n1819849130":{"id":"n1819849130","loc":[-85.6282572,41.9473067],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849143":{"id":"n1819849143","loc":[-85.625281,41.9506596],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819849153":{"id":"n1819849153","loc":[-85.6258647,41.9498043],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849168":{"id":"n1819849168","loc":[-85.6265084,41.9559317],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849173":{"id":"n1819849173","loc":[-85.6263325,41.9552156],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849175":{"id":"n1819849175","loc":[-85.6266372,41.9556764],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:58Z","tags":{}},"n1819849178":{"id":"n1819849178","loc":[-85.6242232,41.9545993],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849181":{"id":"n1819849181","loc":[-85.6262187,41.9486712],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849188":{"id":"n1819849188","loc":[-85.6245558,41.9530434],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849190":{"id":"n1819849190","loc":[-85.6255982,41.9563017],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n2168544738":{"id":"n2168544738","loc":[-85.6245707,41.9529711],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"w208643145":{"id":"w208643145","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:15Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189153271","n2189153272","n2189153273","n2189153274","n2189153275","n2189153276","n2189153271"]},"w17967561":{"id":"w17967561","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:21Z","tags":{"highway":"residential","name":"Garden St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Garden","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312361:15322884:15322885","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980378","n185987309","n185987311","n185983236","n185973866"]},"w134150802":{"id":"w134150802","version":"2","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:58Z","tags":{"bridge":"yes","highway":"secondary","name":"East Michigan Avenue","name_1":"State Highway 60","ref":"M 60","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_direction_prefix":"E","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980386","n185980388"]},"w208639462":{"id":"w208639462","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112797","n2189112798","n2189112799","n2189112800","n2189112801","n2189112802","n2189112803","n2189112804","n2189112805","n2189112806","n2189112807","n2189112808","n2189112809","n2189112810","n2189112811","n2189112812","n2189112813","n2189112814","n2189112815","n2189112816","n2189112797"]},"w134150830":{"id":"w134150830","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:00Z","tags":{"bridge":"yes","highway":"secondary","name":"South Main Street","old_ref":"US 131","ref":"M 86","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Main","tiger:name_base_1":"State Highway 86","tiger:name_direction_prefix":"S","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185977762","n185977764"]},"w134150801":{"id":"w134150801","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:00Z","tags":{"highway":"secondary","name":"South Main Street","old_ref":"US 131","ref":"M 86","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Main","tiger:name_base_1":"State Highway 86","tiger:name_direction_prefix":"S","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185977764","n185964982"]},"w208643146":{"id":"w208643146","version":"1","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:16Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2189153277","n2189153281","n2189153278","n2189153279","n2189153280","n2189153281"]},"w17966061":{"id":"w17966061","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:42:00Z","tags":{"highway":"residential","name":"John Glenn Ct","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"John Glenn","tiger:name_type":"Ct","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313190","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185973866","n185973867"]},"w134150772":{"id":"w134150772","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{"highway":"residential","name":"5th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"5th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312324:15312811:15314055:15314056:15313692:15328995:15313188","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185988034","n185959079","n185988036","n185978967"]},"w134150836":{"id":"w134150836","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:11:58Z","tags":{"highway":"secondary","name":"East Michigan Avenue","name_1":"State Highway 60","ref":"M 60","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_direction_prefix":"E","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980388","n1819858524","n185980389","n185980391","n185980393","n185964982"]},"w17967734":{"id":"w17967734","version":"3","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:00Z","tags":{"highway":"residential","name":"Water Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Water","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185988896","n185980391","n1819858529"]},"w17965305":{"id":"w17965305","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:35:57Z","tags":{"highway":"residential","name":"River Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"River","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312440:15338837","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185966295","n185966296","n185966298","n185966300","n185966301","n185966304","n185966308","n185966315","n185966319","n185966321","n185966323","n185966327","n185966331","n185966336","n185966338","n185963392","n185966340","n185966342"]},"w134150826":{"id":"w134150826","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:55Z","tags":{"bridge":"yes","highway":"residential","name":"5th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"5th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312324:15312811:15314055:15314056:15313692:15328995:15313188","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185988032","n185988034"]},"w170848330":{"id":"w170848330","version":"3","changeset":"15306846","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-09T19:50:50Z","tags":{"name":"Portage River","source":"Bing","waterway":"river"},"nodes":["n1819849190","n1819848907","n1819849168","n1819849175","n1819848911","n1819849173","n1819848882","n1819848861","n1819848923","n1819848908","n1819849178","n1819849091","n1819848936","n1819849073","n1819849188","n2168544738","n1819848883","n1819848944","n1819848940","n1819849143","n1819849037","n1819849153","n1819848853","n1819849009","n1819849181","n1819848874","n1819849061","n1819848950","n1819848957","n1819849130","n1819848912","n1819849043","n1819849177","n1819849090","n1819849116","n1819848951","n1819848981","n1819848989","n1819849018","n1819848963","n1819848949","n1819849109","n1819849087","n1819848925","n1819848852","n1819848998","n1819849057"]},"r270264":{"id":"r270264","version":"8","changeset":"13611326","user":"migurski","uid":"8287","visible":"true","timestamp":"2012-10-23T23:35:16Z","tags":{"network":"US:MI","ref":"86","route":"road","state_id":"MI","type":"route","url":"http://en.wikipedia.org/wiki/M-86_%28Michigan_highway%29"},"members":[{"id":"w17737723","type":"way","role":""},{"id":"w17735949","type":"way","role":""},{"id":"w17740404","type":"way","role":""},{"id":"w17966273","type":"way","role":""},{"id":"w17964745","type":"way","role":""},{"id":"w151538068","type":"way","role":""},{"id":"w151538067","type":"way","role":""},{"id":"w17964960","type":"way","role":""},{"id":"w17966099","type":"way","role":""},{"id":"w17968009","type":"way","role":""},{"id":"w41259499","type":"way","role":""},{"id":"w151540401","type":"way","role":""},{"id":"w151540418","type":"way","role":""},{"id":"w17967997","type":"way","role":""},{"id":"w17966029","type":"way","role":""},{"id":"w17964801","type":"way","role":""},{"id":"w41259496","type":"way","role":""},{"id":"w151540399","type":"way","role":""},{"id":"w17968004","type":"way","role":""},{"id":"w17966462","type":"way","role":""},{"id":"w134150830","type":"way","role":""},{"id":"w134150801","type":"way","role":""},{"id":"w17732295","type":"way","role":""}]},"n185980093":{"id":"n185980093","loc":[-85.6271414,41.9407274],"version":"4","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185964330":{"id":"n185964330","loc":[-85.6235688,41.9399111],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185964328":{"id":"n185964328","loc":[-85.6235609,41.9391301],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185958034":{"id":"n185958034","loc":[-85.627102,41.939125],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:00Z","tags":{}},"n185964331":{"id":"n185964331","loc":[-85.623571,41.940124],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964329":{"id":"n185964329","loc":[-85.623562,41.9392411],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185972756":{"id":"n185972756","loc":[-85.623802,41.939102],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:35Z","tags":{}},"n185972757":{"id":"n185972757","loc":[-85.623584,41.93913],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:35Z","tags":{}},"n185975325":{"id":"n185975325","loc":[-85.624835,41.939318],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975326":{"id":"n185975326","loc":[-85.624811,41.939435],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975327":{"id":"n185975327","loc":[-85.624635,41.939703],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975328":{"id":"n185975328","loc":[-85.624366,41.940055],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975330":{"id":"n185975330","loc":[-85.624287,41.940113],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975332":{"id":"n185975332","loc":[-85.624215,41.940134],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185980088":{"id":"n185980088","loc":[-85.627127,41.940086],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185988943":{"id":"n185988943","loc":[-85.622643,41.940128],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:15Z","tags":{}},"n185988961":{"id":"n185988961","loc":[-85.627263,41.940082],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:16Z","tags":{}},"n185990192":{"id":"n185990192","loc":[-85.622933,41.939224],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990194":{"id":"n185990194","loc":[-85.621976,41.939203],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185991378":{"id":"n185991378","loc":[-85.622643,41.940635],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:15:34Z","tags":{}},"n1475283999":{"id":"n1475283999","loc":[-85.6271165,41.9408429],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n185980090":{"id":"n185980090","loc":[-85.6271315,41.9402001],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:59Z","tags":{}},"n185958036":{"id":"n185958036","loc":[-85.6248366,41.9391615],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n1819800188":{"id":"n1819800188","loc":[-85.6246947,41.9401644],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800199":{"id":"n1819800199","loc":[-85.6233686,41.9430896],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800204":{"id":"n1819800204","loc":[-85.6223236,41.9408587],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800213":{"id":"n1819800213","loc":[-85.6247526,41.9414138],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800216":{"id":"n1819800216","loc":[-85.6230961,41.9407151],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800218":{"id":"n1819800218","loc":[-85.621991,41.9429336],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800221":{"id":"n1819800221","loc":[-85.6246088,41.9424708],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800227":{"id":"n1819800227","loc":[-85.6241368,41.9403081],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800230":{"id":"n1819800230","loc":[-85.6226776,41.9431012],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800231":{"id":"n1819800231","loc":[-85.6243728,41.9401644],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800232":{"id":"n1819800232","loc":[-85.6249629,41.9408907],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800248":{"id":"n1819800248","loc":[-85.6238685,41.9405555],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800266":{"id":"n1819800266","loc":[-85.6246882,41.9418367],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800271":{"id":"n1819800271","loc":[-85.62492,41.9413695],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800294":{"id":"n1819800294","loc":[-85.6243556,41.9427465],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800304":{"id":"n1819800304","loc":[-85.6251453,41.94117],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800325":{"id":"n1819800325","loc":[-85.6248234,41.9405714],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800362":{"id":"n1819800362","loc":[-85.6239544,41.9429416],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800368":{"id":"n1819800368","loc":[-85.6243406,41.9402283],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800375":{"id":"n1819800375","loc":[-85.6226562,41.940755],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800377":{"id":"n1819800377","loc":[-85.6232033,41.9406512],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n185945133":{"id":"n185945133","loc":[-85.623501,41.933232],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:52:24Z","tags":{}},"n185945135":{"id":"n185945135","loc":[-85.624776,41.933205],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:52:24Z","tags":{}},"n185945395":{"id":"n185945395","loc":[-85.624741,41.93019],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:52:30Z","tags":{}},"n185952239":{"id":"n185952239","loc":[-85.615166,41.9382],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:12Z","tags":{}},"n185954490":{"id":"n185954490","loc":[-85.624721,41.929278],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:27Z","tags":{}},"n185957831":{"id":"n185957831","loc":[-85.625041,41.938662],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:57:55Z","tags":{}},"n185958030":{"id":"n185958030","loc":[-85.629033,41.93913],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:00Z","tags":{}},"n185958032":{"id":"n185958032","loc":[-85.628429,41.939143],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:00Z","tags":{}},"n185958498":{"id":"n185958498","loc":[-85.621605,41.940143],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:27Z","tags":{}},"n185961186":{"id":"n185961186","loc":[-85.624792,41.935214],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:34Z","tags":{}},"n185963099":{"id":"n185963099","loc":[-85.6204461,41.9401485],"version":"3","changeset":"15379124","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:38:37Z","tags":{}},"n185963698":{"id":"n185963698","loc":[-85.6297342,41.9400783],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185964320":{"id":"n185964320","loc":[-85.623511,41.934216],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185964322":{"id":"n185964322","loc":[-85.6235312,41.9362084],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185964324":{"id":"n185964324","loc":[-85.6235488,41.9371726],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185964326":{"id":"n185964326","loc":[-85.6235512,41.9381718],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185967077":{"id":"n185967077","loc":[-85.617359,41.940161],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:54Z","tags":{}},"n185967634":{"id":"n185967634","loc":[-85.6248039,41.9362012],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185970833":{"id":"n185970833","loc":[-85.6248019,41.9381684],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:00Z","tags":{}},"n185972752":{"id":"n185972752","loc":[-85.624582,41.938848],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:35Z","tags":{}},"n185972754":{"id":"n185972754","loc":[-85.6242,41.939008],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:35Z","tags":{}},"n185973251":{"id":"n185973251","loc":[-85.602727,41.936012],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:49Z","tags":{}},"n185974509":{"id":"n185974509","loc":[-85.62478,41.93217],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:19Z","tags":{}},"n185975315":{"id":"n185975315","loc":[-85.624703,41.925597],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:56Z","tags":{}},"n185975316":{"id":"n185975316","loc":[-85.624716,41.927359],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975317":{"id":"n185975317","loc":[-85.62475,41.93119],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975318":{"id":"n185975318","loc":[-85.624782,41.934218],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:57Z","tags":{}},"n185975320":{"id":"n185975320","loc":[-85.6247949,41.9371708],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:58Z","tags":{}},"n185977754":{"id":"n185977754","loc":[-85.6276,41.937412],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185980075":{"id":"n185980075","loc":[-85.627451,41.937549],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980077":{"id":"n185980077","loc":[-85.627375,41.937618],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980078":{"id":"n185980078","loc":[-85.627278,41.937728],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980079":{"id":"n185980079","loc":[-85.627199,41.937842],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980081":{"id":"n185980081","loc":[-85.627141,41.937981],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980083":{"id":"n185980083","loc":[-85.627109,41.938153],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185980085":{"id":"n185980085","loc":[-85.627101,41.938699],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:28Z","tags":{}},"n185981173":{"id":"n185981173","loc":[-85.61433,41.940167],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:10:02Z","tags":{}},"n185987021":{"id":"n185987021","loc":[-85.628311,41.942261],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:07Z","tags":{}},"n185988963":{"id":"n185988963","loc":[-85.628439,41.940086],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:16Z","tags":{}},"n185990195":{"id":"n185990195","loc":[-85.621225,41.939143],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990196":{"id":"n185990196","loc":[-85.620576,41.939033],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990198":{"id":"n185990198","loc":[-85.619081,41.938804],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990200":{"id":"n185990200","loc":[-85.617593,41.938552],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990202":{"id":"n185990202","loc":[-85.617372,41.938535],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990204":{"id":"n185990204","loc":[-85.616087,41.93832],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:56Z","tags":{}},"n185990206":{"id":"n185990206","loc":[-85.615754,41.938289],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n185990209":{"id":"n185990209","loc":[-85.615438,41.938251],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n185990211":{"id":"n185990211","loc":[-85.613469,41.937867],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n185990212":{"id":"n185990212","loc":[-85.610172,41.937298],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n185990213":{"id":"n185990213","loc":[-85.605537,41.936497],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n185990214":{"id":"n185990214","loc":[-85.604014,41.936234],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:57Z","tags":{}},"n1819800180":{"id":"n1819800180","loc":[-85.588775,41.9455032],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800181":{"id":"n1819800181","loc":[-85.6074212,41.9408827],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800182":{"id":"n1819800182","loc":[-85.6131397,41.9427022],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800183":{"id":"n1819800183","loc":[-85.6171523,41.9416807],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800184":{"id":"n1819800184","loc":[-85.602465,41.9397415],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800185":{"id":"n1819800185","loc":[-85.6109296,41.9410583],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800186":{"id":"n1819800186","loc":[-85.6165729,41.9418004],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800189":{"id":"n1819800189","loc":[-85.5866293,41.9458224],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800191":{"id":"n1819800191","loc":[-85.5853311,41.9466603],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:21Z","tags":{}},"n1819800201":{"id":"n1819800201","loc":[-85.6101142,41.9433406],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800202":{"id":"n1819800202","loc":[-85.600963,41.9428618],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800206":{"id":"n1819800206","loc":[-85.6154357,41.9427501],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800207":{"id":"n1819800207","loc":[-85.6040309,41.9414094],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800209":{"id":"n1819800209","loc":[-85.6113694,41.943189],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800211":{"id":"n1819800211","loc":[-85.618032,41.9416408],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800214":{"id":"n1819800214","loc":[-85.5959419,41.9402602],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800219":{"id":"n1819800219","loc":[-85.5972117,41.9420043],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800223":{"id":"n1819800223","loc":[-85.6117171,41.9430019],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800224":{"id":"n1819800224","loc":[-85.5977873,41.9395579],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800226":{"id":"n1819800226","loc":[-85.5917362,41.9432209],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800228":{"id":"n1819800228","loc":[-85.6055759,41.9419122],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800229":{"id":"n1819800229","loc":[-85.6203395,41.9425595],"version":"2","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n1819800233":{"id":"n1819800233","loc":[-85.6107579,41.9433007],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800234":{"id":"n1819800234","loc":[-85.6039773,41.9412498],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800235":{"id":"n1819800235","loc":[-85.6000977,41.9412861],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800236":{"id":"n1819800236","loc":[-85.6026689,41.9407231],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:22Z","tags":{}},"n1819800237":{"id":"n1819800237","loc":[-85.615161,41.9428662],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800238":{"id":"n1819800238","loc":[-85.5878953,41.9454314],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800239":{"id":"n1819800239","loc":[-85.6035267,41.941569],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800240":{"id":"n1819800240","loc":[-85.5929738,41.9450208],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800241":{"id":"n1819800241","loc":[-85.6186329,41.9416488],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800242":{"id":"n1819800242","loc":[-85.5881136,41.9483963],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800243":{"id":"n1819800243","loc":[-85.5909208,41.9466922],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800244":{"id":"n1819800244","loc":[-85.5997721,41.9394941],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800245":{"id":"n1819800245","loc":[-85.6202064,41.9425712],"version":"2","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n1819800246":{"id":"n1819800246","loc":[-85.591071,41.9448808],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800247":{"id":"n1819800247","loc":[-85.5866078,41.9490622],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800250":{"id":"n1819800250","loc":[-85.602383,41.9420841],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800251":{"id":"n1819800251","loc":[-85.5957418,41.9426906],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800255":{"id":"n1819800255","loc":[-85.6157039,41.9416727],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800256":{"id":"n1819800256","loc":[-85.6080328,41.9410982],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800258":{"id":"n1819800258","loc":[-85.6192551,41.9414892],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800260":{"id":"n1819800260","loc":[-85.6104253,41.94117],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800261":{"id":"n1819800261","loc":[-85.6204503,41.9425709],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800263":{"id":"n1819800263","loc":[-85.5872194,41.9455431],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800264":{"id":"n1819800264","loc":[-85.616176,41.9418244],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800268":{"id":"n1819800268","loc":[-85.6120883,41.9426703],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800269":{"id":"n1819800269","loc":[-85.5894547,41.9474946],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800272":{"id":"n1819800272","loc":[-85.6209181,41.9425027],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800274":{"id":"n1819800274","loc":[-85.6122814,41.9412817],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800276":{"id":"n1819800276","loc":[-85.5895153,41.9452798],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800277":{"id":"n1819800277","loc":[-85.5884317,41.9455272],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800279":{"id":"n1819800279","loc":[-85.5884103,41.9480966],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n1819800287":{"id":"n1819800287","loc":[-85.5904917,41.9453915],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800288":{"id":"n1819800288","loc":[-85.6212292,41.9412977],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800289":{"id":"n1819800289","loc":[-85.5954377,41.9406832],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800290":{"id":"n1819800290","loc":[-85.593721,41.9420957],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800291":{"id":"n1819800291","loc":[-85.6162832,41.9427102],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800292":{"id":"n1819800292","loc":[-85.605018,41.9401804],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800293":{"id":"n1819800293","loc":[-85.6086443,41.941146],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800296":{"id":"n1819800296","loc":[-85.6204675,41.9413775],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800297":{"id":"n1819800297","loc":[-85.612496,41.9424947],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800299":{"id":"n1819800299","loc":[-85.6065629,41.9423431],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800301":{"id":"n1819800301","loc":[-85.6036125,41.9398452],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800303":{"id":"n1819800303","loc":[-85.6114767,41.94117],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800306":{"id":"n1819800306","loc":[-85.592616,41.9428139],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800308":{"id":"n1819800308","loc":[-85.6023041,41.9419521],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800310":{"id":"n1819800310","loc":[-85.6218944,41.9411061],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800311":{"id":"n1819800311","loc":[-85.6097816,41.941162],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800312":{"id":"n1819800312","loc":[-85.5922549,41.9457869],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800313":{"id":"n1819800313","loc":[-85.5986027,41.9417206],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800314":{"id":"n1819800314","loc":[-85.5918687,41.946138],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800315":{"id":"n1819800315","loc":[-85.5872875,41.948883],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:24Z","tags":{}},"n1819800316":{"id":"n1819800316","loc":[-85.594272,41.9436642],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800317":{"id":"n1819800317","loc":[-85.6176351,41.941577],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800318":{"id":"n1819800318","loc":[-85.6137834,41.9430853],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800319":{"id":"n1819800319","loc":[-85.6195383,41.942622],"version":"2","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{"leisure":"slipway"}},"n1819800320":{"id":"n1819800320","loc":[-85.5971006,41.9398053],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800321":{"id":"n1819800321","loc":[-85.601714,41.9406752],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800322":{"id":"n1819800322","loc":[-85.5908028,41.9453117],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800323":{"id":"n1819800323","loc":[-85.6062732,41.9404597],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800324":{"id":"n1819800324","loc":[-85.62124,41.9425905],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800327":{"id":"n1819800327","loc":[-85.6008664,41.942766],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800328":{"id":"n1819800328","loc":[-85.6179355,41.9428538],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800330":{"id":"n1819800330","loc":[-85.6045566,41.9415131],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800331":{"id":"n1819800331","loc":[-85.5944935,41.9414653],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800333":{"id":"n1819800333","loc":[-85.6088911,41.943181],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800334":{"id":"n1819800334","loc":[-85.5946367,41.943369],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800336":{"id":"n1819800336","loc":[-85.6150494,41.9429656],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800343":{"id":"n1819800343","loc":[-85.6096099,41.9433326],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800345":{"id":"n1819800345","loc":[-85.5915216,41.9435401],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800347":{"id":"n1819800347","loc":[-85.607786,41.9428698],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800349":{"id":"n1819800349","loc":[-85.6187616,41.9426623],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800350":{"id":"n1819800350","loc":[-85.6012527,41.9426064],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800352":{"id":"n1819800352","loc":[-85.6214867,41.9428379],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800354":{"id":"n1819800354","loc":[-85.61338,41.94293],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800355":{"id":"n1819800355","loc":[-85.5923156,41.9428139],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800357":{"id":"n1819800357","loc":[-85.5901591,41.9453197],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800359":{"id":"n1819800359","loc":[-85.6033979,41.9408827],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800360":{"id":"n1819800360","loc":[-85.6186543,41.9414653],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800363":{"id":"n1819800363","loc":[-85.6128607,41.9425665],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800365":{"id":"n1819800365","loc":[-85.614234,41.9412977],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:25Z","tags":{}},"n1819800367":{"id":"n1819800367","loc":[-85.6089662,41.9410902],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800369":{"id":"n1819800369","loc":[-85.6197379,41.9413695],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800370":{"id":"n1819800370","loc":[-85.6037348,41.941733],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800371":{"id":"n1819800371","loc":[-85.5993467,41.9415654],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800372":{"id":"n1819800372","loc":[-85.598077,41.94196],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800373":{"id":"n1819800373","loc":[-85.5984203,41.9394781],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800374":{"id":"n1819800374","loc":[-85.6013315,41.9427066],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800376":{"id":"n1819800376","loc":[-85.5934673,41.944167],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800378":{"id":"n1819800378","loc":[-85.6011062,41.9407753],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800379":{"id":"n1819800379","loc":[-85.6150602,41.9415131],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800380":{"id":"n1819800380","loc":[-85.6132148,41.9412338],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n1819800381":{"id":"n1819800381","loc":[-85.5889038,41.9453835],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{}},"n2139966621":{"id":"n2139966621","loc":[-85.6198719,41.9426184],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:17Z","tags":{}},"n2139966622":{"id":"n2139966622","loc":[-85.6197551,41.9426123],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:17Z","tags":{}},"n2139966623":{"id":"n2139966623","loc":[-85.6196467,41.9426279],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2139966624":{"id":"n2139966624","loc":[-85.6191519,41.9426221],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2139966625":{"id":"n2139966625","loc":[-85.6194153,41.9426256],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2139966626":{"id":"n2139966626","loc":[-85.6200497,41.9425812],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2139966629":{"id":"n2139966629","loc":[-85.6192123,41.9426229],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2203933101":{"id":"n2203933101","loc":[-85.6030009,41.9360592],"version":"1","changeset":"15379124","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:38:36Z","tags":{}},"w17967539":{"id":"w17967539","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:52:28Z","tags":{"highway":"residential","name":"1st Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"1st","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15335113:15313280","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185965099","n185963395","n185987021"]},"w17967751":{"id":"w17967751","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:55:03Z","tags":{"highway":"residential","name":"River St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"River","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312481:15312487","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980088","n185988961","n185988963","n185963698"]},"w17965088":{"id":"w17965088","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:34:20Z","tags":{"highway":"residential","name":"9th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"9th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314207:15313759:15313772:15313802:15313796:15313781:15314179","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185945133","n185964320","n185964322","n185964324","n185964326","n185964328","n185964329","n185964330","n185964331"]},"w17964467":{"id":"w17964467","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:29:37Z","tags":{"highway":"residential","name":"Mechanic St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Mechanic","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312501:15312497:15335073","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958030","n185958032","n185958034","n185958036"]},"w134150842":{"id":"w134150842","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:56Z","tags":{"bridge":"yes","highway":"residential","name":"6th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"6th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312892:15312519","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185980090","n185980093"]},"w17966740":{"id":"w17966740","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:07Z","tags":{"highway":"residential","name":"6th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"6th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312892:15312519","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185977754","n185980075","n185980077","n185980078","n185980079","n185980081","n185980083","n185980085","n185958034","n185980088","n185980090"]},"w170844765":{"id":"w170844765","version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:26Z","tags":{"waterway":"dam"},"nodes":["n1819800304","n1819800232","n1819800325","n1819800188"]},"w17967745":{"id":"w17967745","version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:21Z","tags":{"highway":"residential","name":"River St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"River","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185981173","n185967077","n185963099","n185958498","n185988943","n185964331","n185975332"]},"w17968113":{"id":"w17968113","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:56:09Z","tags":{"highway":"residential","name":"Green St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Green","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314409","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185988943","n185991378"]},"w134150833":{"id":"w134150833","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:55Z","tags":{"highway":"residential","name":"6th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"6th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312892:15312519","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185980093","n1475283999","n185963392"]},"w17967935":{"id":"w17967935","version":"3","changeset":"15379124","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:38:37Z","tags":{"name":"Michigan Central Railroad","railway":"abandoned","tiger:cfcc":"B11","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan Central Railroad","tiger:reviewed":"no"},"nodes":["n185972757","n185990192","n185990194","n185990195","n185990196","n185990198","n185990200","n185990202","n185990204","n185990206","n185990209","n185952239","n185990211","n185990212","n185990213","n185990214","n2203933101","n185973251"]},"w17965993":{"id":"w17965993","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:19Z","tags":{"name":"Conrail Railroad","railway":"abandoned","tiger:cfcc":"B11","tiger:county":"St. Joseph, MI","tiger:name_base":"Conrail Railroad","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314180:15314177","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185957831","n185972752","n185972754","n185972756","n185972757"]},"w17966211":{"id":"w17966211","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:07Z","tags":{"highway":"residential","name":"8th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"8th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313757:15313771:15313791:15313794:15313799:15313811:15313814:15313824:15313846:15314618:15313817:15313788:15314178:15324590","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185975315","n185975316","n185954490","n185945395","n185975317","n185974509","n185945135","n185975318","n185961186","n185967634","n185975320","n185970833","n185958036","n185975325","n185975326","n185975327","n185975328","n185975330","n185975332"]},"w170844766":{"id":"w170844766","version":"2","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{"source":"Bing","waterway":"riverbank"},"nodes":["n1819800229","n1819800245","n2139966626","n2139966621","n2139966622","n2139966623","n1819800319","n2139966625","n2139966629","n2139966624","n1819800349","n1819800328","n1819800291","n1819800206","n1819800237","n1819800336","n1819800318","n1819800354","n1819800182","n1819800363","n1819800297","n1819800268","n1819800223","n1819800209","n1819800233","n1819800201","n1819800343","n1819800333","n1819800347","n1819800299","n1819800228","n1819800330","n1819800370","n1819800250","n1819800374","n1819800202","n1819800327","n1819800350","n1819800308","n1819800239","n1819800207","n1819800234","n1819800359","n1819800236","n1819800321","n1819800378","n1819800235","n1819800371","n1819800313","n1819800372","n1819800219","n1819800251","n1819800334","n1819800316","n1819800376","n1819800240","n1819800312","n1819800314","n1819800243","n1819800269","n1819800279","n1819800242","n1819800315","n1819800247","n1819800191","n1819800189","n1819800263","n1819800238","n1819800277","n1819800180","n1819800381","n1819800276","n1819800357","n1819800287","n1819800322","n1819800246","n1819800345","n1819800226","n1819800355","n1819800306","n1819800290","n1819800331","n1819800289","n1819800214","n1819800320","n1819800224","n1819800373","n1819800244","n1819800184","n1819800301","n1819800292","n1819800323","n1819800181","n1819800256","n1819800293","n1819800367","n1819800311","n1819800260","n1819800185","n1819800303","n1819800274","n1819800380","n1819800365","n1819800379","n1819800255","n1819800264","n1819800186","n1819800183","n1819800317","n1819800211","n1819800241","n1819800360","n1819800258","n1819800369","n1819800296","n1819800288","n1819800310","n1819800204","n1819800375","n1819800216","n1819800377","n1819800248","n1819800227","n1819800368","n1819800231","n1819800188","n1819800325","n1819800232","n1819800304","n1819800271","n1819800213","n1819800266","n1819800221","n1819800294","n1819800362","n1819800199","n1819800230","n1819800218","n1819800352","n1819800324","n1819800272","n1819800261","n1819800229"]},"n1875654132":{"id":"n1875654132","loc":[-85.6297439,41.939808],"version":"1","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:36Z","tags":{}},"n1475293263":{"id":"n1475293263","loc":[-85.6296235,41.939922],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:02Z","tags":{}},"n185947850":{"id":"n185947850","loc":[-85.631594,41.942613],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:22Z","tags":{}},"n185952745":{"id":"n185952745","loc":[-85.630986,41.941786],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:25Z","tags":{}},"n185972907":{"id":"n185972907","loc":[-85.631797,41.9420055],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972911":{"id":"n185972911","loc":[-85.6309723,41.9411623],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972915":{"id":"n185972915","loc":[-85.6295971,41.939267],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n1475293223":{"id":"n1475293223","loc":[-85.6313962,41.9416114],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:50Z","tags":{"railway":"level_crossing"}},"n1475293231":{"id":"n1475293231","loc":[-85.6318779,41.9415447],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:50Z","tags":{}},"n1475293241":{"id":"n1475293241","loc":[-85.6304613,41.9405499],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293246":{"id":"n1475293246","loc":[-85.6297512,41.9395393],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:02Z","tags":{"railway":"level_crossing"}},"n1475293251":{"id":"n1475293251","loc":[-85.6316633,41.9415128],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n2139982404":{"id":"n2139982404","loc":[-85.6313283,41.9413748],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982407":{"id":"n2139982407","loc":[-85.6325545,41.9417787],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982408":{"id":"n2139982408","loc":[-85.6324499,41.9417693],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982409":{"id":"n2139982409","loc":[-85.6324753,41.9416444],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982410":{"id":"n2139982410","loc":[-85.6325814,41.9416538],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982411":{"id":"n2139982411","loc":[-85.6319572,41.9413515],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982412":{"id":"n2139982412","loc":[-85.6322925,41.941139],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982413":{"id":"n2139982413","loc":[-85.6323153,41.941153],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982414":{"id":"n2139982414","loc":[-85.6323019,41.9412617],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982415":{"id":"n2139982415","loc":[-85.6323703,41.9412667],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982416":{"id":"n2139982416","loc":[-85.6323555,41.941538],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982417":{"id":"n2139982417","loc":[-85.6321343,41.9416777],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982418":{"id":"n2139982418","loc":[-85.6319425,41.9416866],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982419":{"id":"n2139982419","loc":[-85.6320303,41.9416941],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982420":{"id":"n2139982420","loc":[-85.6321665,41.9415554],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982421":{"id":"n2139982421","loc":[-85.632412,41.9414164],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982422":{"id":"n2139982422","loc":[-85.6324801,41.9413421],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982423":{"id":"n2139982423","loc":[-85.6325023,41.9412585],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982424":{"id":"n2139982424","loc":[-85.6324532,41.9411607],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982425":{"id":"n2139982425","loc":[-85.6323502,41.941103],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982426":{"id":"n2139982426","loc":[-85.6322362,41.9411183],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982427":{"id":"n2139982427","loc":[-85.6318941,41.9413551],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982428":{"id":"n2139982428","loc":[-85.6318592,41.9414105],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982429":{"id":"n2139982429","loc":[-85.6320111,41.9415866],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982430":{"id":"n2139982430","loc":[-85.632446,41.9413792],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982431":{"id":"n2139982431","loc":[-85.6325112,41.941416],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982432":{"id":"n2139982432","loc":[-85.6325449,41.9416345],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982433":{"id":"n2139982433","loc":[-85.6326122,41.94164],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982434":{"id":"n2139982434","loc":[-85.6325954,41.9421966],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982435":{"id":"n2139982435","loc":[-85.6325655,41.9422411],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982436":{"id":"n2139982436","loc":[-85.632515,41.9422564],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982437":{"id":"n2139982437","loc":[-85.6324495,41.94223],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982438":{"id":"n2139982438","loc":[-85.6324009,41.9421743],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982439":{"id":"n2139982439","loc":[-85.6323915,41.9421145],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982440":{"id":"n2139982440","loc":[-85.6320287,41.9418585],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n2139982441":{"id":"n2139982441","loc":[-85.6318285,41.9416387],"version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{}},"n1475293258":{"id":"n1475293258","loc":[-85.6318289,41.9415077],"version":"2","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{}},"n2168544754":{"id":"n2168544754","loc":[-85.6312814,41.9431198],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544755":{"id":"n2168544755","loc":[-85.6314212,41.9430646],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544756":{"id":"n2168544756","loc":[-85.6313387,41.942949],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544757":{"id":"n2168544757","loc":[-85.6311989,41.9430041],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544758":{"id":"n2168544758","loc":[-85.6311024,41.9429313],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544759":{"id":"n2168544759","loc":[-85.6310087,41.9428087],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544760":{"id":"n2168544760","loc":[-85.6313831,41.9426504],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544761":{"id":"n2168544761","loc":[-85.6314768,41.9427729],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544762":{"id":"n2168544762","loc":[-85.6306376,41.942809],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544763":{"id":"n2168544763","loc":[-85.6307378,41.9429427],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544764":{"id":"n2168544764","loc":[-85.630841,41.9428998],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544765":{"id":"n2168544765","loc":[-85.6307408,41.9427662],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544766":{"id":"n2168544766","loc":[-85.6305404,41.9426029],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544767":{"id":"n2168544767","loc":[-85.6304976,41.9426194],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544768":{"id":"n2168544768","loc":[-85.6305673,41.9427184],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544769":{"id":"n2168544769","loc":[-85.6306164,41.9426984],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544770":{"id":"n2168544770","loc":[-85.6306418,41.9427302],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544771":{"id":"n2168544771","loc":[-85.6306861,41.9427137],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544772":{"id":"n2168544772","loc":[-85.6307146,41.9427537],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544773":{"id":"n2168544773","loc":[-85.6308999,41.9426807],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544774":{"id":"n2168544774","loc":[-85.6308429,41.9426053],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544775":{"id":"n2168544775","loc":[-85.6308999,41.9425806],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544776":{"id":"n2168544776","loc":[-85.6308318,41.9424875],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544777":{"id":"n2168544777","loc":[-85.6307732,41.9425087],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544778":{"id":"n2168544778","loc":[-85.6307178,41.9424357],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2168544779":{"id":"n2168544779","loc":[-85.630485,41.942524],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:02Z","tags":{}},"n2189099387":{"id":"n2189099387","loc":[-85.631203,41.9393371],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099404":{"id":"n2189099404","loc":[-85.6301963,41.9391363],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099405":{"id":"n2189099405","loc":[-85.6304447,41.9391352],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099406":{"id":"n2189099406","loc":[-85.6304463,41.9393391],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099407":{"id":"n2189099407","loc":[-85.6308435,41.9393373],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099408":{"id":"n2189099408","loc":[-85.6308418,41.9391251],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099409":{"id":"n2189099409","loc":[-85.6310929,41.939124],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099410":{"id":"n2189099410","loc":[-85.6310946,41.9393376],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189112720":{"id":"n2189112720","loc":[-85.6314677,41.9412327],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112721":{"id":"n2189112721","loc":[-85.6313337,41.9411397],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112722":{"id":"n2189112722","loc":[-85.6320521,41.9405678],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112723":{"id":"n2189112723","loc":[-85.6321899,41.9406633],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112724":{"id":"n2189112724","loc":[-85.6313229,41.9408344],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112725":{"id":"n2189112725","loc":[-85.6311223,41.9410018],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112726":{"id":"n2189112726","loc":[-85.6313205,41.9411333],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112727":{"id":"n2189112727","loc":[-85.6315211,41.9409659],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112728":{"id":"n2189112728","loc":[-85.6311035,41.9402529],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112729":{"id":"n2189112729","loc":[-85.631226,41.9402107],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112730":{"id":"n2189112730","loc":[-85.6315966,41.9408051],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112731":{"id":"n2189112731","loc":[-85.6314741,41.9408473],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112732":{"id":"n2189112732","loc":[-85.6318114,41.940534],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112733":{"id":"n2189112733","loc":[-85.631588,41.94061],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112734":{"id":"n2189112734","loc":[-85.6314379,41.940366],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112735":{"id":"n2189112735","loc":[-85.6316613,41.94029],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112736":{"id":"n2189112736","loc":[-85.6306214,41.9400415],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112737":{"id":"n2189112737","loc":[-85.6304362,41.9397728],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112738":{"id":"n2189112738","loc":[-85.6305899,41.9397142],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112739":{"id":"n2189112739","loc":[-85.6307751,41.9399828],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112740":{"id":"n2189112740","loc":[-85.6304695,41.9401673],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112741":{"id":"n2189112741","loc":[-85.6301298,41.9396855],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112742":{"id":"n2189112742","loc":[-85.6303016,41.9396184],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112743":{"id":"n2189112743","loc":[-85.6306413,41.9401003],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112744":{"id":"n2189112744","loc":[-85.6309656,41.9406189],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112745":{"id":"n2189112745","loc":[-85.6308738,41.940493],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112746":{"id":"n2189112746","loc":[-85.6309333,41.940469],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112747":{"id":"n2189112747","loc":[-85.6307634,41.9402358],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112748":{"id":"n2189112748","loc":[-85.6308798,41.9401889],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112749":{"id":"n2189112749","loc":[-85.6311416,41.940548],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112750":{"id":"n2189112750","loc":[-85.6309577,41.9408708],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112751":{"id":"n2189112751","loc":[-85.630874,41.9407777],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112752":{"id":"n2189112752","loc":[-85.6310622,41.9406841],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112753":{"id":"n2189112753","loc":[-85.6311459,41.9407772],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112754":{"id":"n2189112754","loc":[-85.6320308,41.9405747],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112755":{"id":"n2189112755","loc":[-85.6317769,41.9401857],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112756":{"id":"n2189112756","loc":[-85.6313462,41.9401785],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:14Z","tags":{}},"n2189112757":{"id":"n2189112757","loc":[-85.6313423,41.9401199],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112758":{"id":"n2189112758","loc":[-85.6318308,41.9401184],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112759":{"id":"n2189112759","loc":[-85.6321154,41.9405433],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112760":{"id":"n2189112760","loc":[-85.6310307,41.941683],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112761":{"id":"n2189112761","loc":[-85.6309808,41.9416078],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112762":{"id":"n2189112762","loc":[-85.6312094,41.9415156],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112763":{"id":"n2189112763","loc":[-85.6312636,41.9415865],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112764":{"id":"n2189112764","loc":[-85.6309384,41.94155],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112765":{"id":"n2189112765","loc":[-85.631156,41.9414619],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112766":{"id":"n2189112766","loc":[-85.6311968,41.94152],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112767":{"id":"n2189112767","loc":[-85.6308946,41.9414851],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112768":{"id":"n2189112768","loc":[-85.6308237,41.9413888],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112769":{"id":"n2189112769","loc":[-85.6309858,41.9413228],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112770":{"id":"n2189112770","loc":[-85.6310567,41.9414192],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112771":{"id":"n2189112771","loc":[-85.6307774,41.9413276],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112772":{"id":"n2189112772","loc":[-85.6309068,41.9412735],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112773":{"id":"n2189112773","loc":[-85.6309531,41.9413347],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112774":{"id":"n2189112774","loc":[-85.6307975,41.9412466],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112775":{"id":"n2189112775","loc":[-85.6307006,41.9411699],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112776":{"id":"n2189112776","loc":[-85.6308289,41.941113],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112777":{"id":"n2189112777","loc":[-85.6308997,41.9412012],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112778":{"id":"n2189112778","loc":[-85.630765,41.9412062],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112779":{"id":"n2189112779","loc":[-85.630739,41.9412177],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112780":{"id":"n2189112780","loc":[-85.6305822,41.9410391],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112781":{"id":"n2189112781","loc":[-85.6304117,41.9408177],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112782":{"id":"n2189112782","loc":[-85.6305086,41.9407769],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112783":{"id":"n2189112783","loc":[-85.6306779,41.9410044],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112784":{"id":"n2189112784","loc":[-85.6307734,41.9421663],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112785":{"id":"n2189112785","loc":[-85.630708,41.9420741],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112786":{"id":"n2189112786","loc":[-85.630863,41.9420133],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112787":{"id":"n2189112787","loc":[-85.6309285,41.9421055],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112788":{"id":"n2189112788","loc":[-85.6307014,41.9420263],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112789":{"id":"n2189112789","loc":[-85.6306648,41.941971],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112790":{"id":"n2189112790","loc":[-85.6307927,41.9419178],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112791":{"id":"n2189112791","loc":[-85.6308366,41.9419696],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112792":{"id":"n2189112792","loc":[-85.6307574,41.9418708],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112793":{"id":"n2189112793","loc":[-85.6306288,41.9419231],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112794":{"id":"n2189112794","loc":[-85.6306943,41.9417835],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112795":{"id":"n2189112795","loc":[-85.6305344,41.9418474],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189112796":{"id":"n2189112796","loc":[-85.6305981,41.9419355],"version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:15Z","tags":{}},"n2189123410":{"id":"n2189123410","loc":[-85.6315476,41.9393801],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123412":{"id":"n2189123412","loc":[-85.6315247,41.9399188],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{}},"n2189123415":{"id":"n2189123415","loc":[-85.6316484,41.9400433],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{}},"n185945138":{"id":"n185945138","loc":[-85.627073,41.93319],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:52:24Z","tags":{}},"n185945142":{"id":"n185945142","loc":[-85.6296891,41.9331674],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:00Z","tags":{}},"n185945401":{"id":"n185945401","loc":[-85.6269,41.930199],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:52:30Z","tags":{}},"n185945405":{"id":"n185945405","loc":[-85.6296598,41.9301676],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:00Z","tags":{}},"n185956891":{"id":"n185956891","loc":[-85.6251617,41.9255049],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:00Z","tags":{}},"n185959979":{"id":"n185959979","loc":[-85.626333,41.928347],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:03Z","tags":{}},"n185959983":{"id":"n185959983","loc":[-85.6296419,41.9283288],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185961192":{"id":"n185961192","loc":[-85.627053,41.9352031],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185961200":{"id":"n185961200","loc":[-85.6297088,41.9351902],"version":"4","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185963655":{"id":"n185963655","loc":[-85.6296112,41.9273948],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:00Z","tags":{}},"n185963665":{"id":"n185963665","loc":[-85.626047,41.92737],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:01Z","tags":{}},"n185963688":{"id":"n185963688","loc":[-85.6296503,41.9292199],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185963689":{"id":"n185963689","loc":[-85.6296694,41.931157],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185963690":{"id":"n185963690","loc":[-85.6296791,41.9321485],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185963691":{"id":"n185963691","loc":[-85.6296991,41.9341973],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185967638":{"id":"n185967638","loc":[-85.627089,41.9361884],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185972917":{"id":"n185972917","loc":[-85.6293759,41.9388605],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185972919":{"id":"n185972919","loc":[-85.6290337,41.9380234],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:01Z","tags":{}},"n185972921":{"id":"n185972921","loc":[-85.628424,41.936212],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:40Z","tags":{}},"n185972923":{"id":"n185972923","loc":[-85.628367,41.936029],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:40Z","tags":{}},"n185974511":{"id":"n185974511","loc":[-85.627064,41.932169],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:19Z","tags":{}},"n185977728":{"id":"n185977728","loc":[-85.625605,41.925842],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977729":{"id":"n185977729","loc":[-85.625685,41.926163],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977731":{"id":"n185977731","loc":[-85.6257845,41.9264872],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185977733":{"id":"n185977733","loc":[-85.62663,41.929251],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977734":{"id":"n185977734","loc":[-85.627008,41.930642],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977736":{"id":"n185977736","loc":[-85.627029,41.930775],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977738":{"id":"n185977738","loc":[-85.627041,41.930946],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:03Z","tags":{}},"n185977739":{"id":"n185977739","loc":[-85.6270379,41.9311746],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185977742":{"id":"n185977742","loc":[-85.627055,41.934206],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977744":{"id":"n185977744","loc":[-85.627084,41.936804],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977746":{"id":"n185977746","loc":[-85.627104,41.936914],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977748":{"id":"n185977748","loc":[-85.627156,41.937026],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977750":{"id":"n185977750","loc":[-85.6272406,41.9371672],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:59Z","tags":{}},"n185977752":{"id":"n185977752","loc":[-85.627317,41.93723],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977753":{"id":"n185977753","loc":[-85.627422,41.937312],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977755":{"id":"n185977755","loc":[-85.627754,41.937504],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977757":{"id":"n185977757","loc":[-85.627883,41.937623],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n185977761":{"id":"n185977761","loc":[-85.627984,41.93773],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:04Z","tags":{}},"n1475283996":{"id":"n1475283996","loc":[-85.6270514,41.9317122],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{"railway":"level_crossing"}},"n1475284004":{"id":"n1475284004","loc":[-85.6278177,41.9342117],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{"railway":"level_crossing"}},"n1475284014":{"id":"n1475284014","loc":[-85.6251877,41.9255913],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{"railway":"level_crossing"}},"n1475284017":{"id":"n1475284017","loc":[-85.6274992,41.9331816],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{"railway":"level_crossing"}},"n1475284021":{"id":"n1475284021","loc":[-85.6297108,41.9353939],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:02Z","tags":{"railway":"level_crossing"}},"n1475284027":{"id":"n1475284027","loc":[-85.62811,41.935198],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:03Z","tags":{"railway":"level_crossing"}},"n1475284035":{"id":"n1475284035","loc":[-85.626888,41.9311757],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:03Z","tags":{"railway":"level_crossing"}},"n1475293245":{"id":"n1475293245","loc":[-85.6286047,41.9367881],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1875654302":{"id":"n1875654302","loc":[-85.6296367,41.927491],"version":"1","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:43Z","tags":{}},"n2189099388":{"id":"n2189099388","loc":[-85.6312007,41.9389988],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099389":{"id":"n2189099389","loc":[-85.6311003,41.9389992],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099390":{"id":"n2189099390","loc":[-85.6310988,41.9387847],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099391":{"id":"n2189099391","loc":[-85.6312165,41.9387843],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099392":{"id":"n2189099392","loc":[-85.6312152,41.9385857],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099393":{"id":"n2189099393","loc":[-85.6310877,41.9385862],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099394":{"id":"n2189099394","loc":[-85.6310858,41.9383161],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099395":{"id":"n2189099395","loc":[-85.6302002,41.9383196],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099396":{"id":"n2189099396","loc":[-85.6302011,41.9384472],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099397":{"id":"n2189099397","loc":[-85.6301018,41.9384476],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099398":{"id":"n2189099398","loc":[-85.6301025,41.9385419],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099399":{"id":"n2189099399","loc":[-85.6299275,41.9385427],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099400":{"id":"n2189099400","loc":[-85.62993,41.9388653],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099401":{"id":"n2189099401","loc":[-85.630107,41.9388645],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099402":{"id":"n2189099402","loc":[-85.6301079,41.9389908],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189099403":{"id":"n2189099403","loc":[-85.6301951,41.9389904],"version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:04Z","tags":{}},"n2189123382":{"id":"n2189123382","loc":[-85.6336279,41.9354365],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123384":{"id":"n2189123384","loc":[-85.6328492,41.9355177],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123387":{"id":"n2189123387","loc":[-85.6323762,41.9357396],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123388":{"id":"n2189123388","loc":[-85.6315174,41.9358966],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123389":{"id":"n2189123389","loc":[-85.6304331,41.936124],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123390":{"id":"n2189123390","loc":[-85.6302075,41.9364271],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123391":{"id":"n2189123391","loc":[-85.6303458,41.9367953],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123392":{"id":"n2189123392","loc":[-85.6299601,41.9369739],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123393":{"id":"n2189123393","loc":[-85.6299164,41.9374882],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123394":{"id":"n2189123394","loc":[-85.6299455,41.9378022],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123395":{"id":"n2189123395","loc":[-85.6299771,41.9379053],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123396":{"id":"n2189123396","loc":[-85.6301597,41.9379091],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123397":{"id":"n2189123397","loc":[-85.6308042,41.9377913],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123398":{"id":"n2189123398","loc":[-85.6316885,41.9378082],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123399":{"id":"n2189123399","loc":[-85.6316848,41.9380079],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123400":{"id":"n2189123400","loc":[-85.6318449,41.9381161],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123401":{"id":"n2189123401","loc":[-85.6320705,41.9381811],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123402":{"id":"n2189123402","loc":[-85.6321433,41.9383706],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123404":{"id":"n2189123404","loc":[-85.632056,41.9384355],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123406":{"id":"n2189123406","loc":[-85.6317867,41.9384572],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123409":{"id":"n2189123409","loc":[-85.6316572,41.9387281],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:21Z","tags":{}},"n2189123417":{"id":"n2189123417","loc":[-85.6315946,41.93775],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{}},"n2189123419":{"id":"n2189123419","loc":[-85.6302641,41.9378393],"version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{}},"w208640158":{"id":"w208640158","version":"1","changeset":"15277145","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:41:22Z","tags":{"area":"yes","natural":"wetland"},"nodes":["n2189123379","n2189123382","n2189123384","n2189123387","n2189123388","n2189123389","n2189123390","n2189123391","n2189123392","n2189123393","n2189123394","n2189123395","n2189123396","n2189123419","n2189123397","n2189123417","n2189123398","n2189123399","n2189123400","n2189123401","n2189123402","n2189123404","n2189123406","n2189123409","n2189123410","n2189123412","n2189123415","n1819805722","n1819805861","n1819805887","n1819805760","n1819805641","n1819805632","n2189123379"]},"w134150787":{"id":"w134150787","version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:20Z","tags":{"name":"Conrail Railroad","railway":"rail","tiger:cfcc":"B11","tiger:county":"St. Joseph, MI","tiger:name_base":"Conrail Railroad","tiger:reviewed":"no"},"nodes":["n185972905","n185972907","n1475293223","n185972911","n1475293241","n1475293246","n185972915","n185972917","n185972919","n1475293245","n185972921","n185972923","n1475284027","n1475284004","n1475284017","n1475283996","n1475284035","n1475284014","n185956891"]},"w208639443":{"id":"w208639443","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112720","n2189112721","n2189112722","n2189112723","n2189112720"]},"w17966462":{"id":"w17966462","version":"9","changeset":"15421127","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-19T15:12:00Z","tags":{"highway":"secondary","name":"South Main Street","old_ref":"US 131","ref":"M 86","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Main","tiger:name_base_1":"State Highway 86","tiger:name_direction_prefix":"S","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185977728","n185977729","n185977731","n185963665","n185959979","n185977733","n185945401","n185977734","n185977736","n185977738","n185977739","n1475283996","n185974511","n185945138","n185977742","n185961192","n185967638","n185977744","n185977746","n185977748","n185977750","n185977752","n185977753","n185977754","n185977755","n185977757","n185977761","n185958030","n1475293263","n185963698","n185952745","n185947850","n185977762"]},"w203985741":{"id":"w203985741","version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:27Z","tags":{"area":"yes","leisure":"park","name":"Conservation Park","website":"http://www.threeriversmi.us/?page_id=53"},"nodes":["n2139982404","n2139982405","n2139982399","n2139982400","n1819805770","n2139982402","n2139982403","n2139982401","n1819805780","n1819805834","n2139982406","n2139982404"]},"w17963676":{"id":"w17963676","version":"3","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312976","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n1475293258","n2139982428","n2139982427","n2139982426","n2139982425","n2139982424","n2139982423","n2139982422","n2139982430","n2139982421","n2139982420","n2139982429","n1475293231","n1475293258","n1475293251","n1475293223","n185952745"]},"w203985745":{"id":"w203985745","version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{"highway":"footway"},"nodes":["n2139982430","n2139982431","n2139982432","n2139982433","n2139982434","n2139982435","n2139982436","n2139982437","n2139982438","n2139982439","n2139982440","n2139982441","n1475293231"]},"w208639451":{"id":"w208639451","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112754","n2189112755","n2189112756","n2189112757","n2189112758","n2189112759","n2189112754"]},"w208639452":{"id":"w208639452","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112760","n2189112761","n2189112766","n2189112762","n2189112763","n2189112760"]},"w206805244":{"id":"w206805244","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544766","n2168544767","n2168544768","n2168544769","n2168544770","n2168544771","n2168544772","n2168544773","n2168544774","n2168544775","n2168544776","n2168544777","n2168544778","n2168544779","n2168544766"]},"w208639444":{"id":"w208639444","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112724","n2189112725","n2189112726","n2189112727","n2189112724"]},"w208639450":{"id":"w208639450","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112750","n2189112751","n2189112752","n2189112753","n2189112750"]},"w208639448":{"id":"w208639448","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112740","n2189112741","n2189112742","n2189112743","n2189112740"]},"w208637859":{"id":"w208637859","version":"1","changeset":"15276938","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:06:06Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189099387","n2189099388","n2189099389","n2189099390","n2189099391","n2189099392","n2189099393","n2189099394","n2189099395","n2189099396","n2189099397","n2189099398","n2189099399","n2189099400","n2189099401","n2189099402","n2189099403","n2189099404","n2189099405","n2189099406","n2189099407","n2189099408","n2189099409","n2189099410","n2189099387"]},"w208639453":{"id":"w208639453","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112764","n2189112765","n2189112766","n2189112761","n2189112764"]},"w208639456":{"id":"w208639456","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112774","n2189112778","n2189112779","n2189112775","n2189112776","n2189112777","n2189112774"]},"w208639445":{"id":"w208639445","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112728","n2189112729","n2189112730","n2189112731","n2189112728"]},"w17967776":{"id":"w17967776","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:54:17Z","tags":{"highway":"residential","name":"5th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"5th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312495","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185958032","n185988963"]},"w208639461":{"id":"w208639461","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112792","n2189112794","n2189112795","n2189112796","n2189112793","n2189112792"]},"w206805241":{"id":"w206805241","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544754","n2168544755","n2168544756","n2168544757","n2168544754"]},"w208639449":{"id":"w208639449","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112744","n2189112745","n2189112746","n2189112747","n2189112748","n2189112749","n2189112744"]},"w208639455":{"id":"w208639455","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112771","n2189112772","n2189112773","n2189112768","n2189112771"]},"w208639457":{"id":"w208639457","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112780","n2189112781","n2189112782","n2189112783","n2189112780"]},"w208639446":{"id":"w208639446","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112732","n2189112733","n2189112734","n2189112735","n2189112732"]},"w208639454":{"id":"w208639454","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112767","n2189112768","n2189112773","n2189112769","n2189112770","n2189112767"]},"w203985743":{"id":"w203985743","version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2139982411","n2139982412","n2139982413","n2139982414","n2139982415","n2139982416","n2139982417","n2139982419","n2139982418","n2139982411"]},"w17965023":{"id":"w17965023","version":"4","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:10Z","tags":{"highway":"residential","name":"4th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"4th","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313205","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185963655","n1875654302","n185959983","n185963688","n185945405","n185963689","n185963690","n185945142","n185963691","n185961200","n1475284021","n1475293246","n1875654132","n1475293263"]},"w206805242":{"id":"w206805242","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544758","n2168544759","n2168544760","n2168544761","n2168544758"]},"w208639460":{"id":"w208639460","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112792","n2189112793","n2189112789","n2189112790","n2189112792"]},"w208639447":{"id":"w208639447","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:17Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112736","n2189112737","n2189112738","n2189112739","n2189112736"]},"w208639458":{"id":"w208639458","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112784","n2189112785","n2189112786","n2189112787","n2189112784"]},"w203985744":{"id":"w203985744","version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{"highway":"service"},"nodes":["n2139982425","n2139982400"]},"w208639459":{"id":"w208639459","version":"1","changeset":"15277056","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T23:26:18Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189112788","n2189112789","n2189112790","n2189112791","n2189112788"]},"w203985742":{"id":"w203985742","version":"1","changeset":"14894784","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:53:28Z","tags":{"amenity":"shelter","area":"yes","shelter_type":"picnic_shelter"},"nodes":["n2139982407","n2139982408","n2139982409","n2139982410","n2139982407"]},"w206805243":{"id":"w206805243","version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:03Z","tags":{"area":"yes","building":"yes"},"nodes":["n2168544762","n2168544763","n2168544764","n2168544765","n2168544762"]},"n185959081":{"id":"n185959081","loc":[-85.628469,41.948674],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:41Z","tags":{}},"n185967427":{"id":"n185967427","loc":[-85.632054,41.951174],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967424":{"id":"n185967424","loc":[-85.6320391,41.9499109],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185968101":{"id":"n185968101","loc":[-85.6308395,41.9511969],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185960792":{"id":"n185960792","loc":[-85.632074,41.953707],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:24Z","tags":{}},"n185961389":{"id":"n185961389","loc":[-85.630935,41.959037],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:39Z","tags":{}},"n185961391":{"id":"n185961391","loc":[-85.632169,41.959025],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:39Z","tags":{}},"n185965395":{"id":"n185965395","loc":[-85.63216,41.959859],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:52Z","tags":{}},"n185966953":{"id":"n185966953","loc":[-85.630894,41.957428],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185966955":{"id":"n185966955","loc":[-85.632122,41.957427],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185967430":{"id":"n185967430","loc":[-85.632077,41.952453],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967432":{"id":"n185967432","loc":[-85.632095,41.954685],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967434":{"id":"n185967434","loc":[-85.632121,41.955914],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967436":{"id":"n185967436","loc":[-85.632128,41.9583],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967438":{"id":"n185967438","loc":[-85.632187,41.960681],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185967440":{"id":"n185967440","loc":[-85.632182,41.961493],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:04Z","tags":{}},"n185968102":{"id":"n185968102","loc":[-85.630855,41.952452],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968104":{"id":"n185968104","loc":[-85.630887,41.953714],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968106":{"id":"n185968106","loc":[-85.630883,41.954692],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968108":{"id":"n185968108","loc":[-85.630904,41.955913],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968110":{"id":"n185968110","loc":[-85.630904,41.958058],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968112":{"id":"n185968112","loc":[-85.630952,41.960667],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968114":{"id":"n185968114","loc":[-85.630972,41.961495],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185968116":{"id":"n185968116","loc":[-85.630962,41.961967],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:22Z","tags":{}},"n185978969":{"id":"n185978969","loc":[-85.633214,41.948618],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:39Z","tags":{}},"n185985812":{"id":"n185985812","loc":[-85.633274,41.951159],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:39Z","tags":{}},"n185986155":{"id":"n185986155","loc":[-85.633258,41.949893],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:48Z","tags":{}},"n2208608826":{"id":"n2208608826","loc":[-85.6339222,41.9486225],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{}},"w17964531":{"id":"w17964531","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:30:22Z","tags":{"highway":"residential","name":"Willow Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Willow","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313189","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093"},"nodes":["n185959079","n185959081"]},"w17967386":{"id":"w17967386","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:24Z","tags":{"highway":"residential","name":"East Armitage Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Armitage","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185982195","n185968101","n185967427","n185985812","n185974583"]},"w17965502":{"id":"w17965502","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:21Z","tags":{"highway":"residential","name":"Elm Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Elm","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185968100","n185968101","n185968102","n185968104","n185968106","n185968108","n185966953","n185968110","n185961389","n185968112","n185968114","n185968116"]},"w17967844":{"id":"w17967844","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:24Z","tags":{"highway":"residential","name":"East Bennett Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Bennett","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185982193","n185967424","n185986155","n185978390"]},"w17966581":{"id":"w17966581","version":"2","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"highway":"residential","name":"E Kelsey St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Kelsey","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978967","n185978969","n2208608826","n185971578"]},"w17965402":{"id":"w17965402","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"Walnut Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Walnut","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185967422","n185967424","n185967427","n185967430","n185960792","n185967432","n185967434","n185966955","n185967436","n185961391","n185965395","n185967438","n185967440"]},"n2199093506":{"id":"n2199093506","loc":[-85.6251879,41.9478322],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093505":{"id":"n2199093505","loc":[-85.6252076,41.9477749],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093504":{"id":"n2199093504","loc":[-85.6252289,41.9477602],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093503":{"id":"n2199093503","loc":[-85.625201,41.9477492],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093502":{"id":"n2199093502","loc":[-85.6251682,41.9477066],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093501":{"id":"n2199093501","loc":[-85.6251715,41.947609],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093500":{"id":"n2199093500","loc":[-85.6252125,41.9475639],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093499":{"id":"n2199093499","loc":[-85.6252896,41.9475602],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093498":{"id":"n2199093498","loc":[-85.6253027,41.9475334],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093497":{"id":"n2199093497","loc":[-85.6253437,41.9474822],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093496":{"id":"n2199093496","loc":[-85.6254421,41.9474675],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093495":{"id":"n2199093495","loc":[-85.6256503,41.9474944],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093494":{"id":"n2199093494","loc":[-85.6257257,41.9476127],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093493":{"id":"n2199093493","loc":[-85.6257028,41.9477285],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093492":{"id":"n2199093492","loc":[-85.6255339,41.9478102],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093491":{"id":"n2199093491","loc":[-85.6253912,41.9478224],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093490":{"id":"n2199093490","loc":[-85.6253043,41.947859],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093489":{"id":"n2199093489","loc":[-85.6252027,41.9478846],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093458":{"id":"n2199093458","loc":[-85.6246876,41.9486617],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093457":{"id":"n2199093457","loc":[-85.6243127,41.9486583],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093456":{"id":"n2199093456","loc":[-85.624306,41.9490569],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093455":{"id":"n2199093455","loc":[-85.624681,41.9490603],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093514":{"id":"n2199093514","loc":[-85.6236228,41.9496059],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093513":{"id":"n2199093513","loc":[-85.6236231,41.9496997],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093512":{"id":"n2199093512","loc":[-85.623357,41.9497002],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093511":{"id":"n2199093511","loc":[-85.6233567,41.9496136],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093508":{"id":"n2199093508","loc":[-85.6239735,41.9494287],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093507":{"id":"n2199093507","loc":[-85.6239741,41.9496052],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093488":{"id":"n2199093488","loc":[-85.624497,41.9512286],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093487":{"id":"n2199093487","loc":[-85.6244966,41.9511259],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093486":{"id":"n2199093486","loc":[-85.6243151,41.9511263],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093485":{"id":"n2199093485","loc":[-85.6243154,41.951229],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093484":{"id":"n2199093484","loc":[-85.6241205,41.9508665],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093483":{"id":"n2199093483","loc":[-85.624115,41.9505249],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093482":{"id":"n2199093482","loc":[-85.6243149,41.9505231],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093481":{"id":"n2199093481","loc":[-85.6243203,41.9508648],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093480":{"id":"n2199093480","loc":[-85.624393,41.9508668],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093479":{"id":"n2199093479","loc":[-85.6243904,41.9505956],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093478":{"id":"n2199093478","loc":[-85.6246727,41.950594],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093477":{"id":"n2199093477","loc":[-85.624675,41.9508203],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093476":{"id":"n2199093476","loc":[-85.6245097,41.9508212],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093475":{"id":"n2199093475","loc":[-85.6245101,41.9508662],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093474":{"id":"n2199093474","loc":[-85.6241008,41.9493459],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093473":{"id":"n2199093473","loc":[-85.6242442,41.9493459],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093472":{"id":"n2199093472","loc":[-85.6242442,41.9493681],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093471":{"id":"n2199093471","loc":[-85.6243397,41.9493681],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093470":{"id":"n2199093470","loc":[-85.6243417,41.9493511],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093469":{"id":"n2199093469","loc":[-85.6247251,41.9493485],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093468":{"id":"n2199093468","loc":[-85.6247548,41.9504949],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093467":{"id":"n2199093467","loc":[-85.6241214,41.9505017],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093466":{"id":"n2199093466","loc":[-85.6254398,41.950174],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093465":{"id":"n2199093465","loc":[-85.6254412,41.9499872],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093464":{"id":"n2199093464","loc":[-85.6255363,41.9499876],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093463":{"id":"n2199093463","loc":[-85.6255374,41.9498439],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093462":{"id":"n2199093462","loc":[-85.6255638,41.949844],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:44Z","tags":{}},"n2199093461":{"id":"n2199093461","loc":[-85.6255652,41.9496672],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093460":{"id":"n2199093460","loc":[-85.6251823,41.9496656],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093459":{"id":"n2199093459","loc":[-85.6251785,41.9501729],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:43Z","tags":{}},"n2199093510":{"id":"n2199093510","loc":[-85.6229922,41.9496143],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n2199093509":{"id":"n2199093509","loc":[-85.6229915,41.9494306],"version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{}},"n185948903":{"id":"n185948903","loc":[-85.616514,41.947449],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:45Z","tags":{}},"n185955120":{"id":"n185955120","loc":[-85.620103,41.951],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:39Z","tags":{}},"n185955143":{"id":"n185955143","loc":[-85.619784,41.94746],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:39Z","tags":{}},"n185960124":{"id":"n185960124","loc":[-85.615238,41.947468],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:07Z","tags":{}},"n185961362":{"id":"n185961362","loc":[-85.617437,41.947451],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:38Z","tags":{}},"n185961364":{"id":"n185961364","loc":[-85.61861,41.947456],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:38Z","tags":{}},"n185961367":{"id":"n185961367","loc":[-85.620088,41.947458],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:38Z","tags":{}},"n185965105":{"id":"n185965105","loc":[-85.620087,41.94924],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:44Z","tags":{}},"n185970220":{"id":"n185970220","loc":[-85.62156,41.948333],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:04:17Z","tags":{}},"n185974697":{"id":"n185974697","loc":[-85.6201059,41.950132],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n2138420778":{"id":"n2138420778","loc":[-85.616948,41.9474499],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"w17967535":{"id":"w17967535","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:52:19Z","tags":{"highway":"residential","name":"10th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"10th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313652:15313654","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185955120","n185986812","n185983141"]},"w209716130":{"id":"w209716130","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093485","n2199093486","n2199093487","n2199093488","n2199093485"]},"w17964788":{"id":"w17964788","version":"2","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:15Z","tags":{"highway":"residential","name":"6th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"6th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313681:15313682:15329115:15329116:15330465:15330466","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185960124","n185948903","n2138420778","n185961362","n185961364","n185955143","n185961367","n185961369","n185961371"]},"w17965159":{"id":"w17965159","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:34:55Z","tags":{"highway":"residential","name":"8th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"8th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313660","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185965105","n185965108","n185965110"]},"w209716125":{"id":"w209716125","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093459","n2199093460","n2199093461","n2199093462","n2199093463","n2199093464","n2199093465","n2199093466","n2199093459"]},"w17965699":{"id":"w17965699","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:39:03Z","tags":{"highway":"residential","name":"7th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"7th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313667:15314407","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185970220","n185970222","n185970224"]},"w209716132":{"id":"w209716132","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093507","n2199093508","n2199093509","n2199093510","n2199093511","n2199093512","n2199093513","n2199093514","n2199093507"]},"w17966129":{"id":"w17966129","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:42:41Z","tags":{"highway":"residential","name":"9th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"9th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313656","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185974697","n185974699"]},"w209716127":{"id":"w209716127","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093475","n2199093476","n2199093477","n2199093478","n2199093479","n2199093480","n2199093475"]},"w209716131":{"id":"w209716131","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:46Z","tags":{"area":"yes","natural":"water","water":"pond"},"nodes":["n2199093489","n2199093490","n2199093491","n2199093492","n2199093493","n2199093494","n2199093495","n2199093496","n2199093497","n2199093498","n2199093499","n2199093500","n2199093501","n2199093502","n2199093503","n2199093504","n2199093505","n2199093506","n2199093489"]},"w209716126":{"id":"w209716126","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093467","n2199093468","n2199093469","n2199093470","n2199093471","n2199093472","n2199093473","n2199093474","n2199093467"]},"w209716124":{"id":"w209716124","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:45Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093455","n2199093456","n2199093457","n2199093458","n2199093455"]},"w209716128":{"id":"w209716128","version":"1","changeset":"15347539","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T04:54:46Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199093481","n2199093482","n2199093483","n2199093484","n2199093481"]},"n185949872":{"id":"n185949872","loc":[-85.643009,41.949264],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:20Z","tags":{}},"n185949875":{"id":"n185949875","loc":[-85.642598,41.94929],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:20Z","tags":{}},"n185949877":{"id":"n185949877","loc":[-85.642127,41.949382],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:20Z","tags":{}},"n185949881":{"id":"n185949881","loc":[-85.64169,41.949936],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:54:20Z","tags":{}},"n185988165":{"id":"n185988165","loc":[-85.642167,41.947657],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:33Z","tags":{}},"n185988167":{"id":"n185988167","loc":[-85.642347,41.947662],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:33Z","tags":{}},"n185988169":{"id":"n185988169","loc":[-85.642621,41.947659],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:33Z","tags":{}},"n185965019":{"id":"n185965019","loc":[-85.6385084,41.951127],"version":"4","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n1475293248":{"id":"n1475293248","loc":[-85.6386095,41.9512214],"version":"2","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:04Z","tags":{}},"n185962639":{"id":"n185962639","loc":[-85.649669,41.949161],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:30Z","tags":{}},"n185962810":{"id":"n185962810","loc":[-85.649907,41.949157],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:34Z","tags":{}},"n185964355":{"id":"n185964355","loc":[-85.637412,41.9511359],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185965021":{"id":"n185965021","loc":[-85.638661,41.952386],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185965023":{"id":"n185965023","loc":[-85.638654,41.953665],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185965025":{"id":"n185965025","loc":[-85.638694,41.954649],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185965027":{"id":"n185965027","loc":[-85.638724,41.955913],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185971415":{"id":"n185971415","loc":[-85.644466,41.949246],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:02Z","tags":{}},"n185971417":{"id":"n185971417","loc":[-85.647021,41.949193],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:02Z","tags":{}},"n185971420":{"id":"n185971420","loc":[-85.648476,41.949169],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:02Z","tags":{}},"n185979975":{"id":"n185979975","loc":[-85.644429,41.947633],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:24Z","tags":{}},"n185988171":{"id":"n185988171","loc":[-85.645377,41.947622],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:34Z","tags":{}},"w17963211":{"id":"w17963211","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:23:06Z","tags":{"highway":"residential","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313193","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185949870","n185949872","n185949875","n185949877","n185949881"]},"w17965839":{"id":"w17965839","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:40:10Z","tags":{"highway":"residential","name":"Arnold St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Arnold","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15327930:15324550:15312304:15324551","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185949870","n185971415","n185971417","n185971420","n185962639","n185962810"]},"w17967618":{"id":"w17967618","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:53:22Z","tags":{"highway":"residential","name":"Pierson St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Pierson","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313265:15312333:15324553","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185967777","n185988165","n185988167","n185988169","n185985824","n185979975","n185988171"]},"w17965149":{"id":"w17965149","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:56Z","tags":{"highway":"residential","name":"Oak St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Oak","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15331522","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185965019","n1475293248","n185965021","n185965023","n185965025","n185965027"]},"w17966118":{"id":"w17966118","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:24Z","tags":{"highway":"residential","name":"West Armitage Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Armitage","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185974583","n185974585","n185964355","n185965019"]},"n2208608800":{"id":"n2208608800","loc":[-85.6354294,41.9486201],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:39Z","tags":{}},"n2199109806":{"id":"n2199109806","loc":[-85.6350474,41.9477884],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109804":{"id":"n2199109804","loc":[-85.6350476,41.9477962],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109802":{"id":"n2199109802","loc":[-85.635002,41.9477969],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109799":{"id":"n2199109799","loc":[-85.6350018,41.9477883],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109797":{"id":"n2199109797","loc":[-85.6349141,41.9477897],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109795":{"id":"n2199109795","loc":[-85.6349131,41.9477535],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109793":{"id":"n2199109793","loc":[-85.6349395,41.9477531],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109791":{"id":"n2199109791","loc":[-85.6349382,41.9477077],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109789":{"id":"n2199109789","loc":[-85.6351236,41.9477049],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109787":{"id":"n2199109787","loc":[-85.6351259,41.9477872],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109785":{"id":"n2199109785","loc":[-85.634972,41.9475992],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109783":{"id":"n2199109783","loc":[-85.6349206,41.9475997],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109770":{"id":"n2199109770","loc":[-85.6348499,41.9475461],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109768":{"id":"n2199109768","loc":[-85.6348499,41.9475084],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109765":{"id":"n2199109765","loc":[-85.6349241,41.9474569],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109763":{"id":"n2199109763","loc":[-85.634967,41.9474564],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109762":{"id":"n2199109762","loc":[-85.6350405,41.9475121],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109761":{"id":"n2199109761","loc":[-85.6350405,41.9475419],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109753":{"id":"n2199109753","loc":[-85.6342443,41.9478391],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109751":{"id":"n2199109751","loc":[-85.6342427,41.9477927],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109745":{"id":"n2199109745","loc":[-85.6342439,41.9476859],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109743":{"id":"n2199109743","loc":[-85.6342429,41.9476575],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109741":{"id":"n2199109741","loc":[-85.6344615,41.9476533],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109739":{"id":"n2199109739","loc":[-85.6344678,41.9478348],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109737":{"id":"n2199109737","loc":[-85.634416,41.9480059],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109735":{"id":"n2199109735","loc":[-85.6344145,41.9478983],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109733":{"id":"n2199109733","loc":[-85.6342749,41.9478993],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109731":{"id":"n2199109731","loc":[-85.6342753,41.9479272],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109729":{"id":"n2199109729","loc":[-85.6342498,41.9479274],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109727":{"id":"n2199109727","loc":[-85.6342505,41.9479762],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109725":{"id":"n2199109725","loc":[-85.6342743,41.947976],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109723":{"id":"n2199109723","loc":[-85.6342747,41.948007],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109721":{"id":"n2199109721","loc":[-85.6343415,41.9476355],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109719":{"id":"n2199109719","loc":[-85.6343391,41.9474973],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109717":{"id":"n2199109717","loc":[-85.6343133,41.9474798],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109715":{"id":"n2199109715","loc":[-85.6342874,41.9474737],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109709":{"id":"n2199109709","loc":[-85.6349804,41.94815],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109707":{"id":"n2199109707","loc":[-85.6348915,41.9481505],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109705":{"id":"n2199109705","loc":[-85.6348917,41.9481692],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109702":{"id":"n2199109702","loc":[-85.6348522,41.9481694],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109700":{"id":"n2199109700","loc":[-85.6348532,41.9482679],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109698":{"id":"n2199109698","loc":[-85.6348315,41.948268],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109696":{"id":"n2199109696","loc":[-85.6348318,41.9482955],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109694":{"id":"n2199109694","loc":[-85.6349653,41.9482946],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109692":{"id":"n2199109692","loc":[-85.6349656,41.9483211],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109690":{"id":"n2199109690","loc":[-85.634999,41.9483209],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109688":{"id":"n2199109688","loc":[-85.6349987,41.9482947],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109686":{"id":"n2199109686","loc":[-85.6351753,41.9482935],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109684":{"id":"n2199109684","loc":[-85.6351749,41.9482617],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109682":{"id":"n2199109682","loc":[-85.6351588,41.9482618],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109680":{"id":"n2199109680","loc":[-85.6351575,41.9481518],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109678":{"id":"n2199109678","loc":[-85.6350671,41.9481524],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109676":{"id":"n2199109676","loc":[-85.6350649,41.9479659],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109674":{"id":"n2199109674","loc":[-85.6349785,41.9479665],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109671":{"id":"n2199109671","loc":[-85.6343069,41.9483263],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109669":{"id":"n2199109669","loc":[-85.6343052,41.9482981],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109658":{"id":"n2199109658","loc":[-85.6343314,41.9480549],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109656":{"id":"n2199109656","loc":[-85.6343305,41.9480461],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109654":{"id":"n2199109654","loc":[-85.634435,41.9480468],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109652":{"id":"n2199109652","loc":[-85.6344342,41.9483746],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109650":{"id":"n2199109650","loc":[-85.6344629,41.9483727],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109648":{"id":"n2199109648","loc":[-85.6344637,41.9484561],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109645":{"id":"n2199109645","loc":[-85.63443,41.9484567],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109642":{"id":"n2199109642","loc":[-85.6344317,41.948505],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n185964352":{"id":"n185964352","loc":[-85.6373958,41.9489943],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185964351":{"id":"n185964351","loc":[-85.637113,41.9486],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n2208608825":{"id":"n2208608825","loc":[-85.6354483,41.9494241],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{}},"n2208608823":{"id":"n2208608823","loc":[-85.6360418,41.949416],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{}},"n2208608821":{"id":"n2208608821","loc":[-85.6360458,41.9495802],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{}},"n2208608811":{"id":"n2208608811","loc":[-85.6357458,41.9495843],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:39Z","tags":{}},"n2208608808":{"id":"n2208608808","loc":[-85.6357508,41.9497835],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:39Z","tags":{}},"n2208608806":{"id":"n2208608806","loc":[-85.6354573,41.9497875],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:39Z","tags":{}},"n2208608795":{"id":"n2208608795","loc":[-85.6354595,41.9498778],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:39Z","tags":{}},"n2199109638":{"id":"n2199109638","loc":[-85.6349605,41.949749],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109636":{"id":"n2199109636","loc":[-85.6349605,41.9497639],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109634":{"id":"n2199109634","loc":[-85.6349061,41.94971],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109632":{"id":"n2199109632","loc":[-85.6349048,41.9496569],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109630":{"id":"n2199109630","loc":[-85.6348835,41.9496571],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109628":{"id":"n2199109628","loc":[-85.6348829,41.9497103],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109626":{"id":"n2199109626","loc":[-85.635227,41.9497738],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109624":{"id":"n2199109624","loc":[-85.6352184,41.9497787],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109622":{"id":"n2199109622","loc":[-85.6351181,41.9497806],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109620":{"id":"n2199109620","loc":[-85.6351181,41.9497456],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109618":{"id":"n2199109618","loc":[-85.6348842,41.9497651],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109616":{"id":"n2199109616","loc":[-85.6348827,41.9496238],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109615":{"id":"n2199109615","loc":[-85.6351268,41.9496206],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109614":{"id":"n2199109614","loc":[-85.6351261,41.9495891],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109613":{"id":"n2199109613","loc":[-85.6351957,41.9495881],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109612":{"id":"n2199109612","loc":[-85.6351924,41.9494515],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109611":{"id":"n2199109611","loc":[-85.6353997,41.9494488],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2199109610":{"id":"n2199109610","loc":[-85.6354074,41.9497715],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n2189015681":{"id":"n2189015681","loc":[-85.6344229,41.9509639],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015677":{"id":"n2189015677","loc":[-85.634424,41.9507396],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2138493843":{"id":"n2138493843","loc":[-85.6343935,41.9502836],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493840":{"id":"n2138493840","loc":[-85.634398,41.9506264],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n354002838":{"id":"n354002838","loc":[-85.6345197,41.9510631],"version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:18Z","tags":{}},"n2114807590":{"id":"n2114807590","loc":[-85.634511,41.9499767],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n185964353":{"id":"n185964353","loc":[-85.6374092,41.9498755],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n1819849180":{"id":"n1819849180","loc":[-85.6348236,41.94996],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:59Z","tags":{}},"n1819849115":{"id":"n1819849115","loc":[-85.6354372,41.9499538],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:57Z","tags":{}},"n1819848921":{"id":"n1819848921","loc":[-85.6348439,41.951064],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848885":{"id":"n1819848885","loc":[-85.6354575,41.9510578],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n185984281":{"id":"n185984281","loc":[-85.638075,41.949872],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:55Z","tags":{}},"n2208608827":{"id":"n2208608827","loc":[-85.6339169,41.9473191],"version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{}},"n2199109749":{"id":"n2199109749","loc":[-85.6342082,41.9477934],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109747":{"id":"n2199109747","loc":[-85.6342045,41.9476867],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109713":{"id":"n2199109713","loc":[-85.6342404,41.9474746],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109711":{"id":"n2199109711","loc":[-85.6342404,41.9476355],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109673":{"id":"n2199109673","loc":[-85.6340886,41.9483282],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109667":{"id":"n2199109667","loc":[-85.6342403,41.9482988],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109665":{"id":"n2199109665","loc":[-85.6342386,41.9482116],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109662":{"id":"n2199109662","loc":[-85.6340861,41.9482135],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109660":{"id":"n2199109660","loc":[-85.6340802,41.9480562],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:50Z","tags":{}},"n2199109640":{"id":"n2199109640","loc":[-85.6340928,41.9485063],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:49Z","tags":{}},"n354031366":{"id":"n354031366","loc":[-85.6341667,41.9477778],"version":"3","changeset":"3908860","user":"Geogast","uid":"51045","visible":"true","timestamp":"2010-02-18T13:28:25Z","tags":{"amenity":"place_of_worship","ele":"249","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417877","gnis:state_id":"26","name":"Faith Tabernacle Church","religion":"christian"}},"n2189015686":{"id":"n2189015686","loc":[-85.6337798,41.95099],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015684":{"id":"n2189015684","loc":[-85.6337794,41.9509674],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015673":{"id":"n2189015673","loc":[-85.6337501,41.9507457],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015669":{"id":"n2189015669","loc":[-85.6337501,41.9506974],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015665":{"id":"n2189015665","loc":[-85.6339034,41.9506959],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015662":{"id":"n2189015662","loc":[-85.6339015,41.950436],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015658":{"id":"n2189015658","loc":[-85.6334916,41.9504376],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015655":{"id":"n2189015655","loc":[-85.6334939,41.9507558],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015650":{"id":"n2189015650","loc":[-85.6334543,41.950756],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015649":{"id":"n2189015649","loc":[-85.633456,41.9509915],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2138493842":{"id":"n2138493842","loc":[-85.6339937,41.9502836],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2138493841":{"id":"n2138493841","loc":[-85.6339983,41.9506281],"version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:31Z","tags":{}},"n2114807579":{"id":"n2114807579","loc":[-85.6333644,41.9510682],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807573":{"id":"n2114807573","loc":[-85.6333557,41.9499819],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n354031330":{"id":"n354031330","loc":[-85.6341667,41.9497222],"version":"3","changeset":"3908860","user":"Geogast","uid":"51045","visible":"true","timestamp":"2010-02-18T13:28:24Z","tags":{"amenity":"place_of_worship","ele":"250","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417879","gnis:state_id":"26","name":"Trinity Episcopal Church","religion":"christian"}},"n185960794":{"id":"n185960794","loc":[-85.633307,41.9537],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:24Z","tags":{}},"n185964357":{"id":"n185964357","loc":[-85.637432,41.952399],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964358":{"id":"n185964358","loc":[-85.637452,41.953665],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964359":{"id":"n185964359","loc":[-85.63746,41.954658],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964360":{"id":"n185964360","loc":[-85.637473,41.95592],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964361":{"id":"n185964361","loc":[-85.637468,41.956906],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185964362":{"id":"n185964362","loc":[-85.637483,41.958313],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:21Z","tags":{}},"n185966957":{"id":"n185966957","loc":[-85.633361,41.957422],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185975351":{"id":"n185975351","loc":[-85.63334,41.9559],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:58Z","tags":{}},"n185978784":{"id":"n185978784","loc":[-85.633311,41.954679],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185986157":{"id":"n185986157","loc":[-85.633287,41.952426],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:48Z","tags":{}},"n185986158":{"id":"n185986158","loc":[-85.6333607,41.9582301],"version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:20Z","tags":{"highway":"turning_circle"}},"w17965182":{"id":"w17965182","version":"2","changeset":"15277317","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-07T00:30:17Z","tags":{"highway":"residential","name":"W Prutzman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Prutzman","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185965289","n2189153241","n185965291"]},"w208627205":{"id":"w208627205","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015649","n2189015650","n2189015655","n2189015658","n2189015662","n2189015665","n2189015669","n2189015673","n2189015677","n2189015681","n2189015684","n2189015686","n2189015649"]},"w209717042":{"id":"w209717042","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"amenity":"place_of_worship","area":"yes","building":"yes","denomination":"presbyterian","ele":"250","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417878","gnis:state_id":"26","name":"First Presbyterian Church","religion":"christian"},"nodes":["n2199109610","n2199109611","n2199109612","n2199109613","n2199109614","n2199109615","n2199109616","n2199109630","n2199109632","n2199109634","n2199109628","n2199109618","n2199109636","n2199109638","n2199109620","n2199109622","n2199109624","n2199109626","n2199109610"]},"w209717045":{"id":"w209717045","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109711","n2199109713","n2199109715","n2199109717","n2199109719","n2199109721","n2199109711"]},"w209717047":{"id":"w209717047","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109739","n2199109741","n2199109743","n2199109745","n2199109747","n2199109749","n2199109751","n2199109753","n2199109739"]},"w209717044":{"id":"w209717044","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109674","n2199109676","n2199109678","n2199109680","n2199109682","n2199109684","n2199109686","n2199109688","n2199109690","n2199109692","n2199109694","n2199109696","n2199109698","n2199109700","n2199109702","n2199109705","n2199109707","n2199109709","n2199109674"]},"w210822776":{"id":"w210822776","version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"highway":"service","service":"alley","surface":"unpaved"},"nodes":["n2208608795","n2208608806","n2208608825","n2208608800","n2189153241"]},"w210822778":{"id":"w210822778","version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"highway":"service","service":"alley"},"nodes":["n2208608826","n2208608827"]},"w209717050":{"id":"w209717050","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109787","n2199109789","n2199109791","n2199109793","n2199109795","n2199109797","n2199109799","n2199109802","n2199109804","n2199109806","n2199109787"]},"w17965097":{"id":"w17965097","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:23Z","tags":{"highway":"residential","name":"Maple Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Maple","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185964351","n185964352","n185964353","n185964355","n185964357","n185964358","n185964359","n185964360","n185964361","n185964362"]},"w17965856":{"id":"w17965856","version":"2","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"highway":"residential","name":"W Kelsey St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Kelsey","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185971578","n2208608800","n185971580","n185964351"]},"w17967444":{"id":"w17967444","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"East Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"East","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185966937","n185978969","n185986155","n185985812","n185986157","n185960794","n185978784","n185975351","n185966957","n185986158"]},"w17967764":{"id":"w17967764","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:54:14Z","tags":{"highway":"residential","name":"Rock River Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Rock River","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312338","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185984017","n185964351"]},"w170848329":{"id":"w170848329","version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:18Z","tags":{"ele":"251","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2418164","gnis:state_id":"26","leisure":"park","name":"LaFayette Park","source":"Bing"},"nodes":["n1819849180","n1819849115","n1819848885","n1819848921","n1819849180"]},"w17967208":{"id":"w17967208","version":"4","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:24Z","tags":{"highway":"residential","name":"West Bennett Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Bennett","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185978390","n2208608795","n185984020","n185964353","n185984281"]},"w17965349":{"id":"w17965349","version":"2","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"highway":"residential","name":"E Prutzman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Prutzman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185966937","n2208608827","n185965289"]},"w209717049":{"id":"w209717049","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109761","n2199109762","n2199109763","n2199109765","n2199109768","n2199109770","n2199109783","n2199109785","n2199109761"]},"w203841840":{"id":"w203841840","version":"1","changeset":"14879185","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:55:32Z","tags":{"area":"yes","leisure":"playground"},"nodes":["n2138493840","n2138493841","n2138493842","n2138493843","n2138493840"]},"w209717043":{"id":"w209717043","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"amenity":"place_of_worship","area":"yes","building":"church","denomination":"methodist","ele":"249","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417880","gnis:state_id":"26","name":"First United Methodist Church","religion":"christian"},"nodes":["n2199109640","n2199109642","n2199109645","n2199109648","n2199109650","n2199109652","n2199109654","n2199109656","n2199109658","n2199109660","n2199109662","n2199109665","n2199109667","n2199109669","n2199109671","n2199109673","n2199109640"]},"w201484341":{"id":"w201484341","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:16Z","tags":{"amenity":"school","ele":"250","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:edited":"02/22/2008","gnis:feature_id":"1624612","gnis:state_id":"26","name":"Hoppin School"},"nodes":["n354002838","n2114807579","n2114807573","n2114807590","n354002838"]},"w209717046":{"id":"w209717046","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109723","n2199109725","n2199109727","n2199109729","n2199109731","n2199109733","n2199109735","n2199109737","n2199109723"]},"w210822777":{"id":"w210822777","version":"1","changeset":"15411098","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-18T17:54:40Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2208608806","n2208608808","n2208608811","n2208608821","n2208608823","n2208608825","n2208608806"]},"n185954965":{"id":"n185954965","loc":[-85.6191189,41.9441922],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:57Z","tags":{}},"n185954968":{"id":"n185954968","loc":[-85.6194384,41.9442405],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185954970":{"id":"n185954970","loc":[-85.6196543,41.9443252],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185954972":{"id":"n185954972","loc":[-85.6197862,41.9444539],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n354002931":{"id":"n354002931","loc":[-85.6198991,41.9455269],"version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:01Z","tags":{}},"n354030853":{"id":"n354030853","loc":[-85.6219444,41.9455556],"version":"3","changeset":"3908860","user":"Geogast","uid":"51045","visible":"true","timestamp":"2010-02-18T13:28:19Z","tags":{"amenity":"place_of_worship","ele":"246","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417869","gnis:state_id":"26","name":"Grant Chapel","religion":"christian"}},"n367815963":{"id":"n367815963","loc":[-85.6202778,41.9461111],"version":"1","changeset":"871579","user":"amillar","uid":"28145","visible":"true","timestamp":"2009-03-31T07:45:44Z","tags":{"addr:state":"MI","building":"yes","ele":"247","gnis:county_name":"St. Joseph","gnis:feature_id":"2418176","gnis:import_uuid":"57871b70-0100-4405-bb30-88b2e001a944","gnis:reviewed":"no","name":"George Washington Carver Community Center","source":"USGS Geonames"}},"n185947331":{"id":"n185947331","loc":[-85.618779,41.943269],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947333":{"id":"n185947333","loc":[-85.618795,41.943511],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947336":{"id":"n185947336","loc":[-85.618711,41.94413],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947338":{"id":"n185947338","loc":[-85.618704,41.944189],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947339":{"id":"n185947339","loc":[-85.618597,41.944337],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947340":{"id":"n185947340","loc":[-85.618485,41.944528],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947343":{"id":"n185947343","loc":[-85.618442,41.944716],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947345":{"id":"n185947345","loc":[-85.618457,41.945107],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947347":{"id":"n185947347","loc":[-85.618296,41.945338],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947374":{"id":"n185947374","loc":[-85.616748,41.944453],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947375":{"id":"n185947375","loc":[-85.616813,41.944646],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947376":{"id":"n185947376","loc":[-85.616859,41.945196],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:12Z","tags":{}},"n185947377":{"id":"n185947377","loc":[-85.616941,41.945352],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:12Z","tags":{}},"n185947406":{"id":"n185947406","loc":[-85.618184,41.944227],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947409":{"id":"n185947409","loc":[-85.617911,41.943875],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947410":{"id":"n185947410","loc":[-85.617579,41.943682],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947411":{"id":"n185947411","loc":[-85.61713,41.943589],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947412":{"id":"n185947412","loc":[-85.616549,41.943559],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947414":{"id":"n185947414","loc":[-85.616482,41.943556],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947464":{"id":"n185947464","loc":[-85.616526,41.943788],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185947466":{"id":"n185947466","loc":[-85.616504,41.944002],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185948863":{"id":"n185948863","loc":[-85.619017,41.943391],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:45Z","tags":{}},"n185948865":{"id":"n185948865","loc":[-85.619059,41.943368],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:45Z","tags":{}},"n185955022":{"id":"n185955022","loc":[-85.620088,41.945571],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:37Z","tags":{}},"n185955025":{"id":"n185955025","loc":[-85.620051,41.945505],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:37Z","tags":{}},"n185955028":{"id":"n185955028","loc":[-85.62001,41.94541],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:37Z","tags":{}},"n185980371":{"id":"n185980371","loc":[-85.620982,41.944742],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:37Z","tags":{}},"n185980398":{"id":"n185980398","loc":[-85.621305,41.944782],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980401":{"id":"n185980401","loc":[-85.621174,41.944819],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980403":{"id":"n185980403","loc":[-85.621029,41.944871],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980405":{"id":"n185980405","loc":[-85.620741,41.945011],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980407":{"id":"n185980407","loc":[-85.620616,41.945085],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980409":{"id":"n185980409","loc":[-85.620506,41.945172],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980411":{"id":"n185980411","loc":[-85.620394,41.945273],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:38Z","tags":{}},"n185980413":{"id":"n185980413","loc":[-85.620316,41.94536],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:39Z","tags":{}},"n185980415":{"id":"n185980415","loc":[-85.620257,41.945452],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:39Z","tags":{}},"n185980417":{"id":"n185980417","loc":[-85.620212,41.945535],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:39Z","tags":{}},"n185985910":{"id":"n185985910","loc":[-85.620101,41.945811],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:41Z","tags":{}},"n185985912":{"id":"n185985912","loc":[-85.620081,41.945937],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n1475283972":{"id":"n1475283972","loc":[-85.6198991,41.9437179],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:45Z","tags":{}},"n1475283982":{"id":"n1475283982","loc":[-85.6195022,41.9433463],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284007":{"id":"n1475284007","loc":[-85.6193037,41.9433383],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284040":{"id":"n1475284040","loc":[-85.6197329,41.9434121],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284044":{"id":"n1475284044","loc":[-85.6198756,41.9435363],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284050":{"id":"n1475284050","loc":[-85.6199689,41.9432106],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{}},"n1475284053":{"id":"n1475284053","loc":[-85.6198943,41.9432921],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{}},"n185954974":{"id":"n185954974","loc":[-85.6198296,41.94473],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n185954977":{"id":"n185954977","loc":[-85.6200474,41.9447384],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:58Z","tags":{}},"n2196831365":{"id":"n2196831365","loc":[-85.6202259,41.9460883],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831366":{"id":"n2196831366","loc":[-85.6202245,41.9458642],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831367":{"id":"n2196831367","loc":[-85.6205184,41.9458631],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831368":{"id":"n2196831368","loc":[-85.6205189,41.9459437],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831369":{"id":"n2196831369","loc":[-85.6203879,41.9459441],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831370":{"id":"n2196831370","loc":[-85.6203888,41.9460878],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831371":{"id":"n2196831371","loc":[-85.6184046,41.9465663],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831372":{"id":"n2196831372","loc":[-85.6191563,41.9465618],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831373":{"id":"n2196831373","loc":[-85.6191536,41.946319],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831374":{"id":"n2196831374","loc":[-85.6187356,41.9463216],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831375":{"id":"n2196831375","loc":[-85.6187334,41.9461197],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831376":{"id":"n2196831376","loc":[-85.6193167,41.9461162],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831377":{"id":"n2196831377","loc":[-85.6193156,41.9460229],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831378":{"id":"n2196831378","loc":[-85.619622,41.946021],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831379":{"id":"n2196831379","loc":[-85.6196237,41.9461712],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831380":{"id":"n2196831380","loc":[-85.6197702,41.9461703],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831381":{"id":"n2196831381","loc":[-85.6197685,41.9460202],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831382":{"id":"n2196831382","loc":[-85.6197323,41.9460204],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831383":{"id":"n2196831383","loc":[-85.6197305,41.9458563],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831384":{"id":"n2196831384","loc":[-85.6196165,41.945857],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831385":{"id":"n2196831385","loc":[-85.6196156,41.9457764],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831386":{"id":"n2196831386","loc":[-85.6194472,41.9457775],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831387":{"id":"n2196831387","loc":[-85.6194151,41.9457777],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831388":{"id":"n2196831388","loc":[-85.6183779,41.9457883],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831389":{"id":"n2196831389","loc":[-85.6183842,41.9461317],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831390":{"id":"n2196831390","loc":[-85.6185026,41.9461304],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831391":{"id":"n2196831391","loc":[-85.6185061,41.9463194],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831392":{"id":"n2196831392","loc":[-85.6184001,41.9463205],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831393":{"id":"n2196831393","loc":[-85.6182482,41.9464163],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831394":{"id":"n2196831394","loc":[-85.6182467,41.9463193],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831395":{"id":"n2196831395","loc":[-85.6180389,41.946321],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n2196831397":{"id":"n2196831397","loc":[-85.6180404,41.946418],"version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:40Z","tags":{}},"n185947303":{"id":"n185947303","loc":[-85.611074,41.943389],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947304":{"id":"n185947304","loc":[-85.611332,41.943267],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947305":{"id":"n185947305","loc":[-85.611635,41.943218],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947306":{"id":"n185947306","loc":[-85.612762,41.943311],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947308":{"id":"n185947308","loc":[-85.613027,41.943327],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947310":{"id":"n185947310","loc":[-85.615377,41.942996],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947312":{"id":"n185947312","loc":[-85.615701,41.943007],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947314":{"id":"n185947314","loc":[-85.61604,41.943067],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947315":{"id":"n185947315","loc":[-85.61626,41.943083],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947316":{"id":"n185947316","loc":[-85.616507,41.943048],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947319":{"id":"n185947319","loc":[-85.616702,41.94299],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:10Z","tags":{}},"n185947321":{"id":"n185947321","loc":[-85.617078,41.942918],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947322":{"id":"n185947322","loc":[-85.617366,41.942973],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947323":{"id":"n185947323","loc":[-85.617601,41.943033],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947325":{"id":"n185947325","loc":[-85.617799,41.943027],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947327":{"id":"n185947327","loc":[-85.618264,41.942961],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947328":{"id":"n185947328","loc":[-85.618508,41.942972],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947329":{"id":"n185947329","loc":[-85.618707,41.943076],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947361":{"id":"n185947361","loc":[-85.615356,41.944922],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947363":{"id":"n185947363","loc":[-85.61536,41.944893],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947365":{"id":"n185947365","loc":[-85.615406,41.944547],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947367":{"id":"n185947367","loc":[-85.61548,41.944351],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947369":{"id":"n185947369","loc":[-85.615805,41.94419],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947371":{"id":"n185947371","loc":[-85.616166,41.944156],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947373":{"id":"n185947373","loc":[-85.616411,41.944197],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:11Z","tags":{}},"n185947416":{"id":"n185947416","loc":[-85.616335,41.94343],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947417":{"id":"n185947417","loc":[-85.616069,41.943293],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947419":{"id":"n185947419","loc":[-85.615803,41.943249],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947420":{"id":"n185947420","loc":[-85.615524,41.943342],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947421":{"id":"n185947421","loc":[-85.615311,41.94353],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947422":{"id":"n185947422","loc":[-85.614338,41.943558],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947423":{"id":"n185947423","loc":[-85.61422,41.94369],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947425":{"id":"n185947425","loc":[-85.614221,41.944224],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947427":{"id":"n185947427","loc":[-85.614198,41.944888],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947429":{"id":"n185947429","loc":[-85.614221,41.945439],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:13Z","tags":{}},"n185947468":{"id":"n185947468","loc":[-85.615908,41.944756],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185947470":{"id":"n185947470","loc":[-85.615871,41.944888],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185947472":{"id":"n185947472","loc":[-85.615878,41.94507],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:14Z","tags":{}},"n185955153":{"id":"n185955153","loc":[-85.620087,41.947701],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:39Z","tags":{}},"n185960690":{"id":"n185960690","loc":[-85.620141,41.951901],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:21Z","tags":{}},"n185978817":{"id":"n185978817","loc":[-85.617193,41.954706],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n185985916":{"id":"n185985916","loc":[-85.620088,41.94758],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985918":{"id":"n185985918","loc":[-85.620133,41.951538],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985919":{"id":"n185985919","loc":[-85.62013,41.952104],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985920":{"id":"n185985920","loc":[-85.620104,41.952305],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985921":{"id":"n185985921","loc":[-85.620062,41.952499],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985922":{"id":"n185985922","loc":[-85.619993,41.952702],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985925":{"id":"n185985925","loc":[-85.619879,41.952986],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985927":{"id":"n185985927","loc":[-85.619689,41.95329],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985928":{"id":"n185985928","loc":[-85.619508,41.953521],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985929":{"id":"n185985929","loc":[-85.619286,41.953728],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985930":{"id":"n185985930","loc":[-85.618925,41.954007],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985931":{"id":"n185985931","loc":[-85.618638,41.954189],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985932":{"id":"n185985932","loc":[-85.61831,41.954358],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:42Z","tags":{}},"n185985934":{"id":"n185985934","loc":[-85.618015,41.954485],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:43Z","tags":{}},"n185985936":{"id":"n185985936","loc":[-85.617606,41.954611],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:12:43Z","tags":{}},"n1475283975":{"id":"n1475283975","loc":[-85.6150935,41.9434118],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475283979":{"id":"n1475283979","loc":[-85.6193367,41.9430252],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475283989":{"id":"n1475283989","loc":[-85.6104771,41.9455269],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475283990":{"id":"n1475283990","loc":[-85.6104771,41.9437179],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475283994":{"id":"n1475283994","loc":[-85.6198042,41.9429763],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475283998":{"id":"n1475283998","loc":[-85.6192101,41.9426716],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284000":{"id":"n1475284000","loc":[-85.6198622,41.942836],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284002":{"id":"n1475284002","loc":[-85.6163262,41.9427688],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:46Z","tags":{}},"n1475284006":{"id":"n1475284006","loc":[-85.6179527,41.9429168],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284029":{"id":"n1475284029","loc":[-85.6197195,41.9427278],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284038":{"id":"n1475284038","loc":[-85.6194405,41.9427837],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:47Z","tags":{}},"n1475284052":{"id":"n1475284052","loc":[-85.6153225,41.942841],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{}},"n1475284055":{"id":"n1475284055","loc":[-85.6129233,41.9437179],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:48Z","tags":{}},"n2139966627":{"id":"n2139966627","loc":[-85.61958,41.9427558],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"w17966773":{"id":"w17966773","version":"3","changeset":"2558583","user":"elliskev","uid":"163338","visible":"true","timestamp":"2009-09-21T16:12:43Z","tags":{"highway":"secondary","name":"E Michigan Ave","ref":"M 60","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_direction_prefix":"E","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313712","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185980372","n185980398","n185980401","n185980403","n185980405","n185980407","n185980409","n185980411","n185980413","n185980415","n185980417","n185955019"]},"w17964043":{"id":"w17964043","version":"3","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:19Z","tags":{"highway":"residential","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326065:15326068","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185955019","n185955022","n185955025","n185955028","n185954977","n185971477","n1475284050","n1475284000","n1475284029","n2139966627","n1475284038"]},"w17962834":{"id":"w17962834","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:15Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313719:15313728:15331618","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947316","n185947414","n185947464","n185947466","n185947373","n185947468","n185947470","n185947472","n185947474"]},"w209470310":{"id":"w209470310","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831393","n2196831394","n2196831395","n2196831397","n2196831393"]},"w17963058":{"id":"w17963058","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:05Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326058:15326066:15326067","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947333","n185948863","n185948865","n1475284007","n1475283982","n1475284040","n1475284044"]},"w17962823":{"id":"w17962823","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:14Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313714:15313704:15313720:15313721","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947359","n185947361","n185947363","n185947365","n185947367","n185947369","n185947371","n185947373","n185947374","n185947375","n185947376","n185947377","n185947378"]},"w17962821":{"id":"w17962821","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:15Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313713:15313734:15313731:15313735:15313737:15313723","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947303","n185947304","n185947305","n185947306","n185947308","n185947310","n185947312","n185947314","n185947315","n185947316","n185947319","n185947321","n185947322","n185947323","n185947325","n185947327","n185947328","n185947329","n185947331","n185947333","n185947336","n185947338","n185947339","n185947340","n185947343","n185947345","n185947347","n185947349"]},"w134150798":{"id":"w134150798","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:45:52Z","tags":{"amenity":"grave_yard","ele":"249","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:feature_id":"1624862","gnis:state_id":"26","name":"Riverside Cemetery"},"nodes":["n354002931","n1475283972","n1475284053","n1475283994","n1475283979","n1475283998","n1475284006","n1475284002","n1475284052","n1475283975","n1475284055","n1475283990","n1475283989","n354002931"]},"w17964040":{"id":"w17964040","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:02Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326063:15326064","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947336","n185954965","n185954968","n185954970","n185954972","n185954974","n185954977"]},"w209470308":{"id":"w209470308","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831365","n2196831366","n2196831367","n2196831368","n2196831369","n2196831370","n2196831365"]},"w17962828":{"id":"w17962828","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:14Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313715:15313706:15328746:15313727:15313729","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185947340","n185947406","n185947409","n185947410","n185947411","n185947412","n185947414","n185947416","n185947417","n185947419","n185947420","n185947421","n185947422","n185947423","n185947425","n185947427","n185947429"]},"w209470309":{"id":"w209470309","version":"1","changeset":"15335510","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-12T03:10:41Z","tags":{"area":"yes","building":"yes"},"nodes":["n2196831371","n2196831372","n2196831373","n2196831374","n2196831375","n2196831376","n2196831377","n2196831378","n2196831379","n2196831380","n2196831381","n2196831382","n2196831383","n2196831384","n2196831385","n2196831386","n2196831387","n2196831388","n2196831389","n2196831390","n2196831391","n2196831392","n2196831371"]},"w17967415":{"id":"w17967415","version":"3","changeset":"2558583","user":"elliskev","uid":"163338","visible":"true","timestamp":"2009-09-21T16:12:41Z","tags":{"highway":"secondary","name":"Jefferson St","name_1":"State Highway 60","ref":"M 60","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Jefferson","tiger:name_base_1":"State Highway 60","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313637:15313662:15313657:15328403","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093"},"nodes":["n185955019","n185985910","n185985912","n185985914","n185961367","n185985916","n185955153","n185965105","n185974697","n185955120","n185985918","n185960690","n185985919","n185985920","n185985921","n185985922","n185985925","n185985927","n185985928","n185985929","n185985930","n185985931","n185985932","n185985934","n185985936","n185978817"]},"w17966772":{"id":"w17966772","version":"4","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:46:07Z","tags":{"highway":"unclassified","name":"E Michigan Ave","name_1":"State Highway 60","tiger:cfcc":"A31","tiger:county":"St. Joseph, MI","tiger:name_base":"Michigan","tiger:name_base_1":"State Highway 60","tiger:name_direction_prefix":"E","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313710:15313711:15314052:15312385:15312378","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185954977","n185980371","n185980372"]},"n185958500":{"id":"n185958500","loc":[-85.621591,41.941075],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:27Z","tags":{}},"n185963110":{"id":"n185963110","loc":[-85.6204416,41.9408882],"version":"3","changeset":"15379124","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:38:37Z","tags":{}},"n2139966628":{"id":"n2139966628","loc":[-85.6196431,41.9426467],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{"leisure":"fishing"}},"n2139966630":{"id":"n2139966630","loc":[-85.6199354,41.9429616],"version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{}},"n2199127051":{"id":"n2199127051","loc":[-85.6170556,41.939696],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127052":{"id":"n2199127052","loc":[-85.6170536,41.9392909],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127053":{"id":"n2199127053","loc":[-85.6172067,41.9392905],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127054":{"id":"n2199127054","loc":[-85.6172061,41.9391853],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127055":{"id":"n2199127055","loc":[-85.6171481,41.9391854],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127060":{"id":"n2199127060","loc":[-85.6167389,41.9392896],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127061":{"id":"n2199127061","loc":[-85.6168728,41.9392892],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127062":{"id":"n2199127062","loc":[-85.6168747,41.9396965],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127071":{"id":"n2199127071","loc":[-85.620196,41.9399446],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127072":{"id":"n2199127072","loc":[-85.620193,41.9397316],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127073":{"id":"n2199127073","loc":[-85.6200381,41.9397328],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127074":{"id":"n2199127074","loc":[-85.6200412,41.9399458],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127075":{"id":"n2199127075","loc":[-85.6203606,41.9399939],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127076":{"id":"n2199127076","loc":[-85.6205527,41.9399922],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127077":{"id":"n2199127077","loc":[-85.6205482,41.9397115],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127078":{"id":"n2199127078","loc":[-85.6204132,41.9397124],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127079":{"id":"n2199127079","loc":[-85.6204144,41.9396341],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127080":{"id":"n2199127080","loc":[-85.6205699,41.9396324],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127081":{"id":"n2199127081","loc":[-85.6205722,41.939498],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127082":{"id":"n2199127082","loc":[-85.6204064,41.9394997],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127083":{"id":"n2199127083","loc":[-85.6204087,41.939561],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127084":{"id":"n2199127084","loc":[-85.6203103,41.9395618],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127085":{"id":"n2199127085","loc":[-85.620308,41.9396069],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127086":{"id":"n2199127086","loc":[-85.6200347,41.9396086],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127087":{"id":"n2199127087","loc":[-85.6200382,41.9397141],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127088":{"id":"n2199127088","loc":[-85.6202257,41.9397149],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127089":{"id":"n2199127089","loc":[-85.6202269,41.9399182],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127090":{"id":"n2199127090","loc":[-85.6203595,41.9399199],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127091":{"id":"n2199127091","loc":[-85.6212335,41.939688],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127092":{"id":"n2199127092","loc":[-85.6212328,41.939595],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127093":{"id":"n2199127093","loc":[-85.6208807,41.9395966],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127094":{"id":"n2199127094","loc":[-85.6208815,41.9396896],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127095":{"id":"n2199127095","loc":[-85.6208676,41.9396872],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127096":{"id":"n2199127096","loc":[-85.6208583,41.9393539],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127097":{"id":"n2199127097","loc":[-85.6207006,41.9393563],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n2199127098":{"id":"n2199127098","loc":[-85.6207099,41.9396896],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:20Z","tags":{}},"n185967054":{"id":"n185967054","loc":[-85.6173384,41.9356126],"version":"3","changeset":"15379027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:24:18Z","tags":{}},"n185967063":{"id":"n185967063","loc":[-85.617371,41.936243],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:53Z","tags":{}},"n185967065":{"id":"n185967065","loc":[-85.617337,41.936299],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:53Z","tags":{}},"n185967068":{"id":"n185967068","loc":[-85.617321,41.936373],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:53Z","tags":{}},"n185967070":{"id":"n185967070","loc":[-85.6173562,41.9366969],"version":"3","changeset":"15379027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:24:18Z","tags":{}},"n185967074":{"id":"n185967074","loc":[-85.6173635,41.9377414],"version":"3","changeset":"15379027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:24:18Z","tags":{}},"n185967075":{"id":"n185967075","loc":[-85.6173696,41.9381886],"version":"3","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:29:58Z","tags":{}},"n185967076":{"id":"n185967076","loc":[-85.617372,41.938535],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:54Z","tags":{}},"n2199127056":{"id":"n2199127056","loc":[-85.617147,41.9389616],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127057":{"id":"n2199127057","loc":[-85.6172136,41.9389614],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127058":{"id":"n2199127058","loc":[-85.6172123,41.9386909],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2199127059":{"id":"n2199127059","loc":[-85.616736,41.9386922],"version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:19Z","tags":{}},"n2203921041":{"id":"n2203921041","loc":[-85.6173018,41.9346369],"version":"1","changeset":"15379027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:24:18Z","tags":{}},"w203983952":{"id":"w203983952","version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{"highway":"service"},"nodes":["n2139966627","n1819800319"]},"w209718301":{"id":"w209718301","version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:21Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199127051","n2199127052","n2199127053","n2199127054","n2199127055","n2199127056","n2199127057","n2199127058","n2199127059","n2199127060","n2199127061","n2199127062","n2199127051"]},"w209718304":{"id":"w209718304","version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:21Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199127071","n2199127072","n2199127073","n2199127074","n2199127071"]},"w17964961":{"id":"w17964961","version":"2","changeset":"15379124","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:38:37Z","tags":{"highway":"residential","name":"Whipple St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Whipple","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185963099","n185963110"]},"w17964489":{"id":"w17964489","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:29:56Z","tags":{"highway":"residential","name":"Jackson St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Jackson","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314430","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185958498","n185958500"]},"w203983953":{"id":"w203983953","version":"1","changeset":"14894526","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T11:32:18Z","tags":{"area":"yes","leisure":"park","name":"Marina Park","website":"http://www.threeriversmi.us/?page_id=53"},"nodes":["n1475283994","n1475283979","n1475283998","n2139966629","n2139966625","n1819800319","n2139966623","n2139966622","n2139966621","n2139966630","n1475283994"]},"w17965366":{"id":"w17965366","version":"2","changeset":"15379027","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-15T23:24:18Z","tags":{"highway":"residential","name":"14th St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"14th","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n2203921041","n185967054","n185967063","n185967065","n185967068","n185967070","n185967074","n185967075","n185967076","n185967077"]},"w209718306":{"id":"w209718306","version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:21Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199127091","n2199127092","n2199127093","n2199127094","n2199127091"]},"w209718307":{"id":"w209718307","version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:21Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199127095","n2199127096","n2199127097","n2199127098","n2199127095"]},"w209718305":{"id":"w209718305","version":"1","changeset":"15347669","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:38:21Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199127075","n2199127076","n2199127077","n2199127078","n2199127079","n2199127080","n2199127081","n2199127082","n2199127083","n2199127084","n2199127085","n2199127086","n2199127087","n2199127088","n2199127089","n2199127090","n2199127075"]},"n185960199":{"id":"n185960199","loc":[-85.62965,41.95469],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:08Z","tags":{}},"n185980737":{"id":"n185980737","loc":[-85.629083,41.953725],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:48Z","tags":{}},"n2114807561":{"id":"n2114807561","loc":[-85.6297681,41.9524688],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807597":{"id":"n2114807597","loc":[-85.6296517,41.952563],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n185960197":{"id":"n185960197","loc":[-85.629676,41.9537314],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185978791":{"id":"n185978791","loc":[-85.6244542,41.9547066],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"w17967573":{"id":"w17967573","version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:20Z","tags":{"highway":"residential","name":"E Wheeler St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Wheeler","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185960195","n2114807561","n185968102","n185967430","n185986157","n185978392"]},"w17966553":{"id":"w17966553","version":"5","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"East Hoffman Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971631","n185978784","n185967432","n185968106","n185960199","n185978787","n185978790","n185978791"]},"w17966787":{"id":"w17966787","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:23Z","tags":{"highway":"residential","name":"East Cushman Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Cushman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185980735","n185980737","n185960197","n185968104","n185960792"]},"w17964723":{"id":"w17964723","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"Cushman Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Cushman","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185960792","n185960794","n185960796"]},"w17964654":{"id":"w17964654","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"Pine Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Pine","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185960195","n2114807597","n185960197","n185960199"]},"n1819848862":{"id":"n1819848862","loc":[-85.6346087,41.9545845],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848935":{"id":"n1819848935","loc":[-85.6345948,41.9537717],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819848973":{"id":"n1819848973","loc":[-85.6334247,41.9537827],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n1819848997":{"id":"n1819848997","loc":[-85.6334386,41.9545956],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n2189015861":{"id":"n2189015861","loc":[-85.6375906,41.954836],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015865":{"id":"n2189015865","loc":[-85.6383307,41.9548291],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015867":{"id":"n2189015867","loc":[-85.6383337,41.9550072],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015868":{"id":"n2189015868","loc":[-85.6380986,41.9550094],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015869":{"id":"n2189015869","loc":[-85.6381005,41.9551226],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2199109808":{"id":"n2199109808","loc":[-85.6372702,41.9522894],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109810":{"id":"n2199109810","loc":[-85.6372677,41.9521583],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109812":{"id":"n2199109812","loc":[-85.6369505,41.9521617],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109814":{"id":"n2199109814","loc":[-85.636953,41.9522927],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n185952156":{"id":"n185952156","loc":[-85.640983,41.9546557],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185953423":{"id":"n185953423","loc":[-85.641871,41.954652],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:56Z","tags":{}},"n185971637":{"id":"n185971637","loc":[-85.641583,41.95465],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:06Z","tags":{}},"n185971639":{"id":"n185971639","loc":[-85.6421344,41.9546444],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185971642":{"id":"n185971642","loc":[-85.6428264,41.9545612],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185971648":{"id":"n185971648","loc":[-85.6436023,41.9544262],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185975066":{"id":"n185975066","loc":[-85.640532,41.953638],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:49Z","tags":{}},"n185975067":{"id":"n185975067","loc":[-85.64079,41.953638],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:49Z","tags":{}},"n185982166":{"id":"n185982166","loc":[-85.6399012,41.9523817],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n2189015858":{"id":"n2189015858","loc":[-85.6376104,41.9560138],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015870":{"id":"n2189015870","loc":[-85.6386794,41.9551172],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015871":{"id":"n2189015871","loc":[-85.6386817,41.955256],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015873":{"id":"n2189015873","loc":[-85.6385437,41.9552573],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015876":{"id":"n2189015876","loc":[-85.638555,41.9559278],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015879":{"id":"n2189015879","loc":[-85.6384954,41.9559283],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015882":{"id":"n2189015882","loc":[-85.6384965,41.9559935],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015885":{"id":"n2189015885","loc":[-85.6383533,41.9559949],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015888":{"id":"n2189015888","loc":[-85.638351,41.9558607],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015891":{"id":"n2189015891","loc":[-85.6382178,41.9558619],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015894":{"id":"n2189015894","loc":[-85.6382203,41.956008],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"w208627223":{"id":"w208627223","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015858","n2189015861","n2189015865","n2189015867","n2189015868","n2189015869","n2189015870","n2189015871","n2189015873","n2189015876","n2189015879","n2189015882","n2189015885","n2189015888","n2189015891","n2189015894","n2189015858"]},"w170848328":{"id":"w170848328","version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:18Z","tags":{"ele":"250","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:feature_id":"1624408","gnis:state_id":"26","leisure":"park","name":"Bowman Park","source":"Bing"},"nodes":["n1819848935","n1819848973","n1819848997","n1819848862","n1819848935"]},"w17965866":{"id":"w17965866","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:23Z","tags":{"highway":"residential","name":"West Hoffman Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185971631","n185971632","n185964359","n185965025","n1475293264","n185952156","n185971637","n185953423","n185971639","n185971642","n185971648"]},"w209717051":{"id":"w209717051","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"amenity":"place_of_worship","area":"yes","building":"yes","denomination":"baptist","ele":"251","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417886","gnis:state_id":"26","name":"Calvary Missionary Baptist Church","religion":"christian"},"nodes":["n2199109808","n2199109810","n2199109812","n2199109814","n2199109808"]},"w17966172":{"id":"w17966172","version":"3","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:23Z","tags":{"highway":"residential","name":"West Cushman Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Cushman","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185960796","n185975064","n185964358","n185965023","n1475293222","n185975066","n185975067"]},"w17966975":{"id":"w17966975","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:55:06Z","tags":{"highway":"residential","name":"W Wheeler St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Wheeler","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312250:15312254","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185978392","n185982163","n185964357","n185965021","n1475293261","n185982166"]},"n185960684":{"id":"n185960684","loc":[-85.622687,41.951885],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:21Z","tags":{}},"n185960686":{"id":"n185960686","loc":[-85.622492,41.951901],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:21Z","tags":{}},"n185978795":{"id":"n185978795","loc":[-85.6240991,41.954708],"version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{}},"n185978803":{"id":"n185978803","loc":[-85.623348,41.954547],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185978806":{"id":"n185978806","loc":[-85.623123,41.954502],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185978808":{"id":"n185978808","loc":[-85.622923,41.954469],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:34Z","tags":{}},"n185978810":{"id":"n185978810","loc":[-85.622787,41.954457],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n185978811":{"id":"n185978811","loc":[-85.622612,41.954458],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n185978813":{"id":"n185978813","loc":[-85.622368,41.954472],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n1819790545":{"id":"n1819790545","loc":[-85.6240295,41.9548949],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790621":{"id":"n1819790621","loc":[-85.6235789,41.954855],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790664":{"id":"n1819790664","loc":[-85.6238363,41.9549507],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790683":{"id":"n1819790683","loc":[-85.6224727,41.9545921],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790730":{"id":"n1819790730","loc":[-85.6227527,41.9545795],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790740":{"id":"n1819790740","loc":[-85.6240402,41.9550784],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790831":{"id":"n1819790831","loc":[-85.624126,41.9549986],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790861":{"id":"n1819790861","loc":[-85.6231712,41.9546872],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790887":{"id":"n1819790887","loc":[-85.6242762,41.955206],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n2168544739":{"id":"n2168544739","loc":[-85.6249102,41.952801],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544740":{"id":"n2168544740","loc":[-85.6251859,41.9527564],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544741":{"id":"n2168544741","loc":[-85.6255515,41.9527921],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544742":{"id":"n2168544742","loc":[-85.626001,41.9529481],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544743":{"id":"n2168544743","loc":[-85.6265284,41.9529838],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544744":{"id":"n2168544744","loc":[-85.626942,41.9528857],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544745":{"id":"n2168544745","loc":[-85.6270918,41.9526851],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544746":{"id":"n2168544746","loc":[-85.6272117,41.95244],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544747":{"id":"n2168544747","loc":[-85.6271578,41.952226],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544748":{"id":"n2168544748","loc":[-85.6270019,41.9519719],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544749":{"id":"n2168544749","loc":[-85.6268221,41.9518382],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544750":{"id":"n2168544750","loc":[-85.6265284,41.951807],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544751":{"id":"n2168544751","loc":[-85.6256534,41.9518516],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544752":{"id":"n2168544752","loc":[-85.6253477,41.9518338],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n2168544753":{"id":"n2168544753","loc":[-85.6251139,41.9517669],"version":"1","changeset":"15132216","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-23T08:37:01Z","tags":{}},"n185955747":{"id":"n185955747","loc":[-85.620674,41.954709],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:55Z","tags":{}},"n185960688":{"id":"n185960688","loc":[-85.621032,41.951913],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:21Z","tags":{}},"n185972054":{"id":"n185972054","loc":[-85.6186728,41.9547335],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185978814":{"id":"n185978814","loc":[-85.6201708,41.9547403],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n1819790532":{"id":"n1819790532","loc":[-85.6244908,41.9555731],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790536":{"id":"n1819790536","loc":[-85.6217925,41.9583135],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790538":{"id":"n1819790538","loc":[-85.6233954,41.9600014],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790539":{"id":"n1819790539","loc":[-85.6204611,41.9562117],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790546":{"id":"n1819790546","loc":[-85.6210898,41.9567657],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790548":{"id":"n1819790548","loc":[-85.6202465,41.9562237],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790550":{"id":"n1819790550","loc":[-85.6250165,41.9560677],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790551":{"id":"n1819790551","loc":[-85.6227946,41.9597023],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790553":{"id":"n1819790553","loc":[-85.6215726,41.9584571],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790556":{"id":"n1819790556","loc":[-85.6196306,41.9573002],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790557":{"id":"n1819790557","loc":[-85.6209503,41.9563109],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790558":{"id":"n1819790558","loc":[-85.6196939,41.9574085],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790561":{"id":"n1819790561","loc":[-85.621079,41.957751],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790562":{"id":"n1819790562","loc":[-85.6224255,41.9611417],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790565":{"id":"n1819790565","loc":[-85.6232506,41.9604841],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790566":{"id":"n1819790566","loc":[-85.6190835,41.9562909],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790567":{"id":"n1819790567","loc":[-85.622227,41.9593028],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790569":{"id":"n1819790569","loc":[-85.620976,41.9591039],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790571":{"id":"n1819790571","loc":[-85.6212078,41.9565303],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790572":{"id":"n1819790572","loc":[-85.6235306,41.9595102],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790581":{"id":"n1819790581","loc":[-85.6235563,41.9579351],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790584":{"id":"n1819790584","loc":[-85.6230371,41.9574598],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790586":{"id":"n1819790586","loc":[-85.6211748,41.9564272],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790588":{"id":"n1819790588","loc":[-85.6226508,41.9601086],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790591":{"id":"n1819790591","loc":[-85.6218032,41.9607468],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790593":{"id":"n1819790593","loc":[-85.6207915,41.9618735],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790596":{"id":"n1819790596","loc":[-85.6252955,41.9567858],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790598":{"id":"n1819790598","loc":[-85.6196618,41.9568939],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790600":{"id":"n1819790600","loc":[-85.6224416,41.9587084],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790602":{"id":"n1819790602","loc":[-85.6217442,41.9558641],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790603":{"id":"n1819790603","loc":[-85.6213355,41.9592116],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790604":{"id":"n1819790604","loc":[-85.622801,41.9573042],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790608":{"id":"n1819790608","loc":[-85.6199729,41.9574325],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790610":{"id":"n1819790610","loc":[-85.6195555,41.9557165],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790611":{"id":"n1819790611","loc":[-85.622978,41.9586007],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790613":{"id":"n1819790613","loc":[-85.6253963,41.9562636],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790614":{"id":"n1819790614","loc":[-85.6235252,41.9580342],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790616":{"id":"n1819790616","loc":[-85.6232988,41.9596305],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790617":{"id":"n1819790617","loc":[-85.6226776,41.9598732],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790619":{"id":"n1819790619","loc":[-85.625553,41.9561794],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790620":{"id":"n1819790620","loc":[-85.6235574,41.959231],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790624":{"id":"n1819790624","loc":[-85.6228429,41.9573726],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790626":{"id":"n1819790626","loc":[-85.6193785,41.9556766],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790628":{"id":"n1819790628","loc":[-85.620092,41.9554253],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790630":{"id":"n1819790630","loc":[-85.6226658,41.9604402],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790638":{"id":"n1819790638","loc":[-85.6219964,41.9602561],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790640":{"id":"n1819790640","loc":[-85.6232731,41.9599969],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790643":{"id":"n1819790643","loc":[-85.6247698,41.9568895],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790650":{"id":"n1819790650","loc":[-85.6216412,41.9550149],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790652":{"id":"n1819790652","loc":[-85.6224952,41.9603918],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790656":{"id":"n1819790656","loc":[-85.61918,41.9555649],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790661":{"id":"n1819790661","loc":[-85.6200169,41.955505],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790662":{"id":"n1819790662","loc":[-85.6217389,41.9563149],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790666":{"id":"n1819790666","loc":[-85.6229566,41.9598373],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790667":{"id":"n1819790667","loc":[-85.6209117,41.9609189],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790669":{"id":"n1819790669","loc":[-85.6252311,41.9562353],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790670":{"id":"n1819790670","loc":[-85.6209758,41.961868],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790672":{"id":"n1819790672","loc":[-85.6209557,41.9589078],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790673":{"id":"n1819790673","loc":[-85.6190352,41.9561393],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790675":{"id":"n1819790675","loc":[-85.6236432,41.9586685],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790676":{"id":"n1819790676","loc":[-85.6194901,41.9565389],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790678":{"id":"n1819790678","loc":[-85.6219266,41.9582417],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790680":{"id":"n1819790680","loc":[-85.6208258,41.9557211],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790681":{"id":"n1819790681","loc":[-85.6212024,41.9613212],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790682":{"id":"n1819790682","loc":[-85.624877,41.9559401],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790684":{"id":"n1819790684","loc":[-85.6206499,41.9583693],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790699":{"id":"n1819790699","loc":[-85.6215243,41.956279],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790701":{"id":"n1819790701","loc":[-85.6246625,41.9559321],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790703":{"id":"n1819790703","loc":[-85.6230478,41.9585089],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790708":{"id":"n1819790708","loc":[-85.6211102,41.9575402],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790710":{"id":"n1819790710","loc":[-85.6215082,41.9548468],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790711":{"id":"n1819790711","loc":[-85.6206552,41.9586007],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790713":{"id":"n1819790713","loc":[-85.6215404,41.9549705],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790715":{"id":"n1819790715","loc":[-85.6216906,41.955521],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790717":{"id":"n1819790717","loc":[-85.6215404,41.9547391],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790722":{"id":"n1819790722","loc":[-85.6219964,41.9599131],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790723":{"id":"n1819790723","loc":[-85.622286,41.9606989],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790725":{"id":"n1819790725","loc":[-85.6228439,41.9572005],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790727":{"id":"n1819790727","loc":[-85.6202518,41.9554458],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790728":{"id":"n1819790728","loc":[-85.623434,41.9575276],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790729":{"id":"n1819790729","loc":[-85.6234287,41.9568576],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790732":{"id":"n1819790732","loc":[-85.6229566,41.9571369],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790733":{"id":"n1819790733","loc":[-85.6225543,41.9590275],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790734":{"id":"n1819790734","loc":[-85.6232892,41.9583135],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790736":{"id":"n1819790736","loc":[-85.622977,41.9608551],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790737":{"id":"n1819790737","loc":[-85.624008,41.9569533],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790741":{"id":"n1819790741","loc":[-85.6212775,41.9608545],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790742":{"id":"n1819790742","loc":[-85.6231282,41.9569932],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790743":{"id":"n1819790743","loc":[-85.6224523,41.9591831],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790744":{"id":"n1819790744","loc":[-85.6210951,41.9610819],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790745":{"id":"n1819790745","loc":[-85.6220114,41.960544],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790755":{"id":"n1819790755","loc":[-85.6216369,41.9553854],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790757":{"id":"n1819790757","loc":[-85.6209986,41.9592709],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790758":{"id":"n1819790758","loc":[-85.6200437,41.9563468],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790764":{"id":"n1819790764","loc":[-85.6219363,41.9596823],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790765":{"id":"n1819790765","loc":[-85.6237612,41.9568496],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790769":{"id":"n1819790769","loc":[-85.6212389,41.9593433],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790771":{"id":"n1819790771","loc":[-85.6210726,41.9560123],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790772":{"id":"n1819790772","loc":[-85.6212711,41.9561838],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790776":{"id":"n1819790776","loc":[-85.6234437,41.9577795],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790777":{"id":"n1819790777","loc":[-85.6212502,41.9618599],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790783":{"id":"n1819790783","loc":[-85.6216895,41.9610585],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790784":{"id":"n1819790784","loc":[-85.6200115,41.9556367],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790785":{"id":"n1819790785","loc":[-85.6210576,41.9573002],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790786":{"id":"n1819790786","loc":[-85.621138,41.9576632],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790788":{"id":"n1819790788","loc":[-85.6207733,41.9578946],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790789":{"id":"n1819790789","loc":[-85.6200705,41.9571566],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790790":{"id":"n1819790790","loc":[-85.6245337,41.9558443],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790792":{"id":"n1819790792","loc":[-85.621932,41.9608066],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790793":{"id":"n1819790793","loc":[-85.6233578,41.9581385],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790794":{"id":"n1819790794","loc":[-85.6204557,41.9555136],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790797":{"id":"n1819790797","loc":[-85.6235038,41.9576074],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790800":{"id":"n1819790800","loc":[-85.6214438,41.9607508],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790801":{"id":"n1819790801","loc":[-85.623492,41.9602129],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790802":{"id":"n1819790802","loc":[-85.6216691,41.9546553],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790803":{"id":"n1819790803","loc":[-85.6231057,41.9586851],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790804":{"id":"n1819790804","loc":[-85.6209224,41.9578673],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790813":{"id":"n1819790813","loc":[-85.620092,41.9572962],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790814":{"id":"n1819790814","loc":[-85.6216691,41.9552218],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790816":{"id":"n1819790816","loc":[-85.6216144,41.9609668],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790818":{"id":"n1819790818","loc":[-85.6216906,41.9557324],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790820":{"id":"n1819790820","loc":[-85.6192069,41.9564186],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790823":{"id":"n1819790823","loc":[-85.6211155,41.9566027],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790825":{"id":"n1819790825","loc":[-85.6233106,41.9569294],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790839":{"id":"n1819790839","loc":[-85.625671,41.9564986],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790842":{"id":"n1819790842","loc":[-85.6235252,41.9567379],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790844":{"id":"n1819790844","loc":[-85.6253813,41.9566342],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790847":{"id":"n1819790847","loc":[-85.6200963,41.9567702],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790849":{"id":"n1819790849","loc":[-85.6238031,41.9587449],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790851":{"id":"n1819790851","loc":[-85.6234984,41.9584571],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790856":{"id":"n1819790856","loc":[-85.6242226,41.9570092],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790865":{"id":"n1819790865","loc":[-85.6200265,41.9569458],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790869":{"id":"n1819790869","loc":[-85.6230049,41.9601245],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790871":{"id":"n1819790871","loc":[-85.6190727,41.9558322],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790873":{"id":"n1819790873","loc":[-85.6217442,41.9550104],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790875":{"id":"n1819790875","loc":[-85.6208044,41.9587808],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790879":{"id":"n1819790879","loc":[-85.6198444,41.9574484],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790883":{"id":"n1819790883","loc":[-85.623713,41.9588719],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790885":{"id":"n1819790885","loc":[-85.6223289,41.9605075],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790889":{"id":"n1819790889","loc":[-85.6208044,41.9562437],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790893":{"id":"n1819790893","loc":[-85.6218183,41.9559684],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790906":{"id":"n1819790906","loc":[-85.6214052,41.958697],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790913":{"id":"n1819790913","loc":[-85.6209981,41.9609957],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790917":{"id":"n1819790917","loc":[-85.6216208,41.9604436],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790919":{"id":"n1819790919","loc":[-85.6209406,41.9616373],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790920":{"id":"n1819790920","loc":[-85.6221948,41.9583334],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790922":{"id":"n1819790922","loc":[-85.6216681,41.9615292],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790924":{"id":"n1819790924","loc":[-85.6210147,41.9570489],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:02Z","tags":{}},"n1819790929":{"id":"n1819790929","loc":[-85.6193678,41.955521],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:02Z","tags":{}},"w17964707":{"id":"w17964707","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:31:34Z","tags":{"highway":"residential","name":"11th Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"11th","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314405","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185960682","n185960684","n185960686","n185960688","n185960690"]},"w201484345":{"id":"w201484345","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:16Z","tags":{"bridge":"yes","highway":"residential","name":"E Hoffman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978791","n185978795"]},"w201484348":{"id":"w201484348","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:16Z","tags":{"highway":"residential","name":"E Hoffman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978795","n185978800","n185978803","n185978806","n185978808","n185978810","n185978811","n185978813","n185955747","n185978814","n185972054","n185978817"]},"w170843845":{"id":"w170843845","version":"3","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:23Z","tags":{"ele":"244","gnis:county_id":"149","gnis:created":"04/14/1980","gnis:feature_id":"1624607","gnis:state_id":"26","landuse":"reservoir","name":"Hoffman Pond","natural":"water","source":"Bing"},"nodes":["n1819790732","n1819790742","n1819790825","n1819790729","n1819790842","n1819790765","n1819790737","n1819790856","n1819790643","n1819790596","n1819790844","n1819790839","n1819849190","n1819790619","n1819790613","n1819790669","n1819790550","n1819790682","n1819790701","n1819790790","n1819790532","n1819790887","n1819790740","n1819790831","n1819790545","n1819790664","n1819790621","n1819790861","n1819790730","n1819790683","n1819790802","n1819790717","n1819790710","n1819790713","n1819790650","n1819790873","n1819790814","n1819790755","n1819790715","n1819790818","n1819790602","n1819790893","n1819790662","n1819790699","n1819790772","n1819790771","n1819790680","n1819790794","n1819790727","n1819790628","n1819790661","n1819790784","n1819790610","n1819790626","n1819790929","n1819790656","n1819790871","n1819790673","n1819790566","n1819790820","n1819790676","n1819790598","n1819790556","n1819790558","n1819790879","n1819790608","n1819790813","n1819790789","n1819790865","n1819790847","n1819790758","n1819790548","n1819790539","n1819790889","n1819790557","n1819790586","n1819790571","n1819790823","n1819790546","n1819790924","n1819790785","n1819790708","n1819790786","n1819790561","n1819790804","n1819790788","n1819790684","n1819790711","n1819790875","n1819790672","n1819790569","n1819790757","n1819790769","n1819790603","n1819790906","n1819790553","n1819790536","n1819790678","n1819790920","n1819790600","n1819790733","n1819790743","n1819790567","n1819790764","n1819790722","n1819790638","n1819790917","n1819790800","n1819790741","n1819790667","n1819790913","n1819790744","n1819790816","n1819790591","n1819790745","n1819790885","n1819790652","n1819790588","n1819790617","n1819790551","n1819790666","n1819790869","n1819790630","n1819790723","n1819790792","n1819790783","n1819790681","n1819790919","n1819790593","n1819790670","n1819790777","n1819790922","n1819790562","n1819790736","n1819790565","n1819790801","n1819790538","n1819790640","n1819790616","n1819790572","n1819790620","n1819790883","n1819790849","n1819790675","n1819790851","n1819790803","n1819790611","n1819790703","n1819790734","n1819790793","n1819790614","n1819790581","n1819790776","n1819790797","n1819790728","n1819790584","n1819790624","n1819790604","n1819790725","n1819790732"]},"w206805240":{"id":"w206805240","version":"2","changeset":"15306846","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-09T19:50:50Z","tags":{"waterway":"river"},"nodes":["n2168544738","n2168544739","n2168544740","n2168544741","n2168544742","n2168544743","n2168544744","n2168544745","n2168544746","n2168544747","n2168544748","n2168544749","n2168544750","n2168544751","n2168544752","n2168544753","n1819848944"]},"n394490429":{"id":"n394490429","loc":[-85.643883,41.954365],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n185953421":{"id":"n185953421","loc":[-85.641876,41.954946],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:56Z","tags":{}},"n185953417":{"id":"n185953417","loc":[-85.6418306,41.9551597],"version":"3","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{}},"n185977233":{"id":"n185977233","loc":[-85.642987,41.95486],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:49Z","tags":{}},"n185977232":{"id":"n185977232","loc":[-85.642894,41.9547842],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n1475293244":{"id":"n1475293244","loc":[-85.63974,41.9521543],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1819848890":{"id":"n1819848890","loc":[-85.6410004,41.9552822],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848965":{"id":"n1819848965","loc":[-85.6409795,41.9553892],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:52Z","tags":{}},"n2189015846":{"id":"n2189015846","loc":[-85.6420457,41.9549528],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015849":{"id":"n2189015849","loc":[-85.6425867,41.9551392],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015852":{"id":"n2189015852","loc":[-85.6426877,41.9549771],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2199109816":{"id":"n2199109816","loc":[-85.6399215,41.9540925],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109818":{"id":"n2199109818","loc":[-85.6399182,41.9538236],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109820":{"id":"n2199109820","loc":[-85.6402201,41.9538216],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109822":{"id":"n2199109822","loc":[-85.640222,41.9539771],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109825":{"id":"n2199109825","loc":[-85.6402904,41.9539766],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109827":{"id":"n2199109827","loc":[-85.6402918,41.95409],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109829":{"id":"n2199109829","loc":[-85.6395845,41.9544626],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109831":{"id":"n2199109831","loc":[-85.6395792,41.9540671],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109833":{"id":"n2199109833","loc":[-85.6397173,41.9540661],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109835":{"id":"n2199109835","loc":[-85.6397226,41.9544616],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109837":{"id":"n2199109837","loc":[-85.6399641,41.9545058],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109839":{"id":"n2199109839","loc":[-85.6399637,41.9541859],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109841":{"id":"n2199109841","loc":[-85.6401098,41.9541858],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109843":{"id":"n2199109843","loc":[-85.64011,41.9543272],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109845":{"id":"n2199109845","loc":[-85.6400783,41.9543273],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109847":{"id":"n2199109847","loc":[-85.6400785,41.9545058],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109853":{"id":"n2199109853","loc":[-85.6396184,41.9554049],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109855":{"id":"n2199109855","loc":[-85.6396825,41.9553713],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n185949745":{"id":"n185949745","loc":[-85.6442727,41.9553112],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185949748":{"id":"n185949748","loc":[-85.6448804,41.9555238],"version":"3","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{}},"n185949755":{"id":"n185949755","loc":[-85.6420011,41.9603536],"version":"3","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{}},"n185949763":{"id":"n185949763","loc":[-85.6408843,41.9555822],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185949765":{"id":"n185949765","loc":[-85.6414548,41.9557751],"version":"3","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:03Z","tags":{}},"n185952158":{"id":"n185952158","loc":[-85.640066,41.956854],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:10Z","tags":{}},"n185952160":{"id":"n185952160","loc":[-85.639848,41.957229],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:10Z","tags":{}},"n185952161":{"id":"n185952161","loc":[-85.6396089,41.9576192],"version":"3","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{}},"n185952163":{"id":"n185952163","loc":[-85.63892,41.957957],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:10Z","tags":{}},"n185953413":{"id":"n185953413","loc":[-85.64162,41.955475],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:56Z","tags":{}},"n185971651":{"id":"n185971651","loc":[-85.6440766,41.9543462],"version":"3","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:55Z","tags":{}},"n185977234":{"id":"n185977234","loc":[-85.645044,41.955581],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:49Z","tags":{}},"n394490395":{"id":"n394490395","loc":[-85.657336,41.936762],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490396":{"id":"n394490396","loc":[-85.653896,41.936978],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490397":{"id":"n394490397","loc":[-85.653732,41.937386],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490398":{"id":"n394490398","loc":[-85.65182,41.937378],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490399":{"id":"n394490399","loc":[-85.651843,41.938445],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490400":{"id":"n394490400","loc":[-85.652536,41.938447],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490401":{"id":"n394490401","loc":[-85.652533,41.938901],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490402":{"id":"n394490402","loc":[-85.652084,41.9389],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490403":{"id":"n394490403","loc":[-85.6521,41.939627],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490404":{"id":"n394490404","loc":[-85.652301,41.939628],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490405":{"id":"n394490405","loc":[-85.652302,41.939755],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490406":{"id":"n394490406","loc":[-85.652783,41.939747],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490407":{"id":"n394490407","loc":[-85.652835,41.94112],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490408":{"id":"n394490408","loc":[-85.651968,41.941123],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490409":{"id":"n394490409","loc":[-85.651983,41.941969],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490410":{"id":"n394490410","loc":[-85.652908,41.941961],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490411":{"id":"n394490411","loc":[-85.65292,41.94278],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490412":{"id":"n394490412","loc":[-85.651698,41.942816],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490413":{"id":"n394490413","loc":[-85.651509,41.942823],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490414":{"id":"n394490414","loc":[-85.651272,41.942837],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490415":{"id":"n394490415","loc":[-85.651272,41.943325],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490416":{"id":"n394490416","loc":[-85.65122,41.944053],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490417":{"id":"n394490417","loc":[-85.651193,41.944449],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490418":{"id":"n394490418","loc":[-85.651088,41.944969],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490419":{"id":"n394490419","loc":[-85.650949,41.945554],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490420":{"id":"n394490420","loc":[-85.650907,41.945719],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:28Z","tags":{}},"n394490421":{"id":"n394490421","loc":[-85.650808,41.946016],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490422":{"id":"n394490422","loc":[-85.650712,41.946516],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490423":{"id":"n394490423","loc":[-85.650493,41.947166],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490424":{"id":"n394490424","loc":[-85.650626,41.947213],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490425":{"id":"n394490425","loc":[-85.650201,41.948109],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490426":{"id":"n394490426","loc":[-85.649868,41.948797],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490427":{"id":"n394490427","loc":[-85.649669,41.949161],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490428":{"id":"n394490428","loc":[-85.64659,41.954067],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490430":{"id":"n394490430","loc":[-85.644034,41.95444],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490431":{"id":"n394490431","loc":[-85.644248,41.954507],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490432":{"id":"n394490432","loc":[-85.64491,41.954481],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490433":{"id":"n394490433","loc":[-85.645213,41.954433],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490434":{"id":"n394490434","loc":[-85.645426,41.954477],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490435":{"id":"n394490435","loc":[-85.6458,41.954704],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490436":{"id":"n394490436","loc":[-85.64605,41.954804],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:29Z","tags":{}},"n394490437":{"id":"n394490437","loc":[-85.646125,41.954817],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490438":{"id":"n394490438","loc":[-85.646002,41.954997],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490439":{"id":"n394490439","loc":[-85.645764,41.955366],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490440":{"id":"n394490440","loc":[-85.645525,41.955734],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490441":{"id":"n394490441","loc":[-85.64443,41.957424],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490442":{"id":"n394490442","loc":[-85.641712,41.961723],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490443":{"id":"n394490443","loc":[-85.640747,41.963246],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490444":{"id":"n394490444","loc":[-85.637803,41.967894],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490445":{"id":"n394490445","loc":[-85.637673,41.967861],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490446":{"id":"n394490446","loc":[-85.636637,41.969275],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490447":{"id":"n394490447","loc":[-85.634923,41.969269],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490448":{"id":"n394490448","loc":[-85.634893,41.968537],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490449":{"id":"n394490449","loc":[-85.634544,41.96927],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490450":{"id":"n394490450","loc":[-85.630835,41.969274],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490451":{"id":"n394490451","loc":[-85.630834,41.968348],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490452":{"id":"n394490452","loc":[-85.630857,41.968179],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490453":{"id":"n394490453","loc":[-85.630924,41.968044],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490454":{"id":"n394490454","loc":[-85.631004,41.967925],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490455":{"id":"n394490455","loc":[-85.631143,41.967811],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490456":{"id":"n394490456","loc":[-85.631311,41.967736],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490457":{"id":"n394490457","loc":[-85.631595,41.967693],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490458":{"id":"n394490458","loc":[-85.63325,41.967702],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490459":{"id":"n394490459","loc":[-85.633247,41.967021],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490460":{"id":"n394490460","loc":[-85.634858,41.967021],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490461":{"id":"n394490461","loc":[-85.634865,41.967711],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490462":{"id":"n394490462","loc":[-85.634884,41.968231],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490463":{"id":"n394490463","loc":[-85.636559,41.963867],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490464":{"id":"n394490464","loc":[-85.634832,41.963866],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490465":{"id":"n394490465","loc":[-85.63481,41.961899],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490466":{"id":"n394490466","loc":[-85.637219,41.961842],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490467":{"id":"n394490467","loc":[-85.637837,41.960019],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490468":{"id":"n394490468","loc":[-85.637459,41.960022],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490469":{"id":"n394490469","loc":[-85.635295,41.959987],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490470":{"id":"n394490470","loc":[-85.634783,41.959979],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490471":{"id":"n394490471","loc":[-85.634776,41.959834],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490472":{"id":"n394490472","loc":[-85.634767,41.959009],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490473":{"id":"n394490473","loc":[-85.634763,41.958292],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490474":{"id":"n394490474","loc":[-85.633346,41.958287],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490475":{"id":"n394490475","loc":[-85.632128,41.9583],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:30Z","tags":{}},"n394490476":{"id":"n394490476","loc":[-85.631414,41.958318],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490477":{"id":"n394490477","loc":[-85.63137,41.959033],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490478":{"id":"n394490478","loc":[-85.631325,41.959753],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490479":{"id":"n394490479","loc":[-85.631494,41.95977],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490480":{"id":"n394490480","loc":[-85.631456,41.960673],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490481":{"id":"n394490481","loc":[-85.631421,41.961494],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490482":{"id":"n394490482","loc":[-85.631404,41.961887],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490483":{"id":"n394490483","loc":[-85.631401,41.961968],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490484":{"id":"n394490484","loc":[-85.630962,41.961967],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490485":{"id":"n394490485","loc":[-85.6299,41.961973],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490486":{"id":"n394490486","loc":[-85.624929,41.962002],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490487":{"id":"n394490487","loc":[-85.623333,41.961987],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490488":{"id":"n394490488","loc":[-85.621894,41.963956],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490489":{"id":"n394490489","loc":[-85.62131,41.963727],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490490":{"id":"n394490490","loc":[-85.621216,41.963868],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490491":{"id":"n394490491","loc":[-85.620356,41.965119],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490492":{"id":"n394490492","loc":[-85.620848,41.965341],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490493":{"id":"n394490493","loc":[-85.620684,41.965558],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490494":{"id":"n394490494","loc":[-85.620621,41.965658],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490495":{"id":"n394490495","loc":[-85.618165,41.965759],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490496":{"id":"n394490496","loc":[-85.618071,41.965759],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490497":{"id":"n394490497","loc":[-85.617986,41.965759],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490498":{"id":"n394490498","loc":[-85.605673,41.965764],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490499":{"id":"n394490499","loc":[-85.605668,41.963548],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490500":{"id":"n394490500","loc":[-85.605664,41.962094],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490501":{"id":"n394490501","loc":[-85.595828,41.962159],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490502":{"id":"n394490502","loc":[-85.587869,41.962169],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490503":{"id":"n394490503","loc":[-85.586289,41.962179],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490504":{"id":"n394490504","loc":[-85.583774,41.962178],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490505":{"id":"n394490505","loc":[-85.583774,41.961789],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490506":{"id":"n394490506","loc":[-85.581303,41.961783],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490507":{"id":"n394490507","loc":[-85.581304,41.961616],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490508":{"id":"n394490508","loc":[-85.581292,41.961616],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490509":{"id":"n394490509","loc":[-85.581247,41.959244],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490510":{"id":"n394490510","loc":[-85.581245,41.958394],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490511":{"id":"n394490511","loc":[-85.581276,41.958372],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:31Z","tags":{}},"n394490512":{"id":"n394490512","loc":[-85.581302,41.958353],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490513":{"id":"n394490513","loc":[-85.581376,41.9583],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490514":{"id":"n394490514","loc":[-85.582256,41.957663],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490515":{"id":"n394490515","loc":[-85.585299,41.955483],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490516":{"id":"n394490516","loc":[-85.585588,41.955331],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490517":{"id":"n394490517","loc":[-85.586053,41.955163],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490518":{"id":"n394490518","loc":[-85.58632,41.955076],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490519":{"id":"n394490519","loc":[-85.586478,41.955025],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490520":{"id":"n394490520","loc":[-85.58692,41.954947],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490521":{"id":"n394490521","loc":[-85.587327,41.954914],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490522":{"id":"n394490522","loc":[-85.587345,41.954913],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490523":{"id":"n394490523","loc":[-85.587358,41.954913],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490524":{"id":"n394490524","loc":[-85.58963,41.954877],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490525":{"id":"n394490525","loc":[-85.591077,41.954865],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490526":{"id":"n394490526","loc":[-85.594824,41.954843],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490527":{"id":"n394490527","loc":[-85.594804,41.95331],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490528":{"id":"n394490528","loc":[-85.599336,41.95331],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490529":{"id":"n394490529","loc":[-85.599336,41.954825],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490530":{"id":"n394490530","loc":[-85.597828,41.954839],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490531":{"id":"n394490531","loc":[-85.597833,41.95614],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490532":{"id":"n394490532","loc":[-85.596586,41.956151],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490533":{"id":"n394490533","loc":[-85.596586,41.956394],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490534":{"id":"n394490534","loc":[-85.595933,41.956394],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490535":{"id":"n394490535","loc":[-85.595933,41.958176],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490536":{"id":"n394490536","loc":[-85.597635,41.958179],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490537":{"id":"n394490537","loc":[-85.597717,41.958177],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490538":{"id":"n394490538","loc":[-85.601671,41.958194],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490539":{"id":"n394490539","loc":[-85.605619,41.958194],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490540":{"id":"n394490540","loc":[-85.608054,41.958187],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:32Z","tags":{}},"n394490542":{"id":"n394490542","loc":[-85.6080762,41.9547864],"version":"2","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:47:47Z","tags":{}},"n394490545":{"id":"n394490545","loc":[-85.6104354,41.9548263],"version":"2","changeset":"12747630","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-16T08:22:38Z","tags":{}},"n394490546":{"id":"n394490546","loc":[-85.610274,41.951106],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490547":{"id":"n394490547","loc":[-85.610278,41.950829],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490548":{"id":"n394490548","loc":[-85.610309,41.948377],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490549":{"id":"n394490549","loc":[-85.610314,41.947986],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490550":{"id":"n394490550","loc":[-85.610464,41.947985],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490551":{"id":"n394490551","loc":[-85.610447,41.947468],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490552":{"id":"n394490552","loc":[-85.612469,41.947471],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490553":{"id":"n394490553","loc":[-85.612494,41.945576],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490554":{"id":"n394490554","loc":[-85.610292,41.94558],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490555":{"id":"n394490555","loc":[-85.608412,41.945625],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490556":{"id":"n394490556","loc":[-85.608412,41.943036],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490557":{"id":"n394490557","loc":[-85.608702,41.943087],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490558":{"id":"n394490558","loc":[-85.609196,41.943224],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490559":{"id":"n394490559","loc":[-85.609571,41.943263],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490560":{"id":"n394490560","loc":[-85.610116,41.943295],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490561":{"id":"n394490561","loc":[-85.610273,41.943275],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490562":{"id":"n394490562","loc":[-85.611339,41.943075],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490563":{"id":"n394490563","loc":[-85.611575,41.942997],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490564":{"id":"n394490564","loc":[-85.611847,41.942849],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490565":{"id":"n394490565","loc":[-85.612164,41.942568],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490566":{"id":"n394490566","loc":[-85.612341,41.942529],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490567":{"id":"n394490567","loc":[-85.612562,41.942524],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490568":{"id":"n394490568","loc":[-85.612768,41.942546],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490569":{"id":"n394490569","loc":[-85.612938,41.942633],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490570":{"id":"n394490570","loc":[-85.6131,41.942782],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490571":{"id":"n394490571","loc":[-85.613299,41.942919],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490572":{"id":"n394490572","loc":[-85.613498,41.942996],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490573":{"id":"n394490573","loc":[-85.614698,41.942842],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490574":{"id":"n394490574","loc":[-85.615288,41.942698],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490575":{"id":"n394490575","loc":[-85.616054,41.942693],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490576":{"id":"n394490576","loc":[-85.61603,41.942175],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490577":{"id":"n394490577","loc":[-85.616004,41.941741],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490578":{"id":"n394490578","loc":[-85.615994,41.940156],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:33Z","tags":{}},"n394490579":{"id":"n394490579","loc":[-85.615144,41.940159],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490580":{"id":"n394490580","loc":[-85.614915,41.940161],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490582":{"id":"n394490582","loc":[-85.614875,41.938532],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490583":{"id":"n394490583","loc":[-85.616167,41.938787],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490585":{"id":"n394490585","loc":[-85.616176,41.938589],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490586":{"id":"n394490586","loc":[-85.614537,41.938282],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490588":{"id":"n394490588","loc":[-85.610141,41.937459],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490589":{"id":"n394490589","loc":[-85.610172,41.937298],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490590":{"id":"n394490590","loc":[-85.609918,41.935495],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490592":{"id":"n394490592","loc":[-85.610092,41.935451],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490594":{"id":"n394490594","loc":[-85.610681,41.935247],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490595":{"id":"n394490595","loc":[-85.611446,41.934955],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490596":{"id":"n394490596","loc":[-85.612057,41.934696],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490598":{"id":"n394490598","loc":[-85.613256,41.934084],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490599":{"id":"n394490599","loc":[-85.613948,41.933682],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490601":{"id":"n394490601","loc":[-85.61436,41.933417],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490602":{"id":"n394490602","loc":[-85.614638,41.933212],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490604":{"id":"n394490604","loc":[-85.615249,41.9332],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490605":{"id":"n394490605","loc":[-85.618218,41.933223],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490607":{"id":"n394490607","loc":[-85.618241,41.933479],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490608":{"id":"n394490608","loc":[-85.618257,41.93365],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490609":{"id":"n394490609","loc":[-85.618298,41.935067],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490611":{"id":"n394490611","loc":[-85.619791,41.935067],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490612":{"id":"n394490612","loc":[-85.619794,41.933301],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490613":{"id":"n394490613","loc":[-85.619795,41.932692],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490614":{"id":"n394490614","loc":[-85.619729,41.929517],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490615":{"id":"n394490615","loc":[-85.619801,41.929305],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490616":{"id":"n394490616","loc":[-85.619809,41.927391],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490617":{"id":"n394490617","loc":[-85.620883,41.927378],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490618":{"id":"n394490618","loc":[-85.620988,41.927368],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490619":{"id":"n394490619","loc":[-85.621076,41.927368],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490620":{"id":"n394490620","loc":[-85.621156,41.927376],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490621":{"id":"n394490621","loc":[-85.621685,41.92737],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490622":{"id":"n394490622","loc":[-85.624716,41.927359],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490623":{"id":"n394490623","loc":[-85.625308,41.92737],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:34Z","tags":{}},"n394490624":{"id":"n394490624","loc":[-85.625655,41.927377],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490625":{"id":"n394490625","loc":[-85.625093,41.925591],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490626":{"id":"n394490626","loc":[-85.625174,41.92559],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490627":{"id":"n394490627","loc":[-85.625249,41.925597],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490628":{"id":"n394490628","loc":[-85.625532,41.925604],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490629":{"id":"n394490629","loc":[-85.625761,41.925597],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490630":{"id":"n394490630","loc":[-85.625955,41.926153],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490631":{"id":"n394490631","loc":[-85.626209,41.926155],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490632":{"id":"n394490632","loc":[-85.627757,41.926151],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490633":{"id":"n394490633","loc":[-85.627825,41.926298],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490634":{"id":"n394490634","loc":[-85.627994,41.926315],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490635":{"id":"n394490635","loc":[-85.628049,41.927196],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490636":{"id":"n394490636","loc":[-85.62949,41.927221],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490637":{"id":"n394490637","loc":[-85.629602,41.927277],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490638":{"id":"n394490638","loc":[-85.6297102,41.9273279],"version":"2","changeset":"12805153","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-08-21T08:30:02Z","tags":{}},"n394490639":{"id":"n394490639","loc":[-85.630958,41.927398],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:06:35Z","tags":{}},"n394490699":{"id":"n394490699","loc":[-85.632741,41.927388],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490700":{"id":"n394490700","loc":[-85.632997,41.927391],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490701":{"id":"n394490701","loc":[-85.633149,41.927393],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490702":{"id":"n394490702","loc":[-85.633334,41.927393],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490703":{"id":"n394490703","loc":[-85.633468,41.927561],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490704":{"id":"n394490704","loc":[-85.633563,41.927755],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490705":{"id":"n394490705","loc":[-85.633662,41.928192],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490706":{"id":"n394490706","loc":[-85.633679,41.928807],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490707":{"id":"n394490707","loc":[-85.633687,41.929107],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490708":{"id":"n394490708","loc":[-85.633927,41.929109],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490709":{"id":"n394490709","loc":[-85.634126,41.929111],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490710":{"id":"n394490710","loc":[-85.634207,41.92911],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490711":{"id":"n394490711","loc":[-85.634323,41.929111],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490712":{"id":"n394490712","loc":[-85.636712,41.929128],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490713":{"id":"n394490713","loc":[-85.63808,41.9291],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490714":{"id":"n394490714","loc":[-85.639213,41.929088],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490715":{"id":"n394490715","loc":[-85.639189,41.92852],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490716":{"id":"n394490716","loc":[-85.639204,41.925488],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490717":{"id":"n394490717","loc":[-85.644204,41.925452],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:55Z","tags":{}},"n394490718":{"id":"n394490718","loc":[-85.651425,41.925406],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490719":{"id":"n394490719","loc":[-85.651449,41.926321],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490720":{"id":"n394490720","loc":[-85.651451,41.926969],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490721":{"id":"n394490721","loc":[-85.651458,41.928052],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490722":{"id":"n394490722","loc":[-85.651446,41.928892],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490723":{"id":"n394490723","loc":[-85.651456,41.929447],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490724":{"id":"n394490724","loc":[-85.651707,41.929454],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490725":{"id":"n394490725","loc":[-85.652369,41.929473],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490726":{"id":"n394490726","loc":[-85.6525,41.929452],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490727":{"id":"n394490727","loc":[-85.654066,41.92946],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490728":{"id":"n394490728","loc":[-85.654816,41.92946],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490729":{"id":"n394490729","loc":[-85.654816,41.930337],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490730":{"id":"n394490730","loc":[-85.654587,41.930337],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490731":{"id":"n394490731","loc":[-85.654548,41.931072],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490732":{"id":"n394490732","loc":[-85.654538,41.931701],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490733":{"id":"n394490733","loc":[-85.654898,41.931689],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490734":{"id":"n394490734","loc":[-85.654898,41.932505],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490735":{"id":"n394490735","loc":[-85.654854,41.932514],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490736":{"id":"n394490736","loc":[-85.655497,41.932499],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490737":{"id":"n394490737","loc":[-85.656405,41.932493],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490738":{"id":"n394490738","loc":[-85.656422,41.933416],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n394490739":{"id":"n394490739","loc":[-85.657322,41.933438],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:56Z","tags":{}},"n1475293233":{"id":"n1475293233","loc":[-85.6385522,41.9585167],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:50Z","tags":{}},"n1475293242":{"id":"n1475293242","loc":[-85.64609,41.9540815],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293249":{"id":"n1475293249","loc":[-85.6358079,41.9692721],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293256":{"id":"n1475293256","loc":[-85.6387369,41.9581583],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:51Z","tags":{}},"n1475293259":{"id":"n1475293259","loc":[-85.6455882,41.9541138],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{}},"n1475293266":{"id":"n1475293266","loc":[-85.6451008,41.9541821],"version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{}},"n1819800253":{"id":"n1819800253","loc":[-85.6134286,41.9429692],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:03:23Z","tags":{}},"n2114807558":{"id":"n2114807558","loc":[-85.6365609,41.963866],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{"railway":"level_crossing"}},"n2189015728":{"id":"n2189015728","loc":[-85.6383956,41.9590576],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015838":{"id":"n2189015838","loc":[-85.6435144,41.9563705],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015842":{"id":"n2189015842","loc":[-85.6415782,41.9557035],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015855":{"id":"n2189015855","loc":[-85.6440829,41.9554577],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2199109849":{"id":"n2199109849","loc":[-85.6393434,41.9565591],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109851":{"id":"n2199109851","loc":[-85.6393208,41.9565002],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:51Z","tags":{}},"n2199109857":{"id":"n2199109857","loc":[-85.6401986,41.955545],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109859":{"id":"n2199109859","loc":[-85.6402362,41.955587],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109861":{"id":"n2199109861","loc":[-85.6395958,41.9565675],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109863":{"id":"n2199109863","loc":[-85.639528,41.9566011],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"w209717053":{"id":"w209717053","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109829","n2199109831","n2199109833","n2199109835","n2199109829"]},"w17966415":{"id":"w17966415","version":"2","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{"access":"private","highway":"service","name":"Manufacturing Way","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Manufacturing","tiger:name_type":"Way","tiger:reviewed":"no"},"nodes":["n185971642","n185977232","n185977233","n185949745","n185949748","n185977234"]},"w209717054":{"id":"w209717054","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109837","n2199109839","n2199109841","n2199109843","n2199109845","n2199109847","n2199109837"]},"w208627214":{"id":"w208627214","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no"},"nodes":["n185949755","n2189015728","n1475293233","n1475293256","n185952163","n185952161","n185952160","n185952158","n185949763","n1819848965","n1819848890","n185952156"]},"w17963817":{"id":"w17963817","version":"2","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{"access":"private","highway":"service","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:reviewed":"no"},"nodes":["n185949765","n185953413","n185953417","n185953421","n185953423"]},"w34369809":{"id":"w34369809","version":"7","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:19Z","tags":{"admin_level":"8","boundary":"administrative","landuse":"residential","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490395","n394490396","n394490397","n394490398","n394490399","n394490400","n394490401","n394490402","n394490403","n394490404","n394490405","n394490406","n394490407","n394490408","n394490409","n394490410","n394490411","n394490412","n394490413","n394490414","n394490415","n394490416","n394490417","n394490418","n394490419","n394490420","n394490421","n394490422","n394490423","n394490424","n394490425","n394490426","n394490427","n394490428","n1475293242","n1475293259","n1475293266","n394490429","n394490430","n394490431","n394490432","n394490433","n394490434","n394490435","n394490436","n394490437","n394490438","n394490439","n394490440","n394490441","n394490442","n394490443","n394490444","n394490445","n394490446","n1475293249","n394490447","n394490448","n394490449","n394490450","n394490451","n394490452","n394490453","n394490454","n394490455","n394490456","n394490457","n394490458","n394490459","n394490460","n394490461","n394490462","n2114807558","n394490463","n1475293226","n394490464","n394490465","n394490466","n394490467","n394490468","n394490469","n394490470","n394490471","n394490472","n394490473","n394490474","n394490475","n394490476","n394490477","n394490478","n394490479","n394490480","n394490481","n394490482","n394490483","n394490484","n394490485","n394490486","n394490487","n394490488","n394490489","n394490490","n394490491","n394490492","n394490493","n394490494","n394490495","n394490496","n394490497","n394490498","n394490499","n394490500","n394490501","n394490502","n394490503","n394490504","n394490505","n394490506","n394490507","n394490508","n394490509","n394490510","n394490511","n394490512","n394490513","n394490514","n394490515","n394490516","n394490517","n394490518","n394490519","n394490520","n394490521","n394490522","n394490523","n394490524","n394490525","n394490526","n394490527","n394490528","n394490529","n394490530","n394490531","n394490532","n394490533","n394490534","n394490535","n394490536","n394490537","n394490538","n394490539","n394490540","n394490542","n394490545","n394490546","n394490547","n394490548","n394490549","n394490550","n394490551","n394490552","n394490553","n394490554","n394490555","n394490556","n394490557","n394490558","n394490559","n394490560","n394490561","n394490562","n394490563","n394490564","n394490565","n394490566","n394490567","n394490568","n394490569","n394490570","n394490571","n1819800253","n394490572","n394490573","n394490574","n394490575","n394490576","n394490577","n394490578","n394490579","n394490580","n394490582","n394490583","n394490585","n394490586","n394490588","n394490589","n394490590","n394490592","n394490594","n394490595","n394490596","n394490598","n394490599","n394490601","n394490602","n394490604","n394490605","n394490607","n394490608","n394490609","n394490611","n394490612","n394490613","n394490614","n394490615","n394490616","n394490617","n394490618","n394490619","n394490620","n394490621","n394490622","n394490623","n394490624","n394490625","n394490626","n394490627","n394490628","n394490629","n394490630","n394490631","n394490632","n394490633","n394490634","n394490635","n394490636","n394490637","n394490638","n394490639","n394490699","n394490700","n394490701","n394490702","n394490703","n394490704","n394490705","n394490706","n394490707","n394490708","n394490709","n394490710","n394490711","n394490712","n394490713","n394490714","n394490715","n394490716","n394490717","n394490718","n394490719","n394490720","n394490721","n394490722","n394490723","n394490724","n394490725","n394490726","n394490727","n394490728","n394490729","n394490730","n394490731","n394490732","n394490733","n394490734","n394490735","n394490736","n394490737","n394490738","n394490739","n394490395"]},"w208627221":{"id":"w208627221","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189015838","n2189015842","n2189015846","n2189015849","n2189015852","n2189015855","n2189015838"]},"w209717052":{"id":"w209717052","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109816","n2199109818","n2199109820","n2199109822","n2199109825","n2199109827","n2199109816"]},"w134151784":{"id":"w134151784","version":"1","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:54:52Z","tags":{"bridge":"yes","highway":"residential","name":"W Hoffman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312195:15312958:15312207:15313273:15328372:15328373","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185971648","n185971651"]},"w209717055":{"id":"w209717055","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","landuse":"basin"},"nodes":["n2199109849","n2199109851","n2199109853","n2199109855","n2199109857","n2199109859","n2199109861","n2199109863","n2199109849"]},"w17967763":{"id":"w17967763","version":"2","changeset":"9619138","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2011-10-21T19:55:04Z","tags":{"highway":"residential","name":"Rock River Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Rock River","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312230:15312252:15335064:15333550","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093"},"nodes":["n1475293244","n185982166","n185975067","n185971637"]},"r134949":{"id":"r134949","version":"2","changeset":"14979874","user":"malenki","uid":"39504","visible":"true","timestamp":"2013-02-10T12:18:08Z","tags":{"admin_level":"8","border_type":"city","boundary":"administrative","is_in":"USA, Michigan","is_in:country":"USA","is_in:country_code":"US","is_in:iso_3166_2":"US:MI","is_in:state":"Michigan","is_in:state_code":"MI","name":"Three Rivers","place":"city","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)","tiger:CLASSFP":"C5","tiger:CPI":"Y","tiger:FUNCSTAT":"A","tiger:LSAD":"25","tiger:MTFCC":"G4110","tiger:NAME":"Three Rivers","tiger:NAMELSAD":"Three Rivers city","tiger:PCICBSA":"N","tiger:PCINECTA":"N","tiger:PLACEFP":"79760","tiger:PLACENS":"01627164","tiger:PLCIDFP":"2679760","tiger:STATEFP":"26","type":"boundary","wikipedia":"en:Three Rivers, Michigan"},"members":[{"id":"w34369809","type":"way","role":"outer"},{"id":"w34369821","type":"way","role":"outer"},{"id":"w34369822","type":"way","role":"outer"},{"id":"w34369823","type":"way","role":"outer"},{"id":"w34369824","type":"way","role":"outer"},{"id":"w34369825","type":"way","role":"outer"},{"id":"w34369826","type":"way","role":"outer"},{"id":"w34369810","type":"way","role":"inner"},{"id":"w34369811","type":"way","role":"inner"},{"id":"w34369812","type":"way","role":"inner"},{"id":"w34367079","type":"way","role":"inner"},{"id":"w34369814","type":"way","role":"inner"},{"id":"w34367080","type":"way","role":"inner"},{"id":"w34369815","type":"way","role":"inner"},{"id":"w34369820","type":"way","role":"inner"}]},"n1819848881":{"id":"n1819848881","loc":[-85.638562,41.9569965],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:49Z","tags":{}},"n1819848947":{"id":"n1819848947","loc":[-85.6384348,41.9576565],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:51Z","tags":{}},"n1819849044":{"id":"n1819849044","loc":[-85.6385749,41.9573345],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n2114807547":{"id":"n2114807547","loc":[-85.6384626,41.9583756],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807564":{"id":"n2114807564","loc":[-85.638535,41.9581283],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2189015691":{"id":"n2189015691","loc":[-85.6435584,41.9565243],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:49Z","tags":{}},"n2189015696":{"id":"n2189015696","loc":[-85.6435805,41.9566049],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015722":{"id":"n2189015722","loc":[-85.6435035,41.9567438],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015744":{"id":"n2189015744","loc":[-85.6437991,41.9569582],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015747":{"id":"n2189015747","loc":[-85.6433042,41.9567742],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015750":{"id":"n2189015750","loc":[-85.6433827,41.9566844],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015753":{"id":"n2189015753","loc":[-85.6430447,41.9565588],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015756":{"id":"n2189015756","loc":[-85.6431111,41.956451],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015759":{"id":"n2189015759","loc":[-85.6420247,41.956083],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015760":{"id":"n2189015760","loc":[-85.6419945,41.9561369],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015764":{"id":"n2189015764","loc":[-85.6413729,41.9558945],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015766":{"id":"n2189015766","loc":[-85.6412884,41.9560606],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015770":{"id":"n2189015770","loc":[-85.6411798,41.9560112],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015771":{"id":"n2189015771","loc":[-85.6410651,41.9562132],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015774":{"id":"n2189015774","loc":[-85.6409504,41.9561728],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015778":{"id":"n2189015778","loc":[-85.6407996,41.9564241],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015781":{"id":"n2189015781","loc":[-85.6406889,41.9563892],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015785":{"id":"n2189015785","loc":[-85.6404857,41.9567024],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015789":{"id":"n2189015789","loc":[-85.6406909,41.9567877],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015793":{"id":"n2189015793","loc":[-85.6405642,41.9570165],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015796":{"id":"n2189015796","loc":[-85.6415359,41.9573711],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015800":{"id":"n2189015800","loc":[-85.6411738,41.9579501],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015804":{"id":"n2189015804","loc":[-85.6411119,41.957921],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015808":{"id":"n2189015808","loc":[-85.6403186,41.9591751],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015909":{"id":"n2189015909","loc":[-85.6389293,41.9564636],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015926":{"id":"n2189015926","loc":[-85.6385431,41.9564617],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015929":{"id":"n2189015929","loc":[-85.6385457,41.9561823],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015932":{"id":"n2189015932","loc":[-85.6389319,41.9561843],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2199109865":{"id":"n2199109865","loc":[-85.6400768,41.956776],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109867":{"id":"n2199109867","loc":[-85.639902,41.9567153],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109869":{"id":"n2199109869","loc":[-85.640004,41.956553],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109871":{"id":"n2199109871","loc":[-85.6401788,41.9566137],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109873":{"id":"n2199109873","loc":[-85.6399316,41.9564506],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{"man_made":"water_tower"}},"n2199109876":{"id":"n2199109876","loc":[-85.6397689,41.9572354],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109878":{"id":"n2199109878","loc":[-85.6399229,41.9569826],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109880":{"id":"n2199109880","loc":[-85.639706,41.9569095],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109882":{"id":"n2199109882","loc":[-85.639552,41.9571623],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109884":{"id":"n2199109884","loc":[-85.6391028,41.9569517],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109886":{"id":"n2199109886","loc":[-85.6392876,41.956646],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109888":{"id":"n2199109888","loc":[-85.639484,41.9567117],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109889":{"id":"n2199109889","loc":[-85.6394322,41.9567973],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109890":{"id":"n2199109890","loc":[-85.6393718,41.9567771],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109891":{"id":"n2199109891","loc":[-85.6392387,41.9569972],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n1819848900":{"id":"n1819848900","loc":[-85.638281,41.9576578],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:50Z","tags":{}},"n1819848978":{"id":"n1819848978","loc":[-85.6377186,41.9580867],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:53Z","tags":{}},"n1819849039":{"id":"n1819849039","loc":[-85.6384217,41.9573405],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:54Z","tags":{}},"n1819849050":{"id":"n1819849050","loc":[-85.6377011,41.9570042],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:55Z","tags":{}},"n1819849088":{"id":"n1819849088","loc":[-85.6382879,41.9580817],"version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:47:56Z","tags":{}},"n2114807549":{"id":"n2114807549","loc":[-85.6362551,41.96473],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807587":{"id":"n2114807587","loc":[-85.6368694,41.9629829],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2189015725":{"id":"n2189015725","loc":[-85.644156,41.9569753],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015741":{"id":"n2189015741","loc":[-85.6419825,41.9597632],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"w208627217":{"id":"w208627217","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015741","n2189015744","n2189015747","n2189015750","n2189015753","n2189015756","n2189015759","n2189015760","n2189015764","n2189015766","n2189015770","n2189015771","n2189015774","n2189015778","n2189015781","n2189015785","n2189015789","n2189015793","n2189015796","n2189015800","n2189015804","n2189015808","n2189015741"]},"w208627212":{"id":"w208627212","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"highway":"service"},"nodes":["n2189015691","n2189015696","n2189015722","n2189015725"]},"w209717057":{"id":"w209717057","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109876","n2199109878","n2199109880","n2199109882","n2199109876"]},"w209717056":{"id":"w209717056","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109865","n2199109867","n2199109869","n2199109871","n2199109865"]},"w208627231":{"id":"w208627231","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015909","n2189015926","n2189015929","n2189015932","n2189015909"]},"w170848326":{"id":"w170848326","version":"1","changeset":"12170158","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T07:48:00Z","tags":{"building":"yes","source":"Bing"},"nodes":["n1819848881","n1819849050","n1819848978","n1819849088","n1819848900","n1819848947","n1819849039","n1819849044","n1819848881"]},"w17963182":{"id":"w17963182","version":"2","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:55Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no"},"nodes":["n185949763","n185949765","n2189015691","n185949745"]},"w201484340":{"id":"w201484340","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:16Z","tags":{"railway":"rail","service":"siding","source":"Bing"},"nodes":["n2114807565","n2114807564","n2114807547","n2114807587","n2114807558","n2114807549","n2114807593"]},"w209717058":{"id":"w209717058","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109884","n2199109886","n2199109888","n2199109889","n2199109890","n2199109891","n2199109884"]},"n185954650":{"id":"n185954650","loc":[-85.627331,41.957439],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:31Z","tags":{}},"n185966949":{"id":"n185966949","loc":[-85.626868,41.957314],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"n185989335":{"id":"n185989335","loc":[-85.62529,41.958568],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989337":{"id":"n185989337","loc":[-85.624962,41.958453],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989339":{"id":"n185989339","loc":[-85.624832,41.958399],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989340":{"id":"n185989340","loc":[-85.624707,41.958325],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989342":{"id":"n185989342","loc":[-85.624636,41.958251],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989345":{"id":"n185989345","loc":[-85.624578,41.95818],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989347":{"id":"n185989347","loc":[-85.624533,41.958099],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989349":{"id":"n185989349","loc":[-85.624507,41.957985],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989351":{"id":"n185989351","loc":[-85.624495,41.957807],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989353":{"id":"n185989353","loc":[-85.624514,41.957663],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989354":{"id":"n185989354","loc":[-85.624577,41.957593],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989356":{"id":"n185989356","loc":[-85.624685,41.95754],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:27Z","tags":{}},"n185989357":{"id":"n185989357","loc":[-85.624802,41.957523],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n185989359":{"id":"n185989359","loc":[-85.624996,41.957524],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n185989361":{"id":"n185989361","loc":[-85.625409,41.957515],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n185989364":{"id":"n185989364","loc":[-85.625634,41.957496],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n185989367":{"id":"n185989367","loc":[-85.625832,41.957453],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n185989368":{"id":"n185989368","loc":[-85.626044,41.957394],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:14:28Z","tags":{}},"n354031352":{"id":"n354031352","loc":[-85.6252778,41.9586111],"version":"3","changeset":"3908860","user":"Geogast","uid":"51045","visible":"true","timestamp":"2010-02-18T13:28:26Z","tags":{"amenity":"place_of_worship","denomination":"baptist","ele":"250","gnis:county_id":"149","gnis:created":"04/30/2008","gnis:feature_id":"2417873","gnis:state_id":"26","name":"First Baptist Church","religion":"christian"}},"n2199109892":{"id":"n2199109892","loc":[-85.6261578,41.9589963],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109893":{"id":"n2199109893","loc":[-85.6263191,41.9586865],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109894":{"id":"n2199109894","loc":[-85.6261186,41.9586288],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109895":{"id":"n2199109895","loc":[-85.6260644,41.9587329],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109896":{"id":"n2199109896","loc":[-85.6261547,41.9587589],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n2199109898":{"id":"n2199109898","loc":[-85.6260476,41.9589646],"version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:52Z","tags":{}},"n185966951":{"id":"n185966951","loc":[-85.628404,41.957438],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:50Z","tags":{}},"w17965351":{"id":"w17965351","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:20Z","tags":{"highway":"residential","name":"Flower Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Flower","tiger:name_type":"St","tiger:reviewed":"no"},"nodes":["n185966948","n185966949","n185954650","n185966951","n185966953","n185966955","n185966957"]},"w17967809":{"id":"w17967809","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:21Z","tags":{"highway":"residential","name":"Azaleamum Drive","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Azaleamum","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185982197","n185989335","n185989337","n185989339","n185989340","n185989342","n185989345","n185989347","n185989349","n185989351","n185989353","n185989354","n185989356","n185989357","n185989359","n185989361","n185989364","n185989367","n185989368","n185982196"]},"w209717059":{"id":"w209717059","version":"1","changeset":"15347594","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-13T05:16:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2199109892","n2199109893","n2199109894","n2199109895","n2199109896","n2199109898","n2199109892"]},"n185961390":{"id":"n185961390","loc":[-85.63137,41.959033],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:39Z","tags":{}},"n185961393":{"id":"n185961393","loc":[-85.634315,41.959017],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:59:39Z","tags":{}},"w17966214":{"id":"w17966214","version":"2","changeset":"15473186","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-24T01:52:22Z","tags":{"highway":"residential","name":"East Adams Street","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Adams","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093"},"nodes":["n185975351","n185967434","n185968108"]},"w17964793":{"id":"w17964793","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:32:05Z","tags":{"highway":"residential","name":"Morris Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Morris","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312148:15328241:15328242","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185961389","n185961390","n185961391","n185961393","n185961396"]},"n185952166":{"id":"n185952166","loc":[-85.638174,41.95831],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:55:11Z","tags":{}},"n2114807552":{"id":"n2114807552","loc":[-85.6383526,41.9593788],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807591":{"id":"n2114807591","loc":[-85.6383741,41.9593968],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2189015731":{"id":"n2189015731","loc":[-85.6368404,41.9592785],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015734":{"id":"n2189015734","loc":[-85.6368404,41.9585918],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015737":{"id":"n2189015737","loc":[-85.6376009,41.9585918],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015738":{"id":"n2189015738","loc":[-85.6376009,41.9592785],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:50Z","tags":{}},"n2189015897":{"id":"n2189015897","loc":[-85.6376839,41.9566137],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015900":{"id":"n2189015900","loc":[-85.6376831,41.9564865],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015903":{"id":"n2189015903","loc":[-85.6381161,41.9564851],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015906":{"id":"n2189015906","loc":[-85.6381168,41.9566122],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015937":{"id":"n2189015937","loc":[-85.6364789,41.9590634],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015940":{"id":"n2189015940","loc":[-85.6361137,41.9590672],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015943":{"id":"n2189015943","loc":[-85.6361169,41.9594033],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015945":{"id":"n2189015945","loc":[-85.6363456,41.9594021],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015952":{"id":"n2189015952","loc":[-85.636112,41.958892],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015955":{"id":"n2189015955","loc":[-85.6364757,41.9588894],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015957":{"id":"n2189015957","loc":[-85.6364729,41.9586747],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015958":{"id":"n2189015958","loc":[-85.6361103,41.9586765],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015959":{"id":"n2189015959","loc":[-85.6364719,41.9585562],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015960":{"id":"n2189015960","loc":[-85.6361093,41.958558],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015961":{"id":"n2189015961","loc":[-85.6355494,41.9586403],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015962":{"id":"n2189015962","loc":[-85.635549,41.9584711],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015963":{"id":"n2189015963","loc":[-85.6351831,41.9584715],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015964":{"id":"n2189015964","loc":[-85.6351834,41.9586408],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015966":{"id":"n2189015966","loc":[-85.6359579,41.9586359],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015968":{"id":"n2189015968","loc":[-85.6359561,41.9585465],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015971":{"id":"n2189015971","loc":[-85.6355476,41.9585509],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015974":{"id":"n2189015974","loc":[-85.6359516,41.9592934],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015977":{"id":"n2189015977","loc":[-85.635949,41.9586697],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015980":{"id":"n2189015980","loc":[-85.6351329,41.9586716],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015983":{"id":"n2189015983","loc":[-85.6351318,41.9583949],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015986":{"id":"n2189015986","loc":[-85.6349148,41.9583954],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015989":{"id":"n2189015989","loc":[-85.6349186,41.9592958],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015995":{"id":"n2189015995","loc":[-85.6360173,41.9593286],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015998":{"id":"n2189015998","loc":[-85.6360278,41.9583079],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2114807550":{"id":"n2114807550","loc":[-85.6383392,41.9595404],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807551":{"id":"n2114807551","loc":[-85.6375855,41.9616107],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807559":{"id":"n2114807559","loc":[-85.6373978,41.9621273],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807562":{"id":"n2114807562","loc":[-85.6373361,41.9622609],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807563":{"id":"n2114807563","loc":[-85.6376472,41.9613953],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807574":{"id":"n2114807574","loc":[-85.636974,41.9627695],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807589":{"id":"n2114807589","loc":[-85.6383017,41.9595005],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807592":{"id":"n2114807592","loc":[-85.6377169,41.9613494],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2114807595":{"id":"n2114807595","loc":[-85.6371081,41.962574],"version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:15Z","tags":{}},"n2189015934":{"id":"n2189015934","loc":[-85.6364855,41.9595098],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"n2189015949":{"id":"n2189015949","loc":[-85.6363466,41.9595105],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:51Z","tags":{}},"w208627244":{"id":"w208627244","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"highway":"service"},"nodes":["n2189015992","n2189015995","n2189015998"]},"w208627240":{"id":"w208627240","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015961","n2189015971","n2189015962","n2189015963","n2189015964","n2189015961"]},"w17967437":{"id":"w17967437","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:51:44Z","tags":{"highway":"residential","name":"Lyman St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Lyman","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313234","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185964361","n185984024"]},"w208627237":{"id":"w208627237","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015955","n2189015957","n2189015958","n2189015952","n2189015955"]},"w17967465":{"id":"w17967465","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:51:57Z","tags":{"highway":"residential","name":"W Adams St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Adams","tiger:name_direction_prefix":"W","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312177","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185978394","n185984022","n185964360"]},"w208627228":{"id":"w208627228","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015897","n2189015900","n2189015903","n2189015906","n2189015897"]},"w201484351":{"id":"w201484351","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:17Z","tags":{"railway":"rail","service":"siding","source":"Bing"},"nodes":["n2114807587","n2114807574","n2114807595","n2114807562","n2114807559","n2114807551","n2114807563","n2114807589","n2114807552"]},"w208627239":{"id":"w208627239","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015957","n2189015959","n2189015960","n2189015958","n2189015957"]},"w208627233":{"id":"w208627233","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015934","n2189015937","n2189015940","n2189015943","n2189015945","n2189015949","n2189015934"]},"w208627241":{"id":"w208627241","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015961","n2189015966","n2189015968","n2189015971","n2189015961"]},"w17967970":{"id":"w17967970","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:55:20Z","tags":{"highway":"residential","name":"Adams St","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Adams","tiger:name_type":"St","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312180","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185975351","n185978394"]},"w208627235":{"id":"w208627235","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015940","n2189015952","n2189015955","n2189015937","n2189015940"]},"w17965468":{"id":"w17965468","version":"2","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:56Z","tags":{"highway":"residential","name":"Armstrong Blvd","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Armstrong","tiger:name_type":"Blvd","tiger:reviewed":"no"},"nodes":["n185967917","n2189015998","n185967918","n185964362","n185952166"]},"w201484346":{"id":"w201484346","version":"1","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:16Z","tags":{"railway":"rail","service":"siding","source":"Bing"},"nodes":["n2114807551","n2114807592","n2114807550","n2114807591"]},"w208627242":{"id":"w208627242","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2189015974","n2189015977","n2189015980","n2189015983","n2189015986","n2189015989","n2189015974"]},"w208627216":{"id":"w208627216","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:53Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189015731","n2189015734","n2189015737","n2189015738","n2189015731"]},"n185984309":{"id":"n185984309","loc":[-85.631421,41.961494],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:11:55Z","tags":{}},"n185987987":{"id":"n185987987","loc":[-85.631456,41.960673],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:13:29Z","tags":{}},"n185965397":{"id":"n185965397","loc":[-85.634603,41.959838],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:52Z","tags":{}},"w17965196":{"id":"w17965196","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:35:10Z","tags":{"highway":"residential","name":"Burke Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Burke","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15312145","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185965395","n185965397","n185965399"]},"w17967215":{"id":"w17967215","version":"2","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:56Z","tags":{"highway":"residential","name":"Kellogg Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Kellogg","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185968114","n185984309","n185967440","n185978402"]},"w17967597":{"id":"w17967597","version":"2","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:20Z","tags":{"highway":"residential","name":"Barnard Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Barnard","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185968112","n185987987","n185967438","n185978399"]},"n394490857":{"id":"n394490857","loc":[-85.633952,41.960664],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:00Z","tags":{}},"n394490858":{"id":"n394490858","loc":[-85.633938,41.960227],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:00Z","tags":{}},"n394490859":{"id":"n394490859","loc":[-85.634794,41.960212],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n394490860":{"id":"n394490860","loc":[-85.634815,41.960662],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n394490861":{"id":"n394490861","loc":[-85.634103,41.961268],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n394490862":{"id":"n394490862","loc":[-85.634103,41.961001],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n394490863":{"id":"n394490863","loc":[-85.634504,41.961003],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n394490864":{"id":"n394490864","loc":[-85.634561,41.961269],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{}},"n1057629869":{"id":"n1057629869","loc":[-85.6382599,41.9612134],"version":"1","changeset":"6740055","user":"42429","uid":"42429","visible":"true","timestamp":"2010-12-22T21:14:10Z","tags":{}},"n1057629937":{"id":"n1057629937","loc":[-85.6380035,41.9616137],"version":"1","changeset":"6740055","user":"42429","uid":"42429","visible":"true","timestamp":"2010-12-22T21:14:11Z","tags":{}},"n2189016014":{"id":"n2189016014","loc":[-85.6360365,41.9626496],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016017":{"id":"n2189016017","loc":[-85.6360374,41.9623228],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016020":{"id":"n2189016020","loc":[-85.6367557,41.9623239],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016022":{"id":"n2189016022","loc":[-85.6367566,41.9619919],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016025":{"id":"n2189016025","loc":[-85.6351794,41.9619893],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016028":{"id":"n2189016028","loc":[-85.6351788,41.9622011],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016031":{"id":"n2189016031","loc":[-85.6350855,41.9622009],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016034":{"id":"n2189016034","loc":[-85.6350845,41.962527],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016037":{"id":"n2189016037","loc":[-85.6352732,41.9625273],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016039":{"id":"n2189016039","loc":[-85.6352738,41.9623178],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016042":{"id":"n2189016042","loc":[-85.6357712,41.9623186],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n2189016044":{"id":"n2189016044","loc":[-85.6357702,41.9626492],"version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:52Z","tags":{}},"n1057629880":{"id":"n1057629880","loc":[-85.638817,41.9619017],"version":"1","changeset":"6740055","user":"42429","uid":"42429","visible":"true","timestamp":"2010-12-22T21:14:10Z","tags":{}},"n1057629923":{"id":"n1057629923","loc":[-85.6390733,41.9615014],"version":"1","changeset":"6740055","user":"42429","uid":"42429","visible":"true","timestamp":"2010-12-22T21:14:11Z","tags":{}},"w91092312":{"id":"w91092312","version":"1","changeset":"6740055","user":"42429","uid":"42429","visible":"true","timestamp":"2010-12-22T21:14:12Z","tags":{"power":"station"},"nodes":["n1057629923","n1057629869","n1057629937","n1057629880","n1057629923"]},"w34369826":{"id":"w34369826","version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490861","n394490862","n394490863","n394490864","n394490861"]},"w34369825":{"id":"w34369825","version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:08:01Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490857","n394490858","n394490859","n394490860","n394490857"]},"w208627248":{"id":"w208627248","version":"1","changeset":"15276188","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-06T21:42:54Z","tags":{"area":"yes","building":"yes"},"nodes":["n2189016014","n2189016017","n2189016020","n2189016022","n2189016025","n2189016028","n2189016031","n2189016034","n2189016037","n2189016039","n2189016042","n2189016044","n2189016014"]},"n394490766":{"id":"n394490766","loc":[-85.616777,41.955642],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490768":{"id":"n394490768","loc":[-85.617239,41.955644],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490792":{"id":"n394490792","loc":[-85.619034,41.95543],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n185972055":{"id":"n185972055","loc":[-85.6185905,41.9568211],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185972057":{"id":"n185972057","loc":[-85.6186688,41.9570086],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185972059":{"id":"n185972059","loc":[-85.6186924,41.9581453],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185972060":{"id":"n185972060","loc":[-85.6187082,41.9588211],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{"highway":"turning_circle","source":"Bing"}},"n1819790724":{"id":"n1819790724","loc":[-85.6182155,41.9555703],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790735":{"id":"n1819790735","loc":[-85.6184059,41.9566188],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790799":{"id":"n1819790799","loc":[-85.6182372,41.9563771],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790896":{"id":"n1819790896","loc":[-85.6181431,41.9557227],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n185971405":{"id":"n185971405","loc":[-85.6186766,41.9577468],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185971565":{"id":"n185971565","loc":[-85.6181613,41.9560879],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185967985":{"id":"n185967985","loc":[-85.6186798,41.9585791],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185955753":{"id":"n185955753","loc":[-85.620773,41.9555854],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185955755":{"id":"n185955755","loc":[-85.6212652,41.9559891],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185955748":{"id":"n185955748","loc":[-85.620722,41.954858],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:55Z","tags":{}},"n185955751":{"id":"n185955751","loc":[-85.6206912,41.955367],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185967987":{"id":"n185967987","loc":[-85.6159351,41.9585809],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185971407":{"id":"n185971407","loc":[-85.6159142,41.9577578],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185971570":{"id":"n185971570","loc":[-85.6162248,41.95603],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185971572":{"id":"n185971572","loc":[-85.6160402,41.9560749],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185971574":{"id":"n185971574","loc":[-85.61593,41.956201],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185981301":{"id":"n185981301","loc":[-85.6158973,41.9581601],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:05Z","tags":{}},"n394490762":{"id":"n394490762","loc":[-85.617193,41.954706],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490764":{"id":"n394490764","loc":[-85.616773,41.954737],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490787":{"id":"n394490787","loc":[-85.618972,41.954737],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490790":{"id":"n394490790","loc":[-85.619046,41.954929],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490794":{"id":"n394490794","loc":[-85.619922,41.955296],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490796":{"id":"n394490796","loc":[-85.61991,41.95501],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490798":{"id":"n394490798","loc":[-85.619974,41.954751],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n1819790677":{"id":"n1819790677","loc":[-85.6187031,41.9550522],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790787":{"id":"n1819790787","loc":[-85.6186436,41.9552022],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790828":{"id":"n1819790828","loc":[-85.6185127,41.9553393],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"w17966857":{"id":"w17966857","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:47:55Z","tags":{"access":"private","highway":"service","name":"Sable River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Sable River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326128","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185972059","n185981301"]},"w34369814":{"id":"w34369814","version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490787","n394490790","n394490792","n394490794","n394490796","n394490798","n394490787"]},"w17964176":{"id":"w17964176","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:27:42Z","tags":{"highway":"residential","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314404","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185955747","n185955748","n185955751","n185955753","n185955755"]},"w17965838":{"id":"w17965838","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:40:09Z","tags":{"access":"private","highway":"service","name":"Pine River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Pine River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326123","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971405","n185971407"]},"w17965476":{"id":"w17965476","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:37:16Z","tags":{"access":"private","highway":"service","name":"Raisin River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Raisin River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326112","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185967985","n185967987"]},"w17965913":{"id":"w17965913","version":"2","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:06Z","tags":{"access":"private","highway":"service","name":"Shiawassee River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Shiawassee River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326124:15326125:15326111:15326113:15326119","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185972054","n1819790677","n1819790787","n1819790828","n1819790724","n1819790896","n185971565","n1819790799","n1819790735","n185972055","n185972057","n185971405","n185972059","n185967985","n185972060"]},"w34369811":{"id":"w34369811","version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490762","n394490764","n394490766","n394490768","n394490762"]},"w17965854":{"id":"w17965854","version":"2","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:06Z","tags":{"access":"private","highway":"service","name":"Sturgeon River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Sturgeon River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326117","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971565","n185971570","n185971572","n185971574"]},"n2139795769":{"id":"n2139795769","loc":[-85.6250804,41.9608796],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139795770":{"id":"n2139795770","loc":[-85.6250315,41.9613684],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139795771":{"id":"n2139795771","loc":[-85.6249671,41.9614362],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139795772":{"id":"n2139795772","loc":[-85.6249698,41.961522],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139795773":{"id":"n2139795773","loc":[-85.6250798,41.9615838],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:55Z","tags":{}},"n2139795774":{"id":"n2139795774","loc":[-85.6252273,41.9615639],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795775":{"id":"n2139795775","loc":[-85.6252863,41.9614622],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795776":{"id":"n2139795776","loc":[-85.6252273,41.9613764],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795777":{"id":"n2139795777","loc":[-85.6251227,41.9613525],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795778":{"id":"n2139795778","loc":[-85.6249564,41.9612527],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795779":{"id":"n2139795779","loc":[-85.6249846,41.9610254],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795780":{"id":"n2139795780","loc":[-85.6266725,41.9599647],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795781":{"id":"n2139795781","loc":[-85.6259162,41.9599711],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795782":{"id":"n2139795782","loc":[-85.6257185,41.960019],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n2139795783":{"id":"n2139795783","loc":[-85.6255509,41.9601213],"version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:56Z","tags":{}},"n185963539":{"id":"n185963539","loc":[-85.615718,41.983893],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:00:58Z","tags":{}},"n185964418":{"id":"n185964418","loc":[-85.616626,42.049512],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:23Z","tags":{}},"n185966614":{"id":"n185966614","loc":[-85.615514,41.976603],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:41Z","tags":{}},"n185966635":{"id":"n185966635","loc":[-85.616118,42.013017],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:42Z","tags":{}},"n185969040":{"id":"n185969040","loc":[-85.615632,41.972357],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:45Z","tags":{}},"n185969070":{"id":"n185969070","loc":[-85.619145,41.967648],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:03:46Z","tags":{}},"n185972156":{"id":"n185972156","loc":[-85.621894,41.963956],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972157":{"id":"n185972157","loc":[-85.621806,41.964077],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972158":{"id":"n185972158","loc":[-85.620848,41.965341],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972159":{"id":"n185972159","loc":[-85.620684,41.965558],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972160":{"id":"n185972160","loc":[-85.620621,41.965658],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972161":{"id":"n185972161","loc":[-85.617844,41.969359],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972162":{"id":"n185972162","loc":[-85.616843,41.97068],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972164":{"id":"n185972164","loc":[-85.616714,41.970839],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972166":{"id":"n185972166","loc":[-85.615879,41.971969],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972168":{"id":"n185972168","loc":[-85.615748,41.972159],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972170":{"id":"n185972170","loc":[-85.615589,41.972502],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972172":{"id":"n185972172","loc":[-85.615542,41.972733],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972175":{"id":"n185972175","loc":[-85.615524,41.972947],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972177":{"id":"n185972177","loc":[-85.615512,41.973715],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972179":{"id":"n185972179","loc":[-85.615513,41.976496],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:18Z","tags":{}},"n185972180":{"id":"n185972180","loc":[-85.615538,41.977246],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972181":{"id":"n185972181","loc":[-85.61558,41.982139],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972184":{"id":"n185972184","loc":[-85.61557,41.983317],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972186":{"id":"n185972186","loc":[-85.615591,41.983463],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972188":{"id":"n185972188","loc":[-85.615763,41.984146],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972190":{"id":"n185972190","loc":[-85.615814,41.98435],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972192":{"id":"n185972192","loc":[-85.615965,41.998453],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972194":{"id":"n185972194","loc":[-85.615982,42.001237],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972195":{"id":"n185972195","loc":[-85.616055,42.00555],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972197":{"id":"n185972197","loc":[-85.616134,42.014887],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972199":{"id":"n185972199","loc":[-85.616177,42.018465],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972201":{"id":"n185972201","loc":[-85.616298,42.027627],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"n185972203":{"id":"n185972203","loc":[-85.616513,42.042212],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:05:19Z","tags":{}},"w203968015":{"id":"w203968015","version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:58Z","tags":{"highway":"residential"},"nodes":["n2139795768","n2139795769"]},"w17965932":{"id":"w17965932","version":"2","changeset":"14531170","user":"bot-mode","uid":"451693","visible":"true","timestamp":"2013-01-04T21:15:18Z","tags":{"highway":"residential","name":"Buckhorn Road","name_1":"County Highway 122","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Buckhorn","tiger:name_base_1":"County Highway 122","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185972155","n185972156","n185972157","n185972158","n185972159","n185972160","n185969070","n185972161","n185972162","n185972164","n185972166","n185972168","n185969040","n185972170","n185972172","n185972175","n185972177","n185972179","n185966614","n185972180","n185972181","n185972184","n185972186","n185963539","n185972188","n185972190","n185972192","n185972194","n185972195","n185966635","n185972197","n185972199","n185972201","n185972203","n185964418"]},"w203968016":{"id":"w203968016","version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:58Z","tags":{"highway":"residential","name":"New Jersey Court"},"nodes":["n2139795770","n2139795771","n2139795772","n2139795773","n2139795774","n2139795775","n2139795776","n2139795777","n2139795770","n2139795778","n2139795779","n2139795769"]},"w203968017":{"id":"w203968017","version":"1","changeset":"14892219","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-03T07:47:58Z","tags":{"highway":"residential","name":"Oklahoma Drive"},"nodes":["n2139795780","n2139795781","n2139795782","n2139795783","n2139795769"]},"n1819790528":{"id":"n1819790528","loc":[-85.6184827,41.960025],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790530":{"id":"n1819790530","loc":[-85.6168626,41.9605834],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790534":{"id":"n1819790534","loc":[-85.6197379,41.9617163],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790541":{"id":"n1819790541","loc":[-85.6198881,41.9620833],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790543":{"id":"n1819790543","loc":[-85.619695,41.9619397],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790547":{"id":"n1819790547","loc":[-85.6190298,41.9609504],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790555":{"id":"n1819790555","loc":[-85.6180471,41.9609788],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790559":{"id":"n1819790559","loc":[-85.6203817,41.9605436],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790583":{"id":"n1819790583","loc":[-85.6201564,41.9603282],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790590":{"id":"n1819790590","loc":[-85.617045,41.9598894],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790609":{"id":"n1819790609","loc":[-85.6177638,41.9598495],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790618":{"id":"n1819790618","loc":[-85.6195234,41.9610143],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790642":{"id":"n1819790642","loc":[-85.6181179,41.9627933],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790659":{"id":"n1819790659","loc":[-85.6174634,41.962897],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790665":{"id":"n1819790665","loc":[-85.6170343,41.9630885],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790674":{"id":"n1819790674","loc":[-85.6194697,41.9601925],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790685":{"id":"n1819790685","loc":[-85.6207722,41.9610665],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790687":{"id":"n1819790687","loc":[-85.6202315,41.9622109],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790697":{"id":"n1819790697","loc":[-85.6184505,41.9624662],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790726":{"id":"n1819790726","loc":[-85.6178926,41.9628492],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790738":{"id":"n1819790738","loc":[-85.6173347,41.9598016],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790762":{"id":"n1819790762","loc":[-85.6186221,41.9609105],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790774":{"id":"n1819790774","loc":[-85.6175922,41.9608308],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790781":{"id":"n1819790781","loc":[-85.6167768,41.9633198],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790796":{"id":"n1819790796","loc":[-85.619856,41.961461],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790811":{"id":"n1819790811","loc":[-85.6208215,41.9620195],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790833":{"id":"n1819790833","loc":[-85.618311,41.9612536],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790854":{"id":"n1819790854","loc":[-85.6183646,41.9626417],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790863":{"id":"n1819790863","loc":[-85.6204997,41.9608547],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790867":{"id":"n1819790867","loc":[-85.6184934,41.9621391],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790877":{"id":"n1819790877","loc":[-85.6206928,41.9621152],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790881":{"id":"n1819790881","loc":[-85.6170879,41.960735],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790891":{"id":"n1819790891","loc":[-85.6168304,41.9601207],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790898":{"id":"n1819790898","loc":[-85.619813,41.9612297],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790909":{"id":"n1819790909","loc":[-85.6167982,41.960376],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790912":{"id":"n1819790912","loc":[-85.6205855,41.9610462],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790544":{"id":"n1819790544","loc":[-85.612968,41.9707781],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790549":{"id":"n1819790549","loc":[-85.614395,41.9697172],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790552":{"id":"n1819790552","loc":[-85.6180535,41.9655536],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790554":{"id":"n1819790554","loc":[-85.6111227,41.9703713],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:53Z","tags":{}},"n1819790560":{"id":"n1819790560","loc":[-85.6112729,41.9701958],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790563":{"id":"n1819790563","loc":[-85.6137512,41.9689917],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790564":{"id":"n1819790564","loc":[-85.6181072,41.9659205],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790595":{"id":"n1819790595","loc":[-85.6170021,41.9666863],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790605":{"id":"n1819790605","loc":[-85.6168948,41.9644527],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790606":{"id":"n1819790606","loc":[-85.6128071,41.9701081],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790607":{"id":"n1819790607","loc":[-85.6129251,41.9704032],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:54Z","tags":{}},"n1819790612":{"id":"n1819790612","loc":[-85.6177638,41.9663912],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790615":{"id":"n1819790615","loc":[-85.6152533,41.9670373],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790622":{"id":"n1819790622","loc":[-85.6146739,41.9673804],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790623":{"id":"n1819790623","loc":[-85.6180428,41.9661838],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790625":{"id":"n1819790625","loc":[-85.6172918,41.9646202],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:55Z","tags":{}},"n1819790645":{"id":"n1819790645","loc":[-85.6178067,41.965043],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790647":{"id":"n1819790647","loc":[-85.6143306,41.9712488],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790649":{"id":"n1819790649","loc":[-85.6147383,41.9707702],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790654":{"id":"n1819790654","loc":[-85.6157361,41.9668459],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790657":{"id":"n1819790657","loc":[-85.6145666,41.9710733],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790668":{"id":"n1819790668","loc":[-85.6166909,41.9642692],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790671":{"id":"n1819790671","loc":[-85.6141482,41.9696538],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790679":{"id":"n1819790679","loc":[-85.6148349,41.9705388],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:56Z","tags":{}},"n1819790686":{"id":"n1819790686","loc":[-85.6139551,41.9695501],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790696":{"id":"n1819790696","loc":[-85.6119703,41.9699087],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790704":{"id":"n1819790704","loc":[-85.6140731,41.9684174],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790706":{"id":"n1819790706","loc":[-85.6124745,41.9699246],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790718":{"id":"n1819790718","loc":[-85.6165407,41.9636868],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790720":{"id":"n1819790720","loc":[-85.61388,41.9687365],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:57Z","tags":{}},"n1819790731":{"id":"n1819790731","loc":[-85.6165193,41.9639421],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790739":{"id":"n1819790739","loc":[-85.6146739,41.9699964],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790753":{"id":"n1819790753","loc":[-85.6173883,41.9665747],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790760":{"id":"n1819790760","loc":[-85.6133221,41.9712089],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:58Z","tags":{}},"n1819790767":{"id":"n1819790767","loc":[-85.6116698,41.9699246],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790779":{"id":"n1819790779","loc":[-85.6130753,41.9710573],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790791":{"id":"n1819790791","loc":[-85.6137083,41.9692869],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790795":{"id":"n1819790795","loc":[-85.6141482,41.9679627],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790798":{"id":"n1819790798","loc":[-85.6137727,41.9694305],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:58:59Z","tags":{}},"n1819790836":{"id":"n1819790836","loc":[-85.6143842,41.9676037],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:00Z","tags":{}},"n1819790915":{"id":"n1819790915","loc":[-85.6148456,41.9702756],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:01Z","tags":{}},"n1819790926":{"id":"n1819790926","loc":[-85.6138371,41.9713525],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:02Z","tags":{}},"n1819790927":{"id":"n1819790927","loc":[-85.6141053,41.9713525],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:02Z","tags":{}},"n1819790931":{"id":"n1819790931","loc":[-85.6162832,41.966814],"version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:02Z","tags":{}},"n1821014625":{"id":"n1821014625","loc":[-85.5960611,41.9808498],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014627":{"id":"n1821014627","loc":[-85.5565843,42.010982],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014629":{"id":"n1821014629","loc":[-85.5971541,41.9805808],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014632":{"id":"n1821014632","loc":[-85.6061837,41.9725907],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014633":{"id":"n1821014633","loc":[-85.5247773,42.025766],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014635":{"id":"n1821014635","loc":[-85.5908938,41.9902384],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014636":{"id":"n1821014636","loc":[-85.5917682,41.9860637],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014637":{"id":"n1821014637","loc":[-85.5456556,42.0166797],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014638":{"id":"n1821014638","loc":[-85.5795749,42.0032352],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014639":{"id":"n1821014639","loc":[-85.6103988,41.9723456],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014642":{"id":"n1821014642","loc":[-85.5818816,42.0022466],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:40Z","tags":{}},"n1821014643":{"id":"n1821014643","loc":[-85.5570604,42.0091586],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014644":{"id":"n1821014644","loc":[-85.5952886,41.9803792],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014645":{"id":"n1821014645","loc":[-85.5780366,42.0040343],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014646":{"id":"n1821014646","loc":[-85.6050505,41.9751971],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014647":{"id":"n1821014647","loc":[-85.5854435,41.9946162],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014648":{"id":"n1821014648","loc":[-85.5452278,42.0168768],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014649":{"id":"n1821014649","loc":[-85.6023254,41.9780166],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014651":{"id":"n1821014651","loc":[-85.5761899,42.0046783],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014653":{"id":"n1821014653","loc":[-85.5897351,41.9876707],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014657":{"id":"n1821014657","loc":[-85.5963601,41.9808998],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014658":{"id":"n1821014658","loc":[-85.5892952,41.9951983],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014660":{"id":"n1821014660","loc":[-85.5778328,42.0037194],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014661":{"id":"n1821014661","loc":[-85.5541475,42.0125705],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014663":{"id":"n1821014663","loc":[-85.5914047,41.9856469],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014664":{"id":"n1821014664","loc":[-85.6101681,41.9727723],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014665":{"id":"n1821014665","loc":[-85.5910172,41.9854696],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014666":{"id":"n1821014666","loc":[-85.5398688,42.0187699],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014667":{"id":"n1821014667","loc":[-85.5218752,42.0282884],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014668":{"id":"n1821014668","loc":[-85.5159582,42.0329384],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014669":{"id":"n1821014669","loc":[-85.5898102,41.9847319],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014670":{"id":"n1821014670","loc":[-85.5734809,42.0066235],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014671":{"id":"n1821014671","loc":[-85.5922939,41.980852],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014672":{"id":"n1821014672","loc":[-85.6023629,41.9781163],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:41Z","tags":{}},"n1821014674":{"id":"n1821014674","loc":[-85.5409953,42.0191724],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014676":{"id":"n1821014676","loc":[-85.584435,41.9949909],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014677":{"id":"n1821014677","loc":[-85.5972399,41.9783835],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014678":{"id":"n1821014678","loc":[-85.5616738,42.0071337],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014681":{"id":"n1821014681","loc":[-85.5202994,42.0310755],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014682":{"id":"n1821014682","loc":[-85.5915912,41.9857767],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014684":{"id":"n1821014684","loc":[-85.6022288,41.977897],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014687":{"id":"n1821014687","loc":[-85.5933024,41.9846362],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014688":{"id":"n1821014688","loc":[-85.5846871,41.9956169],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014689":{"id":"n1821014689","loc":[-85.5898209,41.99037],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014691":{"id":"n1821014691","loc":[-85.5448939,42.0149261],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014692":{"id":"n1821014692","loc":[-85.5977763,41.9786348],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014694":{"id":"n1821014694","loc":[-85.5767706,42.0034523],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:42Z","tags":{}},"n1821014695":{"id":"n1821014695","loc":[-85.6103559,41.9726766],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014697":{"id":"n1821014697","loc":[-85.5922134,41.9809876],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014698":{"id":"n1821014698","loc":[-85.5935277,41.9831728],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014700":{"id":"n1821014700","loc":[-85.5674674,42.0078273],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014703":{"id":"n1821014703","loc":[-85.6021,41.9778053],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014704":{"id":"n1821014704","loc":[-85.5756763,42.0053737],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014705":{"id":"n1821014705","loc":[-85.5887695,41.9895207],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014707":{"id":"n1821014707","loc":[-85.6061073,41.9746866],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014708":{"id":"n1821014708","loc":[-85.6033446,41.9751692],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014710":{"id":"n1821014710","loc":[-85.5180986,42.0322332],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014711":{"id":"n1821014711","loc":[-85.543365,42.0163569],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014712":{"id":"n1821014712","loc":[-85.6030656,41.9753646],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014713":{"id":"n1821014713","loc":[-85.6104417,41.9704792],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014714":{"id":"n1821014714","loc":[-85.5205716,42.030998],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014716":{"id":"n1821014716","loc":[-85.516382,42.032536],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014717":{"id":"n1821014717","loc":[-85.5932863,41.9820882],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014718":{"id":"n1821014718","loc":[-85.5361928,42.0194974],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014720":{"id":"n1821014720","loc":[-85.6011613,41.9773586],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014721":{"id":"n1821014721","loc":[-85.554287,42.0109124],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014722":{"id":"n1821014722","loc":[-85.5577524,42.0103425],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:43Z","tags":{}},"n1821014725":{"id":"n1821014725","loc":[-85.5867256,41.9921004],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014726":{"id":"n1821014726","loc":[-85.5856045,41.9968807],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014727":{"id":"n1821014727","loc":[-85.5545445,42.0106454],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014728":{"id":"n1821014728","loc":[-85.5923797,41.9842534],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014729":{"id":"n1821014729","loc":[-85.5696346,42.0081462],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014730":{"id":"n1821014730","loc":[-85.5998322,41.9786884],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014735":{"id":"n1821014735","loc":[-85.5337426,42.0218266],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014736":{"id":"n1821014736","loc":[-85.5847944,41.994672],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014740":{"id":"n1821014740","loc":[-85.5315271,42.0238669],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014741":{"id":"n1821014741","loc":[-85.5248846,42.027085],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014742":{"id":"n1821014742","loc":[-85.5853376,41.997018],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014743":{"id":"n1821014743","loc":[-85.5894883,41.988811],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014745":{"id":"n1821014745","loc":[-85.6095311,41.9726226],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014746":{"id":"n1821014746","loc":[-85.5531511,42.0133416],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014747":{"id":"n1821014747","loc":[-85.5735882,42.007058],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014749":{"id":"n1821014749","loc":[-85.5428554,42.0164366],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014751":{"id":"n1821014751","loc":[-85.5395255,42.0186304],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:44Z","tags":{}},"n1821014752":{"id":"n1821014752","loc":[-85.571378,42.0083176],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014754":{"id":"n1821014754","loc":[-85.5541918,42.0113925],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014755":{"id":"n1821014755","loc":[-85.5278029,42.0250806],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014756":{"id":"n1821014756","loc":[-85.5936725,41.9827102],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014757":{"id":"n1821014757","loc":[-85.5176266,42.0346677],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014758":{"id":"n1821014758","loc":[-85.6096692,41.9714245],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014759":{"id":"n1821014759","loc":[-85.5770321,42.0034266],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014761":{"id":"n1821014761","loc":[-85.5988921,41.9779369],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014762":{"id":"n1821014762","loc":[-85.5811788,42.0024499],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014763":{"id":"n1821014763","loc":[-85.5154003,42.0381101],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014764":{"id":"n1821014764","loc":[-85.5155827,42.0374089],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014765":{"id":"n1821014765","loc":[-85.5891249,41.9884978],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014766":{"id":"n1821014766","loc":[-85.5313863,42.0238293],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014768":{"id":"n1821014768","loc":[-85.593297,41.9833363],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014769":{"id":"n1821014769","loc":[-85.5849446,41.9957245],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014770":{"id":"n1821014770","loc":[-85.5537774,42.0130847],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014771":{"id":"n1821014771","loc":[-85.6111766,41.9706069],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014772":{"id":"n1821014772","loc":[-85.5585477,42.008989],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:45Z","tags":{}},"n1821014774":{"id":"n1821014774","loc":[-85.5928142,41.9852623],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014777":{"id":"n1821014777","loc":[-85.5891933,41.9882608],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014778":{"id":"n1821014778","loc":[-85.5926909,41.9817532],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014779":{"id":"n1821014779","loc":[-85.5260272,42.0252201],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014781":{"id":"n1821014781","loc":[-85.5894615,41.9950468],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014782":{"id":"n1821014782","loc":[-85.5461063,42.0143242],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014783":{"id":"n1821014783","loc":[-85.5711527,42.0085886],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014784":{"id":"n1821014784","loc":[-85.5329379,42.0218624],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014786":{"id":"n1821014786","loc":[-85.583047,42.0020252],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014787":{"id":"n1821014787","loc":[-85.5758962,42.0054095],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014788":{"id":"n1821014788","loc":[-85.5626354,42.0077733],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014789":{"id":"n1821014789","loc":[-85.6029852,41.9755999],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014790":{"id":"n1821014790","loc":[-85.5892362,41.9886755],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014791":{"id":"n1821014791","loc":[-85.5157597,42.0372017],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014793":{"id":"n1821014793","loc":[-85.6054582,41.9751094],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014794":{"id":"n1821014794","loc":[-85.5986936,41.9778412],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014795":{"id":"n1821014795","loc":[-85.5880775,41.98976],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014796":{"id":"n1821014796","loc":[-85.5858727,41.9963624],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014798":{"id":"n1821014798","loc":[-85.5792543,42.0035958],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014799":{"id":"n1821014799","loc":[-85.5921665,41.9838326],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:46Z","tags":{}},"n1821014801":{"id":"n1821014801","loc":[-85.599214,41.9782599],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014802":{"id":"n1821014802","loc":[-85.5571905,42.0090967],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014803":{"id":"n1821014803","loc":[-85.5426891,42.0173612],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014804":{"id":"n1821014804","loc":[-85.5889626,41.9896404],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014805":{"id":"n1821014805","loc":[-85.5491264,42.0141648],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014806":{"id":"n1821014806","loc":[-85.5618897,42.0072631],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014808":{"id":"n1821014808","loc":[-85.5573501,42.0109802],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014809":{"id":"n1821014809","loc":[-85.5983463,41.9778031],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014810":{"id":"n1821014810","loc":[-85.5885173,41.9895128],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014811":{"id":"n1821014811","loc":[-85.6084998,41.9721143],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014812":{"id":"n1821014812","loc":[-85.5737598,42.0056389],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014814":{"id":"n1821014814","loc":[-85.5542173,42.0118132],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014816":{"id":"n1821014816","loc":[-85.5277868,42.024451],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014817":{"id":"n1821014817","loc":[-85.5403999,42.0191724],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014819":{"id":"n1821014819","loc":[-85.5983879,41.9791452],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014820":{"id":"n1821014820","loc":[-85.5891302,41.9897578],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014822":{"id":"n1821014822","loc":[-85.5930731,41.9805108],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014824":{"id":"n1821014824","loc":[-85.515395,42.0378471],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014825":{"id":"n1821014825","loc":[-85.5352755,42.0205136],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014826":{"id":"n1821014826","loc":[-85.5502744,42.0133398],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:47Z","tags":{}},"n1821014828":{"id":"n1821014828","loc":[-85.5701295,42.0088256],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014830":{"id":"n1821014830","loc":[-85.5888929,41.9953099],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014832":{"id":"n1821014832","loc":[-85.5880077,41.9901547],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014833":{"id":"n1821014833","loc":[-85.5451192,42.0157072],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014834":{"id":"n1821014834","loc":[-85.6096478,41.9711932],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014835":{"id":"n1821014835","loc":[-85.5806424,42.0026532],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014836":{"id":"n1821014836","loc":[-85.5911674,41.9868732],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014838":{"id":"n1821014838","loc":[-85.5930302,41.9836571],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014839":{"id":"n1821014839","loc":[-85.588925,41.9938148],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014840":{"id":"n1821014840","loc":[-85.6111874,41.9705311],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014841":{"id":"n1821014841","loc":[-85.5680843,42.0075842],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014842":{"id":"n1821014842","loc":[-85.6012793,41.9775062],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014843":{"id":"n1821014843","loc":[-85.5855562,41.9989777],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014844":{"id":"n1821014844","loc":[-85.5506137,42.0131662],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014845":{"id":"n1821014845","loc":[-85.5270049,42.025457],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014846":{"id":"n1821014846","loc":[-85.5257054,42.025244],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014847":{"id":"n1821014847","loc":[-85.6011184,41.9771832],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014848":{"id":"n1821014848","loc":[-85.515534,42.0389234],"version":"2","changeset":"15306911","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-09T19:57:21Z","tags":{}},"n1821014850":{"id":"n1821014850","loc":[-85.5847032,42.0010347],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:48Z","tags":{}},"n1821014853":{"id":"n1821014853","loc":[-85.5361499,42.019063],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014854":{"id":"n1821014854","loc":[-85.5439176,42.0165721],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014855":{"id":"n1821014855","loc":[-85.5838825,42.0017284],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014857":{"id":"n1821014857","loc":[-85.5542173,42.0122317],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014859":{"id":"n1821014859","loc":[-85.5708201,42.0089195],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014860":{"id":"n1821014860","loc":[-85.5844833,41.9954415],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014862":{"id":"n1821014862","loc":[-85.5223204,42.0295396],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014863":{"id":"n1821014863","loc":[-85.5777898,42.0035918],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014864":{"id":"n1821014864","loc":[-85.591044,41.9898078],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014865":{"id":"n1821014865","loc":[-85.5973204,41.980182],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014866":{"id":"n1821014866","loc":[-85.5699578,42.0085825],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014867":{"id":"n1821014867","loc":[-85.5210598,42.0305278],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014868":{"id":"n1821014868","loc":[-85.5929108,41.9819008],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014869":{"id":"n1821014869","loc":[-85.5279799,42.0242995],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014870":{"id":"n1821014870","loc":[-85.5196114,42.0320539],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014871":{"id":"n1821014871","loc":[-85.5785449,42.0040883],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014872":{"id":"n1821014872","loc":[-85.588292,41.9895766],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014873":{"id":"n1821014873","loc":[-85.5160172,42.0331775],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014874":{"id":"n1821014874","loc":[-85.5688849,42.0077016],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:49Z","tags":{}},"n1821014876":{"id":"n1821014876","loc":[-85.5857976,41.9996036],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014879":{"id":"n1821014879","loc":[-85.5990906,41.9780765],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014881":{"id":"n1821014881","loc":[-85.5483647,42.0144279],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014883":{"id":"n1821014883","loc":[-85.5691209,42.0077972],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014885":{"id":"n1821014885","loc":[-85.6076844,41.9721103],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014886":{"id":"n1821014886","loc":[-85.6015489,41.9766147],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014887":{"id":"n1821014887","loc":[-85.574822,42.0052802],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014888":{"id":"n1821014888","loc":[-85.5880024,41.9899593],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014890":{"id":"n1821014890","loc":[-85.5909421,41.9893772],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014892":{"id":"n1821014892","loc":[-85.5497326,42.0138141],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014893":{"id":"n1821014893","loc":[-85.5167106,42.0357811],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014895":{"id":"n1821014895","loc":[-85.5844404,41.9952501],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014896":{"id":"n1821014896","loc":[-85.5362465,42.0192662],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014898":{"id":"n1821014898","loc":[-85.5906095,41.9889147],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014899":{"id":"n1821014899","loc":[-85.5590667,42.0089354],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014900":{"id":"n1821014900","loc":[-85.5921598,41.9844209],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014902":{"id":"n1821014902","loc":[-85.5778971,42.0039266],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:50Z","tags":{}},"n1821014903":{"id":"n1821014903","loc":[-85.603012,41.9761981],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014904":{"id":"n1821014904","loc":[-85.6108977,41.9706787],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014905":{"id":"n1821014905","loc":[-85.5685738,42.0076139],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014906":{"id":"n1821014906","loc":[-85.5392787,42.0186304],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014907":{"id":"n1821014907","loc":[-85.5227885,42.0274972],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014908":{"id":"n1821014908","loc":[-85.5857547,41.9961431],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014910":{"id":"n1821014910","loc":[-85.5610354,42.0072812],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014911":{"id":"n1821014911","loc":[-85.5209632,42.0308705],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014912":{"id":"n1821014912","loc":[-85.5709757,42.0087959],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014913":{"id":"n1821014913","loc":[-85.59231,41.9839344],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014914":{"id":"n1821014914","loc":[-85.5375245,42.0185865],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014916":{"id":"n1821014916","loc":[-85.5901548,41.9839841],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014917":{"id":"n1821014917","loc":[-85.5611213,42.0086405],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014918":{"id":"n1821014918","loc":[-85.5360426,42.0198122],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014919":{"id":"n1821014919","loc":[-85.5862817,41.9948691],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014921":{"id":"n1821014921","loc":[-85.5469807,42.0144438],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014922":{"id":"n1821014922","loc":[-85.5761309,42.0053838],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014924":{"id":"n1821014924","loc":[-85.516264,42.0332971],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014925":{"id":"n1821014925","loc":[-85.5277224,42.0246661],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014926":{"id":"n1821014926","loc":[-85.5980016,41.9798231],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014928":{"id":"n1821014928","loc":[-85.5924548,41.9806965],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:51Z","tags":{}},"n1821014930":{"id":"n1821014930","loc":[-85.5899121,41.985023],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014931":{"id":"n1821014931","loc":[-85.5706015,42.0089492],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014932":{"id":"n1821014932","loc":[-85.515926,42.033046],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014933":{"id":"n1821014933","loc":[-85.5982377,41.9796796],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014936":{"id":"n1821014936","loc":[-85.5475721,42.0145253],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014938":{"id":"n1821014938","loc":[-85.5895701,41.9902323],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014939":{"id":"n1821014939","loc":[-85.6030495,41.9759947],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014942":{"id":"n1821014942","loc":[-85.6094721,41.9724989],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014944":{"id":"n1821014944","loc":[-85.5921973,41.9811112],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014945":{"id":"n1821014945","loc":[-85.5223526,42.0291332],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014946":{"id":"n1821014946","loc":[-85.5965103,41.9808998],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014948":{"id":"n1821014948","loc":[-85.517766,42.0349227],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014950":{"id":"n1821014950","loc":[-85.5889894,41.990996],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014951":{"id":"n1821014951","loc":[-85.5601932,42.0092902],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:52Z","tags":{}},"n1821014954":{"id":"n1821014954","loc":[-85.6028135,41.9764055],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014955":{"id":"n1821014955","loc":[-85.5520621,42.0130666],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014956":{"id":"n1821014956","loc":[-85.593002,41.9839344],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014957":{"id":"n1821014957","loc":[-85.515926,42.0369666],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014960":{"id":"n1821014960","loc":[-85.5761255,42.003877],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014961":{"id":"n1821014961","loc":[-85.5716355,42.007911],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014962":{"id":"n1821014962","loc":[-85.5575378,42.0109045],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014963":{"id":"n1821014963","loc":[-85.5735667,42.0068188],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014964":{"id":"n1821014964","loc":[-85.5915214,41.9865861],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014965":{"id":"n1821014965","loc":[-85.5866344,41.9923157],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014967":{"id":"n1821014967","loc":[-85.5283138,42.0242256],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014968":{"id":"n1821014968","loc":[-85.5177875,42.0355801],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014969":{"id":"n1821014969","loc":[-85.548071,42.0144934],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014972":{"id":"n1821014972","loc":[-85.5611159,42.0088557],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014973":{"id":"n1821014973","loc":[-85.541686,42.0188757],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014974":{"id":"n1821014974","loc":[-85.5917628,41.9862631],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014975":{"id":"n1821014975","loc":[-85.5854864,41.9959478],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014977":{"id":"n1821014977","loc":[-85.609102,41.9722317],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:53Z","tags":{}},"n1821014980":{"id":"n1821014980","loc":[-85.5761202,42.0042438],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014982":{"id":"n1821014982","loc":[-85.5465944,42.0143601],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014983":{"id":"n1821014983","loc":[-85.5173261,42.0342732],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014984":{"id":"n1821014984","loc":[-85.5897297,41.9888509],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014985":{"id":"n1821014985","loc":[-85.5856688,41.999181],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014986":{"id":"n1821014986","loc":[-85.5344011,42.0217251],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014987":{"id":"n1821014987","loc":[-85.601467,41.9768203],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014988":{"id":"n1821014988","loc":[-85.5457254,42.0165123],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014989":{"id":"n1821014989","loc":[-85.6023482,41.9784332],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014991":{"id":"n1821014991","loc":[-85.5361606,42.01823],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014992":{"id":"n1821014992","loc":[-85.5178465,42.0351139],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014995":{"id":"n1821014995","loc":[-85.5634293,42.0078092],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014996":{"id":"n1821014996","loc":[-85.573497,42.0072015],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014997":{"id":"n1821014997","loc":[-85.5976328,41.9799725],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821014998":{"id":"n1821014998","loc":[-85.5210651,42.0303166],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821015003":{"id":"n1821015003","loc":[-85.5222131,42.0288064],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821015004":{"id":"n1821015004","loc":[-85.5897941,41.984405],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821015005":{"id":"n1821015005","loc":[-85.5975725,41.9776099],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821015006":{"id":"n1821015006","loc":[-85.5765708,42.0034903],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:54Z","tags":{}},"n1821015007":{"id":"n1821015007","loc":[-85.5250187,42.026559],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015009":{"id":"n1821015009","loc":[-85.5426998,42.0166279],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015010":{"id":"n1821015010","loc":[-85.5957606,41.9806584],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015011":{"id":"n1821015011","loc":[-85.5262753,42.0252497],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015012":{"id":"n1821015012","loc":[-85.5266455,42.0253374],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015014":{"id":"n1821015014","loc":[-85.5515632,42.0130187],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015015":{"id":"n1821015015","loc":[-85.6024058,41.9765212],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015017":{"id":"n1821015017","loc":[-85.5175032,42.0357156],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015018":{"id":"n1821015018","loc":[-85.5302718,42.0236039],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015019":{"id":"n1821015019","loc":[-85.6024005,41.9782759],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015020":{"id":"n1821015020","loc":[-85.5907758,41.9890821],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015021":{"id":"n1821015021","loc":[-85.6019445,41.9777215],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015022":{"id":"n1821015022","loc":[-85.5942854,41.9800881],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015024":{"id":"n1821015024","loc":[-85.5325826,42.0222711],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:55Z","tags":{}},"n1821015029":{"id":"n1821015029","loc":[-85.555093,42.0105316],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015033":{"id":"n1821015033","loc":[-85.5249704,42.0270372],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015034":{"id":"n1821015034","loc":[-85.5243965,42.0272205],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015038":{"id":"n1821015038","loc":[-85.5413426,42.0190749],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015039":{"id":"n1821015039","loc":[-85.5920431,41.9848175],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015041":{"id":"n1821015041","loc":[-85.5577685,42.0106015],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015042":{"id":"n1821015042","loc":[-85.5453606,42.0158866],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015045":{"id":"n1821015045","loc":[-85.5333228,42.0217889],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015046":{"id":"n1821015046","loc":[-85.5426891,42.0175924],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015048":{"id":"n1821015048","loc":[-85.5886836,41.9936474],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015050":{"id":"n1821015050","loc":[-85.6001152,41.9786467],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015051":{"id":"n1821015051","loc":[-85.6094064,41.9723655],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015053":{"id":"n1821015053","loc":[-85.605721,41.9749738],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015055":{"id":"n1821015055","loc":[-85.6106791,41.9705048],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015057":{"id":"n1821015057","loc":[-85.5210437,42.0307071],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015059":{"id":"n1821015059","loc":[-85.5995694,41.9786725],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:56Z","tags":{}},"n1821015060":{"id":"n1821015060","loc":[-85.5371638,42.0182938],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015062":{"id":"n1821015062","loc":[-85.6111766,41.9704593],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015065":{"id":"n1821015065","loc":[-85.577704,42.0034921],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015067":{"id":"n1821015067","loc":[-85.5570067,42.0093699],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015068":{"id":"n1821015068","loc":[-85.5920364,41.9845525],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015069":{"id":"n1821015069","loc":[-85.5252065,42.0253954],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015072":{"id":"n1821015072","loc":[-85.5664159,42.0088517],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015073":{"id":"n1821015073","loc":[-85.5880399,41.991905],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015075":{"id":"n1821015075","loc":[-85.6099871,41.9727861],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015076":{"id":"n1821015076","loc":[-85.5319603,42.0231478],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015078":{"id":"n1821015078","loc":[-85.6036088,41.9751112],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015080":{"id":"n1821015080","loc":[-85.5983128,41.9789179],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015082":{"id":"n1821015082","loc":[-85.5614069,42.0071395],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015083":{"id":"n1821015083","loc":[-85.60968,41.9709738],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015086":{"id":"n1821015086","loc":[-85.5914195,41.9837351],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015087":{"id":"n1821015087","loc":[-85.5895473,41.9948036],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015090":{"id":"n1821015090","loc":[-85.5929913,41.9851905],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:57Z","tags":{}},"n1821015093":{"id":"n1821015093","loc":[-85.5907396,41.9838485],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015095":{"id":"n1821015095","loc":[-85.5893864,41.9880176],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015096":{"id":"n1821015096","loc":[-85.5788024,42.0039807],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015097":{"id":"n1821015097","loc":[-85.5630592,42.0078411],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015098":{"id":"n1821015098","loc":[-85.5350609,42.0211274],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015099":{"id":"n1821015099","loc":[-85.5967195,41.9808679],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015100":{"id":"n1821015100","loc":[-85.5666734,42.0088119],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015101":{"id":"n1821015101","loc":[-85.564694,42.0077675],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015103":{"id":"n1821015103","loc":[-85.6066544,41.9726527],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015104":{"id":"n1821015104","loc":[-85.6011827,41.9769838],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015105":{"id":"n1821015105","loc":[-85.5972131,41.9776697],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015106":{"id":"n1821015106","loc":[-85.5880828,41.9903341],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015107":{"id":"n1821015107","loc":[-85.5510268,42.0130626],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015108":{"id":"n1821015108","loc":[-85.6102164,41.970543],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015109":{"id":"n1821015109","loc":[-85.5905344,41.9853899],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015111":{"id":"n1821015111","loc":[-85.5888821,41.9913429],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:58Z","tags":{}},"n1821015112":{"id":"n1821015112","loc":[-85.606295,41.9741921],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015114":{"id":"n1821015114","loc":[-85.5969556,41.9807443],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015115":{"id":"n1821015115","loc":[-85.5882223,41.9934081],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015116":{"id":"n1821015116","loc":[-85.6104471,41.9724971],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015118":{"id":"n1821015118","loc":[-85.5406091,42.0192162],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015120":{"id":"n1821015120","loc":[-85.589955,41.9888429],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015121":{"id":"n1821015121","loc":[-85.5598821,42.0092304],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015122":{"id":"n1821015122","loc":[-85.545598,42.0144097],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015123":{"id":"n1821015123","loc":[-85.5649528,42.0079965],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015125":{"id":"n1821015125","loc":[-85.5883993,41.9917814],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015126":{"id":"n1821015126","loc":[-85.5295785,42.0239967],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015129":{"id":"n1821015129","loc":[-85.5648723,42.0078809],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015132":{"id":"n1821015132","loc":[-85.564989,42.0081103],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015133":{"id":"n1821015133","loc":[-85.5946127,41.9800841],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015134":{"id":"n1821015134","loc":[-85.583448,42.0019078],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015135":{"id":"n1821015135","loc":[-85.5905934,41.9871842],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015137":{"id":"n1821015137","loc":[-85.610608,41.9704752],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:25:59Z","tags":{}},"n1821015138":{"id":"n1821015138","loc":[-85.5752257,42.0052939],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015139":{"id":"n1821015139","loc":[-85.5893864,41.9943491],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015140":{"id":"n1821015140","loc":[-85.5426247,42.0169866],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015141":{"id":"n1821015141","loc":[-85.562001,42.0074526],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015142":{"id":"n1821015142","loc":[-85.5212046,42.0301094],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015143":{"id":"n1821015143","loc":[-85.602214,41.9784531],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015144":{"id":"n1821015144","loc":[-85.5858687,41.9948293],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015145":{"id":"n1821015145","loc":[-85.5608477,42.0074805],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015146":{"id":"n1821015146","loc":[-85.5651607,42.0083614],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015147":{"id":"n1821015147","loc":[-85.5288288,42.0242495],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015149":{"id":"n1821015149","loc":[-85.5450334,42.0146989],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015151":{"id":"n1821015151","loc":[-85.5578275,42.0092304],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015154":{"id":"n1821015154","loc":[-85.6056634,41.9724511],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015155":{"id":"n1821015155","loc":[-85.5902179,41.9852742],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015156":{"id":"n1821015156","loc":[-85.5156256,42.0387157],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015157":{"id":"n1821015157","loc":[-85.5734433,42.0059459],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015158":{"id":"n1821015158","loc":[-85.6050773,41.9731273],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015160":{"id":"n1821015160","loc":[-85.5223419,42.0275233],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015163":{"id":"n1821015163","loc":[-85.6053562,41.972525],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015164":{"id":"n1821015164","loc":[-85.5850412,41.9946082],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:00Z","tags":{}},"n1821015165":{"id":"n1821015165","loc":[-85.5359031,42.0186326],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015166":{"id":"n1821015166","loc":[-85.5608745,42.0077635],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015169":{"id":"n1821015169","loc":[-85.572876,42.0073189],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015171":{"id":"n1821015171","loc":[-85.5875424,41.9919188],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015172":{"id":"n1821015172","loc":[-85.5240116,42.0272581],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015173":{"id":"n1821015173","loc":[-85.5318369,42.0236818],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015174":{"id":"n1821015174","loc":[-85.566888,42.0086923],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015175":{"id":"n1821015175","loc":[-85.5931522,41.9850669],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015176":{"id":"n1821015176","loc":[-85.5604842,42.0093199],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015177":{"id":"n1821015177","loc":[-85.5868168,41.9927543],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015178":{"id":"n1821015178","loc":[-85.6052275,41.9732549],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015179":{"id":"n1821015179","loc":[-85.5910118,41.9900431],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015182":{"id":"n1821015182","loc":[-85.5610032,42.0082897],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015183":{"id":"n1821015183","loc":[-85.5425443,42.0179431],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015184":{"id":"n1821015184","loc":[-85.5843277,42.0014055],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015186":{"id":"n1821015186","loc":[-85.5733307,42.0063564],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015188":{"id":"n1821015188","loc":[-85.5277385,42.0248694],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015189":{"id":"n1821015189","loc":[-85.5558427,42.0108168],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:01Z","tags":{}},"n1821015190":{"id":"n1821015190","loc":[-85.5650587,42.0082618],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015191":{"id":"n1821015191","loc":[-85.5660351,42.0088278],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015192":{"id":"n1821015192","loc":[-85.5849768,41.9980049],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015194":{"id":"n1821015194","loc":[-85.5359139,42.0188199],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015195":{"id":"n1821015195","loc":[-85.593238,41.9849194],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015197":{"id":"n1821015197","loc":[-85.5850841,41.9983239],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015199":{"id":"n1821015199","loc":[-85.5983396,41.9794283],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015204":{"id":"n1821015204","loc":[-85.5452801,42.0145355],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015205":{"id":"n1821015205","loc":[-85.5340685,42.0218407],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015207":{"id":"n1821015207","loc":[-85.5773272,42.0034186],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015209":{"id":"n1821015209","loc":[-85.5535212,42.0132419],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015211":{"id":"n1821015211","loc":[-85.6107703,41.9706045],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:02Z","tags":{}},"n1821015212":{"id":"n1821015212","loc":[-85.6030066,41.9758193],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015213":{"id":"n1821015213","loc":[-85.5359943,42.0184213],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015214":{"id":"n1821015214","loc":[-85.5922993,41.9813305],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015215":{"id":"n1821015215","loc":[-85.5672689,42.0080465],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015217":{"id":"n1821015217","loc":[-85.5160494,42.0365682],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015218":{"id":"n1821015218","loc":[-85.5401142,42.0190351],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015219":{"id":"n1821015219","loc":[-85.5607632,42.0092282],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015220":{"id":"n1821015220","loc":[-85.5866197,41.9947894],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015221":{"id":"n1821015221","loc":[-85.6017889,41.9765132],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015222":{"id":"n1821015222","loc":[-85.5595978,42.009059],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015226":{"id":"n1821015226","loc":[-85.5871494,41.9929018],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015227":{"id":"n1821015227","loc":[-85.5857708,41.9998866],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015228":{"id":"n1821015228","loc":[-85.5317135,42.0238094],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015231":{"id":"n1821015231","loc":[-85.5733521,42.0061372],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015233":{"id":"n1821015233","loc":[-85.5855991,42.0001936],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015234":{"id":"n1821015234","loc":[-85.5213924,42.029962],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015235":{"id":"n1821015235","loc":[-85.6052221,41.9726567],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015236":{"id":"n1821015236","loc":[-85.5763723,42.0035422],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015237":{"id":"n1821015237","loc":[-85.5858512,41.9966215],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015238":{"id":"n1821015238","loc":[-85.567061,42.008439],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:03Z","tags":{}},"n1821015239":{"id":"n1821015239","loc":[-85.5250563,42.0269057],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015240":{"id":"n1821015240","loc":[-85.5347551,42.0214263],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015241":{"id":"n1821015241","loc":[-85.6098463,41.9707066],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015242":{"id":"n1821015242","loc":[-85.5676927,42.0076519],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015243":{"id":"n1821015243","loc":[-85.516775,42.0322669],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015244":{"id":"n1821015244","loc":[-85.5762275,42.0036538],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015245":{"id":"n1821015245","loc":[-85.5583639,42.0090949],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015246":{"id":"n1821015246","loc":[-85.5554041,42.0106432],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015247":{"id":"n1821015247","loc":[-85.5973364,41.9776099],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015248":{"id":"n1821015248","loc":[-85.6098945,41.9717513],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015249":{"id":"n1821015249","loc":[-85.6045315,41.9751511],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015250":{"id":"n1821015250","loc":[-85.5579938,42.0092264],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015253":{"id":"n1821015253","loc":[-85.6058873,41.9724652],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015254":{"id":"n1821015254","loc":[-85.5869456,41.9947517],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015255":{"id":"n1821015255","loc":[-85.5936565,41.9823713],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015256":{"id":"n1821015256","loc":[-85.5218269,42.0278102],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015258":{"id":"n1821015258","loc":[-85.5887802,41.9905534],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015259":{"id":"n1821015259","loc":[-85.5901924,41.9904515],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015263":{"id":"n1821015263","loc":[-85.5249222,42.0255787],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015265":{"id":"n1821015265","loc":[-85.5175206,42.0321672],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015266":{"id":"n1821015266","loc":[-85.5275722,42.0254034],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015267":{"id":"n1821015267","loc":[-85.6016226,41.9765451],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:04Z","tags":{}},"n1821015269":{"id":"n1821015269","loc":[-85.5569316,42.011032],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015271":{"id":"n1821015271","loc":[-85.6010714,41.9785209],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015272":{"id":"n1821015272","loc":[-85.6050666,41.9729917],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015273":{"id":"n1821015273","loc":[-85.5891235,41.99529],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015274":{"id":"n1821015274","loc":[-85.515454,42.0376439],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015276":{"id":"n1821015276","loc":[-85.5776021,42.0034443],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015277":{"id":"n1821015277","loc":[-85.6041707,41.9751453],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015278":{"id":"n1821015278","loc":[-85.5444701,42.0167435],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015280":{"id":"n1821015280","loc":[-85.5923274,41.9852202],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015283":{"id":"n1821015283","loc":[-85.5893649,41.9900271],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015284":{"id":"n1821015284","loc":[-85.5933453,41.9804412],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015285":{"id":"n1821015285","loc":[-85.5247237,42.026017],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015286":{"id":"n1821015286","loc":[-85.5286182,42.0242477],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015287":{"id":"n1821015287","loc":[-85.5904003,41.9888549],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:05Z","tags":{}},"n1821015288":{"id":"n1821015288","loc":[-85.6062146,41.9739369],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015290":{"id":"n1821015290","loc":[-85.5762596,42.0052602],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015292":{"id":"n1821015292","loc":[-85.5849715,41.9975465],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015293":{"id":"n1821015293","loc":[-85.585229,42.0006241],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015294":{"id":"n1821015294","loc":[-85.5926922,41.9805946],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015295":{"id":"n1821015295","loc":[-85.5703387,42.0089133],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015299":{"id":"n1821015299","loc":[-85.5789955,42.0038611],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015301":{"id":"n1821015301","loc":[-85.6072888,41.9721918],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015302":{"id":"n1821015302","loc":[-85.5356349,42.0200992],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015304":{"id":"n1821015304","loc":[-85.5891772,41.994066],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015306":{"id":"n1821015306","loc":[-85.606295,41.9744952],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015307":{"id":"n1821015307","loc":[-85.538871,42.0186583],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015308":{"id":"n1821015308","loc":[-85.587997,41.994971],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015311":{"id":"n1821015311","loc":[-85.606869,41.9725809],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:06Z","tags":{}},"n1821015312":{"id":"n1821015312","loc":[-85.5171974,42.0339943],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015314":{"id":"n1821015314","loc":[-85.5327435,42.0220479],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015315":{"id":"n1821015315","loc":[-85.5383439,42.0187282],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015316":{"id":"n1821015316","loc":[-85.5248095,42.0263119],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015318":{"id":"n1821015318","loc":[-85.5732502,42.0073051],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015319":{"id":"n1821015319","loc":[-85.5924226,41.9852663],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015321":{"id":"n1821015321","loc":[-85.5179001,42.0353052],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015322":{"id":"n1821015322","loc":[-85.5456771,42.0162413],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015323":{"id":"n1821015323","loc":[-85.5936618,41.9829096],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015325":{"id":"n1821015325","loc":[-85.5656931,42.0086582],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015326":{"id":"n1821015326","loc":[-85.5448456,42.0150975],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015327":{"id":"n1821015327","loc":[-85.5220039,42.027615],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015329":{"id":"n1821015329","loc":[-85.517884,42.0354885],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015330":{"id":"n1821015330","loc":[-85.5576666,42.0101671],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015332":{"id":"n1821015332","loc":[-85.5368754,42.0181402],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015333":{"id":"n1821015333","loc":[-85.5367078,42.0181145],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015334":{"id":"n1821015334","loc":[-85.5903909,41.9904316],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015335":{"id":"n1821015335","loc":[-85.5430767,42.0163587],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015336":{"id":"n1821015336","loc":[-85.5277492,42.0252878],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015337":{"id":"n1821015337","loc":[-85.5312146,42.0236898],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:07Z","tags":{}},"n1821015338":{"id":"n1821015338","loc":[-85.5886568,41.991614],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015339":{"id":"n1821015339","loc":[-85.5782498,42.0040883],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015341":{"id":"n1821015341","loc":[-85.562233,42.0076457],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015342":{"id":"n1821015342","loc":[-85.588626,41.9952479],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015343":{"id":"n1821015343","loc":[-85.5762865,42.005033],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015344":{"id":"n1821015344","loc":[-85.5850841,41.9971478],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015346":{"id":"n1821015346","loc":[-85.5643144,42.0076936],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015347":{"id":"n1821015347","loc":[-85.5164893,42.0359467],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015348":{"id":"n1821015348","loc":[-85.5906846,41.9903541],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015349":{"id":"n1821015349","loc":[-85.557688,42.0107769],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015350":{"id":"n1821015350","loc":[-85.5363698,42.0181424],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015351":{"id":"n1821015351","loc":[-85.5939636,41.9801918],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015352":{"id":"n1821015352","loc":[-85.5524041,42.0131644],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015354":{"id":"n1821015354","loc":[-85.5308606,42.0236221],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015355":{"id":"n1821015355","loc":[-85.5877449,41.9932367],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015356":{"id":"n1821015356","loc":[-85.519885,42.0318586],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015357":{"id":"n1821015357","loc":[-85.5454035,42.0168431],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015358":{"id":"n1821015358","loc":[-85.5970629,41.9781881],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015359":{"id":"n1821015359","loc":[-85.5932541,41.9844767],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015360":{"id":"n1821015360","loc":[-85.5970736,41.9778252],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015361":{"id":"n1821015361","loc":[-85.537031,42.0181601],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015362":{"id":"n1821015362","loc":[-85.5548355,42.0105156],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015363":{"id":"n1821015363","loc":[-85.5168648,42.0336158],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:08Z","tags":{}},"n1821015365":{"id":"n1821015365","loc":[-85.5870435,41.9919507],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015366":{"id":"n1821015366","loc":[-85.5719681,42.0075443],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015367":{"id":"n1821015367","loc":[-85.5969985,41.9780446],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015368":{"id":"n1821015368","loc":[-85.5926761,41.98528],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015369":{"id":"n1821015369","loc":[-85.5224009,42.0293444],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015371":{"id":"n1821015371","loc":[-85.518737,42.0322651],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015372":{"id":"n1821015372","loc":[-85.6064573,41.9726465],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015373":{"id":"n1821015373","loc":[-85.5201103,42.0313088],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015375":{"id":"n1821015375","loc":[-85.5378182,42.0186844],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015376":{"id":"n1821015376","loc":[-85.6109741,41.9706882],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015377":{"id":"n1821015377","loc":[-85.5993333,41.9785488],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015378":{"id":"n1821015378","loc":[-85.5889787,41.9907368],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015380":{"id":"n1821015380","loc":[-85.6060161,41.9737375],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015381":{"id":"n1821015381","loc":[-85.5743016,42.0053679],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015382":{"id":"n1821015382","loc":[-85.6014724,41.9776099],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015383":{"id":"n1821015383","loc":[-85.5574426,42.0091644],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:09Z","tags":{}},"n1821015385":{"id":"n1821015385","loc":[-85.5208613,42.0309302],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015386":{"id":"n1821015386","loc":[-85.5919023,41.9837789],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015387":{"id":"n1821015387","loc":[-85.5455484,42.0160221],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015392":{"id":"n1821015392","loc":[-85.5801757,42.0028964],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015395":{"id":"n1821015395","loc":[-85.5493785,42.0139974],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015396":{"id":"n1821015396","loc":[-85.5449475,42.015488],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015398":{"id":"n1821015398","loc":[-85.611123,41.9706627],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015400":{"id":"n1821015400","loc":[-85.5935706,41.9822477],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015401":{"id":"n1821015401","loc":[-85.5724254,42.0073508],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015403":{"id":"n1821015403","loc":[-85.5486812,42.0143442],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:10Z","tags":{}},"n1821015404":{"id":"n1821015404","loc":[-85.5161835,42.0327711],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015406":{"id":"n1821015406","loc":[-85.5921705,41.9851107],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015407":{"id":"n1821015407","loc":[-85.531912,42.0234069],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015410":{"id":"n1821015410","loc":[-85.5292566,42.024176],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015411":{"id":"n1821015411","loc":[-85.5845316,41.9948315],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015413":{"id":"n1821015413","loc":[-85.5217947,42.0280413],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015414":{"id":"n1821015414","loc":[-85.5527367,42.013272],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015415":{"id":"n1821015415","loc":[-85.5191179,42.0321973],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015416":{"id":"n1821015416","loc":[-85.5540241,42.0128655],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015418":{"id":"n1821015418","loc":[-85.5272892,42.0254849],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015419":{"id":"n1821015419","loc":[-85.5449744,42.016867],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015420":{"id":"n1821015420","loc":[-85.5852665,41.9986787],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015421":{"id":"n1821015421","loc":[-85.6102701,41.972186],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015423":{"id":"n1821015423","loc":[-85.6026365,41.9764972],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015427":{"id":"n1821015427","loc":[-85.5898692,41.9841498],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:11Z","tags":{}},"n1821015429":{"id":"n1821015429","loc":[-85.5422546,42.0183855],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015430":{"id":"n1821015430","loc":[-85.5866505,41.9925549],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015431":{"id":"n1821015431","loc":[-85.5234376,42.0273577],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015432":{"id":"n1821015432","loc":[-85.6096746,41.9727284],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015433":{"id":"n1821015433","loc":[-85.5824891,42.0021567],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015434":{"id":"n1821015434","loc":[-85.5923905,41.9841139],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015435":{"id":"n1821015435","loc":[-85.5874565,41.9948014],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015437":{"id":"n1821015437","loc":[-85.6055279,41.9734423],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015438":{"id":"n1821015438","loc":[-85.5299379,42.0237376],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015439":{"id":"n1821015439","loc":[-85.5155022,42.0383651],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015442":{"id":"n1821015442","loc":[-85.527422,42.0254711],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015443":{"id":"n1821015443","loc":[-85.5920699,41.9849291],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015444":{"id":"n1821015444","loc":[-85.5639711,42.0077494],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015445":{"id":"n1821015445","loc":[-85.5162586,42.0361777],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015446":{"id":"n1821015446","loc":[-85.5220039,42.029695],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015448":{"id":"n1821015448","loc":[-85.5176641,42.0356956],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015449":{"id":"n1821015449","loc":[-85.5930556,41.9841577],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015451":{"id":"n1821015451","loc":[-85.5320783,42.0228848],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015452":{"id":"n1821015452","loc":[-85.5170096,42.0357235],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015453":{"id":"n1821015453","loc":[-85.5571355,42.009613],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015454":{"id":"n1821015454","loc":[-85.5609979,42.009059],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015455":{"id":"n1821015455","loc":[-85.6097336,41.9708342],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"n1821015456":{"id":"n1821015456","loc":[-85.5884476,41.9904218],"version":"1","changeset":"12181249","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-11T02:26:12Z","tags":{}},"w170843846":{"id":"w170843846","version":"1","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:03Z","tags":{"source":"Bing","waterway":"river"},"nodes":["n1819790555","n1819790762","n1819790547","n1819790618","n1819790898","n1819790796","n1819790534","n1819790543","n1819790541","n1819790687","n1819790877","n1819790811","n1819790670"]},"w209083541":{"id":"w209083541","version":"1","changeset":"15306846","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-03-09T19:50:46Z","tags":{"name":"Portage River","source":"Bing","waterway":"river"},"nodes":["n1821014848","n1821015156","n1821015439","n1821014763","n1821014824","n1821015274","n1821014764","n1821014791","n1821014957","n1821015217","n1821015445","n1821015347","n1821014893","n1821015452","n1821015017","n1821015448","n1821014968","n1821015329","n1821015321","n1821014992","n1821014948","n1821014757","n1821014983","n1821015312","n1821015363","n1821014924","n1821014873","n1821014932","n1821014668","n1821015404","n1821014716","n1821015243","n1821015265","n1821014710","n1821015371","n1821015415","n1821014870","n1821015356","n1821015373","n1821014681","n1821014714","n1821015385","n1821014911","n1821015057","n1821014867","n1821014998","n1821015142","n1821015234","n1821015446","n1821014862","n1821015369","n1821014945","n1821015003","n1821014667","n1821015413","n1821015256","n1821015327","n1821015160","n1821014907","n1821015431","n1821015172","n1821015034","n1821014741","n1821015033","n1821015239","n1821015007","n1821015316","n1821015285","n1821014633","n1821015263","n1821015069","n1821014846","n1821014779","n1821015011","n1821015012","n1821014845","n1821015418","n1821015442","n1821015266","n1821015336","n1821014755","n1821015188","n1821014925","n1821014816","n1821014869","n1821014967","n1821015286","n1821015147","n1821015410","n1821015126","n1821015438","n1821015018","n1821015354","n1821015337","n1821014766","n1821014740","n1821015228","n1821015173","n1821015407","n1821015076","n1821015451","n1821015024","n1821015314","n1821014784","n1821015045","n1821014735","n1821015205","n1821014986","n1821015240","n1821015098","n1821014825","n1821015302","n1821014918","n1821014718","n1821014896","n1821014853","n1821015194","n1821015165","n1821015213","n1821014991","n1821015350","n1821015333","n1821015332","n1821015361","n1821015060","n1821014914","n1821015375","n1821015315","n1821015307","n1821014906","n1821014751","n1821014666","n1821015218","n1821014817","n1821015118","n1821014674","n1821015038","n1821014973","n1821015429","n1821015183","n1821015046","n1821014803","n1821015140","n1821015009","n1821014749","n1821015335","n1821014711","n1821014854","n1821015278","n1821015419","n1821014648","n1821015357","n1821014637","n1821014988","n1821015322","n1821015387","n1821015042","n1821014833","n1821015396","n1821015326","n1821014691","n1821015149","n1821015204","n1821015122","n1821014782","n1821014982","n1821014921","n1821014936","n1821014969","n1821014881","n1821015403","n1821014805","n1821015395","n1821014892","n1821014826","n1821014844","n1821015107","n1821015014","n1821014955","n1821015352","n1821015414","n1821014746","n1821015209","n1821014770","n1821015416","n1821014661","n1821014857","n1821014814","n1821014754","n1821014721","n1821014727","n1821015362","n1821015029","n1821015246","n1821015189","n1821014627","n1821015269","n1821014808","n1821014962","n1821015349","n1821015041","n1821014722","n1821015330","n1821015453","n1821015067","n1821014643","n1821014802","n1821015383","n1821015151","n1821015250","n1821015245","n1821014772","n1821014899","n1821015222","n1821015121","n1821014951","n1821015176","n1821015219","n1821015454","n1821014972","n1821014917","n1821015182","n1821015166","n1821015145","n1821014910","n1821015082","n1821014678","n1821014806","n1821015141","n1821015341","n1821014788","n1821015097","n1821014995","n1821015444","n1821015346","n1821015101","n1821015129","n1821015123","n1821015132","n1821015190","n1821015146","n1821015325","n1821015191","n1821015072","n1821015100","n1821015174","n1821015238","n1821015215","n1821014700","n1821015242","n1821014841","n1821014905","n1821014874","n1821014883","n1821014729","n1821014866","n1821014828","n1821015295","n1821014931","n1821014859","n1821014912","n1821014783","n1821014752","n1821014961","n1821015366","n1821015401","n1821015169","n1821015318","n1821014996","n1821014747","n1821014963","n1821014670","n1821015186","n1821015231","n1821015157","n1821014812","n1821015381","n1821014887","n1821015138","n1821014704","n1821014787","n1821014922","n1821015290","n1821015343","n1821014651","n1821014980","n1821014960","n1821015244","n1821015236","n1821015006","n1821014694","n1821014759","n1821015207","n1821015276","n1821015065","n1821014863","n1821014660","n1821014902","n1821014645","n1821015339","n1821014871","n1821015096","n1821015299","n1821014798","n1821014638","n1821015392","n1821014835","n1821014762","n1821014642","n1821015433","n1821014786","n1821015134","n1821014855","n1821015184","n1821014850","n1821015293","n1821015233","n1821015227","n1821014876","n1821014985","n1821014843","n1821015420","n1821015197","n1821015192","n1821015292","n1821015344","n1821014742","n1821014726","n1821015237","n1821014796","n1821014908","n1821014975","n1821014769","n1821014688","n1821014860","n1821014895","n1821014676","n1821015411","n1821014736","n1821015164","n1821014647","n1821015144","n1821014919","n1821015220","n1821015254","n1821015435","n1821015308","n1821015342","n1821014830","n1821015273","n1821014658","n1821014781","n1821015087","n1821015139","n1821015304","n1821014839","n1821015048","n1821015115","n1821015355","n1821015226","n1821015177","n1821015430","n1821014965","n1821014725","n1821015365","n1821015171","n1821015073","n1821015125","n1821015338","n1821015111","n1821014950","n1821015378","n1821015258","n1821015456","n1821015106","n1821014832","n1821014888","n1821014795","n1821014872","n1821014810","n1821014705","n1821014804","n1821014820","n1821015283","n1821014938","n1821014689","n1821015259","n1821015334","n1821015348","n1821014635","n1821015179","n1821014864","n1821014890","n1821015020","n1821014898","n1821015287","n1821015120","n1821014984","n1821014743","n1821014790","n1821014765","n1821014777","n1821015095","n1821014653","n1821015135","n1821014836","n1821014964","n1821014974","n1821014636","n1821014682","n1821014663","n1821014665","n1821015109","n1821015155","n1821014930","n1821014669","n1821015004","n1821015427","n1821014916","n1821015093","n1821015086","n1821015386","n1821014799","n1821014913","n1821015434","n1821014728","n1821014900","n1821015068","n1821015039","n1821015443","n1821015406","n1821015280","n1821015319","n1821015368","n1821014774","n1821015090","n1821015175","n1821015195","n1821014687","n1821015359","n1821015449","n1821014956","n1821014838","n1821014768","n1821014698","n1821015323","n1821014756","n1821015255","n1821015400","n1821014717","n1821014868","n1821014778","n1821015214","n1821014944","n1821014697","n1821014671","n1821014928","n1821015294","n1821014822","n1821015284","n1821015351","n1821015022","n1821015133","n1821014644","n1821015010","n1821014625","n1821014657","n1821014946","n1821015099","n1821015114","n1821014629","n1821014865","n1821014997","n1821014926","n1821014933","n1821015199","n1821014819","n1821015080","n1821014692","n1821014677","n1821015358","n1821015367","n1821015360","n1821015105","n1821015247","n1821015005","n1821014809","n1821014794","n1821014761","n1821014879","n1821014801","n1821015377","n1821015059","n1821014730","n1821015050","n1821015271","n1821015143","n1821014989","n1821015019","n1821014672","n1821014649","n1821014684","n1821014703","n1821015021","n1821015382","n1821014842","n1821014720","n1821014847","n1821015104","n1821014987","n1821014886","n1821015267","n1821015221","n1821015015","n1821015423","n1821014954","n1821014903","n1821014939","n1821015212","n1821014789","n1821014712","n1821014708","n1821015078","n1821015277","n1821015249","n1821014646","n1821014793","n1821015053","n1821014707","n1821015306","n1821015112","n1821015288","n1821015380","n1821015437","n1821015178","n1821015158","n1821015272","n1821015235","n1821015163","n1821015154","n1821015253","n1821014632","n1821015372","n1821015103","n1821015311","n1821015301","n1821014885","n1821014811","n1821014977","n1821015051","n1821014942","n1821014745","n1821015432","n1821015075","n1821014664","n1821014695","n1821015116","n1821014639","n1821015421","n1821015248","n1821014758","n1821014834","n1821015083","n1821015455","n1821015241","n1821015108","n1821014713","n1821015137","n1821015055","n1821015211","n1821014904","n1821015376","n1821015398","n1821014771","n1821014840","n1821015062","n1819790554","n1819790560","n1819790767","n1819790696","n1819790706","n1819790606","n1819790607","n1819790544","n1819790779","n1819790760","n1819790926","n1819790927","n1819790647","n1819790657","n1819790649","n1819790679","n1819790915","n1819790739","n1819790549","n1819790671","n1819790686","n1819790798","n1819790791","n1819790563","n1819790720","n1819790704","n1819790795","n1819790836","n1819790622","n1819790615","n1819790654","n1819790931","n1819790595","n1819790753","n1819790612","n1819790623","n1819790564","n1819790552","n1819790645","n1819790625","n1819790605","n1819790668","n1819790731","n1819790718","n1819790781","n1819790665","n1819790659","n1819790726","n1819790642","n1819790854","n1819790697","n1819790867","n1819790833","n1819790555","n1819790774","n1819790881","n1819790530","n1819790909","n1819790891","n1819790590","n1819790738","n1819790609","n1819790528","n1819790674","n1819790583","n1819790559","n1819790863","n1819790912","n1819790685","n1819790913"]},"n185955128":{"id":"n185955128","loc":[-85.6189367,41.9519432],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n185948818":{"id":"n185948818","loc":[-85.616755,41.952231],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:53:44Z","tags":{}},"n185978819":{"id":"n185978819","loc":[-85.616773,41.954737],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n185978821":{"id":"n185978821","loc":[-85.616699,41.954742],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:35Z","tags":{}},"n2138420714":{"id":"n2138420714","loc":[-85.6176304,41.9515154],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420715":{"id":"n2138420715","loc":[-85.6177355,41.9515717],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420716":{"id":"n2138420716","loc":[-85.6192901,41.951573],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420718":{"id":"n2138420718","loc":[-85.6171481,41.9513579],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420719":{"id":"n2138420719","loc":[-85.6165981,41.9519199],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420720":{"id":"n2138420720","loc":[-85.6165719,41.9519922],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420721":{"id":"n2138420721","loc":[-85.6165832,41.9520757],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420722":{"id":"n2138420722","loc":[-85.6166355,41.9521453],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420723":{"id":"n2138420723","loc":[-85.6169161,41.9522788],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420724":{"id":"n2138420724","loc":[-85.6170882,41.9522538],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420725":{"id":"n2138420725","loc":[-85.6189204,41.9514674],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420726":{"id":"n2138420726","loc":[-85.6180346,41.9514735],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420727":{"id":"n2138420727","loc":[-85.6180362,41.9515719],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420728":{"id":"n2138420728","loc":[-85.6189204,41.9515727],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420744":{"id":"n2138420744","loc":[-85.618919,41.9519571],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420745":{"id":"n2138420745","loc":[-85.6194575,41.9522374],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420746":{"id":"n2138420746","loc":[-85.6181777,41.9536179],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420747":{"id":"n2138420747","loc":[-85.6176582,41.9533658],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420748":{"id":"n2138420748","loc":[-85.6179871,41.9530242],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420749":{"id":"n2138420749","loc":[-85.618429,41.9532476],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420750":{"id":"n2138420750","loc":[-85.6185538,41.9531194],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420751":{"id":"n2138420751","loc":[-85.6180765,41.9528677],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420752":{"id":"n2138420752","loc":[-85.6180394,41.9528855],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420753":{"id":"n2138420753","loc":[-85.6193752,41.9521695],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420754":{"id":"n2138420754","loc":[-85.6181374,41.9535376],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420755":{"id":"n2138420755","loc":[-85.6179898,41.9535545],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420756":{"id":"n2138420756","loc":[-85.6177286,41.9534228],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420757":{"id":"n2138420757","loc":[-85.6181011,41.9530292],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420759":{"id":"n2138420759","loc":[-85.6185158,41.9531194],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420760":{"id":"n2138420760","loc":[-85.6191318,41.9520425],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420761":{"id":"n2138420761","loc":[-85.6182348,41.9529815],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420762":{"id":"n2138420762","loc":[-85.6184853,41.9524248],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420763":{"id":"n2138420763","loc":[-85.6186764,41.9525193],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420764":{"id":"n2138420764","loc":[-85.6189421,41.9526483],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420765":{"id":"n2138420765","loc":[-85.6182875,41.9531222],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420766":{"id":"n2138420766","loc":[-85.6179141,41.9535163],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420767":{"id":"n2138420767","loc":[-85.6178363,41.9535735],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n185948824":{"id":"n185948824","loc":[-85.6165667,41.9529715],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n2138420758":{"id":"n2138420758","loc":[-85.6184408,41.953201],"version":"2","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:47Z","tags":{}},"n2138422349":{"id":"n2138422349","loc":[-85.6175136,41.9533346],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422350":{"id":"n2138422350","loc":[-85.6171867,41.9531679],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422351":{"id":"n2138422351","loc":[-85.61722,41.9531305],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422352":{"id":"n2138422352","loc":[-85.6171889,41.9531158],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422353":{"id":"n2138422353","loc":[-85.6171733,41.9531284],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422354":{"id":"n2138422354","loc":[-85.616765,41.9529207],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422355":{"id":"n2138422355","loc":[-85.6167565,41.9529355],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422356":{"id":"n2138422356","loc":[-85.6164772,41.9527911],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422357":{"id":"n2138422357","loc":[-85.6168227,41.9524261],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422358":{"id":"n2138422358","loc":[-85.6171913,41.9526158],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422359":{"id":"n2138422359","loc":[-85.6172403,41.9525589],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422360":{"id":"n2138422360","loc":[-85.6172097,41.952542],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422361":{"id":"n2138422361","loc":[-85.6173948,41.9523512],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422362":{"id":"n2138422362","loc":[-85.6174256,41.9523678],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422363":{"id":"n2138422363","loc":[-85.6174831,41.9523086],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:27Z","tags":{}},"n2138422364":{"id":"n2138422364","loc":[-85.6173316,41.9522289],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422365":{"id":"n2138422365","loc":[-85.6174507,41.9521024],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422366":{"id":"n2138422366","loc":[-85.6174773,41.9521155],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422367":{"id":"n2138422367","loc":[-85.6176577,41.9519232],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422368":{"id":"n2138422368","loc":[-85.6176336,41.9519105],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422369":{"id":"n2138422369","loc":[-85.617747,41.9517861],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422370":{"id":"n2138422370","loc":[-85.6182675,41.9520559],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422371":{"id":"n2138422371","loc":[-85.6182105,41.9521219],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422372":{"id":"n2138422372","loc":[-85.6183863,41.9522203],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422373":{"id":"n2138422373","loc":[-85.6180984,41.9525266],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422374":{"id":"n2138422374","loc":[-85.6179159,41.9524295],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422375":{"id":"n2138422375","loc":[-85.617854,41.9524979],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422376":{"id":"n2138422376","loc":[-85.6177686,41.9524531],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422377":{"id":"n2138422377","loc":[-85.6174716,41.9527765],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138422378":{"id":"n2138422378","loc":[-85.6178545,41.9529756],"version":"1","changeset":"14878856","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:12:28Z","tags":{}},"n2138425424":{"id":"n2138425424","loc":[-85.6171736,41.9536385],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425425":{"id":"n2138425425","loc":[-85.6180159,41.9535782],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425426":{"id":"n2138425426","loc":[-85.6181068,41.9536282],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425427":{"id":"n2138425427","loc":[-85.6180673,41.9542678],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425428":{"id":"n2138425428","loc":[-85.6178636,41.9542634],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425429":{"id":"n2138425429","loc":[-85.6176204,41.9542046],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425430":{"id":"n2138425430","loc":[-85.6174366,41.9541031],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425431":{"id":"n2138425431","loc":[-85.6172942,41.9539781],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425432":{"id":"n2138425432","loc":[-85.6172171,41.9538399],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425433":{"id":"n2138425433","loc":[-85.6168138,41.9543266],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425434":{"id":"n2138425434","loc":[-85.6167779,41.9538098],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425435":{"id":"n2138425435","loc":[-85.6165849,41.9537073],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425441":{"id":"n2138425441","loc":[-85.616458,41.9543184],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425442":{"id":"n2138425442","loc":[-85.6166428,41.954345],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425445":{"id":"n2138425445","loc":[-85.6181332,41.9514117],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425446":{"id":"n2138425446","loc":[-85.6183263,41.9514111],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425447":{"id":"n2138425447","loc":[-85.6185033,41.9514102],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425449":{"id":"n2138425449","loc":[-85.6186809,41.9514093],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425451":{"id":"n2138425451","loc":[-85.6188681,41.9514082],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138436008":{"id":"n2138436008","loc":[-85.6170474,41.9513604],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436009":{"id":"n2138436009","loc":[-85.6164937,41.9519586],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436010":{"id":"n2138436010","loc":[-85.616497,41.9520725],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436011":{"id":"n2138436011","loc":[-85.6165654,41.9521645],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436012":{"id":"n2138436012","loc":[-85.6166631,41.9522178],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436013":{"id":"n2138436013","loc":[-85.6167327,41.9522554],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436014":{"id":"n2138436014","loc":[-85.6172383,41.9525125],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138439319":{"id":"n2138439319","loc":[-85.6170432,41.9524057],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439320":{"id":"n2138439320","loc":[-85.617691,41.9517107],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439321":{"id":"n2138439321","loc":[-85.6177727,41.9516794],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439322":{"id":"n2138439322","loc":[-85.619085,41.9516811],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439323":{"id":"n2138439323","loc":[-85.6179432,41.952895],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439324":{"id":"n2138439324","loc":[-85.6180389,41.9529384],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439325":{"id":"n2138439325","loc":[-85.6176303,41.9533604],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439326":{"id":"n2138439326","loc":[-85.6175538,41.9534396],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439327":{"id":"n2138439327","loc":[-85.6173806,41.9523658],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439328":{"id":"n2138439328","loc":[-85.6171841,41.9522542],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439329":{"id":"n2138439329","loc":[-85.6172077,41.9524958],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439330":{"id":"n2138439330","loc":[-85.6171235,41.9525809],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439331":{"id":"n2138439331","loc":[-85.6180938,41.9527349],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439332":{"id":"n2138439332","loc":[-85.6177023,41.9525253],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439333":{"id":"n2138439333","loc":[-85.6175543,41.9526865],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n2138439334":{"id":"n2138439334","loc":[-85.6179589,41.9528783],"version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{}},"n185948820":{"id":"n185948820","loc":[-85.6163249,41.952701],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n185948822":{"id":"n185948822","loc":[-85.6163757,41.952855],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n185955123":{"id":"n185955123","loc":[-85.6198103,41.9510408],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n185958839":{"id":"n185958839","loc":[-85.611651,41.954761],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185965033":{"id":"n185965033","loc":[-85.614195,41.954754],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185976502":{"id":"n185976502","loc":[-85.617375,41.947559],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:07:32Z","tags":{}},"n185976504":{"id":"n185976504","loc":[-85.6174164,41.9510804],"version":"3","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{}},"n185978828":{"id":"n185978828","loc":[-85.613542,41.954756],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:36Z","tags":{}},"n185978830":{"id":"n185978830","loc":[-85.610373,41.954774],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:08:36Z","tags":{}},"n2138420713":{"id":"n2138420713","loc":[-85.6174641,41.9506942],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:11Z","tags":{}},"n2138420717":{"id":"n2138420717","loc":[-85.6173027,41.9512895],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:12Z","tags":{}},"n2138420768":{"id":"n2138420768","loc":[-85.61745,41.9501974],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138420773":{"id":"n2138420773","loc":[-85.6174135,41.9489136],"version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{}},"n2138425436":{"id":"n2138425436","loc":[-85.6159148,41.9538036],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:40Z","tags":{}},"n2138425437":{"id":"n2138425437","loc":[-85.6159534,41.9539677],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425438":{"id":"n2138425438","loc":[-85.6160306,41.9540846],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425439":{"id":"n2138425439","loc":[-85.6161354,41.954181],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425440":{"id":"n2138425440","loc":[-85.6162733,41.954263],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425443":{"id":"n2138425443","loc":[-85.6183273,41.9510826],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425444":{"id":"n2138425444","loc":[-85.6181354,41.9510835],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425448":{"id":"n2138425448","loc":[-85.6185033,41.9510816],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425450":{"id":"n2138425450","loc":[-85.6186816,41.9510808],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138425452":{"id":"n2138425452","loc":[-85.6188641,41.9510818],"version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:41Z","tags":{}},"n2138435984":{"id":"n2138435984","loc":[-85.6167607,41.9501009],"version":"2","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:47Z","tags":{}},"n2138436000":{"id":"n2138436000","loc":[-85.6173169,41.947558],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436001":{"id":"n2138436001","loc":[-85.6173362,41.948883],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436002":{"id":"n2138436002","loc":[-85.6167791,41.9492952],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436003":{"id":"n2138436003","loc":[-85.6167543,41.949349],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436004":{"id":"n2138436004","loc":[-85.6167648,41.9509125],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436005":{"id":"n2138436005","loc":[-85.6168832,41.9510412],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436006":{"id":"n2138436006","loc":[-85.6170045,41.9511417],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:01Z","tags":{}},"n2138436007":{"id":"n2138436007","loc":[-85.6170624,41.9512483],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436017":{"id":"n2138436017","loc":[-85.6168094,41.9492729],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436021":{"id":"n2138436021","loc":[-85.6167553,41.9494886],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436023":{"id":"n2138436023","loc":[-85.6167585,41.9499707],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"n2138436025":{"id":"n2138436025","loc":[-85.6167567,41.9497018],"version":"1","changeset":"14878954","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:47:02Z","tags":{}},"w203838284":{"id":"w203838284","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"baseball"},"nodes":["n2138425424","n2138425425","n2138425426","n2138425427","n2138425428","n2138425429","n2138425430","n2138425431","n2138425432","n2138425424"]},"w203837928":{"id":"w203837928","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{"highway":"service"},"nodes":["n2138420717","n2138420718","n2138420719","n2138420720","n2138420721","n2138420722","n185948818","n2138420723","n2138420724","n2138420715"]},"w203839364":{"id":"w203839364","version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{"highway":"footway"},"nodes":["n2138439331","n2138439332"]},"w203837932":{"id":"w203837932","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2138420744","n2138420745","n2138420746","n2138420747","n2138420748","n2138420749","n2138420750","n2138420751","n2138420744"]},"w203839362":{"id":"w203839362","version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{"highway":"footway"},"nodes":["n2138439327","n2138439328"]},"w203839363":{"id":"w203839363","version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{"highway":"footway"},"nodes":["n2138439329","n2138439330"]},"w203837933":{"id":"w203837933","version":"2","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:42Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n185955128","n2138420760","n2138420753","n2138420764","n2138420759","n2138420758","n2138420754","n2138420755","n2138420766","n2138420756"]},"w203837936":{"id":"w203837936","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2138420765","n2138420766"]},"w17966364":{"id":"w17966364","version":"2","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{"access":"private","highway":"service","name":"Collins Dr","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Collins","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313686","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185961362","n185976502","n2138420773","n2138420768","n2138420713","n185976504","n2138420717","n2138420714","n2138420715","n2138420727","n2138420728","n2138420716"]},"w203838040":{"id":"w203838040","version":"3","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:19Z","tags":{"amenity":"school","area":"yes","building":"yes","name":"Three Rivers Middle School"},"nodes":["n2138422349","n2138422350","n2138422351","n2138422352","n2138422353","n2138422354","n2138422355","n2138422356","n2138422357","n2138439330","n2138422358","n2138422359","n2138422360","n2138436014","n2138439327","n2138422361","n2138422362","n2138422363","n2138422364","n2138422365","n2138422366","n2138422367","n2138422368","n2138422369","n2138422370","n2138422371","n2138422372","n2138422373","n2138422374","n2138422375","n2138422376","n2138439332","n2138439333","n2138422377","n2138422378","n2138422349"]},"w17964049":{"id":"w17964049","version":"3","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:46Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15335181","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185955120","n185955123","n2138420716","n185955128","n2138420762","n2138420752","n2138420761","n2138420759"]},"w41074899":{"id":"w41074899","version":"4","changeset":"14676554","user":"bbmiller","uid":"451048","visible":"true","timestamp":"2013-01-16T20:05:18Z","tags":{"highway":"secondary","name":"E Hoffman St","ref":"M 60","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Hoffman","tiger:name_direction_prefix":"E","tiger:name_type":"St","tiger:reviewed":"no","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978817","n185978819","n185978821","n185965033","n185978828","n185958839","n185978830"]},"w203839365":{"id":"w203839365","version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{"highway":"footway"},"nodes":["n2138439333","n2138439334"]},"w203837935":{"id":"w203837935","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2138420762","n2138420763","n2138420764"]},"w203838287":{"id":"w203838287","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"tennis"},"nodes":["n2138425446","n2138425447","n2138425448","n2138425443","n2138425446"]},"w203837934":{"id":"w203837934","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:14Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2138420760","n2138420763","n2138420761"]},"w203838289":{"id":"w203838289","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"tennis"},"nodes":["n2138425449","n2138425451","n2138425452","n2138425450","n2138425449"]},"w17963047":{"id":"w17963047","version":"4","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:19Z","tags":{"highway":"service","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15331535","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185948818","n2138436013","n185948820","n185948822","n185948824","n2138439326","n2138420767","n2138420766"]},"w203839091":{"id":"w203839091","version":"3","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:44Z","tags":{"highway":"footway"},"nodes":["n185976502","n2138436000","n2138436001","n2138436017","n2138436002","n2138436003","n2138436021","n2138436025","n2138436023","n2138435984","n2138436004","n2138436005","n2138436006","n2138436007","n2138436008","n2138436009","n2138436010","n2138436011","n2138436012","n2138436013","n2138439319","n2138439329","n2138436014"]},"w204830797":{"id":"w204830797","version":"1","changeset":"14970854","user":"oldtopos","uid":"169004","visible":"true","timestamp":"2013-02-09T18:25:37Z","tags":{"highway":"service","service":"parking_aisle"},"nodes":["n2138420756","n2138420757","n2138420765","n2138420758"]},"w203838288":{"id":"w203838288","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"tennis"},"nodes":["n2138425447","n2138425449","n2138425450","n2138425448","n2138425447"]},"w203838285":{"id":"w203838285","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"baseball"},"nodes":["n2138425433","n2138425434","n2138425435","n2138425436","n2138425437","n2138425438","n2138425439","n2138425440","n2138425441","n2138425442","n2138425433"]},"w203838286":{"id":"w203838286","version":"1","changeset":"14878914","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:33:42Z","tags":{"area":"yes","leisure":"pitch","sport":"tennis"},"nodes":["n2138425443","n2138425444","n2138425445","n2138425446","n2138425443"]},"w203837929":{"id":"w203837929","version":"1","changeset":"14878832","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:00:13Z","tags":{"amenity":"parking","area":"yes"},"nodes":["n2138420725","n2138420726","n2138420727","n2138420728","n2138420725"]},"w203839361":{"id":"w203839361","version":"1","changeset":"14878967","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T04:54:18Z","tags":{"highway":"footway"},"nodes":["n2138439319","n2138439328","n2138439320","n2138439321","n2138439322","n2138439331","n2138439334","n2138439323","n2138439324","n2138439325","n2138439326"]},"n394381698":{"id":"n394381698","loc":[-85.614471,41.954755],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381699":{"id":"n394381699","loc":[-85.6152,41.954744],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381700":{"id":"n394381700","loc":[-85.615201,41.954081],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381701":{"id":"n394381701","loc":[-85.614426,41.954042],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381702":{"id":"n394381702","loc":[-85.616319,41.954749],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381704":{"id":"n394381704","loc":[-85.616152,41.954752],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381706":{"id":"n394381706","loc":[-85.615201,41.95483],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394490775":{"id":"n394490775","loc":[-85.613971,41.954839],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490782":{"id":"n394490782","loc":[-85.614372,41.954841],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n185958835":{"id":"n185958835","loc":[-85.611615,41.953704],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958837":{"id":"n185958837","loc":[-85.611636,41.953938],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958842":{"id":"n185958842","loc":[-85.611187,41.951686],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958844":{"id":"n185958844","loc":[-85.611087,41.951741],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958845":{"id":"n185958845","loc":[-85.611034,41.951852],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958847":{"id":"n185958847","loc":[-85.611016,41.95196],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958849":{"id":"n185958849","loc":[-85.610989,41.95328],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958851":{"id":"n185958851","loc":[-85.611021,41.953484],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958852":{"id":"n185958852","loc":[-85.611091,41.953603],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958853":{"id":"n185958853","loc":[-85.6112,41.953661],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185958855":{"id":"n185958855","loc":[-85.611364,41.953686],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:58:34Z","tags":{}},"n185965031":{"id":"n185965031","loc":[-85.614204,41.953696],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185965032":{"id":"n185965032","loc":[-85.6142,41.953978],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:42Z","tags":{}},"n185965062":{"id":"n185965062","loc":[-85.614617,41.951639],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185965064":{"id":"n185965064","loc":[-85.61463,41.951852],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185965066":{"id":"n185965066","loc":[-85.614642,41.953436],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185965068":{"id":"n185965068","loc":[-85.6146,41.953551],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185965071":{"id":"n185965071","loc":[-85.614487,41.95363],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185965073":{"id":"n185965073","loc":[-85.614354,41.953672],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:01:43Z","tags":{}},"n185966288":{"id":"n185966288","loc":[-85.61179,41.953695],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966290":{"id":"n185966290","loc":[-85.612232,41.953685],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966293":{"id":"n185966293","loc":[-85.613438,41.953677],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:33Z","tags":{}},"n185966349":{"id":"n185966349","loc":[-85.611323,41.951653],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966351":{"id":"n185966351","loc":[-85.611892,41.951642],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966352":{"id":"n185966352","loc":[-85.612216,41.951641],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966353":{"id":"n185966353","loc":[-85.613111,41.951639],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966354":{"id":"n185966354","loc":[-85.613396,41.95164],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185966355":{"id":"n185966355","loc":[-85.614221,41.95164],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:02:34Z","tags":{}},"n185973839":{"id":"n185973839","loc":[-85.61341,41.951919],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:03Z","tags":{}},"n185973840":{"id":"n185973840","loc":[-85.613438,41.953308],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:06:03Z","tags":{}},"n185980222":{"id":"n185980222","loc":[-85.613781,41.955164],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:33Z","tags":{}},"n185980223":{"id":"n185980223","loc":[-85.613815,41.955237],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:33Z","tags":{}},"n185980225":{"id":"n185980225","loc":[-85.613837,41.955316],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:33Z","tags":{}},"n185990345":{"id":"n185990345","loc":[-85.612211,41.951977],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:15:01Z","tags":{}},"n185955743":{"id":"n185955743","loc":[-85.613873,41.95635],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:55Z","tags":{}},"n185980227":{"id":"n185980227","loc":[-85.613851,41.955415],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:33Z","tags":{}},"n185980229":{"id":"n185980229","loc":[-85.613918,41.957134],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T05:09:33Z","tags":{}},"n394381703":{"id":"n394381703","loc":[-85.616287,41.955674],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394381705":{"id":"n394381705","loc":[-85.615164,41.955676],"version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{}},"n394490777":{"id":"n394490777","loc":[-85.613973,41.955979],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"n394490780":{"id":"n394490780","loc":[-85.614364,41.955987],"version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{}},"w17965307":{"id":"w17965307","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:35:58Z","tags":{"highway":"residential","name":"Bates Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Bates","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313640:15313641","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958842","n185966349","n185966351","n185966352","n185966353","n185966354","n185966355","n185965062"]},"w17967957":{"id":"w17967957","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:55:16Z","tags":{"highway":"residential","name":"Krum Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Krum","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313643","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185966352","n185990345","n185966290"]},"w17964508":{"id":"w17964508","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:30:11Z","tags":{"highway":"residential","name":"Blossom Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Blossom","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15324628","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958842","n185958844","n185958845","n185958847","n185958849","n185958851","n185958852","n185958853","n185958855","n185958835"]},"w17964507":{"id":"w17964507","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:30:10Z","tags":{"highway":"residential","name":"Blossom Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Blossom","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313629","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958835","n185958837","n185958839"]},"w34367080":{"id":"w34367080","version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394381699","n394381706","n394381705","n394381703","n394381702","n394381704","n394381699"]},"w17965302":{"id":"w17965302","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:35:55Z","tags":{"highway":"residential","name":"Clausen Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Clausen","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313630:15313631:15313632","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185958835","n185966288","n185966290","n185966293","n185965031"]},"w17965156":{"id":"w17965156","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:34:54Z","tags":{"highway":"residential","name":"Orchard Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Orchard","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15327962","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185965062","n185965064","n185965066","n185965068","n185965071","n185965073","n185965031"]},"w34369812":{"id":"w34369812","version":"1","changeset":"1160580","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T06:07:58Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394490775","n394490777","n394490780","n394490782","n394490775"]},"w17965151":{"id":"w17965151","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:34:52Z","tags":{"highway":"residential","name":"Orchard Dr","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Orchard","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313628","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185965031","n185965032","n185965033"]},"w17966756":{"id":"w17966756","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:47:10Z","tags":{"access":"private","highway":"service","name":"Lockport Dr","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Lockport","tiger:name_type":"Dr","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313621:15314402","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185978828","n185980222","n185980223","n185980225","n185980227","n185955743","n185980229"]},"w17966056":{"id":"w17966056","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:41:57Z","tags":{"highway":"residential","name":"Angell Ave","tiger:cfcc":"A41","tiger:county":"St. Joseph, MI","tiger:name_base":"Angell","tiger:name_type":"Ave","tiger:reviewed":"no","tiger:separated":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15313639","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185966354","n185973839","n185973840","n185966293"]},"w34367079":{"id":"w34367079","version":"1","changeset":"1160198","user":"TIGERcnl","uid":"120146","visible":"true","timestamp":"2009-05-12T04:27:13Z","tags":{"admin_level":"8","boundary":"administrative","created_by":"polyshp2osm-multipoly","source":"TIGER/Line® 2008 Place Shapefiles (http://www.census.gov/geo/www/tiger/)"},"nodes":["n394381700","n394381701","n394381698","n394381699","n394381700"]},"n185955744":{"id":"n185955744","loc":[-85.611753,41.956208],"version":"2","changeset":"2196690","user":"woodpeck_fixbot","uid":"147510","visible":"true","timestamp":"2009-08-19T04:56:55Z","tags":{}},"n185988932":{"id":"n185988932","loc":[-85.6159,41.956336],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185988934":{"id":"n185988934","loc":[-85.6159158,41.9590646],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{}},"n185988935":{"id":"n185988935","loc":[-85.6157358,41.959364],"version":"3","changeset":"12169723","user":"Tom Layo","uid":"280679","visible":"true","timestamp":"2012-07-10T06:59:04Z","tags":{"highway":"turning_circle","source":"Bing"}},"n2138447007":{"id":"n2138447007","loc":[-85.6130784,41.9590689],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447008":{"id":"n2138447008","loc":[-85.6133328,41.9593805],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447003":{"id":"n2138447003","loc":[-85.610238,41.9547745],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447004":{"id":"n2138447004","loc":[-85.6102652,41.9566041],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447005":{"id":"n2138447005","loc":[-85.610325,41.9568823],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447006":{"id":"n2138447006","loc":[-85.6105644,41.9571383],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447009":{"id":"n2138447009","loc":[-85.6135946,41.959948],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447010":{"id":"n2138447010","loc":[-85.6136071,41.9629372],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447011":{"id":"n2138447011","loc":[-85.6134392,41.9633182],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447012":{"id":"n2138447012","loc":[-85.6130151,41.9636073],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447013":{"id":"n2138447013","loc":[-85.6122729,41.9637125],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"n2138447014":{"id":"n2138447014","loc":[-85.6056682,41.963752],"version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{}},"w17964174":{"id":"w17964174","version":"1","changeset":"402341","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:27:41Z","tags":{"access":"private","highway":"service","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15314401","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7"},"nodes":["n185955743","n185955744"]},"w17967743":{"id":"w17967743","version":"1","changeset":"402580","user":"DaveHansenTiger","uid":"7168","visible":"true","timestamp":"2007-12-23T20:54:06Z","tags":{"access":"private","highway":"service","name":"Manistee River Rd","tiger:cfcc":"A74","tiger:county":"St. Joseph, MI","tiger:name_base":"Manistee River","tiger:name_type":"Rd","tiger:reviewed":"no","tiger:source":"tiger_import_dch_v0.6_20070813","tiger:tlid":"15326121:15326126:15326127:15326116","tiger:upload_uuid":"bulk_upload.pl-b79f893a-0be1-4a5f-a183-6aea114c9af7","tiger:zip_left":"49093","tiger:zip_right":"49093"},"nodes":["n185971574","n185988932","n185971407","n185981301","n185967987","n185988934","n185988935"]},"w203839666":{"id":"w203839666","version":"1","changeset":"14878989","user":"ansis","uid":"1193517","visible":"true","timestamp":"2013-02-02T05:02:39Z","tags":{"highway":"residential","name":"Hov Aire Drive"},"nodes":["n2138447003","n2138447004","n2138447005","n2138447006","n2138447007","n2138447008","n2138447009","n2138447010","n2138447011","n2138447012","n2138447013","n2138447014"]}}';iD.data = {
36228     "deprecated": [
36229         {
36230             "old": {
36231                 "amenity": "firepit"
36232             },
36233             "replace": {
36234                 "leisure": "firepit"
36235             }
36236         },
36237         {
36238             "old": {
36239                 "barrier": "wire_fence"
36240             },
36241             "replace": {
36242                 "barrier": "fence",
36243                 "fence_type": "chain"
36244             }
36245         },
36246         {
36247             "old": {
36248                 "barrier": "wood_fence"
36249             },
36250             "replace": {
36251                 "barrier": "fence",
36252                 "fence_type": "wood"
36253             }
36254         },
36255         {
36256             "old": {
36257                 "highway": "ford"
36258             },
36259             "replace": {
36260                 "ford": "yes"
36261             }
36262         },
36263         {
36264             "old": {
36265                 "highway": "stile"
36266             },
36267             "replace": {
36268                 "barrier": "stile"
36269             }
36270         },
36271         {
36272             "old": {
36273                 "highway": "incline"
36274             },
36275             "replace": {
36276                 "highway": "road",
36277                 "incline": "up"
36278             }
36279         },
36280         {
36281             "old": {
36282                 "highway": "incline_steep"
36283             },
36284             "replace": {
36285                 "highway": "road",
36286                 "incline": "up"
36287             }
36288         },
36289         {
36290             "old": {
36291                 "highway": "unsurfaced"
36292             },
36293             "replace": {
36294                 "highway": "road",
36295                 "incline": "unpaved"
36296             }
36297         },
36298         {
36299             "old": {
36300                 "landuse": "wood"
36301             },
36302             "replace": {
36303                 "landuse": "forest",
36304                 "natural": "wood"
36305             }
36306         },
36307         {
36308             "old": {
36309                 "natural": "marsh"
36310             },
36311             "replace": {
36312                 "natural": "wetland",
36313                 "wetland": "marsh"
36314             }
36315         },
36316         {
36317             "old": {
36318                 "power_source": "*"
36319             },
36320             "replace": {
36321                 "generator:source": "$1"
36322             }
36323         },
36324         {
36325             "old": {
36326                 "power_rating": "*"
36327             },
36328             "replace": {
36329                 "generator:output": "$1"
36330             }
36331         },
36332         {
36333             "old": {
36334                 "shop": "organic"
36335             },
36336             "replace": {
36337                 "shop": "supermarket",
36338                 "organic": "only"
36339             }
36340         }
36341     ],
36342     "discarded": [
36343         "created_by",
36344         "odbl",
36345         "odbl:note",
36346         "tiger:upload_uuid",
36347         "tiger:tlid",
36348         "tiger:source",
36349         "tiger:separated",
36350         "geobase:datasetName",
36351         "geobase:uuid",
36352         "sub_sea:type",
36353         "KSJ2:ADS",
36354         "KSJ2:ARE",
36355         "KSJ2:AdminArea",
36356         "KSJ2:COP_label",
36357         "KSJ2:DFD",
36358         "KSJ2:INT",
36359         "KSJ2:INT_label",
36360         "KSJ2:LOC",
36361         "KSJ2:LPN",
36362         "KSJ2:OPC",
36363         "KSJ2:PubFacAdmin",
36364         "KSJ2:RAC",
36365         "KSJ2:RAC_label",
36366         "KSJ2:RIC",
36367         "KSJ2:RIN",
36368         "KSJ2:WSC",
36369         "KSJ2:coordinate",
36370         "KSJ2:curve_id",
36371         "KSJ2:curve_type",
36372         "KSJ2:filename",
36373         "KSJ2:lake_id",
36374         "KSJ2:lat",
36375         "KSJ2:long",
36376         "KSJ2:river_id",
36377         "yh:LINE_NAME",
36378         "yh:LINE_NUM",
36379         "yh:STRUCTURE",
36380         "yh:TOTYUMONO",
36381         "yh:TYPE",
36382         "yh:WIDTH_RANK",
36383         "SK53_bulk:load"
36384     ],
36385     "wikipedia": [
36386         [
36387             "English",
36388             "English",
36389             "en"
36390         ],
36391         [
36392             "German",
36393             "Deutsch",
36394             "de"
36395         ],
36396         [
36397             "Dutch",
36398             "Nederlands",
36399             "nl"
36400         ],
36401         [
36402             "French",
36403             "Français",
36404             "fr"
36405         ],
36406         [
36407             "Italian",
36408             "Italiano",
36409             "it"
36410         ],
36411         [
36412             "Russian",
36413             "Русский",
36414             "ru"
36415         ],
36416         [
36417             "Spanish",
36418             "Español",
36419             "es"
36420         ],
36421         [
36422             "Polish",
36423             "Polski",
36424             "pl"
36425         ],
36426         [
36427             "Swedish",
36428             "Svenska",
36429             "sv"
36430         ],
36431         [
36432             "Japanese",
36433             "日本語",
36434             "ja"
36435         ],
36436         [
36437             "Portuguese",
36438             "Português",
36439             "pt"
36440         ],
36441         [
36442             "Chinese",
36443             "中文",
36444             "zh"
36445         ],
36446         [
36447             "Vietnamese",
36448             "Tiếng Việt",
36449             "vi"
36450         ],
36451         [
36452             "Ukrainian",
36453             "Українська",
36454             "uk"
36455         ],
36456         [
36457             "Catalan",
36458             "Català",
36459             "ca"
36460         ],
36461         [
36462             "Norwegian (Bokmål)",
36463             "Norsk (Bokmål)",
36464             "no"
36465         ],
36466         [
36467             "Waray-Waray",
36468             "Winaray",
36469             "war"
36470         ],
36471         [
36472             "Cebuano",
36473             "Sinugboanong Binisaya",
36474             "ceb"
36475         ],
36476         [
36477             "Finnish",
36478             "Suomi",
36479             "fi"
36480         ],
36481         [
36482             "Persian",
36483             "فارسی",
36484             "fa"
36485         ],
36486         [
36487             "Czech",
36488             "Čeština",
36489             "cs"
36490         ],
36491         [
36492             "Hungarian",
36493             "Magyar",
36494             "hu"
36495         ],
36496         [
36497             "Korean",
36498             "한국어",
36499             "ko"
36500         ],
36501         [
36502             "Romanian",
36503             "Română",
36504             "ro"
36505         ],
36506         [
36507             "Arabic",
36508             "العربية",
36509             "ar"
36510         ],
36511         [
36512             "Turkish",
36513             "Türkçe",
36514             "tr"
36515         ],
36516         [
36517             "Indonesian",
36518             "Bahasa Indonesia",
36519             "id"
36520         ],
36521         [
36522             "Kazakh",
36523             "Қазақша",
36524             "kk"
36525         ],
36526         [
36527             "Malay",
36528             "Bahasa Melayu",
36529             "ms"
36530         ],
36531         [
36532             "Serbian",
36533             "Српски / Srpski",
36534             "sr"
36535         ],
36536         [
36537             "Slovak",
36538             "Slovenčina",
36539             "sk"
36540         ],
36541         [
36542             "Esperanto",
36543             "Esperanto",
36544             "eo"
36545         ],
36546         [
36547             "Danish",
36548             "Dansk",
36549             "da"
36550         ],
36551         [
36552             "Lithuanian",
36553             "Lietuvių",
36554             "lt"
36555         ],
36556         [
36557             "Basque",
36558             "Euskara",
36559             "eu"
36560         ],
36561         [
36562             "Bulgarian",
36563             "Български",
36564             "bg"
36565         ],
36566         [
36567             "Hebrew",
36568             "עברית",
36569             "he"
36570         ],
36571         [
36572             "Slovenian",
36573             "Slovenščina",
36574             "sl"
36575         ],
36576         [
36577             "Croatian",
36578             "Hrvatski",
36579             "hr"
36580         ],
36581         [
36582             "Volapük",
36583             "Volapük",
36584             "vo"
36585         ],
36586         [
36587             "Estonian",
36588             "Eesti",
36589             "et"
36590         ],
36591         [
36592             "Hindi",
36593             "हिन्दी",
36594             "hi"
36595         ],
36596         [
36597             "Uzbek",
36598             "O‘zbek",
36599             "uz"
36600         ],
36601         [
36602             "Galician",
36603             "Galego",
36604             "gl"
36605         ],
36606         [
36607             "Norwegian (Nynorsk)",
36608             "Nynorsk",
36609             "nn"
36610         ],
36611         [
36612             "Simple English",
36613             "Simple English",
36614             "simple"
36615         ],
36616         [
36617             "Azerbaijani",
36618             "Azərbaycanca",
36619             "az"
36620         ],
36621         [
36622             "Latin",
36623             "Latina",
36624             "la"
36625         ],
36626         [
36627             "Greek",
36628             "Ελληνικά",
36629             "el"
36630         ],
36631         [
36632             "Thai",
36633             "ไทย",
36634             "th"
36635         ],
36636         [
36637             "Serbo-Croatian",
36638             "Srpskohrvatski / Српскохрватски",
36639             "sh"
36640         ],
36641         [
36642             "Georgian",
36643             "ქართული",
36644             "ka"
36645         ],
36646         [
36647             "Occitan",
36648             "Occitan",
36649             "oc"
36650         ],
36651         [
36652             "Macedonian",
36653             "Македонски",
36654             "mk"
36655         ],
36656         [
36657             "Newar / Nepal Bhasa",
36658             "नेपाल भाषा",
36659             "new"
36660         ],
36661         [
36662             "Tagalog",
36663             "Tagalog",
36664             "tl"
36665         ],
36666         [
36667             "Piedmontese",
36668             "Piemontèis",
36669             "pms"
36670         ],
36671         [
36672             "Belarusian",
36673             "Беларуская",
36674             "be"
36675         ],
36676         [
36677             "Haitian",
36678             "Krèyol ayisyen",
36679             "ht"
36680         ],
36681         [
36682             "Tamil",
36683             "தமிழ்",
36684             "ta"
36685         ],
36686         [
36687             "Telugu",
36688             "తెలుగు",
36689             "te"
36690         ],
36691         [
36692             "Belarusian (Taraškievica)",
36693             "Беларуская (тарашкевіца)",
36694             "be-x-old"
36695         ],
36696         [
36697             "Latvian",
36698             "Latviešu",
36699             "lv"
36700         ],
36701         [
36702             "Breton",
36703             "Brezhoneg",
36704             "br"
36705         ],
36706         [
36707             "Malagasy",
36708             "Malagasy",
36709             "mg"
36710         ],
36711         [
36712             "Albanian",
36713             "Shqip",
36714             "sq"
36715         ],
36716         [
36717             "Armenian",
36718             "Հայերեն",
36719             "hy"
36720         ],
36721         [
36722             "Tatar",
36723             "Tatarça / Татарча",
36724             "tt"
36725         ],
36726         [
36727             "Javanese",
36728             "Basa Jawa",
36729             "jv"
36730         ],
36731         [
36732             "Welsh",
36733             "Cymraeg",
36734             "cy"
36735         ],
36736         [
36737             "Marathi",
36738             "मराठी",
36739             "mr"
36740         ],
36741         [
36742             "Luxembourgish",
36743             "Lëtzebuergesch",
36744             "lb"
36745         ],
36746         [
36747             "Icelandic",
36748             "Íslenska",
36749             "is"
36750         ],
36751         [
36752             "Bosnian",
36753             "Bosanski",
36754             "bs"
36755         ],
36756         [
36757             "Burmese",
36758             "မြန်မာဘာသာ",
36759             "my"
36760         ],
36761         [
36762             "Yoruba",
36763             "Yorùbá",
36764             "yo"
36765         ],
36766         [
36767             "Bashkir",
36768             "Башҡорт",
36769             "ba"
36770         ],
36771         [
36772             "Malayalam",
36773             "മലയാളം",
36774             "ml"
36775         ],
36776         [
36777             "Aragonese",
36778             "Aragonés",
36779             "an"
36780         ],
36781         [
36782             "Lombard",
36783             "Lumbaart",
36784             "lmo"
36785         ],
36786         [
36787             "Afrikaans",
36788             "Afrikaans",
36789             "af"
36790         ],
36791         [
36792             "West Frisian",
36793             "Frysk",
36794             "fy"
36795         ],
36796         [
36797             "Western Panjabi",
36798             "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)",
36799             "pnb"
36800         ],
36801         [
36802             "Bengali",
36803             "বাংলা",
36804             "bn"
36805         ],
36806         [
36807             "Swahili",
36808             "Kiswahili",
36809             "sw"
36810         ],
36811         [
36812             "Bishnupriya Manipuri",
36813             "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী",
36814             "bpy"
36815         ],
36816         [
36817             "Ido",
36818             "Ido",
36819             "io"
36820         ],
36821         [
36822             "Kirghiz",
36823             "Кыргызча",
36824             "ky"
36825         ],
36826         [
36827             "Urdu",
36828             "اردو",
36829             "ur"
36830         ],
36831         [
36832             "Nepali",
36833             "नेपाली",
36834             "ne"
36835         ],
36836         [
36837             "Sicilian",
36838             "Sicilianu",
36839             "scn"
36840         ],
36841         [
36842             "Gujarati",
36843             "ગુજરાતી",
36844             "gu"
36845         ],
36846         [
36847             "Cantonese",
36848             "粵語",
36849             "zh-yue"
36850         ],
36851         [
36852             "Low Saxon",
36853             "Plattdüütsch",
36854             "nds"
36855         ],
36856         [
36857             "Kurdish",
36858             "Kurdî / كوردی",
36859             "ku"
36860         ],
36861         [
36862             "Irish",
36863             "Gaeilge",
36864             "ga"
36865         ],
36866         [
36867             "Asturian",
36868             "Asturianu",
36869             "ast"
36870         ],
36871         [
36872             "Quechua",
36873             "Runa Simi",
36874             "qu"
36875         ],
36876         [
36877             "Sundanese",
36878             "Basa Sunda",
36879             "su"
36880         ],
36881         [
36882             "Chuvash",
36883             "Чăваш",
36884             "cv"
36885         ],
36886         [
36887             "Scots",
36888             "Scots",
36889             "sco"
36890         ],
36891         [
36892             "Interlingua",
36893             "Interlingua",
36894             "ia"
36895         ],
36896         [
36897             "Alemannic",
36898             "Alemannisch",
36899             "als"
36900         ],
36901         [
36902             "Buginese",
36903             "Basa Ugi",
36904             "bug"
36905         ],
36906         [
36907             "Neapolitan",
36908             "Nnapulitano",
36909             "nap"
36910         ],
36911         [
36912             "Samogitian",
36913             "Žemaitėška",
36914             "bat-smg"
36915         ],
36916         [
36917             "Kannada",
36918             "ಕನ್ನಡ",
36919             "kn"
36920         ],
36921         [
36922             "Banyumasan",
36923             "Basa Banyumasan",
36924             "map-bms"
36925         ],
36926         [
36927             "Walloon",
36928             "Walon",
36929             "wa"
36930         ],
36931         [
36932             "Amharic",
36933             "አማርኛ",
36934             "am"
36935         ],
36936         [
36937             "Sorani",
36938             "Soranî / کوردی",
36939             "ckb"
36940         ],
36941         [
36942             "Scottish Gaelic",
36943             "Gàidhlig",
36944             "gd"
36945         ],
36946         [
36947             "Fiji Hindi",
36948             "Fiji Hindi",
36949             "hif"
36950         ],
36951         [
36952             "Min Nan",
36953             "Bân-lâm-gú",
36954             "zh-min-nan"
36955         ],
36956         [
36957             "Tajik",
36958             "Тоҷикӣ",
36959             "tg"
36960         ],
36961         [
36962             "Mazandarani",
36963             "مَزِروني",
36964             "mzn"
36965         ],
36966         [
36967             "Egyptian Arabic",
36968             "مصرى (Maṣrī)",
36969             "arz"
36970         ],
36971         [
36972             "Yiddish",
36973             "ייִדיש",
36974             "yi"
36975         ],
36976         [
36977             "Venetian",
36978             "Vèneto",
36979             "vec"
36980         ],
36981         [
36982             "Mongolian",
36983             "Монгол",
36984             "mn"
36985         ],
36986         [
36987             "Tarantino",
36988             "Tarandíne",
36989             "roa-tara"
36990         ],
36991         [
36992             "Sanskrit",
36993             "संस्कृतम्",
36994             "sa"
36995         ],
36996         [
36997             "Nahuatl",
36998             "Nāhuatl",
36999             "nah"
37000         ],
37001         [
37002             "Ossetian",
37003             "Иронау",
37004             "os"
37005         ],
37006         [
37007             "Sakha",
37008             "Саха тыла (Saxa Tyla)",
37009             "sah"
37010         ],
37011         [
37012             "Kapampangan",
37013             "Kapampangan",
37014             "pam"
37015         ],
37016         [
37017             "Upper Sorbian",
37018             "Hornjoserbsce",
37019             "hsb"
37020         ],
37021         [
37022             "Sinhalese",
37023             "සිංහල",
37024             "si"
37025         ],
37026         [
37027             "Northern Sami",
37028             "Sámegiella",
37029             "se"
37030         ],
37031         [
37032             "Limburgish",
37033             "Limburgs",
37034             "li"
37035         ],
37036         [
37037             "Maori",
37038             "Māori",
37039             "mi"
37040         ],
37041         [
37042             "Bavarian",
37043             "Boarisch",
37044             "bar"
37045         ],
37046         [
37047             "Corsican",
37048             "Corsu",
37049             "co"
37050         ],
37051         [
37052             "Ilokano",
37053             "Ilokano",
37054             "ilo"
37055         ],
37056         [
37057             "Gan",
37058             "贛語",
37059             "gan"
37060         ],
37061         [
37062             "Tibetan",
37063             "བོད་སྐད",
37064             "bo"
37065         ],
37066         [
37067             "Gilaki",
37068             "گیلکی",
37069             "glk"
37070         ],
37071         [
37072             "Faroese",
37073             "Føroyskt",
37074             "fo"
37075         ],
37076         [
37077             "Rusyn",
37078             "русиньскый язык",
37079             "rue"
37080         ],
37081         [
37082             "Punjabi",
37083             "ਪੰਜਾਬੀ",
37084             "pa"
37085         ],
37086         [
37087             "Central_Bicolano",
37088             "Bikol",
37089             "bcl"
37090         ],
37091         [
37092             "Hill Mari",
37093             "Кырык Мары (Kyryk Mary) ",
37094             "mrj"
37095         ],
37096         [
37097             "Võro",
37098             "Võro",
37099             "fiu-vro"
37100         ],
37101         [
37102             "Dutch Low Saxon",
37103             "Nedersaksisch",
37104             "nds-nl"
37105         ],
37106         [
37107             "Turkmen",
37108             "تركمن / Туркмен",
37109             "tk"
37110         ],
37111         [
37112             "Pashto",
37113             "پښتو",
37114             "ps"
37115         ],
37116         [
37117             "West Flemish",
37118             "West-Vlams",
37119             "vls"
37120         ],
37121         [
37122             "Mingrelian",
37123             "მარგალური (Margaluri)",
37124             "xmf"
37125         ],
37126         [
37127             "Manx",
37128             "Gaelg",
37129             "gv"
37130         ],
37131         [
37132             "Zazaki",
37133             "Zazaki",
37134             "diq"
37135         ],
37136         [
37137             "Pangasinan",
37138             "Pangasinan",
37139             "pag"
37140         ],
37141         [
37142             "Komi",
37143             "Коми",
37144             "kv"
37145         ],
37146         [
37147             "Zeelandic",
37148             "Zeêuws",
37149             "zea"
37150         ],
37151         [
37152             "Divehi",
37153             "ދިވެހިބަސް",
37154             "dv"
37155         ],
37156         [
37157             "Oriya",
37158             "ଓଡ଼ିଆ",
37159             "or"
37160         ],
37161         [
37162             "Khmer",
37163             "ភាសាខ្មែរ",
37164             "km"
37165         ],
37166         [
37167             "Norman",
37168             "Nouormand/Normaund",
37169             "nrm"
37170         ],
37171         [
37172             "Romansh",
37173             "Rumantsch",
37174             "rm"
37175         ],
37176         [
37177             "Komi-Permyak",
37178             "Перем Коми (Perem Komi)",
37179             "koi"
37180         ],
37181         [
37182             "Udmurt",
37183             "Удмурт кыл",
37184             "udm"
37185         ],
37186         [
37187             "Meadow Mari",
37188             "Олык Марий (Olyk Marij)",
37189             "mhr"
37190         ],
37191         [
37192             "Ladino",
37193             "Dzhudezmo",
37194             "lad"
37195         ],
37196         [
37197             "North Frisian",
37198             "Nordfriisk",
37199             "frr"
37200         ],
37201         [
37202             "Kashubian",
37203             "Kaszëbsczi",
37204             "csb"
37205         ],
37206         [
37207             "Ligurian",
37208             "Líguru",
37209             "lij"
37210         ],
37211         [
37212             "Wu",
37213             "吴语",
37214             "wuu"
37215         ],
37216         [
37217             "Friulian",
37218             "Furlan",
37219             "fur"
37220         ],
37221         [
37222             "Vepsian",
37223             "Vepsän",
37224             "vep"
37225         ],
37226         [
37227             "Classical Chinese",
37228             "古文 / 文言文",
37229             "zh-classical"
37230         ],
37231         [
37232             "Uyghur",
37233             "ئۇيغۇر تىلى",
37234             "ug"
37235         ],
37236         [
37237             "Saterland Frisian",
37238             "Seeltersk",
37239             "stq"
37240         ],
37241         [
37242             "Sardinian",
37243             "Sardu",
37244             "sc"
37245         ],
37246         [
37247             "Aromanian",
37248             "Armãneashce",
37249             "roa-rup"
37250         ],
37251         [
37252             "Pali",
37253             "पाऴि",
37254             "pi"
37255         ],
37256         [
37257             "Somali",
37258             "Soomaaliga",
37259             "so"
37260         ],
37261         [
37262             "Bihari",
37263             "भोजपुरी",
37264             "bh"
37265         ],
37266         [
37267             "Maltese",
37268             "Malti",
37269             "mt"
37270         ],
37271         [
37272             "Aymara",
37273             "Aymar",
37274             "ay"
37275         ],
37276         [
37277             "Ripuarian",
37278             "Ripoarisch",
37279             "ksh"
37280         ],
37281         [
37282             "Novial",
37283             "Novial",
37284             "nov"
37285         ],
37286         [
37287             "Anglo-Saxon",
37288             "Englisc",
37289             "ang"
37290         ],
37291         [
37292             "Cornish",
37293             "Kernewek/Karnuack",
37294             "kw"
37295         ],
37296         [
37297             "Navajo",
37298             "Diné bizaad",
37299             "nv"
37300         ],
37301         [
37302             "Picard",
37303             "Picard",
37304             "pcd"
37305         ],
37306         [
37307             "Hakka",
37308             "Hak-kâ-fa / 客家話",
37309             "hak"
37310         ],
37311         [
37312             "Guarani",
37313             "Avañe'ẽ",
37314             "gn"
37315         ],
37316         [
37317             "Extremaduran",
37318             "Estremeñu",
37319             "ext"
37320         ],
37321         [
37322             "Franco-Provençal/Arpitan",
37323             "Arpitan",
37324             "frp"
37325         ],
37326         [
37327             "Assamese",
37328             "অসমীয়া",
37329             "as"
37330         ],
37331         [
37332             "Silesian",
37333             "Ślůnski",
37334             "szl"
37335         ],
37336         [
37337             "Gagauz",
37338             "Gagauz",
37339             "gag"
37340         ],
37341         [
37342             "Interlingue",
37343             "Interlingue",
37344             "ie"
37345         ],
37346         [
37347             "Lingala",
37348             "Lingala",
37349             "ln"
37350         ],
37351         [
37352             "Emilian-Romagnol",
37353             "Emiliàn e rumagnòl",
37354             "eml"
37355         ],
37356         [
37357             "Chechen",
37358             "Нохчийн",
37359             "ce"
37360         ],
37361         [
37362             "Kalmyk",
37363             "Хальмг",
37364             "xal"
37365         ],
37366         [
37367             "Palatinate German",
37368             "Pfälzisch",
37369             "pfl"
37370         ],
37371         [
37372             "Hawaiian",
37373             "Hawai`i",
37374             "haw"
37375         ],
37376         [
37377             "Karachay-Balkar",
37378             "Къарачай-Малкъар (Qarachay-Malqar)",
37379             "krc"
37380         ],
37381         [
37382             "Pennsylvania German",
37383             "Deitsch",
37384             "pdc"
37385         ],
37386         [
37387             "Kinyarwanda",
37388             "Ikinyarwanda",
37389             "rw"
37390         ],
37391         [
37392             "Crimean Tatar",
37393             "Qırımtatarca",
37394             "crh"
37395         ],
37396         [
37397             "Acehnese",
37398             "Bahsa Acèh",
37399             "ace"
37400         ],
37401         [
37402             "Tongan",
37403             "faka Tonga",
37404             "to"
37405         ],
37406         [
37407             "Greenlandic",
37408             "Kalaallisut",
37409             "kl"
37410         ],
37411         [
37412             "Lower Sorbian",
37413             "Dolnoserbski",
37414             "dsb"
37415         ],
37416         [
37417             "Aramaic",
37418             "ܐܪܡܝܐ",
37419             "arc"
37420         ],
37421         [
37422             "Erzya",
37423             "Эрзянь (Erzjanj Kelj)",
37424             "myv"
37425         ],
37426         [
37427             "Lezgian",
37428             "Лезги чІал (Lezgi č’al)",
37429             "lez"
37430         ],
37431         [
37432             "Banjar",
37433             "Bahasa Banjar",
37434             "bjn"
37435         ],
37436         [
37437             "Shona",
37438             "chiShona",
37439             "sn"
37440         ],
37441         [
37442             "Papiamentu",
37443             "Papiamentu",
37444             "pap"
37445         ],
37446         [
37447             "Kabyle",
37448             "Taqbaylit",
37449             "kab"
37450         ],
37451         [
37452             "Tok Pisin",
37453             "Tok Pisin",
37454             "tpi"
37455         ],
37456         [
37457             "Lak",
37458             "Лакку",
37459             "lbe"
37460         ],
37461         [
37462             "Buryat (Russia)",
37463             "Буряад",
37464             "bxr"
37465         ],
37466         [
37467             "Lojban",
37468             "Lojban",
37469             "jbo"
37470         ],
37471         [
37472             "Wolof",
37473             "Wolof",
37474             "wo"
37475         ],
37476         [
37477             "Moksha",
37478             "Мокшень (Mokshanj Kälj)",
37479             "mdf"
37480         ],
37481         [
37482             "Zamboanga Chavacano",
37483             "Chavacano de Zamboanga",
37484             "cbk-zam"
37485         ],
37486         [
37487             "Avar",
37488             "Авар",
37489             "av"
37490         ],
37491         [
37492             "Sranan",
37493             "Sranantongo",
37494             "srn"
37495         ],
37496         [
37497             "Mirandese",
37498             "Mirandés",
37499             "mwl"
37500         ],
37501         [
37502             "Kabardian Circassian",
37503             "Адыгэбзэ (Adighabze)",
37504             "kbd"
37505         ],
37506         [
37507             "Tahitian",
37508             "Reo Mā`ohi",
37509             "ty"
37510         ],
37511         [
37512             "Lao",
37513             "ລາວ",
37514             "lo"
37515         ],
37516         [
37517             "Abkhazian",
37518             "Аҧсуа",
37519             "ab"
37520         ],
37521         [
37522             "Tetum",
37523             "Tetun",
37524             "tet"
37525         ],
37526         [
37527             "Latgalian",
37528             "Latgaļu",
37529             "ltg"
37530         ],
37531         [
37532             "Nauruan",
37533             "dorerin Naoero",
37534             "na"
37535         ],
37536         [
37537             "Kongo",
37538             "KiKongo",
37539             "kg"
37540         ],
37541         [
37542             "Igbo",
37543             "Igbo",
37544             "ig"
37545         ],
37546         [
37547             "Northern Sotho",
37548             "Sesotho sa Leboa",
37549             "nso"
37550         ],
37551         [
37552             "Zhuang",
37553             "Cuengh",
37554             "za"
37555         ],
37556         [
37557             "Karakalpak",
37558             "Qaraqalpaqsha",
37559             "kaa"
37560         ],
37561         [
37562             "Zulu",
37563             "isiZulu",
37564             "zu"
37565         ],
37566         [
37567             "Cheyenne",
37568             "Tsetsêhestâhese",
37569             "chy"
37570         ],
37571         [
37572             "Romani",
37573             "romani - रोमानी",
37574             "rmy"
37575         ],
37576         [
37577             "Old Church Slavonic",
37578             "Словѣньскъ",
37579             "cu"
37580         ],
37581         [
37582             "Tswana",
37583             "Setswana",
37584             "tn"
37585         ],
37586         [
37587             "Cherokee",
37588             "ᏣᎳᎩ",
37589             "chr"
37590         ],
37591         [
37592             "Bislama",
37593             "Bislama",
37594             "bi"
37595         ],
37596         [
37597             "Min Dong",
37598             "Mìng-dĕ̤ng-ngṳ̄",
37599             "cdo"
37600         ],
37601         [
37602             "Gothic",
37603             "𐌲𐌿𐍄𐌹𐍃𐌺",
37604             "got"
37605         ],
37606         [
37607             "Samoan",
37608             "Gagana Samoa",
37609             "sm"
37610         ],
37611         [
37612             "Moldovan",
37613             "Молдовеняскэ",
37614             "mo"
37615         ],
37616         [
37617             "Bambara",
37618             "Bamanankan",
37619             "bm"
37620         ],
37621         [
37622             "Inuktitut",
37623             "ᐃᓄᒃᑎᑐᑦ",
37624             "iu"
37625         ],
37626         [
37627             "Norfolk",
37628             "Norfuk",
37629             "pih"
37630         ],
37631         [
37632             "Pontic",
37633             "Ποντιακά",
37634             "pnt"
37635         ],
37636         [
37637             "Sindhi",
37638             "سنڌي، سندھی ، सिन्ध",
37639             "sd"
37640         ],
37641         [
37642             "Swati",
37643             "SiSwati",
37644             "ss"
37645         ],
37646         [
37647             "Kikuyu",
37648             "Gĩkũyũ",
37649             "ki"
37650         ],
37651         [
37652             "Ewe",
37653             "Eʋegbe",
37654             "ee"
37655         ],
37656         [
37657             "Hausa",
37658             "هَوُسَ",
37659             "ha"
37660         ],
37661         [
37662             "Oromo",
37663             "Oromoo",
37664             "om"
37665         ],
37666         [
37667             "Fijian",
37668             "Na Vosa Vakaviti",
37669             "fj"
37670         ],
37671         [
37672             "Tigrinya",
37673             "ትግርኛ",
37674             "ti"
37675         ],
37676         [
37677             "Tsonga",
37678             "Xitsonga",
37679             "ts"
37680         ],
37681         [
37682             "Kashmiri",
37683             "कश्मीरी / كشميري",
37684             "ks"
37685         ],
37686         [
37687             "Venda",
37688             "Tshivenda",
37689             "ve"
37690         ],
37691         [
37692             "Sango",
37693             "Sängö",
37694             "sg"
37695         ],
37696         [
37697             "Kirundi",
37698             "Kirundi",
37699             "rn"
37700         ],
37701         [
37702             "Sesotho",
37703             "Sesotho",
37704             "st"
37705         ],
37706         [
37707             "Dzongkha",
37708             "ཇོང་ཁ",
37709             "dz"
37710         ],
37711         [
37712             "Cree",
37713             "Nehiyaw",
37714             "cr"
37715         ],
37716         [
37717             "Akan",
37718             "Akana",
37719             "ak"
37720         ],
37721         [
37722             "Tumbuka",
37723             "chiTumbuka",
37724             "tum"
37725         ],
37726         [
37727             "Luganda",
37728             "Luganda",
37729             "lg"
37730         ],
37731         [
37732             "Chichewa",
37733             "Chi-Chewa",
37734             "ny"
37735         ],
37736         [
37737             "Fula",
37738             "Fulfulde",
37739             "ff"
37740         ],
37741         [
37742             "Inupiak",
37743             "Iñupiak",
37744             "ik"
37745         ],
37746         [
37747             "Chamorro",
37748             "Chamoru",
37749             "ch"
37750         ],
37751         [
37752             "Twi",
37753             "Twi",
37754             "tw"
37755         ],
37756         [
37757             "Xhosa",
37758             "isiXhosa",
37759             "xh"
37760         ],
37761         [
37762             "Ndonga",
37763             "Oshiwambo",
37764             "ng"
37765         ],
37766         [
37767             "Sichuan Yi",
37768             "ꆇꉙ",
37769             "ii"
37770         ],
37771         [
37772             "Choctaw",
37773             "Choctaw",
37774             "cho"
37775         ],
37776         [
37777             "Marshallese",
37778             "Ebon",
37779             "mh"
37780         ],
37781         [
37782             "Afar",
37783             "Afar",
37784             "aa"
37785         ],
37786         [
37787             "Kuanyama",
37788             "Kuanyama",
37789             "kj"
37790         ],
37791         [
37792             "Hiri Motu",
37793             "Hiri Motu",
37794             "ho"
37795         ],
37796         [
37797             "Muscogee",
37798             "Muskogee",
37799             "mus"
37800         ],
37801         [
37802             "Kanuri",
37803             "Kanuri",
37804             "kr"
37805         ],
37806         [
37807             "Herero",
37808             "Otsiherero",
37809             "hz"
37810         ]
37811     ],
37812     "imperial": {
37813         "type": "FeatureCollection",
37814         "features": [
37815             {
37816                 "type": "Feature",
37817                 "properties": {
37818                     "id": 0
37819                 },
37820                 "geometry": {
37821                     "type": "MultiPolygon",
37822                     "coordinates": [
37823                         [
37824                             [
37825                                 [
37826                                     -1.426496,
37827                                     50.639342
37828                                 ],
37829                                 [
37830                                     -1.445953,
37831                                     50.648139
37832                                 ],
37833                                 [
37834                                     -1.452789,
37835                                     50.654283
37836                                 ],
37837                                 [
37838                                     -1.485951,
37839                                     50.669338
37840                                 ],
37841                                 [
37842                                     -1.497426,
37843                                     50.672309
37844                                 ],
37845                                 [
37846                                     -1.535146,
37847                                     50.669379
37848                                 ],
37849                                 [
37850                                     -1.551503,
37851                                     50.665107
37852                                 ],
37853                                 [
37854                                     -1.569488,
37855                                     50.658026
37856                                 ],
37857                                 [
37858                                     -1.545318,
37859                                     50.686103
37860                                 ],
37861                                 [
37862                                     -1.50593,
37863                                     50.707709
37864                                 ],
37865                                 [
37866                                     -1.418691,
37867                                     50.733791
37868                                 ],
37869                                 [
37870                                     -1.420888,
37871                                     50.730455
37872                                 ],
37873                                 [
37874                                     -1.423451,
37875                                     50.7237
37876                                 ],
37877                                 [
37878                                     -1.425364,
37879                                     50.72012
37880                                 ],
37881                                 [
37882                                     -1.400868,
37883                                     50.721991
37884                                 ],
37885                                 [
37886                                     -1.377553,
37887                                     50.734198
37888                                 ],
37889                                 [
37890                                     -1.343495,
37891                                     50.761054
37892                                 ],
37893                                 [
37894                                     -1.318512,
37895                                     50.772162
37896                                 ],
37897                                 [
37898                                     -1.295766,
37899                                     50.773179
37900                                 ],
37901                                 [
37902                                     -1.144276,
37903                                     50.733791
37904                                 ],
37905                                 [
37906                                     -1.119537,
37907                                     50.734198
37908                                 ],
37909                                 [
37910                                     -1.10912,
37911                                     50.732856
37912                                 ],
37913                                 [
37914                                     -1.097035,
37915                                     50.726955
37916                                 ],
37917                                 [
37918                                     -1.096425,
37919                                     50.724433
37920                                 ],
37921                                 [
37922                                     -1.097646,
37923                                     50.71601
37924                                 ],
37925                                 [
37926                                     -1.097035,
37927                                     50.713324
37928                                 ],
37929                                 [
37930                                     -1.094228,
37931                                     50.712633
37932                                 ],
37933                                 [
37934                                     -1.085561,
37935                                     50.714016
37936                                 ],
37937                                 [
37938                                     -1.082753,
37939                                     50.713324
37940                                 ],
37941                                 [
37942                                     -1.062327,
37943                                     50.692816
37944                                 ],
37945                                 [
37946                                     -1.062327,
37947                                     50.685289
37948                                 ],
37949                                 [
37950                                     -1.066965,
37951                                     50.685248
37952                                 ],
37953                                 [
37954                                     -1.069651,
37955                                     50.683498
37956                                 ],
37957                                 [
37958                                     -1.071889,
37959                                     50.680976
37960                                 ],
37961                                 [
37962                                     -1.075307,
37963                                     50.678534
37964                                 ],
37965                                 [
37966                                     -1.112701,
37967                                     50.671454
37968                                 ],
37969                                 [
37970                                     -1.128651,
37971                                     50.666449
37972                                 ],
37973                                 [
37974                                     -1.156361,
37975                                     50.650784
37976                                 ],
37977                                 [
37978                                     -1.162221,
37979                                     50.645982
37980                                 ],
37981                                 [
37982                                     -1.164703,
37983                                     50.640937
37984                                 ],
37985                                 [
37986                                     -1.164666,
37987                                     50.639543
37988                                 ],
37989                                 [
37990                                     -1.426496,
37991                                     50.639342
37992                                 ]
37993                             ]
37994                         ],
37995                         [
37996                             [
37997                                 [
37998                                     -7.240314,
37999                                     55.050389
38000                                 ],
38001                                 [
38002                                     -7.013736,
38003                                     55.1615
38004                                 ],
38005                                 [
38006                                     -6.958913,
38007                                     55.20349
38008                                 ],
38009                                 [
38010                                     -6.571562,
38011                                     55.268366
38012                                 ],
38013                                 [
38014                                     -6.509633,
38015                                     55.31398
38016                                 ],
38017                                 [
38018                                     -6.226158,
38019                                     55.344406
38020                                 ],
38021                                 [
38022                                     -6.07105,
38023                                     55.25001
38024                                 ],
38025                                 [
38026                                     -5.712696,
38027                                     55.017635
38028                                 ],
38029                                 [
38030                                     -5.242021,
38031                                     54.415204
38032                                 ],
38033                                 [
38034                                     -5.695554,
38035                                     54.14284
38036                                 ],
38037                                 [
38038                                     -5.72473,
38039                                     54.07455
38040                                 ],
38041                                 [
38042                                     -6.041633,
38043                                     54.006238
38044                                 ],
38045                                 [
38046                                     -6.153953,
38047                                     54.054931
38048                                 ],
38049                                 [
38050                                     -6.220539,
38051                                     54.098803
38052                                 ],
38053                                 [
38054                                     -6.242502,
38055                                     54.099758
38056                                 ],
38057                                 [
38058                                     -6.263661,
38059                                     54.104682
38060                                 ],
38061                                 [
38062                                     -6.269887,
38063                                     54.097927
38064                                 ],
38065                                 [
38066                                     -6.28465,
38067                                     54.105226
38068                                 ],
38069                                 [
38070                                     -6.299585,
38071                                     54.104037
38072                                 ],
38073                                 [
38074                                     -6.313796,
38075                                     54.099696
38076                                 ],
38077                                 [
38078                                     -6.327128,
38079                                     54.097888
38080                                 ],
38081                                 [
38082                                     -6.338962,
38083                                     54.102952
38084                                 ],
38085                                 [
38086                                     -6.346662,
38087                                     54.109877
38088                                 ],
38089                                 [
38090                                     -6.354827,
38091                                     54.110652
38092                                 ],
38093                                 [
38094                                     -6.368108,
38095                                     54.097319
38096                                 ],
38097                                 [
38098                                     -6.369348,
38099                                     54.091118
38100                                 ],
38101                                 [
38102                                     -6.367643,
38103                                     54.083418
38104                                 ],
38105                                 [
38106                                     -6.366919,
38107                                     54.075098
38108                                 ],
38109                                 [
38110                                     -6.371157,
38111                                     54.066778
38112                                 ],
38113                                 [
38114                                     -6.377513,
38115                                     54.063264
38116                                 ],
38117                                 [
38118                                     -6.401026,
38119                                     54.060887
38120                                 ],
38121                                 [
38122                                     -6.426761,
38123                                     54.05541
38124                                 ],
38125                                 [
38126                                     -6.433892,
38127                                     54.055306
38128                                 ],
38129                                 [
38130                                     -6.4403,
38131                                     54.057993
38132                                 ],
38133                                 [
38134                                     -6.446243,
38135                                     54.062438
38136                                 ],
38137                                 [
38138                                     -6.450222,
38139                                     54.066675
38140                                 ],
38141                                 [
38142                                     -6.450894,
38143                                     54.068432
38144                                 ],
38145                                 [
38146                                     -6.47854,
38147                                     54.067709
38148                                 ],
38149                                 [
38150                                     -6.564013,
38151                                     54.04895
38152                                 ],
38153                                 [
38154                                     -6.571868,
38155                                     54.049519
38156                                 ],
38157                                 [
38158                                     -6.587164,
38159                                     54.053343
38160                                 ],
38161                                 [
38162                                     -6.595071,
38163                                     54.052412
38164                                 ],
38165                                 [
38166                                     -6.60029,
38167                                     54.04895
38168                                 ],
38169                                 [
38170                                     -6.605217,
38171                                     54.044475
38172                                 ],
38173                                 [
38174                                     -6.610987,
38175                                     54.039235
38176                                 ],
38177                                 [
38178                                     -6.616465,
38179                                     54.037271
38180                                 ],
38181                                 [
38182                                     -6.630624,
38183                                     54.041819
38184                                 ],
38185                                 [
38186                                     -6.657289,
38187                                     54.061146
38188                                 ],
38189                                 [
38190                                     -6.672534,
38191                                     54.068432
38192                                 ],
38193                                 [
38194                                     -6.657082,
38195                                     54.091945
38196                                 ],
38197                                 [
38198                                     -6.655791,
38199                                     54.103314
38200                                 ],
38201                                 [
38202                                     -6.666436,
38203                                     54.114786
38204                                 ],
38205                                 [
38206                                     -6.643957,
38207                                     54.131839
38208                                 ],
38209                                 [
38210                                     -6.634552,
38211                                     54.150133
38212                                 ],
38213                                 [
38214                                     -6.640339,
38215                                     54.168013
38216                                 ],
38217                                 [
38218                                     -6.648448,
38219                                     54.173665
38220                                 ],
38221                                 [
38222                                     -6.663025,
38223                                     54.183826
38224                                 ],
38225                                 [
38226                                     -6.683954,
38227                                     54.194368
38228                                 ],
38229                                 [
38230                                     -6.694651,
38231                                     54.197985
38232                                 ],
38233                                 [
38234                                     -6.706537,
38235                                     54.198915
38236                                 ],
38237                                 [
38238                                     -6.717234,
38239                                     54.195143
38240                                 ],
38241                                 [
38242                                     -6.724779,
38243                                     54.188631
38244                                 ],
38245                                 [
38246                                     -6.73284,
38247                                     54.183567
38248                                 ],
38249                                 [
38250                                     -6.744777,
38251                                     54.184187
38252                                 ],
38253                                 [
38254                                     -6.766481,
38255                                     54.192352
38256                                 ],
38257                                 [
38258                                     -6.787824,
38259                                     54.202998
38260                                 ],
38261                                 [
38262                                     -6.807358,
38263                                     54.21633
38264                                 ],
38265                                 [
38266                                     -6.823946,
38267                                     54.23235
38268                                 ],
38269                                 [
38270                                     -6.829733,
38271                                     54.242375
38272                                 ],
38273                                 [
38274                                     -6.833196,
38275                                     54.25209
38276                                 ],
38277                                 [
38278                                     -6.837743,
38279                                     54.260513
38280                                 ],
38281                                 [
38282                                     -6.846683,
38283                                     54.266456
38284                                 ],
38285                                 [
38286                                     -6.882185,
38287                                     54.277257
38288                                 ],
38289                                 [
38290                                     -6.864667,
38291                                     54.282734
38292                                 ],
38293                                 [
38294                                     -6.856657,
38295                                     54.292811
38296                                 ],
38297                                 [
38298                                     -6.858414,
38299                                     54.307332
38300                                 ],
38301                                 [
38302                                     -6.870015,
38303                                     54.326001
38304                                 ],
38305                                 [
38306                                     -6.879705,
38307                                     54.341594
38308                                 ],
38309                                 [
38310                                     -6.885957,
38311                                     54.345624
38312                                 ],
38313                                 [
38314                                     -6.897895,
38315                                     54.346193
38316                                 ],
38317                                 [
38318                                     -6.905956,
38319                                     54.349035
38320                                 ],
38321                                 [
38322                                     -6.915051,
38323                                     54.365933
38324                                 ],
38325                                 [
38326                                     -6.922028,
38327                                     54.372703
38328                                 ],
38329                                 [
38330                                     -6.984091,
38331                                     54.403089
38332                                 ],
38333                                 [
38334                                     -7.017836,
38335                                     54.413166
38336                                 ],
38337                                 [
38338                                     -7.049255,
38339                                     54.411512
38340                                 ],
38341                                 [
38342                                     -7.078504,
38343                                     54.394717
38344                                 ],
38345                                 [
38346                                     -7.127028,
38347                                     54.349759
38348                                 ],
38349                                 [
38350                                     -7.159894,
38351                                     54.335186
38352                                 ],
38353                                 [
38354                                     -7.168059,
38355                                     54.335031
38356                                 ],
38357                                 [
38358                                     -7.185629,
38359                                     54.336943
38360                                 ],
38361                                 [
38362                                     -7.18947,
38363                                     54.335692
38364                                 ],
38365                                 [
38366                                     -7.19245,
38367                                     54.334721
38368                                 ],
38369                                 [
38370                                     -7.193949,
38371                                     54.329967
38372                                 ],
38373                                 [
38374                                     -7.191468,
38375                                     54.323869
38376                                 ],
38377                                 [
38378                                     -7.187644,
38379                                     54.318804
38380                                 ],
38381                                 [
38382                                     -7.185009,
38383                                     54.317254
38384                                 ],
38385                                 [
38386                                     -7.184647,
38387                                     54.316634
38388                                 ],
38389                                 [
38390                                     -7.192399,
38391                                     54.307384
38392                                 ],
38393                                 [
38394                                     -7.193691,
38395                                     54.307539
38396                                 ],
38397                                 [
38398                                     -7.199168,
38399                                     54.303457
38400                                 ],
38401                                 [
38402                                     -7.206661,
38403                                     54.304903
38404                                 ],
38405                                 [
38406                                     -7.211467,
38407                                     54.30418
38408                                 ],
38409                                 [
38410                                     -7.209038,
38411                                     54.293431
38412                                 ],
38413                                 [
38414                                     -7.1755,
38415                                     54.283664
38416                                 ],
38417                                 [
38418                                     -7.181495,
38419                                     54.269763
38420                                 ],
38421                                 [
38422                                     -7.14589,
38423                                     54.25209
38424                                 ],
38425                                 [
38426                                     -7.159739,
38427                                     54.24067
38428                                 ],
38429                                 [
38430                                     -7.153331,
38431                                     54.224237
38432                                 ],
38433                                 [
38434                                     -7.174725,
38435                                     54.216072
38436                                 ],
38437                                 [
38438                                     -7.229502,
38439                                     54.207545
38440                                 ],
38441                                 [
38442                                     -7.240871,
38443                                     54.202326
38444                                 ],
38445                                 [
38446                                     -7.249088,
38447                                     54.197416
38448                                 ],
38449                                 [
38450                                     -7.255496,
38451                                     54.190854
38452                                 ],
38453                                 [
38454                                     -7.261128,
38455                                     54.18088
38456                                 ],
38457                                 [
38458                                     -7.256322,
38459                                     54.176901
38460                                 ],
38461                                 [
38462                                     -7.247021,
38463                                     54.17225
38464                                 ],
38465                                 [
38466                                     -7.24578,
38467                                     54.166979
38468                                 ],
38469                                 [
38470                                     -7.265366,
38471                                     54.16114
38472                                 ],
38473                                 [
38474                                     -7.26087,
38475                                     54.151166
38476                                 ],
38477                                 [
38478                                     -7.263505,
38479                                     54.140986
38480                                 ],
38481                                 [
38482                                     -7.27074,
38483                                     54.132253
38484                                 ],
38485                                 [
38486                                     -7.280042,
38487                                     54.126155
38488                                 ],
38489                                 [
38490                                     -7.293788,
38491                                     54.122021
38492                                 ],
38493                                 [
38494                                     -7.297353,
38495                                     54.125896
38496                                 ],
38497                                 [
38498                                     -7.29632,
38499                                     54.134991
38500                                 ],
38501                                 [
38502                                     -7.296423,
38503                                     54.146515
38504                                 ],
38505                                 [
38506                                     -7.295028,
38507                                     54.155404
38508                                 ],
38509                                 [
38510                                     -7.292134,
38511                                     54.162638
38512                                 ],
38513                                 [
38514                                     -7.295545,
38515                                     54.165119
38516                                 ],
38517                                 [
38518                                     -7.325982,
38519                                     54.154577
38520                                 ],
38521                                 [
38522                                     -7.333165,
38523                                     54.149409
38524                                 ],
38525                                 [
38526                                     -7.333165,
38527                                     54.142743
38528                                 ],
38529                                 [
38530                                     -7.310324,
38531                                     54.114683
38532                                 ],
38533                                 [
38534                                     -7.316489,
38535                                     54.11428
38536                                 ],
38537                                 [
38538                                     -7.326964,
38539                                     54.113597
38540                                 ],
38541                                 [
38542                                     -7.375488,
38543                                     54.123312
38544                                 ],
38545                                 [
38546                                     -7.390216,
38547                                     54.121194
38548                                 ],
38549                                 [
38550                                     -7.39466,
38551                                     54.121917
38552                                 ],
38553                                 [
38554                                     -7.396624,
38555                                     54.126258
38556                                 ],
38557                                 [
38558                                     -7.403962,
38559                                     54.135043
38560                                 ],
38561                                 [
38562                                     -7.41223,
38563                                     54.136438
38564                                 ],
38565                                 [
38566                                     -7.422255,
38567                                     54.135456
38568                                 ],
38569                                 [
38570                                     -7.425769,
38571                                     54.136955
38572                                 ],
38573                                 [
38574                                     -7.414659,
38575                                     54.145688
38576                                 ],
38577                                 [
38578                                     -7.439619,
38579                                     54.146929
38580                                 ],
38581                                 [
38582                                     -7.480753,
38583                                     54.127653
38584                                 ],
38585                                 [
38586                                     -7.502302,
38587                                     54.125121
38588                                 ],
38589                                 [
38590                                     -7.609014,
38591                                     54.139901
38592                                 ],
38593                                 [
38594                                     -7.620796,
38595                                     54.144965
38596                                 ],
38597                                 [
38598                                     -7.624052,
38599                                     54.153336
38600                                 ],
38601                                 [
38602                                     -7.625706,
38603                                     54.162173
38604                                 ],
38605                                 [
38606                                     -7.632682,
38607                                     54.168529
38608                                 ],
38609                                 [
38610                                     -7.70477,
38611                                     54.200362
38612                                 ],
38613                                 [
38614                                     -7.722599,
38615                                     54.202326
38616                                 ],
38617                                 [
38618                                     -7.782078,
38619                                     54.2
38620                                 ],
38621                                 [
38622                                     -7.836959,
38623                                     54.204341
38624                                 ],
38625                                 [
38626                                     -7.856441,
38627                                     54.211421
38628                                 ],
38629                                 [
38630                                     -7.86967,
38631                                     54.226872
38632                                 ],
38633                                 [
38634                                     -7.873649,
38635                                     54.271055
38636                                 ],
38637                                 [
38638                                     -7.880264,
38639                                     54.287023
38640                                 ],
38641                                 [
38642                                     -7.894966,
38643                                     54.293586
38644                                 ],
38645                                 [
38646                                     -7.93411,
38647                                     54.297049
38648                                 ],
38649                                 [
38650                                     -7.942075,
38651                                     54.298873
38652                                 ],
38653                                 [
38654                                     -7.950802,
38655                                     54.300873
38656                                 ],
38657                                 [
38658                                     -7.96801,
38659                                     54.31219
38660                                 ],
38661                                 [
38662                                     -7.981033,
38663                                     54.326556
38664                                 ],
38665                                 [
38666                                     -8.002194,
38667                                     54.357923
38668                                 ],
38669                                 [
38670                                     -8.03134,
38671                                     54.358027
38672                                 ],
38673                                 [
38674                                     -8.05648,
38675                                     54.365882
38676                                 ],
38677                                 [
38678                                     -8.079941,
38679                                     54.380196
38680                                 ],
38681                                 [
38682                                     -8.122419,
38683                                     54.415233
38684                                 ],
38685                                 [
38686                                     -8.146346,
38687                                     54.430736
38688                                 ],
38689                                 [
38690                                     -8.156035,
38691                                     54.439055
38692                                 ],
38693                                 [
38694                                     -8.158128,
38695                                     54.447117
38696                                 ],
38697                                 [
38698                                     -8.161177,
38699                                     54.454817
38700                                 ],
38701                                 [
38702                                     -8.173837,
38703                                     54.461741
38704                                 ],
38705                                 [
38706                                     -8.168467,
38707                                     54.463477
38708                                 ],
38709                                 [
38710                                     -8.15017,
38711                                     54.46939
38712                                 ],
38713                                 [
38714                                     -8.097046,
38715                                     54.478588
38716                                 ],
38717                                 [
38718                                     -8.072448,
38719                                     54.487063
38720                                 ],
38721                                 [
38722                                     -8.060976,
38723                                     54.493316
38724                                 ],
38725                                 [
38726                                     -8.05586,
38727                                     54.497553
38728                                 ],
38729                                 [
38730                                     -8.043561,
38731                                     54.512229
38732                                 ],
38733                                 [
38734                                     -8.023278,
38735                                     54.529696
38736                                 ],
38737                                 [
38738                                     -8.002194,
38739                                     54.543442
38740                                 ],
38741                                 [
38742                                     -7.926411,
38743                                     54.533055
38744                                 ],
38745                                 [
38746                                     -7.887137,
38747                                     54.532125
38748                                 ],
38749                                 [
38750                                     -7.848844,
38751                                     54.54091
38752                                 ],
38753                                 [
38754                                     -7.749264,
38755                                     54.596152
38756                                 ],
38757                                 [
38758                                     -7.707871,
38759                                     54.604162
38760                                 ],
38761                                 [
38762                                     -7.707944,
38763                                     54.604708
38764                                 ],
38765                                 [
38766                                     -7.707951,
38767                                     54.604763
38768                                 ],
38769                                 [
38770                                     -7.710558,
38771                                     54.624264
38772                                 ],
38773                                 [
38774                                     -7.721204,
38775                                     54.625866
38776                                 ],
38777                                 [
38778                                     -7.736758,
38779                                     54.619251
38780                                 ],
38781                                 [
38782                                     -7.753553,
38783                                     54.614497
38784                                 ],
38785                                 [
38786                                     -7.769159,
38787                                     54.618011
38788                                 ],
38789                                 [
38790                                     -7.801199,
38791                                     54.634806
38792                                 ],
38793                                 [
38794                                     -7.814996,
38795                                     54.639457
38796                                 ],
38797                                 [
38798                                     -7.822541,
38799                                     54.638113
38800                                 ],
38801                                 [
38802                                     -7.838044,
38803                                     54.63124
38804                                 ],
38805                                 [
38806                                     -7.846416,
38807                                     54.631447
38808                                 ],
38809                                 [
38810                                     -7.85427,
38811                                     54.636408
38812                                 ],
38813                                 [
38814                                     -7.864347,
38815                                     54.649069
38816                                 ],
38817                                 [
38818                                     -7.872771,
38819                                     54.652221
38820                                 ],
38821                                 [
38822                                     -7.890082,
38823                                     54.655063
38824                                 ],
38825                                 [
38826                                     -7.906619,
38827                                     54.661316
38828                                 ],
38829                                 [
38830                                     -7.914835,
38831                                     54.671651
38832                                 ],
38833                                 [
38834                                     -7.907135,
38835                                     54.686689
38836                                 ],
38837                                 [
38838                                     -7.913233,
38839                                     54.688653
38840                                 ],
38841                                 [
38842                                     -7.929666,
38843                                     54.696714
38844                                 ],
38845                                 [
38846                                     -7.880109,
38847                                     54.711029
38848                                 ],
38849                                 [
38850                                     -7.845899,
38851                                     54.731027
38852                                 ],
38853                                 [
38854                                     -7.832153,
38855                                     54.730614
38856                                 ],
38857                                 [
38858                                     -7.803576,
38859                                     54.716145
38860                                 ],
38861                                 [
38862                                     -7.770503,
38863                                     54.706016
38864                                 ],
38865                                 [
38866                                     -7.736603,
38867                                     54.707463
38868                                 ],
38869                                 [
38870                                     -7.70229,
38871                                     54.718883
38872                                 ],
38873                                 [
38874                                     -7.667512,
38875                                     54.738779
38876                                 ],
38877                                 [
38878                                     -7.649683,
38879                                     54.744877
38880                                 ],
38881                                 [
38882                                     -7.61537,
38883                                     54.739347
38884                                 ],
38885                                 [
38886                                     -7.585398,
38887                                     54.744722
38888                                 ],
38889                                 [
38890                                     -7.566639,
38891                                     54.738675
38892                                 ],
38893                                 [
38894                                     -7.556149,
38895                                     54.738365
38896                                 ],
38897                                 [
38898                                     -7.543075,
38899                                     54.741673
38900                                 ],
38901                                 [
38902                                     -7.543023,
38903                                     54.743791
38904                                 ],
38905                                 [
38906                                     -7.548398,
38907                                     54.747202
38908                                 ],
38909                                 [
38910                                     -7.551705,
38911                                     54.754695
38912                                 ],
38913                                 [
38914                                     -7.549741,
38915                                     54.779603
38916                                 ],
38917                                 [
38918                                     -7.543385,
38919                                     54.793091
38920                                 ],
38921                                 [
38922                                     -7.470831,
38923                                     54.845284
38924                                 ],
38925                                 [
38926                                     -7.45507,
38927                                     54.863009
38928                                 ],
38929                                 [
38930                                     -7.444735,
38931                                     54.884455
38932                                 ],
38933                                 [
38934                                     -7.444735,
38935                                     54.894893
38936                                 ],
38937                                 [
38938                                     -7.448972,
38939                                     54.920318
38940                                 ],
38941                                 [
38942                                     -7.445251,
38943                                     54.932152
38944                                 ],
38945                                 [
38946                                     -7.436983,
38947                                     54.938301
38948                                 ],
38949                                 [
38950                                     -7.417139,
38951                                     54.943056
38952                                 ],
38953                                 [
38954                                     -7.415755,
38955                                     54.944372
38956                                 ],
38957                                 [
38958                                     -7.408665,
38959                                     54.951117
38960                                 ],
38961                                 [
38962                                     -7.407424,
38963                                     54.959437
38964                                 ],
38965                                 [
38966                                     -7.413109,
38967                                     54.984965
38968                                 ],
38969                                 [
38970                                     -7.409078,
38971                                     54.992045
38972                                 ],
38973                                 [
38974                                     -7.403755,
38975                                     54.99313
38976                                 ],
38977                                 [
38978                                     -7.40112,
38979                                     54.994836
38980                                 ],
38981                                 [
38982                                     -7.405254,
38983                                     55.003569
38984                                 ],
38985                                 [
38986                                     -7.376987,
38987                                     55.02889
38988                                 ],
38989                                 [
38990                                     -7.366962,
38991                                     55.035557
38992                                 ],
38993                                 [
38994                                     -7.355024,
38995                                     55.040931
38996                                 ],
38997                                 [
38998                                     -7.291152,
38999                                     55.046615
39000                                 ],
39001                                 [
39002                                     -7.282987,
39003                                     55.051835
39004                                 ],
39005                                 [
39006                                     -7.275288,
39007                                     55.058863
39008                                 ],
39009                                 [
39010                                     -7.266503,
39011                                     55.065167
39012                                 ],
39013                                 [
39014                                     -7.247097,
39015                                     55.069328
39016                                 ],
39017                                 [
39018                                     -7.2471,
39019                                     55.069322
39020                                 ],
39021                                 [
39022                                     -7.256744,
39023                                     55.050686
39024                                 ],
39025                                 [
39026                                     -7.240956,
39027                                     55.050279
39028                                 ],
39029                                 [
39030                                     -7.240314,
39031                                     55.050389
39032                                 ]
39033                             ]
39034                         ],
39035                         [
39036                             [
39037                                 [
39038                                     -13.688588,
39039                                     57.596259
39040                                 ],
39041                                 [
39042                                     -13.690419,
39043                                     57.596259
39044                                 ],
39045                                 [
39046                                     -13.691314,
39047                                     57.596503
39048                                 ],
39049                                 [
39050                                     -13.691314,
39051                                     57.597154
39052                                 ],
39053                                 [
39054                                     -13.690419,
39055                                     57.597805
39056                                 ],
39057                                 [
39058                                     -13.688588,
39059                                     57.597805
39060                                 ],
39061                                 [
39062                                     -13.687652,
39063                                     57.597154
39064                                 ],
39065                                 [
39066                                     -13.687652,
39067                                     57.596869
39068                                 ],
39069                                 [
39070                                     -13.688588,
39071                                     57.596259
39072                                 ]
39073                             ]
39074                         ],
39075                         [
39076                             [
39077                                 [
39078                                     -4.839121,
39079                                     54.469789
39080                                 ],
39081                                 [
39082                                     -4.979941,
39083                                     54.457977
39084                                 ],
39085                                 [
39086                                     -5.343644,
39087                                     54.878637
39088                                 ],
39089                                 [
39090                                     -5.308469,
39091                                     55.176452
39092                                 ],
39093                                 [
39094                                     -6.272566,
39095                                     55.418443
39096                                 ],
39097                                 [
39098                                     -8.690528,
39099                                     57.833706
39100                                 ],
39101                                 [
39102                                     -6.344705,
39103                                     59.061083
39104                                 ],
39105                                 [
39106                                     -4.204785,
39107                                     58.63305
39108                                 ],
39109                                 [
39110                                     -2.31566,
39111                                     60.699068
39112                                 ],
39113                                 [
39114                                     -1.695335,
39115                                     60.76432
39116                                 ],
39117                                 [
39118                                     -1.58092,
39119                                     60.866001
39120                                 ],
39121                                 [
39122                                     -0.17022,
39123                                     60.897204
39124                                 ],
39125                                 [
39126                                     -0.800508,
39127                                     59.770037
39128                                 ],
39129                                 [
39130                                     -1.292368,
39131                                     57.732574
39132                                 ],
39133                                 [
39134                                     -1.850077,
39135                                     55.766368
39136                                 ],
39137                                 [
39138                                     -1.73054,
39139                                     55.782219
39140                                 ],
39141                                 [
39142                                     1.892395,
39143                                     52.815229
39144                                 ],
39145                                 [
39146                                     1.742775,
39147                                     51.364209
39148                                 ],
39149                                 [
39150                                     1.080173,
39151                                     50.847526
39152                                 ],
39153                                 [
39154                                     0.000774,
39155                                     50.664982
39156                                 ],
39157                                 [
39158                                     -0.162997,
39159                                     50.752401
39160                                 ],
39161                                 [
39162                                     -0.725152,
39163                                     50.731879
39164                                 ],
39165                                 [
39166                                     -0.768853,
39167                                     50.741516
39168                                 ],
39169                                 [
39170                                     -0.770985,
39171                                     50.736884
39172                                 ],
39173                                 [
39174                                     -0.789947,
39175                                     50.730048
39176                                 ],
39177                                 [
39178                                     -0.812815,
39179                                     50.734768
39180                                 ],
39181                                 [
39182                                     -0.877742,
39183                                     50.761156
39184                                 ],
39185                                 [
39186                                     -0.942879,
39187                                     50.758338
39188                                 ],
39189                                 [
39190                                     -0.992581,
39191                                     50.737379
39192                                 ],
39193                                 [
39194                                     -1.18513,
39195                                     50.766989
39196                                 ],
39197                                 [
39198                                     -1.282741,
39199                                     50.792353
39200                                 ],
39201                                 [
39202                                     -1.375004,
39203                                     50.772063
39204                                 ],
39205                                 [
39206                                     -1.523427,
39207                                     50.719605
39208                                 ],
39209                                 [
39210                                     -1.630649,
39211                                     50.695128
39212                                 ],
39213                                 [
39214                                     -1.663617,
39215                                     50.670508
39216                                 ],
39217                                 [
39218                                     -1.498021,
39219                                     50.40831
39220                                 ],
39221                                 [
39222                                     -4.097427,
39223                                     49.735486
39224                                 ],
39225                                 [
39226                                     -6.825199,
39227                                     49.700905
39228                                 ],
39229                                 [
39230                                     -5.541541,
39231                                     51.446591
39232                                 ],
39233                                 [
39234                                     -6.03361,
39235                                     51.732369
39236                                 ],
39237                                 [
39238                                     -4.791746,
39239                                     52.635365
39240                                 ],
39241                                 [
39242                                     -4.969244,
39243                                     52.637413
39244                                 ],
39245                                 [
39246                                     -5.049473,
39247                                     53.131209
39248                                 ],
39249                                 [
39250                                     -4.787393,
39251                                     53.409491
39252                                 ],
39253                                 [
39254                                     -4.734148,
39255                                     53.424866
39256                                 ],
39257                                 [
39258                                     -4.917096,
39259                                     53.508212
39260                                 ],
39261                                 [
39262                                     -4.839121,
39263                                     54.469789
39264                                 ]
39265                             ]
39266                         ]
39267                     ]
39268                 }
39269             },
39270             {
39271                 "type": "Feature",
39272                 "properties": {
39273                     "id": 0
39274                 },
39275                 "geometry": {
39276                     "type": "MultiPolygon",
39277                     "coordinates": [
39278                         [
39279                             [
39280                                 [
39281                                     -157.018938,
39282                                     19.300864
39283                                 ],
39284                                 [
39285                                     -179.437336,
39286                                     27.295312
39287                                 ],
39288                                 [
39289                                     -179.480084,
39290                                     28.991459
39291                                 ],
39292                                 [
39293                                     -168.707465,
39294                                     26.30325
39295                                 ],
39296                                 [
39297                                     -163.107414,
39298                                     24.60499
39299                                 ],
39300                                 [
39301                                     -153.841679,
39302                                     20.079306
39303                                 ],
39304                                 [
39305                                     -154.233846,
39306                                     19.433391
39307                                 ],
39308                                 [
39309                                     -153.61725,
39310                                     18.900587
39311                                 ],
39312                                 [
39313                                     -154.429471,
39314                                     18.171036
39315                                 ],
39316                                 [
39317                                     -156.780638,
39318                                     18.718492
39319                                 ],
39320                                 [
39321                                     -157.018938,
39322                                     19.300864
39323                                 ]
39324                             ]
39325                         ],
39326                         [
39327                             [
39328                                 [
39329                                     -78.91269,
39330                                     43.037032
39331                                 ],
39332                                 [
39333                                     -78.964351,
39334                                     42.976393
39335                                 ],
39336                                 [
39337                                     -78.981718,
39338                                     42.979043
39339                                 ],
39340                                 [
39341                                     -78.998055,
39342                                     42.991111
39343                                 ],
39344                                 [
39345                                     -79.01189,
39346                                     43.004358
39347                                 ],
39348                                 [
39349                                     -79.022046,
39350                                     43.010539
39351                                 ],
39352                                 [
39353                                     -79.023076,
39354                                     43.017015
39355                                 ],
39356                                 [
39357                                     -79.00983,
39358                                     43.050867
39359                                 ],
39360                                 [
39361                                     -79.011449,
39362                                     43.065291
39363                                 ],
39364                                 [
39365                                     -78.993051,
39366                                     43.066174
39367                                 ],
39368                                 [
39369                                     -78.975536,
39370                                     43.069707
39371                                 ],
39372                                 [
39373                                     -78.958905,
39374                                     43.070884
39375                                 ],
39376                                 [
39377                                     -78.943304,
39378                                     43.065291
39379                                 ],
39380                                 [
39381                                     -78.917399,
39382                                     43.058521
39383                                 ],
39384                                 [
39385                                     -78.908569,
39386                                     43.049396
39387                                 ],
39388                                 [
39389                                     -78.91269,
39390                                     43.037032
39391                                 ]
39392                             ]
39393                         ],
39394                         [
39395                             [
39396                                 [
39397                                     -123.03529,
39398                                     48.992515
39399                                 ],
39400                                 [
39401                                     -123.035308,
39402                                     48.992499
39403                                 ],
39404                                 [
39405                                     -123.045277,
39406                                     48.984361
39407                                 ],
39408                                 [
39409                                     -123.08849,
39410                                     48.972235
39411                                 ],
39412                                 [
39413                                     -123.089345,
39414                                     48.987982
39415                                 ],
39416                                 [
39417                                     -123.090484,
39418                                     48.992499
39419                                 ],
39420                                 [
39421                                     -123.090488,
39422                                     48.992515
39423                                 ],
39424                                 [
39425                                     -123.035306,
39426                                     48.992515
39427                                 ],
39428                                 [
39429                                     -123.03529,
39430                                     48.992515
39431                                 ]
39432                             ]
39433                         ],
39434                         [
39435                             [
39436                                 [
39437                                     -103.837038,
39438                                     29.279906
39439                                 ],
39440                                 [
39441                                     -103.864121,
39442                                     29.281366
39443                                 ],
39444                                 [
39445                                     -103.928122,
39446                                     29.293019
39447                                 ],
39448                                 [
39449                                     -104.01915,
39450                                     29.32033
39451                                 ],
39452                                 [
39453                                     -104.057313,
39454                                     29.339037
39455                                 ],
39456                                 [
39457                                     -104.105424,
39458                                     29.385675
39459                                 ],
39460                                 [
39461                                     -104.139789,
39462                                     29.400584
39463                                 ],
39464                                 [
39465                                     -104.161648,
39466                                     29.416759
39467                                 ],
39468                                 [
39469                                     -104.194514,
39470                                     29.448927
39471                                 ],
39472                                 [
39473                                     -104.212291,
39474                                     29.484661
39475                                 ],
39476                                 [
39477                                     -104.218698,
39478                                     29.489829
39479                                 ],
39480                                 [
39481                                     -104.227148,
39482                                     29.493033
39483                                 ],
39484                                 [
39485                                     -104.251022,
39486                                     29.508588
39487                                 ],
39488                                 [
39489                                     -104.267171,
39490                                     29.526571
39491                                 ],
39492                                 [
39493                                     -104.292751,
39494                                     29.532824
39495                                 ],
39496                                 [
39497                                     -104.320604,
39498                                     29.532255
39499                                 ],
39500                                 [
39501                                     -104.338484,
39502                                     29.524013
39503                                 ],
39504                                 [
39505                                     -104.349026,
39506                                     29.537578
39507                                 ],
39508                                 [
39509                                     -104.430443,
39510                                     29.582795
39511                                 ],
39512                                 [
39513                                     -104.437832,
39514                                     29.58543
39515                                 ],
39516                                 [
39517                                     -104.444008,
39518                                     29.589203
39519                                 ],
39520                                 [
39521                                     -104.448555,
39522                                     29.597678
39523                                 ],
39524                                 [
39525                                     -104.452069,
39526                                     29.607109
39527                                 ],
39528                                 [
39529                                     -104.455222,
39530                                     29.613387
39531                                 ],
39532                                 [
39533                                     -104.469381,
39534                                     29.625402
39535                                 ],
39536                                 [
39537                                     -104.516639,
39538                                     29.654315
39539                                 ],
39540                                 [
39541                                     -104.530824,
39542                                     29.667906
39543                                 ],
39544                                 [
39545                                     -104.535036,
39546                                     29.677802
39547                                 ],
39548                                 [
39549                                     -104.535191,
39550                                     29.687853
39551                                 ],
39552                                 [
39553                                     -104.537103,
39554                                     29.702116
39555                                 ],
39556                                 [
39557                                     -104.543666,
39558                                     29.71643
39559                                 ],
39560                                 [
39561                                     -104.561391,
39562                                     29.745421
39563                                 ],
39564                                 [
39565                                     -104.570279,
39566                                     29.787511
39567                                 ],
39568                                 [
39569                                     -104.583586,
39570                                     29.802575
39571                                 ],
39572                                 [
39573                                     -104.601207,
39574                                     29.81477
39575                                 ],
39576                                 [
39577                                     -104.619682,
39578                                     29.833064
39579                                 ],
39580                                 [
39581                                     -104.623764,
39582                                     29.841487
39583                                 ],
39584                                 [
39585                                     -104.637588,
39586                                     29.887996
39587                                 ],
39588                                 [
39589                                     -104.656346,
39590                                     29.908201
39591                                 ],
39592                                 [
39593                                     -104.660635,
39594                                     29.918433
39595                                 ],
39596                                 [
39597                                     -104.663478,
39598                                     29.923084
39599                                 ],
39600                                 [
39601                                     -104.676526,
39602                                     29.93683
39603                                 ],
39604                                 [
39605                                     -104.680479,
39606                                     29.942308
39607                                 ],
39608                                 [
39609                                     -104.682469,
39610                                     29.952126
39611                                 ],
39612                                 [
39613                                     -104.680117,
39614                                     29.967784
39615                                 ],
39616                                 [
39617                                     -104.680479,
39618                                     29.976466
39619                                 ],
39620                                 [
39621                                     -104.699108,
39622                                     30.03145
39623                                 ],
39624                                 [
39625                                     -104.701589,
39626                                     30.055324
39627                                 ],
39628                                 [
39629                                     -104.698592,
39630                                     30.075271
39631                                 ],
39632                                 [
39633                                     -104.684639,
39634                                     30.111135
39635                                 ],
39636                                 [
39637                                     -104.680479,
39638                                     30.134131
39639                                 ],
39640                                 [
39641                                     -104.67867,
39642                                     30.170356
39643                                 ],
39644                                 [
39645                                     -104.681564,
39646                                     30.192939
39647                                 ],
39648                                 [
39649                                     -104.695853,
39650                                     30.208441
39651                                 ],
39652                                 [
39653                                     -104.715231,
39654                                     30.243995
39655                                 ],
39656                                 [
39657                                     -104.724585,
39658                                     30.252211
39659                                 ],
39660                                 [
39661                                     -104.742155,
39662                                     30.25986
39663                                 ],
39664                                 [
39665                                     -104.74939,
39666                                     30.264459
39667                                 ],
39668                                 [
39669                                     -104.761689,
39670                                     30.284199
39671                                 ],
39672                                 [
39673                                     -104.774143,
39674                                     30.311588
39675                                 ],
39676                                 [
39677                                     -104.788767,
39678                                     30.335927
39679                                 ],
39680                                 [
39681                                     -104.807732,
39682                                     30.346418
39683                                 ],
39684                                 [
39685                                     -104.8129,
39686                                     30.350707
39687                                 ],
39688                                 [
39689                                     -104.814967,
39690                                     30.360577
39691                                 ],
39692                                 [
39693                                     -104.816001,
39694                                     30.371997
39695                                 ],
39696                                 [
39697                                     -104.818274,
39698                                     30.380524
39699                                 ],
39700                                 [
39701                                     -104.824269,
39702                                     30.38719
39703                                 ],
39704                                 [
39705                                     -104.83755,
39706                                     30.394063
39707                                 ],
39708                                 [
39709                                     -104.844939,
39710                                     30.40104
39711                                 ],
39712                                 [
39713                                     -104.853259,
39714                                     30.41215
39715                                 ],
39716                                 [
39717                                     -104.855016,
39718                                     30.417473
39719                                 ],
39720                                 [
39721                                     -104.853621,
39722                                     30.423984
39723                                 ],
39724                                 [
39725                                     -104.852432,
39726                                     30.438867
39727                                 ],
39728                                 [
39729                                     -104.854655,
39730                                     30.448737
39731                                 ],
39732                                 [
39733                                     -104.864473,
39734                                     30.462018
39735                                 ],
39736                                 [
39737                                     -104.866695,
39738                                     30.473025
39739                                 ],
39740                                 [
39741                                     -104.865248,
39742                                     30.479898
39743                                 ],
39744                                 [
39745                                     -104.859615,
39746                                     30.491112
39747                                 ],
39748                                 [
39749                                     -104.859254,
39750                                     30.497261
39751                                 ],
39752                                 [
39753                                     -104.863026,
39754                                     30.502377
39755                                 ],
39756                                 [
39757                                     -104.879718,
39758                                     30.510852
39759                                 ],
39760                                 [
39761                                     -104.882146,
39762                                     30.520929
39763                                 ],
39764                                 [
39765                                     -104.884007,
39766                                     30.541858
39767                                 ],
39768                                 [
39769                                     -104.886591,
39770                                     30.551883
39771                                 ],
39772                                 [
39773                                     -104.898166,
39774                                     30.569401
39775                                 ],
39776                                 [
39777                                     -104.928242,
39778                                     30.599529
39779                                 ],
39780                                 [
39781                                     -104.93434,
39782                                     30.610536
39783                                 ],
39784                                 [
39785                                     -104.941057,
39786                                     30.61405
39787                                 ],
39788                                 [
39789                                     -104.972735,
39790                                     30.618029
39791                                 ],
39792                                 [
39793                                     -104.98276,
39794                                     30.620716
39795                                 ],
39796                                 [
39797                                     -104.989117,
39798                                     30.629553
39799                                 ],
39800                                 [
39801                                     -104.991649,
39802                                     30.640301
39803                                 ],
39804                                 [
39805                                     -104.992941,
39806                                     30.651464
39807                                 ],
39808                                 [
39809                                     -104.995783,
39810                                     30.661747
39811                                 ],
39812                                 [
39813                                     -105.008495,
39814                                     30.676992
39815                                 ],
39816                                 [
39817                                     -105.027977,
39818                                     30.690117
39819                                 ],
39820                                 [
39821                                     -105.049475,
39822                                     30.699264
39823                                 ],
39824                                 [
39825                                     -105.06813,
39826                                     30.702675
39827                                 ],
39828                                 [
39829                                     -105.087043,
39830                                     30.709806
39831                                 ],
39832                                 [
39833                                     -105.133604,
39834                                     30.757917
39835                                 ],
39836                                 [
39837                                     -105.140425,
39838                                     30.750476
39839                                 ],
39840                                 [
39841                                     -105.153241,
39842                                     30.763188
39843                                 ],
39844                                 [
39845                                     -105.157788,
39846                                     30.76572
39847                                 ],
39848                                 [
39849                                     -105.160889,
39850                                     30.764118
39851                                 ],
39852                                 [
39853                                     -105.162698,
39854                                     30.774919
39855                                 ],
39856                                 [
39857                                     -105.167297,
39858                                     30.781171
39859                                 ],
39860                                 [
39861                                     -105.17479,
39862                                     30.783962
39863                                 ],
39864                                 [
39865                                     -105.185125,
39866                                     30.784634
39867                                 ],
39868                                 [
39869                                     -105.195306,
39870                                     30.787941
39871                                 ],
39872                                 [
39873                                     -105.204917,
39874                                     30.80241
39875                                 ],
39876                                 [
39877                                     -105.2121,
39878                                     30.805718
39879                                 ],
39880                                 [
39881                                     -105.21825,
39882                                     30.806803
39883                                 ],
39884                                 [
39885                                     -105.229257,
39886                                     30.810214
39887                                 ],
39888                                 [
39889                                     -105.232874,
39890                                     30.809128
39891                                 ],
39892                                 [
39893                                     -105.239851,
39894                                     30.801532
39895                                 ],
39896                                 [
39897                                     -105.243985,
39898                                     30.799103
39899                                 ],
39900                                 [
39901                                     -105.249049,
39902                                     30.798845
39903                                 ],
39904                                 [
39905                                     -105.259488,
39906                                     30.802979
39907                                 ],
39908                                 [
39909                                     -105.265844,
39910                                     30.808405
39911                                 ],
39912                                 [
39913                                     -105.270753,
39914                                     30.814348
39915                                 ],
39916                                 [
39917                                     -105.277006,
39918                                     30.819412
39919                                 ],
39920                                 [
39921                                     -105.334315,
39922                                     30.843803
39923                                 ],
39924                                 [
39925                                     -105.363771,
39926                                     30.850366
39927                                 ],
39928                                 [
39929                                     -105.376173,
39930                                     30.859565
39931                                 ],
39932                                 [
39933                                     -105.41555,
39934                                     30.902456
39935                                 ],
39936                                 [
39937                                     -105.496682,
39938                                     30.95651
39939                                 ],
39940                                 [
39941                                     -105.530789,
39942                                     30.991701
39943                                 ],
39944                                 [
39945                                     -105.555955,
39946                                     31.002605
39947                                 ],
39948                                 [
39949                                     -105.565722,
39950                                     31.016661
39951                                 ],
39952                                 [
39953                                     -105.578641,
39954                                     31.052163
39955                                 ],
39956                                 [
39957                                     -105.59094,
39958                                     31.071438
39959                                 ],
39960                                 [
39961                                     -105.605875,
39962                                     31.081928
39963                                 ],
39964                                 [
39965                                     -105.623496,
39966                                     31.090351
39967                                 ],
39968                                 [
39969                                     -105.643805,
39970                                     31.103684
39971                                 ],
39972                                 [
39973                                     -105.668042,
39974                                     31.127869
39975                                 ],
39976                                 [
39977                                     -105.675225,
39978                                     31.131951
39979                                 ],
39980                                 [
39981                                     -105.692278,
39982                                     31.137635
39983                                 ],
39984                                 [
39985                                     -105.76819,
39986                                     31.18001
39987                                 ],
39988                                 [
39989                                     -105.777854,
39990                                     31.192722
39991                                 ],
39992                                 [
39993                                     -105.78483,
39994                                     31.211016
39995                                 ],
39996                                 [
39997                                     -105.861983,
39998                                     31.288376
39999                                 ],
40000                                 [
40001                                     -105.880147,
40002                                     31.300881
40003                                 ],
40004                                 [
40005                                     -105.896994,
40006                                     31.305997
40007                                 ],
40008                                 [
40009                                     -105.897149,
40010                                     31.309511
40011                                 ],
40012                                 [
40013                                     -105.908802,
40014                                     31.317004
40015                                 ],
40016                                 [
40017                                     -105.928052,
40018                                     31.326461
40019                                 ],
40020                                 [
40021                                     -105.934563,
40022                                     31.335504
40023                                 ],
40024                                 [
40025                                     -105.941772,
40026                                     31.352351
40027                                 ],
40028                                 [
40029                                     -105.948515,
40030                                     31.361239
40031                                 ],
40032                                 [
40033                                     -105.961202,
40034                                     31.371006
40035                                 ],
40036                                 [
40037                                     -106.004739,
40038                                     31.396948
40039                                 ],
40040                                 [
40041                                     -106.021147,
40042                                     31.402167
40043                                 ],
40044                                 [
40045                                     -106.046261,
40046                                     31.404648
40047                                 ],
40048                                 [
40049                                     -106.065304,
40050                                     31.410952
40051                                 ],
40052                                 [
40053                                     -106.099385,
40054                                     31.428884
40055                                 ],
40056                                 [
40057                                     -106.141113,
40058                                     31.439167
40059                                 ],
40060                                 [
40061                                     -106.164316,
40062                                     31.447797
40063                                 ],
40064                                 [
40065                                     -106.174471,
40066                                     31.460251
40067                                 ],
40068                                 [
40069                                     -106.209249,
40070                                     31.477305
40071                                 ],
40072                                 [
40073                                     -106.215424,
40074                                     31.483919
40075                                 ],
40076                                 [
40077                                     -106.21744,
40078                                     31.488725
40079                                 ],
40080                                 [
40081                                     -106.218731,
40082                                     31.494616
40083                                 ],
40084                                 [
40085                                     -106.222891,
40086                                     31.50459
40087                                 ],
40088                                 [
40089                                     -106.232658,
40090                                     31.519938
40091                                 ],
40092                                 [
40093                                     -106.274749,
40094                                     31.562622
40095                                 ],
40096                                 [
40097                                     -106.286298,
40098                                     31.580141
40099                                 ],
40100                                 [
40101                                     -106.312292,
40102                                     31.648612
40103                                 ],
40104                                 [
40105                                     -106.331309,
40106                                     31.68215
40107                                 ],
40108                                 [
40109                                     -106.35849,
40110                                     31.717548
40111                                 ],
40112                                 [
40113                                     -106.39177,
40114                                     31.745919
40115                                 ],
40116                                 [
40117                                     -106.428951,
40118                                     31.758476
40119                                 ],
40120                                 [
40121                                     -106.473135,
40122                                     31.755065
40123                                 ],
40124                                 [
40125                                     -106.492797,
40126                                     31.759044
40127                                 ],
40128                                 [
40129                                     -106.501425,
40130                                     31.766344
40131                                 ],
40132                                 [
40133                                     -106.506052,
40134                                     31.770258
40135                                 ],
40136                                 [
40137                                     -106.517189,
40138                                     31.773824
40139                                 ],
40140                                 [
40141                                     -106.558969,
40142                                     31.773876
40143                                 ],
40144                                 [
40145                                     -106.584859,
40146                                     31.773927
40147                                 ],
40148                                 [
40149                                     -106.610697,
40150                                     31.773979
40151                                 ],
40152                                 [
40153                                     -106.636587,
40154                                     31.774082
40155                                 ],
40156                                 [
40157                                     -106.662477,
40158                                     31.774134
40159                                 ],
40160                                 [
40161                                     -106.688315,
40162                                     31.774237
40163                                 ],
40164                                 [
40165                                     -106.714205,
40166                                     31.774237
40167                                 ],
40168                                 [
40169                                     -106.740095,
40170                                     31.774289
40171                                 ],
40172                                 [
40173                                     -106.765933,
40174                                     31.774392
40175                                 ],
40176                                 [
40177                                     -106.791823,
40178                                     31.774444
40179                                 ],
40180                                 [
40181                                     -106.817713,
40182                                     31.774496
40183                                 ],
40184                                 [
40185                                     -106.843603,
40186                                     31.774547
40187                                 ],
40188                                 [
40189                                     -106.869441,
40190                                     31.774599
40191                                 ],
40192                                 [
40193                                     -106.895331,
40194                                     31.774702
40195                                 ],
40196                                 [
40197                                     -106.921221,
40198                                     31.774702
40199                                 ],
40200                                 [
40201                                     -106.947111,
40202                                     31.774754
40203                                 ],
40204                                 [
40205                                     -106.973001,
40206                                     31.774857
40207                                 ],
40208                                 [
40209                                     -106.998891,
40210                                     31.774909
40211                                 ],
40212                                 [
40213                                     -107.02478,
40214                                     31.774961
40215                                 ],
40216                                 [
40217                                     -107.05067,
40218                                     31.775013
40219                                 ],
40220                                 [
40221                                     -107.076509,
40222                                     31.775064
40223                                 ],
40224                                 [
40225                                     -107.102398,
40226                                     31.775168
40227                                 ],
40228                                 [
40229                                     -107.128288,
40230                                     31.775168
40231                                 ],
40232                                 [
40233                                     -107.154127,
40234                                     31.775219
40235                                 ],
40236                                 [
40237                                     -107.180016,
40238                                     31.775374
40239                                 ],
40240                                 [
40241                                     -107.205906,
40242                                     31.775374
40243                                 ],
40244                                 [
40245                                     -107.231796,
40246                                     31.775426
40247                                 ],
40248                                 [
40249                                     -107.257634,
40250                                     31.775478
40251                                 ],
40252                                 [
40253                                     -107.283524,
40254                                     31.775529
40255                                 ],
40256                                 [
40257                                     -107.309414,
40258                                     31.775633
40259                                 ],
40260                                 [
40261                                     -107.335252,
40262                                     31.775684
40263                                 ],
40264                                 [
40265                                     -107.361142,
40266                                     31.775788
40267                                 ],
40268                                 [
40269                                     -107.387032,
40270                                     31.775788
40271                                 ],
40272                                 [
40273                                     -107.412896,
40274                                     31.775839
40275                                 ],
40276                                 [
40277                                     -107.438786,
40278                                     31.775943
40279                                 ],
40280                                 [
40281                                     -107.464676,
40282                                     31.775994
40283                                 ],
40284                                 [
40285                                     -107.490566,
40286                                     31.776098
40287                                 ],
40288                                 [
40289                                     -107.516404,
40290                                     31.776149
40291                                 ],
40292                                 [
40293                                     -107.542294,
40294                                     31.776201
40295                                 ],
40296                                 [
40297                                     -107.568184,
40298                                     31.776253
40299                                 ],
40300                                 [
40301                                     -107.594074,
40302                                     31.776304
40303                                 ],
40304                                 [
40305                                     -107.619964,
40306                                     31.776408
40307                                 ],
40308                                 [
40309                                     -107.645854,
40310                                     31.776459
40311                                 ],
40312                                 [
40313                                     -107.671744,
40314                                     31.776459
40315                                 ],
40316                                 [
40317                                     -107.697633,
40318                                     31.776563
40319                                 ],
40320                                 [
40321                                     -107.723472,
40322                                     31.776614
40323                                 ],
40324                                 [
40325                                     -107.749362,
40326                                     31.776666
40327                                 ],
40328                                 [
40329                                     -107.775251,
40330                                     31.776718
40331                                 ],
40332                                 [
40333                                     -107.801141,
40334                                     31.77677
40335                                 ],
40336                                 [
40337                                     -107.82698,
40338                                     31.776873
40339                                 ],
40340                                 [
40341                                     -107.852869,
40342                                     31.776925
40343                                 ],
40344                                 [
40345                                     -107.878759,
40346                                     31.776925
40347                                 ],
40348                                 [
40349                                     -107.904598,
40350                                     31.777028
40351                                 ],
40352                                 [
40353                                     -107.930487,
40354                                     31.77708
40355                                 ],
40356                                 [
40357                                     -107.956377,
40358                                     31.777131
40359                                 ],
40360                                 [
40361                                     -107.982216,
40362                                     31.777183
40363                                 ],
40364                                 [
40365                                     -108.008105,
40366                                     31.777235
40367                                 ],
40368                                 [
40369                                     -108.033995,
40370                                     31.777338
40371                                 ],
40372                                 [
40373                                     -108.059885,
40374                                     31.77739
40375                                 ],
40376                                 [
40377                                     -108.085723,
40378                                     31.77739
40379                                 ],
40380                                 [
40381                                     -108.111613,
40382                                     31.777545
40383                                 ],
40384                                 [
40385                                     -108.137503,
40386                                     31.777545
40387                                 ],
40388                                 [
40389                                     -108.163341,
40390                                     31.777648
40391                                 ],
40392                                 [
40393                                     -108.189283,
40394                                     31.7777
40395                                 ],
40396                                 [
40397                                     -108.215121,
40398                                     31.777751
40399                                 ],
40400                                 [
40401                                     -108.215121,
40402                                     31.770723
40403                                 ],
40404                                 [
40405                                     -108.215121,
40406                                     31.763695
40407                                 ],
40408                                 [
40409                                     -108.215121,
40410                                     31.756667
40411                                 ],
40412                                 [
40413                                     -108.215121,
40414                                     31.749639
40415                                 ],
40416                                 [
40417                                     -108.215121,
40418                                     31.74256
40419                                 ],
40420                                 [
40421                                     -108.215121,
40422                                     31.735583
40423                                 ],
40424                                 [
40425                                     -108.215121,
40426                                     31.728555
40427                                 ],
40428                                 [
40429                                     -108.215121,
40430                                     31.721476
40431                                 ],
40432                                 [
40433                                     -108.215121,
40434                                     31.714396
40435                                 ],
40436                                 [
40437                                     -108.215121,
40438                                     31.70742
40439                                 ],
40440                                 [
40441                                     -108.215121,
40442                                     31.700392
40443                                 ],
40444                                 [
40445                                     -108.215121,
40446                                     31.693312
40447                                 ],
40448                                 [
40449                                     -108.215121,
40450                                     31.686284
40451                                 ],
40452                                 [
40453                                     -108.215121,
40454                                     31.679256
40455                                 ],
40456                                 [
40457                                     -108.215121,
40458                                     31.672176
40459                                 ],
40460                                 [
40461                                     -108.21507,
40462                                     31.665148
40463                                 ],
40464                                 [
40465                                     -108.215018,
40466                                     31.658172
40467                                 ],
40468                                 [
40469                                     -108.215018,
40470                                     31.651092
40471                                 ],
40472                                 [
40473                                     -108.215018,
40474                                     31.644064
40475                                 ],
40476                                 [
40477                                     -108.215018,
40478                                     31.637036
40479                                 ],
40480                                 [
40481                                     -108.215018,
40482                                     31.630008
40483                                 ],
40484                                 [
40485                                     -108.215018,
40486                                     31.62298
40487                                 ],
40488                                 [
40489                                     -108.215018,
40490                                     31.615952
40491                                 ],
40492                                 [
40493                                     -108.215018,
40494                                     31.608873
40495                                 ],
40496                                 [
40497                                     -108.215018,
40498                                     31.601845
40499                                 ],
40500                                 [
40501                                     -108.215018,
40502                                     31.594817
40503                                 ],
40504                                 [
40505                                     -108.215018,
40506                                     31.587789
40507                                 ],
40508                                 [
40509                                     -108.215018,
40510                                     31.580761
40511                                 ],
40512                                 [
40513                                     -108.215018,
40514                                     31.573733
40515                                 ],
40516                                 [
40517                                     -108.215018,
40518                                     31.566653
40519                                 ],
40520                                 [
40521                                     -108.215018,
40522                                     31.559625
40523                                 ],
40524                                 [
40525                                     -108.214966,
40526                                     31.552597
40527                                 ],
40528                                 [
40529                                     -108.214966,
40530                                     31.545569
40531                                 ],
40532                                 [
40533                                     -108.214966,
40534                                     31.538489
40535                                 ],
40536                                 [
40537                                     -108.214966,
40538                                     31.531461
40539                                 ],
40540                                 [
40541                                     -108.214966,
40542                                     31.524485
40543                                 ],
40544                                 [
40545                                     -108.214966,
40546                                     31.517405
40547                                 ],
40548                                 [
40549                                     -108.214966,
40550                                     31.510378
40551                                 ],
40552                                 [
40553                                     -108.214966,
40554                                     31.503401
40555                                 ],
40556                                 [
40557                                     -108.214966,
40558                                     31.496322
40559                                 ],
40560                                 [
40561                                     -108.214966,
40562                                     31.489242
40563                                 ],
40564                                 [
40565                                     -108.214966,
40566                                     31.482214
40567                                 ],
40568                                 [
40569                                     -108.214966,
40570                                     31.475238
40571                                 ],
40572                                 [
40573                                     -108.214966,
40574                                     31.468158
40575                                 ],
40576                                 [
40577                                     -108.214966,
40578                                     31.46113
40579                                 ],
40580                                 [
40581                                     -108.214966,
40582                                     31.454102
40583                                 ],
40584                                 [
40585                                     -108.214966,
40586                                     31.447074
40587                                 ],
40588                                 [
40589                                     -108.214915,
40590                                     31.440046
40591                                 ],
40592                                 [
40593                                     -108.214863,
40594                                     31.432966
40595                                 ],
40596                                 [
40597                                     -108.214863,
40598                                     31.425938
40599                                 ],
40600                                 [
40601                                     -108.214863,
40602                                     31.41891
40603                                 ],
40604                                 [
40605                                     -108.214863,
40606                                     31.411882
40607                                 ],
40608                                 [
40609                                     -108.214863,
40610                                     31.404803
40611                                 ],
40612                                 [
40613                                     -108.214863,
40614                                     31.397826
40615                                 ],
40616                                 [
40617                                     -108.214863,
40618                                     31.390798
40619                                 ],
40620                                 [
40621                                     -108.214863,
40622                                     31.383719
40623                                 ],
40624                                 [
40625                                     -108.214863,
40626                                     31.376639
40627                                 ],
40628                                 [
40629                                     -108.214863,
40630                                     31.369663
40631                                 ],
40632                                 [
40633                                     -108.214863,
40634                                     31.362635
40635                                 ],
40636                                 [
40637                                     -108.214863,
40638                                     31.355555
40639                                 ],
40640                                 [
40641                                     -108.214863,
40642                                     31.348527
40643                                 ],
40644                                 [
40645                                     -108.214863,
40646                                     31.341551
40647                                 ],
40648                                 [
40649                                     -108.214863,
40650                                     31.334471
40651                                 ],
40652                                 [
40653                                     -108.214811,
40654                                     31.327443
40655                                 ],
40656                                 [
40657                                     -108.257573,
40658                                     31.327391
40659                                 ],
40660                                 [
40661                                     -108.300336,
40662                                     31.327391
40663                                 ],
40664                                 [
40665                                     -108.34302,
40666                                     31.327391
40667                                 ],
40668                                 [
40669                                     -108.385731,
40670                                     31.327391
40671                                 ],
40672                                 [
40673                                     -108.428442,
40674                                     31.327391
40675                                 ],
40676                                 [
40677                                     -108.471152,
40678                                     31.327391
40679                                 ],
40680                                 [
40681                                     -108.513837,
40682                                     31.327391
40683                                 ],
40684                                 [
40685                                     -108.556547,
40686                                     31.327391
40687                                 ],
40688                                 [
40689                                     -108.59931,
40690                                     31.327391
40691                                 ],
40692                                 [
40693                                     -108.64202,
40694                                     31.327391
40695                                 ],
40696                                 [
40697                                     -108.684757,
40698                                     31.327391
40699                                 ],
40700                                 [
40701                                     -108.727467,
40702                                     31.327391
40703                                 ],
40704                                 [
40705                                     -108.770178,
40706                                     31.327391
40707                                 ],
40708                                 [
40709                                     -108.812914,
40710                                     31.327391
40711                                 ],
40712                                 [
40713                                     -108.855625,
40714                                     31.327391
40715                                 ],
40716                                 [
40717                                     -108.898335,
40718                                     31.327391
40719                                 ],
40720                                 [
40721                                     -108.941046,
40722                                     31.327391
40723                                 ],
40724                                 [
40725                                     -108.968282,
40726                                     31.327391
40727                                 ],
40728                                 [
40729                                     -108.983731,
40730                                     31.327391
40731                                 ],
40732                                 [
40733                                     -109.026493,
40734                                     31.327391
40735                                 ],
40736                                 [
40737                                     -109.04743,
40738                                     31.327391
40739                                 ],
40740                                 [
40741                                     -109.069203,
40742                                     31.327391
40743                                 ],
40744                                 [
40745                                     -109.111914,
40746                                     31.327391
40747                                 ],
40748                                 [
40749                                     -109.154599,
40750                                     31.327391
40751                                 ],
40752                                 [
40753                                     -109.197361,
40754                                     31.327391
40755                                 ],
40756                                 [
40757                                     -109.240072,
40758                                     31.32734
40759                                 ],
40760                                 [
40761                                     -109.282782,
40762                                     31.32734
40763                                 ],
40764                                 [
40765                                     -109.325519,
40766                                     31.32734
40767                                 ],
40768                                 [
40769                                     -109.368229,
40770                                     31.32734
40771                                 ],
40772                                 [
40773                                     -109.410914,
40774                                     31.32734
40775                                 ],
40776                                 [
40777                                     -109.45365,
40778                                     31.32734
40779                                 ],
40780                                 [
40781                                     -109.496387,
40782                                     31.32734
40783                                 ],
40784                                 [
40785                                     -109.539071,
40786                                     31.32734
40787                                 ],
40788                                 [
40789                                     -109.581808,
40790                                     31.32734
40791                                 ],
40792                                 [
40793                                     -109.624493,
40794                                     31.32734
40795                                 ],
40796                                 [
40797                                     -109.667177,
40798                                     31.32734
40799                                 ],
40800                                 [
40801                                     -109.709965,
40802                                     31.32734
40803                                 ],
40804                                 [
40805                                     -109.75265,
40806                                     31.32734
40807                                 ],
40808                                 [
40809                                     -109.795335,
40810                                     31.32734
40811                                 ],
40812                                 [
40813                                     -109.838123,
40814                                     31.32734
40815                                 ],
40816                                 [
40817                                     -109.880808,
40818                                     31.32734
40819                                 ],
40820                                 [
40821                                     -109.923596,
40822                                     31.327288
40823                                 ],
40824                                 [
40825                                     -109.96628,
40826                                     31.327236
40827                                 ],
40828                                 [
40829                                     -110.008965,
40830                                     31.327236
40831                                 ],
40832                                 [
40833                                     -110.051702,
40834                                     31.327236
40835                                 ],
40836                                 [
40837                                     -110.094386,
40838                                     31.327236
40839                                 ],
40840                                 [
40841                                     -110.137071,
40842                                     31.327236
40843                                 ],
40844                                 [
40845                                     -110.179807,
40846                                     31.327236
40847                                 ],
40848                                 [
40849                                     -110.222544,
40850                                     31.327236
40851                                 ],
40852                                 [
40853                                     -110.265229,
40854                                     31.327236
40855                                 ],
40856                                 [
40857                                     -110.308017,
40858                                     31.327236
40859                                 ],
40860                                 [
40861                                     -110.350753,
40862                                     31.327236
40863                                 ],
40864                                 [
40865                                     -110.39349,
40866                                     31.327236
40867                                 ],
40868                                 [
40869                                     -110.436174,
40870                                     31.327236
40871                                 ],
40872                                 [
40873                                     -110.478859,
40874                                     31.327236
40875                                 ],
40876                                 [
40877                                     -110.521595,
40878                                     31.327236
40879                                 ],
40880                                 [
40881                                     -110.56428,
40882                                     31.327236
40883                                 ],
40884                                 [
40885                                     -110.606965,
40886                                     31.327236
40887                                 ],
40888                                 [
40889                                     -110.649727,
40890                                     31.327236
40891                                 ],
40892                                 [
40893                                     -110.692438,
40894                                     31.327236
40895                                 ],
40896                                 [
40897                                     -110.7352,
40898                                     31.327236
40899                                 ],
40900                                 [
40901                                     -110.777885,
40902                                     31.327236
40903                                 ],
40904                                 [
40905                                     -110.820595,
40906                                     31.327236
40907                                 ],
40908                                 [
40909                                     -110.863358,
40910                                     31.327236
40911                                 ],
40912                                 [
40913                                     -110.906068,
40914                                     31.327236
40915                                 ],
40916                                 [
40917                                     -110.948753,
40918                                     31.327185
40919                                 ],
40920                                 [
40921                                     -111.006269,
40922                                     31.327185
40923                                 ],
40924                                 [
40925                                     -111.067118,
40926                                     31.333644
40927                                 ],
40928                                 [
40929                                     -111.094455,
40930                                     31.342532
40931                                 ],
40932                                 [
40933                                     -111.145924,
40934                                     31.359069
40935                                 ],
40936                                 [
40937                                     -111.197446,
40938                                     31.375554
40939                                 ],
40940                                 [
40941                                     -111.248864,
40942                                     31.392142
40943                                 ],
40944                                 [
40945                                     -111.300333,
40946                                     31.40873
40947                                 ],
40948                                 [
40949                                     -111.351803,
40950                                     31.425318
40951                                 ],
40952                                 [
40953                                     -111.403299,
40954                                     31.441855
40955                                 ],
40956                                 [
40957                                     -111.454768,
40958                                     31.458339
40959                                 ],
40960                                 [
40961                                     -111.506238,
40962                                     31.474979
40963                                 ],
40964                                 [
40965                                     -111.915464,
40966                                     31.601431
40967                                 ],
40968                                 [
40969                                     -112.324715,
40970                                     31.727987
40971                                 ],
40972                                 [
40973                                     -112.733967,
40974                                     31.854543
40975                                 ],
40976                                 [
40977                                     -113.143218,
40978                                     31.981046
40979                                 ],
40980                                 [
40981                                     -113.552444,
40982                                     32.107602
40983                                 ],
40984                                 [
40985                                     -113.961696,
40986                                     32.234132
40987                                 ],
40988                                 [
40989                                     -114.370921,
40990                                     32.360687
40991                                 ],
40992                                 [
40993                                     -114.780147,
40994                                     32.487243
40995                                 ],
40996                                 [
40997                                     -114.816785,
40998                                     32.498534
40999                                 ],
41000                                 [
41001                                     -114.819373,
41002                                     32.499363
41003                                 ],
41004                                 [
41005                                     -114.822108,
41006                                     32.50024
41007                                 ],
41008                                 [
41009                                     -114.809447,
41010                                     32.511324
41011                                 ],
41012                                 [
41013                                     -114.795546,
41014                                     32.552226
41015                                 ],
41016                                 [
41017                                     -114.794203,
41018                                     32.574111
41019                                 ],
41020                                 [
41021                                     -114.802678,
41022                                     32.594497
41023                                 ],
41024                                 [
41025                                     -114.786813,
41026                                     32.621033
41027                                 ],
41028                                 [
41029                                     -114.781542,
41030                                     32.628061
41031                                 ],
41032                                 [
41033                                     -114.758804,
41034                                     32.64483
41035                                 ],
41036                                 [
41037                                     -114.751156,
41038                                     32.65222
41039                                 ],
41040                                 [
41041                                     -114.739477,
41042                                     32.669066
41043                                 ],
41044                                 [
41045                                     -114.731209,
41046                                     32.686636
41047                                 ],
41048                                 [
41049                                     -114.723871,
41050                                     32.711519
41051                                 ],
41052                                 [
41053                                     -114.724284,
41054                                     32.712835
41055                                 ],
41056                                 [
41057                                     -114.724285,
41058                                     32.712836
41059                                 ],
41060                                 [
41061                                     -114.764541,
41062                                     32.709839
41063                                 ],
41064                                 [
41065                                     -114.838076,
41066                                     32.704206
41067                                 ],
41068                                 [
41069                                     -114.911612,
41070                                     32.698703
41071                                 ],
41072                                 [
41073                                     -114.985199,
41074                                     32.693122
41075                                 ],
41076                                 [
41077                                     -115.058734,
41078                                     32.687567
41079                                 ],
41080                                 [
41081                                     -115.13227,
41082                                     32.681986
41083                                 ],
41084                                 [
41085                                     -115.205806,
41086                                     32.676456
41087                                 ],
41088                                 [
41089                                     -115.27929,
41090                                     32.670823
41091                                 ],
41092                                 [
41093                                     -115.352851,
41094                                     32.665346
41095                                 ],
41096                                 [
41097                                     -115.426386,
41098                                     32.659765
41099                                 ],
41100                                 [
41101                                     -115.499922,
41102                                     32.654209
41103                                 ],
41104                                 [
41105                                     -115.573535,
41106                                     32.648654
41107                                 ],
41108                                 [
41109                                     -115.647019,
41110                                     32.643073
41111                                 ],
41112                                 [
41113                                     -115.720529,
41114                                     32.637518
41115                                 ],
41116                                 [
41117                                     -115.794064,
41118                                     32.631963
41119                                 ],
41120                                 [
41121                                     -115.8676,
41122                                     32.626408
41123                                 ],
41124                                 [
41125                                     -115.941213,
41126                                     32.620827
41127                                 ],
41128                                 [
41129                                     -116.014748,
41130                                     32.615271
41131                                 ],
41132                                 [
41133                                     -116.088232,
41134                                     32.609664
41135                                 ],
41136                                 [
41137                                     -116.161742,
41138                                     32.604161
41139                                 ],
41140                                 [
41141                                     -116.235329,
41142                                     32.598554
41143                                 ],
41144                                 [
41145                                     -116.308891,
41146                                     32.593025
41147                                 ],
41148                                 [
41149                                     -116.382426,
41150                                     32.587469
41151                                 ],
41152                                 [
41153                                     -116.455962,
41154                                     32.581888
41155                                 ],
41156                                 [
41157                                     -116.529472,
41158                                     32.576333
41159                                 ],
41160                                 [
41161                                     -116.603007,
41162                                     32.570804
41163                                 ],
41164                                 [
41165                                     -116.676543,
41166                                     32.565223
41167                                 ],
41168                                 [
41169                                     -116.750104,
41170                                     32.559667
41171                                 ],
41172                                 [
41173                                     -116.82364,
41174                                     32.554086
41175                                 ],
41176                                 [
41177                                     -116.897201,
41178                                     32.548531
41179                                 ],
41180                                 [
41181                                     -116.970737,
41182                                     32.542976
41183                                 ],
41184                                 [
41185                                     -117.044221,
41186                                     32.537421
41187                                 ],
41188                                 [
41189                                     -117.125121,
41190                                     32.531669
41191                                 ],
41192                                 [
41193                                     -117.125969,
41194                                     32.538258
41195                                 ],
41196                                 [
41197                                     -117.239623,
41198                                     32.531308
41199                                 ],
41200                                 [
41201                                     -120.274098,
41202                                     32.884264
41203                                 ],
41204                                 [
41205                                     -121.652736,
41206                                     34.467248
41207                                 ],
41208                                 [
41209                                     -124.367265,
41210                                     37.662798
41211                                 ],
41212                                 [
41213                                     -126.739806,
41214                                     41.37928
41215                                 ],
41216                                 [
41217                                     -126.996297,
41218                                     45.773888
41219                                 ],
41220                                 [
41221                                     -124.770704,
41222                                     48.44258
41223                                 ],
41224                                 [
41225                                     -123.734053,
41226                                     48.241906
41227                                 ],
41228                                 [
41229                                     -123.1663,
41230                                     48.27837
41231                                 ],
41232                                 [
41233                                     -123.193018,
41234                                     48.501035
41235                                 ],
41236                                 [
41237                                     -123.176987,
41238                                     48.65482
41239                                 ],
41240                                 [
41241                                     -122.912481,
41242                                     48.753561
41243                                 ],
41244                                 [
41245                                     -122.899122,
41246                                     48.897797
41247                                 ],
41248                                 [
41249                                     -122.837671,
41250                                     48.97502
41251                                 ],
41252                                 [
41253                                     -122.743986,
41254                                     48.980582
41255                                 ],
41256                                 [
41257                                     -122.753,
41258                                     48.992499
41259                                 ],
41260                                 [
41261                                     -122.753012,
41262                                     48.992515
41263                                 ],
41264                                 [
41265                                     -122.653258,
41266                                     48.992515
41267                                 ],
41268                                 [
41269                                     -122.433375,
41270                                     48.992515
41271                                 ],
41272                                 [
41273                                     -122.213517,
41274                                     48.992515
41275                                 ],
41276                                 [
41277                                     -121.993763,
41278                                     48.992515
41279                                 ],
41280                                 [
41281                                     -121.773958,
41282                                     48.992515
41283                                 ],
41284                                 [
41285                                     -121.554152,
41286                                     48.992515
41287                                 ],
41288                                 [
41289                                     -121.33432,
41290                                     48.992515
41291                                 ],
41292                                 [
41293                                     -121.114515,
41294                                     48.992515
41295                                 ],
41296                                 [
41297                                     -95.396937,
41298                                     48.99267
41299                                 ],
41300                                 [
41301                                     -95.177106,
41302                                     48.99267
41303                                 ],
41304                                 [
41305                                     -95.168527,
41306                                     48.995047
41307                                 ],
41308                                 [
41309                                     -95.161887,
41310                                     49.001145
41311                                 ],
41312                                 [
41313                                     -95.159329,
41314                                     49.01179
41315                                 ],
41316                                 [
41317                                     -95.159665,
41318                                     49.10951
41319                                 ],
41320                                 [
41321                                     -95.160027,
41322                                     49.223353
41323                                 ],
41324                                 [
41325                                     -95.160337,
41326                                     49.313012
41327                                 ],
41328                                 [
41329                                     -95.160569,
41330                                     49.369494
41331                                 ],
41332                                 [
41333                                     -95.102821,
41334                                     49.35394
41335                                 ],
41336                                 [
41337                                     -94.982518,
41338                                     49.356162
41339                                 ],
41340                                 [
41341                                     -94.926087,
41342                                     49.345568
41343                                 ],
41344                                 [
41345                                     -94.856195,
41346                                     49.318283
41347                                 ],
41348                                 [
41349                                     -94.839142,
41350                                     49.308878
41351                                 ],
41352                                 [
41353                                     -94.827256,
41354                                     49.292858
41355                                 ],
41356                                 [
41357                                     -94.819892,
41358                                     49.252034
41359                                 ],
41360                                 [
41361                                     -94.810358,
41362                                     49.229606
41363                                 ],
41364                                 [
41365                                     -94.806121,
41366                                     49.210899
41367                                 ],
41368                                 [
41369                                     -94.811185,
41370                                     49.166561
41371                                 ],
41372                                 [
41373                                     -94.803743,
41374                                     49.146407
41375                                 ],
41376                                 [
41377                                     -94.792039,
41378                                     49.12646
41379                                 ],
41380                                 [
41381                                     -94.753772,
41382                                     49.026156
41383                                 ],
41384                                 [
41385                                     -94.711217,
41386                                     48.914586
41387                                 ],
41388                                 [
41389                                     -94.711734,
41390                                     48.862755
41391                                 ],
41392                                 [
41393                                     -94.712147,
41394                                     48.842446
41395                                 ],
41396                                 [
41397                                     -94.713284,
41398                                     48.823843
41399                                 ],
41400                                 [
41401                                     -94.710907,
41402                                     48.807513
41403                                 ],
41404                                 [
41405                                     -94.701786,
41406                                     48.790098
41407                                 ],
41408                                 [
41409                                     -94.688893,
41410                                     48.778832
41411                                 ],
41412                                 [
41413                                     -94.592852,
41414                                     48.726433
41415                                 ],
41416                                 [
41417                                     -94.519161,
41418                                     48.70447
41419                                 ],
41420                                 [
41421                                     -94.4795,
41422                                     48.700698
41423                                 ],
41424                                 [
41425                                     -94.311577,
41426                                     48.713927
41427                                 ],
41428                                 [
41429                                     -94.292586,
41430                                     48.711912
41431                                 ],
41432                                 [
41433                                     -94.284034,
41434                                     48.709069
41435                                 ],
41436                                 [
41437                                     -94.274499,
41438                                     48.704108
41439                                 ],
41440                                 [
41441                                     -94.265482,
41442                                     48.697752
41443                                 ],
41444                                 [
41445                                     -94.258454,
41446                                     48.690828
41447                                 ],
41448                                 [
41449                                     -94.255767,
41450                                     48.683541
41451                                 ],
41452                                 [
41453                                     -94.252459,
41454                                     48.662405
41455                                 ],
41456                                 [
41457                                     -94.251038,
41458                                     48.65729
41459                                 ],
41460                                 [
41461                                     -94.23215,
41462                                     48.652019
41463                                 ],
41464                                 [
41465                                     -94.03485,
41466                                     48.643311
41467                                 ],
41468                                 [
41469                                     -93.874885,
41470                                     48.636206
41471                                 ],
41472                                 [
41473                                     -93.835741,
41474                                     48.617137
41475                                 ],
41476                                 [
41477                                     -93.809386,
41478                                     48.543576
41479                                 ],
41480                                 [
41481                                     -93.778664,
41482                                     48.519468
41483                                 ],
41484                                 [
41485                                     -93.756779,
41486                                     48.516549
41487                                 ],
41488                                 [
41489                                     -93.616297,
41490                                     48.531302
41491                                 ],
41492                                 [
41493                                     -93.599889,
41494                                     48.526341
41495                                 ],
41496                                 [
41497                                     -93.566584,
41498                                     48.538279
41499                                 ],
41500                                 [
41501                                     -93.491756,
41502                                     48.542309
41503                                 ],
41504                                 [
41505                                     -93.459924,
41506                                     48.557399
41507                                 ],
41508                                 [
41509                                     -93.45225,
41510                                     48.572721
41511                                 ],
41512                                 [
41513                                     -93.453774,
41514                                     48.586958
41515                                 ],
41516                                 [
41517                                     -93.451475,
41518                                     48.597422
41519                                 ],
41520                                 [
41521                                     -93.417316,
41522                                     48.604114
41523                                 ],
41524                                 [
41525                                     -93.385716,
41526                                     48.614863
41527                                 ],
41528                                 [
41529                                     -93.25774,
41530                                     48.630314
41531                                 ],
41532                                 [
41533                                     -93.131701,
41534                                     48.62463
41535                                 ],
41536                                 [
41537                                     -92.97972,
41538                                     48.61768
41539                                 ],
41540                                 [
41541                                     -92.955588,
41542                                     48.612228
41543                                 ],
41544                                 [
41545                                     -92.884197,
41546                                     48.579878
41547                                 ],
41548                                 [
41549                                     -92.72555,
41550                                     48.548692
41551                                 ],
41552                                 [
41553                                     -92.648604,
41554                                     48.536263
41555                                 ],
41556                                 [
41557                                     -92.630181,
41558                                     48.519468
41559                                 ],
41560                                 [
41561                                     -92.627468,
41562                                     48.502777
41563                                 ],
41564                                 [
41565                                     -92.646743,
41566                                     48.497428
41567                                 ],
41568                                 [
41569                                     -92.691366,
41570                                     48.489858
41571                                 ],
41572                                 [
41573                                     -92.710641,
41574                                     48.482882
41575                                 ],
41576                                 [
41577                                     -92.718909,
41578                                     48.459782
41579                                 ],
41580                                 [
41581                                     -92.704052,
41582                                     48.445158
41583                                 ],
41584                                 [
41585                                     -92.677129,
41586                                     48.441747
41587                                 ],
41588                                 [
41589                                     -92.657053,
41590                                     48.438233
41591                                 ],
41592                                 [
41593                                     -92.570521,
41594                                     48.446656
41595                                 ],
41596                                 [
41597                                     -92.526932,
41598                                     48.445623
41599                                 ],
41600                                 [
41601                                     -92.490629,
41602                                     48.433117
41603                                 ],
41604                                 [
41605                                     -92.474532,
41606                                     48.410483
41607                                 ],
41608                                 [
41609                                     -92.467581,
41610                                     48.394282
41611                                 ],
41612                                 [
41613                                     -92.467064,
41614                                     48.353225
41615                                 ],
41616                                 [
41617                                     -92.462465,
41618                                     48.329299
41619                                 ],
41620                                 [
41621                                     -92.451381,
41622                                     48.312685
41623                                 ],
41624                                 [
41625                                     -92.41823,
41626                                     48.282041
41627                                 ],
41628                                 [
41629                                     -92.38464,
41630                                     48.232406
41631                                 ],
41632                                 [
41633                                     -92.371851,
41634                                     48.222587
41635                                 ],
41636                                 [
41637                                     -92.353815,
41638                                     48.222897
41639                                 ],
41640                                 [
41641                                     -92.327874,
41642                                     48.229435
41643                                 ],
41644                                 [
41645                                     -92.303663,
41646                                     48.239279
41647                                 ],
41648                                 [
41649                                     -92.291029,
41650                                     48.249562
41651                                 ],
41652                                 [
41653                                     -92.292062,
41654                                     48.270336
41655                                 ],
41656                                 [
41657                                     -92.301416,
41658                                     48.290645
41659                                 ],
41660                                 [
41661                                     -92.303095,
41662                                     48.310928
41663                                 ],
41664                                 [
41665                                     -92.281598,
41666                                     48.33178
41667                                 ],
41668                                 [
41669                                     -92.259118,
41670                                     48.339635
41671                                 ],
41672                                 [
41673                                     -92.154732,
41674                                     48.350125
41675                                 ],
41676                                 [
41677                                     -92.070499,
41678                                     48.346714
41679                                 ],
41680                                 [
41681                                     -92.043421,
41682                                     48.334596
41683                                 ],
41684                                 [
41685                                     -92.030114,
41686                                     48.313176
41687                                 ],
41688                                 [
41689                                     -92.021355,
41690                                     48.287441
41691                                 ],
41692                                 [
41693                                     -92.007997,
41694                                     48.262482
41695                                 ],
41696                                 [
41697                                     -91.992158,
41698                                     48.247909
41699                                 ],
41700                                 [
41701                                     -91.975492,
41702                                     48.236566
41703                                 ],
41704                                 [
41705                                     -91.957302,
41706                                     48.228323
41707                                 ],
41708                                 [
41709                                     -91.852244,
41710                                     48.195974
41711                                 ],
41712                                 [
41713                                     -91.764988,
41714                                     48.187344
41715                                 ],
41716                                 [
41717                                     -91.744137,
41718                                     48.179593
41719                                 ],
41720                                 [
41721                                     -91.727575,
41722                                     48.168327
41723                                 ],
41724                                 [
41725                                     -91.695509,
41726                                     48.13758
41727                                 ],
41728                                 [
41729                                     -91.716438,
41730                                     48.112051
41731                                 ],
41732                                 [
41733                                     -91.692512,
41734                                     48.097866
41735                                 ],
41736                                 [
41737                                     -91.618615,
41738                                     48.089572
41739                                 ],
41740                                 [
41741                                     -91.597479,
41742                                     48.090399
41743                                 ],
41744                                 [
41745                                     -91.589676,
41746                                     48.088332
41747                                 ],
41748                                 [
41749                                     -91.581098,
41750                                     48.080942
41751                                 ],
41752                                 [
41753                                     -91.579806,
41754                                     48.070969
41755                                 ],
41756                                 [
41757                                     -91.585129,
41758                                     48.06084
41759                                 ],
41760                                 [
41761                                     -91.586989,
41762                                     48.052572
41763                                 ],
41764                                 [
41765                                     -91.574845,
41766                                     48.048205
41767                                 ],
41768                                 [
41769                                     -91.487098,
41770                                     48.053476
41771                                 ],
41772                                 [
41773                                     -91.464722,
41774                                     48.048955
41775                                 ],
41776                                 [
41777                                     -91.446274,
41778                                     48.040738
41779                                 ],
41780                                 [
41781                                     -91.427929,
41782                                     48.036449
41783                                 ],
41784                                 [
41785                                     -91.3654,
41786                                     48.057843
41787                                 ],
41788                                 [
41789                                     -91.276362,
41790                                     48.064768
41791                                 ],
41792                                 [
41793                                     -91.23807,
41794                                     48.082648
41795                                 ],
41796                                 [
41797                                     -91.203963,
41798                                     48.107659
41799                                 ],
41800                                 [
41801                                     -91.071103,
41802                                     48.170859
41803                                 ],
41804                                 [
41805                                     -91.02816,
41806                                     48.184838
41807                                 ],
41808                                 [
41809                                     -91.008109,
41810                                     48.194372
41811                                 ],
41812                                 [
41813                                     -90.923153,
41814                                     48.227109
41815                                 ],
41816                                 [
41817                                     -90.873802,
41818                                     48.234344
41819                                 ],
41820                                 [
41821                                     -90.840678,
41822                                     48.220107
41823                                 ],
41824                                 [
41825                                     -90.837939,
41826                                     48.210547
41827                                 ],
41828                                 [
41829                                     -90.848843,
41830                                     48.198713
41831                                 ],
41832                                 [
41833                                     -90.849721,
41834                                     48.189566
41835                                 ],
41836                                 [
41837                                     -90.843003,
41838                                     48.176983
41839                                 ],
41840                                 [
41841                                     -90.83427,
41842                                     48.171789
41843                                 ],
41844                                 [
41845                                     -90.823883,
41846                                     48.168327
41847                                 ],
41848                                 [
41849                                     -90.812307,
41850                                     48.160989
41851                                 ],
41852                                 [
41853                                     -90.803057,
41854                                     48.147166
41855                                 ],
41856                                 [
41857                                     -90.796701,
41858                                     48.117064
41859                                 ],
41860                                 [
41861                                     -90.786469,
41862                                     48.10045
41863                                 ],
41864                                 [
41865                                     -90.750347,
41866                                     48.083991
41867                                 ],
41868                                 [
41869                                     -90.701307,
41870                                     48.08456
41871                                 ],
41872                                 [
41873                                     -90.611079,
41874                                     48.103499
41875                                 ],
41876                                 [
41877                                     -90.586843,
41878                                     48.104817
41879                                 ],
41880                                 [
41881                                     -90.573872,
41882                                     48.097892
41883                                 ],
41884                                 [
41885                                     -90.562194,
41886                                     48.088849
41887                                 ],
41888                                 [
41889                                     -90.542014,
41890                                     48.083733
41891                                 ],
41892                                 [
41893                                     -90.531601,
41894                                     48.08456
41895                                 ],
41896                                 [
41897                                     -90.501887,
41898                                     48.094275
41899                                 ],
41900                                 [
41901                                     -90.490493,
41902                                     48.096239
41903                                 ],
41904                                 [
41905                                     -90.483465,
41906                                     48.094482
41907                                 ],
41908                                 [
41909                                     -90.477858,
41910                                     48.091536
41911                                 ],
41912                                 [
41913                                     -90.470623,
41914                                     48.089882
41915                                 ],
41916                                 [
41917                                     -90.178625,
41918                                     48.116444
41919                                 ],
41920                                 [
41921                                     -90.120386,
41922                                     48.115359
41923                                 ],
41924                                 [
41925                                     -90.073257,
41926                                     48.101199
41927                                 ],
41928                                 [
41929                                     -90.061036,
41930                                     48.091019
41931                                 ],
41932                                 [
41933                                     -90.008222,
41934                                     48.029731
41935                                 ],
41936                                 [
41937                                     -89.995329,
41938                                     48.018595
41939                                 ],
41940                                 [
41941                                     -89.980317,
41942                                     48.010094
41943                                 ],
41944                                 [
41945                                     -89.92045,
41946                                     47.98746
41947                                 ],
41948                                 [
41949                                     -89.902441,
41950                                     47.985909
41951                                 ],
41952                                 [
41953                                     -89.803454,
41954                                     48.013763
41955                                 ],
41956                                 [
41957                                     -89.780975,
41958                                     48.017199
41959                                 ],
41960                                 [
41961                                     -89.763302,
41962                                     48.017303
41963                                 ],
41964                                 [
41965                                     -89.745964,
41966                                     48.013763
41967                                 ],
41968                                 [
41969                                     -89.724596,
41970                                     48.005908
41971                                 ],
41972                                 [
41973                                     -89.712788,
41974                                     48.003376
41975                                 ],
41976                                 [
41977                                     -89.678656,
41978                                     48.008699
41979                                 ],
41980                                 [
41981                                     -89.65659,
41982                                     48.007975
41983                                 ],
41984                                 [
41985                                     -89.593105,
41986                                     47.996503
41987                                 ],
41988                                 [
41989                                     -89.581753,
41990                                     47.996333
41991                                 ],
41992                                 [
41993                                     -89.586724,
41994                                     47.992938
41995                                 ],
41996                                 [
41997                                     -89.310872,
41998                                     47.981097
41999                                 ],
42000                                 [
42001                                     -89.072861,
42002                                     48.046842
42003                                 ],
42004                                 [
42005                                     -88.49789,
42006                                     48.212841
42007                                 ],
42008                                 [
42009                                     -88.286621,
42010                                     48.156675
42011                                 ],
42012                                 [
42013                                     -85.939935,
42014                                     47.280501
42015                                 ],
42016                                 [
42017                                     -84.784644,
42018                                     46.770068
42019                                 ],
42020                                 [
42021                                     -84.516909,
42022                                     46.435083
42023                                 ],
42024                                 [
42025                                     -84.489712,
42026                                     46.446652
42027                                 ],
42028                                 [
42029                                     -84.491052,
42030                                     46.457658
42031                                 ],
42032                                 [
42033                                     -84.478301,
42034                                     46.466467
42035                                 ],
42036                                 [
42037                                     -84.465408,
42038                                     46.478172
42039                                 ],
42040                                 [
42041                                     -84.448096,
42042                                     46.489722
42043                                 ],
42044                                 [
42045                                     -84.42324,
42046                                     46.511581
42047                                 ],
42048                                 [
42049                                     -84.389702,
42050                                     46.520262
42051                                 ],
42052                                 [
42053                                     -84.352469,
42054                                     46.522743
42055                                 ],
42056                                 [
42057                                     -84.30534,
42058                                     46.501607
42059                                 ],
42060                                 [
42061                                     -84.242011,
42062                                     46.526464
42063                                 ],
42064                                 [
42065                                     -84.197285,
42066                                     46.546359
42067                                 ],
42068                                 [
42069                                     -84.147676,
42070                                     46.541346
42071                                 ],
42072                                 [
42073                                     -84.110443,
42074                                     46.526464
42075                                 ],
42076                                 [
42077                                     -84.158812,
42078                                     46.433343
42079                                 ],
42080                                 [
42081                                     -84.147676,
42082                                     46.399882
42083                                 ],
42084                                 [
42085                                     -84.129046,
42086                                     46.375026
42087                                 ],
42088                                 [
42089                                     -84.10543,
42090                                     46.347741
42091                                 ],
42092                                 [
42093                                     -84.105944,
42094                                     46.346374
42095                                 ],
42096                                 [
42097                                     -84.117195,
42098                                     46.347157
42099                                 ],
42100                                 [
42101                                     -84.117489,
42102                                     46.338326
42103                                 ],
42104                                 [
42105                                     -84.122361,
42106                                     46.331922
42107                                 ],
42108                                 [
42109                                     -84.112061,
42110                                     46.287102
42111                                 ],
42112                                 [
42113                                     -84.092672,
42114                                     46.227469
42115                                 ],
42116                                 [
42117                                     -84.111983,
42118                                     46.20337
42119                                 ],
42120                                 [
42121                                     -84.015118,
42122                                     46.149712
42123                                 ],
42124                                 [
42125                                     -83.957038,
42126                                     46.045736
42127                                 ],
42128                                 [
42129                                     -83.676821,
42130                                     46.15388
42131                                 ],
42132                                 [
42133                                     -83.429449,
42134                                     46.086221
42135                                 ],
42136                                 [
42137                                     -83.523049,
42138                                     45.892052
42139                                 ],
42140                                 [
42141                                     -83.574563,
42142                                     45.890259
42143                                 ],
42144                                 [
42145                                     -82.551615,
42146                                     44.857931
42147                                 ],
42148                                 [
42149                                     -82.655591,
42150                                     43.968545
42151                                 ],
42152                                 [
42153                                     -82.440632,
42154                                     43.096285
42155                                 ],
42156                                 [
42157                                     -82.460131,
42158                                     43.084392
42159                                 ],
42160                                 [
42161                                     -82.458894,
42162                                     43.083247
42163                                 ],
42164                                 [
42165                                     -82.431813,
42166                                     43.039387
42167                                 ],
42168                                 [
42169                                     -82.424748,
42170                                     43.02408
42171                                 ],
42172                                 [
42173                                     -82.417242,
42174                                     43.01731
42175                                 ],
42176                                 [
42177                                     -82.416369,
42178                                     43.01742
42179                                 ],
42180                                 [
42181                                     -82.416412,
42182                                     43.017143
42183                                 ],
42184                                 [
42185                                     -82.414603,
42186                                     42.983243
42187                                 ],
42188                                 [
42189                                     -82.430442,
42190                                     42.951307
42191                                 ],
42192                                 [
42193                                     -82.453179,
42194                                     42.918983
42195                                 ],
42196                                 [
42197                                     -82.464781,
42198                                     42.883637
42199                                 ],
42200                                 [
42201                                     -82.468036,
42202                                     42.863974
42203                                 ],
42204                                 [
42205                                     -82.482325,
42206                                     42.835113
42207                                 ],
42208                                 [
42209                                     -82.485271,
42210                                     42.818524
42211                                 ],
42212                                 [
42213                                     -82.473618,
42214                                     42.798164
42215                                 ],
42216                                 [
42217                                     -82.470982,
42218                                     42.790568
42219                                 ],
42220                                 [
42221                                     -82.471344,
42222                                     42.779845
42223                                 ],
42224                                 [
42225                                     -82.476951,
42226                                     42.761474
42227                                 ],
42228                                 [
42229                                     -82.48341,
42230                                     42.719254
42231                                 ],
42232                                 [
42233                                     -82.511264,
42234                                     42.646675
42235                                 ],
42236                                 [
42237                                     -82.526224,
42238                                     42.619906
42239                                 ],
42240                                 [
42241                                     -82.549246,
42242                                     42.590941
42243                                 ],
42244                                 [
42245                                     -82.575833,
42246                                     42.571795
42247                                 ],
42248                                 [
42249                                     -82.608467,
42250                                     42.561098
42251                                 ],
42252                                 [
42253                                     -82.644331,
42254                                     42.557817
42255                                 ],
42256                                 [
42257                                     -82.644698,
42258                                     42.557533
42259                                 ],
42260                                 [
42261                                     -82.644932,
42262                                     42.561634
42263                                 ],
42264                                 [
42265                                     -82.637132,
42266                                     42.568405
42267                                 ],
42268                                 [
42269                                     -82.60902,
42270                                     42.579296
42271                                 ],
42272                                 [
42273                                     -82.616673,
42274                                     42.582828
42275                                 ],
42276                                 [
42277                                     -82.636985,
42278                                     42.599607
42279                                 ],
42280                                 [
42281                                     -82.625357,
42282                                     42.616092
42283                                 ],
42284                                 [
42285                                     -82.629331,
42286                                     42.626394
42287                                 ],
42288                                 [
42289                                     -82.638751,
42290                                     42.633459
42291                                 ],
42292                                 [
42293                                     -82.644344,
42294                                     42.640524
42295                                 ],
42296                                 [
42297                                     -82.644166,
42298                                     42.641056
42299                                 ],
42300                                 [
42301                                     -82.716083,
42302                                     42.617461
42303                                 ],
42304                                 [
42305                                     -82.777592,
42306                                     42.408506
42307                                 ],
42308                                 [
42309                                     -82.888693,
42310                                     42.406093
42311                                 ],
42312                                 [
42313                                     -82.889991,
42314                                     42.403266
42315                                 ],
42316                                 [
42317                                     -82.905739,
42318                                     42.387665
42319                                 ],
42320                                 [
42321                                     -82.923842,
42322                                     42.374419
42323                                 ],
42324                                 [
42325                                     -82.937972,
42326                                     42.366176
42327                                 ],
42328                                 [
42329                                     -82.947686,
42330                                     42.363527
42331                                 ],
42332                                 [
42333                                     -82.979624,
42334                                     42.359406
42335                                 ],
42336                                 [
42337                                     -83.042618,
42338                                     42.340861
42339                                 ],
42340                                 [
42341                                     -83.061899,
42342                                     42.32732
42343                                 ],
42344                                 [
42345                                     -83.081622,
42346                                     42.30907
42347                                 ],
42348                                 [
42349                                     -83.11342,
42350                                     42.279619
42351                                 ],
42352                                 [
42353                                     -83.145306,
42354                                     42.066968
42355                                 ],
42356                                 [
42357                                     -83.177398,
42358                                     41.960666
42359                                 ],
42360                                 [
42361                                     -83.21512,
42362                                     41.794493
42363                                 ],
42364                                 [
42365                                     -82.219051,
42366                                     41.516445
42367                                 ],
42368                                 [
42369                                     -80.345329,
42370                                     42.13344
42371                                 ],
42372                                 [
42373                                     -80.316455,
42374                                     42.123137
42375                                 ],
42376                                 [
42377                                     -79.270266,
42378                                     42.591872
42379                                 ],
42380                                 [
42381                                     -79.221058,
42382                                     42.582892
42383                                 ],
42384                                 [
42385                                     -78.871842,
42386                                     42.860012
42387                                 ],
42388                                 [
42389                                     -78.875011,
42390                                     42.867184
42391                                 ],
42392                                 [
42393                                     -78.896205,
42394                                     42.897209
42395                                 ],
42396                                 [
42397                                     -78.901651,
42398                                     42.908101
42399                                 ],
42400                                 [
42401                                     -78.90901,
42402                                     42.952255
42403                                 ],
42404                                 [
42405                                     -78.913426,
42406                                     42.957848
42407                                 ],
42408                                 [
42409                                     -78.932118,
42410                                     42.9708
42411                                 ],
42412                                 [
42413                                     -78.936386,
42414                                     42.979631
42415                                 ],
42416                                 [
42417                                     -78.927997,
42418                                     43.002003
42419                                 ],
42420                                 [
42421                                     -78.893114,
42422                                     43.029379
42423                                 ],
42424                                 [
42425                                     -78.887963,
42426                                     43.051456
42427                                 ],
42428                                 [
42429                                     -78.914897,
42430                                     43.076477
42431                                 ],
42432                                 [
42433                                     -79.026167,
42434                                     43.086485
42435                                 ],
42436                                 [
42437                                     -79.065231,
42438                                     43.10573
42439                                 ],
42440                                 [
42441                                     -79.065273,
42442                                     43.105897
42443                                 ],
42444                                 [
42445                                     -79.065738,
42446                                     43.120237
42447                                 ],
42448                                 [
42449                                     -79.061423,
42450                                     43.130288
42451                                 ],
42452                                 [
42453                                     -79.055583,
42454                                     43.138427
42455                                 ],
42456                                 [
42457                                     -79.051604,
42458                                     43.146851
42459                                 ],
42460                                 [
42461                                     -79.04933,
42462                                     43.159847
42463                                 ],
42464                                 [
42465                                     -79.048607,
42466                                     43.170622
42467                                 ],
42468                                 [
42469                                     -79.053775,
42470                                     43.260358
42471                                 ],
42472                                 [
42473                                     -79.058425,
42474                                     43.277799
42475                                 ],
42476                                 [
42477                                     -79.058631,
42478                                     43.2782
42479                                 ],
42480                                 [
42481                                     -78.990696,
42482                                     43.286947
42483                                 ],
42484                                 [
42485                                     -78.862059,
42486                                     43.324332
42487                                 ],
42488                                 [
42489                                     -78.767813,
42490                                     43.336418
42491                                 ],
42492                                 [
42493                                     -78.516117,
42494                                     43.50645
42495                                 ],
42496                                 [
42497                                     -76.363317,
42498                                     43.943219
42499                                 ],
42500                                 [
42501                                     -76.396746,
42502                                     44.106667
42503                                 ],
42504                                 [
42505                                     -76.364697,
42506                                     44.111631
42507                                 ],
42508                                 [
42509                                     -76.366146,
42510                                     44.117349
42511                                 ],
42512                                 [
42513                                     -76.357462,
42514                                     44.131478
42515                                 ],
42516                                 [
42517                                     -76.183493,
42518                                     44.223025
42519                                 ],
42520                                 [
42521                                     -76.162644,
42522                                     44.229888
42523                                 ],
42524                                 [
42525                                     -76.176117,
42526                                     44.30795
42527                                 ],
42528                                 [
42529                                     -76.046414,
42530                                     44.354817
42531                                 ],
42532                                 [
42533                                     -75.928746,
42534                                     44.391137
42535                                 ],
42536                                 [
42537                                     -75.852508,
42538                                     44.381639
42539                                 ],
42540                                 [
42541                                     -75.849095,
42542                                     44.386103
42543                                 ],
42544                                 [
42545                                     -75.847623,
42546                                     44.392579
42547                                 ],
42548                                 [
42549                                     -75.84674,
42550                                     44.398172
42551                                 ],
42552                                 [
42553                                     -75.845415,
42554                                     44.40141
42555                                 ],
42556                                 [
42557                                     -75.780803,
42558                                     44.432318
42559                                 ],
42560                                 [
42561                                     -75.770205,
42562                                     44.446153
42563                                 ],
42564                                 [
42565                                     -75.772266,
42566                                     44.463815
42567                                 ],
42568                                 [
42569                                     -75.779184,
42570                                     44.48236
42571                                 ],
42572                                 [
42573                                     -75.791496,
42574                                     44.496513
42575                                 ],
42576                                 [
42577                                     -75.791183,
42578                                     44.496768
42579                                 ],
42580                                 [
42581                                     -75.754622,
42582                                     44.527567
42583                                 ],
42584                                 [
42585                                     -75.69969,
42586                                     44.581673
42587                                 ],
42588                                 [
42589                                     -75.578199,
42590                                     44.661513
42591                                 ],
42592                                 [
42593                                     -75.455958,
42594                                     44.741766
42595                                 ],
42596                                 [
42597                                     -75.341831,
42598                                     44.816749
42599                                 ],
42600                                 [
42601                                     -75.270233,
42602                                     44.863774
42603                                 ],
42604                                 [
42605                                     -75.129647,
42606                                     44.925166
42607                                 ],
42608                                 [
42609                                     -75.075594,
42610                                     44.935501
42611                                 ],
42612                                 [
42613                                     -75.058721,
42614                                     44.941031
42615                                 ],
42616                                 [
42617                                     -75.0149,
42618                                     44.96599
42619                                 ],
42620                                 [
42621                                     -74.998647,
42622                                     44.972398
42623                                 ],
42624                                 [
42625                                     -74.940201,
42626                                     44.987746
42627                                 ],
42628                                 [
42629                                     -74.903744,
42630                                     45.005213
42631                                 ],
42632                                 [
42633                                     -74.88651,
42634                                     45.009398
42635                                 ],
42636                                 [
42637                                     -74.868474,
42638                                     45.010122
42639                                 ],
42640                                 [
42641                                     -74.741557,
42642                                     44.998857
42643                                 ],
42644                                 [
42645                                     -74.712961,
42646                                     44.999254
42647                                 ],
42648                                 [
42649                                     -74.695875,
42650                                     44.99803
42651                                 ],
42652                                 [
42653                                     -74.596114,
42654                                     44.998495
42655                                 ],
42656                                 [
42657                                     -74.496352,
42658                                     44.999012
42659                                 ],
42660                                 [
42661                                     -74.197146,
42662                                     45.000458
42663                                 ],
42664                                 [
42665                                     -71.703551,
42666                                     45.012757
42667                                 ],
42668                                 [
42669                                     -71.603816,
42670                                     45.013274
42671                                 ],
42672                                 [
42673                                     -71.505848,
42674                                     45.013731
42675                                 ],
42676                                 [
42677                                     -71.50408,
42678                                     45.013739
42679                                 ],
42680                                 [
42681                                     -71.506613,
42682                                     45.037045
42683                                 ],
42684                                 [
42685                                     -71.504752,
42686                                     45.052962
42687                                 ],
42688                                 [
42689                                     -71.497259,
42690                                     45.066553
42691                                 ],
42692                                 [
42693                                     -71.45659,
42694                                     45.110994
42695                                 ],
42696                                 [
42697                                     -71.451215,
42698                                     45.121691
42699                                 ],
42700                                 [
42701                                     -71.445996,
42702                                     45.140295
42703                                 ],
42704                                 [
42705                                     -71.441604,
42706                                     45.150682
42707                                 ],
42708                                 [
42709                                     -71.413026,
42710                                     45.186184
42711                                 ],
42712                                 [
42713                                     -71.406567,
42714                                     45.204942
42715                                 ],
42716                                 [
42717                                     -71.42269,
42718                                     45.217189
42719                                 ],
42720                                 [
42721                                     -71.449045,
42722                                     45.226905
42723                                 ],
42724                                 [
42725                                     -71.438813,
42726                                     45.233468
42727                                 ],
42728                                 [
42729                                     -71.394888,
42730                                     45.241529
42731                                 ],
42732                                 [
42733                                     -71.381245,
42734                                     45.250779
42735                                 ],
42736                                 [
42737                                     -71.3521,
42738                                     45.278323
42739                                 ],
42740                                 [
42741                                     -71.334323,
42742                                     45.28871
42743                                 ],
42744                                 [
42745                                     -71.311534,
42746                                     45.294136
42747                                 ],
42748                                 [
42749                                     -71.293396,
42750                                     45.292327
42751                                 ],
42752                                 [
42753                                     -71.20937,
42754                                     45.254758
42755                                 ],
42756                                 [
42757                                     -71.185133,
42758                                     45.248557
42759                                 ],
42760                                 [
42761                                     -71.160329,
42762                                     45.245767
42763                                 ],
42764                                 [
42765                                     -71.141725,
42766                                     45.252329
42767                                 ],
42768                                 [
42769                                     -71.111029,
42770                                     45.287108
42771                                 ],
42772                                 [
42773                                     -71.095242,
42774                                     45.300905
42775                                 ],
42776                                 [
42777                                     -71.085553,
42778                                     45.304213
42779                                 ],
42780                                 [
42781                                     -71.084952,
42782                                     45.304293
42783                                 ],
42784                                 [
42785                                     -71.064211,
42786                                     45.307055
42787                                 ],
42788                                 [
42789                                     -71.054418,
42790                                     45.310362
42791                                 ],
42792                                 [
42793                                     -71.036667,
42794                                     45.323385
42795                                 ],
42796                                 [
42797                                     -71.027598,
42798                                     45.33465
42799                                 ],
42800                                 [
42801                                     -71.016539,
42802                                     45.343125
42803                                 ],
42804                                 [
42805                                     -70.993155,
42806                                     45.347827
42807                                 ],
42808                                 [
42809                                     -70.968118,
42810                                     45.34452
42811                                 ],
42812                                 [
42813                                     -70.951608,
42814                                     45.332014
42815                                 ],
42816                                 [
42817                                     -70.906908,
42818                                     45.246232
42819                                 ],
42820                                 [
42821                                     -70.892412,
42822                                     45.234604
42823                                 ],
42824                                 [
42825                                     -70.874351,
42826                                     45.245663
42827                                 ],
42828                                 [
42829                                     -70.870605,
42830                                     45.255275
42831                                 ],
42832                                 [
42833                                     -70.872491,
42834                                     45.274189
42835                                 ],
42836                                 [
42837                                     -70.870243,
42838                                     45.283129
42839                                 ],
42840                                 [
42841                                     -70.862621,
42842                                     45.290363
42843                                 ],
42844                                 [
42845                                     -70.842389,
42846                                     45.301215
42847                                 ],
42848                                 [
42849                                     -70.835258,
42850                                     45.309794
42851                                 ],
42852                                 [
42853                                     -70.83208,
42854                                     45.328552
42855                                 ],
42856                                 [
42857                                     -70.835465,
42858                                     45.373097
42859                                 ],
42860                                 [
42861                                     -70.833837,
42862                                     45.393096
42863                                 ],
42864                                 [
42865                                     -70.825982,
42866                                     45.410459
42867                                 ],
42868                                 [
42869                                     -70.812986,
42870                                     45.42343
42871                                 ],
42872                                 [
42873                                     -70.794873,
42874                                     45.430406
42875                                 ],
42876                                 [
42877                                     -70.771877,
42878                                     45.430045
42879                                 ],
42880                                 [
42881                                     -70.75255,
42882                                     45.422345
42883                                 ],
42884                                 [
42885                                     -70.718004,
42886                                     45.397282
42887                                 ],
42888                                 [
42889                                     -70.696739,
42890                                     45.388652
42891                                 ],
42892                                 [
42893                                     -70.675785,
42894                                     45.388704
42895                                 ],
42896                                 [
42897                                     -70.65359,
42898                                     45.395473
42899                                 ],
42900                                 [
42901                                     -70.641316,
42902                                     45.408496
42903                                 ],
42904                                 [
42905                                     -70.650257,
42906                                     45.427461
42907                                 ],
42908                                 [
42909                                     -70.668162,
42910                                     45.439036
42911                                 ],
42912                                 [
42913                                     -70.707385,
42914                                     45.4564
42915                                 ],
42916                                 [
42917                                     -70.722836,
42918                                     45.470921
42919                                 ],
42920                                 [
42921                                     -70.732009,
42922                                     45.491591
42923                                 ],
42924                                 [
42925                                     -70.730329,
42926                                     45.507973
42927                                 ],
42928                                 [
42929                                     -70.686792,
42930                                     45.572723
42931                                 ],
42932                                 [
42933                                     -70.589614,
42934                                     45.651788
42935                                 ],
42936                                 [
42937                                     -70.572406,
42938                                     45.662279
42939                                 ],
42940                                 [
42941                                     -70.514735,
42942                                     45.681709
42943                                 ],
42944                                 [
42945                                     -70.484763,
42946                                     45.699641
42947                                 ],
42948                                 [
42949                                     -70.4728,
42950                                     45.703568
42951                                 ],
42952                                 [
42953                                     -70.450424,
42954                                     45.703723
42955                                 ],
42956                                 [
42957                                     -70.439132,
42958                                     45.705893
42959                                 ],
42960                                 [
42961                                     -70.419315,
42962                                     45.716901
42963                                 ],
42964                                 [
42965                                     -70.407351,
42966                                     45.731525
42967                                 ],
42968                                 [
42969                                     -70.402442,
42970                                     45.749663
42971                                 ],
42972                                 [
42973                                     -70.403941,
42974                                     45.771161
42975                                 ],
42976                                 [
42977                                     -70.408282,
42978                                     45.781651
42979                                 ],
42980                                 [
42981                                     -70.413682,
42982                                     45.787697
42983                                 ],
42984                                 [
42985                                     -70.41717,
42986                                     45.793795
42987                                 ],
42988                                 [
42989                                     -70.415232,
42990                                     45.804389
42991                                 ],
42992                                 [
42993                                     -70.409935,
42994                                     45.810745
42995                                 ],
42996                                 [
42997                                     -70.389807,
42998                                     45.825059
42999                                 ],
43000                                 [
43001                                     -70.312654,
43002                                     45.867641
43003                                 ],
43004                                 [
43005                                     -70.283173,
43006                                     45.890482
43007                                 ],
43008                                 [
43009                                     -70.262528,
43010                                     45.923038
43011                                 ],
43012                                 [
43013                                     -70.255939,
43014                                     45.948876
43015                                 ],
43016                                 [
43017                                     -70.263148,
43018                                     45.956834
43019                                 ],
43020                                 [
43021                                     -70.280434,
43022                                     45.959315
43023                                 ],
43024                                 [
43025                                     -70.303947,
43026                                     45.968616
43027                                 ],
43028                                 [
43029                                     -70.316298,
43030                                     45.982982
43031                                 ],
43032                                 [
43033                                     -70.316892,
43034                                     45.999002
43035                                 ],
43036                                 [
43037                                     -70.306143,
43038                                     46.035331
43039                                 ],
43040                                 [
43041                                     -70.303637,
43042                                     46.038483
43043                                 ],
43044                                 [
43045                                     -70.294309,
43046                                     46.044943
43047                                 ],
43048                                 [
43049                                     -70.29201,
43050                                     46.048663
43051                                 ],
43052                                 [
43053                                     -70.293017,
43054                                     46.054038
43055                                 ],
43056                                 [
43057                                     -70.296092,
43058                                     46.057862
43059                                 ],
43060                                 [
43061                                     -70.300795,
43062                                     46.061737
43063                                 ],
43064                                 [
43065                                     -70.304774,
43066                                     46.065975
43067                                 ],
43068                                 [
43069                                     -70.311362,
43070                                     46.071866
43071                                 ],
43072                                 [
43073                                     -70.312629,
43074                                     46.079566
43075                                 ],
43076                                 [
43077                                     -70.30033,
43078                                     46.089281
43079                                 ],
43080                                 [
43081                                     -70.26444,
43082                                     46.106593
43083                                 ],
43084                                 [
43085                                     -70.24948,
43086                                     46.120597
43087                                 ],
43088                                 [
43089                                     -70.244002,
43090                                     46.141009
43091                                 ],
43092                                 [
43093                                     -70.249247,
43094                                     46.162765
43095                                 ],
43096                                 [
43097                                     -70.263329,
43098                                     46.183229
43099                                 ],
43100                                 [
43101                                     -70.284801,
43102                                     46.191859
43103                                 ],
43104                                 [
43105                                     -70.280899,
43106                                     46.211857
43107                                 ],
43108                                 [
43109                                     -70.253407,
43110                                     46.251493
43111                                 ],
43112                                 [
43113                                     -70.236173,
43114                                     46.288339
43115                                 ],
43116                                 [
43117                                     -70.223693,
43118                                     46.300793
43119                                 ],
43120                                 [
43121                                     -70.201886,
43122                                     46.305495
43123                                 ],
43124                                 [
43125                                     -70.199509,
43126                                     46.315262
43127                                 ],
43128                                 [
43129                                     -70.197028,
43130                                     46.336863
43131                                 ],
43132                                 [
43133                                     -70.188398,
43134                                     46.358412
43135                                 ],
43136                                 [
43137                                     -70.167418,
43138                                     46.368179
43139                                 ],
43140                                 [
43141                                     -70.153052,
43142                                     46.372829
43143                                 ],
43144                                 [
43145                                     -70.074323,
43146                                     46.419545
43147                                 ],
43148                                 [
43149                                     -70.061817,
43150                                     46.445409
43151                                 ],
43152                                 [
43153                                     -70.050086,
43154                                     46.511271
43155                                 ],
43156                                 [
43157                                     -70.032723,
43158                                     46.609766
43159                                 ],
43160                                 [
43161                                     -70.023628,
43162                                     46.661287
43163                                 ],
43164                                 [
43165                                     -70.007763,
43166                                     46.704075
43167                                 ],
43168                                 [
43169                                     -69.989961,
43170                                     46.721697
43171                                 ],
43172                                 [
43173                                     -69.899708,
43174                                     46.811562
43175                                 ],
43176                                 [
43177                                     -69.809403,
43178                                     46.901299
43179                                 ],
43180                                 [
43181                                     -69.719099,
43182                                     46.991086
43183                                 ],
43184                                 [
43185                                     -69.628794,
43186                                     47.080797
43187                                 ],
43188                                 [
43189                                     -69.538464,
43190                                     47.17061
43191                                 ],
43192                                 [
43193                                     -69.448159,
43194                                     47.260346
43195                                 ],
43196                                 [
43197                                     -69.357906,
43198                                     47.350134
43199                                 ],
43200                                 [
43201                                     -69.267628,
43202                                     47.439844
43203                                 ],
43204                                 [
43205                                     -69.25091,
43206                                     47.452919
43207                                 ],
43208                                 [
43209                                     -69.237268,
43210                                     47.45881
43211                                 ],
43212                                 [
43213                                     -69.221972,
43214                                     47.459688
43215                                 ],
43216                                 [
43217                                     -69.069655,
43218                                     47.431886
43219                                 ],
43220                                 [
43221                                     -69.054023,
43222                                     47.418399
43223                                 ],
43224                                 [
43225                                     -69.054333,
43226                                     47.389253
43227                                 ],
43228                                 [
43229                                     -69.066193,
43230                                     47.32967
43231                                 ],
43232                                 [
43233                                     -69.065134,
43234                                     47.296339
43235                                 ],
43236                                 [
43237                                     -69.06356,
43238                                     47.290809
43239                                 ],
43240                                 [
43241                                     -69.057486,
43242                                     47.269467
43243                                 ],
43244                                 [
43245                                     -69.0402,
43246                                     47.249055
43247                                 ],
43248                                 [
43249                                     -68.906229,
43250                                     47.190221
43251                                 ],
43252                                 [
43253                                     -68.889718,
43254                                     47.190609
43255                                 ],
43256                                 [
43257                                     -68.761819,
43258                                     47.23704
43259                                 ],
43260                                 [
43261                                     -68.71779,
43262                                     47.245231
43263                                 ],
43264                                 [
43265                                     -68.668801,
43266                                     47.243422
43267                                 ],
43268                                 [
43269                                     -68.644203,
43270                                     47.245283
43271                                 ],
43272                                 [
43273                                     -68.6256,
43274                                     47.255205
43275                                 ],
43276                                 [
43277                                     -68.607926,
43278                                     47.269829
43279                                 ],
43280                                 [
43281                                     -68.58524,
43282                                     47.28249
43283                                 ],
43284                                 [
43285                                     -68.539662,
43286                                     47.299853
43287                                 ],
43288                                 [
43289                                     -68.518009,
43290                                     47.304762
43291                                 ],
43292                                 [
43293                                     -68.492016,
43294                                     47.307553
43295                                 ],
43296                                 [
43297                                     -68.466746,
43298                                     47.305692
43299                                 ],
43300                                 [
43301                                     -68.435327,
43302                                     47.291275
43303                                 ],
43304                                 [
43305                                     -68.422563,
43306                                     47.293109
43307                                 ],
43308                                 [
43309                                     -68.410212,
43310                                     47.297424
43311                                 ],
43312                                 [
43313                                     -68.385614,
43314                                     47.301713
43315                                 ],
43316                                 [
43317                                     -68.383392,
43318                                     47.307139
43319                                 ],
43320                                 [
43321                                     -68.384839,
43322                                     47.315873
43323                                 ],
43324                                 [
43325                                     -68.382049,
43326                                     47.32781
43327                                 ],
43328                                 [
43329                                     -68.347839,
43330                                     47.358506
43331                                 ],
43332                                 [
43333                                     -68.299728,
43334                                     47.367833
43335                                 ],
43336                                 [
43337                                     -68.24645,
43338                                     47.360573
43339                                 ],
43340                                 [
43341                                     -68.197047,
43342                                     47.341401
43343                                 ],
43344                                 [
43345                                     -68.184335,
43346                                     47.333133
43347                                 ],
43348                                 [
43349                                     -68.156068,
43350                                     47.306674
43351                                 ],
43352                                 [
43353                                     -68.145061,
43354                                     47.301455
43355                                 ],
43356                                 [
43357                                     -68.115398,
43358                                     47.292282
43359                                 ],
43360                                 [
43361                                     -68.101446,
43362                                     47.286185
43363                                 ],
43364                                 [
43365                                     -68.039382,
43366                                     47.245231
43367                                 ],
43368                                 [
43369                                     -67.993184,
43370                                     47.223217
43371                                 ],
43372                                 [
43373                                     -67.962436,
43374                                     47.197689
43375                                 ],
43376                                 [
43377                                     -67.953703,
43378                                     47.18663
43379                                 ],
43380                                 [
43381                                     -67.949982,
43382                                     47.172936
43383                                 ],
43384                                 [
43385                                     -67.943419,
43386                                     47.164538
43387                                 ],
43388                                 [
43389                                     -67.899132,
43390                                     47.138778
43391                                 ],
43392                                 [
43393                                     -67.870607,
43394                                     47.107358
43395                                 ],
43396                                 [
43397                                     -67.854742,
43398                                     47.09785
43399                                 ],
43400                                 [
43401                                     -67.813556,
43402                                     47.081908
43403                                 ],
43404                                 [
43405                                     -67.808699,
43406                                     47.075138
43407                                 ],
43408                                 [
43409                                     -67.805185,
43410                                     47.035631
43411                                 ],
43412                                 [
43413                                     -67.802549,
43414                                     46.901247
43415                                 ],
43416                                 [
43417                                     -67.800017,
43418                                     46.766785
43419                                 ],
43420                                 [
43421                                     -67.797433,
43422                                     46.632297
43423                                 ],
43424                                 [
43425                                     -67.794849,
43426                                     46.497861
43427                                 ],
43428                                 [
43429                                     -67.792317,
43430                                     46.363476
43431                                 ],
43432                                 [
43433                                     -67.789733,
43434                                     46.229014
43435                                 ],
43436                                 [
43437                                     -67.78715,
43438                                     46.094552
43439                                 ],
43440                                 [
43441                                     -67.784566,
43442                                     45.960142
43443                                 ],
43444                                 [
43445                                     -67.782757,
43446                                     45.95053
43447                                 ],
43448                                 [
43449                                     -67.776556,
43450                                     45.942933
43451                                 ],
43452                                 [
43453                                     -67.767461,
43454                                     45.935957
43455                                 ],
43456                                 [
43457                                     -67.759658,
43458                                     45.928567
43459                                 ],
43460                                 [
43461                                     -67.757849,
43462                                     45.919472
43463                                 ],
43464                                 [
43465                                     -67.769425,
43466                                     45.903969
43467                                 ],
43468                                 [
43469                                     -67.787356,
43470                                     45.890017
43471                                 ],
43472                                 [
43473                                     -67.799242,
43474                                     45.875651
43475                                 ],
43476                                 [
43477                                     -67.792627,
43478                                     45.858907
43479                                 ],
43480                                 [
43481                                     -67.776091,
43482                                     45.840821
43483                                 ],
43484                                 [
43485                                     -67.772835,
43486                                     45.828057
43487                                 ],
43488                                 [
43489                                     -67.779863,
43490                                     45.815706
43491                                 ],
43492                                 [
43493                                     -67.794126,
43494                                     45.799169
43495                                 ],
43496                                 [
43497                                     -67.80627,
43498                                     45.781754
43499                                 ],
43500                                 [
43501                                     -67.811127,
43502                                     45.76651
43503                                 ],
43504                                 [
43505                                     -67.810816,
43506                                     45.762414
43507                                 ],
43508                                 [
43509                                     -67.817811,
43510                                     45.754896
43511                                 ],
43512                                 [
43513                                     -67.821785,
43514                                     45.740767
43515                                 ],
43516                                 [
43517                                     -67.827673,
43518                                     45.739001
43519                                 ],
43520                                 [
43521                                     -67.868884,
43522                                     45.744593
43523                                 ],
43524                                 [
43525                                     -67.856815,
43526                                     45.723694
43527                                 ],
43528                                 [
43529                                     -67.835768,
43530                                     45.703971
43531                                 ],
43532                                 [
43533                                     -67.793821,
43534                                     45.676301
43535                                 ],
43536                                 [
43537                                     -67.733034,
43538                                     45.651869
43539                                 ],
43540                                 [
43541                                     -67.723173,
43542                                     45.645393
43543                                 ],
43544                                 [
43545                                     -67.711546,
43546                                     45.642155
43547                                 ],
43548                                 [
43549                                     -67.697564,
43550                                     45.64922
43551                                 ],
43552                                 [
43553                                     -67.66695,
43554                                     45.620077
43555                                 ],
43556                                 [
43557                                     -67.649435,
43558                                     45.611247
43559                                 ],
43560                                 [
43561                                     -67.603073,
43562                                     45.605948
43563                                 ],
43564                                 [
43565                                     -67.561862,
43566                                     45.596234
43567                                 ],
43568                                 [
43569                                     -67.54052,
43570                                     45.593879
43571                                 ],
43572                                 [
43573                                     -67.442056,
43574                                     45.603593
43575                                 ],
43576                                 [
43577                                     -67.440939,
43578                                     45.604586
43579                                 ],
43580                                 [
43581                                     -67.431306,
43582                                     45.597941
43583                                 ],
43584                                 [
43585                                     -67.422107,
43586                                     45.568796
43587                                 ],
43588                                 [
43589                                     -67.42619,
43590                                     45.533449
43591                                 ],
43592                                 [
43593                                     -67.443036,
43594                                     45.522184
43595                                 ],
43596                                 [
43597                                     -67.467531,
43598                                     45.508283
43599                                 ],
43600                                 [
43601                                     -67.493214,
43602                                     45.493142
43603                                 ],
43604                                 [
43605                                     -67.48231,
43606                                     45.455521
43607                                 ],
43608                                 [
43609                                     -67.428825,
43610                                     45.38705
43611                                 ],
43612                                 [
43613                                     -67.434561,
43614                                     45.350308
43615                                 ],
43616                                 [
43617                                     -67.459056,
43618                                     45.318424
43619                                 ],
43620                                 [
43621                                     -67.468668,
43622                                     45.301835
43623                                 ],
43624                                 [
43625                                     -67.475024,
43626                                     45.282353
43627                                 ],
43628                                 [
43629                                     -67.471303,
43630                                     45.266282
43631                                 ],
43632                                 [
43633                                     -67.427585,
43634                                     45.236568
43635                                 ],
43636                                 [
43637                                     -67.390533,
43638                                     45.193108
43639                                 ],
43640                                 [
43641                                     -67.356272,
43642                                     45.165926
43643                                 ],
43644                                 [
43645                                     -67.31922,
43646                                     45.153886
43647                                 ],
43648                                 [
43649                                     -67.284648,
43650                                     45.169699
43651                                 ],
43652                                 [
43653                                     -67.279584,
43654                                     45.179052
43655                                 ],
43656                                 [
43657                                     -67.279222,
43658                                     45.187372
43659                                 ],
43660                                 [
43661                                     -67.277207,
43662                                     45.195072
43663                                 ],
43664                                 [
43665                                     -67.267336,
43666                                     45.202513
43667                                 ],
43668                                 [
43669                                     -67.254986,
43670                                     45.205045
43671                                 ],
43672                                 [
43673                                     -67.242428,
43674                                     45.202565
43675                                 ],
43676                                 [
43677                                     -67.219071,
43678                                     45.192126
43679                                 ],
43680                                 [
43681                                     -67.206166,
43682                                     45.189401
43683                                 ],
43684                                 [
43685                                     -67.176015,
43686                                     45.178656
43687                                 ],
43688                                 [
43689                                     -67.191274,
43690                                     45.180365
43691                                 ],
43692                                 [
43693                                     -67.204376,
43694                                     45.178209
43695                                 ],
43696                                 [
43697                                     -67.204724,
43698                                     45.177791
43699                                 ],
43700                                 [
43701                                     -67.152423,
43702                                     45.148932
43703                                 ],
43704                                 [
43705                                     -67.048033,
43706                                     45.043407
43707                                 ],
43708                                 [
43709                                     -66.962727,
43710                                     45.047088
43711                                 ],
43712                                 [
43713                                     -66.857192,
43714                                     44.968696
43715                                 ],
43716                                 [
43717                                     -66.897268,
43718                                     44.817275
43719                                 ],
43720                                 [
43721                                     -67.2159,
43722                                     44.593511
43723                                 ],
43724                                 [
43725                                     -67.122366,
43726                                     44.423624
43727                                 ],
43728                                 [
43729                                     -67.68447,
43730                                     44.192544
43731                                 ],
43732                                 [
43733                                     -67.459678,
43734                                     40.781645
43735                                 ],
43736                                 [
43737                                     -76.607854,
43738                                     32.495823
43739                                 ],
43740                                 [
43741                                     -76.798479,
43742                                     32.713735
43743                                 ],
43744                                 [
43745                                     -78.561892,
43746                                     29.037718
43747                                 ],
43748                                 [
43749                                     -78.892446,
43750                                     29.039659
43751                                 ],
43752                                 [
43753                                     -79.762295,
43754                                     26.719312
43755                                 ],
43756                                 [
43757                                     -80.026352,
43758                                     24.932961
43759                                 ],
43760                                 [
43761                                     -82.368794,
43762                                     23.994833
43763                                 ],
43764                                 [
43765                                     -83.806281,
43766                                     29.068506
43767                                 ],
43768                                 [
43769                                     -87.460772,
43770                                     29.089961
43771                                 ],
43772                                 [
43773                                     -87.922646,
43774                                     28.666131
43775                                 ],
43776                                 [
43777                                     -90.461001,
43778                                     28.246758
43779                                 ],
43780                                 [
43781                                     -91.787336,
43782                                     29.11536
43783                                 ],
43784                                 [
43785                                     -93.311871,
43786                                     29.12431
43787                                 ],
43788                                 [
43789                                     -96.423449,
43790                                     26.057857
43791                                 ],
43792                                 [
43793                                     -97.129057,
43794                                     25.991017
43795                                 ],
43796                                 [
43797                                     -97.129509,
43798                                     25.966833
43799                                 ],
43800                                 [
43801                                     -97.139358,
43802                                     25.965876
43803                                 ],
43804                                 [
43805                                     -97.202171,
43806                                     25.960893
43807                                 ],
43808                                 [
43809                                     -97.202176,
43810                                     25.960857
43811                                 ],
43812                                 [
43813                                     -97.204941,
43814                                     25.960639
43815                                 ],
43816                                 [
43817                                     -97.253051,
43818                                     25.963481
43819                                 ],
43820                                 [
43821                                     -97.266358,
43822                                     25.960639
43823                                 ],
43824                                 [
43825                                     -97.2692,
43826                                     25.944361
43827                                 ],
43828                                 [
43829                                     -97.287649,
43830                                     25.928651
43831                                 ],
43832                                 [
43833                                     -97.310981,
43834                                     25.922088
43835                                 ],
43836                                 [
43837                                     -97.328447,
43838                                     25.933302
43839                                 ],
43840                                 [
43841                                     -97.351107,
43842                                     25.918419
43843                                 ],
43844                                 [
43845                                     -97.355112,
43846                                     25.912786
43847                                 ],
43848                                 [
43849                                     -97.35227,
43850                                     25.894493
43851                                 ],
43852                                 [
43853                                     -97.345165,
43854                                     25.871704
43855                                 ],
43856                                 [
43857                                     -97.345733,
43858                                     25.852222
43859                                 ],
43860                                 [
43861                                     -97.36599,
43862                                     25.843902
43863                                 ],
43864                                 [
43865                                     -97.376015,
43866                                     25.846744
43867                                 ],
43868                                 [
43869                                     -97.380124,
43870                                     25.853203
43871                                 ],
43872                                 [
43873                                     -97.383121,
43874                                     25.860541
43875                                 ],
43876                                 [
43877                                     -97.389891,
43878                                     25.865657
43879                                 ],
43880                                 [
43881                                     -97.397823,
43882                                     25.865812
43883                                 ],
43884                                 [
43885                                     -97.399476,
43886                                     25.861162
43887                                 ],
43888                                 [
43889                                     -97.39989,
43890                                     25.855115
43891                                 ],
43892                                 [
43893                                     -97.404179,
43894                                     25.851395
43895                                 ],
43896                                 [
43897                                     -97.425418,
43898                                     25.854857
43899                                 ],
43900                                 [
43901                                     -97.435727,
43902                                     25.869275
43903                                 ],
43904                                 [
43905                                     -97.441309,
43906                                     25.884933
43907                                 ],
43908                                 [
43909                                     -97.448259,
43910                                     25.892322
43911                                 ],
43912                                 [
43913                                     -97.469421,
43914                                     25.892943
43915                                 ],
43916                                 [
43917                                     -97.486319,
43918                                     25.895733
43919                                 ],
43920                                 [
43921                                     -97.502209,
43922                                     25.901883
43923                                 ],
43924                                 [
43925                                     -97.52027,
43926                                     25.912786
43927                                 ],
43928                                 [
43929                                     -97.565177,
43930                                     25.954748
43931                                 ],
43932                                 [
43933                                     -97.594322,
43934                                     25.966375
43935                                 ],
43936                                 [
43937                                     -97.604787,
43938                                     25.979966
43939                                 ],
43940                                 [
43941                                     -97.613055,
43942                                     25.995985
43943                                 ],
43944                                 [
43945                                     -97.622641,
43946                                     26.00906
43947                                 ],
43948                                 [
43949                                     -97.641451,
43950                                     26.022495
43951                                 ],
43952                                 [
43953                                     -97.659874,
43954                                     26.03066
43955                                 ],
43956                                 [
43957                                     -97.679614,
43958                                     26.034639
43959                                 ],
43960                                 [
43961                                     -97.766948,
43962                                     26.039652
43963                                 ],
43964                                 [
43965                                     -97.780306,
43966                                     26.043218
43967                                 ],
43968                                 [
43969                                     -97.782321,
43970                                     26.058617
43971                                 ],
43972                                 [
43973                                     -97.80201,
43974                                     26.063733
43975                                 ],
43976                                 [
43977                                     -97.878181,
43978                                     26.063733
43979                                 ],
43980                                 [
43981                                     -97.941666,
43982                                     26.056809
43983                                 ],
43984                                 [
43985                                     -97.999233,
43986                                     26.064302
43987                                 ],
43988                                 [
43989                                     -98.013057,
43990                                     26.063682
43991                                 ],
43992                                 [
43993                                     -98.044166,
43994                                     26.048799
43995                                 ],
43996                                 [
43997                                     -98.065457,
43998                                     26.042184
43999                                 ],
44000                                 [
44001                                     -98.075146,
44002                                     26.046628
44003                                 ],
44004                                 [
44005                                     -98.083311,
44006                                     26.070916
44007                                 ],
44008                                 [
44009                                     -98.103103,
44010                                     26.074947
44011                                 ],
44012                                 [
44013                                     -98.150232,
44014                                     26.063682
44015                                 ],
44016                                 [
44017                                     -98.185062,
44018                                     26.065232
44019                                 ],
44020                                 [
44021                                     -98.222656,
44022                                     26.075412
44023                                 ],
44024                                 [
44025                                     -98.300429,
44026                                     26.111431
44027                                 ],
44028                                 [
44029                                     -98.309809,
44030                                     26.121094
44031                                 ],
44032                                 [
44033                                     -98.333037,
44034                                     26.15303
44035                                 ],
44036                                 [
44037                                     -98.339264,
44038                                     26.159851
44039                                 ],
44040                                 [
44041                                     -98.365774,
44042                                     26.160161
44043                                 ],
44044                                 [
44045                                     -98.377272,
44046                                     26.163572
44047                                 ],
44048                                 [
44049                                     -98.377272,
44050                                     26.173649
44051                                 ],
44052                                 [
44053                                     -98.36934,
44054                                     26.19401
44055                                 ],
44056                                 [
44057                                     -98.397193,
44058                                     26.201141
44059                                 ],
44060                                 [
44061                                     -98.428845,
44062                                     26.217729
44063                                 ],
44064                                 [
44065                                     -98.456544,
44066                                     26.225946
44067                                 ],
44068                                 [
44069                                     -98.472383,
44070                                     26.207652
44071                                 ],
44072                                 [
44073                                     -98.49295,
44074                                     26.230596
44075                                 ],
44076                                 [
44077                                     -98.521527,
44078                                     26.240932
44079                                 ],
44080                                 [
44081                                     -98.552791,
44082                                     26.248321
44083                                 ],
44084                                 [
44085                                     -98.581627,
44086                                     26.262274
44087                                 ],
44088                                 [
44089                                     -98.640564,
44090                                     26.24181
44091                                 ],
44092                                 [
44093                                     -98.653663,
44094                                     26.244291
44095                                 ],
44096                                 [
44097                                     -98.664696,
44098                                     26.250647
44099                                 ],
44100                                 [
44101                                     -98.685289,
44102                                     26.268475
44103                                 ],
44104                                 [
44105                                     -98.693325,
44106                                     26.270542
44107                                 ],
44108                                 [
44109                                     -98.702239,
44110                                     26.271628
44111                                 ],
44112                                 [
44113                                     -98.704255,
44114                                     26.27664
44115                                 ],
44116                                 [
44117                                     -98.691465,
44118                                     26.290231
44119                                 ],
44120                                 [
44121                                     -98.701413,
44122                                     26.299119
44123                                 ],
44124                                 [
44125                                     -98.713169,
44126                                     26.303357
44127                                 ],
44128                                 [
44129                                     -98.726217,
44130                                     26.30439
44131                                 ],
44132                                 [
44133                                     -98.739911,
44134                                     26.303253
44135                                 ],
44136                                 [
44137                                     -98.735932,
44138                                     26.320048
44139                                 ],
44140                                 [
44141                                     -98.746397,
44142                                     26.332141
44143                                 ],
44144                                 [
44145                                     -98.780839,
44146                                     26.351674
44147                                 ],
44148                                 [
44149                                     -98.795851,
44150                                     26.368314
44151                                 ],
44152                                 [
44153                                     -98.801329,
44154                                     26.372138
44155                                 ],
44156                                 [
44157                                     -98.810295,
44158                                     26.372448
44159                                 ],
44160                                 [
44161                                     -98.817323,
44162                                     26.368521
44163                                 ],
44164                                 [
44165                                     -98.825023,
44166                                     26.366454
44167                                 ],
44168                                 [
44169                                     -98.836081,
44170                                     26.372138
44171                                 ],
44172                                 [
44173                                     -98.842334,
44174                                     26.365834
44175                                 ],
44176                                 [
44177                                     -98.850835,
44178                                     26.364077
44179                                 ],
44180                                 [
44181                                     -98.860524,
44182                                     26.366299
44183                                 ],
44184                                 [
44185                                     -98.870214,
44186                                     26.372138
44187                                 ],
44188                                 [
44189                                     -98.893029,
44190                                     26.367849
44191                                 ],
44192                                 [
44193                                     -98.9299,
44194                                     26.39224
44195                                 ],
44196                                 [
44197                                     -98.945377,
44198                                     26.378288
44199                                 ],
44200                                 [
44201                                     -98.954136,
44202                                     26.393946
44203                                 ],
44204                                 [
44205                                     -98.962844,
44206                                     26.399527
44207                                 ],
44208                                 [
44209                                     -98.986951,
44210                                     26.400095
44211                                 ],
44212                                 [
44213                                     -99.004056,
44214                                     26.393842
44215                                 ],
44216                                 [
44217                                     -99.010515,
44218                                     26.392602
44219                                 ],
44220                                 [
44221                                     -99.016432,
44222                                     26.394462
44223                                 ],
44224                                 [
44225                                     -99.022995,
44226                                     26.403351
44227                                 ],
44228                                 [
44229                                     -99.027878,
44230                                     26.406245
44231                                 ],
44232                                 [
44233                                     -99.047645,
44234                                     26.406968
44235                                 ],
44236                                 [
44237                                     -99.066351,
44238                                     26.404746
44239                                 ],
44240                                 [
44241                                     -99.085498,
44242                                     26.40764
44243                                 ],
44244                                 [
44245                                     -99.106427,
44246                                     26.423039
44247                                 ],
44248                                 [
44249                                     -99.108907,
44250                                     26.434253
44251                                 ],
44252                                 [
44253                                     -99.102525,
44254                                     26.446966
44255                                 ],
44256                                 [
44257                                     -99.09374,
44258                                     26.459781
44259                                 ],
44260                                 [
44261                                     -99.089373,
44262                                     26.47115
44263                                 ],
44264                                 [
44265                                     -99.091492,
44266                                     26.484018
44267                                 ],
44268                                 [
44269                                     -99.10299,
44270                                     26.512078
44271                                 ],
44272                                 [
44273                                     -99.115108,
44274                                     26.525617
44275                                 ],
44276                                 [
44277                                     -99.140946,
44278                                     26.531405
44279                                 ],
44280                                 [
44281                                     -99.164873,
44282                                     26.540448
44283                                 ],
44284                                 [
44285                                     -99.17128,
44286                                     26.563961
44287                                 ],
44288                                 [
44289                                     -99.171548,
44290                                     26.56583
44291                                 ],
44292                                 [
44293                                     -99.213953,
44294                                     26.568537
44295                                 ],
44296                                 [
44297                                     -99.242801,
44298                                     26.579723
44299                                 ],
44300                                 [
44301                                     -99.254575,
44302                                     26.6018
44303                                 ],
44304                                 [
44305                                     -99.258844,
44306                                     26.614752
44307                                 ],
44308                                 [
44309                                     -99.277683,
44310                                     26.638007
44311                                 ],
44312                                 [
44313                                     -99.281951,
44314                                     26.649781
44315                                 ],
44316                                 [
44317                                     -99.277389,
44318                                     26.657729
44319                                 ],
44320                                 [
44321                                     -99.26635,
44322                                     26.653314
44323                                 ],
44324                                 [
44325                                     -99.252662,
44326                                     26.644483
44327                                 ],
44328                                 [
44329                                     -99.240299,
44330                                     26.639184
44331                                 ],
44332                                 [
44333                                     -99.244861,
44334                                     26.652431
44335                                 ],
44336                                 [
44337                                     -99.240299,
44338                                     26.697763
44339                                 ],
44340                                 [
44341                                     -99.242507,
44342                                     26.713658
44343                                 ],
44344                                 [
44345                                     -99.252368,
44346                                     26.743683
44347                                 ],
44348                                 [
44349                                     -99.254575,
44350                                     26.75899
44351                                 ],
44352                                 [
44353                                     -99.252368,
44354                                     26.799024
44355                                 ],
44356                                 [
44357                                     -99.254575,
44358                                     26.810504
44359                                 ],
44360                                 [
44361                                     -99.257666,
44362                                     26.813153
44363                                 ],
44364                                 [
44365                                     -99.262229,
44366                                     26.814036
44367                                 ],
44368                                 [
44369                                     -99.266497,
44370                                     26.817863
44371                                 ],
44372                                 [
44373                                     -99.268263,
44374                                     26.827872
44375                                 ],
44376                                 [
44377                                     -99.271649,
44378                                     26.832876
44379                                 ],
44380                                 [
44381                                     -99.289458,
44382                                     26.84465
44383                                 ],
44384                                 [
44385                                     -99.308444,
44386                                     26.830521
44387                                 ],
44388                                 [
44389                                     -99.316539,
44390                                     26.822279
44391                                 ],
44392                                 [
44393                                     -99.323457,
44394                                     26.810504
44395                                 ],
44396                                 [
44397                                     -99.328166,
44398                                     26.797258
44399                                 ],
44400                                 [
44401                                     -99.329197,
44402                                     26.789016
44403                                 ],
44404                                 [
44405                                     -99.331699,
44406                                     26.78254
44407                                 ],
44408                                 [
44409                                     -99.340383,
44410                                     26.77312
44411                                 ],
44412                                 [
44413                                     -99.366728,
44414                                     26.761345
44415                                 ],
44416                                 [
44417                                     -99.380269,
44418                                     26.777241
44419                                 ],
44420                                 [
44421                                     -99.391896,
44422                                     26.796963
44423                                 ],
44424                                 [
44425                                     -99.412207,
44426                                     26.796963
44427                                 ],
44428                                 [
44429                                     -99.410883,
44430                                     26.808149
44431                                 ],
44432                                 [
44433                                     -99.405437,
44434                                     26.818452
44435                                 ],
44436                                 [
44437                                     -99.396606,
44438                                     26.824928
44439                                 ],
44440                                 [
44441                                     -99.384979,
44442                                     26.824928
44443                                 ],
44444                                 [
44445                                     -99.377178,
44446                                     26.816686
44447                                 ],
44448                                 [
44449                                     -99.374823,
44450                                     26.804028
44451                                 ],
44452                                 [
44453                                     -99.374234,
44454                                     26.791076
44455                                 ],
44456                                 [
44457                                     -99.371291,
44458                                     26.783128
44459                                 ],
44460                                 [
44461                                     -99.360694,
44462                                     26.780479
44463                                 ],
44464                                 [
44465                                     -99.359369,
44466                                     26.790487
44467                                 ],
44468                                 [
44469                                     -99.36452,
44470                                     26.810504
44471                                 ],
44472                                 [
44473                                     -99.357897,
44474                                     26.822279
44475                                 ],
44476                                 [
44477                                     -99.351274,
44478                                     26.83111
44479                                 ],
44480                                 [
44481                                     -99.346123,
44482                                     26.840824
44483                                 ],
44484                                 [
44485                                     -99.344062,
44486                                     26.855247
44487                                 ],
44488                                 [
44489                                     -99.348772,
44490                                     26.899696
44491                                 ],
44492                                 [
44493                                     -99.355101,
44494                                     26.920302
44495                                 ],
44496                                 [
44497                                     -99.36452,
44498                                     26.934726
44499                                 ],
44500                                 [
44501                                     -99.403377,
44502                                     26.952093
44503                                 ],
44504                                 [
44505                                     -99.413974,
44506                                     26.964162
44507                                 ],
44508                                 [
44509                                     -99.401758,
44510                                     26.985651
44511                                 ],
44512                                 [
44513                                     -99.399991,
44514                                     26.999192
44515                                 ],
44516                                 [
44517                                     -99.418831,
44518                                     27.007728
44519                                 ],
44520                                 [
44521                                     -99.441938,
44522                                     27.013615
44523                                 ],
44524                                 [
44525                                     -99.453271,
44526                                     27.019797
44527                                 ],
44528                                 [
44529                                     -99.455332,
44530                                     27.025979
44531                                 ],
44532                                 [
44533                                     -99.464751,
44534                                     27.039225
44535                                 ],
44536                                 [
44537                                     -99.466959,
44538                                     27.047467
44539                                 ],
44540                                 [
44541                                     -99.462544,
44542                                     27.057181
44543                                 ],
44544                                 [
44545                                     -99.461635,
44546                                     27.056839
44547                                 ],
44548                                 [
44549                                     -99.461728,
44550                                     27.056954
44551                                 ],
44552                                 [
44553                                     -99.442039,
44554                                     27.089614
44555                                 ],
44556                                 [
44557                                     -99.439404,
44558                                     27.098347
44559                                 ],
44560                                 [
44561                                     -99.441419,
44562                                     27.107494
44563                                 ],
44564                                 [
44565                                     -99.445734,
44566                                     27.114728
44567                                 ],
44568                                 [
44569                                     -99.450178,
44570                                     27.120465
44571                                 ],
44572                                 [
44573                                     -99.452452,
44574                                     27.125012
44575                                 ],
44576                                 [
44577                                     -99.450333,
44578                                     27.145166
44579                                 ],
44580                                 [
44581                                     -99.435786,
44582                                     27.188419
44583                                 ],
44584                                 [
44585                                     -99.431988,
44586                                     27.207591
44587                                 ],
44588                                 [
44589                                     -99.434029,
44590                                     27.22697
44591                                 ],
44592                                 [
44593                                     -99.440902,
44594                                     27.244798
44595                                 ],
44596                                 [
44597                                     -99.451832,
44598                                     27.26118
44599                                 ],
44600                                 [
44601                                     -99.46612,
44602                                     27.276527
44603                                 ],
44604                                 [
44605                                     -99.468963,
44606                                     27.278233
44607                                 ],
44608                                 [
44609                                     -99.480409,
44610                                     27.283297
44611                                 ],
44612                                 [
44613                                     -99.482941,
44614                                     27.286708
44615                                 ],
44616                                 [
44617                                     -99.484879,
44618                                     27.294821
44619                                 ],
44620                                 [
44621                                     -99.486584,
44622                                     27.297611
44623                                 ],
44624                                 [
44625                                     -99.493199,
44626                                     27.30128
44627                                 ],
44628                                 [
44629                                     -99.521362,
44630                                     27.311254
44631                                 ],
44632                                 [
44633                                     -99.5148,
44634                                     27.321796
44635                                 ],
44636                                 [
44637                                     -99.497591,
44638                                     27.338798
44639                                 ],
44640                                 [
44641                                     -99.494026,
44642                                     27.348203
44643                                 ],
44644                                 [
44645                                     -99.492889,
44646                                     27.358848
44647                                 ],
44648                                 [
44649                                     -99.487721,
44650                                     27.37187
44651                                 ],
44652                                 [
44653                                     -99.484621,
44654                                     27.391766
44655                                 ],
44656                                 [
44657                                     -99.475706,
44658                                     27.414762
44659                                 ],
44660                                 [
44661                                     -99.472916,
44662                                     27.426647
44663                                 ],
44664                                 [
44665                                     -99.473639,
44666                                     27.463803
44667                                 ],
44668                                 [
44669                                     -99.472916,
44670                                     27.468299
44671                                 ],
44672                                 [
44673                                     -99.47643,
44674                                     27.48251
44675                                 ],
44676                                 [
44677                                     -99.480409,
44678                                     27.490778
44679                                 ],
44680                                 [
44681                                     -99.48829,
44682                                     27.494654
44683                                 ],
44684                                 [
44685                                     -99.503689,
44686                                     27.495584
44687                                 ],
44688                                 [
44689                                     -99.509503,
44690                                     27.500028
44691                                 ],
44692                                 [
44693                                     -99.510071,
44694                                     27.510518
44695                                 ],
44696                                 [
44697                                     -99.507074,
44698                                     27.533437
44699                                 ],
44700                                 [
44701                                     -99.507203,
44702                                     27.57377
44703                                 ],
44704                                 [
44705                                     -99.515006,
44706                                     27.588601
44707                                 ],
44708                                 [
44709                                     -99.535031,
44710                                     27.604828
44711                                 ],
44712                                 [
44713                                     -99.55503,
44714                                     27.613509
44715                                 ],
44716                                 [
44717                                     -99.572264,
44718                                     27.61847
44719                                 ],
44720                                 [
44721                                     -99.578232,
44722                                     27.622811
44723                                 ],
44724                                 [
44725                                     -99.590247,
44726                                     27.642061
44727                                 ],
44728                                 [
44729                                     -99.600169,
44730                                     27.646427
44731                                 ],
44732                                 [
44733                                     -99.612442,
44734                                     27.643637
44735                                 ],
44736                                 [
44737                                     -99.633526,
44738                                     27.633069
44739                                 ],
44740                                 [
44741                                     -99.644869,
44742                                     27.632733
44743                                 ],
44744                                 [
44745                                     -99.648642,
44746                                     27.636919
44747                                 ],
44748                                 [
44749                                     -99.658693,
44750                                     27.654024
44751                                 ],
44752                                 [
44753                                     -99.664739,
44754                                     27.659398
44755                                 ],
44756                                 [
44757                                     -99.70037,
44758                                     27.659191
44759                                 ],
44760                                 [
44761                                     -99.705692,
44762                                     27.66317
44763                                 ],
44764                                 [
44765                                     -99.710674,
44766                                     27.670116
44767                                 ],
44768                                 [
44769                                     -99.723056,
44770                                     27.687381
44771                                 ],
44772                                 [
44773                                     -99.730652,
44774                                     27.691825
44775                                 ],
44776                                 [
44777                                     -99.734037,
44778                                     27.702031
44779                                 ],
44780                                 [
44781                                     -99.736311,
44782                                     27.713607
44783                                 ],
44784                                 [
44785                                     -99.740445,
44786                                     27.722159
44787                                 ],
44788                                 [
44789                                     -99.747344,
44790                                     27.726009
44791                                 ],
44792                                 [
44793                                     -99.765198,
44794                                     27.731177
44795                                 ],
44796                                 [
44797                                     -99.774577,
44798                                     27.735828
44799                                 ],
44800                                 [
44801                                     -99.78685,
44802                                     27.748488
44803                                 ],
44804                                 [
44805                                     -99.795428,
44806                                     27.761924
44807                                 ],
44808                                 [
44809                                     -99.806963,
44810                                     27.771423
44811                                 ],
44812                                 [
44813                                     -99.808167,
44814                                     27.772414
44815                                 ],
44816                                 [
44817                                     -99.83292,
44818                                     27.776755
44819                                 ],
44820                                 [
44821                                     -99.832971,
44822                                     27.782181
44823                                 ],
44824                                 [
44825                                     -99.844779,
44826                                     27.793576
44827                                 ],
44828                                 [
44829                                     -99.858241,
44830                                     27.803524
44831                                 ],
44832                                 [
44833                                     -99.863357,
44834                                     27.804661
44835                                 ],
44836                                 [
44837                                     -99.864727,
44838                                     27.814324
44839                                 ],
44840                                 [
44841                                     -99.861858,
44842                                     27.83608
44843                                 ],
44844                                 [
44845                                     -99.863357,
44846                                     27.845666
44847                                 ],
44848                                 [
44849                                     -99.870928,
44850                                     27.854477
44851                                 ],
44852                                 [
44853                                     -99.880204,
44854                                     27.859231
44855                                 ],
44856                                 [
44857                                     -99.888007,
44858                                     27.864812
44859                                 ],
44860                                 [
44861                                     -99.891288,
44862                                     27.876026
44863                                 ],
44864                                 [
44865                                     -99.882684,
44866                                     27.89158
44867                                 ],
44868                                 [
44869                                     -99.878808,
44870                                     27.901838
44871                                 ],
44872                                 [
44873                                     -99.88134,
44874                                     27.906463
44875                                 ],
44876                                 [
44877                                     -99.896766,
44878                                     27.912923
44879                                 ],
44880                                 [
44881                                     -99.914336,
44882                                     27.928245
44883                                 ],
44884                                 [
44885                                     -99.929916,
44886                                     27.946331
44887                                 ],
44888                                 [
44889                                     -99.939683,
44890                                     27.961085
44891                                 ],
44892                                 [
44893                                     -99.928289,
44894                                     27.975761
44895                                 ],
44896                                 [
44897                                     -99.940717,
44898                                     27.983254
44899                                 ],
44900                                 [
44901                                     -99.961852,
44902                                     27.987492
44903                                 ],
44904                                 [
44905                                     -99.976606,
44906                                     27.992453
44907                                 ],
44908                                 [
44909                                     -99.991127,
44910                                     28.007801
44911                                 ],
44912                                 [
44913                                     -100.000584,
44914                                     28.02041
44915                                 ],
44916                                 [
44917                                     -100.007457,
44918                                     28.033561
44919                                 ],
44920                                 [
44921                                     -100.014123,
44922                                     28.050459
44923                                 ],
44924                                 [
44925                                     -100.013503,
44926                                     28.056971
44927                                 ],
44928                                 [
44929                                     -100.010506,
44930                                     28.063611
44931                                 ],
44932                                 [
44933                                     -100.010196,
44934                                     28.068882
44935                                 ],
44936                                 [
44937                                     -100.017585,
44938                                     28.070949
44939                                 ],
44940                                 [
44941                                     -100.031538,
44942                                     28.081801
44943                                 ],
44944                                 [
44945                                     -100.045077,
44946                                     28.095289
44947                                 ],
44948                                 [
44949                                     -100.048023,
44950                                     28.102523
44951                                 ],
44952                                 [
44953                                     -100.048901,
44954                                     28.115959
44955                                 ],
44956                                 [
44957                                     -100.056498,
44958                                     28.137922
44959                                 ],
44960                                 [
44961                                     -100.074895,
44962                                     28.154407
44963                                 ],
44964                                 [
44965                                     -100.172873,
44966                                     28.198538
44967                                 ],
44968                                 [
44969                                     -100.189203,
44970                                     28.201329
44971                                 ],
44972                                 [
44973                                     -100.197626,
44974                                     28.207168
44975                                 ],
44976                                 [
44977                                     -100.201192,
44978                                     28.220346
44979                                 ],
44980                                 [
44981                                     -100.202949,
44982                                     28.234428
44983                                 ],
44984                                 [
44985                                     -100.205946,
44986                                     28.242877
44987                                 ],
44988                                 [
44989                                     -100.212819,
44990                                     28.245073
44991                                 ],
44992                                 [
44993                                     -100.240724,
44994                                     28.249698
44995                                 ],
44996                                 [
44997                                     -100.257932,
44998                                     28.260524
44999                                 ],
45000                                 [
45001                                     -100.275089,
45002                                     28.277242
45003                                 ],
45004                                 [
45005                                     -100.284339,
45006                                     28.296517
45007                                 ],
45008                                 [
45009                                     -100.277931,
45010                                     28.314888
45011                                 ],
45012                                 [
45013                                     -100.278551,
45014                                     28.331088
45015                                 ],
45016                                 [
45017                                     -100.293899,
45018                                     28.353413
45019                                 ],
45020                                 [
45021                                     -100.322631,
45022                                     28.386899
45023                                 ],
45024                                 [
45025                                     -100.331675,
45026                                     28.422013
45027                                 ],
45028                                 [
45029                                     -100.336326,
45030                                     28.458574
45031                                 ],
45032                                 [
45033                                     -100.340201,
45034                                     28.464259
45035                                 ],
45036                                 [
45037                                     -100.348315,
45038                                     28.470253
45039                                 ],
45040                                 [
45041                                     -100.355549,
45042                                     28.478185
45043                                 ],
45044                                 [
45045                                     -100.35679,
45046                                     28.489322
45047                                 ],
45048                                 [
45049                                     -100.351622,
45050                                     28.496711
45051                                 ],
45052                                 [
45053                                     -100.322631,
45054                                     28.510406
45055                                 ],
45056                                 [
45057                                     -100.364024,
45058                                     28.524797
45059                                 ],
45060                                 [
45061                                     -100.38423,
45062                                     28.537174
45063                                 ],
45064                                 [
45065                                     -100.397769,
45066                                     28.557586
45067                                 ],
45068                                 [
45069                                     -100.398751,
45070                                     28.568645
45071                                 ],
45072                                 [
45073                                     -100.397097,
45074                                     28.592726
45075                                 ],
45076                                 [
45077                                     -100.401438,
45078                                     28.60226
45079                                 ],
45080                                 [
45081                                     -100.411463,
45082                                     28.609314
45083                                 ],
45084                                 [
45085                                     -100.434821,
45086                                     28.619133
45087                                 ],
45088                                 [
45089                                     -100.44619,
45090                                     28.626497
45091                                 ],
45092                                 [
45093                                     -100.444898,
45094                                     28.643782
45095                                 ],
45096                                 [
45097                                     -100.481381,
45098                                     28.686054
45099                                 ],
45100                                 [
45101                                     -100.493939,
45102                                     28.708378
45103                                 ],
45104                                 [
45105                                     -100.519054,
45106                                     28.804961
45107                                 ],
45108                                 [
45109                                     -100.524996,
45110                                     28.814831
45111                                 ],
45112                                 [
45113                                     -100.529285,
45114                                     28.819947
45115                                 ],
45116                                 [
45117                                     -100.534453,
45118                                     28.830231
45119                                 ],
45120                                 [
45121                                     -100.538639,
45122                                     28.835631
45123                                 ],
45124                                 [
45125                                     -100.54515,
45126                                     28.83899
45127                                 ],
45128                                 [
45129                                     -100.559671,
45130                                     28.839378
45131                                 ],
45132                                 [
45133                                     -100.566234,
45134                                     28.842504
45135                                 ],
45136                                 [
45137                                     -100.569696,
45138                                     28.84961
45139                                 ],
45140                                 [
45141                                     -100.56334,
45142                                     28.86209
45143                                 ],
45144                                 [
45145                                     -100.566234,
45146                                     28.869789
45147                                 ],
45148                                 [
45149                                     -100.571763,
45150                                     28.8732
45151                                 ],
45152                                 [
45153                                     -100.586543,
45154                                     28.879789
45155                                 ],
45156                                 [
45157                                     -100.58954,
45158                                     28.883458
45159                                 ],
45160                                 [
45161                                     -100.594966,
45162                                     28.899322
45163                                 ],
45164                                 [
45165                                     -100.606955,
45166                                     28.910123
45167                                 ],
45168                                 [
45169                                     -100.618841,
45170                                     28.917926
45171                                 ],
45172                                 [
45173                                     -100.624318,
45174                                     28.924721
45175                                 ],
45176                                 [
45177                                     -100.624783,
45178                                     28.93777
45179                                 ],
45180                                 [
45181                                     -100.626696,
45182                                     28.948338
45183                                 ],
45184                                 [
45185                                     -100.630778,
45186                                     28.956683
45187                                 ],
45188                                 [
45189                                     -100.637909,
45190                                     28.962884
45191                                 ],
45192                                 [
45193                                     -100.628918,
45194                                     28.98433
45195                                 ],
45196                                 [
45197                                     -100.632793,
45198                                     29.005156
45199                                 ],
45200                                 [
45201                                     -100.652224,
45202                                     29.044817
45203                                 ],
45204                                 [
45205                                     -100.660854,
45206                                     29.102669
45207                                 ],
45208                                 [
45209                                     -100.668967,
45210                                     29.116208
45211                                 ],
45212                                 [
45213                                     -100.678165,
45214                                     29.119412
45215                                 ],
45216                                 [
45217                                     -100.690826,
45218                                     29.121014
45219                                 ],
45220                                 [
45221                                     -100.70204,
45222                                     29.12365
45223                                 ],
45224                                 [
45225                                     -100.706846,
45226                                     29.130187
45227                                 ],
45228                                 [
45229                                     -100.70974,
45230                                     29.135561
45231                                 ],
45232                                 [
45233                                     -100.762501,
45234                                     29.173776
45235                                 ],
45236                                 [
45237                                     -100.770098,
45238                                     29.187289
45239                                 ],
45240                                 [
45241                                     -100.762088,
45242                                     29.208658
45243                                 ],
45244                                 [
45245                                     -100.783172,
45246                                     29.243074
45247                                 ],
45248                                 [
45249                                     -100.796143,
45250                                     29.257673
45251                                 ],
45252                                 [
45253                                     -100.81609,
45254                                     29.270773
45255                                 ],
45256                                 [
45257                                     -100.86389,
45258                                     29.290616
45259                                 ],
45260                                 [
45261                                     -100.871797,
45262                                     29.296456
45263                                 ],
45264                                 [
45265                                     -100.891227,
45266                                     29.318547
45267                                 ],
45268                                 [
45269                                     -100.91474,
45270                                     29.337048
45271                                 ],
45272                                 [
45273                                     -100.987397,
45274                                     29.366322
45275                                 ],
45276                                 [
45277                                     -100.998301,
45278                                     29.372472
45279                                 ],
45280                                 [
45281                                     -101.008068,
45282                                     29.380585
45283                                 ],
45284                                 [
45285                                     -101.016232,
45286                                     29.390068
45287                                 ],
45288                                 [
45289                                     -101.022175,
45290                                     29.40048
45291                                 ],
45292                                 [
45293                                     -101.025948,
45294                                     29.414356
45295                                 ],
45296                                 [
45297                                     -101.029617,
45298                                     29.442984
45299                                 ],
45300                                 [
45301                                     -101.037782,
45302                                     29.460063
45303                                 ],
45304                                 [
45305                                     -101.039026,
45306                                     29.460452
45307                                 ],
45308                                 [
45309                                     -101.040188,
45310                                     29.457132
45311                                 ],
45312                                 [
45313                                     -101.045487,
45314                                     29.451245
45315                                 ],
45316                                 [
45317                                     -101.060205,
45318                                     29.449184
45319                                 ],
45320                                 [
45321                                     -101.067711,
45322                                     29.45095
45323                                 ],
45324                                 [
45325                                     -101.076101,
45326                                     29.453894
45327                                 ],
45328                                 [
45329                                     -101.085962,
45330                                     29.454483
45331                                 ],
45332                                 [
45333                                     -101.098031,
45334                                     29.449184
45335                                 ],
45336                                 [
45337                                     -101.113043,
45338                                     29.466552
45339                                 ],
45340                                 [
45341                                     -101.142774,
45342                                     29.475383
45343                                 ],
45344                                 [
45345                                     -101.174124,
45346                                     29.475971
45347                                 ],
45348                                 [
45349                                     -101.193699,
45350                                     29.469495
45351                                 ],
45352                                 [
45353                                     -101.198703,
45354                                     29.473911
45355                                 ],
45356                                 [
45357                                     -101.198851,
45358                                     29.476854
45359                                 ],
45360                                 [
45361                                     -101.184132,
45362                                     29.497754
45363                                 ],
45364                                 [
45365                                     -101.184868,
45366                                     29.512767
45367                                 ],
45368                                 [
45369                                     -101.195171,
45370                                     29.521892
45371                                 ],
45372                                 [
45373                                     -101.214157,
45374                                     29.518065
45375                                 ],
45376                                 [
45377                                     -101.245213,
45378                                     29.493044
45379                                 ],
45380                                 [
45381                                     -101.265818,
45382                                     29.487157
45383                                 ],
45384                                 [
45385                                     -101.290545,
45386                                     29.49746
45387                                 ],
45388                                 [
45389                                     -101.297315,
45390                                     29.503936
45391                                 ],
45392                                 [
45393                                     -101.300995,
45394                                     29.512767
45395                                 ],
45396                                 [
45397                                     -101.294372,
45398                                     29.520715
45399                                 ],
45400                                 [
45401                                     -101.273177,
45402                                     29.524247
45403                                 ],
45404                                 [
45405                                     -101.259195,
45406                                     29.533372
45407                                 ],
45408                                 [
45409                                     -101.243888,
45410                                     29.554861
45411                                 ],
45412                                 [
45413                                     -101.231966,
45414                                     29.580176
45415                                 ],
45416                                 [
45417                                     -101.227845,
45418                                     29.599899
45419                                 ],
45420                                 [
45421                                     -101.239178,
45422                                     29.616677
45423                                 ],
45424                                 [
45425                                     -101.26052,
45426                                     29.613439
45427                                 ],
45428                                 [
45429                                     -101.281272,
45430                                     29.597249
45431                                 ],
45432                                 [
45433                                     -101.290545,
45434                                     29.575761
45435                                 ],
45436                                 [
45437                                     -101.295255,
45438                                     29.570168
45439                                 ],
45440                                 [
45441                                     -101.306146,
45442                                     29.574583
45443                                 ],
45444                                 [
45445                                     -101.317626,
45446                                     29.584003
45447                                 ],
45448                                 [
45449                                     -101.323955,
45450                                     29.592539
45451                                 ],
45452                                 [
45453                                     -101.323661,
45454                                     29.603137
45455                                 ],
45456                                 [
45457                                     -101.318804,
45458                                     29.616383
45459                                 ],
45460                                 [
45461                                     -101.311445,
45462                                     29.628158
45463                                 ],
45464                                 [
45465                                     -101.303497,
45466                                     29.634045
45467                                 ],
45468                                 [
45469                                     -101.303669,
45470                                     29.631411
45471                                 ],
45472                                 [
45473                                     -101.302727,
45474                                     29.633851
45475                                 ],
45476                                 [
45477                                     -101.301073,
45478                                     29.649509
45479                                 ],
45480                                 [
45481                                     -101.30978,
45482                                     29.654548
45483                                 ],
45484                                 [
45485                                     -101.336239,
45486                                     29.654315
45487                                 ],
45488                                 [
45489                                     -101.349029,
45490                                     29.660103
45491                                 ],
45492                                 [
45493                                     -101.357684,
45494                                     29.667441
45495                                 ],
45496                                 [
45497                                     -101.364351,
45498                                     29.676665
45499                                 ],
45500                                 [
45501                                     -101.376624,
45502                                     29.700643
45503                                 ],
45504                                 [
45505                                     -101.383368,
45506                                     29.718497
45507                                 ],
45508                                 [
45509                                     -101.39962,
45510                                     29.740718
45511                                 ],
45512                                 [
45513                                     -101.406545,
45514                                     29.752888
45515                                 ],
45516                                 [
45517                                     -101.409309,
45518                                     29.765781
45519                                 ],
45520                                 [
45521                                     -101.405098,
45522                                     29.778442
45523                                 ],
45524                                 [
45525                                     -101.414012,
45526                                     29.774411
45527                                 ],
45528                                 [
45529                                     -101.424218,
45530                                     29.771414
45531                                 ],
45532                                 [
45533                                     -101.435096,
45534                                     29.770122
45535                                 ],
45536                                 [
45537                                     -101.446103,
45538                                     29.771052
45539                                 ],
45540                                 [
45541                                     -101.455689,
45542                                     29.77591
45543                                 ],
45544                                 [
45545                                     -101.462433,
45546                                     29.788932
45547                                 ],
45548                                 [
45549                                     -101.470908,
45550                                     29.791516
45551                                 ],
45552                                 [
45553                                     -101.490286,
45554                                     29.785547
45555                                 ],
45556                                 [
45557                                     -101.505763,
45558                                     29.773894
45559                                 ],
45560                                 [
45561                                     -101.521809,
45562                                     29.765936
45563                                 ],
45564                                 [
45565                                     -101.542893,
45566                                     29.771052
45567                                 ],
45568                                 [
45569                                     -101.539689,
45570                                     29.779191
45571                                 ],
45572                                 [
45573                                     -101.530516,
45574                                     29.796477
45575                                 ],
45576                                 [
45577                                     -101.528604,
45578                                     29.801438
45579                                 ],
45580                                 [
45581                                     -101.531912,
45582                                     29.811101
45583                                 ],
45584                                 [
45585                                     -101.539172,
45586                                     29.817974
45587                                 ],
45588                                 [
45589                                     -101.546458,
45590                                     29.820145
45591                                 ],
45592                                 [
45593                                     -101.549766,
45594                                     29.815701
45595                                 ],
45596                                 [
45597                                     -101.553977,
45598                                     29.796684
45599                                 ],
45600                                 [
45601                                     -101.564907,
45602                                     29.786478
45603                                 ],
45604                                 [
45605                                     -101.580281,
45606                                     29.781568
45607                                 ],
45608                                 [
45609                                     -101.632216,
45610                                     29.775651
45611                                 ],
45612                                 [
45613                                     -101.794531,
45614                                     29.795857
45615                                 ],
45616                                 [
45617                                     -101.80298,
45618                                     29.801438
45619                                 ],
45620                                 [
45621                                     -101.805978,
45622                                     29.811928
45623                                 ],
45624                                 [
45625                                     -101.812695,
45626                                     29.812032
45627                                 ],
45628                                 [
45629                                     -101.82409,
45630                                     29.805184
45631                                 ],
45632                                 [
45633                                     -101.857602,
45634                                     29.805184
45635                                 ],
45636                                 [
45637                                     -101.877524,
45638                                     29.810843
45639                                 ],
45640                                 [
45641                                     -101.88742,
45642                                     29.81229
45643                                 ],
45644                                 [
45645                                     -101.895455,
45646                                     29.808621
45647                                 ],
45648                                 [
45649                                     -101.90238,
45650                                     29.803247
45651                                 ],
45652                                 [
45653                                     -101.910881,
45654                                     29.799888
45655                                 ],
45656                                 [
45657                                     -101.920157,
45658                                     29.798182
45659                                 ],
45660                                 [
45661                                     -101.929613,
45662                                     29.797717
45663                                 ],
45664                                 [
45665                                     -101.942662,
45666                                     29.803608
45667                                 ],
45668                                 [
45669                                     -101.957054,
45670                                     29.814047
45671                                 ],
45672                                 [
45673                                     -101.972246,
45674                                     29.818181
45675                                 ],
45676                                 [
45677                                     -101.98793,
45678                                     29.805184
45679                                 ],
45680                                 [
45681                                     -102.014595,
45682                                     29.810998
45683                                 ],
45684                                 [
45685                                     -102.109344,
45686                                     29.80211
45687                                 ],
45688                                 [
45689                                     -102.145647,
45690                                     29.815701
45691                                 ],
45692                                 [
45693                                     -102.157248,
45694                                     29.824537
45695                                 ],
45696                                 [
45697                                     -102.203679,
45698                                     29.846138
45699                                 ],
45700                                 [
45701                                     -102.239775,
45702                                     29.849135
45703                                 ],
45704                                 [
45705                                     -102.253444,
45706                                     29.855285
45707                                 ],
45708                                 [
45709                                     -102.258276,
45710                                     29.873475
45711                                 ],
45712                                 [
45713                                     -102.276181,
45714                                     29.869547
45715                                 ],
45716                                 [
45717                                     -102.289023,
45718                                     29.878126
45719                                 ],
45720                                 [
45721                                     -102.302175,
45722                                     29.889391
45723                                 ],
45724                                 [
45725                                     -102.321011,
45726                                     29.893939
45727                                 ],
45728                                 [
45729                                     -102.330235,
45730                                     29.888926
45731                                 ],
45732                                 [
45733                                     -102.339769,
45734                                     29.870633
45735                                 ],
45736                                 [
45737                                     -102.351061,
45738                                     29.866602
45739                                 ],
45740                                 [
45741                                     -102.36323,
45742                                     29.864276
45743                                 ],
45744                                 [
45745                                     -102.370723,
45746                                     29.857765
45747                                 ],
45748                                 [
45749                                     -102.374547,
45750                                     29.848102
45751                                 ],
45752                                 [
45753                                     -102.376589,
45754                                     29.821488
45755                                 ],
45756                                 [
45757                                     -102.380051,
45758                                     29.811386
45759                                 ],
45760                                 [
45761                                     -102.404132,
45762                                     29.780793
45763                                 ],
45764                                 [
45765                                     -102.406096,
45766                                     29.777279
45767                                 ],
45768                                 [
45769                                     -102.515288,
45770                                     29.784721
45771                                 ],
45772                                 [
45773                                     -102.523066,
45774                                     29.782318
45775                                 ],
45776                                 [
45777                                     -102.531127,
45778                                     29.769915
45779                                 ],
45780                                 [
45781                                     -102.54154,
45782                                     29.762474
45783                                 ],
45784                                 [
45785                                     -102.543349,
45786                                     29.760123
45787                                 ],
45788                                 [
45789                                     -102.546578,
45790                                     29.757875
45791                                 ],
45792                                 [
45793                                     -102.553141,
45794                                     29.756738
45795                                 ],
45796                                 [
45797                                     -102.558309,
45798                                     29.759089
45799                                 ],
45800                                 [
45801                                     -102.562882,
45802                                     29.769347
45803                                 ],
45804                                 [
45805                                     -102.566758,
45806                                     29.771052
45807                                 ],
45808                                 [
45809                                     -102.58531,
45810                                     29.764696
45811                                 ],
45812                                 [
45813                                     -102.621225,
45814                                     29.747281
45815                                 ],
45816                                 [
45817                                     -102.638743,
45818                                     29.743715
45819                                 ],
45820                                 [
45821                                     -102.676054,
45822                                     29.74449
45823                                 ],
45824                                 [
45825                                     -102.683469,
45826                                     29.743715
45827                                 ],
45828                                 [
45829                                     -102.69104,
45830                                     29.736817
45831                                 ],
45832                                 [
45833                                     -102.693624,
45834                                     29.729401
45835                                 ],
45836                                 [
45837                                     -102.694709,
45838                                     29.720616
45839                                 ],
45840                                 [
45841                                     -102.697758,
45842                                     29.709557
45843                                 ],
45844                                 [
45845                                     -102.726748,
45846                                     29.664495
45847                                 ],
45848                                 [
45849                                     -102.73127,
45850                                     29.650594
45851                                 ],
45852                                 [
45853                                     -102.735507,
45854                                     29.649509
45855                                 ],
45856                                 [
45857                                     -102.751656,
45858                                     29.622457
45859                                 ],
45860                                 [
45861                                     -102.75176,
45862                                     29.620157
45863                                 ],
45864                                 [
45865                                     -102.761346,
45866                                     29.603414
45867                                 ],
45868                                 [
45869                                     -102.767598,
45870                                     29.59729
45871                                 ],
45872                                 [
45873                                     -102.779665,
45874                                     29.592303
45875                                 ],
45876                                 [
45877                                     -102.774084,
45878                                     29.579617
45879                                 ],
45880                                 [
45881                                     -102.776461,
45882                                     29.575948
45883                                 ],
45884                                 [
45885                                     -102.785892,
45886                                     29.571814
45887                                 ],
45888                                 [
45889                                     -102.78075,
45890                                     29.558249
45891                                 ],
45892                                 [
45893                                     -102.786512,
45894                                     29.550497
45895                                 ],
45896                                 [
45897                                     -102.795478,
45898                                     29.54427
45899                                 ],
45900                                 [
45901                                     -102.827311,
45902                                     29.470502
45903                                 ],
45904                                 [
45905                                     -102.833951,
45906                                     29.461355
45907                                 ],
45908                                 [
45909                                     -102.839067,
45910                                     29.45195
45911                                 ],
45912                                 [
45913                                     -102.841134,
45914                                     29.438308
45915                                 ],
45916                                 [
45917                                     -102.838705,
45918                                     29.426939
45919                                 ],
45920                                 [
45921                                     -102.834984,
45922                                     29.415699
45923                                 ],
45924                                 [
45925                                     -102.835191,
45926                                     29.403839
45927                                 ],
45928                                 [
45929                                     -102.844545,
45930                                     29.390533
45931                                 ],
45932                                 [
45933                                     -102.845578,
45934                                     29.384719
45935                                 ],
45936                                 [
45937                                     -102.838033,
45938                                     29.370534
45939                                 ],
45940                                 [
45941                                     -102.837672,
45942                                     29.366322
45943                                 ],
45944                                 [
45945                                     -102.84656,
45946                                     29.361749
45947                                 ],
45948                                 [
45949                                     -102.853872,
45950                                     29.361
45951                                 ],
45952                                 [
45953                                     -102.859867,
45954                                     29.361155
45955                                 ],
45956                                 [
45957                                     -102.864957,
45958                                     29.359527
45959                                 ],
45960                                 [
45961                                     -102.876972,
45962                                     29.350871
45963                                 ],
45964                                 [
45965                                     -102.883069,
45966                                     29.343766
45967                                 ],
45968                                 [
45969                                     -102.885188,
45970                                     29.333379
45971                                 ],
45972                                 [
45973                                     -102.885498,
45974                                     29.314801
45975                                 ],
45976                                 [
45977                                     -102.899399,
45978                                     29.276095
45979                                 ],
45980                                 [
45981                                     -102.899709,
45982                                     29.2639
45983                                 ],
45984                                 [
45985                                     -102.892139,
45986                                     29.254391
45987                                 ],
45988                                 [
45989                                     -102.867954,
45990                                     29.240387
45991                                 ],
45992                                 [
45993                                     -102.858781,
45994                                     29.229147
45995                                 ],
45996                                 [
45997                                     -102.869866,
45998                                     29.224781
45999                                 ],
46000                                 [
46001                                     -102.896893,
46002                                     29.220285
46003                                 ],
46004                                 [
46005                                     -102.942265,
46006                                     29.190209
46007                                 ],
46008                                 [
46009                                     -102.947536,
46010                                     29.182018
46011                                 ],
46012                                 [
46013                                     -102.969757,
46014                                     29.192845
46015                                 ],
46016                                 [
46017                                     -102.988386,
46018                                     29.177135
46019                                 ],
46020                                 [
46021                                     -103.015826,
46022                                     29.126776
46023                                 ],
46024                                 [
46025                                     -103.024275,
46026                                     29.116157
46027                                 ],
46028                                 [
46029                                     -103.032621,
46030                                     29.110214
46031                                 ],
46032                                 [
46033                                     -103.072541,
46034                                     29.091404
46035                                 ],
46036                                 [
46037                                     -103.080758,
46038                                     29.085203
46039                                 ],
46040                                 [
46041                                     -103.085589,
46042                                     29.07572
46043                                 ],
46044                                 [
46045                                     -103.091532,
46046                                     29.057866
46047                                 ],
46048                                 [
46049                                     -103.095356,
46050                                     29.060294
46051                                 ],
46052                                 [
46053                                     -103.104684,
46054                                     29.057866
46055                                 ],
46056                                 [
46057                                     -103.109205,
46058                                     29.023372
46059                                 ],
46060                                 [
46061                                     -103.122771,
46062                                     28.996474
46063                                 ],
46064                                 [
46065                                     -103.147989,
46066                                     28.985105
46067                                 ],
46068                                 [
46069                                     -103.187108,
46070                                     28.990221
46071                                 ],
46072                                 [
46073                                     -103.241756,
46074                                     29.003502
46075                                 ],
46076                                 [
46077                                     -103.301545,
46078                                     29.002365
46079                                 ],
46080                                 [
46081                                     -103.316247,
46082                                     29.010065
46083                                 ],
46084                                 [
46085                                     -103.311514,
46086                                     29.026043
46087                                 ],
46088                                 [
46089                                     -103.309994,
46090                                     29.031175
46091                                 ],
46092                                 [
46093                                     -103.3248,
46094                                     29.026808
46095                                 ],
46096                                 [
46097                                     -103.330484,
46098                                     29.023733
46099                                 ],
46100                                 [
46101                                     -103.342602,
46102                                     29.041226
46103                                 ],
46104                                 [
46105                                     -103.351671,
46106                                     29.039417
46107                                 ],
46108                                 [
46109                                     -103.360534,
46110                                     29.029831
46111                                 ],
46112                                 [
46113                                     -103.372083,
46114                                     29.023733
46115                                 ],
46116                                 [
46117                                     -103.38663,
46118                                     29.028798
46119                                 ],
46120                                 [
46121                                     -103.414639,
46122                                     29.052414
46123                                 ],
46124                                 [
46125                                     -103.423605,
46126                                     29.057866
46127                                 ],
46128                                 [
46129                                     -103.435697,
46130                                     29.061121
46131                                 ],
46132                                 [
46133                                     -103.478537,
46134                                     29.08205
46135                                 ],
46136                                 [
46137                                     -103.529748,
46138                                     29.126776
46139                                 ],
46140                                 [
46141                                     -103.535588,
46142                                     29.135122
46143                                 ],
46144                                 [
46145                                     -103.538223,
46146                                     29.142408
46147                                 ],
46148                                 [
46149                                     -103.541711,
46150                                     29.148816
46151                                 ],
46152                                 [
46153                                     -103.550238,
46154                                     29.154656
46155                                 ],
46156                                 [
46157                                     -103.558015,
46158                                     29.156206
46159                                 ],
46160                                 [
46161                                     -103.58499,
46162                                     29.154656
46163                                 ],
46164                                 [
46165                                     -103.673125,
46166                                     29.173569
46167                                 ],
46168                                 [
46169                                     -103.702477,
46170                                     29.187858
46171                                 ],
46172                                 [
46173                                     -103.749476,
46174                                     29.222972
46175                                 ],
46176                                 [
46177                                     -103.759062,
46178                                     29.226848
46179                                 ],
46180                                 [
46181                                     -103.770767,
46182                                     29.229845
46183                                 ],
46184                                 [
46185                                     -103.777718,
46186                                     29.235297
46187                                 ],
46188                                 [
46189                                     -103.769424,
46190                                     29.257543
46191                                 ],
46192                                 [
46193                                     -103.774229,
46194                                     29.267517
46195                                 ],
46196                                 [
46197                                     -103.78366,
46198                                     29.274803
46199                                 ],
46200                                 [
46201                                     -103.794177,
46202                                     29.277594
46203                                 ],
46204                                 [
46205                                     -103.837038,
46206                                     29.279906
46207                                 ]
46208                             ]
46209                         ],
46210                         [
46211                             [
46212                                 [
46213                                     178.301106,
46214                                     52.056551
46215                                 ],
46216                                 [
46217                                     179.595462,
46218                                     52.142083
46219                                 ],
46220                                 [
46221                                     179.825447,
46222                                     51.992849
46223                                 ],
46224                                 [
46225                                     179.661729,
46226                                     51.485763
46227                                 ],
46228                                 [
46229                                     179.723231,
46230                                     51.459963
46231                                 ],
46232                                 [
46233                                     179.408066,
46234                                     51.209841
46235                                 ],
46236                                 [
46237                                     178.411463,
46238                                     51.523605
46239                                 ],
46240                                 [
46241                                     177.698335,
46242                                     51.877899
46243                                 ],
46244                                 [
46245                                     177.16784,
46246                                     51.581866
46247                                 ],
46248                                 [
46249                                     176.487008,
46250                                     52.175325
46251                                 ],
46252                                 [
46253                                     174.484678,
46254                                     52.08716
46255                                 ],
46256                                 [
46257                                     172.866263,
46258                                     52.207379
46259                                 ],
46260                                 [
46261                                     172.825506,
46262                                     52.716846
46263                                 ],
46264                                 [
46265                                     172.747012,
46266                                     52.654022
46267                                 ],
46268                                 [
46269                                     172.08261,
46270                                     52.952695
46271                                 ],
46272                                 [
46273                                     172.942925,
46274                                     53.183013
46275                                 ],
46276                                 [
46277                                     173.029416,
46278                                     52.993628
46279                                 ],
46280                                 [
46281                                     173.127208,
46282                                     52.99494
46283                                 ],
46284                                 [
46285                                     173.143321,
46286                                     52.990383
46287                                 ],
46288                                 [
46289                                     173.175059,
46290                                     52.971747
46291                                 ],
46292                                 [
46293                                     173.182932,
46294                                     52.968373
46295                                 ],
46296                                 [
46297                                     176.45233,
46298                                     52.628178
46299                                 ],
46300                                 [
46301                                     176.468135,
46302                                     52.488358
46303                                 ],
46304                                 [
46305                                     177.900385,
46306                                     52.488358
46307                                 ],
46308                                 [
46309                                     178.007601,
46310                                     52.179677
46311                                 ],
46312                                 [
46313                                     178.301106,
46314                                     52.056551
46315                                 ]
46316                             ]
46317                         ],
46318                         [
46319                             [
46320                                 [
46321                                     -168.899607,
46322                                     65.747626
46323                                 ],
46324                                 [
46325                                     -168.909861,
46326                                     65.739569
46327                                 ],
46328                                 [
46329                                     -168.926218,
46330                                     65.739895
46331                                 ],
46332                                 [
46333                                     -168.942128,
46334                                     65.74372
46335                                 ],
46336                                 [
46337                                     -168.951731,
46338                                     65.75316
46339                                 ],
46340                                 [
46341                                     -168.942983,
46342                                     65.764716
46343                                 ],
46344                                 [
46345                                     -168.920115,
46346                                     65.768866
46347                                 ],
46348                                 [
46349                                     -168.907908,
46350                                     65.768297
46351                                 ],
46352                                 [
46353                                     -168.902781,
46354                                     65.761542
46355                                 ],
46356                                 [
46357                                     -168.899607,
46358                                     65.747626
46359                                 ]
46360                             ]
46361                         ],
46362                         [
46363                             [
46364                                 [
46365                                     -131.160718,
46366                                     54.787192
46367                                 ],
46368                                 [
46369                                     -132.853508,
46370                                     54.482536
46371                                 ],
46372                                 [
46373                                     -134.77719,
46374                                     54.717786
46375                                 ],
46376                                 [
46377                                     -142.6966,
46378                                     55.845503
46379                                 ],
46380                                 [
46381                                     -142.861997,
46382                                     49.948308
46383                                 ],
46384                                 [
46385                                     -155.675916,
46386                                     51.109976
46387                                 ],
46388                                 [
46389                                     -164.492732,
46390                                     50.603976
46391                                 ],
46392                                 [
46393                                     -164.691217,
46394                                     50.997975
46395                                 ],
46396                                 [
46397                                     -171.246993,
46398                                     49.948308
46399                                 ],
46400                                 [
46401                                     -171.215436,
46402                                     50.576636
46403                                 ],
46404                                 [
46405                                     -173.341669,
46406                                     50.968826
46407                                 ],
46408                                 [
46409                                     -173.362022,
46410                                     51.082198
46411                                 ],
46412                                 [
46413                                     -177.799603,
46414                                     51.272899
46415                                 ],
46416                                 [
46417                                     -179.155463,
46418                                     50.982285
46419                                 ],
46420                                 [
46421                                     -179.476076,
46422                                     52.072632
46423                                 ],
46424                                 [
46425                                     -177.11459,
46426                                     52.248701
46427                                 ],
46428                                 [
46429                                     -177.146284,
46430                                     52.789384
46431                                 ],
46432                                 [
46433                                     -174.777218,
46434                                     52.443779
46435                                 ],
46436                                 [
46437                                     -174.773743,
46438                                     52.685853
46439                                 ],
46440                                 [
46441                                     -173.653194,
46442                                     52.704099
46443                                 ],
46444                                 [
46445                                     -173.790528,
46446                                     53.469081
46447                                 ],
46448                                 [
46449                                     -171.063371,
46450                                     53.604473
46451                                 ],
46452                                 [
46453                                     -170.777733,
46454                                     59.291898
46455                                 ],
46456                                 [
46457                                     -174.324884,
46458                                     60.332184
46459                                 ],
46460                                 [
46461                                     -171.736408,
46462                                     62.68026
46463                                 ],
46464                                 [
46465                                     -172.315705,
46466                                     62.725352
46467                                 ],
46468                                 [
46469                                     -171.995091,
46470                                     63.999658
46471                                 ],
46472                                 [
46473                                     -168.501424,
46474                                     65.565173
46475                                 ],
46476                                 [
46477                                     -168.714145,
46478                                     65.546708
46479                                 ],
46480                                 [
46481                                     -168.853077,
46482                                     68.370871
46483                                 ],
46484                                 [
46485                                     -161.115601,
46486                                     72.416214
46487                                 ],
46488                                 [
46489                                     -146.132257,
46490                                     70.607941
46491                                 ],
46492                                 [
46493                                     -140.692512,
46494                                     69.955349
46495                                 ],
46496                                 [
46497                                     -141.145395,
46498                                     69.671641
46499                                 ],
46500                                 [
46501                                     -141.015207,
46502                                     69.654202
46503                                 ],
46504                                 [
46505                                     -141.006459,
46506                                     69.651272
46507                                 ],
46508                                 [
46509                                     -141.005564,
46510                                     69.650946
46511                                 ],
46512                                 [
46513                                     -141.005549,
46514                                     69.650941
46515                                 ],
46516                                 [
46517                                     -141.005471,
46518                                     69.505164
46519                                 ],
46520                                 [
46521                                     -141.001208,
46522                                     60.466879
46523                                 ],
46524                                 [
46525                                     -141.001156,
46526                                     60.321074
46527                                 ],
46528                                 [
46529                                     -140.994929,
46530                                     60.304382
46531                                 ],
46532                                 [
46533                                     -140.979555,
46534                                     60.295804
46535                                 ],
46536                                 [
46537                                     -140.909146,
46538                                     60.28366
46539                                 ],
46540                                 [
46541                                     -140.768457,
46542                                     60.259269
46543                                 ],
46544                                 [
46545                                     -140.660505,
46546                                     60.24051
46547                                 ],
46548                                 [
46549                                     -140.533743,
46550                                     60.218548
46551                                 ],
46552                                 [
46553                                     -140.518705,
46554                                     60.22387
46555                                 ],
46556                                 [
46557                                     -140.506664,
46558                                     60.236324
46559                                 ],
46560                                 [
46561                                     -140.475323,
46562                                     60.276477
46563                                 ],
46564                                 [
46565                                     -140.462791,
46566                                     60.289138
46567                                 ],
46568                                 [
46569                                     -140.447805,
46570                                     60.29446
46571                                 ],
46572                                 [
46573                                     -140.424111,
46574                                     60.293168
46575                                 ],
46576                                 [
46577                                     -140.32497,
46578                                     60.267537
46579                                 ],
46580                                 [
46581                                     -140.169243,
46582                                     60.227229
46583                                 ],
46584                                 [
46585                                     -140.01579,
46586                                     60.187387
46587                                 ],
46588                                 [
46589                                     -139.967757,
46590                                     60.188369
46591                                 ],
46592                                 [
46593                                     -139.916933,
46594                                     60.207851
46595                                 ],
46596                                 [
46597                                     -139.826318,
46598                                     60.256478
46599                                 ],
46600                                 [
46601                                     -139.728417,
46602                                     60.309033
46603                                 ],
46604                                 [
46605                                     -139.679816,
46606                                     60.32681
46607                                 ],
46608                                 [
46609                                     -139.628346,
46610                                     60.334096
46611                                 ],
46612                                 [
46613                                     -139.517965,
46614                                     60.336732
46615                                 ],
46616                                 [
46617                                     -139.413992,
46618                                     60.339212
46619                                 ],
46620                                 [
46621                                     -139.262193,
46622                                     60.342778
46623                                 ],
46624                                 [
46625                                     -139.101608,
46626                                     60.346602
46627                                 ],
46628                                 [
46629                                     -139.079465,
46630                                     60.341021
46631                                 ],
46632                                 [
46633                                     -139.06869,
46634                                     60.322056
46635                                 ],
46636                                 [
46637                                     -139.073186,
46638                                     60.299835
46639                                 ],
46640                                 [
46641                                     -139.113468,
46642                                     60.226816
46643                                 ],
46644                                 [
46645                                     -139.149615,
46646                                     60.161187
46647                                 ],
46648                                 [
46649                                     -139.183231,
46650                                     60.100157
46651                                 ],
46652                                 [
46653                                     -139.182146,
46654                                     60.073389
46655                                 ],
46656                                 [
46657                                     -139.112305,
46658                                     60.031376
46659                                 ],
46660                                 [
46661                                     -139.060207,
46662                                     60.000059
46663                                 ],
46664                                 [
46665                                     -139.051611,
46666                                     59.994892
46667                                 ],
46668                                 [
46669                                     -139.003759,
46670                                     59.977219
46671                                 ],
46672                                 [
46673                                     -138.842425,
46674                                     59.937686
46675                                 ],
46676                                 [
46677                                     -138.742586,
46678                                     59.913192
46679                                 ],
46680                                 [
46681                                     -138.704888,
46682                                     59.898464
46683                                 ],
46684                                 [
46685                                     -138.697188,
46686                                     59.89371
46687                                 ],
46688                                 [
46689                                     -138.692098,
46690                                     59.886888
46691                                 ],
46692                                 [
46693                                     -138.654349,
46694                                     59.805498
46695                                 ],
46696                                 [
46697                                     -138.63745,
46698                                     59.784052
46699                                 ],
46700                                 [
46701                                     -138.59921,
46702                                     59.753822
46703                                 ],
46704                                 [
46705                                     -138.488881,
46706                                     59.696357
46707                                 ],
46708                                 [
46709                                     -138.363617,
46710                                     59.631142
46711                                 ],
46712                                 [
46713                                     -138.219543,
46714                                     59.556004
46715                                 ],
46716                                 [
46717                                     -138.067614,
46718                                     59.476991
46719                                 ],
46720                                 [
46721                                     -137.91057,
46722                                     59.395187
46723                                 ],
46724                                 [
46725                                     -137.758305,
46726                                     59.315915
46727                                 ],
46728                                 [
46729                                     -137.611363,
46730                                     59.239331
46731                                 ],
46732                                 [
46733                                     -137.594181,
46734                                     59.225275
46735                                 ],
46736                                 [
46737                                     -137.582088,
46738                                     59.206568
46739                                 ],
46740                                 [
46741                                     -137.5493,
46742                                     59.134531
46743                                 ],
46744                                 [
46745                                     -137.521007,
46746                                     59.072364
46747                                 ],
46748                                 [
46749                                     -137.484394,
46750                                     58.991904
46751                                 ],
46752                                 [
46753                                     -137.507752,
46754                                     58.939969
46755                                 ],
46756                                 [
46757                                     -137.50876,
46758                                     58.914906
46759                                 ],
46760                                 [
46761                                     -137.486875,
46762                                     58.900075
46763                                 ],
46764                                 [
46765                                     -137.453466,
46766                                     58.899145
46767                                 ],
46768                                 [
46769                                     -137.423106,
46770                                     58.907723
46771                                 ],
46772                                 [
46773                                     -137.338098,
46774                                     58.955472
46775                                 ],
46776                                 [
46777                                     -137.2819,
46778                                     58.98715
46779                                 ],
46780                                 [
46781                                     -137.172346,
46782                                     59.027148
46783                                 ],
46784                                 [
46785                                     -137.062367,
46786                                     59.067572
46787                                 ],
46788                                 [
46789                                     -137.047109,
46790                                     59.07331
46791                                 ],
46792                                 [
46793                                     -136.942282,
46794                                     59.11107
46795                                 ],
46796                                 [
46797                                     -136.840816,
46798                                     59.148174
46799                                 ],
46800                                 [
46801                                     -136.785496,
46802                                     59.157217
46803                                 ],
46804                                 [
46805                                     -136.671911,
46806                                     59.150809
46807                                 ],
46808                                 [
46809                                     -136.613491,
46810                                     59.15422
46811                                 ],
46812                                 [
46813                                     -136.569489,
46814                                     59.172152
46815                                 ],
46816                                 [
46817                                     -136.484791,
46818                                     59.2538
46819                                 ],
46820                                 [
46821                                     -136.483551,
46822                                     59.257469
46823                                 ],
46824                                 [
46825                                     -136.466549,
46826                                     59.287803
46827                                 ],
46828                                 [
46829                                     -136.467092,
46830                                     59.38449
46831                                 ],
46832                                 [
46833                                     -136.467557,
46834                                     59.461643
46835                                 ],
46836                                 [
46837                                     -136.415958,
46838                                     59.452238
46839                                 ],
46840                                 [
46841                                     -136.36684,
46842                                     59.449551
46843                                 ],
46844                                 [
46845                                     -136.319995,
46846                                     59.459059
46847                                 ],
46848                                 [
46849                                     -136.275036,
46850                                     59.486448
46851                                 ],
46852                                 [
46853                                     -136.244728,
46854                                     59.528202
46855                                 ],
46856                                 [
46857                                     -136.258474,
46858                                     59.556107
46859                                 ],
46860                                 [
46861                                     -136.29935,
46862                                     59.575745
46863                                 ],
46864                                 [
46865                                     -136.350329,
46866                                     59.592384
46867                                 ],
46868                                 [
46869                                     -136.2585,
46870                                     59.621582
46871                                 ],
46872                                 [
46873                                     -136.145406,
46874                                     59.636826
46875                                 ],
46876                                 [
46877                                     -136.02686,
46878                                     59.652846
46879                                 ],
46880                                 [
46881                                     -135.923818,
46882                                     59.666747
46883                                 ],
46884                                 [
46885                                     -135.830955,
46886                                     59.693257
46887                                 ],
46888                                 [
46889                                     -135.641251,
46890                                     59.747362
46891                                 ],
46892                                 [
46893                                     -135.482759,
46894                                     59.792475
46895                                 ],
46896                                 [
46897                                     -135.465137,
46898                                     59.789685
46899                                 ],
46900                                 [
46901                                     -135.404392,
46902                                     59.753305
46903                                 ],
46904                                 [
46905                                     -135.345791,
46906                                     59.731032
46907                                 ],
46908                                 [
46909                                     -135.259879,
46910                                     59.698218
46911                                 ],
46912                                 [
46913                                     -135.221897,
46914                                     59.675273
46915                                 ],
46916                                 [
46917                                     -135.192028,
46918                                     59.64711
46919                                 ],
46920                                 [
46921                                     -135.157792,
46922                                     59.623287
46923                                 ],
46924                                 [
46925                                     -135.106684,
46926                                     59.613158
46927                                 ],
46928                                 [
46929                                     -135.087874,
46930                                     59.606544
46931                                 ],
46932                                 [
46933                                     -135.032942,
46934                                     59.573109
46935                                 ],
46936                                 [
46937                                     -135.018524,
46938                                     59.559363
46939                                 ],
46940                                 [
46941                                     -135.016198,
46942                                     59.543447
46943                                 ],
46944                                 [
46945                                     -135.01948,
46946                                     59.493166
46947                                 ],
46948                                 [
46949                                     -135.023252,
46950                                     59.477146
46951                                 ],
46952                                 [
46953                                     -135.037489,
46954                                     59.461591
46955                                 ],
46956                                 [
46957                                     -135.078598,
46958                                     59.438337
46959                                 ],
46960                                 [
46961                                     -135.095754,
46962                                     59.418855
46963                                 ],
46964                                 [
46965                                     -134.993254,
46966                                     59.381906
46967                                 ],
46968                                 [
46969                                     -135.00483,
46970                                     59.367127
46971                                 ],
46972                                 [
46973                                     -135.014441,
46974                                     59.35152
46975                                 ],
46976                                 [
46977                                     -135.016198,
46978                                     59.336173
46979                                 ],
46980                                 [
46981                                     -134.979973,
46982                                     59.297415
46983                                 ],
46984                                 [
46985                                     -134.95783,
46986                                     59.280982
46987                                 ],
46988                                 [
46989                                     -134.932431,
46990                                     59.270647
46991                                 ],
46992                                 [
46993                                     -134.839465,
46994                                     59.258141
46995                                 ],
46996                                 [
46997                                     -134.74345,
46998                                     59.245119
46999                                 ],
47000                                 [
47001                                     -134.70552,
47002                                     59.240106
47003                                 ],
47004                                 [
47005                                     -134.692084,
47006                                     59.235249
47007                                 ],
47008                                 [
47009                                     -134.68286,
47010                                     59.223001
47011                                 ],
47012                                 [
47013                                     -134.671439,
47014                                     59.193752
47015                                 ],
47016                                 [
47017                                     -134.66038,
47018                                     59.181298
47019                                 ],
47020                                 [
47021                                     -134.610771,
47022                                     59.144556
47023                                 ],
47024                                 [
47025                                     -134.582788,
47026                                     59.128847
47027                                 ],
47028                                 [
47029                                     -134.556717,
47030                                     59.123059
47031                                 ],
47032                                 [
47033                                     -134.509072,
47034                                     59.122801
47035                                 ],
47036                                 [
47037                                     -134.477575,
47038                                     59.114946
47039                                 ],
47040                                 [
47041                                     -134.451013,
47042                                     59.097893
47043                                 ],
47044                                 [
47045                                     -134.398019,
47046                                     59.051952
47047                                 ],
47048                                 [
47049                                     -134.387167,
47050                                     59.036863
47051                                 ],
47052                                 [
47053                                     -134.385591,
47054                                     59.018828
47055                                 ],
47056                                 [
47057                                     -134.399389,
47058                                     58.974954
47059                                 ],
47060                                 [
47061                                     -134.343423,
47062                                     58.968857
47063                                 ],
47064                                 [
47065                                     -134.329651,
47066                                     58.963017
47067                                 ],
47068                                 [
47069                                     -134.320039,
47070                                     58.952682
47071                                 ],
47072                                 [
47073                                     -134.32314,
47074                                     58.949168
47075                                 ],
47076                                 [
47077                                     -134.330323,
47078                                     58.945344
47079                                 ],
47080                                 [
47081                                     -134.333036,
47082                                     58.93413
47083                                 ],
47084                                 [
47085                                     -134.327403,
47086                                     58.916457
47087                                 ],
47088                                 [
47089                                     -134.316939,
47090                                     58.903796
47091                                 ],
47092                                 [
47093                                     -134.22219,
47094                                     58.842714
47095                                 ],
47096                                 [
47097                                     -134.108838,
47098                                     58.808246
47099                                 ],
47100                                 [
47101                                     -133.983109,
47102                                     58.769902
47103                                 ],
47104                                 [
47105                                     -133.87123,
47106                                     58.735899
47107                                 ],
47108                                 [
47109                                     -133.831129,
47110                                     58.718019
47111                                 ],
47112                                 [
47113                                     -133.796402,
47114                                     58.693421
47115                                 ],
47116                                 [
47117                                     -133.700077,
47118                                     58.59937
47119                                 ],
47120                                 [
47121                                     -133.626283,
47122                                     58.546402
47123                                 ],
47124                                 [
47125                                     -133.547063,
47126                                     58.505577
47127                                 ],
47128                                 [
47129                                     -133.463089,
47130                                     58.462221
47131                                 ],
47132                                 [
47133                                     -133.392241,
47134                                     58.403878
47135                                 ],
47136                                 [
47137                                     -133.43012,
47138                                     58.372097
47139                                 ],
47140                                 [
47141                                     -133.41503,
47142                                     58.330549
47143                                 ],
47144                                 [
47145                                     -133.374567,
47146                                     58.290965
47147                                 ],
47148                                 [
47149                                     -133.257262,
47150                                     58.210298
47151                                 ],
47152                                 [
47153                                     -133.165588,
47154                                     58.147305
47155                                 ],
47156                                 [
47157                                     -133.142127,
47158                                     58.120588
47159                                 ],
47160                                 [
47161                                     -133.094843,
47162                                     58.0331
47163                                 ],
47164                                 [
47165                                     -133.075154,
47166                                     58.007882
47167                                 ],
47168                                 [
47169                                     -132.99335,
47170                                     57.941917
47171                                 ],
47172                                 [
47173                                     -132.917153,
47174                                     57.880499
47175                                 ],
47176                                 [
47177                                     -132.83212,
47178                                     57.791564
47179                                 ],
47180                                 [
47181                                     -132.70944,
47182                                     57.663303
47183                                 ],
47184                                 [
47185                                     -132.629057,
47186                                     57.579277
47187                                 ],
47188                                 [
47189                                     -132.552447,
47190                                     57.499075
47191                                 ],
47192                                 [
47193                                     -132.455735,
47194                                     57.420992
47195                                 ],
47196                                 [
47197                                     -132.362304,
47198                                     57.3457
47199                                 ],
47200                                 [
47201                                     -132.304684,
47202                                     57.280355
47203                                 ],
47204                                 [
47205                                     -132.230994,
47206                                     57.19682
47207                                 ],
47208                                 [
47209                                     -132.276366,
47210                                     57.14889
47211                                 ],
47212                                 [
47213                                     -132.34122,
47214                                     57.080393
47215                                 ],
47216                                 [
47217                                     -132.16229,
47218                                     57.050317
47219                                 ],
47220                                 [
47221                                     -132.031859,
47222                                     57.028406
47223                                 ],
47224                                 [
47225                                     -132.107384,
47226                                     56.858753
47227                                 ],
47228                                 [
47229                                     -131.871558,
47230                                     56.79346
47231                                 ],
47232                                 [
47233                                     -131.865874,
47234                                     56.785708
47235                                 ],
47236                                 [
47237                                     -131.872411,
47238                                     56.77297
47239                                 ],
47240                                 [
47241                                     -131.882617,
47242                                     56.759146
47243                                 ],
47244                                 [
47245                                     -131.887966,
47246                                     56.747958
47247                                 ],
47248                                 [
47249                                     -131.886028,
47250                                     56.737055
47251                                 ],
47252                                 [
47253                                     -131.880705,
47254                                     56.728838
47255                                 ],
47256                                 [
47257                                     -131.864789,
47258                                     56.71349
47259                                 ],
47260                                 [
47261                                     -131.838976,
47262                                     56.682278
47263                                 ],
47264                                 [
47265                                     -131.830424,
47266                                     56.664759
47267                                 ],
47268                                 [
47269                                     -131.826574,
47270                                     56.644606
47271                                 ],
47272                                 [
47273                                     -131.832103,
47274                                     56.603368
47275                                 ],
47276                                 [
47277                                     -131.825592,
47278                                     56.593343
47279                                 ],
47280                                 [
47281                                     -131.799108,
47282                                     56.587658
47283                                 ],
47284                                 [
47285                                     -131.692293,
47286                                     56.585074
47287                                 ],
47288                                 [
47289                                     -131.585891,
47290                                     56.595048
47291                                 ],
47292                                 [
47293                                     -131.560363,
47294                                     56.594066
47295                                 ],
47296                                 [
47297                                     -131.536437,
47298                                     56.585229
47299                                 ],
47300                                 [
47301                                     -131.491659,
47302                                     56.560166
47303                                 ],
47304                                 [
47305                                     -131.345699,
47306                                     56.503271
47307                                 ],
47308                                 [
47309                                     -131.215604,
47310                                     56.45255
47311                                 ],
47312                                 [
47313                                     -131.100546,
47314                                     56.407669
47315                                 ],
47316                                 [
47317                                     -131.016934,
47318                                     56.38705
47319                                 ],
47320                                 [
47321                                     -130.839089,
47322                                     56.372452
47323                                 ],
47324                                 [
47325                                     -130.760334,
47326                                     56.345192
47327                                 ],
47328                                 [
47329                                     -130.645768,
47330                                     56.261942
47331                                 ],
47332                                 [
47333                                     -130.602256,
47334                                     56.247059
47335                                 ],
47336                                 [
47337                                     -130.495518,
47338                                     56.232434
47339                                 ],
47340                                 [
47341                                     -130.47229,
47342                                     56.22489
47343                                 ],
47344                                 [
47345                                     -130.458053,
47346                                     56.210653
47347                                 ],
47348                                 [
47349                                     -130.427926,
47350                                     56.143964
47351                                 ],
47352                                 [
47353                                     -130.418159,
47354                                     56.129702
47355                                 ],
47356                                 [
47357                                     -130.403974,
47358                                     56.121898
47359                                 ],
47360                                 [
47361                                     -130.290311,
47362                                     56.10097
47363                                 ],
47364                                 [
47365                                     -130.243156,
47366                                     56.092391
47367                                 ],
47368                                 [
47369                                     -130.211246,
47370                                     56.089962
47371                                 ],
47372                                 [
47373                                     -130.116756,
47374                                     56.105646
47375                                 ],
47376                                 [
47377                                     -130.094328,
47378                                     56.101486
47379                                 ],
47380                                 [
47381                                     -130.071539,
47382                                     56.084123
47383                                 ],
47384                                 [
47385                                     -130.039319,
47386                                     56.045521
47387                                 ],
47388                                 [
47389                                     -130.026632,
47390                                     56.024101
47391                                 ],
47392                                 [
47393                                     -130.01901,
47394                                     56.002216
47395                                 ],
47396                                 [
47397                                     -130.014695,
47398                                     55.963252
47399                                 ],
47400                                 [
47401                                     -130.016788,
47402                                     55.918913
47403                                 ],
47404                                 [
47405                                     -130.019612,
47406                                     55.907978
47407                                 ],
47408                                 [
47409                                     -130.019618,
47410                                     55.907952
47411                                 ],
47412                                 [
47413                                     -130.022817,
47414                                     55.901353
47415                                 ],
47416                                 [
47417                                     -130.049387,
47418                                     55.871405
47419                                 ],
47420                                 [
47421                                     -130.104726,
47422                                     55.825263
47423                                 ],
47424                                 [
47425                                     -130.136627,
47426                                     55.806464
47427                                 ],
47428                                 [
47429                                     -130.148834,
47430                                     55.795356
47431                                 ],
47432                                 [
47433                                     -130.163482,
47434                                     55.771145
47435                                 ],
47436                                 [
47437                                     -130.167307,
47438                                     55.766262
47439                                 ],
47440                                 [
47441                                     -130.170806,
47442                                     55.759833
47443                                 ],
47444                                 [
47445                                     -130.173655,
47446                                     55.749498
47447                                 ],
47448                                 [
47449                                     -130.170806,
47450                                     55.740953
47451                                 ],
47452                                 [
47453                                     -130.163808,
47454                                     55.734565
47455                                 ],
47456                                 [
47457                                     -130.160064,
47458                                     55.727118
47459                                 ],
47460                                 [
47461                                     -130.167388,
47462                                     55.715399
47463                                 ],
47464                                 [
47465                                     -130.155914,
47466                                     55.700141
47467                                 ],
47468                                 [
47469                                     -130.142893,
47470                                     55.689521
47471                                 ],
47472                                 [
47473                                     -130.131825,
47474                                     55.676581
47475                                 ],
47476                                 [
47477                                     -130.126454,
47478                                     55.653998
47479                                 ],
47480                                 [
47481                                     -130.12857,
47482                                     55.63642
47483                                 ],
47484                                 [
47485                                     -130.135121,
47486                                     55.619127
47487                                 ],
47488                                 [
47489                                     -130.153147,
47490                                     55.58511
47491                                 ],
47492                                 [
47493                                     -130.148671,
47494                                     55.578192
47495                                 ],
47496                                 [
47497                                     -130.146881,
47498                                     55.569322
47499                                 ],
47500                                 [
47501                                     -130.146962,
47502                                     55.547187
47503                                 ],
47504                                 [
47505                                     -130.112172,
47506                                     55.509345
47507                                 ],
47508                                 [
47509                                     -130.101674,
47510                                     55.481147
47511                                 ],
47512                                 [
47513                                     -130.095082,
47514                                     55.472113
47515                                 ],
47516                                 [
47517                                     -130.065419,
47518                                     55.446112
47519                                 ],
47520                                 [
47521                                     -130.057525,
47522                                     55.434882
47523                                 ],
47524                                 [
47525                                     -130.052561,
47526                                     55.414008
47527                                 ],
47528                                 [
47529                                     -130.054311,
47530                                     55.366645
47531                                 ],
47532                                 [
47533                                     -130.05012,
47534                                     55.345445
47535                                 ],
47536                                 [
47537                                     -130.039296,
47538                                     55.330756
47539                                 ],
47540                                 [
47541                                     -129.989247,
47542                                     55.284003
47543                                 ],
47544                                 [
47545                                     -130.031239,
47546                                     55.26435
47547                                 ],
47548                                 [
47549                                     -130.050038,
47550                                     55.252875
47551                                 ],
47552                                 [
47553                                     -130.067494,
47554                                     55.239
47555                                 ],
47556                                 [
47557                                     -130.078236,
47558                                     55.233791
47559                                 ],
47560                                 [
47561                                     -130.100494,
47562                                     55.230292
47563                                 ],
47564                                 [
47565                                     -130.104726,
47566                                     55.225653
47567                                 ],
47568                                 [
47569                                     -130.105702,
47570                                     55.211127
47571                                 ],
47572                                 [
47573                                     -130.10912,
47574                                     55.200751
47575                                 ],
47576                                 [
47577                                     -130.115793,
47578                                     55.191596
47579                                 ],
47580                                 [
47581                                     -130.126454,
47582                                     55.180976
47583                                 ],
47584                                 [
47585                                     -130.151967,
47586                                     55.163275
47587                                 ],
47588                                 [
47589                                     -130.159983,
47590                                     55.153713
47591                                 ],
47592                                 [
47593                                     -130.167592,
47594                                     55.129584
47595                                 ],
47596                                 [
47597                                     -130.173695,
47598                                     55.117743
47599                                 ],
47600                                 [
47601                                     -130.200266,
47602                                     55.104153
47603                                 ],
47604                                 [
47605                                     -130.211781,
47606                                     55.084133
47607                                 ],
47608                                 [
47609                                     -130.228871,
47610                                     55.04385
47611                                 ],
47612                                 [
47613                                     -130.238678,
47614                                     55.03441
47615                                 ],
47616                                 [
47617                                     -130.261342,
47618                                     55.022895
47619                                 ],
47620                                 [
47621                                     -130.269846,
47622                                     55.016547
47623                                 ],
47624                                 [
47625                                     -130.275706,
47626                                     55.006985
47627                                 ],
47628                                 [
47629                                     -130.286366,
47630                                     54.983222
47631                                 ],
47632                                 [
47633                                     -130.294342,
47634                                     54.971869
47635                                 ],
47636                                 [
47637                                     -130.326568,
47638                                     54.952094
47639                                 ],
47640                                 [
47641                                     -130.335561,
47642                                     54.938707
47643                                 ],
47644                                 [
47645                                     -130.365387,
47646                                     54.907294
47647                                 ],
47648                                 [
47649                                     -130.385243,
47650                                     54.896552
47651                                 ],
47652                                 [
47653                                     -130.430816,
47654                                     54.881252
47655                                 ],
47656                                 [
47657                                     -130.488759,
47658                                     54.844184
47659                                 ],
47660                                 [
47661                                     -130.580312,
47662                                     54.806383
47663                                 ],
47664                                 [
47665                                     -130.597485,
47666                                     54.803391
47667                                 ],
47668                                 [
47669                                     -130.71074,
47670                                     54.733215
47671                                 ],
47672                                 [
47673                                     -131.160718,
47674                                     54.787192
47675                                 ]
47676                             ]
47677                         ]
47678                     ]
47679                 }
47680             }
47681         ]
47682     },
47683     "featureIcons": {
47684         "circle-stroked": {
47685             "12": [
47686                 42,
47687                 0
47688             ],
47689             "18": [
47690                 24,
47691                 0
47692             ],
47693             "24": [
47694                 0,
47695                 0
47696             ]
47697         },
47698         "circle": {
47699             "12": [
47700                 96,
47701                 0
47702             ],
47703             "18": [
47704                 78,
47705                 0
47706             ],
47707             "24": [
47708                 54,
47709                 0
47710             ]
47711         },
47712         "square-stroked": {
47713             "12": [
47714                 150,
47715                 0
47716             ],
47717             "18": [
47718                 132,
47719                 0
47720             ],
47721             "24": [
47722                 108,
47723                 0
47724             ]
47725         },
47726         "square": {
47727             "12": [
47728                 204,
47729                 0
47730             ],
47731             "18": [
47732                 186,
47733                 0
47734             ],
47735             "24": [
47736                 162,
47737                 0
47738             ]
47739         },
47740         "triangle-stroked": {
47741             "12": [
47742                 258,
47743                 0
47744             ],
47745             "18": [
47746                 240,
47747                 0
47748             ],
47749             "24": [
47750                 216,
47751                 0
47752             ]
47753         },
47754         "triangle": {
47755             "12": [
47756                 42,
47757                 24
47758             ],
47759             "18": [
47760                 24,
47761                 24
47762             ],
47763             "24": [
47764                 0,
47765                 24
47766             ]
47767         },
47768         "star-stroked": {
47769             "12": [
47770                 96,
47771                 24
47772             ],
47773             "18": [
47774                 78,
47775                 24
47776             ],
47777             "24": [
47778                 54,
47779                 24
47780             ]
47781         },
47782         "star": {
47783             "12": [
47784                 150,
47785                 24
47786             ],
47787             "18": [
47788                 132,
47789                 24
47790             ],
47791             "24": [
47792                 108,
47793                 24
47794             ]
47795         },
47796         "cross": {
47797             "12": [
47798                 204,
47799                 24
47800             ],
47801             "18": [
47802                 186,
47803                 24
47804             ],
47805             "24": [
47806                 162,
47807                 24
47808             ]
47809         },
47810         "marker-stroked": {
47811             "12": [
47812                 258,
47813                 24
47814             ],
47815             "18": [
47816                 240,
47817                 24
47818             ],
47819             "24": [
47820                 216,
47821                 24
47822             ]
47823         },
47824         "marker": {
47825             "12": [
47826                 42,
47827                 48
47828             ],
47829             "18": [
47830                 24,
47831                 48
47832             ],
47833             "24": [
47834                 0,
47835                 48
47836             ]
47837         },
47838         "religious-jewish": {
47839             "12": [
47840                 96,
47841                 48
47842             ],
47843             "18": [
47844                 78,
47845                 48
47846             ],
47847             "24": [
47848                 54,
47849                 48
47850             ]
47851         },
47852         "religious-christian": {
47853             "12": [
47854                 150,
47855                 48
47856             ],
47857             "18": [
47858                 132,
47859                 48
47860             ],
47861             "24": [
47862                 108,
47863                 48
47864             ]
47865         },
47866         "religious-muslim": {
47867             "12": [
47868                 204,
47869                 48
47870             ],
47871             "18": [
47872                 186,
47873                 48
47874             ],
47875             "24": [
47876                 162,
47877                 48
47878             ]
47879         },
47880         "cemetery": {
47881             "12": [
47882                 258,
47883                 48
47884             ],
47885             "18": [
47886                 240,
47887                 48
47888             ],
47889             "24": [
47890                 216,
47891                 48
47892             ]
47893         },
47894         "rocket": {
47895             "12": [
47896                 42,
47897                 72
47898             ],
47899             "18": [
47900                 24,
47901                 72
47902             ],
47903             "24": [
47904                 0,
47905                 72
47906             ]
47907         },
47908         "airport": {
47909             "12": [
47910                 96,
47911                 72
47912             ],
47913             "18": [
47914                 78,
47915                 72
47916             ],
47917             "24": [
47918                 54,
47919                 72
47920             ]
47921         },
47922         "heliport": {
47923             "12": [
47924                 150,
47925                 72
47926             ],
47927             "18": [
47928                 132,
47929                 72
47930             ],
47931             "24": [
47932                 108,
47933                 72
47934             ]
47935         },
47936         "rail": {
47937             "12": [
47938                 204,
47939                 72
47940             ],
47941             "18": [
47942                 186,
47943                 72
47944             ],
47945             "24": [
47946                 162,
47947                 72
47948             ]
47949         },
47950         "rail-metro": {
47951             "12": [
47952                 258,
47953                 72
47954             ],
47955             "18": [
47956                 240,
47957                 72
47958             ],
47959             "24": [
47960                 216,
47961                 72
47962             ]
47963         },
47964         "rail-light": {
47965             "12": [
47966                 42,
47967                 96
47968             ],
47969             "18": [
47970                 24,
47971                 96
47972             ],
47973             "24": [
47974                 0,
47975                 96
47976             ]
47977         },
47978         "bus": {
47979             "12": [
47980                 96,
47981                 96
47982             ],
47983             "18": [
47984                 78,
47985                 96
47986             ],
47987             "24": [
47988                 54,
47989                 96
47990             ]
47991         },
47992         "fuel": {
47993             "12": [
47994                 150,
47995                 96
47996             ],
47997             "18": [
47998                 132,
47999                 96
48000             ],
48001             "24": [
48002                 108,
48003                 96
48004             ]
48005         },
48006         "parking": {
48007             "12": [
48008                 204,
48009                 96
48010             ],
48011             "18": [
48012                 186,
48013                 96
48014             ],
48015             "24": [
48016                 162,
48017                 96
48018             ]
48019         },
48020         "parking-garage": {
48021             "12": [
48022                 258,
48023                 96
48024             ],
48025             "18": [
48026                 240,
48027                 96
48028             ],
48029             "24": [
48030                 216,
48031                 96
48032             ]
48033         },
48034         "airfield": {
48035             "12": [
48036                 42,
48037                 120
48038             ],
48039             "18": [
48040                 24,
48041                 120
48042             ],
48043             "24": [
48044                 0,
48045                 120
48046             ]
48047         },
48048         "roadblock": {
48049             "12": [
48050                 96,
48051                 120
48052             ],
48053             "18": [
48054                 78,
48055                 120
48056             ],
48057             "24": [
48058                 54,
48059                 120
48060             ]
48061         },
48062         "ferry": {
48063             "12": [
48064                 150,
48065                 120
48066             ],
48067             "18": [
48068                 132,
48069                 120
48070             ],
48071             "24": [
48072                 108,
48073                 120
48074             ],
48075             "line": [
48076                 2240,
48077                 25
48078             ]
48079         },
48080         "harbor": {
48081             "12": [
48082                 204,
48083                 120
48084             ],
48085             "18": [
48086                 186,
48087                 120
48088             ],
48089             "24": [
48090                 162,
48091                 120
48092             ]
48093         },
48094         "bicycle": {
48095             "12": [
48096                 258,
48097                 120
48098             ],
48099             "18": [
48100                 240,
48101                 120
48102             ],
48103             "24": [
48104                 216,
48105                 120
48106             ]
48107         },
48108         "park": {
48109             "12": [
48110                 42,
48111                 144
48112             ],
48113             "18": [
48114                 24,
48115                 144
48116             ],
48117             "24": [
48118                 0,
48119                 144
48120             ]
48121         },
48122         "park2": {
48123             "12": [
48124                 96,
48125                 144
48126             ],
48127             "18": [
48128                 78,
48129                 144
48130             ],
48131             "24": [
48132                 54,
48133                 144
48134             ]
48135         },
48136         "museum": {
48137             "12": [
48138                 150,
48139                 144
48140             ],
48141             "18": [
48142                 132,
48143                 144
48144             ],
48145             "24": [
48146                 108,
48147                 144
48148             ]
48149         },
48150         "lodging": {
48151             "12": [
48152                 204,
48153                 144
48154             ],
48155             "18": [
48156                 186,
48157                 144
48158             ],
48159             "24": [
48160                 162,
48161                 144
48162             ]
48163         },
48164         "monument": {
48165             "12": [
48166                 258,
48167                 144
48168             ],
48169             "18": [
48170                 240,
48171                 144
48172             ],
48173             "24": [
48174                 216,
48175                 144
48176             ]
48177         },
48178         "zoo": {
48179             "12": [
48180                 42,
48181                 168
48182             ],
48183             "18": [
48184                 24,
48185                 168
48186             ],
48187             "24": [
48188                 0,
48189                 168
48190             ]
48191         },
48192         "garden": {
48193             "12": [
48194                 96,
48195                 168
48196             ],
48197             "18": [
48198                 78,
48199                 168
48200             ],
48201             "24": [
48202                 54,
48203                 168
48204             ]
48205         },
48206         "campsite": {
48207             "12": [
48208                 150,
48209                 168
48210             ],
48211             "18": [
48212                 132,
48213                 168
48214             ],
48215             "24": [
48216                 108,
48217                 168
48218             ]
48219         },
48220         "theatre": {
48221             "12": [
48222                 204,
48223                 168
48224             ],
48225             "18": [
48226                 186,
48227                 168
48228             ],
48229             "24": [
48230                 162,
48231                 168
48232             ]
48233         },
48234         "art-gallery": {
48235             "12": [
48236                 258,
48237                 168
48238             ],
48239             "18": [
48240                 240,
48241                 168
48242             ],
48243             "24": [
48244                 216,
48245                 168
48246             ]
48247         },
48248         "pitch": {
48249             "12": [
48250                 42,
48251                 192
48252             ],
48253             "18": [
48254                 24,
48255                 192
48256             ],
48257             "24": [
48258                 0,
48259                 192
48260             ]
48261         },
48262         "soccer": {
48263             "12": [
48264                 96,
48265                 192
48266             ],
48267             "18": [
48268                 78,
48269                 192
48270             ],
48271             "24": [
48272                 54,
48273                 192
48274             ]
48275         },
48276         "america-football": {
48277             "12": [
48278                 150,
48279                 192
48280             ],
48281             "18": [
48282                 132,
48283                 192
48284             ],
48285             "24": [
48286                 108,
48287                 192
48288             ]
48289         },
48290         "tennis": {
48291             "12": [
48292                 204,
48293                 192
48294             ],
48295             "18": [
48296                 186,
48297                 192
48298             ],
48299             "24": [
48300                 162,
48301                 192
48302             ]
48303         },
48304         "basketball": {
48305             "12": [
48306                 258,
48307                 192
48308             ],
48309             "18": [
48310                 240,
48311                 192
48312             ],
48313             "24": [
48314                 216,
48315                 192
48316             ]
48317         },
48318         "baseball": {
48319             "12": [
48320                 42,
48321                 216
48322             ],
48323             "18": [
48324                 24,
48325                 216
48326             ],
48327             "24": [
48328                 0,
48329                 216
48330             ]
48331         },
48332         "golf": {
48333             "12": [
48334                 96,
48335                 216
48336             ],
48337             "18": [
48338                 78,
48339                 216
48340             ],
48341             "24": [
48342                 54,
48343                 216
48344             ]
48345         },
48346         "swimming": {
48347             "12": [
48348                 150,
48349                 216
48350             ],
48351             "18": [
48352                 132,
48353                 216
48354             ],
48355             "24": [
48356                 108,
48357                 216
48358             ]
48359         },
48360         "cricket": {
48361             "12": [
48362                 204,
48363                 216
48364             ],
48365             "18": [
48366                 186,
48367                 216
48368             ],
48369             "24": [
48370                 162,
48371                 216
48372             ]
48373         },
48374         "skiing": {
48375             "12": [
48376                 258,
48377                 216
48378             ],
48379             "18": [
48380                 240,
48381                 216
48382             ],
48383             "24": [
48384                 216,
48385                 216
48386             ]
48387         },
48388         "school": {
48389             "12": [
48390                 42,
48391                 240
48392             ],
48393             "18": [
48394                 24,
48395                 240
48396             ],
48397             "24": [
48398                 0,
48399                 240
48400             ]
48401         },
48402         "college": {
48403             "12": [
48404                 96,
48405                 240
48406             ],
48407             "18": [
48408                 78,
48409                 240
48410             ],
48411             "24": [
48412                 54,
48413                 240
48414             ]
48415         },
48416         "library": {
48417             "12": [
48418                 150,
48419                 240
48420             ],
48421             "18": [
48422                 132,
48423                 240
48424             ],
48425             "24": [
48426                 108,
48427                 240
48428             ]
48429         },
48430         "post": {
48431             "12": [
48432                 204,
48433                 240
48434             ],
48435             "18": [
48436                 186,
48437                 240
48438             ],
48439             "24": [
48440                 162,
48441                 240
48442             ]
48443         },
48444         "fire-station": {
48445             "12": [
48446                 258,
48447                 240
48448             ],
48449             "18": [
48450                 240,
48451                 240
48452             ],
48453             "24": [
48454                 216,
48455                 240
48456             ]
48457         },
48458         "town-hall": {
48459             "12": [
48460                 42,
48461                 264
48462             ],
48463             "18": [
48464                 24,
48465                 264
48466             ],
48467             "24": [
48468                 0,
48469                 264
48470             ]
48471         },
48472         "police": {
48473             "12": [
48474                 96,
48475                 264
48476             ],
48477             "18": [
48478                 78,
48479                 264
48480             ],
48481             "24": [
48482                 54,
48483                 264
48484             ]
48485         },
48486         "prison": {
48487             "12": [
48488                 150,
48489                 264
48490             ],
48491             "18": [
48492                 132,
48493                 264
48494             ],
48495             "24": [
48496                 108,
48497                 264
48498             ]
48499         },
48500         "embassy": {
48501             "12": [
48502                 204,
48503                 264
48504             ],
48505             "18": [
48506                 186,
48507                 264
48508             ],
48509             "24": [
48510                 162,
48511                 264
48512             ]
48513         },
48514         "beer": {
48515             "12": [
48516                 258,
48517                 264
48518             ],
48519             "18": [
48520                 240,
48521                 264
48522             ],
48523             "24": [
48524                 216,
48525                 264
48526             ]
48527         },
48528         "restaurant": {
48529             "12": [
48530                 42,
48531                 288
48532             ],
48533             "18": [
48534                 24,
48535                 288
48536             ],
48537             "24": [
48538                 0,
48539                 288
48540             ]
48541         },
48542         "cafe": {
48543             "12": [
48544                 96,
48545                 288
48546             ],
48547             "18": [
48548                 78,
48549                 288
48550             ],
48551             "24": [
48552                 54,
48553                 288
48554             ]
48555         },
48556         "shop": {
48557             "12": [
48558                 150,
48559                 288
48560             ],
48561             "18": [
48562                 132,
48563                 288
48564             ],
48565             "24": [
48566                 108,
48567                 288
48568             ]
48569         },
48570         "fast-food": {
48571             "12": [
48572                 204,
48573                 288
48574             ],
48575             "18": [
48576                 186,
48577                 288
48578             ],
48579             "24": [
48580                 162,
48581                 288
48582             ]
48583         },
48584         "bar": {
48585             "12": [
48586                 258,
48587                 288
48588             ],
48589             "18": [
48590                 240,
48591                 288
48592             ],
48593             "24": [
48594                 216,
48595                 288
48596             ]
48597         },
48598         "bank": {
48599             "12": [
48600                 42,
48601                 312
48602             ],
48603             "18": [
48604                 24,
48605                 312
48606             ],
48607             "24": [
48608                 0,
48609                 312
48610             ]
48611         },
48612         "grocery": {
48613             "12": [
48614                 96,
48615                 312
48616             ],
48617             "18": [
48618                 78,
48619                 312
48620             ],
48621             "24": [
48622                 54,
48623                 312
48624             ]
48625         },
48626         "cinema": {
48627             "12": [
48628                 150,
48629                 312
48630             ],
48631             "18": [
48632                 132,
48633                 312
48634             ],
48635             "24": [
48636                 108,
48637                 312
48638             ]
48639         },
48640         "pharmacy": {
48641             "12": [
48642                 204,
48643                 312
48644             ],
48645             "18": [
48646                 186,
48647                 312
48648             ],
48649             "24": [
48650                 162,
48651                 312
48652             ]
48653         },
48654         "hospital": {
48655             "12": [
48656                 258,
48657                 312
48658             ],
48659             "18": [
48660                 240,
48661                 312
48662             ],
48663             "24": [
48664                 216,
48665                 312
48666             ]
48667         },
48668         "danger": {
48669             "12": [
48670                 42,
48671                 336
48672             ],
48673             "18": [
48674                 24,
48675                 336
48676             ],
48677             "24": [
48678                 0,
48679                 336
48680             ]
48681         },
48682         "industrial": {
48683             "12": [
48684                 96,
48685                 336
48686             ],
48687             "18": [
48688                 78,
48689                 336
48690             ],
48691             "24": [
48692                 54,
48693                 336
48694             ]
48695         },
48696         "warehouse": {
48697             "12": [
48698                 150,
48699                 336
48700             ],
48701             "18": [
48702                 132,
48703                 336
48704             ],
48705             "24": [
48706                 108,
48707                 336
48708             ]
48709         },
48710         "commercial": {
48711             "12": [
48712                 204,
48713                 336
48714             ],
48715             "18": [
48716                 186,
48717                 336
48718             ],
48719             "24": [
48720                 162,
48721                 336
48722             ]
48723         },
48724         "building": {
48725             "12": [
48726                 258,
48727                 336
48728             ],
48729             "18": [
48730                 240,
48731                 336
48732             ],
48733             "24": [
48734                 216,
48735                 336
48736             ]
48737         },
48738         "place-of-worship": {
48739             "12": [
48740                 42,
48741                 360
48742             ],
48743             "18": [
48744                 24,
48745                 360
48746             ],
48747             "24": [
48748                 0,
48749                 360
48750             ]
48751         },
48752         "alcohol-shop": {
48753             "12": [
48754                 96,
48755                 360
48756             ],
48757             "18": [
48758                 78,
48759                 360
48760             ],
48761             "24": [
48762                 54,
48763                 360
48764             ]
48765         },
48766         "logging": {
48767             "12": [
48768                 150,
48769                 360
48770             ],
48771             "18": [
48772                 132,
48773                 360
48774             ],
48775             "24": [
48776                 108,
48777                 360
48778             ]
48779         },
48780         "oil-well": {
48781             "12": [
48782                 204,
48783                 360
48784             ],
48785             "18": [
48786                 186,
48787                 360
48788             ],
48789             "24": [
48790                 162,
48791                 360
48792             ]
48793         },
48794         "slaughterhouse": {
48795             "12": [
48796                 258,
48797                 360
48798             ],
48799             "18": [
48800                 240,
48801                 360
48802             ],
48803             "24": [
48804                 216,
48805                 360
48806             ]
48807         },
48808         "dam": {
48809             "12": [
48810                 42,
48811                 384
48812             ],
48813             "18": [
48814                 24,
48815                 384
48816             ],
48817             "24": [
48818                 0,
48819                 384
48820             ]
48821         },
48822         "water": {
48823             "12": [
48824                 96,
48825                 384
48826             ],
48827             "18": [
48828                 78,
48829                 384
48830             ],
48831             "24": [
48832                 54,
48833                 384
48834             ]
48835         },
48836         "wetland": {
48837             "12": [
48838                 150,
48839                 384
48840             ],
48841             "18": [
48842                 132,
48843                 384
48844             ],
48845             "24": [
48846                 108,
48847                 384
48848             ]
48849         },
48850         "disability": {
48851             "12": [
48852                 204,
48853                 384
48854             ],
48855             "18": [
48856                 186,
48857                 384
48858             ],
48859             "24": [
48860                 162,
48861                 384
48862             ]
48863         },
48864         "telephone": {
48865             "12": [
48866                 258,
48867                 384
48868             ],
48869             "18": [
48870                 240,
48871                 384
48872             ],
48873             "24": [
48874                 216,
48875                 384
48876             ]
48877         },
48878         "emergency-telephone": {
48879             "12": [
48880                 42,
48881                 408
48882             ],
48883             "18": [
48884                 24,
48885                 408
48886             ],
48887             "24": [
48888                 0,
48889                 408
48890             ]
48891         },
48892         "toilets": {
48893             "12": [
48894                 96,
48895                 408
48896             ],
48897             "18": [
48898                 78,
48899                 408
48900             ],
48901             "24": [
48902                 54,
48903                 408
48904             ]
48905         },
48906         "waste-basket": {
48907             "12": [
48908                 150,
48909                 408
48910             ],
48911             "18": [
48912                 132,
48913                 408
48914             ],
48915             "24": [
48916                 108,
48917                 408
48918             ]
48919         },
48920         "music": {
48921             "12": [
48922                 204,
48923                 408
48924             ],
48925             "18": [
48926                 186,
48927                 408
48928             ],
48929             "24": [
48930                 162,
48931                 408
48932             ]
48933         },
48934         "land-use": {
48935             "12": [
48936                 258,
48937                 408
48938             ],
48939             "18": [
48940                 240,
48941                 408
48942             ],
48943             "24": [
48944                 216,
48945                 408
48946             ]
48947         },
48948         "city": {
48949             "12": [
48950                 42,
48951                 432
48952             ],
48953             "18": [
48954                 24,
48955                 432
48956             ],
48957             "24": [
48958                 0,
48959                 432
48960             ]
48961         },
48962         "town": {
48963             "12": [
48964                 96,
48965                 432
48966             ],
48967             "18": [
48968                 78,
48969                 432
48970             ],
48971             "24": [
48972                 54,
48973                 432
48974             ]
48975         },
48976         "village": {
48977             "12": [
48978                 150,
48979                 432
48980             ],
48981             "18": [
48982                 132,
48983                 432
48984             ],
48985             "24": [
48986                 108,
48987                 432
48988             ]
48989         },
48990         "farm": {
48991             "12": [
48992                 204,
48993                 432
48994             ],
48995             "18": [
48996                 186,
48997                 432
48998             ],
48999             "24": [
49000                 162,
49001                 432
49002             ]
49003         },
49004         "bakery": {
49005             "12": [
49006                 258,
49007                 432
49008             ],
49009             "18": [
49010                 240,
49011                 432
49012             ],
49013             "24": [
49014                 216,
49015                 432
49016             ]
49017         },
49018         "dog-park": {
49019             "12": [
49020                 42,
49021                 456
49022             ],
49023             "18": [
49024                 24,
49025                 456
49026             ],
49027             "24": [
49028                 0,
49029                 456
49030             ]
49031         },
49032         "lighthouse": {
49033             "12": [
49034                 96,
49035                 456
49036             ],
49037             "18": [
49038                 78,
49039                 456
49040             ],
49041             "24": [
49042                 54,
49043                 456
49044             ]
49045         },
49046         "clothing-store": {
49047             "12": [
49048                 150,
49049                 456
49050             ],
49051             "18": [
49052                 132,
49053                 456
49054             ],
49055             "24": [
49056                 108,
49057                 456
49058             ]
49059         },
49060         "polling-place": {
49061             "12": [
49062                 204,
49063                 456
49064             ],
49065             "18": [
49066                 186,
49067                 456
49068             ],
49069             "24": [
49070                 162,
49071                 456
49072             ]
49073         },
49074         "playground": {
49075             "12": [
49076                 258,
49077                 456
49078             ],
49079             "18": [
49080                 240,
49081                 456
49082             ],
49083             "24": [
49084                 216,
49085                 456
49086             ]
49087         },
49088         "entrance": {
49089             "12": [
49090                 42,
49091                 480
49092             ],
49093             "18": [
49094                 24,
49095                 480
49096             ],
49097             "24": [
49098                 0,
49099                 480
49100             ]
49101         },
49102         "heart": {
49103             "12": [
49104                 96,
49105                 480
49106             ],
49107             "18": [
49108                 78,
49109                 480
49110             ],
49111             "24": [
49112                 54,
49113                 480
49114             ]
49115         },
49116         "london-underground": {
49117             "12": [
49118                 150,
49119                 480
49120             ],
49121             "18": [
49122                 132,
49123                 480
49124             ],
49125             "24": [
49126                 108,
49127                 480
49128             ]
49129         },
49130         "minefield": {
49131             "12": [
49132                 204,
49133                 480
49134             ],
49135             "18": [
49136                 186,
49137                 480
49138             ],
49139             "24": [
49140                 162,
49141                 480
49142             ]
49143         },
49144         "rail-underground": {
49145             "12": [
49146                 258,
49147                 480
49148             ],
49149             "18": [
49150                 240,
49151                 480
49152             ],
49153             "24": [
49154                 216,
49155                 480
49156             ]
49157         },
49158         "rail-above": {
49159             "12": [
49160                 42,
49161                 504
49162             ],
49163             "18": [
49164                 24,
49165                 504
49166             ],
49167             "24": [
49168                 0,
49169                 504
49170             ]
49171         },
49172         "camera": {
49173             "12": [
49174                 96,
49175                 504
49176             ],
49177             "18": [
49178                 78,
49179                 504
49180             ],
49181             "24": [
49182                 54,
49183                 504
49184             ]
49185         },
49186         "laundry": {
49187             "12": [
49188                 150,
49189                 504
49190             ],
49191             "18": [
49192                 132,
49193                 504
49194             ],
49195             "24": [
49196                 108,
49197                 504
49198             ]
49199         },
49200         "car": {
49201             "12": [
49202                 204,
49203                 504
49204             ],
49205             "18": [
49206                 186,
49207                 504
49208             ],
49209             "24": [
49210                 162,
49211                 504
49212             ]
49213         },
49214         "suitcase": {
49215             "12": [
49216                 258,
49217                 504
49218             ],
49219             "18": [
49220                 240,
49221                 504
49222             ],
49223             "24": [
49224                 216,
49225                 504
49226             ]
49227         },
49228         "hairdresser": {
49229             "12": [
49230                 42,
49231                 528
49232             ],
49233             "18": [
49234                 24,
49235                 528
49236             ],
49237             "24": [
49238                 0,
49239                 528
49240             ]
49241         },
49242         "chemist": {
49243             "12": [
49244                 96,
49245                 528
49246             ],
49247             "18": [
49248                 78,
49249                 528
49250             ],
49251             "24": [
49252                 54,
49253                 528
49254             ]
49255         },
49256         "mobilephone": {
49257             "12": [
49258                 150,
49259                 528
49260             ],
49261             "18": [
49262                 132,
49263                 528
49264             ],
49265             "24": [
49266                 108,
49267                 528
49268             ]
49269         },
49270         "scooter": {
49271             "12": [
49272                 204,
49273                 528
49274             ],
49275             "18": [
49276                 186,
49277                 528
49278             ],
49279             "24": [
49280                 162,
49281                 528
49282             ]
49283         },
49284         "gift": {
49285             "12": [
49286                 258,
49287                 528
49288             ],
49289             "18": [
49290                 240,
49291                 528
49292             ],
49293             "24": [
49294                 216,
49295                 528
49296             ]
49297         },
49298         "ice-cream": {
49299             "12": [
49300                 42,
49301                 552
49302             ],
49303             "18": [
49304                 24,
49305                 552
49306             ],
49307             "24": [
49308                 0,
49309                 552
49310             ]
49311         },
49312         "highway-motorway": {
49313             "line": [
49314                 20,
49315                 25
49316             ]
49317         },
49318         "highway-trunk": {
49319             "line": [
49320                 80,
49321                 25
49322             ]
49323         },
49324         "highway-primary": {
49325             "line": [
49326                 140,
49327                 25
49328             ]
49329         },
49330         "highway-secondary": {
49331             "line": [
49332                 200,
49333                 25
49334             ]
49335         },
49336         "highway-tertiary": {
49337             "line": [
49338                 260,
49339                 25
49340             ]
49341         },
49342         "highway-motorway-link": {
49343             "line": [
49344                 320,
49345                 25
49346             ]
49347         },
49348         "highway-trunk-link": {
49349             "line": [
49350                 380,
49351                 25
49352             ]
49353         },
49354         "highway-primary-link": {
49355             "line": [
49356                 440,
49357                 25
49358             ]
49359         },
49360         "highway-secondary-link": {
49361             "line": [
49362                 500,
49363                 25
49364             ]
49365         },
49366         "highway-tertiary-link": {
49367             "line": [
49368                 560,
49369                 25
49370             ]
49371         },
49372         "highway-residential": {
49373             "line": [
49374                 620,
49375                 25
49376             ]
49377         },
49378         "highway-unclassified": {
49379             "line": [
49380                 680,
49381                 25
49382             ]
49383         },
49384         "highway-service": {
49385             "line": [
49386                 740,
49387                 25
49388             ]
49389         },
49390         "highway-road": {
49391             "line": [
49392                 800,
49393                 25
49394             ]
49395         },
49396         "highway-track": {
49397             "line": [
49398                 860,
49399                 25
49400             ]
49401         },
49402         "highway-living-street": {
49403             "line": [
49404                 920,
49405                 25
49406             ]
49407         },
49408         "highway-path": {
49409             "line": [
49410                 980,
49411                 25
49412             ]
49413         },
49414         "highway-cycleway": {
49415             "line": [
49416                 1040,
49417                 25
49418             ]
49419         },
49420         "highway-footway": {
49421             "line": [
49422                 1100,
49423                 25
49424             ]
49425         },
49426         "highway-bridleway": {
49427             "line": [
49428                 1160,
49429                 25
49430             ]
49431         },
49432         "highway-steps": {
49433             "line": [
49434                 1220,
49435                 25
49436             ]
49437         },
49438         "railway-rail": {
49439             "line": [
49440                 1280,
49441                 25
49442             ]
49443         },
49444         "railway-disused": {
49445             "line": [
49446                 1340,
49447                 25
49448             ]
49449         },
49450         "railway-abandoned": {
49451             "line": [
49452                 1400,
49453                 25
49454             ]
49455         },
49456         "railway-subway": {
49457             "line": [
49458                 1460,
49459                 25
49460             ]
49461         },
49462         "railway-light-rail": {
49463             "line": [
49464                 1520,
49465                 25
49466             ]
49467         },
49468         "railway-monorail": {
49469             "line": [
49470                 1580,
49471                 25
49472             ]
49473         },
49474         "waterway-river": {
49475             "line": [
49476                 1640,
49477                 25
49478             ]
49479         },
49480         "waterway-stream": {
49481             "line": [
49482                 1700,
49483                 25
49484             ]
49485         },
49486         "waterway-canal": {
49487             "line": [
49488                 1760,
49489                 25
49490             ]
49491         },
49492         "waterway-ditch": {
49493             "line": [
49494                 1820,
49495                 25
49496             ]
49497         },
49498         "power-line": {
49499             "line": [
49500                 1880,
49501                 25
49502             ]
49503         },
49504         "other-line": {
49505             "line": [
49506                 1940,
49507                 25
49508             ]
49509         },
49510         "category-roads": {
49511             "line": [
49512                 2000,
49513                 25
49514             ]
49515         },
49516         "category-rail": {
49517             "line": [
49518                 2060,
49519                 25
49520             ]
49521         },
49522         "category-path": {
49523             "line": [
49524                 2120,
49525                 25
49526             ]
49527         },
49528         "category-water": {
49529             "line": [
49530                 2180,
49531                 25
49532             ]
49533         },
49534         "pipeline": {
49535             "line": [
49536                 2300,
49537                 25
49538             ]
49539         },
49540         "relation": {
49541             "relation": [
49542                 20,
49543                 25
49544             ]
49545         },
49546         "restriction": {
49547             "relation": [
49548                 80,
49549                 25
49550             ]
49551         },
49552         "multipolygon": {
49553             "relation": [
49554                 140,
49555                 25
49556             ]
49557         },
49558         "boundary": {
49559             "relation": [
49560                 200,
49561                 25
49562             ]
49563         },
49564         "route": {
49565             "relation": [
49566                 260,
49567                 25
49568             ]
49569         },
49570         "route-road": {
49571             "relation": [
49572                 320,
49573                 25
49574             ]
49575         },
49576         "route-bicycle": {
49577             "relation": [
49578                 380,
49579                 25
49580             ]
49581         },
49582         "route-foot": {
49583             "relation": [
49584                 440,
49585                 25
49586             ]
49587         },
49588         "route-bus": {
49589             "relation": [
49590                 500,
49591                 25
49592             ]
49593         },
49594         "route-train": {
49595             "relation": [
49596                 560,
49597                 25
49598             ]
49599         },
49600         "route-detour": {
49601             "relation": [
49602                 620,
49603                 25
49604             ]
49605         },
49606         "route-tram": {
49607             "relation": [
49608                 680,
49609                 25
49610             ]
49611         },
49612         "route-ferry": {
49613             "relation": [
49614                 740,
49615                 25
49616             ]
49617         },
49618         "route-power": {
49619             "relation": [
49620                 800,
49621                 25
49622             ]
49623         },
49624         "route-pipeline": {
49625             "relation": [
49626                 860,
49627                 25
49628             ]
49629         },
49630         "route-master": {
49631             "relation": [
49632                 920,
49633                 25
49634             ]
49635         },
49636         "restriction-no-straight-on": {
49637             "relation": [
49638                 980,
49639                 25
49640             ]
49641         },
49642         "restriction-no-u-turn": {
49643             "relation": [
49644                 1040,
49645                 25
49646             ]
49647         },
49648         "restriction-no-left-turn": {
49649             "relation": [
49650                 1100,
49651                 25
49652             ]
49653         },
49654         "restriction-no-right-turn": {
49655             "relation": [
49656                 1160,
49657                 25
49658             ]
49659         },
49660         "restriction-only-straight-on": {
49661             "relation": [
49662                 1220,
49663                 25
49664             ]
49665         },
49666         "restriction-only-left-turn": {
49667             "relation": [
49668                 1280,
49669                 25
49670             ]
49671         },
49672         "restriction-only-right-turn": {
49673             "relation": [
49674                 1340,
49675                 25
49676             ]
49677         }
49678     },
49679     "operations": {
49680         "icon-operation-delete": [
49681             0,
49682             140
49683         ],
49684         "icon-operation-circularize": [
49685             20,
49686             140
49687         ],
49688         "icon-operation-straighten": [
49689             40,
49690             140
49691         ],
49692         "icon-operation-split": [
49693             60,
49694             140
49695         ],
49696         "icon-operation-disconnect": [
49697             80,
49698             140
49699         ],
49700         "icon-operation-reverse": [
49701             100,
49702             140
49703         ],
49704         "icon-operation-move": [
49705             120,
49706             140
49707         ],
49708         "icon-operation-merge": [
49709             140,
49710             140
49711         ],
49712         "icon-operation-orthogonalize": [
49713             160,
49714             140
49715         ],
49716         "icon-operation-rotate": [
49717             180,
49718             140
49719         ],
49720         "icon-operation-simplify": [
49721             200,
49722             140
49723         ],
49724         "icon-operation-continue": [
49725             220,
49726             140
49727         ],
49728         "icon-operation-disabled-delete": [
49729             0,
49730             160
49731         ],
49732         "icon-operation-disabled-circularize": [
49733             20,
49734             160
49735         ],
49736         "icon-operation-disabled-straighten": [
49737             40,
49738             160
49739         ],
49740         "icon-operation-disabled-split": [
49741             60,
49742             160
49743         ],
49744         "icon-operation-disabled-disconnect": [
49745             80,
49746             160
49747         ],
49748         "icon-operation-disabled-reverse": [
49749             100,
49750             160
49751         ],
49752         "icon-operation-disabled-move": [
49753             120,
49754             160
49755         ],
49756         "icon-operation-disabled-merge": [
49757             140,
49758             160
49759         ],
49760         "icon-operation-disabled-orthogonalize": [
49761             160,
49762             160
49763         ],
49764         "icon-operation-disabled-rotate": [
49765             180,
49766             160
49767         ],
49768         "icon-operation-disabled-simplify": [
49769             200,
49770             160
49771         ],
49772         "icon-operation-disabled-continue": [
49773             220,
49774             160
49775         ],
49776         "icon-restriction-yes": [
49777             50,
49778             80
49779         ],
49780         "icon-restriction-no": [
49781             95,
49782             80
49783         ],
49784         "icon-restriction-only": [
49785             140,
49786             80
49787         ],
49788         "icon-restriction-yes-u": [
49789             185,
49790             80
49791         ],
49792         "icon-restriction-no-u": [
49793             230,
49794             80
49795         ],
49796         "icon-restriction-only-u": [
49797             275,
49798             80
49799         ]
49800     },
49801     "locales": [
49802         "af",
49803         "ar",
49804         "ar-AA",
49805         "hy",
49806         "ast",
49807         "bn",
49808         "bs",
49809         "bg-BG",
49810         "ca",
49811         "zh",
49812         "zh-CN",
49813         "zh-HK",
49814         "zh-TW",
49815         "yue",
49816         "hr",
49817         "cs",
49818         "da",
49819         "nl",
49820         "en-GB",
49821         "eo",
49822         "et",
49823         "fi",
49824         "fr",
49825         "gl",
49826         "de",
49827         "el",
49828         "hi-IN",
49829         "hu",
49830         "is",
49831         "id",
49832         "it",
49833         "ja",
49834         "kn",
49835         "ko",
49836         "ko-KR",
49837         "lv",
49838         "lt",
49839         "no",
49840         "fa",
49841         "pl",
49842         "pt",
49843         "pt-BR",
49844         "ro-RO",
49845         "ru",
49846         "sc",
49847         "sr",
49848         "si",
49849         "sk",
49850         "sl",
49851         "es",
49852         "sv",
49853         "tl",
49854         "ta",
49855         "te",
49856         "tr",
49857         "uk",
49858         "vi"
49859     ],
49860     "en": {
49861         "modes": {
49862             "add_area": {
49863                 "title": "Area",
49864                 "description": "Add parks, buildings, lakes or other areas to the map.",
49865                 "tail": "Click on the map to start drawing an area, like a park, lake, or building."
49866             },
49867             "add_line": {
49868                 "title": "Line",
49869                 "description": "Add highways, streets, pedestrian paths, canals or other lines to the map.",
49870                 "tail": "Click on the map to start drawing a road, path, or route."
49871             },
49872             "add_point": {
49873                 "title": "Point",
49874                 "description": "Add restaurants, monuments, postal boxes or other points to the map.",
49875                 "tail": "Click on the map to add a point."
49876             },
49877             "browse": {
49878                 "title": "Browse",
49879                 "description": "Pan and zoom the map."
49880             },
49881             "draw_area": {
49882                 "tail": "Click to add nodes to your area. Click the first node to finish the area."
49883             },
49884             "draw_line": {
49885                 "tail": "Click to add more nodes to the line. Click on other lines to connect to them, and double-click to end the line."
49886             }
49887         },
49888         "operations": {
49889             "add": {
49890                 "annotation": {
49891                     "point": "Added a point.",
49892                     "vertex": "Added a node to a way.",
49893                     "relation": "Added a relation."
49894                 }
49895             },
49896             "start": {
49897                 "annotation": {
49898                     "line": "Started a line.",
49899                     "area": "Started an area."
49900                 }
49901             },
49902             "continue": {
49903                 "key": "A",
49904                 "title": "Continue",
49905                 "description": "Continue this line.",
49906                 "not_eligible": "No line can be continued here.",
49907                 "multiple": "Several lines can be continued here. To choose a line, press the Shift key and click on it to select it.",
49908                 "annotation": {
49909                     "line": "Continued a line.",
49910                     "area": "Continued an area."
49911                 }
49912             },
49913             "cancel_draw": {
49914                 "annotation": "Canceled drawing."
49915             },
49916             "change_role": {
49917                 "annotation": "Changed the role of a relation member."
49918             },
49919             "change_tags": {
49920                 "annotation": "Changed tags."
49921             },
49922             "circularize": {
49923                 "title": "Circularize",
49924                 "description": {
49925                     "line": "Make this line circular.",
49926                     "area": "Make this area circular."
49927                 },
49928                 "key": "O",
49929                 "annotation": {
49930                     "line": "Made a line circular.",
49931                     "area": "Made an area circular."
49932                 },
49933                 "not_closed": "This can't be made circular because it's not a loop.",
49934                 "too_large": "This can't be made circular because not enough of it is currently visible.",
49935                 "connected_to_hidden": "This can't be made circular because it is connected to a hidden feature."
49936             },
49937             "orthogonalize": {
49938                 "title": "Square",
49939                 "description": {
49940                     "line": "Square the corners of this line.",
49941                     "area": "Square the corners of this area."
49942                 },
49943                 "key": "S",
49944                 "annotation": {
49945                     "line": "Squared the corners of a line.",
49946                     "area": "Squared the corners of an area."
49947                 },
49948                 "not_squarish": "This can't be made square because it is not squarish.",
49949                 "too_large": "This can't be made square because not enough of it is currently visible.",
49950                 "connected_to_hidden": "This can't be made square because it is connected to a hidden feature."
49951             },
49952             "straighten": {
49953                 "title": "Straighten",
49954                 "description": "Straighten this line.",
49955                 "key": "S",
49956                 "annotation": "Straightened a line.",
49957                 "too_bendy": "This can't be straightened because it bends too much.",
49958                 "connected_to_hidden": "This line can't be straightened because it is connected to a hidden feature."
49959             },
49960             "delete": {
49961                 "title": "Delete",
49962                 "description": "Delete object permanently.",
49963                 "annotation": {
49964                     "point": "Deleted a point.",
49965                     "vertex": "Deleted a node from a way.",
49966                     "line": "Deleted a line.",
49967                     "area": "Deleted an area.",
49968                     "relation": "Deleted a relation.",
49969                     "multiple": "Deleted {n} objects."
49970                 },
49971                 "incomplete_relation": "This feature can't be deleted because it hasn't been fully downloaded.",
49972                 "part_of_relation": "This feature can't be deleted because it's part of a larger relation. You must remove it from the relation first.",
49973                 "connected_to_hidden": "This can't be deleted because it is connected to a hidden feature."
49974             },
49975             "add_member": {
49976                 "annotation": "Added a member to a relation."
49977             },
49978             "delete_member": {
49979                 "annotation": "Removed a member from a relation."
49980             },
49981             "connect": {
49982                 "annotation": {
49983                     "point": "Connected a way to a point.",
49984                     "vertex": "Connected a way to another.",
49985                     "line": "Connected a way to a line.",
49986                     "area": "Connected a way to an area."
49987                 }
49988             },
49989             "disconnect": {
49990                 "title": "Disconnect",
49991                 "description": "Disconnect these lines/areas from each other.",
49992                 "key": "D",
49993                 "annotation": "Disconnected lines/areas.",
49994                 "not_connected": "There aren't enough lines/areas here to disconnect.",
49995                 "connected_to_hidden": "This can't be disconnected because it is connected to a hidden feature."
49996             },
49997             "merge": {
49998                 "title": "Merge",
49999                 "description": "Merge these lines.",
50000                 "key": "C",
50001                 "annotation": "Merged {n} lines.",
50002                 "not_eligible": "These features can't be merged.",
50003                 "not_adjacent": "These lines can't be merged because they aren't connected.",
50004                 "restriction": "These lines can't be merged because at least one is a member of a \"{relation}\" relation.",
50005                 "incomplete_relation": "These features can't be merged because at least one hasn't been fully downloaded."
50006             },
50007             "move": {
50008                 "title": "Move",
50009                 "description": "Move this to a different location.",
50010                 "key": "M",
50011                 "annotation": {
50012                     "point": "Moved a point.",
50013                     "vertex": "Moved a node in a way.",
50014                     "line": "Moved a line.",
50015                     "area": "Moved an area.",
50016                     "multiple": "Moved multiple objects."
50017                 },
50018                 "incomplete_relation": "This feature can't be moved because it hasn't been fully downloaded.",
50019                 "too_large": "This can't be moved because not enough of it is currently visible.",
50020                 "connected_to_hidden": "This can't be moved because it is connected to a hidden feature."
50021             },
50022             "rotate": {
50023                 "title": "Rotate",
50024                 "description": "Rotate this object around its center point.",
50025                 "key": "R",
50026                 "annotation": {
50027                     "line": "Rotated a line.",
50028                     "area": "Rotated an area."
50029                 },
50030                 "too_large": "This can't be rotated because not enough of it is currently visible.",
50031                 "connected_to_hidden": "This can't be rotated because it is connected to a hidden feature."
50032             },
50033             "reverse": {
50034                 "title": "Reverse",
50035                 "description": "Make this line go in the opposite direction.",
50036                 "key": "V",
50037                 "annotation": "Reversed a line."
50038             },
50039             "split": {
50040                 "title": "Split",
50041                 "description": {
50042                     "line": "Split this line into two at this node.",
50043                     "area": "Split the boundary of this area into two.",
50044                     "multiple": "Split the lines/area boundaries at this node into two."
50045                 },
50046                 "key": "X",
50047                 "annotation": {
50048                     "line": "Split a line.",
50049                     "area": "Split an area boundary.",
50050                     "multiple": "Split {n} lines/area boundaries."
50051                 },
50052                 "not_eligible": "Lines can't be split at their beginning or end.",
50053                 "multiple_ways": "There are too many lines here to split.",
50054                 "connected_to_hidden": "This can't be split because it is connected to a hidden feature."
50055             },
50056             "restriction": {
50057                 "help": {
50058                     "select": "Click to select a road segment.",
50059                     "toggle": "Click to toggle turn restrictions.",
50060                     "toggle_on": "Click to add a \"{restriction}\" restriction.",
50061                     "toggle_off": "Click to remove the \"{restriction}\" restriction."
50062                 },
50063                 "annotation": {
50064                     "create": "Added a turn restriction",
50065                     "delete": "Deleted a turn restriction"
50066                 }
50067             }
50068         },
50069         "undo": {
50070             "tooltip": "Undo: {action}",
50071             "nothing": "Nothing to undo."
50072         },
50073         "redo": {
50074             "tooltip": "Redo: {action}",
50075             "nothing": "Nothing to redo."
50076         },
50077         "tooltip_keyhint": "Shortcut:",
50078         "browser_notice": "This editor is supported in Firefox, Chrome, Safari, Opera, and Internet Explorer 9 and above. Please upgrade your browser or use Potlatch 2 to edit the map.",
50079         "translate": {
50080             "translate": "Translate",
50081             "localized_translation_label": "Multilingual name",
50082             "localized_translation_language": "Choose language",
50083             "localized_translation_name": "Name"
50084         },
50085         "zoom_in_edit": "Zoom in to Edit",
50086         "logout": "logout",
50087         "loading_auth": "Connecting to OpenStreetMap...",
50088         "report_a_bug": "report a bug",
50089         "feature_info": {
50090             "hidden_warning": "{count} hidden features",
50091             "hidden_details": "These features are currently hidden: {details}"
50092         },
50093         "status": {
50094             "error": "Unable to connect to API.",
50095             "offline": "The API is offline. Please try editing later.",
50096             "readonly": "The API is read-only. You will need to wait to save your changes."
50097         },
50098         "commit": {
50099             "title": "Save Changes",
50100             "description_placeholder": "Brief description of your contributions",
50101             "message_label": "Changeset comment",
50102             "upload_explanation": "The changes you upload will be visible on all maps that use OpenStreetMap data.",
50103             "upload_explanation_with_user": "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
50104             "save": "Save",
50105             "cancel": "Cancel",
50106             "changes": "{count} Changes",
50107             "warnings": "Warnings",
50108             "modified": "Modified",
50109             "deleted": "Deleted",
50110             "created": "Created"
50111         },
50112         "contributors": {
50113             "list": "Edits by {users}",
50114             "truncated_list": "Edits by {users} and {count} others"
50115         },
50116         "geocoder": {
50117             "search": "Search worldwide...",
50118             "no_results_visible": "No results in visible map area",
50119             "no_results_worldwide": "No results found"
50120         },
50121         "geolocate": {
50122             "title": "Show My Location"
50123         },
50124         "inspector": {
50125             "no_documentation_combination": "There is no documentation available for this tag combination",
50126             "no_documentation_key": "There is no documentation available for this key",
50127             "show_more": "Show More",
50128             "view_on_osm": "View on openstreetmap.org",
50129             "all_tags": "All tags",
50130             "all_members": "All members",
50131             "all_relations": "All relations",
50132             "new_relation": "New relation...",
50133             "role": "Role",
50134             "choose": "Select feature type",
50135             "results": "{n} results for {search}",
50136             "reference": "View on OpenStreetMap Wiki",
50137             "back_tooltip": "Change feature",
50138             "remove": "Remove",
50139             "search": "Search",
50140             "multiselect": "Selected items",
50141             "unknown": "Unknown",
50142             "incomplete": "<not downloaded>",
50143             "feature_list": "Search features",
50144             "edit": "Edit feature",
50145             "check": {
50146                 "yes": "Yes",
50147                 "no": "No"
50148             },
50149             "none": "None",
50150             "node": "Node",
50151             "way": "Way",
50152             "relation": "Relation",
50153             "location": "Location",
50154             "add_fields": "Add field:"
50155         },
50156         "background": {
50157             "title": "Background",
50158             "description": "Background settings",
50159             "percent_brightness": "{opacity}% brightness",
50160             "none": "None",
50161             "custom": "Custom",
50162             "custom_button": "Edit custom background",
50163             "custom_prompt": "Enter a tile URL template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.",
50164             "fix_misalignment": "Fix alignment",
50165             "reset": "reset"
50166         },
50167         "map_data": {
50168             "title": "Map Data",
50169             "description": "Map Data",
50170             "data_layers": "Data Layers",
50171             "fill_area": "Fill Areas",
50172             "map_features": "Map Features",
50173             "autohidden": "These features have been automatically hidden because too many would be shown on the screen.  You can zoom in to edit them."
50174         },
50175         "feature": {
50176             "points": {
50177                 "description": "Points",
50178                 "tooltip": "Points of Interest"
50179             },
50180             "major_roads": {
50181                 "description": "Major Roads",
50182                 "tooltip": "Highways, Streets, etc."
50183             },
50184             "minor_roads": {
50185                 "description": "Minor Roads",
50186                 "tooltip": "Service Roads, Parking Aisles, Tracks, etc."
50187             },
50188             "paths": {
50189                 "description": "Paths",
50190                 "tooltip": "Sidewalks, Foot Paths, Cycle Paths, etc."
50191             },
50192             "buildings": {
50193                 "description": "Buildings",
50194                 "tooltip": "Buildings, Shelters, Garages, etc."
50195             },
50196             "landuse": {
50197                 "description": "Landuse Features",
50198                 "tooltip": "Forests, Farmland, Parks, Residential, Commercial, etc."
50199             },
50200             "boundaries": {
50201                 "description": "Boundaries",
50202                 "tooltip": "Administrative Boundaries"
50203             },
50204             "water": {
50205                 "description": "Water Features",
50206                 "tooltip": "Rivers, Lakes, Ponds, Basins, etc."
50207             },
50208             "rail": {
50209                 "description": "Rail Features",
50210                 "tooltip": "Railways"
50211             },
50212             "power": {
50213                 "description": "Power Features",
50214                 "tooltip": "Power Lines, Power Plants, Substations, etc."
50215             },
50216             "past_future": {
50217                 "description": "Past/Future",
50218                 "tooltip": "Proposed, Construction, Abandoned, Demolished, etc."
50219             },
50220             "others": {
50221                 "description": "Others",
50222                 "tooltip": "Everything Else"
50223             }
50224         },
50225         "area_fill": {
50226             "wireframe": {
50227                 "description": "No Fill (Wireframe)",
50228                 "tooltip": "Enabling wireframe mode makes it easy to see the background imagery."
50229             },
50230             "partial": {
50231                 "description": "Partial Fill",
50232                 "tooltip": "Areas are drawn with fill only around their inner edges. (Recommended for beginner mappers)"
50233             },
50234             "full": {
50235                 "description": "Full Fill",
50236                 "tooltip": "Areas are drawn fully filled."
50237             }
50238         },
50239         "restore": {
50240             "heading": "You have unsaved changes",
50241             "description": "Do you wish to restore unsaved changes from a previous editing session?",
50242             "restore": "Restore",
50243             "reset": "Reset"
50244         },
50245         "save": {
50246             "title": "Save",
50247             "help": "Save changes to OpenStreetMap, making them visible to other users.",
50248             "no_changes": "No changes to save.",
50249             "error": "Errors occurred while trying to save",
50250             "status_code": "Server returned status code {code}",
50251             "unknown_error_details": "Please ensure you are connected to the internet.",
50252             "uploading": "Uploading changes to OpenStreetMap.",
50253             "unsaved_changes": "You have unsaved changes",
50254             "conflict": {
50255                 "header": "Resolve conflicting edits",
50256                 "count": "Conflict {num} of {total}",
50257                 "previous": "< Previous",
50258                 "next": "Next >",
50259                 "keep_local": "Keep mine",
50260                 "keep_remote": "Use theirs",
50261                 "restore": "Restore",
50262                 "delete": "Leave Deleted",
50263                 "download_changes": "Or download your changes.",
50264                 "done": "All conflicts resolved!",
50265                 "help": "Another user changed some of the same map features you changed.\nClick on each item below for more details about the conflict, and choose whether to keep\nyour changes or the other user's changes.\n"
50266             }
50267         },
50268         "merge_remote_changes": {
50269             "conflict": {
50270                 "deleted": "This object has been deleted by {user}.",
50271                 "location": "This object was moved by both you and {user}.",
50272                 "nodelist": "Nodes were changed by both you and {user}.",
50273                 "memberlist": "Relation members were changed by both you and {user}.",
50274                 "tags": "You changed the <b>{tag}</b> tag to \"{local}\" and {user} changed it to \"{remote}\"."
50275             }
50276         },
50277         "success": {
50278             "edited_osm": "Edited OSM!",
50279             "just_edited": "You just edited OpenStreetMap!",
50280             "view_on_osm": "View on OSM",
50281             "facebook": "Share on Facebook",
50282             "twitter": "Share on Twitter",
50283             "google": "Share on Google+",
50284             "help_html": "Your changes should appear in the \"Standard\" layer in a few minutes. Other layers, and certain features, may take longer\n(<a href='https://help.openstreetmap.org/questions/4705/why-havent-my-changes-appeared-on-the-map' target='_blank'>details</a>).\n"
50285         },
50286         "confirm": {
50287             "okay": "Okay",
50288             "cancel": "Cancel"
50289         },
50290         "splash": {
50291             "welcome": "Welcome to the iD OpenStreetMap editor",
50292             "text": "iD is a friendly but powerful tool for contributing to the world's best free world map. This is version {version}. For more information see {website} and report bugs at {github}.",
50293             "walkthrough": "Start the Walkthrough",
50294             "start": "Edit Now"
50295         },
50296         "source_switch": {
50297             "live": "live",
50298             "lose_changes": "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?",
50299             "dev": "dev"
50300         },
50301         "tag_reference": {
50302             "description": "Description",
50303             "on_wiki": "{tag} on wiki.osm.org",
50304             "used_with": "used with {type}"
50305         },
50306         "validations": {
50307             "untagged_point": "Untagged point",
50308             "untagged_line": "Untagged line",
50309             "untagged_area": "Untagged area",
50310             "many_deletions": "You're deleting {n} objects. Are you sure you want to do this? This will delete them from the map that everyone else sees on openstreetmap.org.",
50311             "tag_suggests_area": "The tag {tag} suggests line should be area, but it is not an area",
50312             "untagged_point_tooltip": "Select a feature type that describes what this point is.",
50313             "untagged_line_tooltip": "Select a feature type that describes what this line is.",
50314             "untagged_area_tooltip": "Select a feature type that describes what this area is.",
50315             "deprecated_tags": "Deprecated tags: {tags}"
50316         },
50317         "zoom": {
50318             "in": "Zoom In",
50319             "out": "Zoom Out"
50320         },
50321         "cannot_zoom": "Cannot zoom out further in current mode.",
50322         "gpx": {
50323             "local_layer": "Local GPX file",
50324             "drag_drop": "Drag and drop a .gpx file on the page, or click the button to the right to browse",
50325             "zoom": "Zoom to GPX track",
50326             "browse": "Browse for a .gpx file"
50327         },
50328         "mapillary": {
50329             "tooltip": "Street-level photos from Mapillary",
50330             "title": "Photo Overlay (Mapillary)",
50331             "view_on_mapillary": "View this image on Mapillary"
50332         },
50333         "help": {
50334             "title": "Help",
50335             "help": "# Help\n\nThis is an editor for [OpenStreetMap](http://www.openstreetmap.org/), the\nfree and editable map of the world. You can use it to add and update\ndata in your area, making an open-source and open-data map of the world\nbetter for everyone.\n\nEdits that you make on this map will be visible to everyone who uses\nOpenStreetMap. In order to make an edit, you'll need to\n[log in](https://www.openstreetmap.org/login).\n\nThe [iD editor](http://ideditor.com/) is a collaborative project with [source\ncode available on GitHub](https://github.com/openstreetmap/iD).\n",
50336             "editing_saving": "# Editing & Saving\n\nThis editor is designed to work primarily online, and you're accessing\nit through a website right now.\n\n### Selecting Features\n\nTo select a map feature, like a road or point of interest, click\non it on the map. This will highlight the selected feature, open a panel with\ndetails about it, and show a menu of things you can do with the feature.\n\nTo select multiple features, hold down the 'Shift' key. Then either click\non the features you want to select, or drag on the map to draw a rectangle.\nThis will draw a box and select all the points within it.\n\n### Saving Edits\n\nWhen you make changes like editing roads, buildings, and places, these are\nstored locally until you save them to the server. Don't worry if you make\na mistake - you can undo changes by clicking the undo button, and redo\nchanges by clicking the redo button.\n\nClick 'Save' to finish a group of edits - for instance, if you've completed\nan area of town and would like to start on a new area. You'll have a chance\nto review what you've done, and the editor supplies helpful suggestions\nand warnings if something doesn't seem right about the changes.\n\nIf everything looks good, you can enter a short comment explaining the change\nyou made, and click 'Save' again to post the changes\nto [OpenStreetMap.org](http://www.openstreetmap.org/), where they are visible\nto all other users and available for others to build and improve upon.\n\nIf you can't finish your edits in one sitting, you can leave the editor\nwindow and come back (on the same browser and computer), and the\neditor application will offer to restore your work.\n",
50337             "roads": "# Roads\n\nYou can create, fix, and delete roads with this editor. Roads can be all\nkinds: paths, highways, trails, cycleways, and more - any often-crossed\nsegment should be mappable.\n\n### Selecting\n\nClick on a road to select it. An outline should become visible, along\nwith a small tools menu on the map and a sidebar showing more information\nabout the road.\n\n### Modifying\n\nOften you'll see roads that aren't aligned to the imagery behind them\nor to a GPS track. You can adjust these roads so they are in the correct\nplace.\n\nFirst click on the road you want to change. This will highlight it and show\ncontrol points along it that you can drag to better locations. If\nyou want to add new control points for more detail, double-click a part\nof the road without a node, and one will be added.\n\nIf the road connects to another road, but doesn't properly connect on\nthe map, you can drag one of its control points onto the other road in\norder to join them. Having roads connect is important for the map\nand essential for providing driving directions.\n\nYou can also click the 'Move' tool or press the `M` shortcut key to move the entire road at\none time, and then click again to save that movement.\n\n### Deleting\n\nIf a road is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the road could simply be newly built.\n\nYou can delete a road by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.\n\n### Creating\n\nFound somewhere there should be a road but there isn't? Click the 'Line'\nicon in the top-left of the editor or press the shortcut key `2` to start drawing\na line.\n\nClick on the start of the road on the map to start drawing. If the road\nbranches off from an existing road, start by clicking on the place where they connect.\n\nThen click on points along the road so that it follows the right path, according\nto satellite imagery or GPS. If the road you are drawing crosses another road, connect\nit by clicking on the intersection point. When you're done drawing, double-click\nor press 'Return' or 'Enter' on your keyboard.\n",
50338             "gps": "# GPS\n\nGPS data is the most trusted source of data for OpenStreetMap. This editor\nsupports local traces - `.gpx` files on your local computer. You can collect\nthis kind of GPS trace with a number of smartphone applications as well as\npersonal GPS hardware.\n\nFor information on how to perform a GPS survey, read\n[Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/).\n\nTo use a GPX track for mapping, drag and drop the GPX file onto the map\neditor. If it's recognized, it will be added to the map as a bright purple\nline. Click on the 'Map Data' menu on the right side to enable,\ndisable, or zoom to this new GPX-powered layer.\n\nThe GPX track isn't directly uploaded to OpenStreetMap - the best way to\nuse it is to draw on the map, using it as a guide for the new features that\nyou add, and also to [upload it to OpenStreetMap](http://www.openstreetmap.org/trace/create)\nfor other users to use.\n",
50339             "imagery": "# Imagery\n\nAerial imagery is an important resource for mapping. A combination of\nairplane flyovers, satellite views, and freely-compiled sources are available\nin the editor under the 'Background Settings' menu on the right.\n\nBy default a [Bing Maps](http://www.bing.com/maps/) satellite layer is\npresented in the editor, but as you pan and zoom the map to new geographical\nareas, new sources will become available. Some countries, like the United\nStates, France, and Denmark have very high-quality imagery available for some areas.\n\nImagery is sometimes offset from the map data because of a mistake on the\nimagery provider's side. If you see a lot of roads shifted from the background,\ndon't immediately move them all to match the background. Instead you can adjust\nthe imagery so that it matches the existing data by clicking 'Fix alignment' at\nthe bottom of the Background Settings UI.\n",
50340             "addresses": "# Addresses\n\nAddresses are some of the most useful information for the map.\n\nAlthough addresses are often represented as parts of streets, in OpenStreetMap\nthey're recorded as attributes of buildings and places along streets.\n\nYou can add address information to places mapped as building outlines\nas well as those mapped as single points. The optimal source of address\ndata is from an on-the-ground survey or personal knowledge - as with any\nother feature, copying from commercial sources like Google Maps is strictly\nforbidden.\n",
50341             "inspector": "# Using the Inspector\n\nThe inspector is the section on the left side of the page that allows you to\nedit the details of the selected feature.\n\n### Selecting a Feature Type\n\nAfter you add a point, line, or area, you can choose what type of feature it\nis, like whether it's a highway or residential road, supermarket or cafe.\nThe inspector will display buttons for common feature types, and you can\nfind others by typing what you're looking for in the search box.\n\nClick the 'i' in the bottom-right-hand corner of a feature type button to\nlearn more about it. Click a button to choose that type.\n\n### Using Forms and Editing Tags\n\nAfter you choose a feature type, or when you select a feature that already\nhas a type assigned, the inspector will display fields with details about\nthe feature like its name and address.\n\nBelow the fields you see, you can click icons to add other details,\nlike [Wikipedia](http://www.wikipedia.org/) information, wheelchair\naccess, and more.\n\nAt the bottom of the inspector, click 'Additional tags' to add arbitrary\nother tags to the element. [Taginfo](http://taginfo.openstreetmap.org/) is a\ngreat resource for learn more about popular tag combinations.\n\nChanges you make in the inspector are automatically applied to the map.\nYou can undo them at any time by clicking the 'Undo' button.\n",
50342             "buildings": "# Buildings\n\nOpenStreetMap is the world's largest database of buildings. You can create\nand improve this database.\n\n### Selecting\n\nYou can select a building by clicking on its border. This will highlight the\nbuilding and open a small tools menu and a sidebar showing more information\nabout the building.\n\n### Modifying\n\nSometimes buildings are incorrectly placed or have incorrect tags.\n\nTo move an entire building, select it, then click the 'Move' tool. Move your\nmouse to shift the building, and click when it's correctly placed.\n\nTo fix the specific shape of a building, click and drag the nodes that form\nits border into better places.\n\n### Creating\n\nOne of the main questions around adding buildings to the map is that\nOpenStreetMap records buildings both as shapes and points. The rule of thumb\nis to _map a building as a shape whenever possible_, and map companies, homes,\namenities, and other things that operate out of buildings as points placed\nwithin the building shape.\n\nStart drawing a building as a shape by clicking the 'Area' button in the top\nleft of the interface, and end it either by pressing 'Return' on your keyboard\nor clicking on the first node drawn to close the shape.\n\n### Deleting\n\nIf a building is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the building could simply be newly built.\n\nYou can delete a building by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.\n",
50343             "relations": "# Relations\n\nA relation is a special type of feature in OpenStreetMap that groups together\nother features. For example, two common types of relations are *route relations*,\nwhich group together sections of road that belong to a specific freeway or\nhighway, and *multipolygons*, which group together several lines that define\na complex area (one with several pieces or holes in it like a donut).\n\nThe group of features in a relation are called *members*. In the sidebar, you can\nsee which relations a feature is a member of, and click on a relation there\nto select the it. When the relation is selected, you can see all of its\nmembers listed in the sidebar and highlighted on the map.\n\nFor the most part, iD will take care of maintaining relations automatically\nwhile you edit. The main thing you should be aware of is that if you delete a\nsection of road to redraw it more accurately, you should make sure that the\nnew section is a member of the same relations as the original.\n\n## Editing Relations\n\nIf you want to edit relations, here are the basics.\n\nTo add a feature to a relation, select the feature, click the \"+\" button in the\n\"All relations\" section of the sidebar, and select or type the name of the relation.\n\nTo create a new relation, select the first feature that should be a member,\nclick the \"+\" button in the \"All relations\" section, and select \"New relation...\".\n\nTo remove a feature from a relation, select the feature and click the trash\nbutton next to the relation you want to remove it from.\n\nYou can create multipolygons with holes using the \"Merge\" tool. Draw two areas (inner\nand outer), hold the Shift key and click on each of them to select them both, and then\nclick the \"Merge\" (+) button.\n"
50344         },
50345         "intro": {
50346             "navigation": {
50347                 "title": "Navigation",
50348                 "drag": "The main map area shows OpenStreetMap data on top of a background. You can navigate by dragging and scrolling, just like any web map. **Drag the map!**",
50349                 "select": "Map features are represented three ways: using points, lines or areas. All features can be selected by clicking on them. **Click on the point to select it.**",
50350                 "header": "The header shows us the feature type.",
50351                 "pane": "When a feature is selected, the feature editor is displayed. The header shows us the feature type and the main pane shows the feature's attributes, such as its name and address. **Close the feature editor with the close button in the top right.**"
50352             },
50353             "points": {
50354                 "title": "Points",
50355                 "add": "Points can be used to represent features such as shops, restaurants and monuments. They mark a specific location, and describe what's there. **Click the Point button to add a new point.**",
50356                 "place": "The point can be placed by clicking on the map. **Place the point on top of the building.**",
50357                 "search": "There are many different features that can be represented by points. The point you just added is a Cafe. **Search for '{name}'**",
50358                 "choose": "**Choose Cafe from the list.**",
50359                 "describe": "The point is now marked as a cafe. Using the feature editor, we can add more information about the feature. **Add a name**",
50360                 "close": "The feature editor can be closed by clicking on the close button. **Close the feature editor**",
50361                 "reselect": "Often points will already exist, but have mistakes or be incomplete. We can edit existing points. **Select the point you just created.**",
50362                 "fixname": "**Change the name and close the feature editor.**",
50363                 "reselect_delete": "All features on the map can be deleted. **Click on the point you created.**",
50364                 "delete": "The menu around the point contains operations that can be performed on it, including delete. **Delete the point.**"
50365             },
50366             "areas": {
50367                 "title": "Areas",
50368                 "add": "Areas are used to show the boundaries of features like lakes, buildings, and residential areas. They can be also be used for more detailed mapping of many features you might normally map as points. **Click the Area button to add a new area.**",
50369                 "corner": "Areas are drawn by placing nodes that mark the boundary of the area. **Place the starting node on one of the corners of the playground.**",
50370                 "place": "Draw the area by placing more nodes. Finish the area by clicking on the starting node. **Draw an area for the playground.**",
50371                 "search": "**Search for '{name}'.**",
50372                 "choose": "**Choose Playground from the list.**",
50373                 "describe": "**Add a name, and close the feature editor**"
50374             },
50375             "lines": {
50376                 "title": "Lines",
50377                 "add": "Lines are used to represent features such as roads, railroads and rivers. **Click the Line button to add a new line.**",
50378                 "start": "**Start the line by clicking on the end of the road.**",
50379                 "intersect": "Click to add more nodes to the line. You can drag the map while drawing if necessary. Roads, and many other types of lines, are part of a larger network. It is important for these lines to be connected properly in order for routing applications to work. **Click on Flower Street, to create an intersection connecting the two lines.**",
50380                 "finish": "Lines can be finished by clicking on the last node again. **Finish drawing the road.**",
50381                 "road": "**Select Road from the list**",
50382                 "residential": "There are different types of roads, the most common of which is Residential. **Choose the Residential road type**",
50383                 "describe": "**Name the road and close the feature editor.**",
50384                 "restart": "The road needs to intersect Flower Street.",
50385                 "wrong_preset": "You didn't select the Residential road type. **Click here to choose again**"
50386             },
50387             "startediting": {
50388                 "title": "Start Editing",
50389                 "help": "More documentation and this walkthrough are available here.",
50390                 "save": "Don't forget to regularly save your changes!",
50391                 "start": "Start mapping!"
50392             }
50393         },
50394         "presets": {
50395             "categories": {
50396                 "category-building": {
50397                     "name": "Building"
50398                 },
50399                 "category-golf": {
50400                     "name": "Golf"
50401                 },
50402                 "category-landuse": {
50403                     "name": "Land Use"
50404                 },
50405                 "category-path": {
50406                     "name": "Path"
50407                 },
50408                 "category-rail": {
50409                     "name": "Rail"
50410                 },
50411                 "category-restriction": {
50412                     "name": "Restriction"
50413                 },
50414                 "category-road": {
50415                     "name": "Road"
50416                 },
50417                 "category-route": {
50418                     "name": "Route"
50419                 },
50420                 "category-water-area": {
50421                     "name": "Water"
50422                 },
50423                 "category-water-line": {
50424                     "name": "Water"
50425                 }
50426             },
50427             "fields": {
50428                 "access": {
50429                     "label": "Access",
50430                     "placeholder": "Unknown",
50431                     "types": {
50432                         "access": "General",
50433                         "foot": "Foot",
50434                         "motor_vehicle": "Motor Vehicles",
50435                         "bicycle": "Bicycles",
50436                         "horse": "Horses"
50437                     },
50438                     "options": {
50439                         "yes": {
50440                             "title": "Allowed",
50441                             "description": "Access permitted by law; a right of way"
50442                         },
50443                         "no": {
50444                             "title": "Prohibited",
50445                             "description": "Access not permitted to the general public"
50446                         },
50447                         "permissive": {
50448                             "title": "Permissive",
50449                             "description": "Access permitted until such time as the owner revokes the permission"
50450                         },
50451                         "private": {
50452                             "title": "Private",
50453                             "description": "Access permitted only with permission of the owner on an individual basis"
50454                         },
50455                         "designated": {
50456                             "title": "Designated",
50457                             "description": "Access permitted according to signs or specific local laws"
50458                         },
50459                         "destination": {
50460                             "title": "Destination",
50461                             "description": "Access permitted only to reach a destination"
50462                         }
50463                     }
50464                 },
50465                 "access_simple": {
50466                     "label": "Access",
50467                     "placeholder": "yes"
50468                 },
50469                 "access_toilets": {
50470                     "label": "Access"
50471                 },
50472                 "address": {
50473                     "label": "Address",
50474                     "placeholders": {
50475                         "housename": "Housename",
50476                         "housenumber": "123",
50477                         "street": "Street",
50478                         "city": "City",
50479                         "postcode": "Postcode",
50480                         "place": "Place",
50481                         "hamlet": "Hamlet",
50482                         "suburb": "Suburb",
50483                         "subdistrict": "Subdistrict",
50484                         "district": "District",
50485                         "province": "Province",
50486                         "state": "State",
50487                         "country": "Country"
50488                     }
50489                 },
50490                 "admin_level": {
50491                     "label": "Admin Level"
50492                 },
50493                 "aerialway": {
50494                     "label": "Type"
50495                 },
50496                 "aerialway/access": {
50497                     "label": "Access",
50498                     "options": {
50499                         "entry": "Entry",
50500                         "exit": "Exit",
50501                         "both": "Both"
50502                     }
50503                 },
50504                 "aerialway/bubble": {
50505                     "label": "Bubble"
50506                 },
50507                 "aerialway/capacity": {
50508                     "label": "Capacity (per hour)",
50509                     "placeholder": "500, 2500, 5000..."
50510                 },
50511                 "aerialway/duration": {
50512                     "label": "Duration (minutes)",
50513                     "placeholder": "1, 2, 3..."
50514                 },
50515                 "aerialway/heating": {
50516                     "label": "Heated"
50517                 },
50518                 "aerialway/occupancy": {
50519                     "label": "Occupancy",
50520                     "placeholder": "2, 4, 8..."
50521                 },
50522                 "aerialway/summer/access": {
50523                     "label": "Access (summer)",
50524                     "options": {
50525                         "entry": "Entry",
50526                         "exit": "Exit",
50527                         "both": "Both"
50528                     }
50529                 },
50530                 "aeroway": {
50531                     "label": "Type"
50532                 },
50533                 "amenity": {
50534                     "label": "Type"
50535                 },
50536                 "artist": {
50537                     "label": "Artist"
50538                 },
50539                 "artwork_type": {
50540                     "label": "Type"
50541                 },
50542                 "atm": {
50543                     "label": "ATM"
50544                 },
50545                 "backrest": {
50546                     "label": "Backrest"
50547                 },
50548                 "barrier": {
50549                     "label": "Type"
50550                 },
50551                 "bench": {
50552                     "label": "Bench"
50553                 },
50554                 "bicycle_parking": {
50555                     "label": "Type"
50556                 },
50557                 "boundary": {
50558                     "label": "Type"
50559                 },
50560                 "brand": {
50561                     "label": "Brand"
50562                 },
50563                 "building": {
50564                     "label": "Building"
50565                 },
50566                 "building_area": {
50567                     "label": "Building"
50568                 },
50569                 "capacity": {
50570                     "label": "Capacity",
50571                     "placeholder": "50, 100, 200..."
50572                 },
50573                 "cardinal_direction": {
50574                     "label": "Direction",
50575                     "options": {
50576                         "N": "North",
50577                         "E": "East",
50578                         "S": "South",
50579                         "W": "West",
50580                         "NE": "Northeast",
50581                         "SE": "Southeast",
50582                         "SW": "Southwest",
50583                         "NW": "Northwest",
50584                         "NNE": "North-northeast",
50585                         "ENE": "East-northeast",
50586                         "ESE": "East-southeast",
50587                         "SSE": "South-southeast",
50588                         "SSW": "South-southwest",
50589                         "WSW": "West-southwest",
50590                         "WNW": "West-northwest",
50591                         "NNW": "North-northwest"
50592                     }
50593                 },
50594                 "clock_direction": {
50595                     "label": "Direction",
50596                     "options": {
50597                         "clockwise": "Clockwise",
50598                         "anticlockwise": "Counterclockwise"
50599                     }
50600                 },
50601                 "collection_times": {
50602                     "label": "Collection Times"
50603                 },
50604                 "construction": {
50605                     "label": "Type"
50606                 },
50607                 "country": {
50608                     "label": "Country"
50609                 },
50610                 "covered": {
50611                     "label": "Covered"
50612                 },
50613                 "craft": {
50614                     "label": "Type"
50615                 },
50616                 "crop": {
50617                     "label": "Crop"
50618                 },
50619                 "crossing": {
50620                     "label": "Type"
50621                 },
50622                 "cuisine": {
50623                     "label": "Cuisine"
50624                 },
50625                 "delivery": {
50626                     "label": "Delivery"
50627                 },
50628                 "denomination": {
50629                     "label": "Denomination"
50630                 },
50631                 "denotation": {
50632                     "label": "Denotation"
50633                 },
50634                 "description": {
50635                     "label": "Description"
50636                 },
50637                 "drive_through": {
50638                     "label": "Drive-Through"
50639                 },
50640                 "electrified": {
50641                     "label": "Electrification",
50642                     "placeholder": "Contact Line, Electrified Rail...",
50643                     "options": {
50644                         "contact_line": "Contact Line",
50645                         "rail": "Electrified Rail",
50646                         "yes": "Yes (unspecified)",
50647                         "no": "No"
50648                     }
50649                 },
50650                 "elevation": {
50651                     "label": "Elevation"
50652                 },
50653                 "emergency": {
50654                     "label": "Emergency"
50655                 },
50656                 "entrance": {
50657                     "label": "Type"
50658                 },
50659                 "except": {
50660                     "label": "Exceptions"
50661                 },
50662                 "fax": {
50663                     "label": "Fax",
50664                     "placeholder": "+31 42 123 4567"
50665                 },
50666                 "fee": {
50667                     "label": "Fee"
50668                 },
50669                 "fire_hydrant/type": {
50670                     "label": "Type",
50671                     "options": {
50672                         "pillar": "Pillar/Aboveground",
50673                         "underground": "Underground",
50674                         "wall": "Wall",
50675                         "pond": "Pond"
50676                     }
50677                 },
50678                 "fixme": {
50679                     "label": "Fix Me"
50680                 },
50681                 "fuel": {
50682                     "label": "Fuel"
50683                 },
50684                 "fuel/biodiesel": {
50685                     "label": "Sells Biodiesel"
50686                 },
50687                 "fuel/diesel": {
50688                     "label": "Sells Diesel"
50689                 },
50690                 "fuel/e10": {
50691                     "label": "Sells E10"
50692                 },
50693                 "fuel/e85": {
50694                     "label": "Sells E85"
50695                 },
50696                 "fuel/lpg": {
50697                     "label": "Sells Propane"
50698                 },
50699                 "fuel/octane_100": {
50700                     "label": "Sells Racing Gasoline"
50701                 },
50702                 "fuel/octane_91": {
50703                     "label": "Sells Regular Gasoline"
50704                 },
50705                 "fuel/octane_95": {
50706                     "label": "Sells Midgrade Gasoline"
50707                 },
50708                 "fuel/octane_98": {
50709                     "label": "Sells Premium Gasoline"
50710                 },
50711                 "gauge": {
50712                     "label": "Gauge"
50713                 },
50714                 "gender": {
50715                     "label": "Gender",
50716                     "placeholder": "Unknown",
50717                     "options": {
50718                         "male": "Male",
50719                         "female": "Female",
50720                         "unisex": "Unisex"
50721                     }
50722                 },
50723                 "generator/method": {
50724                     "label": "Method"
50725                 },
50726                 "generator/source": {
50727                     "label": "Source"
50728                 },
50729                 "generator/type": {
50730                     "label": "Type"
50731                 },
50732                 "golf_hole": {
50733                     "label": "Reference",
50734                     "placeholder": "Hole number (1-18)"
50735                 },
50736                 "handicap": {
50737                     "label": "Handicap",
50738                     "placeholder": "1-18"
50739                 },
50740                 "highway": {
50741                     "label": "Type"
50742                 },
50743                 "historic": {
50744                     "label": "Type"
50745                 },
50746                 "hoops": {
50747                     "label": "Hoops",
50748                     "placeholder": "1, 2, 4..."
50749                 },
50750                 "iata": {
50751                     "label": "IATA"
50752                 },
50753                 "icao": {
50754                     "label": "ICAO"
50755                 },
50756                 "incline": {
50757                     "label": "Incline"
50758                 },
50759                 "incline_steps": {
50760                     "label": "Incline",
50761                     "options": {
50762                         "up": "Up",
50763                         "down": "Down"
50764                     }
50765                 },
50766                 "information": {
50767                     "label": "Type"
50768                 },
50769                 "internet_access": {
50770                     "label": "Internet Access",
50771                     "options": {
50772                         "yes": "Yes",
50773                         "no": "No",
50774                         "wlan": "Wifi",
50775                         "wired": "Wired",
50776                         "terminal": "Terminal"
50777                     }
50778                 },
50779                 "lamp_type": {
50780                     "label": "Type"
50781                 },
50782                 "landuse": {
50783                     "label": "Type"
50784                 },
50785                 "lanes": {
50786                     "label": "Lanes",
50787                     "placeholder": "1, 2, 3..."
50788                 },
50789                 "layer": {
50790                     "label": "Layer"
50791                 },
50792                 "leaf_cycle": {
50793                     "label": "Leaf Cycle",
50794                     "options": {
50795                         "evergreen": "Evergreen",
50796                         "deciduous": "Deciduous",
50797                         "semi_evergreen": "Semi-Evergreen",
50798                         "semi_deciduous": "Semi-Deciduous",
50799                         "mixed": "Mixed"
50800                     }
50801                 },
50802                 "leaf_type": {
50803                     "label": "Leaf Type",
50804                     "options": {
50805                         "broadleaved": "Broadleaved",
50806                         "needleleaved": "Needleleaved",
50807                         "mixed": "Mixed",
50808                         "leafless": "Leafless"
50809                     }
50810                 },
50811                 "leisure": {
50812                     "label": "Type"
50813                 },
50814                 "length": {
50815                     "label": "Length (Meters)"
50816                 },
50817                 "levels": {
50818                     "label": "Levels",
50819                     "placeholder": "2, 4, 6..."
50820                 },
50821                 "lit": {
50822                     "label": "Lit"
50823                 },
50824                 "location": {
50825                     "label": "Location"
50826                 },
50827                 "man_made": {
50828                     "label": "Type"
50829                 },
50830                 "maxspeed": {
50831                     "label": "Speed Limit",
50832                     "placeholder": "40, 50, 60..."
50833                 },
50834                 "mtb/scale": {
50835                     "label": "Mountain Biking Difficulty",
50836                     "placeholder": "0, 1, 2, 3...",
50837                     "options": {
50838                         "0": "0: Solid gravel/packed earth, no obstacles, wide curves",
50839                         "1": "1: Some loose surface, small obstacles, wide curves",
50840                         "2": "2: Much loose surface, large obstacles, easy hairpins",
50841                         "3": "3: Slippery surface, large obstacles, tight hairpins",
50842                         "4": "4: Loose surface or boulders, dangerous hairpins",
50843                         "5": "5: Maximum difficulty, boulder fields, landslides",
50844                         "6": "6: Not rideable except by the very best mountain bikers"
50845                     }
50846                 },
50847                 "mtb/scale/imba": {
50848                     "label": "IMBA Trail Difficulty",
50849                     "placeholder": "Easy, Medium, Difficult...",
50850                     "options": {
50851                         "0": "Easiest (white circle)",
50852                         "1": "Easy (green circle)",
50853                         "2": "Medium (blue square)",
50854                         "3": "Difficult (black diamond)",
50855                         "4": "Extremely Difficult (double black diamond)"
50856                     }
50857                 },
50858                 "mtb/scale/uphill": {
50859                     "label": "Mountain Biking Uphill Difficulty",
50860                     "placeholder": "0, 1, 2, 3...",
50861                     "options": {
50862                         "0": "0: Avg. incline <10%, gravel/packed earth, no obstacles",
50863                         "1": "1: Avg. incline <15%, gravel/packed earth, few small objects",
50864                         "2": "2: Avg. incline <20%, stable surface, fistsize rocks/roots",
50865                         "3": "3: Avg. incline <25%, variable surface, fistsize rocks/branches",
50866                         "4": "4: Avg. incline <30%, poor condition, big rocks/branches",
50867                         "5": "5: Very steep, bike generally needs to be pushed or carried"
50868                     }
50869                 },
50870                 "name": {
50871                     "label": "Name",
50872                     "placeholder": "Common name (if any)"
50873                 },
50874                 "natural": {
50875                     "label": "Natural"
50876                 },
50877                 "network": {
50878                     "label": "Network"
50879                 },
50880                 "note": {
50881                     "label": "Note"
50882                 },
50883                 "office": {
50884                     "label": "Type"
50885                 },
50886                 "oneway": {
50887                     "label": "One Way",
50888                     "options": {
50889                         "undefined": "Assumed to be No",
50890                         "yes": "Yes",
50891                         "no": "No"
50892                     }
50893                 },
50894                 "oneway_yes": {
50895                     "label": "One Way",
50896                     "options": {
50897                         "undefined": "Assumed to be Yes",
50898                         "yes": "Yes",
50899                         "no": "No"
50900                     }
50901                 },
50902                 "opening_hours": {
50903                     "label": "Hours"
50904                 },
50905                 "operator": {
50906                     "label": "Operator"
50907                 },
50908                 "par": {
50909                     "label": "Par",
50910                     "placeholder": "3, 4, 5..."
50911                 },
50912                 "park_ride": {
50913                     "label": "Park and Ride"
50914                 },
50915                 "parking": {
50916                     "label": "Type",
50917                     "options": {
50918                         "surface": "Surface",
50919                         "multi-storey": "Multilevel",
50920                         "underground": "Underground",
50921                         "sheds": "Sheds",
50922                         "carports": "Carports",
50923                         "garage_boxes": "Garage Boxes",
50924                         "lane": "Roadside Lane"
50925                     }
50926                 },
50927                 "phone": {
50928                     "label": "Phone",
50929                     "placeholder": "+31 42 123 4567"
50930                 },
50931                 "piste/difficulty": {
50932                     "label": "Difficulty",
50933                     "placeholder": "Easy, Intermediate, Advanced...",
50934                     "options": {
50935                         "novice": "Novice (instructional)",
50936                         "easy": "Easy (green circle)",
50937                         "intermediate": "Intermediate (blue square)",
50938                         "advanced": "Advanced (black diamond)",
50939                         "expert": "Expert (double black diamond)",
50940                         "freeride": "Freeride (off-piste)",
50941                         "extreme": "Extreme (climbing equipment required)"
50942                     }
50943                 },
50944                 "piste/grooming": {
50945                     "label": "Grooming",
50946                     "options": {
50947                         "classic": "Classic",
50948                         "mogul": "Mogul",
50949                         "backcountry": "Backcountry",
50950                         "classic+skating": "Classic and Skating",
50951                         "scooter": "Scooter/Snowmobile",
50952                         "skating": "Skating"
50953                     }
50954                 },
50955                 "piste/type": {
50956                     "label": "Type",
50957                     "options": {
50958                         "downhill": "Downhill",
50959                         "nordic": "Nordic",
50960                         "skitour": "Skitour",
50961                         "sled": "Sled",
50962                         "hike": "Hike",
50963                         "sleigh": "Sleigh",
50964                         "ice_skate": "Ice Skate",
50965                         "snow_park": "Snow Park",
50966                         "playground": "Playground"
50967                     }
50968                 },
50969                 "place": {
50970                     "label": "Type"
50971                 },
50972                 "population": {
50973                     "label": "Population"
50974                 },
50975                 "power": {
50976                     "label": "Type"
50977                 },
50978                 "railway": {
50979                     "label": "Type"
50980                 },
50981                 "recycling/cans": {
50982                     "label": "Accepts Cans"
50983                 },
50984                 "recycling/clothes": {
50985                     "label": "Accepts Clothes"
50986                 },
50987                 "recycling/glass": {
50988                     "label": "Accepts Glass"
50989                 },
50990                 "recycling/paper": {
50991                     "label": "Accepts Paper"
50992                 },
50993                 "ref": {
50994                     "label": "Reference"
50995                 },
50996                 "relation": {
50997                     "label": "Type"
50998                 },
50999                 "religion": {
51000                     "label": "Religion"
51001                 },
51002                 "restriction": {
51003                     "label": "Type"
51004                 },
51005                 "restrictions": {
51006                     "label": "Turn Restrictions"
51007                 },
51008                 "route": {
51009                     "label": "Type"
51010                 },
51011                 "route_master": {
51012                     "label": "Type"
51013                 },
51014                 "sac_scale": {
51015                     "label": "Hiking Difficulty",
51016                     "placeholder": "Mountain Hiking, Alpine Hiking...",
51017                     "options": {
51018                         "hiking": "T1: Hiking",
51019                         "mountain_hiking": "T2: Mountain Hiking",
51020                         "demanding_mountain_hiking": "T3: Demanding Mountain Hiking",
51021                         "alpine_hiking": "T4: Alpine Hiking",
51022                         "demanding_alpine_hiking": "T5: Demanding Alpine Hiking",
51023                         "difficult_alpine_hiking": "T6: Difficult Alpine Hiking"
51024                     }
51025                 },
51026                 "seasonal": {
51027                     "label": "Seasonal"
51028                 },
51029                 "service": {
51030                     "label": "Type"
51031                 },
51032                 "service/bicycle/chain_tool": {
51033                     "label": "Chain Tool",
51034                     "options": {
51035                         "undefined": "Assumed to be No",
51036                         "yes": "Yes",
51037                         "no": "No"
51038                     }
51039                 },
51040                 "service/bicycle/pump": {
51041                     "label": "Air Pump",
51042                     "options": {
51043                         "undefined": "Assumed to be No",
51044                         "yes": "Yes",
51045                         "no": "No"
51046                     }
51047                 },
51048                 "service_rail": {
51049                     "label": "Service Type",
51050                     "options": {
51051                         "spur": "Spur",
51052                         "yard": "Yard",
51053                         "siding": "Siding",
51054                         "crossover": "Crossover"
51055                     }
51056                 },
51057                 "shelter": {
51058                     "label": "Shelter"
51059                 },
51060                 "shelter_type": {
51061                     "label": "Type"
51062                 },
51063                 "shop": {
51064                     "label": "Type"
51065                 },
51066                 "sloped_curb": {
51067                     "label": "Sloped Curb"
51068                 },
51069                 "smoking": {
51070                     "label": "Smoking",
51071                     "placeholder": "No, Separated, Yes...",
51072                     "options": {
51073                         "no": "No smoking anywhere",
51074                         "separated": "In smoking areas, not physically isolated",
51075                         "isolated": "In smoking areas, physically isolated",
51076                         "outside": "Allowed outside",
51077                         "yes": "Allowed everywhere",
51078                         "dedicated": "Dedicated to smokers (e.g. smokers' club)"
51079                     }
51080                 },
51081                 "smoothness": {
51082                     "label": "Smoothness",
51083                     "placeholder": "Thin Rollers, Wheels, Off-Road...",
51084                     "options": {
51085                         "excellent": "Thin Rollers: rollerblade, skateboard",
51086                         "good": "Thin Wheels: racing bike",
51087                         "intermediate": "Wheels: city bike, wheelchair, scooter",
51088                         "bad": "Robust Wheels: trekking bike, car, rickshaw",
51089                         "very_bad": "High Clearance: light duty off-road vehicle",
51090                         "horrible": "Off-Road: heavy duty off-road vehicle",
51091                         "very_horrible": "Specialized off-road: tractor, ATV",
51092                         "impassable": "Impassable / No wheeled vehicle"
51093                     }
51094                 },
51095                 "social_facility_for": {
51096                     "label": "People served",
51097                     "placeholder": "Homeless, Disabled, Child, etc"
51098                 },
51099                 "source": {
51100                     "label": "Source"
51101                 },
51102                 "sport": {
51103                     "label": "Sport"
51104                 },
51105                 "sport_ice": {
51106                     "label": "Sport"
51107                 },
51108                 "sport_racing": {
51109                     "label": "Sport"
51110                 },
51111                 "structure": {
51112                     "label": "Structure",
51113                     "placeholder": "Unknown",
51114                     "options": {
51115                         "bridge": "Bridge",
51116                         "tunnel": "Tunnel",
51117                         "embankment": "Embankment",
51118                         "cutting": "Cutting",
51119                         "ford": "Ford"
51120                     }
51121                 },
51122                 "studio_type": {
51123                     "label": "Type"
51124                 },
51125                 "substation": {
51126                     "label": "Type"
51127                 },
51128                 "supervised": {
51129                     "label": "Supervised"
51130                 },
51131                 "surface": {
51132                     "label": "Surface"
51133                 },
51134                 "tactile_paving": {
51135                     "label": "Tactile Paving"
51136                 },
51137                 "takeaway": {
51138                     "label": "Takeaway",
51139                     "placeholder": "Yes, No, Takeaway Only...",
51140                     "options": {
51141                         "yes": "Yes",
51142                         "no": "No",
51143                         "only": "Takeaway Only"
51144                     }
51145                 },
51146                 "toilets/disposal": {
51147                     "label": "Disposal",
51148                     "options": {
51149                         "flush": "Flush",
51150                         "pitlatrine": "Pit/Latrine",
51151                         "chemical": "Chemical",
51152                         "bucket": "Bucket"
51153                     }
51154                 },
51155                 "tourism": {
51156                     "label": "Type"
51157                 },
51158                 "towertype": {
51159                     "label": "Tower type"
51160                 },
51161                 "tracktype": {
51162                     "label": "Track Type",
51163                     "placeholder": "Solid, Mostly Solid, Soft...",
51164                     "options": {
51165                         "grade1": "Solid: paved or heavily compacted hardcore surface",
51166                         "grade2": "Mostly Solid: gravel/rock with some soft material mixed in",
51167                         "grade3": "Even mixture of hard and soft materials",
51168                         "grade4": "Mostly Soft: soil/sand/grass with some hard material mixed in",
51169                         "grade5": "Soft: soil/sand/grass"
51170                     }
51171                 },
51172                 "trail_visibility": {
51173                     "label": "Trail Visibility",
51174                     "placeholder": "Excellent, Good, Bad...",
51175                     "options": {
51176                         "excellent": "Excellent: unambiguous path or markers everywhere",
51177                         "good": "Good: markers visible, sometimes require searching",
51178                         "intermediate": "Intermediate: few markers, path mostly visible",
51179                         "bad": "Bad: no markers, path sometimes invisible/pathless",
51180                         "horrible": "Horrible: often pathless, some orientation skills required",
51181                         "no": "No: pathless, excellent orientation skills required"
51182                     }
51183                 },
51184                 "trees": {
51185                     "label": "Trees"
51186                 },
51187                 "tunnel": {
51188                     "label": "Tunnel"
51189                 },
51190                 "vending": {
51191                     "label": "Type of Goods"
51192                 },
51193                 "water": {
51194                     "label": "Type"
51195                 },
51196                 "waterway": {
51197                     "label": "Type"
51198                 },
51199                 "website": {
51200                     "label": "Website",
51201                     "placeholder": "http://example.com/"
51202                 },
51203                 "wetland": {
51204                     "label": "Type"
51205                 },
51206                 "wheelchair": {
51207                     "label": "Wheelchair Access"
51208                 },
51209                 "width": {
51210                     "label": "Width (Meters)"
51211                 },
51212                 "wikipedia": {
51213                     "label": "Wikipedia"
51214                 }
51215             },
51216             "presets": {
51217                 "address": {
51218                     "name": "Address",
51219                     "terms": ""
51220                 },
51221                 "aerialway": {
51222                     "name": "Aerialway",
51223                     "terms": "ski lift,funifor,funitel"
51224                 },
51225                 "aerialway/cable_car": {
51226                     "name": "Cable Car",
51227                     "terms": "tramway,ropeway"
51228                 },
51229                 "aerialway/chair_lift": {
51230                     "name": "Chair Lift",
51231                     "terms": ""
51232                 },
51233                 "aerialway/gondola": {
51234                     "name": "Gondola",
51235                     "terms": ""
51236                 },
51237                 "aerialway/magic_carpet": {
51238                     "name": "Magic Carpet Lift",
51239                     "terms": ""
51240                 },
51241                 "aerialway/platter": {
51242                     "name": "Platter Lift",
51243                     "terms": "button lift,poma lift"
51244                 },
51245                 "aerialway/pylon": {
51246                     "name": "Aerialway Pylon",
51247                     "terms": ""
51248                 },
51249                 "aerialway/rope_tow": {
51250                     "name": "Rope Tow Lift",
51251                     "terms": "handle tow,bugel lift"
51252                 },
51253                 "aerialway/station": {
51254                     "name": "Aerialway Station",
51255                     "terms": ""
51256                 },
51257                 "aerialway/t-bar": {
51258                     "name": "T-bar Lift",
51259                     "terms": ""
51260                 },
51261                 "aeroway": {
51262                     "name": "Aeroway",
51263                     "terms": ""
51264                 },
51265                 "aeroway/aerodrome": {
51266                     "name": "Airport",
51267                     "terms": "airplane,airport,aerodrome"
51268                 },
51269                 "aeroway/apron": {
51270                     "name": "Apron",
51271                     "terms": "ramp"
51272                 },
51273                 "aeroway/gate": {
51274                     "name": "Airport gate",
51275                     "terms": ""
51276                 },
51277                 "aeroway/hangar": {
51278                     "name": "Hangar",
51279                     "terms": ""
51280                 },
51281                 "aeroway/helipad": {
51282                     "name": "Helipad",
51283                     "terms": "helicopter,helipad,heliport"
51284                 },
51285                 "aeroway/runway": {
51286                     "name": "Runway",
51287                     "terms": "landing strip"
51288                 },
51289                 "aeroway/taxiway": {
51290                     "name": "Taxiway",
51291                     "terms": ""
51292                 },
51293                 "aeroway/terminal": {
51294                     "name": "Airport terminal",
51295                     "terms": "airport,aerodrome"
51296                 },
51297                 "amenity": {
51298                     "name": "Amenity",
51299                     "terms": ""
51300                 },
51301                 "amenity/arts_centre": {
51302                     "name": "Arts Center",
51303                     "terms": ""
51304                 },
51305                 "amenity/atm": {
51306                     "name": "ATM",
51307                     "terms": "money,cash,machine"
51308                 },
51309                 "amenity/bank": {
51310                     "name": "Bank",
51311                     "terms": "credit union,check,deposit,fund,investment,repository,reserve,safe,savings,stock,treasury,trust,vault"
51312                 },
51313                 "amenity/bar": {
51314                     "name": "Bar",
51315                     "terms": "dive,beer,bier,booze"
51316                 },
51317                 "amenity/bbq": {
51318                     "name": "Barbecue/Grill",
51319                     "terms": "bbq"
51320                 },
51321                 "amenity/bench": {
51322                     "name": "Bench",
51323                     "terms": ""
51324                 },
51325                 "amenity/bicycle_parking": {
51326                     "name": "Bicycle Parking",
51327                     "terms": "bike"
51328                 },
51329                 "amenity/bicycle_rental": {
51330                     "name": "Bicycle Rental",
51331                     "terms": "bike"
51332                 },
51333                 "amenity/bicycle_repair_station": {
51334                     "name": "Bicycle Repair Station",
51335                     "terms": "bike"
51336                 },
51337                 "amenity/boat_rental": {
51338                     "name": "Boat Rental",
51339                     "terms": ""
51340                 },
51341                 "amenity/bureau_de_change": {
51342                     "name": "Currency Exchange",
51343                     "terms": "bureau de change,money changer"
51344                 },
51345                 "amenity/bus_station": {
51346                     "name": "Bus Station",
51347                     "terms": ""
51348                 },
51349                 "amenity/cafe": {
51350                     "name": "Cafe",
51351                     "terms": "coffee,tea"
51352                 },
51353                 "amenity/car_rental": {
51354                     "name": "Car Rental",
51355                     "terms": ""
51356                 },
51357                 "amenity/car_sharing": {
51358                     "name": "Car Sharing",
51359                     "terms": ""
51360                 },
51361                 "amenity/car_wash": {
51362                     "name": "Car Wash",
51363                     "terms": ""
51364                 },
51365                 "amenity/charging_station": {
51366                     "name": "Charging Station",
51367                     "terms": "EV,Electric Vehicle,Supercharger"
51368                 },
51369                 "amenity/childcare": {
51370                     "name": "Nursery/Childcare",
51371                     "terms": "daycare,orphanage,playgroup"
51372                 },
51373                 "amenity/cinema": {
51374                     "name": "Cinema",
51375                     "terms": "drive-in,film,flick,movie,theater,picture,show,screen"
51376                 },
51377                 "amenity/clinic": {
51378                     "name": "Clinic",
51379                     "terms": "medical,urgentcare"
51380                 },
51381                 "amenity/clock": {
51382                     "name": "Clock",
51383                     "terms": ""
51384                 },
51385                 "amenity/college": {
51386                     "name": "College Grounds",
51387                     "terms": "university"
51388                 },
51389                 "amenity/community_centre": {
51390                     "name": "Community Center",
51391                     "terms": "event,hall"
51392                 },
51393                 "amenity/compressed_air": {
51394                     "name": "Compressed Air",
51395                     "terms": ""
51396                 },
51397                 "amenity/courthouse": {
51398                     "name": "Courthouse",
51399                     "terms": ""
51400                 },
51401                 "amenity/dentist": {
51402                     "name": "Dentist",
51403                     "terms": "tooth,teeth"
51404                 },
51405                 "amenity/doctor": {
51406                     "name": "Doctor",
51407                     "terms": "medic*"
51408                 },
51409                 "amenity/dojo": {
51410                     "name": "Dojo / Martial Arts Academy",
51411                     "terms": "martial arts,dojang"
51412                 },
51413                 "amenity/drinking_water": {
51414                     "name": "Drinking Water",
51415                     "terms": "fountain,potable"
51416                 },
51417                 "amenity/embassy": {
51418                     "name": "Embassy",
51419                     "terms": ""
51420                 },
51421                 "amenity/fast_food": {
51422                     "name": "Fast Food",
51423                     "terms": "restaurant"
51424                 },
51425                 "amenity/fire_station": {
51426                     "name": "Fire Station",
51427                     "terms": ""
51428                 },
51429                 "amenity/fountain": {
51430                     "name": "Fountain",
51431                     "terms": ""
51432                 },
51433                 "amenity/fuel": {
51434                     "name": "Gas Station",
51435                     "terms": "petrol,fuel,propane,diesel,lng,cng,biodiesel"
51436                 },
51437                 "amenity/grave_yard": {
51438                     "name": "Graveyard",
51439                     "terms": ""
51440                 },
51441                 "amenity/grit_bin": {
51442                     "name": "Grit Bin",
51443                     "terms": "salt,sand"
51444                 },
51445                 "amenity/hospital": {
51446                     "name": "Hospital Grounds",
51447                     "terms": "clinic,doctor,emergency room,health service,hospice,infirmary,institution,nursing home,sanatorium,sanitarium,sick,surgery,ward"
51448                 },
51449                 "amenity/kindergarten": {
51450                     "name": "Preschool/Kindergarten Grounds",
51451                     "terms": "kindergarden,pre-school"
51452                 },
51453                 "amenity/library": {
51454                     "name": "Library",
51455                     "terms": "book"
51456                 },
51457                 "amenity/marketplace": {
51458                     "name": "Marketplace",
51459                     "terms": ""
51460                 },
51461                 "amenity/nightclub": {
51462                     "name": "Nightclub",
51463                     "terms": "disco*,night club,dancing,dance club"
51464                 },
51465                 "amenity/parking": {
51466                     "name": "Car Parking",
51467                     "terms": ""
51468                 },
51469                 "amenity/parking_entrance": {
51470                     "name": "Parking Garage Entrance/Exit",
51471                     "terms": ""
51472                 },
51473                 "amenity/pharmacy": {
51474                     "name": "Pharmacy",
51475                     "terms": "drug,medicine"
51476                 },
51477                 "amenity/place_of_worship": {
51478                     "name": "Place of Worship",
51479                     "terms": "abbey,basilica,bethel,cathedral,chancel,chantry,chapel,church,fold,house of God,house of prayer,house of worship,minster,mission,mosque,oratory,parish,sacellum,sanctuary,shrine,synagogue,tabernacle,temple"
51480                 },
51481                 "amenity/place_of_worship/buddhist": {
51482                     "name": "Buddhist Temple",
51483                     "terms": "stupa,vihara,monastery,temple,pagoda,zendo,dojo"
51484                 },
51485                 "amenity/place_of_worship/christian": {
51486                     "name": "Church",
51487                     "terms": "christian,abbey,basilica,bethel,cathedral,chancel,chantry,chapel,fold,house of God,house of prayer,house of worship,minster,mission,oratory,parish,sacellum,sanctuary,shrine,tabernacle,temple"
51488                 },
51489                 "amenity/place_of_worship/jewish": {
51490                     "name": "Synagogue",
51491                     "terms": "jewish"
51492                 },
51493                 "amenity/place_of_worship/muslim": {
51494                     "name": "Mosque",
51495                     "terms": "muslim"
51496                 },
51497                 "amenity/police": {
51498                     "name": "Police",
51499                     "terms": "badge,constable,constabulary,cop,detective,fed,law,enforcement,officer,patrol"
51500                 },
51501                 "amenity/post_box": {
51502                     "name": "Mailbox",
51503                     "terms": "letter,post"
51504                 },
51505                 "amenity/post_office": {
51506                     "name": "Post Office",
51507                     "terms": "letter,mail"
51508                 },
51509                 "amenity/pub": {
51510                     "name": "Pub",
51511                     "terms": "dive,beer,bier,booze"
51512                 },
51513                 "amenity/public_bookcase": {
51514                     "name": "Public Bookcase",
51515                     "terms": "library,bookcrossing"
51516                 },
51517                 "amenity/ranger_station": {
51518                     "name": "Ranger Station",
51519                     "terms": "visitor center,visitor centre,permit center,permit centre,backcountry office,warden office,warden center"
51520                 },
51521                 "amenity/recycling": {
51522                     "name": "Recycling",
51523                     "terms": "can,bottle,garbage,scrap,trash"
51524                 },
51525                 "amenity/register_office": {
51526                     "name": "Register Office",
51527                     "terms": ""
51528                 },
51529                 "amenity/restaurant": {
51530                     "name": "Restaurant",
51531                     "terms": "bar,breakfast,cafe,café,canteen,coffee,dine,dining,dinner,drive-in,eat,grill,lunch,table"
51532                 },
51533                 "amenity/school": {
51534                     "name": "School Grounds",
51535                     "terms": "academy,elementary school,middle school,high school"
51536                 },
51537                 "amenity/shelter": {
51538                     "name": "Shelter",
51539                     "terms": "lean-to,gazebo,picnic"
51540                 },
51541                 "amenity/social_facility": {
51542                     "name": "Social Facility",
51543                     "terms": ""
51544                 },
51545                 "amenity/social_facility/food_bank": {
51546                     "name": "Food Bank",
51547                     "terms": ""
51548                 },
51549                 "amenity/social_facility/group_home": {
51550                     "name": "Elderly Group Home",
51551                     "terms": "old,senior,living"
51552                 },
51553                 "amenity/social_facility/homeless_shelter": {
51554                     "name": "Homeless Shelter",
51555                     "terms": "houseless,unhoused,displaced"
51556                 },
51557                 "amenity/studio": {
51558                     "name": "Studio",
51559                     "terms": "recording,radio,television"
51560                 },
51561                 "amenity/swimming_pool": {
51562                     "name": "Swimming Pool",
51563                     "terms": ""
51564                 },
51565                 "amenity/taxi": {
51566                     "name": "Taxi Stand",
51567                     "terms": "cab"
51568                 },
51569                 "amenity/telephone": {
51570                     "name": "Telephone",
51571                     "terms": "phone"
51572                 },
51573                 "amenity/theatre": {
51574                     "name": "Theater",
51575                     "terms": "theatre,performance,play,musical"
51576                 },
51577                 "amenity/toilets": {
51578                     "name": "Toilets",
51579                     "terms": "bathroom,restroom,outhouse,privy,head,lavatory,latrine,water closet,WC,W.C."
51580                 },
51581                 "amenity/townhall": {
51582                     "name": "Town Hall",
51583                     "terms": "village,city,government,courthouse,municipal"
51584                 },
51585                 "amenity/university": {
51586                     "name": "University Grounds",
51587                     "terms": "college"
51588                 },
51589                 "amenity/vending_machine": {
51590                     "name": "Vending Machine",
51591                     "terms": "snack,soda,ticket"
51592                 },
51593                 "amenity/veterinary": {
51594                     "name": "Veterinary",
51595                     "terms": "pet clinic,veterinarian,animal hospital,pet doctor"
51596                 },
51597                 "amenity/waste_basket": {
51598                     "name": "Waste Basket",
51599                     "terms": "rubbish,litter,trash,garbage"
51600                 },
51601                 "area": {
51602                     "name": "Area",
51603                     "terms": ""
51604                 },
51605                 "barrier": {
51606                     "name": "Barrier",
51607                     "terms": ""
51608                 },
51609                 "barrier/block": {
51610                     "name": "Block",
51611                     "terms": ""
51612                 },
51613                 "barrier/bollard": {
51614                     "name": "Bollard",
51615                     "terms": ""
51616                 },
51617                 "barrier/cattle_grid": {
51618                     "name": "Cattle Grid",
51619                     "terms": ""
51620                 },
51621                 "barrier/city_wall": {
51622                     "name": "City Wall",
51623                     "terms": ""
51624                 },
51625                 "barrier/cycle_barrier": {
51626                     "name": "Cycle Barrier",
51627                     "terms": ""
51628                 },
51629                 "barrier/ditch": {
51630                     "name": "Ditch",
51631                     "terms": ""
51632                 },
51633                 "barrier/entrance": {
51634                     "name": "Entrance",
51635                     "terms": ""
51636                 },
51637                 "barrier/fence": {
51638                     "name": "Fence",
51639                     "terms": ""
51640                 },
51641                 "barrier/gate": {
51642                     "name": "Gate",
51643                     "terms": ""
51644                 },
51645                 "barrier/hedge": {
51646                     "name": "Hedge",
51647                     "terms": ""
51648                 },
51649                 "barrier/kissing_gate": {
51650                     "name": "Kissing Gate",
51651                     "terms": ""
51652                 },
51653                 "barrier/lift_gate": {
51654                     "name": "Lift Gate",
51655                     "terms": ""
51656                 },
51657                 "barrier/retaining_wall": {
51658                     "name": "Retaining Wall",
51659                     "terms": ""
51660                 },
51661                 "barrier/stile": {
51662                     "name": "Stile",
51663                     "terms": ""
51664                 },
51665                 "barrier/toll_booth": {
51666                     "name": "Toll Booth",
51667                     "terms": ""
51668                 },
51669                 "barrier/wall": {
51670                     "name": "Wall",
51671                     "terms": ""
51672                 },
51673                 "boundary/administrative": {
51674                     "name": "Administrative Boundary",
51675                     "terms": ""
51676                 },
51677                 "building": {
51678                     "name": "Building",
51679                     "terms": ""
51680                 },
51681                 "building/apartments": {
51682                     "name": "Apartments",
51683                     "terms": ""
51684                 },
51685                 "building/barn": {
51686                     "name": "Barn",
51687                     "terms": ""
51688                 },
51689                 "building/bunker": {
51690                     "name": "Bunker",
51691                     "terms": ""
51692                 },
51693                 "building/cabin": {
51694                     "name": "Cabin",
51695                     "terms": ""
51696                 },
51697                 "building/cathedral": {
51698                     "name": "Cathedral",
51699                     "terms": ""
51700                 },
51701                 "building/chapel": {
51702                     "name": "Chapel",
51703                     "terms": ""
51704                 },
51705                 "building/church": {
51706                     "name": "Church",
51707                     "terms": ""
51708                 },
51709                 "building/college": {
51710                     "name": "College Building",
51711                     "terms": "university"
51712                 },
51713                 "building/commercial": {
51714                     "name": "Commercial Building",
51715                     "terms": ""
51716                 },
51717                 "building/construction": {
51718                     "name": "Building Under Construction",
51719                     "terms": ""
51720                 },
51721                 "building/detached": {
51722                     "name": "Detached Home",
51723                     "terms": ""
51724                 },
51725                 "building/dormitory": {
51726                     "name": "Dormitory",
51727                     "terms": ""
51728                 },
51729                 "building/entrance": {
51730                     "name": "Entrance/Exit",
51731                     "terms": ""
51732                 },
51733                 "building/garage": {
51734                     "name": "Garage",
51735                     "terms": ""
51736                 },
51737                 "building/garages": {
51738                     "name": "Garages",
51739                     "terms": ""
51740                 },
51741                 "building/greenhouse": {
51742                     "name": "Greenhouse",
51743                     "terms": ""
51744                 },
51745                 "building/hospital": {
51746                     "name": "Hospital Building",
51747                     "terms": ""
51748                 },
51749                 "building/hotel": {
51750                     "name": "Hotel Building",
51751                     "terms": ""
51752                 },
51753                 "building/house": {
51754                     "name": "House",
51755                     "terms": ""
51756                 },
51757                 "building/hut": {
51758                     "name": "Hut",
51759                     "terms": ""
51760                 },
51761                 "building/industrial": {
51762                     "name": "Industrial Building",
51763                     "terms": ""
51764                 },
51765                 "building/kindergarten": {
51766                     "name": "Preschool/Kindergarten Building",
51767                     "terms": "kindergarden,pre-school"
51768                 },
51769                 "building/public": {
51770                     "name": "Public Building",
51771                     "terms": ""
51772                 },
51773                 "building/residential": {
51774                     "name": "Residential Building",
51775                     "terms": ""
51776                 },
51777                 "building/retail": {
51778                     "name": "Retail Building",
51779                     "terms": ""
51780                 },
51781                 "building/roof": {
51782                     "name": "Roof",
51783                     "terms": ""
51784                 },
51785                 "building/school": {
51786                     "name": "School Building",
51787                     "terms": "academy,elementary school,middle school,high school"
51788                 },
51789                 "building/shed": {
51790                     "name": "Shed",
51791                     "terms": ""
51792                 },
51793                 "building/stable": {
51794                     "name": "Stable",
51795                     "terms": ""
51796                 },
51797                 "building/static_caravan": {
51798                     "name": "Static Mobile Home",
51799                     "terms": ""
51800                 },
51801                 "building/terrace": {
51802                     "name": "Row Houses",
51803                     "terms": ""
51804                 },
51805                 "building/train_station": {
51806                     "name": "Train Station",
51807                     "terms": ""
51808                 },
51809                 "building/university": {
51810                     "name": "University Building",
51811                     "terms": "college"
51812                 },
51813                 "building/warehouse": {
51814                     "name": "Warehouse",
51815                     "terms": ""
51816                 },
51817                 "craft": {
51818                     "name": "Craft",
51819                     "terms": ""
51820                 },
51821                 "craft/basket_maker": {
51822                     "name": "Basket Maker",
51823                     "terms": ""
51824                 },
51825                 "craft/beekeeper": {
51826                     "name": "Beekeeper",
51827                     "terms": ""
51828                 },
51829                 "craft/blacksmith": {
51830                     "name": "Blacksmith",
51831                     "terms": ""
51832                 },
51833                 "craft/boatbuilder": {
51834                     "name": "Boat Builder",
51835                     "terms": ""
51836                 },
51837                 "craft/bookbinder": {
51838                     "name": "Bookbinder",
51839                     "terms": "book repair"
51840                 },
51841                 "craft/brewery": {
51842                     "name": "Brewery",
51843                     "terms": "beer,bier"
51844                 },
51845                 "craft/carpenter": {
51846                     "name": "Carpenter",
51847                     "terms": "woodworker"
51848                 },
51849                 "craft/carpet_layer": {
51850                     "name": "Carpet Layer",
51851                     "terms": ""
51852                 },
51853                 "craft/caterer": {
51854                     "name": "Caterer",
51855                     "terms": ""
51856                 },
51857                 "craft/clockmaker": {
51858                     "name": "Clockmaker",
51859                     "terms": ""
51860                 },
51861                 "craft/confectionery": {
51862                     "name": "Confectionery",
51863                     "terms": "sweets,candy"
51864                 },
51865                 "craft/dressmaker": {
51866                     "name": "Dressmaker",
51867                     "terms": "seamstress"
51868                 },
51869                 "craft/electrician": {
51870                     "name": "Electrician",
51871                     "terms": "power,wire"
51872                 },
51873                 "craft/gardener": {
51874                     "name": "Gardener",
51875                     "terms": "landscaper,grounds keeper"
51876                 },
51877                 "craft/glaziery": {
51878                     "name": "Glaziery",
51879                     "terms": "glass,stained-glass,window"
51880                 },
51881                 "craft/handicraft": {
51882                     "name": "Handicraft",
51883                     "terms": ""
51884                 },
51885                 "craft/hvac": {
51886                     "name": "HVAC",
51887                     "terms": "heat*,vent*,air conditioning"
51888                 },
51889                 "craft/insulator": {
51890                     "name": "Insulator",
51891                     "terms": ""
51892                 },
51893                 "craft/jeweler": {
51894                     "name": "Jeweler",
51895                     "terms": ""
51896                 },
51897                 "craft/key_cutter": {
51898                     "name": "Key Cutter",
51899                     "terms": ""
51900                 },
51901                 "craft/locksmith": {
51902                     "name": "Locksmith",
51903                     "terms": ""
51904                 },
51905                 "craft/metal_construction": {
51906                     "name": "Metal Construction",
51907                     "terms": ""
51908                 },
51909                 "craft/optician": {
51910                     "name": "Optician",
51911                     "terms": ""
51912                 },
51913                 "craft/painter": {
51914                     "name": "Painter",
51915                     "terms": ""
51916                 },
51917                 "craft/photographer": {
51918                     "name": "Photographer",
51919                     "terms": ""
51920                 },
51921                 "craft/photographic_laboratory": {
51922                     "name": "Photographic Laboratory",
51923                     "terms": "film"
51924                 },
51925                 "craft/plasterer": {
51926                     "name": "Plasterer",
51927                     "terms": ""
51928                 },
51929                 "craft/plumber": {
51930                     "name": "Plumber",
51931                     "terms": "pipe"
51932                 },
51933                 "craft/pottery": {
51934                     "name": "Pottery",
51935                     "terms": "ceramic"
51936                 },
51937                 "craft/rigger": {
51938                     "name": "Rigger",
51939                     "terms": ""
51940                 },
51941                 "craft/roofer": {
51942                     "name": "Roofer",
51943                     "terms": ""
51944                 },
51945                 "craft/saddler": {
51946                     "name": "Saddler",
51947                     "terms": ""
51948                 },
51949                 "craft/sailmaker": {
51950                     "name": "Sailmaker",
51951                     "terms": ""
51952                 },
51953                 "craft/sawmill": {
51954                     "name": "Sawmill",
51955                     "terms": "lumber"
51956                 },
51957                 "craft/scaffolder": {
51958                     "name": "Scaffolder",
51959                     "terms": ""
51960                 },
51961                 "craft/sculpter": {
51962                     "name": "Sculpter",
51963                     "terms": ""
51964                 },
51965                 "craft/shoemaker": {
51966                     "name": "Shoemaker",
51967                     "terms": "cobbler"
51968                 },
51969                 "craft/stonemason": {
51970                     "name": "Stonemason",
51971                     "terms": "masonry"
51972                 },
51973                 "craft/sweep": {
51974                     "name": "Chimney Sweep",
51975                     "terms": ""
51976                 },
51977                 "craft/tailor": {
51978                     "name": "Tailor",
51979                     "terms": "clothes,suit"
51980                 },
51981                 "craft/tiler": {
51982                     "name": "Tiler",
51983                     "terms": ""
51984                 },
51985                 "craft/tinsmith": {
51986                     "name": "Tinsmith",
51987                     "terms": ""
51988                 },
51989                 "craft/upholsterer": {
51990                     "name": "Upholsterer",
51991                     "terms": ""
51992                 },
51993                 "craft/watchmaker": {
51994                     "name": "Watchmaker",
51995                     "terms": ""
51996                 },
51997                 "craft/window_construction": {
51998                     "name": "Window Construction",
51999                     "terms": "glass"
52000                 },
52001                 "craft/winery": {
52002                     "name": "Winery",
52003                     "terms": ""
52004                 },
52005                 "embankment": {
52006                     "name": "Embankment",
52007                     "terms": ""
52008                 },
52009                 "emergency/ambulance_station": {
52010                     "name": "Ambulance Station",
52011                     "terms": "EMS,EMT,rescue"
52012                 },
52013                 "emergency/fire_hydrant": {
52014                     "name": "Fire Hydrant",
52015                     "terms": ""
52016                 },
52017                 "emergency/phone": {
52018                     "name": "Emergency Phone",
52019                     "terms": ""
52020                 },
52021                 "entrance": {
52022                     "name": "Entrance/Exit",
52023                     "terms": ""
52024                 },
52025                 "footway/crossing": {
52026                     "name": "Crossing",
52027                     "terms": ""
52028                 },
52029                 "footway/crosswalk": {
52030                     "name": "Crosswalk",
52031                     "terms": "zebra crossing"
52032                 },
52033                 "footway/sidewalk": {
52034                     "name": "Sidewalk",
52035                     "terms": ""
52036                 },
52037                 "ford": {
52038                     "name": "Ford",
52039                     "terms": ""
52040                 },
52041                 "golf/bunker": {
52042                     "name": "Sand Trap",
52043                     "terms": "hazard,bunker"
52044                 },
52045                 "golf/fairway": {
52046                     "name": "Fairway",
52047                     "terms": ""
52048                 },
52049                 "golf/green": {
52050                     "name": "Putting Green",
52051                     "terms": ""
52052                 },
52053                 "golf/hole": {
52054                     "name": "Golf Hole",
52055                     "terms": ""
52056                 },
52057                 "golf/lateral_water_hazard": {
52058                     "name": "Lateral Water Hazard",
52059                     "terms": ""
52060                 },
52061                 "golf/rough": {
52062                     "name": "Rough",
52063                     "terms": ""
52064                 },
52065                 "golf/tee": {
52066                     "name": "Tee Box",
52067                     "terms": "teeing ground"
52068                 },
52069                 "golf/water_hazard": {
52070                     "name": "Water Hazard",
52071                     "terms": ""
52072                 },
52073                 "highway": {
52074                     "name": "Highway",
52075                     "terms": ""
52076                 },
52077                 "highway/bridleway": {
52078                     "name": "Bridle Path",
52079                     "terms": "bridleway,equestrian,horse"
52080                 },
52081                 "highway/bus_stop": {
52082                     "name": "Bus Stop",
52083                     "terms": ""
52084                 },
52085                 "highway/crossing": {
52086                     "name": "Crossing",
52087                     "terms": ""
52088                 },
52089                 "highway/crosswalk": {
52090                     "name": "Crosswalk",
52091                     "terms": "zebra crossing"
52092                 },
52093                 "highway/cycleway": {
52094                     "name": "Cycle Path",
52095                     "terms": "bike"
52096                 },
52097                 "highway/footway": {
52098                     "name": "Foot Path",
52099                     "terms": "hike,hiking,trackway,trail,walk"
52100                 },
52101                 "highway/living_street": {
52102                     "name": "Living Street",
52103                     "terms": ""
52104                 },
52105                 "highway/mini_roundabout": {
52106                     "name": "Mini-Roundabout",
52107                     "terms": ""
52108                 },
52109                 "highway/motorway": {
52110                     "name": "Motorway",
52111                     "terms": ""
52112                 },
52113                 "highway/motorway_junction": {
52114                     "name": "Motorway Junction / Exit",
52115                     "terms": ""
52116                 },
52117                 "highway/motorway_link": {
52118                     "name": "Motorway Link",
52119                     "terms": "ramp,on ramp,off ramp"
52120                 },
52121                 "highway/path": {
52122                     "name": "Path",
52123                     "terms": "hike,hiking,trackway,trail,walk"
52124                 },
52125                 "highway/pedestrian": {
52126                     "name": "Pedestrian",
52127                     "terms": ""
52128                 },
52129                 "highway/primary": {
52130                     "name": "Primary Road",
52131                     "terms": ""
52132                 },
52133                 "highway/primary_link": {
52134                     "name": "Primary Link",
52135                     "terms": "ramp,on ramp,off ramp"
52136                 },
52137                 "highway/raceway": {
52138                     "name": "Motor Raceway",
52139                     "terms": "auto*,race*,nascar"
52140                 },
52141                 "highway/residential": {
52142                     "name": "Residential Road",
52143                     "terms": ""
52144                 },
52145                 "highway/rest_area": {
52146                     "name": "Rest Area",
52147                     "terms": "rest stop"
52148                 },
52149                 "highway/road": {
52150                     "name": "Unknown Road",
52151                     "terms": ""
52152                 },
52153                 "highway/secondary": {
52154                     "name": "Secondary Road",
52155                     "terms": ""
52156                 },
52157                 "highway/secondary_link": {
52158                     "name": "Secondary Link",
52159                     "terms": "ramp,on ramp,off ramp"
52160                 },
52161                 "highway/service": {
52162                     "name": "Service Road",
52163                     "terms": ""
52164                 },
52165                 "highway/service/alley": {
52166                     "name": "Alley",
52167                     "terms": ""
52168                 },
52169                 "highway/service/drive-through": {
52170                     "name": "Drive-Through",
52171                     "terms": ""
52172                 },
52173                 "highway/service/driveway": {
52174                     "name": "Driveway",
52175                     "terms": ""
52176                 },
52177                 "highway/service/emergency_access": {
52178                     "name": "Emergency Access",
52179                     "terms": ""
52180                 },
52181                 "highway/service/parking_aisle": {
52182                     "name": "Parking Aisle",
52183                     "terms": ""
52184                 },
52185                 "highway/services": {
52186                     "name": "Service Area",
52187                     "terms": "services,travel plaza,service station"
52188                 },
52189                 "highway/steps": {
52190                     "name": "Steps",
52191                     "terms": "stairs,staircase"
52192                 },
52193                 "highway/stop": {
52194                     "name": "Stop Sign",
52195                     "terms": "stop sign"
52196                 },
52197                 "highway/street_lamp": {
52198                     "name": "Street Lamp",
52199                     "terms": "streetlight,street light,lamp,light,gaslight"
52200                 },
52201                 "highway/tertiary": {
52202                     "name": "Tertiary Road",
52203                     "terms": ""
52204                 },
52205                 "highway/tertiary_link": {
52206                     "name": "Tertiary Link",
52207                     "terms": "ramp,on ramp,off ramp"
52208                 },
52209                 "highway/track": {
52210                     "name": "Track",
52211                     "terms": "woods road,fire road"
52212                 },
52213                 "highway/traffic_signals": {
52214                     "name": "Traffic Signals",
52215                     "terms": "light,stoplight,traffic light"
52216                 },
52217                 "highway/trunk": {
52218                     "name": "Trunk Road",
52219                     "terms": ""
52220                 },
52221                 "highway/trunk_link": {
52222                     "name": "Trunk Link",
52223                     "terms": "ramp,on ramp,off ramp"
52224                 },
52225                 "highway/turning_circle": {
52226                     "name": "Turning Circle",
52227                     "terms": "cul-de-sac"
52228                 },
52229                 "highway/unclassified": {
52230                     "name": "Unclassified Road",
52231                     "terms": ""
52232                 },
52233                 "historic": {
52234                     "name": "Historic Site",
52235                     "terms": ""
52236                 },
52237                 "historic/archaeological_site": {
52238                     "name": "Archaeological Site",
52239                     "terms": ""
52240                 },
52241                 "historic/boundary_stone": {
52242                     "name": "Boundary Stone",
52243                     "terms": ""
52244                 },
52245                 "historic/castle": {
52246                     "name": "Castle",
52247                     "terms": ""
52248                 },
52249                 "historic/memorial": {
52250                     "name": "Memorial",
52251                     "terms": ""
52252                 },
52253                 "historic/monument": {
52254                     "name": "Monument",
52255                     "terms": ""
52256                 },
52257                 "historic/ruins": {
52258                     "name": "Ruins",
52259                     "terms": ""
52260                 },
52261                 "historic/wayside_cross": {
52262                     "name": "Wayside Cross",
52263                     "terms": ""
52264                 },
52265                 "historic/wayside_shrine": {
52266                     "name": "Wayside Shrine",
52267                     "terms": ""
52268                 },
52269                 "junction": {
52270                     "name": "Junction",
52271                     "terms": ""
52272                 },
52273                 "landuse": {
52274                     "name": "Landuse",
52275                     "terms": ""
52276                 },
52277                 "landuse/allotments": {
52278                     "name": "Allotments",
52279                     "terms": ""
52280                 },
52281                 "landuse/basin": {
52282                     "name": "Basin",
52283                     "terms": ""
52284                 },
52285                 "landuse/cemetery": {
52286                     "name": "Cemetery",
52287                     "terms": ""
52288                 },
52289                 "landuse/churchyard": {
52290                     "name": "Churchyard",
52291                     "terms": ""
52292                 },
52293                 "landuse/commercial": {
52294                     "name": "Commercial Area",
52295                     "terms": ""
52296                 },
52297                 "landuse/construction": {
52298                     "name": "Construction",
52299                     "terms": ""
52300                 },
52301                 "landuse/farm": {
52302                     "name": "Farmland",
52303                     "terms": ""
52304                 },
52305                 "landuse/farmland": {
52306                     "name": "Farmland",
52307                     "terms": ""
52308                 },
52309                 "landuse/farmyard": {
52310                     "name": "Farmyard",
52311                     "terms": ""
52312                 },
52313                 "landuse/forest": {
52314                     "name": "Forest",
52315                     "terms": "tree"
52316                 },
52317                 "landuse/garages": {
52318                     "name": "Garages",
52319                     "terms": ""
52320                 },
52321                 "landuse/grass": {
52322                     "name": "Grass",
52323                     "terms": ""
52324                 },
52325                 "landuse/industrial": {
52326                     "name": "Industrial Area",
52327                     "terms": ""
52328                 },
52329                 "landuse/landfill": {
52330                     "name": "Landfill",
52331                     "terms": "dump"
52332                 },
52333                 "landuse/meadow": {
52334                     "name": "Meadow",
52335                     "terms": ""
52336                 },
52337                 "landuse/military": {
52338                     "name": "Military Area",
52339                     "terms": ""
52340                 },
52341                 "landuse/orchard": {
52342                     "name": "Orchard",
52343                     "terms": ""
52344                 },
52345                 "landuse/quarry": {
52346                     "name": "Quarry",
52347                     "terms": ""
52348                 },
52349                 "landuse/residential": {
52350                     "name": "Residential Area",
52351                     "terms": ""
52352                 },
52353                 "landuse/retail": {
52354                     "name": "Retail Area",
52355                     "terms": ""
52356                 },
52357                 "landuse/vineyard": {
52358                     "name": "Vineyard",
52359                     "terms": ""
52360                 },
52361                 "leisure": {
52362                     "name": "Leisure",
52363                     "terms": ""
52364                 },
52365                 "leisure/common": {
52366                     "name": "Common",
52367                     "terms": "open space"
52368                 },
52369                 "leisure/dog_park": {
52370                     "name": "Dog Park",
52371                     "terms": ""
52372                 },
52373                 "leisure/firepit": {
52374                     "name": "Firepit",
52375                     "terms": "fireplace,campfire"
52376                 },
52377                 "leisure/garden": {
52378                     "name": "Garden",
52379                     "terms": ""
52380                 },
52381                 "leisure/golf_course": {
52382                     "name": "Golf Course",
52383                     "terms": "links"
52384                 },
52385                 "leisure/ice_rink": {
52386                     "name": "Ice Rink",
52387                     "terms": "hockey,skating,curling"
52388                 },
52389                 "leisure/marina": {
52390                     "name": "Marina",
52391                     "terms": "boat"
52392                 },
52393                 "leisure/nature_reserve": {
52394                     "name": "Nature Reserve",
52395                     "terms": "protected,wildlife"
52396                 },
52397                 "leisure/park": {
52398                     "name": "Park",
52399                     "terms": "esplanade,estate,forest,garden,grass,green,grounds,lawn,lot,meadow,parkland,place,playground,plaza,pleasure garden,recreation area,square,tract,village green,woodland"
52400                 },
52401                 "leisure/picnic_table": {
52402                     "name": "Picnic Table",
52403                     "terms": "bench"
52404                 },
52405                 "leisure/pitch": {
52406                     "name": "Sport Pitch",
52407                     "terms": "field"
52408                 },
52409                 "leisure/pitch/american_football": {
52410                     "name": "American Football Field",
52411                     "terms": ""
52412                 },
52413                 "leisure/pitch/baseball": {
52414                     "name": "Baseball Diamond",
52415                     "terms": ""
52416                 },
52417                 "leisure/pitch/basketball": {
52418                     "name": "Basketball Court",
52419                     "terms": ""
52420                 },
52421                 "leisure/pitch/skateboard": {
52422                     "name": "Skate Park",
52423                     "terms": ""
52424                 },
52425                 "leisure/pitch/soccer": {
52426                     "name": "Soccer Field",
52427                     "terms": ""
52428                 },
52429                 "leisure/pitch/tennis": {
52430                     "name": "Tennis Court",
52431                     "terms": ""
52432                 },
52433                 "leisure/pitch/volleyball": {
52434                     "name": "Volleyball Court",
52435                     "terms": ""
52436                 },
52437                 "leisure/playground": {
52438                     "name": "Playground",
52439                     "terms": "jungle gym,play area"
52440                 },
52441                 "leisure/running_track": {
52442                     "name": "Running Track",
52443                     "terms": ""
52444                 },
52445                 "leisure/slipway": {
52446                     "name": "Slipway",
52447                     "terms": "boat launch,boat ramp"
52448                 },
52449                 "leisure/sports_center": {
52450                     "name": "Sports Center / Gym",
52451                     "terms": "gym"
52452                 },
52453                 "leisure/stadium": {
52454                     "name": "Stadium",
52455                     "terms": ""
52456                 },
52457                 "leisure/swimming_pool": {
52458                     "name": "Swimming Pool",
52459                     "terms": ""
52460                 },
52461                 "leisure/track": {
52462                     "name": "Racetrack (non-Motorsport)",
52463                     "terms": ""
52464                 },
52465                 "line": {
52466                     "name": "Line",
52467                     "terms": ""
52468                 },
52469                 "man_made": {
52470                     "name": "Man Made",
52471                     "terms": ""
52472                 },
52473                 "man_made/breakwater": {
52474                     "name": "Breakwater",
52475                     "terms": ""
52476                 },
52477                 "man_made/cutline": {
52478                     "name": "Cut line",
52479                     "terms": ""
52480                 },
52481                 "man_made/embankment": {
52482                     "name": "Embankment",
52483                     "terms": ""
52484                 },
52485                 "man_made/flagpole": {
52486                     "name": "Flagpole",
52487                     "terms": ""
52488                 },
52489                 "man_made/lighthouse": {
52490                     "name": "Lighthouse",
52491                     "terms": ""
52492                 },
52493                 "man_made/mast": {
52494                     "name": "Radio Mast",
52495                     "terms": "broadcast tower,cell phone tower,cell tower,guyed tower,mobile phone tower,radio tower,television tower,transmission mast,transmission tower,tv tower"
52496                 },
52497                 "man_made/observation": {
52498                     "name": "Observation Tower",
52499                     "terms": "lookout tower,fire tower"
52500                 },
52501                 "man_made/petroleum_well": {
52502                     "name": "Oil Well",
52503                     "terms": "drilling rig,oil derrick,oil drill,oil horse,oil rig,oil pump,petroleum well,pumpjack"
52504                 },
52505                 "man_made/pier": {
52506                     "name": "Pier",
52507                     "terms": ""
52508                 },
52509                 "man_made/pipeline": {
52510                     "name": "Pipeline",
52511                     "terms": ""
52512                 },
52513                 "man_made/survey_point": {
52514                     "name": "Survey Point",
52515                     "terms": ""
52516                 },
52517                 "man_made/tower": {
52518                     "name": "Tower",
52519                     "terms": ""
52520                 },
52521                 "man_made/wastewater_plant": {
52522                     "name": "Wastewater Plant",
52523                     "terms": "sewage*,water treatment plant,reclamation plant"
52524                 },
52525                 "man_made/water_tower": {
52526                     "name": "Water Tower",
52527                     "terms": ""
52528                 },
52529                 "man_made/water_well": {
52530                     "name": "Water Well",
52531                     "terms": ""
52532                 },
52533                 "man_made/water_works": {
52534                     "name": "Water Works",
52535                     "terms": ""
52536                 },
52537                 "military/airfield": {
52538                     "name": "Airfield",
52539                     "terms": ""
52540                 },
52541                 "military/barracks": {
52542                     "name": "Barracks",
52543                     "terms": ""
52544                 },
52545                 "military/bunker": {
52546                     "name": "Bunker",
52547                     "terms": ""
52548                 },
52549                 "military/range": {
52550                     "name": "Military Range",
52551                     "terms": ""
52552                 },
52553                 "natural": {
52554                     "name": "Natural",
52555                     "terms": ""
52556                 },
52557                 "natural/bay": {
52558                     "name": "Bay",
52559                     "terms": ""
52560                 },
52561                 "natural/beach": {
52562                     "name": "Beach",
52563                     "terms": ""
52564                 },
52565                 "natural/cave_entrance": {
52566                     "name": "Cave Entrance",
52567                     "terms": ""
52568                 },
52569                 "natural/cliff": {
52570                     "name": "Cliff",
52571                     "terms": ""
52572                 },
52573                 "natural/coastline": {
52574                     "name": "Coastline",
52575                     "terms": "shore"
52576                 },
52577                 "natural/fell": {
52578                     "name": "Fell",
52579                     "terms": ""
52580                 },
52581                 "natural/glacier": {
52582                     "name": "Glacier",
52583                     "terms": ""
52584                 },
52585                 "natural/grassland": {
52586                     "name": "Grassland",
52587                     "terms": ""
52588                 },
52589                 "natural/heath": {
52590                     "name": "Heath",
52591                     "terms": ""
52592                 },
52593                 "natural/peak": {
52594                     "name": "Peak",
52595                     "terms": "acme,aiguille,alp,climax,crest,crown,hill,mount,mountain,pinnacle,summit,tip,top"
52596                 },
52597                 "natural/scree": {
52598                     "name": "Scree",
52599                     "terms": "loose rocks"
52600                 },
52601                 "natural/scrub": {
52602                     "name": "Scrub",
52603                     "terms": ""
52604                 },
52605                 "natural/spring": {
52606                     "name": "Spring",
52607                     "terms": ""
52608                 },
52609                 "natural/tree": {
52610                     "name": "Tree",
52611                     "terms": ""
52612                 },
52613                 "natural/water": {
52614                     "name": "Water",
52615                     "terms": ""
52616                 },
52617                 "natural/water/lake": {
52618                     "name": "Lake",
52619                     "terms": "lakelet,loch,mere"
52620                 },
52621                 "natural/water/pond": {
52622                     "name": "Pond",
52623                     "terms": "lakelet,millpond,tarn,pool,mere"
52624                 },
52625                 "natural/water/reservoir": {
52626                     "name": "Reservoir",
52627                     "terms": ""
52628                 },
52629                 "natural/wetland": {
52630                     "name": "Wetland",
52631                     "terms": ""
52632                 },
52633                 "natural/wood": {
52634                     "name": "Wood",
52635                     "terms": "tree"
52636                 },
52637                 "office": {
52638                     "name": "Office",
52639                     "terms": ""
52640                 },
52641                 "office/accountant": {
52642                     "name": "Accountant",
52643                     "terms": ""
52644                 },
52645                 "office/administrative": {
52646                     "name": "Administrative Office",
52647                     "terms": ""
52648                 },
52649                 "office/architect": {
52650                     "name": "Architect",
52651                     "terms": ""
52652                 },
52653                 "office/company": {
52654                     "name": "Company Office",
52655                     "terms": ""
52656                 },
52657                 "office/educational_institution": {
52658                     "name": "Educational Institution",
52659                     "terms": ""
52660                 },
52661                 "office/employment_agency": {
52662                     "name": "Employment Agency",
52663                     "terms": "job"
52664                 },
52665                 "office/estate_agent": {
52666                     "name": "Real Estate Office",
52667                     "terms": ""
52668                 },
52669                 "office/financial": {
52670                     "name": "Financial Office",
52671                     "terms": ""
52672                 },
52673                 "office/government": {
52674                     "name": "Government Office",
52675                     "terms": ""
52676                 },
52677                 "office/insurance": {
52678                     "name": "Insurance Office",
52679                     "terms": ""
52680                 },
52681                 "office/it": {
52682                     "name": "IT Office",
52683                     "terms": ""
52684                 },
52685                 "office/lawyer": {
52686                     "name": "Law Office",
52687                     "terms": ""
52688                 },
52689                 "office/newspaper": {
52690                     "name": "Newspaper",
52691                     "terms": ""
52692                 },
52693                 "office/ngo": {
52694                     "name": "NGO Office",
52695                     "terms": ""
52696                 },
52697                 "office/physician": {
52698                     "name": "Physician",
52699                     "terms": ""
52700                 },
52701                 "office/political_party": {
52702                     "name": "Political Party",
52703                     "terms": ""
52704                 },
52705                 "office/research": {
52706                     "name": "Research Office",
52707                     "terms": ""
52708                 },
52709                 "office/telecommunication": {
52710                     "name": "Telecom Office",
52711                     "terms": ""
52712                 },
52713                 "office/therapist": {
52714                     "name": "Therapist",
52715                     "terms": ""
52716                 },
52717                 "office/travel_agent": {
52718                     "name": "Travel Agency",
52719                     "terms": ""
52720                 },
52721                 "piste": {
52722                     "name": "Piste/Ski Trail",
52723                     "terms": "ski,sled,sleigh,snowboard,nordic,downhill,snowmobile"
52724                 },
52725                 "place": {
52726                     "name": "Place",
52727                     "terms": ""
52728                 },
52729                 "place/city": {
52730                     "name": "City",
52731                     "terms": ""
52732                 },
52733                 "place/farm": {
52734                     "name": "Farm",
52735                     "terms": ""
52736                 },
52737                 "place/hamlet": {
52738                     "name": "Hamlet",
52739                     "terms": ""
52740                 },
52741                 "place/island": {
52742                     "name": "Island",
52743                     "terms": "archipelago,atoll,bar,cay,isle,islet,key,reef"
52744                 },
52745                 "place/isolated_dwelling": {
52746                     "name": "Isolated Dwelling",
52747                     "terms": ""
52748                 },
52749                 "place/locality": {
52750                     "name": "Locality",
52751                     "terms": ""
52752                 },
52753                 "place/neighbourhood": {
52754                     "name": "Neighborhood",
52755                     "terms": "neighbourhood"
52756                 },
52757                 "place/suburb": {
52758                     "name": "Borough",
52759                     "terms": "Boro,Quarter"
52760                 },
52761                 "place/town": {
52762                     "name": "Town",
52763                     "terms": ""
52764                 },
52765                 "place/village": {
52766                     "name": "Village",
52767                     "terms": ""
52768                 },
52769                 "point": {
52770                     "name": "Point",
52771                     "terms": ""
52772                 },
52773                 "power": {
52774                     "name": "Power",
52775                     "terms": ""
52776                 },
52777                 "power/generator": {
52778                     "name": "Power Generator",
52779                     "terms": ""
52780                 },
52781                 "power/line": {
52782                     "name": "Power Line",
52783                     "terms": ""
52784                 },
52785                 "power/minor_line": {
52786                     "name": "Minor Power Line",
52787                     "terms": ""
52788                 },
52789                 "power/pole": {
52790                     "name": "Power Pole",
52791                     "terms": ""
52792                 },
52793                 "power/sub_station": {
52794                     "name": "Substation",
52795                     "terms": ""
52796                 },
52797                 "power/substation": {
52798                     "name": "Substation",
52799                     "terms": ""
52800                 },
52801                 "power/tower": {
52802                     "name": "High-Voltage Tower",
52803                     "terms": ""
52804                 },
52805                 "power/transformer": {
52806                     "name": "Transformer",
52807                     "terms": ""
52808                 },
52809                 "public_transport/platform": {
52810                     "name": "Platform",
52811                     "terms": ""
52812                 },
52813                 "public_transport/stop_position": {
52814                     "name": "Stop Position",
52815                     "terms": ""
52816                 },
52817                 "railway": {
52818                     "name": "Railway",
52819                     "terms": ""
52820                 },
52821                 "railway/abandoned": {
52822                     "name": "Abandoned Railway",
52823                     "terms": ""
52824                 },
52825                 "railway/disused": {
52826                     "name": "Disused Railway",
52827                     "terms": ""
52828                 },
52829                 "railway/funicular": {
52830                     "name": "Funicular",
52831                     "terms": "venicular,cliff railway,cable car,cable railway,funicular railway"
52832                 },
52833                 "railway/halt": {
52834                     "name": "Railway Halt",
52835                     "terms": "break,interrupt,rest,wait,interruption"
52836                 },
52837                 "railway/level_crossing": {
52838                     "name": "Level Crossing",
52839                     "terms": "crossing,railroad crossing,railway crossing,grade crossing,road through railroad,train crossing"
52840                 },
52841                 "railway/monorail": {
52842                     "name": "Monorail",
52843                     "terms": ""
52844                 },
52845                 "railway/narrow_gauge": {
52846                     "name": "Narrow Gauge Rail",
52847                     "terms": "narrow gauge railway,narrow gauge railroad"
52848                 },
52849                 "railway/platform": {
52850                     "name": "Railway Platform",
52851                     "terms": ""
52852                 },
52853                 "railway/rail": {
52854                     "name": "Rail",
52855                     "terms": ""
52856                 },
52857                 "railway/station": {
52858                     "name": "Railway Station",
52859                     "terms": "train station,station"
52860                 },
52861                 "railway/subway": {
52862                     "name": "Subway",
52863                     "terms": ""
52864                 },
52865                 "railway/subway_entrance": {
52866                     "name": "Subway Entrance",
52867                     "terms": ""
52868                 },
52869                 "railway/tram": {
52870                     "name": "Tram",
52871                     "terms": "streetcar"
52872                 },
52873                 "relation": {
52874                     "name": "Relation",
52875                     "terms": ""
52876                 },
52877                 "roundabout": {
52878                     "name": "Roundabout",
52879                     "terms": ""
52880                 },
52881                 "route/ferry": {
52882                     "name": "Ferry Route",
52883                     "terms": ""
52884                 },
52885                 "shop": {
52886                     "name": "Shop",
52887                     "terms": ""
52888                 },
52889                 "shop/alcohol": {
52890                     "name": "Liquor Store",
52891                     "terms": "alcohol,beer,booze,wine"
52892                 },
52893                 "shop/anime": {
52894                     "name": "Anime Shop",
52895                     "terms": ""
52896                 },
52897                 "shop/antiques": {
52898                     "name": "Antiques Shop",
52899                     "terms": ""
52900                 },
52901                 "shop/art": {
52902                     "name": "Art Gallery",
52903                     "terms": ""
52904                 },
52905                 "shop/baby_goods": {
52906                     "name": "Baby Goods Store",
52907                     "terms": ""
52908                 },
52909                 "shop/bag": {
52910                     "name": "Bag/Luggage Store",
52911                     "terms": "handbag,purse"
52912                 },
52913                 "shop/bakery": {
52914                     "name": "Bakery",
52915                     "terms": ""
52916                 },
52917                 "shop/bathroom_furnishing": {
52918                     "name": "Bathroom Furnishing Store",
52919                     "terms": ""
52920                 },
52921                 "shop/beauty": {
52922                     "name": "Beauty Shop",
52923                     "terms": "nail spa,spa,salon,tanning"
52924                 },
52925                 "shop/bed": {
52926                     "name": "Bedding/Mattress Store",
52927                     "terms": ""
52928                 },
52929                 "shop/beverages": {
52930                     "name": "Beverage Store",
52931                     "terms": ""
52932                 },
52933                 "shop/bicycle": {
52934                     "name": "Bicycle Shop",
52935                     "terms": ""
52936                 },
52937                 "shop/bookmaker": {
52938                     "name": "Bookmaker",
52939                     "terms": ""
52940                 },
52941                 "shop/books": {
52942                     "name": "Book Store",
52943                     "terms": ""
52944                 },
52945                 "shop/boutique": {
52946                     "name": "Boutique",
52947                     "terms": ""
52948                 },
52949                 "shop/butcher": {
52950                     "name": "Butcher",
52951                     "terms": "meat"
52952                 },
52953                 "shop/candles": {
52954                     "name": "Candle Shop",
52955                     "terms": ""
52956                 },
52957                 "shop/car": {
52958                     "name": "Car Dealership",
52959                     "terms": "auto"
52960                 },
52961                 "shop/car_parts": {
52962                     "name": "Car Parts Store",
52963                     "terms": "auto"
52964                 },
52965                 "shop/car_repair": {
52966                     "name": "Car Repair Shop",
52967                     "terms": "auto"
52968                 },
52969                 "shop/carpet": {
52970                     "name": "Carpet Store",
52971                     "terms": "rug"
52972                 },
52973                 "shop/cheese": {
52974                     "name": "Cheese Store",
52975                     "terms": ""
52976                 },
52977                 "shop/chemist": {
52978                     "name": "Chemist",
52979                     "terms": ""
52980                 },
52981                 "shop/chocolate": {
52982                     "name": "Chocolate Store",
52983                     "terms": ""
52984                 },
52985                 "shop/clothes": {
52986                     "name": "Clothing Store",
52987                     "terms": ""
52988                 },
52989                 "shop/computer": {
52990                     "name": "Computer Store",
52991                     "terms": ""
52992                 },
52993                 "shop/confectionery": {
52994                     "name": "Candy Store",
52995                     "terms": ""
52996                 },
52997                 "shop/convenience": {
52998                     "name": "Convenience Store",
52999                     "terms": ""
53000                 },
53001                 "shop/copyshop": {
53002                     "name": "Copy Store",
53003                     "terms": ""
53004                 },
53005                 "shop/cosmetics": {
53006                     "name": "Cosmetics Store",
53007                     "terms": ""
53008                 },
53009                 "shop/craft": {
53010                     "name": "Arts and Crafts Store",
53011                     "terms": ""
53012                 },
53013                 "shop/curtain": {
53014                     "name": "Curtain Store",
53015                     "terms": "drape*,window"
53016                 },
53017                 "shop/dairy": {
53018                     "name": "Dairy Store",
53019                     "terms": "milk,egg,cheese"
53020                 },
53021                 "shop/deli": {
53022                     "name": "Deli",
53023                     "terms": "lunch,meat,sandwich"
53024                 },
53025                 "shop/department_store": {
53026                     "name": "Department Store",
53027                     "terms": ""
53028                 },
53029                 "shop/doityourself": {
53030                     "name": "DIY Store",
53031                     "terms": ""
53032                 },
53033                 "shop/dry_cleaning": {
53034                     "name": "Dry Cleaner",
53035                     "terms": ""
53036                 },
53037                 "shop/electronics": {
53038                     "name": "Electronics Store",
53039                     "terms": "appliance,audio,computer,tv"
53040                 },
53041                 "shop/erotic": {
53042                     "name": "Erotic Store",
53043                     "terms": "sex,porn"
53044                 },
53045                 "shop/fabric": {
53046                     "name": "Fabric Store",
53047                     "terms": "sew"
53048                 },
53049                 "shop/farm": {
53050                     "name": "Produce Stand",
53051                     "terms": "farm shop,farm stand"
53052                 },
53053                 "shop/fashion": {
53054                     "name": "Fashion Store",
53055                     "terms": ""
53056                 },
53057                 "shop/fishmonger": {
53058                     "name": "Fishmonger",
53059                     "terms": ""
53060                 },
53061                 "shop/florist": {
53062                     "name": "Florist",
53063                     "terms": "flower"
53064                 },
53065                 "shop/frame": {
53066                     "name": "Framing Shop",
53067                     "terms": ""
53068                 },
53069                 "shop/funeral_directors": {
53070                     "name": "Funeral Home",
53071                     "terms": "undertaker,memorial home"
53072                 },
53073                 "shop/furnace": {
53074                     "name": "Furnace Store",
53075                     "terms": "oven,stove"
53076                 },
53077                 "shop/furniture": {
53078                     "name": "Furniture Store",
53079                     "terms": "chair,sofa,table"
53080                 },
53081                 "shop/garden_centre": {
53082                     "name": "Garden Center",
53083                     "terms": "landscape,mulch,shrub,tree"
53084                 },
53085                 "shop/gift": {
53086                     "name": "Gift Shop",
53087                     "terms": ""
53088                 },
53089                 "shop/greengrocer": {
53090                     "name": "Greengrocer",
53091                     "terms": "fruit,vegetable"
53092                 },
53093                 "shop/hairdresser": {
53094                     "name": "Hairdresser",
53095                     "terms": ""
53096                 },
53097                 "shop/hardware": {
53098                     "name": "Hardware Store",
53099                     "terms": ""
53100                 },
53101                 "shop/hearing_aids": {
53102                     "name": "Hearing Aids Store",
53103                     "terms": ""
53104                 },
53105                 "shop/herbalist": {
53106                     "name": "Herbalist",
53107                     "terms": ""
53108                 },
53109                 "shop/hifi": {
53110                     "name": "Hifi Store",
53111                     "terms": "stereo,video"
53112                 },
53113                 "shop/houseware": {
53114                     "name": "Houseware Store",
53115                     "terms": "home,household"
53116                 },
53117                 "shop/interior_decoration": {
53118                     "name": "Interior Decoration Store",
53119                     "terms": ""
53120                 },
53121                 "shop/jewelry": {
53122                     "name": "Jeweler",
53123                     "terms": "diamond,gem,ring"
53124                 },
53125                 "shop/kiosk": {
53126                     "name": "News Kiosk",
53127                     "terms": ""
53128                 },
53129                 "shop/kitchen": {
53130                     "name": "Kitchen Design Store",
53131                     "terms": ""
53132                 },
53133                 "shop/laundry": {
53134                     "name": "Laundry",
53135                     "terms": ""
53136                 },
53137                 "shop/leather": {
53138                     "name": "Leather Store",
53139                     "terms": ""
53140                 },
53141                 "shop/locksmith": {
53142                     "name": "Locksmith",
53143                     "terms": "key,lockpick"
53144                 },
53145                 "shop/lottery": {
53146                     "name": "Lottery Shop",
53147                     "terms": ""
53148                 },
53149                 "shop/mall": {
53150                     "name": "Mall",
53151                     "terms": ""
53152                 },
53153                 "shop/massage": {
53154                     "name": "Massage Shop",
53155                     "terms": ""
53156                 },
53157                 "shop/medical_supply": {
53158                     "name": "Medical Supply Store",
53159                     "terms": ""
53160                 },
53161                 "shop/mobile_phone": {
53162                     "name": "Mobile Phone Store",
53163                     "terms": ""
53164                 },
53165                 "shop/money_lender": {
53166                     "name": "Money Lender",
53167                     "terms": ""
53168                 },
53169                 "shop/motorcycle": {
53170                     "name": "Motorcycle Dealership",
53171                     "terms": ""
53172                 },
53173                 "shop/music": {
53174                     "name": "Music Store",
53175                     "terms": "CD,vinyl"
53176                 },
53177                 "shop/musical_instrument": {
53178                     "name": "Musical Instrument Store",
53179                     "terms": ""
53180                 },
53181                 "shop/newsagent": {
53182                     "name": "Newspaper/Magazine Shop",
53183                     "terms": ""
53184                 },
53185                 "shop/optician": {
53186                     "name": "Optician",
53187                     "terms": "eye,glasses"
53188                 },
53189                 "shop/organic": {
53190                     "name": "Organic Goods Store",
53191                     "terms": ""
53192                 },
53193                 "shop/outdoor": {
53194                     "name": "Outdoors Store",
53195                     "terms": "camping,climbing,hiking"
53196                 },
53197                 "shop/paint": {
53198                     "name": "Paint Store",
53199                     "terms": ""
53200                 },
53201                 "shop/pawnbroker": {
53202                     "name": "Pawn Shop",
53203                     "terms": ""
53204                 },
53205                 "shop/pet": {
53206                     "name": "Pet Store",
53207                     "terms": "cat,dog,fish"
53208                 },
53209                 "shop/photo": {
53210                     "name": "Photography Store",
53211                     "terms": "camera,film"
53212                 },
53213                 "shop/pyrotechnics": {
53214                     "name": "Fireworks Store",
53215                     "terms": ""
53216                 },
53217                 "shop/radiotechnics": {
53218                     "name": "Radio/Electronic Component Store",
53219                     "terms": ""
53220                 },
53221                 "shop/religion": {
53222                     "name": "Religious Store",
53223                     "terms": ""
53224                 },
53225                 "shop/scuba_diving": {
53226                     "name": "Scuba Diving Shop",
53227                     "terms": ""
53228                 },
53229                 "shop/seafood": {
53230                     "name": "Seafood Shop",
53231                     "terms": "fishmonger"
53232                 },
53233                 "shop/second_hand": {
53234                     "name": "Consignment/Thrift Store",
53235                     "terms": "secondhand,second hand,resale,thrift,used"
53236                 },
53237                 "shop/shoes": {
53238                     "name": "Shoe Store",
53239                     "terms": ""
53240                 },
53241                 "shop/sports": {
53242                     "name": "Sporting Goods Store",
53243                     "terms": ""
53244                 },
53245                 "shop/stationery": {
53246                     "name": "Stationery Store",
53247                     "terms": "card,paper"
53248                 },
53249                 "shop/supermarket": {
53250                     "name": "Supermarket",
53251                     "terms": "grocery,store,shop"
53252                 },
53253                 "shop/tailor": {
53254                     "name": "Tailor",
53255                     "terms": "clothes,suit"
53256                 },
53257                 "shop/tattoo": {
53258                     "name": "Tattoo Parlor",
53259                     "terms": ""
53260                 },
53261                 "shop/tea": {
53262                     "name": "Tea Store",
53263                     "terms": ""
53264                 },
53265                 "shop/ticket": {
53266                     "name": "Ticket Seller",
53267                     "terms": ""
53268                 },
53269                 "shop/tobacco": {
53270                     "name": "Tobacco Shop",
53271                     "terms": ""
53272                 },
53273                 "shop/toys": {
53274                     "name": "Toy Store",
53275                     "terms": ""
53276                 },
53277                 "shop/travel_agency": {
53278                     "name": "Travel Agency",
53279                     "terms": ""
53280                 },
53281                 "shop/tyres": {
53282                     "name": "Tire Store",
53283                     "terms": ""
53284                 },
53285                 "shop/vacant": {
53286                     "name": "Vacant Shop",
53287                     "terms": ""
53288                 },
53289                 "shop/vacuum_cleaner": {
53290                     "name": "Vacuum Cleaner Store",
53291                     "terms": ""
53292                 },
53293                 "shop/variety_store": {
53294                     "name": "Variety Store",
53295                     "terms": ""
53296                 },
53297                 "shop/video": {
53298                     "name": "Video Store",
53299                     "terms": "DVD"
53300                 },
53301                 "shop/video_games": {
53302                     "name": "Video Game Store",
53303                     "terms": ""
53304                 },
53305                 "shop/water_sports": {
53306                     "name": "Watersport/Swim Shop",
53307                     "terms": ""
53308                 },
53309                 "shop/weapons": {
53310                     "name": "Weapon Shop",
53311                     "terms": "ammo,gun,knife,knives"
53312                 },
53313                 "shop/window_blind": {
53314                     "name": "Window Blind Store",
53315                     "terms": ""
53316                 },
53317                 "shop/wine": {
53318                     "name": "Wine Shop",
53319                     "terms": ""
53320                 },
53321                 "tourism": {
53322                     "name": "Tourism",
53323                     "terms": ""
53324                 },
53325                 "tourism/alpine_hut": {
53326                     "name": "Alpine Hut",
53327                     "terms": ""
53328                 },
53329                 "tourism/artwork": {
53330                     "name": "Artwork",
53331                     "terms": "mural,sculpture,statue"
53332                 },
53333                 "tourism/attraction": {
53334                     "name": "Tourist Attraction",
53335                     "terms": ""
53336                 },
53337                 "tourism/camp_site": {
53338                     "name": "Camp Site",
53339                     "terms": ""
53340                 },
53341                 "tourism/caravan_site": {
53342                     "name": "RV Park",
53343                     "terms": ""
53344                 },
53345                 "tourism/chalet": {
53346                     "name": "Chalet",
53347                     "terms": ""
53348                 },
53349                 "tourism/guest_house": {
53350                     "name": "Guest House",
53351                     "terms": "B&B,Bed and Breakfast"
53352                 },
53353                 "tourism/hostel": {
53354                     "name": "Hostel",
53355                     "terms": ""
53356                 },
53357                 "tourism/hotel": {
53358                     "name": "Hotel",
53359                     "terms": ""
53360                 },
53361                 "tourism/information": {
53362                     "name": "Information",
53363                     "terms": ""
53364                 },
53365                 "tourism/motel": {
53366                     "name": "Motel",
53367                     "terms": ""
53368                 },
53369                 "tourism/museum": {
53370                     "name": "Museum",
53371                     "terms": "exhibition,foundation,gallery,hall,institution"
53372                 },
53373                 "tourism/picnic_site": {
53374                     "name": "Picnic Site",
53375                     "terms": "camp"
53376                 },
53377                 "tourism/theme_park": {
53378                     "name": "Theme Park",
53379                     "terms": ""
53380                 },
53381                 "tourism/viewpoint": {
53382                     "name": "Viewpoint",
53383                     "terms": ""
53384                 },
53385                 "tourism/zoo": {
53386                     "name": "Zoo",
53387                     "terms": ""
53388                 },
53389                 "traffic_calming/bump": {
53390                     "name": "Speed Bump",
53391                     "terms": "speed hump"
53392                 },
53393                 "traffic_calming/hump": {
53394                     "name": "Speed Hump",
53395                     "terms": "speed bump"
53396                 },
53397                 "traffic_calming/rumble_strip": {
53398                     "name": "Rumble Strip",
53399                     "terms": "sleeper lines,audible lines,growlers"
53400                 },
53401                 "traffic_calming/table": {
53402                     "name": "Raised Pedestrian Crossing",
53403                     "terms": "speed table,flat top hump"
53404                 },
53405                 "type/boundary": {
53406                     "name": "Boundary",
53407                     "terms": ""
53408                 },
53409                 "type/boundary/administrative": {
53410                     "name": "Administrative Boundary",
53411                     "terms": ""
53412                 },
53413                 "type/multipolygon": {
53414                     "name": "Multipolygon",
53415                     "terms": ""
53416                 },
53417                 "type/restriction": {
53418                     "name": "Restriction",
53419                     "terms": ""
53420                 },
53421                 "type/restriction/no_left_turn": {
53422                     "name": "No Left Turn",
53423                     "terms": ""
53424                 },
53425                 "type/restriction/no_right_turn": {
53426                     "name": "No Right Turn",
53427                     "terms": ""
53428                 },
53429                 "type/restriction/no_straight_on": {
53430                     "name": "No Straight On",
53431                     "terms": ""
53432                 },
53433                 "type/restriction/no_u_turn": {
53434                     "name": "No U-turn",
53435                     "terms": ""
53436                 },
53437                 "type/restriction/only_left_turn": {
53438                     "name": "Left Turn Only",
53439                     "terms": ""
53440                 },
53441                 "type/restriction/only_right_turn": {
53442                     "name": "Right Turn Only",
53443                     "terms": ""
53444                 },
53445                 "type/restriction/only_straight_on": {
53446                     "name": "No Turns",
53447                     "terms": ""
53448                 },
53449                 "type/route": {
53450                     "name": "Route",
53451                     "terms": ""
53452                 },
53453                 "type/route/bicycle": {
53454                     "name": "Cycle Route",
53455                     "terms": ""
53456                 },
53457                 "type/route/bus": {
53458                     "name": "Bus Route",
53459                     "terms": ""
53460                 },
53461                 "type/route/detour": {
53462                     "name": "Detour Route",
53463                     "terms": ""
53464                 },
53465                 "type/route/ferry": {
53466                     "name": "Ferry Route",
53467                     "terms": ""
53468                 },
53469                 "type/route/foot": {
53470                     "name": "Foot Route",
53471                     "terms": ""
53472                 },
53473                 "type/route/hiking": {
53474                     "name": "Hiking Route",
53475                     "terms": ""
53476                 },
53477                 "type/route/pipeline": {
53478                     "name": "Pipeline Route",
53479                     "terms": ""
53480                 },
53481                 "type/route/power": {
53482                     "name": "Power Route",
53483                     "terms": ""
53484                 },
53485                 "type/route/road": {
53486                     "name": "Road Route",
53487                     "terms": ""
53488                 },
53489                 "type/route/train": {
53490                     "name": "Train Route",
53491                     "terms": ""
53492                 },
53493                 "type/route/tram": {
53494                     "name": "Tram Route",
53495                     "terms": ""
53496                 },
53497                 "type/route_master": {
53498                     "name": "Route Master",
53499                     "terms": ""
53500                 },
53501                 "vertex": {
53502                     "name": "Other",
53503                     "terms": ""
53504                 },
53505                 "waterway": {
53506                     "name": "Waterway",
53507                     "terms": ""
53508                 },
53509                 "waterway/canal": {
53510                     "name": "Canal",
53511                     "terms": ""
53512                 },
53513                 "waterway/dam": {
53514                     "name": "Dam",
53515                     "terms": ""
53516                 },
53517                 "waterway/ditch": {
53518                     "name": "Ditch",
53519                     "terms": ""
53520                 },
53521                 "waterway/drain": {
53522                     "name": "Drain",
53523                     "terms": ""
53524                 },
53525                 "waterway/river": {
53526                     "name": "River",
53527                     "terms": "beck,branch,brook,course,creek,estuary,rill,rivulet,run,runnel,stream,tributary,watercourse"
53528                 },
53529                 "waterway/riverbank": {
53530                     "name": "Riverbank",
53531                     "terms": ""
53532                 },
53533                 "waterway/stream": {
53534                     "name": "Stream",
53535                     "terms": "beck,branch,brook,burn,course,creek,current,drift,flood,flow,freshet,race,rill,rindle,rivulet,run,runnel,rush,spate,spritz,surge,tide,torrent,tributary,watercourse"
53536                 },
53537                 "waterway/weir": {
53538                     "name": "Weir",
53539                     "terms": ""
53540                 }
53541             }
53542         }
53543     },
53544     "suggestions": {
53545         "amenity": {
53546             "fuel": {
53547                 "76": {
53548                     "count": 314
53549                 },
53550                 "Neste": {
53551                     "count": 189
53552                 },
53553                 "BP": {
53554                     "count": 2511
53555                 },
53556                 "Shell": {
53557                     "count": 8380
53558                 },
53559                 "Agip": {
53560                     "count": 2651
53561                 },
53562                 "Migrol": {
53563                     "count": 65
53564                 },
53565                 "Avia": {
53566                     "count": 897
53567                 },
53568                 "Texaco": {
53569                     "count": 680
53570                 },
53571                 "Total": {
53572                     "count": 2607
53573                 },
53574                 "Statoil": {
53575                     "count": 596
53576                 },
53577                 "Esso": {
53578                     "count": 3652
53579                 },
53580                 "Jet": {
53581                     "count": 441
53582                 },
53583                 "Avanti": {
53584                     "count": 90
53585                 },
53586                 "Sainsbury's": {
53587                     "count": 58
53588                 },
53589                 "OMV": {
53590                     "count": 701
53591                 },
53592                 "Aral": {
53593                     "count": 1339
53594                 },
53595                 "Tesco": {
53596                     "count": 197
53597                 },
53598                 "JET": {
53599                     "count": 180
53600                 },
53601                 "Morrisons": {
53602                     "count": 111
53603                 },
53604                 "United": {
53605                     "count": 91
53606                 },
53607                 "Canadian Tire": {
53608                     "count": 66
53609                 },
53610                 "Mobil": {
53611                     "count": 613
53612                 },
53613                 "Caltex": {
53614                     "count": 1001
53615                 },
53616                 "Sunoco": {
53617                     "count": 355
53618                 },
53619                 "Q8": {
53620                     "count": 1161
53621                 },
53622                 "ABC": {
53623                     "count": 79
53624                 },
53625                 "ARAL": {
53626                     "count": 375
53627                 },
53628                 "CEPSA": {
53629                     "count": 1018
53630                 },
53631                 "BFT": {
53632                     "count": 89
53633                 },
53634                 "Petron": {
53635                     "count": 878
53636                 },
53637                 "Intermarché": {
53638                     "count": 434
53639                 },
53640                 "Total Access": {
53641                     "count": 51
53642                 },
53643                 "Super U": {
53644                     "count": 124
53645                 },
53646                 "Auchan": {
53647                     "count": 53
53648                 },
53649                 "Elf": {
53650                     "count": 129
53651                 },
53652                 "Carrefour": {
53653                     "count": 205
53654                 },
53655                 "Station Service E. Leclerc": {
53656                     "count": 530
53657                 },
53658                 "Shell Express": {
53659                     "count": 131
53660                 },
53661                 "Hess": {
53662                     "count": 127
53663                 },
53664                 "Flying V": {
53665                     "count": 129
53666                 },
53667                 "bft": {
53668                     "count": 168
53669                 },
53670                 "Gulf": {
53671                     "count": 199
53672                 },
53673                 "PTT": {
53674                     "count": 191
53675                 },
53676                 "St1": {
53677                     "count": 100
53678                 },
53679                 "Teboil": {
53680                     "count": 115
53681                 },
53682                 "HEM": {
53683                     "count": 212
53684                 },
53685                 "GALP": {
53686                     "count": 626
53687                 },
53688                 "OK": {
53689                     "count": 163
53690                 },
53691                 "ÖMV": {
53692                     "count": 101
53693                 },
53694                 "Tinq": {
53695                     "count": 215
53696                 },
53697                 "OKQ8": {
53698                     "count": 186
53699                 },
53700                 "Repsol": {
53701                     "count": 424
53702                 },
53703                 "Westfalen": {
53704                     "count": 96
53705                 },
53706                 "Esso Express": {
53707                     "count": 98
53708                 },
53709                 "Raiffeisenbank": {
53710                     "count": 117
53711                 },
53712                 "Tamoil": {
53713                     "count": 866
53714                 },
53715                 "Engen": {
53716                     "count": 241
53717                 },
53718                 "Sasol": {
53719                     "count": 59
53720                 },
53721                 "Topaz": {
53722                     "count": 78
53723                 },
53724                 "LPG": {
53725                     "count": 174
53726                 },
53727                 "Coop": {
53728                     "count": 62
53729                 },
53730                 "Orlen": {
53731                     "count": 598
53732                 },
53733                 "Oilibya": {
53734                     "count": 68
53735                 },
53736                 "Tango": {
53737                     "count": 122
53738                 },
53739                 "Star": {
53740                     "count": 319
53741                 },
53742                 "Петрол": {
53743                     "count": 84
53744                 },
53745                 "Cepsa": {
53746                     "count": 96
53747                 },
53748                 "OIL!": {
53749                     "count": 63
53750                 },
53751                 "Ultramar": {
53752                     "count": 125
53753                 },
53754                 "Irving": {
53755                     "count": 87
53756                 },
53757                 "Lukoil": {
53758                     "count": 701
53759                 },
53760                 "Petro-Canada": {
53761                     "count": 489
53762                 },
53763                 "7-Eleven": {
53764                     "count": 488
53765                 },
53766                 "Agrola": {
53767                     "count": 69
53768                 },
53769                 "Husky": {
53770                     "count": 126
53771                 },
53772                 "Slovnaft": {
53773                     "count": 219
53774                 },
53775                 "Sheetz": {
53776                     "count": 134
53777                 },
53778                 "Mol": {
53779                     "count": 61
53780                 },
53781                 "Petronas": {
53782                     "count": 159
53783                 },
53784                 "Газпромнефть": {
53785                     "count": 748
53786                 },
53787                 "Лукойл": {
53788                     "count": 1477
53789                 },
53790                 "Elan": {
53791                     "count": 112
53792                 },
53793                 "Роснефть": {
53794                     "count": 638
53795                 },
53796                 "Turmöl": {
53797                     "count": 57
53798                 },
53799                 "Neste A24": {
53800                     "count": 55
53801                 },
53802                 "Marathon": {
53803                     "count": 189
53804                 },
53805                 "Valero": {
53806                     "count": 366
53807                 },
53808                 "Eni": {
53809                     "count": 236
53810                 },
53811                 "Chevron": {
53812                     "count": 954
53813                 },
53814                 "ТНК": {
53815                     "count": 520
53816                 },
53817                 "REPSOL": {
53818                     "count": 1603
53819                 },
53820                 "MOL": {
53821                     "count": 228
53822                 },
53823                 "Bliska": {
53824                     "count": 150
53825                 },
53826                 "Api": {
53827                     "count": 302
53828                 },
53829                 "Arco": {
53830                     "count": 179
53831                 },
53832                 "Pemex": {
53833                     "count": 423
53834                 },
53835                 "Exxon": {
53836                     "count": 506
53837                 },
53838                 "Coles Express": {
53839                     "count": 115
53840                 },
53841                 "Petrom": {
53842                     "count": 259
53843                 },
53844                 "PETRONOR": {
53845                     "count": 207
53846                 },
53847                 "Rompetrol": {
53848                     "count": 174
53849                 },
53850                 "Lotos": {
53851                     "count": 178
53852                 },
53853                 "ОМВ": {
53854                     "count": 60
53855                 },
53856                 "BR": {
53857                     "count": 129
53858                 },
53859                 "Copec": {
53860                     "count": 505
53861                 },
53862                 "Petrobras": {
53863                     "count": 270
53864                 },
53865                 "Liberty": {
53866                     "count": 55
53867                 },
53868                 "IP": {
53869                     "count": 871
53870                 },
53871                 "Erg": {
53872                     "count": 596
53873                 },
53874                 "Eneos": {
53875                     "count": 97
53876                 },
53877                 "Citgo": {
53878                     "count": 279
53879                 },
53880                 "Metano": {
53881                     "count": 208
53882                 },
53883                 "Сургутнефтегаз": {
53884                     "count": 61
53885                 },
53886                 "EKO": {
53887                     "count": 59
53888                 },
53889                 "Eko": {
53890                     "count": 58
53891                 },
53892                 "Indipend.": {
53893                     "count": 172
53894                 },
53895                 "IES": {
53896                     "count": 63
53897                 },
53898                 "TotalErg": {
53899                     "count": 89
53900                 },
53901                 "Cenex": {
53902                     "count": 115
53903                 },
53904                 "ПТК": {
53905                     "count": 82
53906                 },
53907                 "HP": {
53908                     "count": 79
53909                 },
53910                 "Phillips 66": {
53911                     "count": 216
53912                 },
53913                 "CARREFOUR": {
53914                     "count": 74
53915                 },
53916                 "ERG": {
53917                     "count": 76
53918                 },
53919                 "Speedway": {
53920                     "count": 148
53921                 },
53922                 "Benzina": {
53923                     "count": 96
53924                 },
53925                 "Татнефть": {
53926                     "count": 264
53927                 },
53928                 "Terpel": {
53929                     "count": 259
53930                 },
53931                 "WOG": {
53932                     "count": 189
53933                 },
53934                 "Seaoil": {
53935                     "count": 54
53936                 },
53937                 "АЗС": {
53938                     "count": 1077
53939                 },
53940                 "Kwik Trip": {
53941                     "count": 108
53942                 },
53943                 "Wawa": {
53944                     "count": 89
53945                 },
53946                 "Pertamina": {
53947                     "count": 186
53948                 },
53949                 "COSMO": {
53950                     "count": 64
53951                 },
53952                 "Z": {
53953                     "count": 76
53954                 },
53955                 "Indian Oil": {
53956                     "count": 183
53957                 },
53958                 "АГЗС": {
53959                     "count": 494
53960                 },
53961                 "INA": {
53962                     "count": 121
53963                 },
53964                 "JOMO": {
53965                     "count": 62
53966                 },
53967                 "Holiday": {
53968                     "count": 97
53969                 },
53970                 "YPF": {
53971                     "count": 70
53972                 },
53973                 "IDEMITSU": {
53974                     "count": 87
53975                 },
53976                 "ENEOS": {
53977                     "count": 736
53978                 },
53979                 "Stacja paliw": {
53980                     "count": 94
53981                 },
53982                 "Bharat Petroleum": {
53983                     "count": 64
53984                 },
53985                 "CAMPSA": {
53986                     "count": 615
53987                 },
53988                 "Casey's General Store": {
53989                     "count": 190
53990                 },
53991                 "Башнефть": {
53992                     "count": 60
53993                 },
53994                 "Kangaroo": {
53995                     "count": 60
53996                 },
53997                 "コスモ石油 (COSMO)": {
53998                     "count": 136
53999                 },
54000                 "MEROIL": {
54001                     "count": 77
54002                 },
54003                 "1-2-3": {
54004                     "count": 71
54005                 },
54006                 "出光": {
54007                     "count": 228,
54008                     "tags": {
54009                         "name:en": "IDEMITSU"
54010                     }
54011                 },
54012                 "НК Альянс": {
54013                     "count": 88
54014                 },
54015                 "Sinclair": {
54016                     "count": 100
54017                 },
54018                 "Conoco": {
54019                     "count": 189
54020                 },
54021                 "SPBU": {
54022                     "count": 54
54023                 },
54024                 "Макпетрол": {
54025                     "count": 109
54026                 },
54027                 "Circle K": {
54028                     "count": 166
54029                 },
54030                 "Posto Ipiranga": {
54031                     "count": 70
54032                 },
54033                 "Posto Shell": {
54034                     "count": 54
54035                 },
54036                 "Phoenix": {
54037                     "count": 144
54038                 },
54039                 "Ipiranga": {
54040                     "count": 119
54041                 },
54042                 "OKKO": {
54043                     "count": 85
54044                 },
54045                 "ОККО": {
54046                     "count": 119
54047                 },
54048                 "บางจาก": {
54049                     "count": 60
54050                 },
54051                 "QuikTrip": {
54052                     "count": 105
54053                 },
54054                 "Stewart's": {
54055                     "count": 63
54056                 },
54057                 "Posto BR": {
54058                     "count": 68
54059                 },
54060                 "ป ต ท": {
54061                     "count": 152
54062                 },
54063                 "ปตท": {
54064                     "count": 88
54065                 },
54066                 "ANP": {
54067                     "count": 80
54068                 },
54069                 "Kum & Go": {
54070                     "count": 80
54071                 },
54072                 "Petrolimex": {
54073                     "count": 55
54074                 },
54075                 "Sokimex": {
54076                     "count": 66
54077                 },
54078                 "Tela": {
54079                     "count": 154
54080                 },
54081                 "Posto": {
54082                     "count": 71
54083                 },
54084                 "H-E-B": {
54085                     "count": 182
54086                 },
54087                 "Укрнафта": {
54088                     "count": 58
54089                 },
54090                 "Татнефтепродукт": {
54091                     "count": 54
54092                 },
54093                 "Afriquia": {
54094                     "count": 88
54095                 },
54096                 "Murphy USA": {
54097                     "count": 67
54098                 },
54099                 "昭和シェル (Showa-shell)": {
54100                     "count": 94
54101                 },
54102                 "エネオス": {
54103                     "count": 53
54104                 },
54105                 "CNG": {
54106                     "count": 94
54107                 }
54108             },
54109             "pub": {
54110                 "Kings Arms": {
54111                     "count": 67
54112                 },
54113                 "The Ship": {
54114                     "count": 89
54115                 },
54116                 "The White Horse": {
54117                     "count": 204
54118                 },
54119                 "The White Hart": {
54120                     "count": 226
54121                 },
54122                 "Royal Oak": {
54123                     "count": 150
54124                 },
54125                 "The Red Lion": {
54126                     "count": 233
54127                 },
54128                 "The Kings Arms": {
54129                     "count": 58
54130                 },
54131                 "The Star": {
54132                     "count": 73
54133                 },
54134                 "The Anchor": {
54135                     "count": 64
54136                 },
54137                 "The Cross Keys": {
54138                     "count": 55
54139                 },
54140                 "The Wheatsheaf": {
54141                     "count": 117
54142                 },
54143                 "The Crown Inn": {
54144                     "count": 67
54145                 },
54146                 "The Kings Head": {
54147                     "count": 53
54148                 },
54149                 "The Castle": {
54150                     "count": 62
54151                 },
54152                 "The Railway": {
54153                     "count": 102
54154                 },
54155                 "The White Lion": {
54156                     "count": 118
54157                 },
54158                 "The Bell": {
54159                     "count": 121
54160                 },
54161                 "The Bull": {
54162                     "count": 68
54163                 },
54164                 "The Plough": {
54165                     "count": 179
54166                 },
54167                 "The George": {
54168                     "count": 110
54169                 },
54170                 "The Royal Oak": {
54171                     "count": 209
54172                 },
54173                 "The Fox": {
54174                     "count": 74
54175                 },
54176                 "Prince of Wales": {
54177                     "count": 77
54178                 },
54179                 "The Rising Sun": {
54180                     "count": 71
54181                 },
54182                 "The Prince of Wales": {
54183                     "count": 51
54184                 },
54185                 "The Crown": {
54186                     "count": 244
54187                 },
54188                 "The Chequers": {
54189                     "count": 66
54190                 },
54191                 "The Swan": {
54192                     "count": 152
54193                 },
54194                 "Rose and Crown": {
54195                     "count": 79
54196                 },
54197                 "The Victoria": {
54198                     "count": 67
54199                 },
54200                 "New Inn": {
54201                     "count": 90
54202                 },
54203                 "Royal Hotel": {
54204                     "count": 57
54205                 },
54206                 "Red Lion": {
54207                     "count": 207
54208                 },
54209                 "Cross Keys": {
54210                     "count": 61
54211                 },
54212                 "The Greyhound": {
54213                     "count": 96
54214                 },
54215                 "The Black Horse": {
54216                     "count": 94
54217                 },
54218                 "The New Inn": {
54219                     "count": 105
54220                 },
54221                 "Kings Head": {
54222                     "count": 59
54223                 },
54224                 "The Albion": {
54225                     "count": 51
54226                 },
54227                 "The Angel": {
54228                     "count": 52
54229                 },
54230                 "The Queens Head": {
54231                     "count": 52
54232                 },
54233                 "The Ship Inn": {
54234                     "count": 83
54235                 },
54236                 "Rose & Crown": {
54237                     "count": 51
54238                 },
54239                 "Queens Head": {
54240                     "count": 52
54241                 },
54242                 "Irish Pub": {
54243                     "count": 76
54244                 }
54245             },
54246             "fast_food": {
54247                 "Quick": {
54248                     "count": 484
54249                 },
54250                 "McDonald's": {
54251                     "count": 12376,
54252                     "tags": {
54253                         "cuisine": "burger"
54254                     }
54255                 },
54256                 "Subway": {
54257                     "count": 5576,
54258                     "tags": {
54259                         "cuisine": "sandwich"
54260                     }
54261                 },
54262                 "Burger King": {
54263                     "count": 3734,
54264                     "tags": {
54265                         "cuisine": "burger"
54266                     }
54267                 },
54268                 "Ali Baba": {
54269                     "count": 61
54270                 },
54271                 "Hungry Jacks": {
54272                     "count": 173,
54273                     "tags": {
54274                         "cuisine": "burger"
54275                     }
54276                 },
54277                 "Red Rooster": {
54278                     "count": 148
54279                 },
54280                 "KFC": {
54281                     "count": 3198,
54282                     "tags": {
54283                         "cuisine": "chicken"
54284                     }
54285                 },
54286                 "Domino's Pizza": {
54287                     "count": 985,
54288                     "tags": {
54289                         "cuisine": "pizza"
54290                     }
54291                 },
54292                 "Chowking": {
54293                     "count": 142
54294                 },
54295                 "Jollibee": {
54296                     "count": 396
54297                 },
54298                 "Hesburger": {
54299                     "count": 102
54300                 },
54301                 "肯德基": {
54302                     "count": 86
54303                 },
54304                 "Wendy's": {
54305                     "count": 1621,
54306                     "tags": {
54307                         "cuisine": "burger"
54308                     }
54309                 },
54310                 "Tim Hortons": {
54311                     "count": 323
54312                 },
54313                 "Steers": {
54314                     "count": 151
54315                 },
54316                 "Hardee's": {
54317                     "count": 268,
54318                     "tags": {
54319                         "cuisine": "burger"
54320                     }
54321                 },
54322                 "Arby's": {
54323                     "count": 782
54324                 },
54325                 "A&W": {
54326                     "count": 283
54327                 },
54328                 "Dairy Queen": {
54329                     "count": 791
54330                 },
54331                 "Hallo Pizza": {
54332                     "count": 76
54333                 },
54334                 "Fish & Chips": {
54335                     "count": 93
54336                 },
54337                 "Harvey's": {
54338                     "count": 90
54339                 },
54340                 "麥當勞": {
54341                     "count": 65
54342                 },
54343                 "Pizza Pizza": {
54344                     "count": 215
54345                 },
54346                 "Kotipizza": {
54347                     "count": 74
54348                 },
54349                 "Jack in the Box": {
54350                     "count": 546,
54351                     "tags": {
54352                         "cuisine": "burger"
54353                     }
54354                 },
54355                 "Istanbul": {
54356                     "count": 56
54357                 },
54358                 "Kochlöffel": {
54359                     "count": 68
54360                 },
54361                 "Döner": {
54362                     "count": 228
54363                 },
54364                 "Telepizza": {
54365                     "count": 201
54366                 },
54367                 "Sibylla": {
54368                     "count": 61
54369                 },
54370                 "Carl's Jr.": {
54371                     "count": 298,
54372                     "tags": {
54373                         "cuisine": "burger"
54374                     }
54375                 },
54376                 "Quiznos": {
54377                     "count": 266,
54378                     "tags": {
54379                         "cuisine": "sandwich"
54380                     }
54381                 },
54382                 "Wimpy": {
54383                     "count": 141
54384                 },
54385                 "Sonic": {
54386                     "count": 566,
54387                     "tags": {
54388                         "cuisine": "burger"
54389                     }
54390                 },
54391                 "Taco Bell": {
54392                     "count": 1423
54393                 },
54394                 "Pizza Nova": {
54395                     "count": 63
54396                 },
54397                 "Papa John's": {
54398                     "count": 304,
54399                     "tags": {
54400                         "cuisine": "pizza"
54401                     }
54402                 },
54403                 "Nordsee": {
54404                     "count": 159
54405                 },
54406                 "Mr. Sub": {
54407                     "count": 103
54408                 },
54409                 "Kebab": {
54410                     "count": 182
54411                 },
54412                 "Макдоналдс": {
54413                     "count": 324,
54414                     "tags": {
54415                         "name:en": "McDonald's"
54416                     }
54417                 },
54418                 "Asia Imbiss": {
54419                     "count": 111
54420                 },
54421                 "Imbiss": {
54422                     "count": 199
54423                 },
54424                 "Chipotle": {
54425                     "count": 290,
54426                     "tags": {
54427                         "cuisine": "mexican"
54428                     }
54429                 },
54430                 "マクドナルド": {
54431                     "count": 692,
54432                     "tags": {
54433                         "name:en": "McDonald's",
54434                         "cuisine": "burger"
54435                     }
54436                 },
54437                 "In-N-Out Burger": {
54438                     "count": 65
54439                 },
54440                 "Jimmy John's": {
54441                     "count": 141
54442                 },
54443                 "Jamba Juice": {
54444                     "count": 68
54445                 },
54446                 "Робин Сдобин": {
54447                     "count": 82
54448                 },
54449                 "Baskin Robbins": {
54450                     "count": 74
54451                 },
54452                 "ケンタッキーフライドチキン": {
54453                     "count": 164,
54454                     "tags": {
54455                         "name:en": "KFC",
54456                         "cuisine": "chicken"
54457                     }
54458                 },
54459                 "吉野家": {
54460                     "count": 191
54461                 },
54462                 "Taco Time": {
54463                     "count": 88
54464                 },
54465                 "松屋": {
54466                     "count": 281,
54467                     "tags": {
54468                         "name:en": "Matsuya"
54469                     }
54470                 },
54471                 "Little Caesars": {
54472                     "count": 81
54473                 },
54474                 "El Pollo Loco": {
54475                     "count": 63
54476                 },
54477                 "Del Taco": {
54478                     "count": 141
54479                 },
54480                 "White Castle": {
54481                     "count": 80
54482                 },
54483                 "Boston Market": {
54484                     "count": 66
54485                 },
54486                 "Chick-fil-A": {
54487                     "count": 257,
54488                     "tags": {
54489                         "cuisine": "chicken"
54490                     }
54491                 },
54492                 "Panda Express": {
54493                     "count": 238
54494                 },
54495                 "Whataburger": {
54496                     "count": 364
54497                 },
54498                 "Taco John's": {
54499                     "count": 78
54500                 },
54501                 "Теремок": {
54502                     "count": 68
54503                 },
54504                 "Culver's": {
54505                     "count": 425
54506                 },
54507                 "Five Guys": {
54508                     "count": 141
54509                 },
54510                 "Church's Chicken": {
54511                     "count": 95
54512                 },
54513                 "Popeye's": {
54514                     "count": 167,
54515                     "tags": {
54516                         "cuisine": "chicken"
54517                     }
54518                 },
54519                 "Long John Silver's": {
54520                     "count": 93
54521                 },
54522                 "Pollo Campero": {
54523                     "count": 62
54524                 },
54525                 "Zaxby's": {
54526                     "count": 51
54527                 },
54528                 "すき家": {
54529                     "count": 276,
54530                     "tags": {
54531                         "name:en": "SUKIYA"
54532                     }
54533                 },
54534                 "モスバーガー": {
54535                     "count": 257,
54536                     "tags": {
54537                         "name:en": "MOS BURGER"
54538                     }
54539                 },
54540                 "Русский Аппетит": {
54541                     "count": 69
54542                 },
54543                 "なか卯": {
54544                     "count": 63
54545                 }
54546             },
54547             "restaurant": {
54548                 "Pizza Hut": {
54549                     "count": 1180
54550                 },
54551                 "Little Chef": {
54552                     "count": 64
54553                 },
54554                 "Adler": {
54555                     "count": 158
54556                 },
54557                 "Zur Krone": {
54558                     "count": 90
54559                 },
54560                 "Deutsches Haus": {
54561                     "count": 90
54562                 },
54563                 "Krone": {
54564                     "count": 171
54565                 },
54566                 "Akropolis": {
54567                     "count": 152
54568                 },
54569                 "Schützenhaus": {
54570                     "count": 124
54571                 },
54572                 "Kreuz": {
54573                     "count": 74
54574                 },
54575                 "Waldschänke": {
54576                     "count": 55
54577                 },
54578                 "La Piazza": {
54579                     "count": 69
54580                 },
54581                 "Lamm": {
54582                     "count": 66
54583                 },
54584                 "Zur Sonne": {
54585                     "count": 73
54586                 },
54587                 "Zur Linde": {
54588                     "count": 204
54589                 },
54590                 "Poseidon": {
54591                     "count": 110
54592                 },
54593                 "Shanghai": {
54594                     "count": 82
54595                 },
54596                 "Red Lobster": {
54597                     "count": 235
54598                 },
54599                 "Zum Löwen": {
54600                     "count": 84
54601                 },
54602                 "Swiss Chalet": {
54603                     "count": 107
54604                 },
54605                 "Olympia": {
54606                     "count": 74
54607                 },
54608                 "Wagamama": {
54609                     "count": 64
54610                 },
54611                 "Frankie & Benny's": {
54612                     "count": 66
54613                 },
54614                 "Hooters": {
54615                     "count": 103
54616                 },
54617                 "Sternen": {
54618                     "count": 78
54619                 },
54620                 "Hirschen": {
54621                     "count": 79
54622                 },
54623                 "Papa John's": {
54624                     "count": 67,
54625                     "tags": {
54626                         "cuisine": "pizza"
54627                     }
54628                 },
54629                 "Denny's": {
54630                     "count": 450
54631                 },
54632                 "Athen": {
54633                     "count": 68
54634                 },
54635                 "Sonne": {
54636                     "count": 126
54637                 },
54638                 "Hirsch": {
54639                     "count": 79
54640                 },
54641                 "Ratskeller": {
54642                     "count": 150
54643                 },
54644                 "La Cantina": {
54645                     "count": 56
54646                 },
54647                 "Gasthaus Krone": {
54648                     "count": 56
54649                 },
54650                 "El Greco": {
54651                     "count": 86
54652                 },
54653                 "Gasthof zur Post": {
54654                     "count": 79
54655                 },
54656                 "Nando's": {
54657                     "count": 246
54658                 },
54659                 "Löwen": {
54660                     "count": 112
54661                 },
54662                 "La Pataterie": {
54663                     "count": 51
54664                 },
54665                 "Bella Napoli": {
54666                     "count": 53
54667                 },
54668                 "Pizza Express": {
54669                     "count": 262
54670                 },
54671                 "Mandarin": {
54672                     "count": 65
54673                 },
54674                 "Hong Kong": {
54675                     "count": 83
54676                 },
54677                 "Zizzi": {
54678                     "count": 68
54679                 },
54680                 "Cracker Barrel": {
54681                     "count": 183
54682                 },
54683                 "Rhodos": {
54684                     "count": 81
54685                 },
54686                 "Lindenhof": {
54687                     "count": 79
54688                 },
54689                 "Milano": {
54690                     "count": 54
54691                 },
54692                 "Dolce Vita": {
54693                     "count": 77
54694                 },
54695                 "Kirchenwirt": {
54696                     "count": 81
54697                 },
54698                 "Kantine": {
54699                     "count": 52
54700                 },
54701                 "Ochsen": {
54702                     "count": 95
54703                 },
54704                 "Spur": {
54705                     "count": 62
54706                 },
54707                 "Mykonos": {
54708                     "count": 59
54709                 },
54710                 "Lotus": {
54711                     "count": 66
54712                 },
54713                 "Applebee's": {
54714                     "count": 531
54715                 },
54716                 "Flunch": {
54717                     "count": 72
54718                 },
54719                 "Zur Post": {
54720                     "count": 116
54721                 },
54722                 "China Town": {
54723                     "count": 76
54724                 },
54725                 "La Dolce Vita": {
54726                     "count": 73
54727                 },
54728                 "Waffle House": {
54729                     "count": 207
54730                 },
54731                 "Delphi": {
54732                     "count": 88
54733                 },
54734                 "Linde": {
54735                     "count": 103
54736                 },
54737                 "Outback Steakhouse": {
54738                     "count": 218
54739                 },
54740                 "Dionysos": {
54741                     "count": 69
54742                 },
54743                 "Kelsey's": {
54744                     "count": 57
54745                 },
54746                 "Boston Pizza": {
54747                     "count": 165
54748                 },
54749                 "Bella Italia": {
54750                     "count": 132
54751                 },
54752                 "Sizzler": {
54753                     "count": 53
54754                 },
54755                 "Grüner Baum": {
54756                     "count": 116
54757                 },
54758                 "Taj Mahal": {
54759                     "count": 104
54760                 },
54761                 "Rössli": {
54762                     "count": 68
54763                 },
54764                 "Wimpy": {
54765                     "count": 51
54766                 },
54767                 "Traube": {
54768                     "count": 65
54769                 },
54770                 "Adria": {
54771                     "count": 52
54772                 },
54773                 "Red Robin": {
54774                     "count": 185
54775                 },
54776                 "Roma": {
54777                     "count": 61
54778                 },
54779                 "San Marco": {
54780                     "count": 67
54781                 },
54782                 "Hellas": {
54783                     "count": 55
54784                 },
54785                 "La Perla": {
54786                     "count": 67
54787                 },
54788                 "Vips": {
54789                     "count": 53
54790                 },
54791                 "Panera Bread": {
54792                     "count": 218
54793                 },
54794                 "Da Vinci": {
54795                     "count": 54
54796                 },
54797                 "Hippopotamus": {
54798                     "count": 96
54799                 },
54800                 "Prezzo": {
54801                     "count": 75
54802                 },
54803                 "Courtepaille": {
54804                     "count": 106
54805                 },
54806                 "Hard Rock Cafe": {
54807                     "count": 70
54808                 },
54809                 "Panorama": {
54810                     "count": 61
54811                 },
54812                 "デニーズ": {
54813                     "count": 82
54814                 },
54815                 "Sportheim": {
54816                     "count": 65
54817                 },
54818                 "餃子の王将": {
54819                     "count": 57
54820                 },
54821                 "Bären": {
54822                     "count": 60
54823                 },
54824                 "Alte Post": {
54825                     "count": 60
54826                 },
54827                 "Pizzeria Roma": {
54828                     "count": 51
54829                 },
54830                 "China Garden": {
54831                     "count": 66
54832                 },
54833                 "Vapiano": {
54834                     "count": 82
54835                 },
54836                 "Mamma Mia": {
54837                     "count": 64
54838                 },
54839                 "Schwarzer Adler": {
54840                     "count": 57
54841                 },
54842                 "IHOP": {
54843                     "count": 317
54844                 },
54845                 "Chili's": {
54846                     "count": 328
54847                 },
54848                 "Asia": {
54849                     "count": 51
54850                 },
54851                 "Olive Garden": {
54852                     "count": 279
54853                 },
54854                 "TGI Friday's": {
54855                     "count": 159
54856                 },
54857                 "Friendly's": {
54858                     "count": 78
54859                 },
54860                 "Buffalo Grill": {
54861                     "count": 202
54862                 },
54863                 "Texas Roadhouse": {
54864                     "count": 110
54865                 },
54866                 "ガスト": {
54867                     "count": 230,
54868                     "tags": {
54869                         "name:en": "Gusto"
54870                     }
54871                 },
54872                 "Sakura": {
54873                     "count": 75
54874                 },
54875                 "Mensa": {
54876                     "count": 99
54877                 },
54878                 "The Keg": {
54879                     "count": 53
54880                 },
54881                 "サイゼリヤ": {
54882                     "count": 93
54883                 },
54884                 "La Strada": {
54885                     "count": 52
54886                 },
54887                 "Village Inn": {
54888                     "count": 92
54889                 },
54890                 "Buffalo Wild Wings": {
54891                     "count": 176
54892                 },
54893                 "Peking": {
54894                     "count": 59
54895                 },
54896                 "Boston Market": {
54897                     "count": 61
54898                 },
54899                 "Round Table Pizza": {
54900                     "count": 53
54901                 },
54902                 "Jimmy John's": {
54903                     "count": 69
54904                 },
54905                 "California Pizza Kitchen": {
54906                     "count": 61
54907                 },
54908                 "Якитория": {
54909                     "count": 77
54910                 },
54911                 "Golden Corral": {
54912                     "count": 101
54913                 },
54914                 "Perkins": {
54915                     "count": 105
54916                 },
54917                 "Ruby Tuesday": {
54918                     "count": 162
54919                 },
54920                 "Shari's": {
54921                     "count": 65
54922                 },
54923                 "Bob Evans": {
54924                     "count": 129
54925                 },
54926                 "바다횟집 (Bada Fish Restaurant)": {
54927                     "count": 55
54928                 },
54929                 "Mang Inasal": {
54930                     "count": 84
54931                 },
54932                 "Евразия": {
54933                     "count": 102
54934                 },
54935                 "ジョナサン": {
54936                     "count": 59
54937                 },
54938                 "Arby's": {
54939                     "count": 51
54940                 },
54941                 "Longhorn Steakhouse": {
54942                     "count": 66
54943                 }
54944             },
54945             "bank": {
54946                 "Chase": {
54947                     "count": 721
54948                 },
54949                 "Commonwealth Bank": {
54950                     "count": 232
54951                 },
54952                 "Citibank": {
54953                     "count": 277
54954                 },
54955                 "HSBC": {
54956                     "count": 1102
54957                 },
54958                 "Barclays": {
54959                     "count": 965
54960                 },
54961                 "Westpac": {
54962                     "count": 208
54963                 },
54964                 "NAB": {
54965                     "count": 131
54966                 },
54967                 "ANZ": {
54968                     "count": 218
54969                 },
54970                 "Lloyds Bank": {
54971                     "count": 547
54972                 },
54973                 "Landbank": {
54974                     "count": 81
54975                 },
54976                 "Sparkasse": {
54977                     "count": 4555
54978                 },
54979                 "UCPB": {
54980                     "count": 92
54981                 },
54982                 "PNB": {
54983                     "count": 244
54984                 },
54985                 "Metrobank": {
54986                     "count": 269
54987                 },
54988                 "BDO": {
54989                     "count": 290
54990                 },
54991                 "Volksbank": {
54992                     "count": 2591
54993                 },
54994                 "BPI": {
54995                     "count": 415
54996                 },
54997                 "Postbank": {
54998                     "count": 443
54999                 },
55000                 "NatWest": {
55001                     "count": 628
55002                 },
55003                 "Raiffeisenbank": {
55004                     "count": 2119
55005                 },
55006                 "Yorkshire Bank": {
55007                     "count": 63
55008                 },
55009                 "ABSA": {
55010                     "count": 95
55011                 },
55012                 "Standard Bank": {
55013                     "count": 109
55014                 },
55015                 "FNB": {
55016                     "count": 97
55017                 },
55018                 "Deutsche Bank": {
55019                     "count": 855
55020                 },
55021                 "SEB": {
55022                     "count": 133
55023                 },
55024                 "Commerzbank": {
55025                     "count": 806
55026                 },
55027                 "Targobank": {
55028                     "count": 166
55029                 },
55030                 "ABN AMRO": {
55031                     "count": 130
55032                 },
55033                 "Handelsbanken": {
55034                     "count": 184
55035                 },
55036                 "Swedbank": {
55037                     "count": 223
55038                 },
55039                 "Kreissparkasse": {
55040                     "count": 600
55041                 },
55042                 "UniCredit Bank": {
55043                     "count": 408
55044                 },
55045                 "Monte dei Paschi di Siena": {
55046                     "count": 132
55047                 },
55048                 "Caja Rural": {
55049                     "count": 99
55050                 },
55051                 "Dresdner Bank": {
55052                     "count": 66
55053                 },
55054                 "Sparda-Bank": {
55055                     "count": 320
55056                 },
55057                 "VÚB": {
55058                     "count": 107
55059                 },
55060                 "Slovenská sporiteľňa": {
55061                     "count": 134
55062                 },
55063                 "Bank of Montreal": {
55064                     "count": 118
55065                 },
55066                 "KBC": {
55067                     "count": 203
55068                 },
55069                 "Royal Bank of Scotland": {
55070                     "count": 111
55071                 },
55072                 "TSB": {
55073                     "count": 80
55074                 },
55075                 "US Bank": {
55076                     "count": 256
55077                 },
55078                 "HypoVereinsbank": {
55079                     "count": 561
55080                 },
55081                 "Bank Austria": {
55082                     "count": 176
55083                 },
55084                 "ING": {
55085                     "count": 496
55086                 },
55087                 "Erste Bank": {
55088                     "count": 180
55089                 },
55090                 "CIBC": {
55091                     "count": 326
55092                 },
55093                 "Scotiabank": {
55094                     "count": 413
55095                 },
55096                 "Caisse d'Épargne": {
55097                     "count": 882
55098                 },
55099                 "Santander": {
55100                     "count": 1323
55101                 },
55102                 "Bank of Scotland": {
55103                     "count": 89
55104                 },
55105                 "TD Canada Trust": {
55106                     "count": 450
55107                 },
55108                 "BMO": {
55109                     "count": 169
55110                 },
55111                 "Danske Bank": {
55112                     "count": 131
55113                 },
55114                 "OTP": {
55115                     "count": 192
55116                 },
55117                 "Crédit Agricole": {
55118                     "count": 1239
55119                 },
55120                 "LCL": {
55121                     "count": 553
55122                 },
55123                 "VR-Bank": {
55124                     "count": 430
55125                 },
55126                 "ČSOB": {
55127                     "count": 160
55128                 },
55129                 "Česká spořitelna": {
55130                     "count": 212
55131                 },
55132                 "BNP": {
55133                     "count": 112
55134                 },
55135                 "Royal Bank": {
55136                     "count": 65
55137                 },
55138                 "Nationwide": {
55139                     "count": 209
55140                 },
55141                 "Halifax": {
55142                     "count": 225
55143                 },
55144                 "BAWAG PSK": {
55145                     "count": 102
55146                 },
55147                 "National Bank": {
55148                     "count": 84
55149                 },
55150                 "Nedbank": {
55151                     "count": 80
55152                 },
55153                 "First National Bank": {
55154                     "count": 85
55155                 },
55156                 "Nordea": {
55157                     "count": 319
55158                 },
55159                 "Rabobank": {
55160                     "count": 609
55161                 },
55162                 "Sparkasse KölnBonn": {
55163                     "count": 69
55164                 },
55165                 "Tatra banka": {
55166                     "count": 67
55167                 },
55168                 "Berliner Sparkasse": {
55169                     "count": 62
55170                 },
55171                 "Berliner Volksbank": {
55172                     "count": 77
55173                 },
55174                 "Wells Fargo": {
55175                     "count": 874
55176                 },
55177                 "Credit Suisse": {
55178                     "count": 71
55179                 },
55180                 "Société Générale": {
55181                     "count": 634
55182                 },
55183                 "Osuuspankki": {
55184                     "count": 75
55185                 },
55186                 "Sparkasse Aachen": {
55187                     "count": 56
55188                 },
55189                 "Hamburger Sparkasse": {
55190                     "count": 156
55191                 },
55192                 "Cassa di Risparmio del Veneto": {
55193                     "count": 68
55194                 },
55195                 "BNP Paribas": {
55196                     "count": 617
55197                 },
55198                 "Banque Populaire": {
55199                     "count": 433
55200                 },
55201                 "BNP Paribas Fortis": {
55202                     "count": 209
55203                 },
55204                 "Banco Popular": {
55205                     "count": 291
55206                 },
55207                 "Bancaja": {
55208                     "count": 55
55209                 },
55210                 "Banesto": {
55211                     "count": 208
55212                 },
55213                 "La Caixa": {
55214                     "count": 583
55215                 },
55216                 "Santander Consumer Bank": {
55217                     "count": 88
55218                 },
55219                 "BRD": {
55220                     "count": 191
55221                 },
55222                 "BCR": {
55223                     "count": 143
55224                 },
55225                 "Banca Transilvania": {
55226                     "count": 141
55227                 },
55228                 "BW-Bank": {
55229                     "count": 97
55230                 },
55231                 "Komerční banka": {
55232                     "count": 132
55233                 },
55234                 "Banco Pastor": {
55235                     "count": 64
55236                 },
55237                 "Stadtsparkasse": {
55238                     "count": 86
55239                 },
55240                 "Ulster Bank": {
55241                     "count": 86
55242                 },
55243                 "Sberbank": {
55244                     "count": 58
55245                 },
55246                 "CIC": {
55247                     "count": 427
55248                 },
55249                 "Bancpost": {
55250                     "count": 56
55251                 },
55252                 "Caja Madrid": {
55253                     "count": 115
55254                 },
55255                 "Maybank": {
55256                     "count": 94
55257                 },
55258                 "中国银行": {
55259                     "count": 85
55260                 },
55261                 "Unicredit Banca": {
55262                     "count": 243
55263                 },
55264                 "Crédit Mutuel": {
55265                     "count": 690
55266                 },
55267                 "BBVA": {
55268                     "count": 647
55269                 },
55270                 "Intesa San Paolo": {
55271                     "count": 69
55272                 },
55273                 "TD Bank": {
55274                     "count": 206
55275                 },
55276                 "Belfius": {
55277                     "count": 231
55278                 },
55279                 "Bank of America": {
55280                     "count": 924
55281                 },
55282                 "RBC": {
55283                     "count": 230
55284                 },
55285                 "Alpha Bank": {
55286                     "count": 123
55287                 },
55288                 "Сбербанк": {
55289                     "count": 4794
55290                 },
55291                 "Россельхозбанк": {
55292                     "count": 201
55293                 },
55294                 "Crédit du Nord": {
55295                     "count": 96
55296                 },
55297                 "BancoEstado": {
55298                     "count": 80
55299                 },
55300                 "Millennium Bank": {
55301                     "count": 414
55302                 },
55303                 "State Bank of India": {
55304                     "count": 151
55305                 },
55306                 "Беларусбанк": {
55307                     "count": 242
55308                 },
55309                 "ING Bank Śląski": {
55310                     "count": 67
55311                 },
55312                 "Caixa Geral de Depósitos": {
55313                     "count": 129
55314                 },
55315                 "Kreissparkasse Köln": {
55316                     "count": 65
55317                 },
55318                 "Banco BCI": {
55319                     "count": 51
55320                 },
55321                 "Banco de Chile": {
55322                     "count": 98
55323                 },
55324                 "ВТБ24": {
55325                     "count": 326
55326                 },
55327                 "UBS": {
55328                     "count": 134
55329                 },
55330                 "PKO BP": {
55331                     "count": 265
55332                 },
55333                 "Chinabank": {
55334                     "count": 55
55335                 },
55336                 "PSBank": {
55337                     "count": 59
55338                 },
55339                 "Union Bank": {
55340                     "count": 124
55341                 },
55342                 "China Bank": {
55343                     "count": 66
55344                 },
55345                 "RCBC": {
55346                     "count": 122
55347                 },
55348                 "Unicaja": {
55349                     "count": 83
55350                 },
55351                 "BBK": {
55352                     "count": 79
55353                 },
55354                 "Ibercaja": {
55355                     "count": 69
55356                 },
55357                 "RBS": {
55358                     "count": 143
55359                 },
55360                 "Commercial Bank of Ceylon PLC": {
55361                     "count": 79
55362                 },
55363                 "Bank of Ireland": {
55364                     "count": 109
55365                 },
55366                 "BNL": {
55367                     "count": 87
55368                 },
55369                 "Banco Santander": {
55370                     "count": 138
55371                 },
55372                 "Banco Itaú": {
55373                     "count": 111
55374                 },
55375                 "AIB": {
55376                     "count": 72
55377                 },
55378                 "BZ WBK": {
55379                     "count": 77
55380                 },
55381                 "Banco do Brasil": {
55382                     "count": 557
55383                 },
55384                 "Caixa Econômica Federal": {
55385                     "count": 184
55386                 },
55387                 "Fifth Third Bank": {
55388                     "count": 84
55389                 },
55390                 "Banca Popolare di Vicenza": {
55391                     "count": 81
55392                 },
55393                 "Wachovia": {
55394                     "count": 58
55395                 },
55396                 "OLB": {
55397                     "count": 53
55398                 },
55399                 "みずほ銀行": {
55400                     "count": 78
55401                 },
55402                 "BES": {
55403                     "count": 72
55404                 },
55405                 "ICICI Bank": {
55406                     "count": 91
55407                 },
55408                 "HDFC Bank": {
55409                     "count": 91
55410                 },
55411                 "La Banque Postale": {
55412                     "count": 67
55413                 },
55414                 "Pekao SA": {
55415                     "count": 56
55416                 },
55417                 "Oberbank": {
55418                     "count": 90
55419                 },
55420                 "Bradesco": {
55421                     "count": 295
55422                 },
55423                 "Oldenburgische Landesbank": {
55424                     "count": 56
55425                 },
55426                 "Bendigo Bank": {
55427                     "count": 93
55428                 },
55429                 "Argenta": {
55430                     "count": 86
55431                 },
55432                 "AXA": {
55433                     "count": 68
55434                 },
55435                 "Axis Bank": {
55436                     "count": 61
55437                 },
55438                 "Banco Nación": {
55439                     "count": 67
55440                 },
55441                 "GE Money Bank": {
55442                     "count": 72
55443                 },
55444                 "Альфа-Банк": {
55445                     "count": 185
55446                 },
55447                 "Белагропромбанк": {
55448                     "count": 70
55449                 },
55450                 "Caja Círculo": {
55451                     "count": 65
55452                 },
55453                 "Banco Galicia": {
55454                     "count": 51
55455                 },
55456                 "Eurobank": {
55457                     "count": 97
55458                 },
55459                 "Banca Intesa": {
55460                     "count": 62
55461                 },
55462                 "Canara Bank": {
55463                     "count": 92
55464                 },
55465                 "Cajamar": {
55466                     "count": 77
55467                 },
55468                 "Banamex": {
55469                     "count": 149
55470                 },
55471                 "Crédit Mutuel de Bretagne": {
55472                     "count": 335
55473                 },
55474                 "Davivienda": {
55475                     "count": 83
55476                 },
55477                 "Bank Spółdzielczy": {
55478                     "count": 159
55479                 },
55480                 "Credit Agricole": {
55481                     "count": 157
55482                 },
55483                 "Bankinter": {
55484                     "count": 59
55485                 },
55486                 "Banque Nationale": {
55487                     "count": 63
55488                 },
55489                 "Bank of the West": {
55490                     "count": 96
55491                 },
55492                 "Key Bank": {
55493                     "count": 155
55494                 },
55495                 "Western Union": {
55496                     "count": 88
55497                 },
55498                 "Citizens Bank": {
55499                     "count": 115
55500                 },
55501                 "ПриватБанк": {
55502                     "count": 513
55503                 },
55504                 "Security Bank": {
55505                     "count": 78
55506                 },
55507                 "Millenium Bank": {
55508                     "count": 60
55509                 },
55510                 "Bankia": {
55511                     "count": 149
55512                 },
55513                 "三菱東京UFJ銀行": {
55514                     "count": 159
55515                 },
55516                 "Caixa": {
55517                     "count": 117
55518                 },
55519                 "Banco de Costa Rica": {
55520                     "count": 63
55521                 },
55522                 "SunTrust Bank": {
55523                     "count": 73
55524                 },
55525                 "Itaú": {
55526                     "count": 338
55527                 },
55528                 "PBZ": {
55529                     "count": 52
55530                 },
55531                 "中国工商银行": {
55532                     "count": 51
55533                 },
55534                 "Bancolombia": {
55535                     "count": 89
55536                 },
55537                 "Райффайзен Банк Аваль": {
55538                     "count": 64
55539                 },
55540                 "Bancomer": {
55541                     "count": 115
55542                 },
55543                 "Banorte": {
55544                     "count": 80
55545                 },
55546                 "Alior Bank": {
55547                     "count": 81
55548                 },
55549                 "BOC": {
55550                     "count": 51
55551                 },
55552                 "Банк Москвы": {
55553                     "count": 118
55554                 },
55555                 "ВТБ": {
55556                     "count": 59
55557                 },
55558                 "Getin Bank": {
55559                     "count": 55
55560                 },
55561                 "Caja Duero": {
55562                     "count": 57
55563                 },
55564                 "Regions Bank": {
55565                     "count": 62
55566                 },
55567                 "Росбанк": {
55568                     "count": 177
55569                 },
55570                 "Banco Estado": {
55571                     "count": 72
55572                 },
55573                 "BCI": {
55574                     "count": 68
55575                 },
55576                 "SunTrust": {
55577                     "count": 68
55578                 },
55579                 "PNC Bank": {
55580                     "count": 254
55581                 },
55582                 "신한은행": {
55583                     "count": 217,
55584                     "tags": {
55585                         "name:en": "Sinhan Bank"
55586                     }
55587                 },
55588                 "우리은행": {
55589                     "count": 291,
55590                     "tags": {
55591                         "name:en": "Uri Bank"
55592                     }
55593                 },
55594                 "국민은행": {
55595                     "count": 165,
55596                     "tags": {
55597                         "name:en": "Gungmin Bank"
55598                     }
55599                 },
55600                 "중소기업은행": {
55601                     "count": 52,
55602                     "tags": {
55603                         "name:en": "Industrial Bank of Korea"
55604                     }
55605                 },
55606                 "광주은행": {
55607                     "count": 51,
55608                     "tags": {
55609                         "name:en": "Gwangju Bank"
55610                     }
55611                 },
55612                 "Газпромбанк": {
55613                     "count": 100
55614                 },
55615                 "M&T Bank": {
55616                     "count": 92
55617                 },
55618                 "Caja de Burgos": {
55619                     "count": 51
55620                 },
55621                 "Santander Totta": {
55622                     "count": 69
55623                 },
55624                 "УкрСиббанк": {
55625                     "count": 192
55626                 },
55627                 "Ощадбанк": {
55628                     "count": 364
55629                 },
55630                 "Уралсиб": {
55631                     "count": 85
55632                 },
55633                 "りそな銀行": {
55634                     "count": 225,
55635                     "tags": {
55636                         "name:en": "Mizuho Bank"
55637                     }
55638                 },
55639                 "Ecobank": {
55640                     "count": 66
55641                 },
55642                 "Cajero Automatico Bancared": {
55643                     "count": 145
55644                 },
55645                 "Промсвязьбанк": {
55646                     "count": 93
55647                 },
55648                 "三井住友銀行": {
55649                     "count": 129
55650                 },
55651                 "Banco Provincia": {
55652                     "count": 67
55653                 },
55654                 "BB&T": {
55655                     "count": 147
55656                 },
55657                 "Возрождение": {
55658                     "count": 59
55659                 },
55660                 "Capital One": {
55661                     "count": 59
55662                 },
55663                 "横浜銀行": {
55664                     "count": 51
55665                 },
55666                 "Bank Mandiri": {
55667                     "count": 62
55668                 },
55669                 "Banco de la Nación": {
55670                     "count": 92
55671                 },
55672                 "Banco G&T Continental": {
55673                     "count": 62
55674                 },
55675                 "Peoples Bank": {
55676                     "count": 60
55677                 },
55678                 "工商银行": {
55679                     "count": 51
55680                 },
55681                 "Совкомбанк": {
55682                     "count": 55
55683                 },
55684                 "Provincial": {
55685                     "count": 56
55686                 },
55687                 "Banco de Desarrollo Banrural": {
55688                     "count": 73
55689                 },
55690                 "Banco Bradesco": {
55691                     "count": 65
55692                 },
55693                 "Bicentenario": {
55694                     "count": 182
55695                 },
55696                 "ლიბერთი ბანკი": {
55697                     "count": 54,
55698                     "tags": {
55699                         "name:en": "Liberty Bank"
55700                     }
55701                 },
55702                 "Banesco": {
55703                     "count": 108
55704                 },
55705                 "Mercantil": {
55706                     "count": 75
55707                 },
55708                 "Bank BRI": {
55709                     "count": 53
55710                 },
55711                 "Del Tesoro": {
55712                     "count": 91
55713                 },
55714                 "하나은행": {
55715                     "count": 77
55716                 },
55717                 "CityCommerce Bank": {
55718                     "count": 71
55719                 },
55720                 "De Venezuela": {
55721                     "count": 117
55722                 }
55723             },
55724             "car_rental": {
55725                 "Europcar": {
55726                     "count": 291
55727                 },
55728                 "Budget": {
55729                     "count": 92
55730                 },
55731                 "Sixt": {
55732                     "count": 161
55733                 },
55734                 "Avis": {
55735                     "count": 282
55736                 },
55737                 "Hertz": {
55738                     "count": 293
55739                 },
55740                 "Enterprise": {
55741                     "count": 199
55742                 },
55743                 "stadtmobil CarSharing-Station": {
55744                     "count": 148
55745                 }
55746             },
55747             "pharmacy": {
55748                 "Rowlands Pharmacy": {
55749                     "count": 71
55750                 },
55751                 "Boots": {
55752                     "count": 840
55753                 },
55754                 "Marien-Apotheke": {
55755                     "count": 314
55756                 },
55757                 "Mercury Drug": {
55758                     "count": 426
55759                 },
55760                 "Löwen-Apotheke": {
55761                     "count": 356
55762                 },
55763                 "Superdrug": {
55764                     "count": 117
55765                 },
55766                 "Sonnen-Apotheke": {
55767                     "count": 311
55768                 },
55769                 "Rathaus-Apotheke": {
55770                     "count": 132
55771                 },
55772                 "Engel-Apotheke": {
55773                     "count": 123
55774                 },
55775                 "Hirsch-Apotheke": {
55776                     "count": 83
55777                 },
55778                 "Stern-Apotheke": {
55779                     "count": 67
55780                 },
55781                 "Lloyds Pharmacy": {
55782                     "count": 295
55783                 },
55784                 "Rosen-Apotheke": {
55785                     "count": 208
55786                 },
55787                 "Stadt-Apotheke": {
55788                     "count": 302
55789                 },
55790                 "Markt-Apotheke": {
55791                     "count": 164
55792                 },
55793                 "Аптека": {
55794                     "count": 1989
55795                 },
55796                 "Pharmasave": {
55797                     "count": 64
55798                 },
55799                 "Brunnen-Apotheke": {
55800                     "count": 53
55801                 },
55802                 "Shoppers Drug Mart": {
55803                     "count": 430
55804                 },
55805                 "Apotheke am Markt": {
55806                     "count": 60
55807                 },
55808                 "Alte Apotheke": {
55809                     "count": 88
55810                 },
55811                 "Neue Apotheke": {
55812                     "count": 109
55813                 },
55814                 "Gintarinė vaistinė": {
55815                     "count": 101
55816                 },
55817                 "Rats-Apotheke": {
55818                     "count": 84
55819                 },
55820                 "Adler Apotheke": {
55821                     "count": 313
55822                 },
55823                 "Pharmacie Centrale": {
55824                     "count": 64
55825                 },
55826                 "Walgreens": {
55827                     "count": 1619
55828                 },
55829                 "Rite Aid": {
55830                     "count": 745
55831                 },
55832                 "Apotheke": {
55833                     "count": 165
55834                 },
55835                 "Linden-Apotheke": {
55836                     "count": 211
55837                 },
55838                 "Bahnhof-Apotheke": {
55839                     "count": 66
55840                 },
55841                 "Burg-Apotheke": {
55842                     "count": 55
55843                 },
55844                 "Jean Coutu": {
55845                     "count": 62
55846                 },
55847                 "Pharmaprix": {
55848                     "count": 60
55849                 },
55850                 "Farmacias Ahumada": {
55851                     "count": 104
55852                 },
55853                 "Farmacia Comunale": {
55854                     "count": 113
55855                 },
55856                 "Farmacias Cruz Verde": {
55857                     "count": 86
55858                 },
55859                 "Cruz Verde": {
55860                     "count": 99
55861                 },
55862                 "Hubertus Apotheke": {
55863                     "count": 52
55864                 },
55865                 "CVS": {
55866                     "count": 1560
55867                 },
55868                 "Farmacias SalcoBrand": {
55869                     "count": 133
55870                 },
55871                 "Фармация": {
55872                     "count": 120
55873                 },
55874                 "Bären-Apotheke": {
55875                     "count": 74
55876                 },
55877                 "Clicks": {
55878                     "count": 113
55879                 },
55880                 "セイジョー": {
55881                     "count": 53
55882                 },
55883                 "マツモトキヨシ": {
55884                     "count": 115
55885                 },
55886                 "Dr. Max": {
55887                     "count": 51
55888                 },
55889                 "Вита": {
55890                     "count": 106
55891                 },
55892                 "Радуга": {
55893                     "count": 70
55894                 },
55895                 "サンドラッグ": {
55896                     "count": 61
55897                 },
55898                 "Apteka": {
55899                     "count": 366
55900                 },
55901                 "Первая помощь": {
55902                     "count": 74
55903                 },
55904                 "Ригла": {
55905                     "count": 113
55906                 },
55907                 "Имплозия": {
55908                     "count": 63
55909                 },
55910                 "Kinney Drugs": {
55911                     "count": 68
55912                 },
55913                 "Классика": {
55914                     "count": 67
55915                 },
55916                 "Ljekarna": {
55917                     "count": 53
55918                 },
55919                 "SalcoBrand": {
55920                     "count": 88
55921                 },
55922                 "Аптека 36,6": {
55923                     "count": 224
55924                 },
55925                 "Фармакор": {
55926                     "count": 75
55927                 },
55928                 "スギ薬局": {
55929                     "count": 84
55930                 },
55931                 "Аптечный пункт": {
55932                     "count": 148
55933                 },
55934                 "Невис": {
55935                     "count": 60
55936                 },
55937                 "トモズ (Tomod's)": {
55938                     "count": 83
55939                 },
55940                 "Eurovaistinė": {
55941                     "count": 65
55942                 },
55943                 "Farmacity": {
55944                     "count": 68
55945                 },
55946                 "аптека": {
55947                     "count": 96
55948                 },
55949                 "The Generics Pharmacy": {
55950                     "count": 95
55951                 },
55952                 "Farmatodo": {
55953                     "count": 123
55954                 },
55955                 "Duane Reade": {
55956                     "count": 61
55957                 },
55958                 "H-E-B": {
55959                     "count": 262
55960                 },
55961                 "Фармленд": {
55962                     "count": 82
55963                 },
55964                 "ドラッグてらしま (Drug Terashima)": {
55965                     "count": 96
55966                 },
55967                 "Арніка": {
55968                     "count": 125
55969                 },
55970                 "ავერსი (Aversi)": {
55971                     "count": 62
55972                 },
55973                 "Farmahorro": {
55974                     "count": 58
55975                 }
55976             },
55977             "cafe": {
55978                 "Starbucks": {
55979                     "count": 4238,
55980                     "tags": {
55981                         "cuisine": "coffee_shop"
55982                     }
55983                 },
55984                 "Cafeteria": {
55985                     "count": 115
55986                 },
55987                 "Costa": {
55988                     "count": 618
55989                 },
55990                 "Caffè Nero": {
55991                     "count": 169
55992                 },
55993                 "Кафе": {
55994                     "count": 226
55995                 },
55996                 "Café Central": {
55997                     "count": 61
55998                 },
55999                 "Second Cup": {
56000                     "count": 193
56001                 },
56002                 "Eisdiele": {
56003                     "count": 73
56004                 },
56005                 "Dunkin Donuts": {
56006                     "count": 428,
56007                     "tags": {
56008                         "cuisine": "donut"
56009                     }
56010                 },
56011                 "Espresso House": {
56012                     "count": 53
56013                 },
56014                 "Segafredo": {
56015                     "count": 69
56016                 },
56017                 "Coffee Time": {
56018                     "count": 94
56019                 },
56020                 "Cafe Coffee Day": {
56021                     "count": 120
56022                 },
56023                 "Eiscafe Venezia": {
56024                     "count": 180
56025                 },
56026                 "スターバックス": {
56027                     "count": 251,
56028                     "tags": {
56029                         "name:en": "Starbucks"
56030                     }
56031                 },
56032                 "Шоколадница": {
56033                     "count": 145
56034                 },
56035                 "Pret A Manger": {
56036                     "count": 119
56037                 },
56038                 "Столовая": {
56039                     "count": 391
56040                 },
56041                 "Jamba Juice": {
56042                     "count": 53
56043                 },
56044                 "ドトール": {
56045                     "count": 164,
56046                     "tags": {
56047                         "name:en": "DOUTOR"
56048                     }
56049                 },
56050                 "Tchibo": {
56051                     "count": 100
56052                 },
56053                 "Кофе Хауз": {
56054                     "count": 104
56055                 },
56056                 "Caribou Coffee": {
56057                     "count": 100
56058                 },
56059                 "Уют": {
56060                     "count": 51
56061                 },
56062                 "Шашлычная": {
56063                     "count": 58
56064                 },
56065                 "คาเฟ่ อเมซอน": {
56066                     "count": 62
56067                 },
56068                 "Traveler's Coffee": {
56069                     "count": 60
56070                 },
56071                 "カフェ・ド・クリエ": {
56072                     "count": 67,
56073                     "tags": {
56074                         "name:en": "Cafe de CRIE"
56075                     }
56076                 },
56077                 "Cafe Amazon": {
56078                     "count": 65
56079                 }
56080             }
56081         },
56082         "shop": {
56083             "supermarket": {
56084                 "Budgens": {
56085                     "count": 88
56086                 },
56087                 "Morrisons": {
56088                     "count": 411
56089                 },
56090                 "Interspar": {
56091                     "count": 142
56092                 },
56093                 "Merkur": {
56094                     "count": 107
56095                 },
56096                 "Sainsbury's": {
56097                     "count": 547
56098                 },
56099                 "Lidl": {
56100                     "count": 6208
56101                 },
56102                 "EDEKA": {
56103                     "count": 506
56104                 },
56105                 "Coles": {
56106                     "count": 400
56107                 },
56108                 "Iceland": {
56109                     "count": 315
56110                 },
56111                 "Coop": {
56112                     "count": 1906
56113                 },
56114                 "Tesco": {
56115                     "count": 1297
56116                 },
56117                 "Woolworths": {
56118                     "count": 541
56119                 },
56120                 "Zielpunkt": {
56121                     "count": 239
56122                 },
56123                 "Nahkauf": {
56124                     "count": 170
56125                 },
56126                 "Billa": {
56127                     "count": 1432
56128                 },
56129                 "Kaufland": {
56130                     "count": 1004
56131                 },
56132                 "Plus": {
56133                     "count": 120
56134                 },
56135                 "ALDI": {
56136                     "count": 5172
56137                 },
56138                 "Checkers": {
56139                     "count": 128
56140                 },
56141                 "Tesco Metro": {
56142                     "count": 137
56143                 },
56144                 "NP": {
56145                     "count": 153
56146                 },
56147                 "Penny": {
56148                     "count": 1759
56149                 },
56150                 "Norma": {
56151                     "count": 1068
56152                 },
56153                 "Asda": {
56154                     "count": 225
56155                 },
56156                 "Netto": {
56157                     "count": 4379
56158                 },
56159                 "REWE": {
56160                     "count": 1474
56161                 },
56162                 "Rewe": {
56163                     "count": 1171
56164                 },
56165                 "Aldi Süd": {
56166                     "count": 594
56167                 },
56168                 "Real": {
56169                     "count": 246
56170                 },
56171                 "Tesco Express": {
56172                     "count": 406
56173                 },
56174                 "King Soopers": {
56175                     "count": 72
56176                 },
56177                 "Kiwi": {
56178                     "count": 167
56179                 },
56180                 "Edeka": {
56181                     "count": 1787
56182                 },
56183                 "Pick n Pay": {
56184                     "count": 241
56185                 },
56186                 "ICA": {
56187                     "count": 192
56188                 },
56189                 "Tengelmann": {
56190                     "count": 188
56191                 },
56192                 "Carrefour": {
56193                     "count": 1640
56194                 },
56195                 "Waitrose": {
56196                     "count": 258
56197                 },
56198                 "Spar": {
56199                     "count": 2100
56200                 },
56201                 "Hofer": {
56202                     "count": 442
56203                 },
56204                 "M-Preis": {
56205                     "count": 76
56206                 },
56207                 "LIDL": {
56208                     "count": 922
56209                 },
56210                 "tegut": {
56211                     "count": 210
56212                 },
56213                 "Sainsbury's Local": {
56214                     "count": 118
56215                 },
56216                 "E-Center": {
56217                     "count": 66
56218                 },
56219                 "Aldi Nord": {
56220                     "count": 210
56221                 },
56222                 "nahkauf": {
56223                     "count": 84
56224                 },
56225                 "Meijer": {
56226                     "count": 76
56227                 },
56228                 "Safeway": {
56229                     "count": 410
56230                 },
56231                 "Costco": {
56232                     "count": 152
56233                 },
56234                 "Albert": {
56235                     "count": 185
56236                 },
56237                 "Jumbo": {
56238                     "count": 194
56239                 },
56240                 "Shoprite": {
56241                     "count": 244
56242                 },
56243                 "MPreis": {
56244                     "count": 54
56245                 },
56246                 "Penny Market": {
56247                     "count": 429
56248                 },
56249                 "Tesco Extra": {
56250                     "count": 123
56251                 },
56252                 "Albert Heijn": {
56253                     "count": 476
56254                 },
56255                 "IGA": {
56256                     "count": 363
56257                 },
56258                 "Super U": {
56259                     "count": 488
56260                 },
56261                 "Metro": {
56262                     "count": 260
56263                 },
56264                 "Neukauf": {
56265                     "count": 77
56266                 },
56267                 "Migros": {
56268                     "count": 459
56269                 },
56270                 "Marktkauf": {
56271                     "count": 121
56272                 },
56273                 "Delikatesy Centrum": {
56274                     "count": 59
56275                 },
56276                 "C1000": {
56277                     "count": 307
56278                 },
56279                 "Hoogvliet": {
56280                     "count": 53
56281                 },
56282                 "COOP": {
56283                     "count": 194
56284                 },
56285                 "Food Basics": {
56286                     "count": 75
56287                 },
56288                 "Casino": {
56289                     "count": 264
56290                 },
56291                 "Penny Markt": {
56292                     "count": 466
56293                 },
56294                 "Giant": {
56295                     "count": 191
56296                 },
56297                 "COOP Jednota": {
56298                     "count": 73
56299                 },
56300                 "Rema 1000": {
56301                     "count": 368
56302                 },
56303                 "Kaufpark": {
56304                     "count": 96
56305                 },
56306                 "ALDI SÜD": {
56307                     "count": 113
56308                 },
56309                 "Simply Market": {
56310                     "count": 330
56311                 },
56312                 "Konzum": {
56313                     "count": 230
56314                 },
56315                 "Carrefour Express": {
56316                     "count": 353
56317                 },
56318                 "Eurospar": {
56319                     "count": 270
56320                 },
56321                 "Mercator": {
56322                     "count": 125
56323                 },
56324                 "Famila": {
56325                     "count": 130
56326                 },
56327                 "Hemköp": {
56328                     "count": 82
56329                 },
56330                 "real,-": {
56331                     "count": 81
56332                 },
56333                 "Markant": {
56334                     "count": 88
56335                 },
56336                 "Volg": {
56337                     "count": 135
56338                 },
56339                 "Leader Price": {
56340                     "count": 267
56341                 },
56342                 "Treff 3000": {
56343                     "count": 94
56344                 },
56345                 "SuperBrugsen": {
56346                     "count": 67
56347                 },
56348                 "Kaiser's": {
56349                     "count": 256
56350                 },
56351                 "K+K": {
56352                     "count": 106
56353                 },
56354                 "Unimarkt": {
56355                     "count": 86
56356                 },
56357                 "Carrefour City": {
56358                     "count": 126
56359                 },
56360                 "Sobeys": {
56361                     "count": 122
56362                 },
56363                 "S-Market": {
56364                     "count": 109
56365                 },
56366                 "Combi": {
56367                     "count": 55
56368                 },
56369                 "Denner": {
56370                     "count": 276
56371                 },
56372                 "Konsum": {
56373                     "count": 133
56374                 },
56375                 "Franprix": {
56376                     "count": 312
56377                 },
56378                 "Monoprix": {
56379                     "count": 198
56380                 },
56381                 "Diska": {
56382                     "count": 69
56383                 },
56384                 "PENNY": {
56385                     "count": 79
56386                 },
56387                 "Dia": {
56388                     "count": 835
56389                 },
56390                 "Giant Eagle": {
56391                     "count": 85
56392                 },
56393                 "NORMA": {
56394                     "count": 115
56395                 },
56396                 "AD Delhaize": {
56397                     "count": 63
56398                 },
56399                 "Auchan": {
56400                     "count": 152
56401                 },
56402                 "Mercadona": {
56403                     "count": 769
56404                 },
56405                 "Consum": {
56406                     "count": 130
56407                 },
56408                 "Carrefour Market": {
56409                     "count": 80
56410                 },
56411                 "Whole Foods": {
56412                     "count": 210
56413                 },
56414                 "Pam": {
56415                     "count": 56
56416                 },
56417                 "sky": {
56418                     "count": 105
56419                 },
56420                 "Despar": {
56421                     "count": 146
56422                 },
56423                 "Eroski": {
56424                     "count": 208
56425                 },
56426                 "Costcutter": {
56427                     "count": 63
56428                 },
56429                 "Maxi": {
56430                     "count": 108
56431                 },
56432                 "Colruyt": {
56433                     "count": 180
56434                 },
56435                 "The Co-operative": {
56436                     "count": 64
56437                 },
56438                 "Intermarché": {
56439                     "count": 1210
56440                 },
56441                 "Delhaize": {
56442                     "count": 207
56443                 },
56444                 "CBA": {
56445                     "count": 176
56446                 },
56447                 "Shopi": {
56448                     "count": 53
56449                 },
56450                 "Walmart": {
56451                     "count": 644
56452                 },
56453                 "Kroger": {
56454                     "count": 317
56455                 },
56456                 "Albertsons": {
56457                     "count": 242
56458                 },
56459                 "Trader Joe's": {
56460                     "count": 235
56461                 },
56462                 "Feneberg": {
56463                     "count": 58
56464                 },
56465                 "denn's Biomarkt": {
56466                     "count": 52
56467                 },
56468                 "dm": {
56469                     "count": 114
56470                 },
56471                 "Kvickly": {
56472                     "count": 55
56473                 },
56474                 "Makro": {
56475                     "count": 140
56476                 },
56477                 "Dico": {
56478                     "count": 53
56479                 },
56480                 "Nah & Frisch": {
56481                     "count": 73
56482                 },
56483                 "Champion": {
56484                     "count": 59
56485                 },
56486                 "ICA Supermarket": {
56487                     "count": 51
56488                 },
56489                 "Fakta": {
56490                     "count": 235
56491                 },
56492                 "Магнит": {
56493                     "count": 1760
56494                 },
56495                 "Caprabo": {
56496                     "count": 103
56497                 },
56498                 "Famiglia Cooperativa": {
56499                     "count": 64
56500                 },
56501                 "Народная 7Я семьЯ": {
56502                     "count": 154
56503                 },
56504                 "Esselunga": {
56505                     "count": 85
56506                 },
56507                 "Maxima": {
56508                     "count": 102
56509                 },
56510                 "Petit Casino": {
56511                     "count": 111
56512                 },
56513                 "Wasgau": {
56514                     "count": 60
56515                 },
56516                 "Pingo Doce": {
56517                     "count": 253
56518                 },
56519                 "Match": {
56520                     "count": 140
56521                 },
56522                 "Profi": {
56523                     "count": 60
56524                 },
56525                 "Lider": {
56526                     "count": 65
56527                 },
56528                 "Unimarc": {
56529                     "count": 177
56530                 },
56531                 "Co-operative Food": {
56532                     "count": 59
56533                 },
56534                 "Santa Isabel": {
56535                     "count": 128
56536                 },
56537                 "Седьмой континент": {
56538                     "count": 79
56539                 },
56540                 "HIT": {
56541                     "count": 59
56542                 },
56543                 "Rimi": {
56544                     "count": 106
56545                 },
56546                 "Conad": {
56547                     "count": 304
56548                 },
56549                 "Фуршет": {
56550                     "count": 76
56551                 },
56552                 "Willys": {
56553                     "count": 56
56554                 },
56555                 "Farmfoods": {
56556                     "count": 64
56557                 },
56558                 "U Express": {
56559                     "count": 51
56560                 },
56561                 "Фора": {
56562                     "count": 52
56563                 },
56564                 "Dunnes Stores": {
56565                     "count": 73
56566                 },
56567                 "Сільпо": {
56568                     "count": 125
56569                 },
56570                 "マルエツ": {
56571                     "count": 59
56572                 },
56573                 "Piggly Wiggly": {
56574                     "count": 57
56575                 },
56576                 "Crai": {
56577                     "count": 54
56578                 },
56579                 "El Árbol": {
56580                     "count": 73
56581                 },
56582                 "Centre Commercial E. Leclerc": {
56583                     "count": 549
56584                 },
56585                 "Foodland": {
56586                     "count": 100
56587                 },
56588                 "Super Brugsen": {
56589                     "count": 67
56590                 },
56591                 "Дикси": {
56592                     "count": 683
56593                 },
56594                 "Пятёрочка": {
56595                     "count": 1344
56596                 },
56597                 "Publix": {
56598                     "count": 339
56599                 },
56600                 "Føtex": {
56601                     "count": 66
56602                 },
56603                 "coop": {
56604                     "count": 73
56605                 },
56606                 "Fressnapf": {
56607                     "count": 69
56608                 },
56609                 "Coop Konsum": {
56610                     "count": 79
56611                 },
56612                 "Carrefour Contact": {
56613                     "count": 83
56614                 },
56615                 "SPAR": {
56616                     "count": 286
56617                 },
56618                 "No Frills": {
56619                     "count": 105
56620                 },
56621                 "Plodine": {
56622                     "count": 52
56623                 },
56624                 "ADEG": {
56625                     "count": 68
56626                 },
56627                 "Minipreço": {
56628                     "count": 111
56629                 },
56630                 "Biedronka": {
56631                     "count": 1335
56632                 },
56633                 "The Co-operative Food": {
56634                     "count": 131
56635                 },
56636                 "Eurospin": {
56637                     "count": 155
56638                 },
56639                 "Семья": {
56640                     "count": 62
56641                 },
56642                 "Gadis": {
56643                     "count": 53
56644                 },
56645                 "Евроопт": {
56646                     "count": 68
56647                 },
56648                 "Centra": {
56649                     "count": 51
56650                 },
56651                 "Квартал": {
56652                     "count": 82
56653                 },
56654                 "New World": {
56655                     "count": 69
56656                 },
56657                 "Countdown": {
56658                     "count": 95
56659                 },
56660                 "Reliance Fresh": {
56661                     "count": 61
56662                 },
56663                 "Stokrotka": {
56664                     "count": 98
56665                 },
56666                 "Coop Jednota": {
56667                     "count": 74
56668                 },
56669                 "Fred Meyer": {
56670                     "count": 64
56671                 },
56672                 "Irma": {
56673                     "count": 58
56674                 },
56675                 "Continente": {
56676                     "count": 75
56677                 },
56678                 "Price Chopper": {
56679                     "count": 99
56680                 },
56681                 "Game": {
56682                     "count": 52
56683                 },
56684                 "Soriana": {
56685                     "count": 93
56686                 },
56687                 "Alimerka": {
56688                     "count": 64
56689                 },
56690                 "Piotr i Paweł": {
56691                     "count": 53
56692                 },
56693                 "Перекресток": {
56694                     "count": 312
56695                 },
56696                 "Maxima X": {
56697                     "count": 117
56698                 },
56699                 "Карусель": {
56700                     "count": 55
56701                 },
56702                 "ALDI Nord": {
56703                     "count": 51
56704                 },
56705                 "Condis": {
56706                     "count": 67
56707                 },
56708                 "Sam's Club": {
56709                     "count": 138
56710                 },
56711                 "Копейка": {
56712                     "count": 87
56713                 },
56714                 "Géant Casino": {
56715                     "count": 54
56716                 },
56717                 "ASDA": {
56718                     "count": 180
56719                 },
56720                 "Intermarche": {
56721                     "count": 115
56722                 },
56723                 "Stop & Shop": {
56724                     "count": 66
56725                 },
56726                 "Food Lion": {
56727                     "count": 216
56728                 },
56729                 "Harris Teeter": {
56730                     "count": 92
56731                 },
56732                 "Foodworks": {
56733                     "count": 62
56734                 },
56735                 "Polo Market": {
56736                     "count": 86
56737                 },
56738                 "Лента": {
56739                     "count": 51
56740                 },
56741                 "西友 (SEIYU)": {
56742                     "count": 58
56743                 },
56744                 "H-E-B": {
56745                     "count": 293
56746                 },
56747                 "Атак": {
56748                     "count": 53
56749                 },
56750                 "Полушка": {
56751                     "count": 139
56752                 },
56753                 "Extra": {
56754                     "count": 82
56755                 },
56756                 "Lewiatan": {
56757                     "count": 94
56758                 },
56759                 "Sigma": {
56760                     "count": 51
56761                 },
56762                 "АТБ": {
56763                     "count": 322
56764                 },
56765                 "Społem": {
56766                     "count": 55
56767                 },
56768                 "Bodega Aurrera": {
56769                     "count": 82
56770                 },
56771                 "Tesco Lotus": {
56772                     "count": 77
56773                 },
56774                 "Мария-Ра": {
56775                     "count": 108
56776                 },
56777                 "Магнолия": {
56778                     "count": 72
56779                 },
56780                 "Магазин": {
56781                     "count": 120
56782                 },
56783                 "Монетка": {
56784                     "count": 174
56785                 },
56786                 "Hy-Vee": {
56787                     "count": 75
56788                 },
56789                 "Walmart Supercenter": {
56790                     "count": 133
56791                 },
56792                 "Hannaford": {
56793                     "count": 57
56794                 },
56795                 "Wegmans": {
56796                     "count": 83
56797                 },
56798                 "業務スーパー": {
56799                     "count": 61
56800                 },
56801                 "Norfa XL": {
56802                     "count": 55
56803                 },
56804                 "ヨークマート (YorkMart)": {
56805                     "count": 64
56806                 },
56807                 "Leclerc Drive": {
56808                     "count": 76
56809                 }
56810             },
56811             "electronics": {
56812                 "Media Markt": {
56813                     "count": 285
56814                 },
56815                 "Maplin": {
56816                     "count": 65
56817                 },
56818                 "Best Buy": {
56819                     "count": 345
56820                 },
56821                 "Future Shop": {
56822                     "count": 73
56823                 },
56824                 "Saturn": {
56825                     "count": 134
56826                 },
56827                 "Currys": {
56828                     "count": 80
56829                 },
56830                 "Radio Shack": {
56831                     "count": 269
56832                 },
56833                 "Euronics": {
56834                     "count": 115
56835                 },
56836                 "Expert": {
56837                     "count": 123
56838                 },
56839                 "Эльдорадо": {
56840                     "count": 184
56841                 },
56842                 "Darty": {
56843                     "count": 74
56844                 },
56845                 "М.Видео": {
56846                     "count": 89
56847                 },
56848                 "ヤマダ電機": {
56849                     "count": 51
56850                 }
56851             },
56852             "convenience": {
56853                 "Shell": {
56854                     "count": 255
56855                 },
56856                 "Spar": {
56857                     "count": 922
56858                 },
56859                 "McColl's": {
56860                     "count": 100
56861                 },
56862                 "Tesco Express": {
56863                     "count": 426
56864                 },
56865                 "Sainsbury's Local": {
56866                     "count": 104
56867                 },
56868                 "Aral": {
56869                     "count": 56
56870                 },
56871                 "One Stop": {
56872                     "count": 146
56873                 },
56874                 "The Co-operative Food": {
56875                     "count": 115
56876                 },
56877                 "Londis": {
56878                     "count": 352
56879                 },
56880                 "7-Eleven": {
56881                     "count": 4440
56882                 },
56883                 "CBA": {
56884                     "count": 135
56885                 },
56886                 "Coop": {
56887                     "count": 538
56888                 },
56889                 "Sale": {
56890                     "count": 80
56891                 },
56892                 "Statoil": {
56893                     "count": 69
56894                 },
56895                 "Sheetz": {
56896                     "count": 54
56897                 },
56898                 "Konzum": {
56899                     "count": 173
56900                 },
56901                 "Siwa": {
56902                     "count": 216
56903                 },
56904                 "Mercator": {
56905                     "count": 57
56906                 },
56907                 "Esso": {
56908                     "count": 67
56909                 },
56910                 "COOP Jednota": {
56911                     "count": 181
56912                 },
56913                 "Mac's": {
56914                     "count": 152
56915                 },
56916                 "Alepa": {
56917                     "count": 62
56918                 },
56919                 "Hasty Market": {
56920                     "count": 54
56921                 },
56922                 "K-Market": {
56923                     "count": 54
56924                 },
56925                 "Costcutter": {
56926                     "count": 292
56927                 },
56928                 "Valintatalo": {
56929                     "count": 62
56930                 },
56931                 "SPAR": {
56932                     "count": 197
56933                 },
56934                 "COOP": {
56935                     "count": 140
56936                 },
56937                 "Casino": {
56938                     "count": 90
56939                 },
56940                 "Franprix": {
56941                     "count": 61
56942                 },
56943                 "Circle K": {
56944                     "count": 289
56945                 },
56946                 "セブンイレブン": {
56947                     "count": 3011,
56948                     "tags": {
56949                         "name:en": "7-Eleven"
56950                     }
56951                 },
56952                 "ローソン": {
56953                     "count": 1596,
56954                     "tags": {
56955                         "name:en": "LAWSON"
56956                     }
56957                 },
56958                 "BP": {
56959                     "count": 163
56960                 },
56961                 "Tesco": {
56962                     "count": 55
56963                 },
56964                 "Petit Casino": {
56965                     "count": 233
56966                 },
56967                 "Volg": {
56968                     "count": 116
56969                 },
56970                 "Mace": {
56971                     "count": 115
56972                 },
56973                 "Mini Market": {
56974                     "count": 272
56975                 },
56976                 "Nisa Local": {
56977                     "count": 77
56978                 },
56979                 "Dorfladen": {
56980                     "count": 75
56981                 },
56982                 "Продукты": {
56983                     "count": 4285
56984                 },
56985                 "Mini Stop": {
56986                     "count": 228
56987                 },
56988                 "LAWSON": {
56989                     "count": 419
56990                 },
56991                 "デイリーヤマザキ": {
56992                     "count": 141
56993                 },
56994                 "Biedronka": {
56995                     "count": 83
56996                 },
56997                 "Надежда": {
56998                     "count": 56
56999                 },
57000                 "Mobil": {
57001                     "count": 66
57002                 },
57003                 "Nisa": {
57004                     "count": 51
57005                 },
57006                 "Premier": {
57007                     "count": 129
57008                 },
57009                 "ABC": {
57010                     "count": 152
57011                 },
57012                 "ミニストップ": {
57013                     "count": 316,
57014                     "tags": {
57015                         "name:en": "MINISTOP"
57016                     }
57017                 },
57018                 "サンクス": {
57019                     "count": 560,
57020                     "tags": {
57021                         "name:en": "sunkus"
57022                     }
57023                 },
57024                 "スリーエフ": {
57025                     "count": 88
57026                 },
57027                 "8 à Huit": {
57028                     "count": 61
57029                 },
57030                 "Tchibo": {
57031                     "count": 56
57032                 },
57033                 "Żabka": {
57034                     "count": 546
57035                 },
57036                 "Almacen": {
57037                     "count": 229
57038                 },
57039                 "Vival": {
57040                     "count": 194
57041                 },
57042                 "FamilyMart": {
57043                     "count": 529
57044                 },
57045                 "ファミリーマート": {
57046                     "count": 1608,
57047                     "tags": {
57048                         "name:en": "FamilyMart"
57049                     }
57050                 },
57051                 "Carrefour City": {
57052                     "count": 57
57053                 },
57054                 "Sunkus": {
57055                     "count": 62
57056                 },
57057                 "Casey's General Store": {
57058                     "count": 95
57059                 },
57060                 "セブンイレブン(Seven-Eleven)": {
57061                     "count": 65
57062                 },
57063                 "Jednota": {
57064                     "count": 58
57065                 },
57066                 "Магазин": {
57067                     "count": 915
57068                 },
57069                 "Гастроном": {
57070                     "count": 152
57071                 },
57072                 "Sklep spożywczy": {
57073                     "count": 318
57074                 },
57075                 "Centra": {
57076                     "count": 111
57077                 },
57078                 "Магнит": {
57079                     "count": 701
57080                 },
57081                 "サークルK": {
57082                     "count": 538,
57083                     "tags": {
57084                         "name:en": "Circle K"
57085                     }
57086                 },
57087                 "Wawa": {
57088                     "count": 135
57089                 },
57090                 "Proxi": {
57091                     "count": 123
57092                 },
57093                 "Универсам": {
57094                     "count": 78
57095                 },
57096                 "Перекресток": {
57097                     "count": 51
57098                 },
57099                 "Groszek": {
57100                     "count": 65
57101                 },
57102                 "Select": {
57103                     "count": 62
57104                 },
57105                 "Večerka": {
57106                     "count": 51
57107                 },
57108                 "Potraviny": {
57109                     "count": 249
57110                 },
57111                 "Смак": {
57112                     "count": 78
57113                 },
57114                 "Эконом": {
57115                     "count": 55
57116                 },
57117                 "Березка": {
57118                     "count": 77
57119                 },
57120                 "Społem": {
57121                     "count": 93
57122                 },
57123                 "Carrefour Express": {
57124                     "count": 84
57125                 },
57126                 "Cumberland Farms": {
57127                     "count": 63
57128                 },
57129                 "Chevron": {
57130                     "count": 59
57131                 },
57132                 "Coop Jednota": {
57133                     "count": 66
57134                 },
57135                 "Tesco Lotus Express": {
57136                     "count": 67
57137                 },
57138                 "Kiosk": {
57139                     "count": 55
57140                 },
57141                 "24 часа": {
57142                     "count": 58
57143                 },
57144                 "Минимаркет": {
57145                     "count": 102
57146                 },
57147                 "Oxxo": {
57148                     "count": 669
57149                 },
57150                 "Пятёрочка": {
57151                     "count": 398
57152                 },
57153                 "abc": {
57154                     "count": 74
57155                 },
57156                 "7/11": {
57157                     "count": 51
57158                 },
57159                 "Stewart's": {
57160                     "count": 255
57161                 },
57162                 "Продукти": {
57163                     "count": 171
57164                 },
57165                 "ローソンストア100 (LAWSON STORE 100)": {
57166                     "count": 85
57167                 },
57168                 "Дикси": {
57169                     "count": 119
57170                 },
57171                 "Радуга": {
57172                     "count": 86
57173                 },
57174                 "ローソンストア100": {
57175                     "count": 76
57176                 },
57177                 "เซเว่นอีเลฟเว่น": {
57178                     "count": 185
57179                 },
57180                 "Spożywczy": {
57181                     "count": 78
57182                 },
57183                 "Delikatesy Centrum": {
57184                     "count": 53
57185                 },
57186                 "Citgo": {
57187                     "count": 62
57188                 },
57189                 "Фортуна": {
57190                     "count": 51
57191                 },
57192                 "Kum & Go": {
57193                     "count": 59
57194                 },
57195                 "Мария-Ра": {
57196                     "count": 76
57197                 },
57198                 "Picard": {
57199                     "count": 57
57200                 },
57201                 "Four Square": {
57202                     "count": 52
57203                 },
57204                 "Визит": {
57205                     "count": 57
57206                 },
57207                 "Авоська": {
57208                     "count": 55
57209                 },
57210                 "Dollar General": {
57211                     "count": 127
57212                 },
57213                 "Studenac": {
57214                     "count": 76
57215                 },
57216                 "Central Convenience Store": {
57217                     "count": 55
57218                 },
57219                 "Монетка": {
57220                     "count": 62
57221                 },
57222                 "продукты": {
57223                     "count": 114
57224                 },
57225                 "Теремок": {
57226                     "count": 56
57227                 },
57228                 "Kwik Trip": {
57229                     "count": 69
57230                 },
57231                 "Кулинария": {
57232                     "count": 55
57233                 },
57234                 "全家": {
57235                     "count": 90
57236                 },
57237                 "Мечта": {
57238                     "count": 54
57239                 },
57240                 "Epicerie": {
57241                     "count": 102
57242                 },
57243                 "Кировский": {
57244                     "count": 67
57245                 },
57246                 "Food Mart": {
57247                     "count": 117
57248                 },
57249                 "Delikatesy": {
57250                     "count": 81
57251                 },
57252                 "ポプラ": {
57253                     "count": 54
57254                 },
57255                 "Lewiatan": {
57256                     "count": 135
57257                 },
57258                 "Продуктовый магазин": {
57259                     "count": 149
57260                 },
57261                 "Продуктовый": {
57262                     "count": 84
57263                 },
57264                 "セイコーマート (Seicomart)": {
57265                     "count": 72
57266                 },
57267                 "Виктория": {
57268                     "count": 70
57269                 },
57270                 "Весна": {
57271                     "count": 57
57272                 },
57273                 "Mini Market Non-Stop": {
57274                     "count": 60
57275                 },
57276                 "QuikTrip": {
57277                     "count": 75
57278                 },
57279                 "Копеечка": {
57280                     "count": 51
57281                 },
57282                 "Royal Farms": {
57283                     "count": 51
57284                 },
57285                 "Alfamart": {
57286                     "count": 103
57287                 },
57288                 "Indomaret": {
57289                     "count": 141
57290                 },
57291                 "магазин": {
57292                     "count": 171
57293                 },
57294                 "全家便利商店": {
57295                     "count": 156
57296                 },
57297                 "Boutique": {
57298                     "count": 59
57299                 },
57300                 "მარკეტი (Market)": {
57301                     "count": 144
57302                 },
57303                 "Stores": {
57304                     "count": 61
57305                 }
57306             },
57307             "chemist": {
57308                 "dm": {
57309                     "count": 939
57310                 },
57311                 "Müller": {
57312                     "count": 212
57313                 },
57314                 "Schlecker": {
57315                     "count": 187
57316                 },
57317                 "Etos": {
57318                     "count": 467
57319                 },
57320                 "Bipa": {
57321                     "count": 289
57322                 },
57323                 "Rossmann": {
57324                     "count": 1669
57325                 },
57326                 "DM Drogeriemarkt": {
57327                     "count": 55
57328                 },
57329                 "Ihr Platz": {
57330                     "count": 73
57331                 },
57332                 "Douglas": {
57333                     "count": 62
57334                 },
57335                 "Kruidvat": {
57336                     "count": 123
57337                 }
57338             },
57339             "car_repair": {
57340                 "Peugeot": {
57341                     "count": 83
57342                 },
57343                 "Kwik Fit": {
57344                     "count": 75
57345                 },
57346                 "ATU": {
57347                     "count": 261
57348                 },
57349                 "Kwik-Fit": {
57350                     "count": 53
57351                 },
57352                 "Midas": {
57353                     "count": 202
57354                 },
57355                 "Feu Vert": {
57356                     "count": 113
57357                 },
57358                 "Norauto": {
57359                     "count": 152
57360                 },
57361                 "Speedy": {
57362                     "count": 115
57363                 },
57364                 "Автозапчасти": {
57365                     "count": 212
57366                 },
57367                 "Renault": {
57368                     "count": 171
57369                 },
57370                 "Pit Stop": {
57371                     "count": 58
57372                 },
57373                 "Jiffy Lube": {
57374                     "count": 198
57375                 },
57376                 "Шиномонтаж": {
57377                     "count": 1157
57378                 },
57379                 "СТО": {
57380                     "count": 395
57381                 },
57382                 "O'Reilly Auto Parts": {
57383                     "count": 81
57384                 },
57385                 "Carglass": {
57386                     "count": 112
57387                 },
57388                 "шиномонтаж": {
57389                     "count": 62
57390                 },
57391                 "Citroen": {
57392                     "count": 51
57393                 },
57394                 "Euromaster": {
57395                     "count": 87
57396                 },
57397                 "Firestone": {
57398                     "count": 88
57399                 },
57400                 "AutoZone": {
57401                     "count": 82
57402                 },
57403                 "Автосервис": {
57404                     "count": 361
57405                 },
57406                 "Advance Auto Parts": {
57407                     "count": 52
57408                 },
57409                 "Roady": {
57410                     "count": 56
57411                 }
57412             },
57413             "furniture": {
57414                 "IKEA": {
57415                     "count": 169
57416                 },
57417                 "Jysk": {
57418                     "count": 109
57419                 },
57420                 "Roller": {
57421                     "count": 78
57422                 },
57423                 "Dänisches Bettenlager": {
57424                     "count": 309
57425                 },
57426                 "Conforama": {
57427                     "count": 99
57428                 },
57429                 "Matratzen Concord": {
57430                     "count": 52
57431                 },
57432                 "Мебель": {
57433                     "count": 210
57434                 },
57435                 "But": {
57436                     "count": 63
57437                 }
57438             },
57439             "doityourself": {
57440                 "Hornbach": {
57441                     "count": 123
57442                 },
57443                 "B&Q": {
57444                     "count": 225
57445                 },
57446                 "Hubo": {
57447                     "count": 77
57448                 },
57449                 "Mr Bricolage": {
57450                     "count": 88
57451                 },
57452                 "Gamma": {
57453                     "count": 111
57454                 },
57455                 "OBI": {
57456                     "count": 422
57457                 },
57458                 "Lowes": {
57459                     "count": 1152
57460                 },
57461                 "Wickes": {
57462                     "count": 123
57463                 },
57464                 "Hagebau": {
57465                     "count": 59
57466                 },
57467                 "Max Bahr": {
57468                     "count": 79
57469                 },
57470                 "Castorama": {
57471                     "count": 153
57472                 },
57473                 "Rona": {
57474                     "count": 61
57475                 },
57476                 "Home Depot": {
57477                     "count": 865
57478                 },
57479                 "Toom Baumarkt": {
57480                     "count": 71
57481                 },
57482                 "Homebase": {
57483                     "count": 225
57484                 },
57485                 "Baumax": {
57486                     "count": 95
57487                 },
57488                 "Lagerhaus": {
57489                     "count": 79
57490                 },
57491                 "Bauhaus": {
57492                     "count": 186
57493                 },
57494                 "Canadian Tire": {
57495                     "count": 97
57496                 },
57497                 "Leroy Merlin": {
57498                     "count": 209
57499                 },
57500                 "Hellweg": {
57501                     "count": 58
57502                 },
57503                 "Brico": {
57504                     "count": 98
57505                 },
57506                 "Bricomarché": {
57507                     "count": 235
57508                 },
57509                 "Toom": {
57510                     "count": 67
57511                 },
57512                 "Hagebaumarkt": {
57513                     "count": 107
57514                 },
57515                 "Praktiker": {
57516                     "count": 122
57517                 },
57518                 "Menards": {
57519                     "count": 70
57520                 },
57521                 "Weldom": {
57522                     "count": 73
57523                 },
57524                 "Bunnings Warehouse": {
57525                     "count": 91
57526                 },
57527                 "Ace Hardware": {
57528                     "count": 147
57529                 },
57530                 "Home Hardware": {
57531                     "count": 72
57532                 },
57533                 "Хозтовары": {
57534                     "count": 86
57535                 },
57536                 "Стройматериалы": {
57537                     "count": 197
57538                 },
57539                 "Bricorama": {
57540                     "count": 60
57541                 },
57542                 "Point P": {
57543                     "count": 59
57544                 }
57545             },
57546             "stationery": {
57547                 "Staples": {
57548                     "count": 299
57549                 },
57550                 "McPaper": {
57551                     "count": 83
57552                 },
57553                 "Office Depot": {
57554                     "count": 98
57555                 },
57556                 "Канцтовары": {
57557                     "count": 63
57558                 }
57559             },
57560             "car": {
57561                 "Skoda": {
57562                     "count": 97
57563                 },
57564                 "BMW": {
57565                     "count": 149
57566                 },
57567                 "Citroen": {
57568                     "count": 277
57569                 },
57570                 "Renault": {
57571                     "count": 382
57572                 },
57573                 "Mercedes-Benz": {
57574                     "count": 235
57575                 },
57576                 "Volvo": {
57577                     "count": 96
57578                 },
57579                 "Ford": {
57580                     "count": 239
57581                 },
57582                 "Volkswagen": {
57583                     "count": 217
57584                 },
57585                 "Mazda": {
57586                     "count": 105
57587                 },
57588                 "Mitsubishi": {
57589                     "count": 73
57590                 },
57591                 "Fiat": {
57592                     "count": 93
57593                 },
57594                 "Автозапчасти": {
57595                     "count": 277
57596                 },
57597                 "Opel": {
57598                     "count": 165
57599                 },
57600                 "Audi": {
57601                     "count": 121
57602                 },
57603                 "Toyota": {
57604                     "count": 271
57605                 },
57606                 "Nissan": {
57607                     "count": 189
57608                 },
57609                 "Suzuki": {
57610                     "count": 75
57611                 },
57612                 "Honda": {
57613                     "count": 157
57614                 },
57615                 "Peugeot": {
57616                     "count": 308
57617                 },
57618                 "Шиномонтаж": {
57619                     "count": 259
57620                 },
57621                 "Hyundai": {
57622                     "count": 166
57623                 },
57624                 "Subaru": {
57625                     "count": 58
57626                 },
57627                 "Chevrolet": {
57628                     "count": 86
57629                 },
57630                 "Автомагазин": {
57631                     "count": 72
57632                 }
57633             },
57634             "clothes": {
57635                 "Matalan": {
57636                     "count": 90
57637                 },
57638                 "KiK": {
57639                     "count": 1219
57640                 },
57641                 "H&M": {
57642                     "count": 658
57643                 },
57644                 "Urban Outfitters": {
57645                     "count": 63
57646                 },
57647                 "Vögele": {
57648                     "count": 132
57649                 },
57650                 "Zeeman": {
57651                     "count": 121
57652                 },
57653                 "Takko": {
57654                     "count": 515
57655                 },
57656                 "Adler": {
57657                     "count": 55
57658                 },
57659                 "C&A": {
57660                     "count": 506
57661                 },
57662                 "Zara": {
57663                     "count": 217
57664                 },
57665                 "Vero Moda": {
57666                     "count": 95
57667                 },
57668                 "NKD": {
57669                     "count": 486
57670                 },
57671                 "Ernsting's family": {
57672                     "count": 312
57673                 },
57674                 "Winners": {
57675                     "count": 65
57676                 },
57677                 "River Island": {
57678                     "count": 59
57679                 },
57680                 "Next": {
57681                     "count": 176
57682                 },
57683                 "Gap": {
57684                     "count": 81
57685                 },
57686                 "Adidas": {
57687                     "count": 92
57688                 },
57689                 "Woolworths": {
57690                     "count": 117
57691                 },
57692                 "Mr Price": {
57693                     "count": 88
57694                 },
57695                 "Jet": {
57696                     "count": 61
57697                 },
57698                 "Pep": {
57699                     "count": 134
57700                 },
57701                 "Edgars": {
57702                     "count": 110
57703                 },
57704                 "Ackermans": {
57705                     "count": 91
57706                 },
57707                 "Truworths": {
57708                     "count": 65
57709                 },
57710                 "Ross": {
57711                     "count": 93
57712                 },
57713                 "Burton": {
57714                     "count": 51
57715                 },
57716                 "Dorothy Perkins": {
57717                     "count": 53
57718                 },
57719                 "Deichmann": {
57720                     "count": 61
57721                 },
57722                 "Lindex": {
57723                     "count": 73
57724                 },
57725                 "s.Oliver": {
57726                     "count": 56
57727                 },
57728                 "Cecil": {
57729                     "count": 51
57730                 },
57731                 "Dress Barn": {
57732                     "count": 52
57733                 },
57734                 "Old Navy": {
57735                     "count": 174
57736                 },
57737                 "Jack & Jones": {
57738                     "count": 52
57739                 },
57740                 "Pimkie": {
57741                     "count": 73
57742                 },
57743                 "Esprit": {
57744                     "count": 231
57745                 },
57746                 "Primark": {
57747                     "count": 92
57748                 },
57749                 "Bonita": {
57750                     "count": 155
57751                 },
57752                 "Mexx": {
57753                     "count": 67
57754                 },
57755                 "Gerry Weber": {
57756                     "count": 71
57757                 },
57758                 "Tally Weijl": {
57759                     "count": 70
57760                 },
57761                 "Mango": {
57762                     "count": 133
57763                 },
57764                 "TK Maxx": {
57765                     "count": 84
57766                 },
57767                 "Benetton": {
57768                     "count": 101
57769                 },
57770                 "Ulla Popken": {
57771                     "count": 61
57772                 },
57773                 "AWG": {
57774                     "count": 66
57775                 },
57776                 "Tommy Hilfiger": {
57777                     "count": 75
57778                 },
57779                 "New Yorker": {
57780                     "count": 180
57781                 },
57782                 "Orsay": {
57783                     "count": 73
57784                 },
57785                 "Jeans Fritz": {
57786                     "count": 51
57787                 },
57788                 "Charles Vögele": {
57789                     "count": 69
57790                 },
57791                 "New Look": {
57792                     "count": 126
57793                 },
57794                 "Lacoste": {
57795                     "count": 78
57796                 },
57797                 "Etam": {
57798                     "count": 53
57799                 },
57800                 "Kiabi": {
57801                     "count": 148
57802                 },
57803                 "Jack Wolfskin": {
57804                     "count": 60
57805                 },
57806                 "American Apparel": {
57807                     "count": 57
57808                 },
57809                 "Men's Wearhouse": {
57810                     "count": 54
57811                 },
57812                 "Intimissimi": {
57813                     "count": 52
57814                 },
57815                 "United Colors of Benetton": {
57816                     "count": 96
57817                 },
57818                 "Jules": {
57819                     "count": 63
57820                 },
57821                 "Second Hand": {
57822                     "count": 53
57823                 },
57824                 "AOKI": {
57825                     "count": 57
57826                 },
57827                 "Calzedonia": {
57828                     "count": 68
57829                 },
57830                 "洋服の青山": {
57831                     "count": 100
57832                 },
57833                 "Levi's": {
57834                     "count": 63
57835                 },
57836                 "Celio": {
57837                     "count": 74
57838                 },
57839                 "TJ Maxx": {
57840                     "count": 57
57841                 },
57842                 "Promod": {
57843                     "count": 82
57844                 },
57845                 "Street One": {
57846                     "count": 72
57847                 },
57848                 "ユニクロ": {
57849                     "count": 59
57850                 },
57851                 "Banana Republic": {
57852                     "count": 57
57853                 },
57854                 "Одежда": {
57855                     "count": 75
57856                 },
57857                 "Marshalls": {
57858                     "count": 56
57859                 },
57860                 "La Halle": {
57861                     "count": 62
57862                 },
57863                 "Peacocks": {
57864                     "count": 89
57865                 },
57866                 "しまむら": {
57867                     "count": 60
57868                 }
57869             },
57870             "books": {
57871                 "Bruna": {
57872                     "count": 58
57873                 },
57874                 "Waterstones": {
57875                     "count": 90
57876                 },
57877                 "Libro": {
57878                     "count": 57
57879                 },
57880                 "Barnes & Noble": {
57881                     "count": 267
57882                 },
57883                 "Weltbild": {
57884                     "count": 74
57885                 },
57886                 "Thalia": {
57887                     "count": 121
57888                 },
57889                 "Книги": {
57890                     "count": 112
57891                 }
57892             },
57893             "department_store": {
57894                 "Debenhams": {
57895                     "count": 67
57896                 },
57897                 "Canadian Tire": {
57898                     "count": 75
57899                 },
57900                 "Karstadt": {
57901                     "count": 64
57902                 },
57903                 "Walmart": {
57904                     "count": 517
57905                 },
57906                 "Kmart": {
57907                     "count": 143
57908                 },
57909                 "Target": {
57910                     "count": 574
57911                 },
57912                 "Galeria Kaufhof": {
57913                     "count": 61
57914                 },
57915                 "Marks & Spencer": {
57916                     "count": 66
57917                 },
57918                 "Big W": {
57919                     "count": 57
57920                 },
57921                 "Woolworth": {
57922                     "count": 78
57923                 },
57924                 "Универмаг": {
57925                     "count": 72
57926                 },
57927                 "Sears": {
57928                     "count": 235
57929                 },
57930                 "Walmart Supercenter": {
57931                     "count": 101
57932                 },
57933                 "Kohl's": {
57934                     "count": 153
57935                 },
57936                 "Macy's": {
57937                     "count": 147
57938                 },
57939                 "Sam's Club": {
57940                     "count": 54
57941                 },
57942                 "JCPenney": {
57943                     "count": 66
57944                 }
57945             },
57946             "alcohol": {
57947                 "Alko": {
57948                     "count": 145
57949                 },
57950                 "The Beer Store": {
57951                     "count": 150
57952                 },
57953                 "Systembolaget": {
57954                     "count": 210
57955                 },
57956                 "LCBO": {
57957                     "count": 239
57958                 },
57959                 "Ароматный мир": {
57960                     "count": 62
57961                 },
57962                 "Bargain Booze": {
57963                     "count": 62
57964                 },
57965                 "Nicolas": {
57966                     "count": 119
57967                 },
57968                 "BWS": {
57969                     "count": 70
57970                 },
57971                 "Botilleria": {
57972                     "count": 77
57973                 },
57974                 "SAQ": {
57975                     "count": 72
57976                 },
57977                 "Gall & Gall": {
57978                     "count": 512
57979                 },
57980                 "Живое пиво": {
57981                     "count": 70
57982                 }
57983             },
57984             "bakery": {
57985                 "Kamps": {
57986                     "count": 252
57987                 },
57988                 "Banette": {
57989                     "count": 52
57990                 },
57991                 "Bäckerei Schmidt": {
57992                     "count": 57
57993                 },
57994                 "Anker": {
57995                     "count": 73
57996                 },
57997                 "Hofpfisterei": {
57998                     "count": 111
57999                 },
58000                 "Greggs": {
58001                     "count": 276
58002                 },
58003                 "Oebel": {
58004                     "count": 57
58005                 },
58006                 "Boulangerie": {
58007                     "count": 266
58008                 },
58009                 "Stadtbäckerei": {
58010                     "count": 57
58011                 },
58012                 "Steinecke": {
58013                     "count": 145
58014                 },
58015                 "Ihle": {
58016                     "count": 76
58017                 },
58018                 "Goldilocks": {
58019                     "count": 59
58020                 },
58021                 "Dat Backhus": {
58022                     "count": 67
58023                 },
58024                 "K&U": {
58025                     "count": 61
58026                 },
58027                 "Der Beck": {
58028                     "count": 96
58029                 },
58030                 "Thürmann": {
58031                     "count": 54
58032                 },
58033                 "Backwerk": {
58034                     "count": 95
58035                 },
58036                 "Bäcker": {
58037                     "count": 68
58038                 },
58039                 "Schäfer's": {
58040                     "count": 51
58041                 },
58042                 "Panaderia": {
58043                     "count": 168
58044                 },
58045                 "Goeken backen": {
58046                     "count": 51
58047                 },
58048                 "Stadtbäckerei Junge": {
58049                     "count": 51
58050                 },
58051                 "Boulangerie Patisserie": {
58052                     "count": 119
58053                 },
58054                 "Paul": {
58055                     "count": 81
58056                 },
58057                 "Хлеб": {
58058                     "count": 89
58059                 },
58060                 "Piekarnia": {
58061                     "count": 62
58062                 },
58063                 "Пекарня": {
58064                     "count": 52
58065                 },
58066                 "Кулиничи": {
58067                     "count": 51
58068                 }
58069             },
58070             "sports": {
58071                 "Sports Direct": {
58072                     "count": 57
58073                 },
58074                 "Decathlon": {
58075                     "count": 309
58076                 },
58077                 "Intersport": {
58078                     "count": 283
58079                 },
58080                 "Sports Authority": {
58081                     "count": 75
58082                 },
58083                 "Спортмастер": {
58084                     "count": 87
58085                 },
58086                 "Sport 2000": {
58087                     "count": 90
58088                 },
58089                 "Dick's Sporting Goods": {
58090                     "count": 77
58091                 }
58092             },
58093             "variety_store": {
58094                 "Tedi": {
58095                     "count": 157
58096                 },
58097                 "Dollarama": {
58098                     "count": 103
58099                 },
58100                 "Family Dollar": {
58101                     "count": 61
58102                 },
58103                 "Dollar Tree": {
58104                     "count": 110
58105                 },
58106                 "Dollar General": {
58107                     "count": 80
58108                 }
58109             },
58110             "pet": {
58111                 "Fressnapf": {
58112                     "count": 318
58113                 },
58114                 "PetSmart": {
58115                     "count": 177
58116                 },
58117                 "Das Futterhaus": {
58118                     "count": 69
58119                 },
58120                 "Pets at Home": {
58121                     "count": 62
58122                 },
58123                 "Petco": {
58124                     "count": 101
58125                 },
58126                 "Зоомагазин": {
58127                     "count": 100
58128                 }
58129             },
58130             "shoes": {
58131                 "Deichmann": {
58132                     "count": 622
58133                 },
58134                 "Reno": {
58135                     "count": 183
58136                 },
58137                 "Ecco": {
58138                     "count": 55
58139                 },
58140                 "Clarks": {
58141                     "count": 109
58142                 },
58143                 "La Halle aux Chaussures": {
58144                     "count": 69
58145                 },
58146                 "Brantano": {
58147                     "count": 71
58148                 },
58149                 "Geox": {
58150                     "count": 51
58151                 },
58152                 "Salamander": {
58153                     "count": 51
58154                 },
58155                 "Обувь": {
58156                     "count": 100
58157                 },
58158                 "Payless Shoe Source": {
58159                     "count": 67
58160                 },
58161                 "Famous Footwear": {
58162                     "count": 59
58163                 },
58164                 "Quick Schuh": {
58165                     "count": 72
58166                 },
58167                 "Shoe Zone": {
58168                     "count": 55
58169                 },
58170                 "Foot Locker": {
58171                     "count": 82
58172                 },
58173                 "Bata": {
58174                     "count": 101
58175                 },
58176                 "ЦентрОбувь": {
58177                     "count": 51
58178                 }
58179             },
58180             "toys": {
58181                 "La Grande Récré": {
58182                     "count": 56
58183                 },
58184                 "Toys R Us": {
58185                     "count": 151,
58186                     "tags": {
58187                         "shop": "toys"
58188                     }
58189                 },
58190                 "Intertoys": {
58191                     "count": 57
58192                 },
58193                 "Детский мир": {
58194                     "count": 86
58195                 },
58196                 "Игрушки": {
58197                     "count": 58
58198                 }
58199             },
58200             "travel_agency": {
58201                 "Flight Centre": {
58202                     "count": 92
58203                 },
58204                 "Thomas Cook": {
58205                     "count": 119
58206                 }
58207             },
58208             "jewelry": {
58209                 "Bijou Brigitte": {
58210                     "count": 57
58211                 },
58212                 "Christ": {
58213                     "count": 57
58214                 },
58215                 "Swarovski": {
58216                     "count": 74
58217                 }
58218             },
58219             "optician": {
58220                 "Fielmann": {
58221                     "count": 232
58222                 },
58223                 "Apollo Optik": {
58224                     "count": 150
58225                 },
58226                 "Vision Express": {
58227                     "count": 58
58228                 },
58229                 "Оптика": {
58230                     "count": 182
58231                 },
58232                 "Optic 2000": {
58233                     "count": 98
58234                 },
58235                 "Alain Afflelou": {
58236                     "count": 73
58237                 },
58238                 "Specsavers": {
58239                     "count": 124
58240                 },
58241                 "Krys": {
58242                     "count": 77
58243                 },
58244                 "Atol": {
58245                     "count": 55
58246                 }
58247             },
58248             "video": {
58249                 "Blockbuster": {
58250                     "count": 184
58251                 },
58252                 "World of Video": {
58253                     "count": 64
58254                 }
58255             },
58256             "mobile_phone": {
58257                 "Билайн": {
58258                     "count": 128
58259                 },
58260                 "ソフトバンクショップ (SoftBank shop)": {
58261                     "count": 255
58262                 },
58263                 "Vodafone": {
58264                     "count": 355
58265                 },
58266                 "O2": {
58267                     "count": 208
58268                 },
58269                 "Carphone Warehouse": {
58270                     "count": 127
58271                 },
58272                 "Orange": {
58273                     "count": 246
58274                 },
58275                 "Verizon Wireless": {
58276                     "count": 125
58277                 },
58278                 "Sprint": {
58279                     "count": 109
58280                 },
58281                 "T-Mobile": {
58282                     "count": 175
58283                 },
58284                 "МТС": {
58285                     "count": 352
58286                 },
58287                 "Евросеть": {
58288                     "count": 506
58289                 },
58290                 "Bell": {
58291                     "count": 190
58292                 },
58293                 "The Phone House": {
58294                     "count": 83
58295                 },
58296                 "SFR": {
58297                     "count": 71
58298                 },
58299                 "Связной": {
58300                     "count": 439
58301                 },
58302                 "Мегафон": {
58303                     "count": 251
58304                 },
58305                 "AT&T": {
58306                     "count": 124
58307                 },
58308                 "ドコモショップ (docomo shop)": {
58309                     "count": 114
58310                 },
58311                 "au": {
58312                     "count": 65
58313                 },
58314                 "Movistar": {
58315                     "count": 77
58316                 },
58317                 "Bitė": {
58318                     "count": 72
58319                 }
58320             },
58321             "hifi": {},
58322             "computer": {
58323                 "PC World": {
58324                     "count": 55
58325                 },
58326                 "DNS": {
58327                     "count": 128
58328                 }
58329             },
58330             "hairdresser": {
58331                 "Klier": {
58332                     "count": 119
58333                 },
58334                 "Supercuts": {
58335                     "count": 106
58336                 },
58337                 "Hairkiller": {
58338                     "count": 51
58339                 },
58340                 "Great Clips": {
58341                     "count": 182
58342                 },
58343                 "Парикмахерская": {
58344                     "count": 510
58345                 },
58346                 "Стиль": {
58347                     "count": 51
58348                 },
58349                 "Fryzjer": {
58350                     "count": 56
58351                 },
58352                 "Franck Provost": {
58353                     "count": 70
58354                 },
58355                 "Салон красоты": {
58356                     "count": 70
58357                 }
58358             },
58359             "hardware": {
58360                 "1000 мелочей": {
58361                     "count": 61
58362                 },
58363                 "Хозтовары": {
58364                     "count": 151
58365                 },
58366                 "Стройматериалы": {
58367                     "count": 54
58368                 }
58369             },
58370             "motorcycle": {
58371                 "Yamaha": {
58372                     "count": 67
58373                 },
58374                 "Honda": {
58375                     "count": 69
58376                 }
58377             }
58378         }
58379     },
58380     "addressFormats": [
58381         {
58382             "format": [
58383                 [
58384                     "housenumber",
58385                     "street"
58386                 ],
58387                 [
58388                     "city",
58389                     "postcode"
58390                 ]
58391             ]
58392         },
58393         {
58394             "countryCodes": [
58395                 "gb"
58396             ],
58397             "format": [
58398                 [
58399                     "housename"
58400                 ],
58401                 [
58402                     "housenumber",
58403                     "street"
58404                 ],
58405                 [
58406                     "city",
58407                     "postcode"
58408                 ]
58409             ]
58410         },
58411         {
58412             "countryCodes": [
58413                 "ie"
58414             ],
58415             "format": [
58416                 [
58417                     "housename"
58418                 ],
58419                 [
58420                     "housenumber",
58421                     "street"
58422                 ],
58423                 [
58424                     "city"
58425                 ]
58426             ]
58427         },
58428         {
58429             "countryCodes": [
58430                 "ad",
58431                 "at",
58432                 "ba",
58433                 "be",
58434                 "ch",
58435                 "cz",
58436                 "de",
58437                 "dk",
58438                 "es",
58439                 "fi",
58440                 "gr",
58441                 "hr",
58442                 "is",
58443                 "it",
58444                 "li",
58445                 "nl",
58446                 "no",
58447                 "pl",
58448                 "pt",
58449                 "se",
58450                 "si",
58451                 "sk",
58452                 "sm",
58453                 "va"
58454             ],
58455             "format": [
58456                 [
58457                     "street",
58458                     "housenumber"
58459                 ],
58460                 [
58461                     "postcode",
58462                     "city"
58463                 ]
58464             ]
58465         },
58466         {
58467             "countryCodes": [
58468                 "fr",
58469                 "lu",
58470                 "mo"
58471             ],
58472             "format": [
58473                 [
58474                     "housenumber",
58475                     "street"
58476                 ],
58477                 [
58478                     "postcode",
58479                     "city"
58480                 ]
58481             ]
58482         },
58483         {
58484             "countryCodes": [
58485                 "br"
58486             ],
58487             "format": [
58488                 [
58489                     "street"
58490                 ],
58491                 [
58492                     "housenumber",
58493                     "suburb"
58494                 ],
58495                 [
58496                     "city",
58497                     "postcode"
58498                 ]
58499             ]
58500         },
58501         {
58502             "countryCodes": [
58503                 "vn"
58504             ],
58505             "format": [
58506                 [
58507                     "housenumber",
58508                     "street"
58509                 ],
58510                 [
58511                     "subdistrict"
58512                 ],
58513                 [
58514                     "district"
58515                 ],
58516                 [
58517                     "city"
58518                 ],
58519                 [
58520                     "province",
58521                     "postcode"
58522                 ]
58523             ]
58524         },
58525         {
58526             "countryCodes": [
58527                 "us"
58528             ],
58529             "format": [
58530                 [
58531                     "housenumber",
58532                     "street"
58533                 ],
58534                 [
58535                     "city",
58536                     "state",
58537                     "postcode"
58538                 ]
58539             ]
58540         },
58541         {
58542             "countryCodes": [
58543                 "ca"
58544             ],
58545             "format": [
58546                 [
58547                     "housenumber",
58548                     "street"
58549                 ],
58550                 [
58551                     "city",
58552                     "province",
58553                     "postcode"
58554                 ]
58555             ]
58556         }
58557     ]
58558 };