<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def report(shas, meta):
 """ Cluster rule to compare ntp.conf files across a cluster ``shas`` is a Pandas DataFrame for the facts for each host by the fact ``ntp_sha256``. See https://pandas.pydata.org/pandas-docs/stable/api.html#dataframe for information on available attributes and methods. ``meta`` is a dictionary that contains the information from the cluster topology file provided by the ``-i`` switch. The dictionary keys are the sections, and the values are a list of the host information provided in the toplolgy file. Arguments: shas (pandas.DataFrame):
 Includes facts from ``ntp_sha256`` fact with column "sha" and one row per host in the cluster. meta (dict):
 Keys are the sections in the topology file and values are a list of the values in the section. """

    num_members = meta.num_members
    uniq = shas.sha.unique()
    if len(shas) != num_members or len(uniq) != 1:
        return make_fail("DISTINCT_NTP_CONFS", confs=len(uniq), nodes=num_members)

    return make_pass("MATCHING_NTP_CONFS", nodes=meta['nodes'], servers=meta['servers'])