public static Predicate<TopicMessageDTO> celScriptFilter(String script) {
    CelValidationResult celValidationResult = CEL_COMPILER.compile(script);
    if (celValidationResult.hasError()) {
      throw new CelException(script, celValidationResult.getErrorString());
    }

    try {
      CelAbstractSyntaxTree ast = celValidationResult.getAst();
      CelRuntime.Program program = CEL_RUNTIME.createProgram(ast);

      return createPredicate(script, program);
    } catch (CelValidationException | CelEvaluationException e) {
      throw new CelException(script, e);
    }
  }
@Test
  void testBase64DecodingWorks() {
    var uuid = UUID.randomUUID().toString();
    var msg = "test." + Base64.getEncoder().encodeToString(uuid.getBytes());
    var f = celScriptFilter("string(base64.decode(record.value.split('.')[1])).contains('" + uuid + "')");
    assertTrue(f.test(msg().content(msg)));
  }