code: def load(jwks):
      
      sign_keys = {}
      verify_keys = {}
      try:
          keyset = json.loads(jwks)
          for key in keyset['keys']:
              for op in key['key_ops']:
                  if op == 'sign':
                      k = sign_keys
                  elif op == 'verify':
                      k = verify_keys
                  else:
                      raise JWKError("Unsupported key operation: {}".format(op))
                  if key['kty'] == 'oct':
                      k[key['kid']] = _Key(alg=key['alg'], key=base64.urlsafe_b64decode(key['k']))
                  elif key['kty'] == 'EC':
                      alg, ec_key = _load_ecdsa(key, op == 'verify')
                      k[key['kid']] = _Key(alg=alg, key=ec_key)
                  else:
                      raise JWKError("Unsupported key type: {}".format(key['kty']))
      except (KeyError, json.JSONDecodeError) as e:
          raise JWKError() from e
      keys = _KeySet(signers=MappingProxyType(sign_keys), verifiers=MappingProxyType(verify_keys))
      return keys
docs: Parse a JWKSet and return a dictionary that maps key IDs on keys.