public static NSRange NSIntersectionRange(NSRange range1, NSRange range2)
{
uint max1 = NSMaxRange(range1);
uint max2 = NSMaxRange(range1);
uint max = (max1 < max2) ? max1 : max2;
uint location = (range1.location > range2.location) ? range1.location : range2.location;
return max < location ? NSZeroRange : new NSRange(location, max-location);
}