f → g y → u l → ; (but ; is not a letter – so perhaps the original l came from k ? Let's check: k left = l , so decode l as k ). m → , (no) – This is messy.

But if encoded by shifting , then decode by shifting left :

f right = g y right = u l right = ; (punctuation – skip) → maybe it's l to ' ? No. Let's do word by word.

Let’s decode your string by shifting on QWERTY: