#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,c1,c2,c3,c4;
int main(){
int T;
int p1,p2;
int num=0;
cin>>T;
while(T--){
cin>>a>>b>>c>>d>>c1>>c2>>c3>>c4;
if(a>=c) {
p1=a*c1+(a-c)*c2+b*c4;
if(a>=d){
p2=d*c2+(a-d)*c1+b*c3;
}
else{
p2=a*c2+(d-a)*c4+c*c3;
}
}
if(a<c){
p1=a*c1+(c-a)*c3+d*c4;
if(a>=d){
p2=c2*d+(a-d)*c1+b*c3;
}
else{
p2=a*c2+(d-a)*c4+c*c3;
}
}
if(p1>=p2){
cout<<p1<<endl;
}
else{
cout<<p2<<endl;
}
p1=0,p2=0;
}
return 0;
}
//只要将c与d被填满的几种情况分别列出,最后比较哪种最小输出就行。