<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dead_links(self):
 """Generate the coordinates of all dead links leaving working chips. Any link leading to a dead chip will also be included in the list of dead links. In non-torroidal SpiNNaker sysmtes (e.g. single SpiNN-5 boards), links on the periphery of the system will be marked as dead. Yields ------ (x, y, :py:class:`rig.links.Links`) A working link leaving a chip from the perspective of the chip. For example ``(0, 0, Links.north)`` would be the link going north from chip (0, 0) to chip (0, 1). """

        for (x, y), chip_info in iteritems(self):
            for link in Links:
                if link not in chip_info.working_links:
                    yield (x, y, link)