Algorithm For Staircase Machining Of Non-Convex Polygonal Pockets With Islands