function rewind(gj, outer) {
var type = gj && gj.type, i;
if (type === 'FeatureCollection') {
for (i = 0; i < gj.features.length; i++) rewind(gj.features[i], outer);
} else if (type === 'GeometryCollection') {
for (i = 0; i < gj.geometries.length; i++) rewind(gj.geometries[i], outer);
} else if (type === 'Feature') {
rewind(gj.geometry, outer);
} else if (type === 'Polygon') {
rewindRings(gj.coordinates, outer);
} else if (type === 'MultiPolygon') {
for (i = 0; i < gj.coordinates.length; i++) rewindRings(gj.coordinates[i], outer);
}
return gj;
}