<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _create_tag_highlevel(self, tag_name, message=None):
 """Create a tag on the toplevel repo if there is no patch repo, or a tag on the patch repo and bookmark on the top repo if there is a patch repo Returns a list where each entry is a dict for each bookmark or tag created, which looks like {'type': ('bookmark' or 'tag'), 'patch': bool} """

        results = []
        if self.patch_path:
            # make a tag on the patch queue
            tagged = self._create_tag_lowlevel(tag_name, message=message,
                                               patch=True)
            if tagged:
                results.append({'type': 'tag', 'patch': True})

            # use a bookmark on the main repo since we can't change it
            self.hg('bookmark', '-f', tag_name)
            results.append({'type': 'bookmark', 'patch': False})
        else:
            tagged = self._create_tag_lowlevel(tag_name, message=message,
                                               patch=False)
            if tagged:
                results.append({'type': 'tag', 'patch': False})
        return results