You are given two integers x and y. You can perform two types of operations: 

  1. Pay a dollars and increase or decrease any of these integers by 1. For example, if x = 0 and y = 7 there are four possible outcomes after this operation: 
    * x = 0, y = 6; 
    * x = 0, y = 8; 
    * x = -1, y = 7; 
    * x = 1, y = 7. 

  2. Pay b dollars and increase or decrease both integers by 1. For example, if x = 0 and y = 7 there are two possible outcomes after this operation: 
    * x = -1, y = 6; 
    * x = 1, y = 8. 



Your goal is to make both given integers equal zero simultaneously, i.e. x = y = 0. There are no other requirements. In particular, it is possible to move from x=1, y=0 to x=y=0.

Calculate the minimum amount of dollars you have to spend on it.

Input

The first line contains one integer t (1 ≤ t ≤ 100) — the number of testcases.

The first line of each test case contains two integers x and y (0 ≤ x, y ≤ 10^9).

The second line of each test case contains two integers a and b (1 ≤ a, b ≤ 10^9).

Output

For each test case print one integer — the minimum amount of dollars you have to spend.

Example

Input


2
1 3
391 555
0 0
9 4


Output


1337
0

Note

In the first test case you can perform the following sequence of operations: first, second, first. This way you spend 391 + 555 + 391 = 1337 dollars.

In the second test case both integers are equal to zero initially, so you dont' have to spend money.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {  

	public static void main (String[] args) throws Exception {
		  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		   int t =  Integer.parseInt(br.readLine());
		    for(int i =0;i<t;i++)
		    {
		    	  String  s2 =br.readLine();
		    	  String  [] ss2 = s2.split(" ");
		    	  int x = Integer.parseInt(ss2[0]);
		    	  int y =Integer.parseInt(ss2[1]);
		    	
		        String s1 =br.readLine();
		         String [] ss1 = s1.split(" ");
		       
		         int a = Integer.parseInt(ss1[0]);
		         int b =Integer.parseInt(ss1[1]);
		        long res ;
                 if(2*a<=b)
                 {   
                	 long count  =x+y;
                	   res   = (long) count*a;
                 } 
                 else 
                 {    
                	 int count =0;
                	   if(x>y){ 
                		   count  = y;
                		   res =  (long)count*b;
                		   res +=  (long)(x-y)*a;
                	   }
                	   else 
                	   {
                		   count =x;
                		   res = (long) count*b;
                		   res += (long) (y-x)*a;
                	   }
                	 
                 }
                 System.out.println(res);
		
		   	   
	  }
	}
	
	
}
	
