<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def static_full_sizes(width, height, tilesize):
 """Generator for scaled-down full image sizes. Positional arguments: width -- width of full size image height -- height of full size image tilesize -- width and height of tiles Yields [sw,sh], the size for each full-region tile that is less than the tilesize. This includes tiles up to the full image size if that is smaller than the tilesize. """

    # FIXME - Not sure what correct algorithm is for this, from
    # observation of Openseadragon it seems that one keeps halving
    # the pixel size of the full image until until both width and
    # height are less than the tile size. After that all subsequent
    # halving of the image size are used, all the way down to 1,1.
    # It seems that without these reduced size full-region images,
    # OpenSeadragon will not display any unzoomed image in small windows.
    #
    # I do not understand the algorithm that OpenSeadragon uses (or
    # know where it is in the code) to decide how small a version of
    # the complete image to request. It seems that there is a bug in
    # OpenSeadragon here because in some cases it requests images
    # of size 1,1 multiple times, which is anyway a useless image.
    for level in range(0, 20):
        factor = 2.0**level
        sw = int(width / factor + 0.5)
        sh = int(height / factor + 0.5)
        if (sw < tilesize and sh < tilesize):
            if (sw < 1 or sh < 1):
                break
            yield([sw, sh])