3FIV3YIBCY5ISGCQ5U7ZQ4PPVEDIHH7XN3P2QTH6BIR3P2BOH5OQC
return (*this)[x](*this);
try {
auto c = context;
auto d = c + x;
context = dirname((char *)d.c_str());
auto r = (*this)[p](*this,ruleData{rp});
context = c;
return r;
} catch (std::bad_function_call _) {
p = dirname((char *)p.c_str());
goto start;
}