Alphanumeric Line and Curve Counting Given an input string, write a program that outputs the total number of lines and curves it has.

The Challenge


Take input from STDIN, or any other input method.
Output to STDOUT, or any other output method, the total number of lines and curves contained in the string, in that order, based on the below table in the code snippet.
Any non-alphanumeric characters should be ignored.
Standard loopholes are forbidden.
This is code-golf, so shortest code wins.


Clarifications


The lines and curves are determined by the font used on Stackexchange for code blocks.
Circles (like O, o, 0) and dots (i, j), are considered to be 1 curve each.
Input can be a string, list of characters, stream of characters, bytecodes etc.
Output can be an array of integers, tuple of integers, comma-separated string, etc. The two numbers must be separate, so 104 is not valid, but 10,4, 10        4, 10\n4, [10,4], (10, 4), and so on is.
Heading and trailing whitespace is perfectly acceptable.


Sample Input and Output

# Format: str -&gt; line, curve
hi -&gt; 4, 2
HELLO WORLD -&gt; 20, 4
l33+ 5pEak -&gt; 13, 8
+=-_!...?~`g@#$%^ -&gt; 1, 2
9001 -&gt; 5, 3
O o O o O o -&gt; 0, 6


Character Table

Char | Lines | Curves
0    | 1     | 1
1    | 3     | 0
2    | 1     | 1
3    | 0     | 2
4    | 3     | 0
5    | 2     | 1
6    | 0     | 1
7    | 2     | 0
8    | 0     | 2
9    | 0     | 1
A    | 3     | 0
B    | 1     | 2
C    | 0     | 1
D    | 1     | 1
E    | 4     | 0
F    | 3     | 0
G    | 2     | 1
H    | 3     | 0
I    | 3     | 0
J    | 1     | 1
K    | 3     | 0
L    | 2     | 0
M    | 4     | 0
N    | 3     | 0
O    | 0     | 1
P    | 1     | 1
Q    | 0     | 2
R    | 2     | 1
S    | 0     | 1
T    | 2     | 0
U    | 0     | 1
V    | 2     | 0
W    | 4     | 0
X    | 4     | 0
Y    | 3     | 0
Z    | 3     | 0
a    | 0     | 2
b    | 1     | 1
c    | 0     | 1
d    | 1     | 1
e    | 1     | 1
f    | 1     | 1
g    | 1     | 2
h    | 1     | 1
i    | 3     | 1
j    | 1     | 2
k    | 3     | 0
l    | 3     | 0
m    | 3     | 2
n    | 2     | 1
o    | 0     | 1
p    | 1     | 1
q    | 1     | 1
r    | 1     | 1
s    | 0     | 1
t    | 1     | 1
u    | 1     | 1
v    | 2     | 0
w    | 4     | 0
x    | 4     | 0
y    | 1     | 1
z    | 3     | 0
Haskell, 214 199 188 175 bytes

 g 0=[]
 g n=mod n 5:g(div n 5)
 d#s=sum[n|c&lt;-d,(i,n)&lt;-zip['0'..]$g s,c==i]
 f s=(s#0x300BBD37F30B5C234DE4A308D077AC8EF7FB328355A6,s#0x2D5E73A8E3D345386593A829D63104FED5552D080CA)


Try it online!

The numbers of lines and curves are the digits of base-5 numbers and stored as base-16 numbers. Function g translates back to base-5.

Edit: -13 bytes thanks to @cole.