@ -3,7 +3,7 @@ use ark_ec::{ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     mnt4 ::MNT4Parameters , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     models ::{ ModelParameters ,   SWModelParameters } , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					use   ark_ff ::{ biginteger ::BigInteger768 ,   field_new } ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					use   ark_ff ::field_new ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					use   crate ::{ Fq ,   Fq2 ,   Fr ,   FQ_ZERO ,   G1_COEFF_A_NON_RESIDUE } ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -41,20 +41,7 @@ impl SWModelParameters for Parameters { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     const   COEFF_B : Fq2   =   field_new ! ( Fq2 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         FQ_ZERO , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         field_new ! ( Fq ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             15129916544657421551 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             11332543254671606602 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             11913830318987286849 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             13905314883394440110 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             16479690325073358448 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             14869098639251228898 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             10663986895980443550 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             10768989312009479656 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             9469728929095040349 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             4512954369775881939 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             8788997129423430122 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             459763387588954 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         ] ) ) , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         field_new ! ( Fq ,   "39196523001581428369576759982967177918859161321667605855515469914917622337081756705006832951954384669101573360625169461998308377011601613979275218690841934572954991361632773738259652003389826903175898479855893660378722437317212" ) 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     /// COFACTOR =
  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -78,20 +65,7 @@ impl SWModelParameters for Parameters { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     /// COFACTOR^(-1) mod r =
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     /// 102345604409665481004734934052318066391634848395005988700111949231215905051467807945653833683883449458834877235200
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     const   COFACTOR_INV : Fr   =   field_new ! ( Fr ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         1879390364380281898 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         7926794171490610432 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         6437239504245874253 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         16688141022047191858 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         17059416847145768464 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         15065047661241262516 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         16537575340937777321 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         3324411942044534547 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         3878293904770657570 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         18116939243856833744 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         7557533897589069385 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         78370361203778 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     ] ) ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     const   COFACTOR_INV : Fr   =   field_new ! ( Fr ,   "102345604409665481004734934052318066391634848395005988700111949231215905051467807945653833683883449458834877235200" ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     /// AFFINE_GENERATOR_COEFFS = (G2_GENERATOR_X, G2_GENERATOR_Y)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     const   AFFINE_GENERATOR_COEFFS : ( Self ::BaseField ,   Self ::BaseField )   = 
  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -113,65 +87,13 @@ const G2_GENERATOR_Y: Fq2 = field_new!(Fq2, G2_GENERATOR_Y_C0, G2_GENERATOR_Y_C1 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// Y = 39940152670760519653940320314827327941993141403708338666925204282084477074754642625849927569427860786384998614863651207257467076192649385174108085803168743803491780568503369317093191101779534035377266300185099318717465441820654,
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 17608637424964395737041291373756657139607306440193731804102457011726690702169238966996114255971643893157857311132388792357391583164125870757541009035041469463366528798593952884745987697403056488744603829437448927398468360797245,
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_X_C0 : Fq   =   field_new ! ( Fq ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     7263636080534048301 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     7643227961769035653 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     15787777614640869937 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     17661317895964274771 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     4142647779394287783 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     15064949873659932676 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     4579259080596351332 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     2207443675339702626 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     5738725620118622838 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     4338467638707299712 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     6558861849926282439 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     341078935870328 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					] ) ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_X_C0 : Fq   =   field_new ! ( Fq ,   "29483965110843144675703364744708836524643960105538608078862508397502447349913068434941060515343254862580437318493682762113105361632548148204806052114008731372757389645383891982211245013965175213456066452587869519098351487925167" ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_X_C1 : Fq   =   field_new ! ( Fq ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     13073882729051113867 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     195909455108318710 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     10527070038778509320 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     16605710222187477118 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     10442518358308209073 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     7776589986153052354 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     16034091384000651523 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     17429232381273855185 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     512853344493546034 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     7982076214836075255 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     3601416800138513610 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     399028695285184 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					] ) ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_X_C1 : Fq   =   field_new ! ( Fq ,   "19706011319630172391076079624799753948158506771222147486237995321925443331396169656568431378974558350664383559981183980668976846806019030432389169137953988990802000581078994008283967768348275973921598166274857631001635633631000" ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_Y_C0 : Fq   =   field_new ! ( Fq ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     4867672648970469422 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     2453112364260322863 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     11918672197974895143 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     3923647310180624143 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     12707123323825700670 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     15781895092544451511 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     17747112377690960911 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     16511994611001933567 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     15360620366665804029 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     10252080383738480571 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     5722654046339742760 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     316853130349807 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					] ) ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_Y_C0 : Fq   =   field_new ! ( Fq ,   "39940152670760519653940320314827327941993141403708338666925204282084477074754642625849927569427860786384998614863651207257467076192649385174108085803168743803491780568503369317093191101779534035377266300185099318717465441820654" ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#[ rustfmt::skip ] 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_Y_C1 : Fq   =   field_new ! ( Fq ,   BigInteger768 ( [ 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     17322957246732430708 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     11825815087694023697 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     7654216682602683900 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     13544637981229618042 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     17057060382219081849 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     4038731408172002692 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     6631723222530012253 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     10585926166286435412 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     16050667328028620117 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     16598483946296156500 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     11771818132648686020 , 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     1230430296095 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					] ) ) ; 
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pub   const   G2_GENERATOR_Y_C1 : Fq   =   field_new ! ( Fq ,   "17608637424964395737041291373756657139607306440193731804102457011726690702169238966996114255971643893157857311132388792357391583164125870757541009035041469463366528798593952884745987697403056488744603829437448927398468360797245" ) ;