Slalom

Description
Slalom is a loop-drawing logic puzzle where a single, non-intersecting loop that passes through all gates is drawn.

Rules
The objective is to draw a single, non-intersecting loop, subject to the following rules:
 * 1) Dotted lines represent gates which may extend for multiple cells. The line must pass through all gates exactly once, not turning in the same cell.
 * 2) Some gates are numbered and must be passed in sequence, according to the number of the gate.
 * 3) Circled numbers represent both start and finish of the loop.
 * 4) The line may only travel vertically or horizontally.

Example
A standard 10x10 slalom and its solution.