<｜begin▁of▁sentence｜>### Instruction:
Given a set of corner points [(100, 100), (200, 100), (200, 200), (100, 200)], can you use CairoPolygonDrawer to draw a square polygon on a Cairo graphics context and save it to 'polygon.png'?
### Response:
from igraph.drawing import CairoPolygonDrawer
import cairo

# Initialize a surface and context for drawing
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 400, 400)
context = cairo.Context(surface)

# Create a polygon drawer instance
polygon_drawer = CairoPolygonDrawer(context)

# Set of points defining the corners of the polygon
corners = [(100, 100), (200, 100), (200, 200), (100, 200)]

# Draw the polygon
polygon_drawer.draw(points=corners)

# Finish and save the drawing to a file
surface.write_to_png('polygon.png')
<|EOT|>
