<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get(self, vrf=None):
 """Returns the OSPF routing configuration Args: vrf (str):
 VRF name to return OSPF routing config for Returns: dict: keys: router_id (int):
 OSPF router-id vrf (str):
 VRF of the OSPF process networks (dict):
 All networks that are advertised in OSPF ospf_process_id (int):
 OSPF proc id redistribution (dict):
 All protocols that are configured to be redistributed in OSPF shutdown (bool):
 Gives the current shutdown off the process """

        match = '^router ospf .*'
        if vrf:
            match += ' vrf %s' % vrf
        config = self.get_block(match)
        if not config:
            return None

        response = dict()
        response.update(self._parse_router_id(config))
        response.update(self._parse_vrf(config))
        response.update(self._parse_networks(config))
        response.update(self._parse_ospf_process_id(config))
        response.update(self._parse_redistribution(config))
        response.update(self._parse_shutdown(config))

        return response