code: def revealed_attrs(proof: dict) -> dict:
      
  
      rv = {}
      for sub_index in range(len(proof['identifiers'])):
          cd_id = proof['identifiers'][sub_index]['cred_def_id']
          rv[cd_id] = ({  # uses von_anchor convention for uuid (referent) construction: will break on foreign anchor's
              '_'.join(uuid.split('_')[1:-1]): proof['requested_proof']['revealed_attrs'][uuid]['raw']
              for uuid in proof['requested_proof']['revealed_attrs']
              if proof['requested_proof']['revealed_attrs'][uuid]['sub_proof_index'] == sub_index})
  
      return rv
docs: Fetch revealed attributes from input proof and return dict mapping credential definition identifiers
      to dicts, each dict mapping attribute names to (raw) values, for processing in further creds downstream.
  
      :param proof: indy-sdk proof as dict
      :return: dict mapping cred-ids to dicts, each mapping revealed attribute names to (raw) values