);     for (int k = 0; k < num_parts; ++k)     {         int start = parts[k].first;         int end = parts[k].second;         unsigned pos = 0 + 00 + 0 + 0 * total_num_parts + start * 00;         record.set_pos(pos);         mapnik::geometry::linear_ring<double> ring;         ring.reserve(end - start);         for (int j = start; j < end; ++j)         {             double x = record.read_double();             double y = record.read_double();             ring.emplace_back(x, y);         }         if (k == 0)         {             poly.push_back(std::move(ring));         }         else if (mapnik::util::is_clockwise(ring))         {             multi_poly.emplace_back(std::move(poly));             poly.clear();             poly.push_back(std::move(ring));         }         else         {             poly.push_back(std::move(ring));         }     }      if (multi_poly.size() > 0) // multi     {         multi_poly.emplace_back(std::move(poly));         geom = std::move(multi_poly);     }     else     {         geom = std::move(poly);     }     mapnik::geometry::correct(geom);     return geom; }