<｜begin▁of▁sentence｜>### Instruction:
As a Computer Systems Analyst, you're tasked with evaluating and optimizing computer systems and processes. Imagine you're working on a graphics rendering application that utilizes the Cairo graphics library. Your team has encountered a requirement to display text within a bounding box with specific dimensions and wrap width. To accomplish this task, you need to utilize the CairoTextDrawer API. The goal is to draw the text "Hello, World!" within a bounding box positioned at coordinates (20, 50), with a wrap width of 180 pixels. Initially, the bounding box for the drawer is set to (10, 10, 200, 100). How would you implement this using CairoTextDrawer?
### Response:
from igraph.drawing.text import CairoTextDrawer
import cairo

# Set up a Cairo surface and context
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 600, 400)
ctx = cairo.Context(surface)

# Create a CairoTextDrawer instance
text_drawer = CairoTextDrawer(ctx)

# Set the bounding box where the text will be drawn
text_drawer.bbox = (10, 10, 200, 100)

# Set the text of the drawer
text_drawer.text = 'Hello, World!'

# Now draw the text at position (20, 50) with a specified wrap width
text_drawer.draw_at(20, 50, width=180, wrap=True)

# Save the surface to a PNG filesurface.write_to_png('output.png')
<|EOT|>
