<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def kernel_initrds(self):
 """ Get the `kernel` and `initrd` files referenced in GRUB configuration files Returns: (dict):
 Returns a dict of the `kernel` and `initrd` files referenced in GRUB configuration files """


        kernels = []
        initrds = []
        name_values = [(k, v) for k, v in self.data.get('configs', [])]
        for value in self.data.get('title', []) + self.data.get('menuentry', []):
            name_values.extend(value)

        for name, value in name_values:
            if name.startswith('module'):
                if 'vmlinuz' in value:
                    kernels.append(_parse_kernel_initrds_value(value))
                elif 'initrd' in value or 'initramfs' in value:
                    initrds.append(_parse_kernel_initrds_value(value))
            elif (name.startswith(('kernel', 'linux'))):
                if 'ipxe.lkrn' in value:
                    # Machine PXE boots the kernel, assume all is ok
                    return {}
                elif 'xen.gz' not in value:
                    kernels.append(_parse_kernel_initrds_value(value))
            elif name.startswith('initrd') or name.startswith('initrd16'):
                initrds.append(_parse_kernel_initrds_value(value))

        return {GRUB_KERNELS: kernels, GRUB_INITRDS: initrds}