!~r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None"#.7=>?EHMSX_k None"#.7=>?EHMSX_k pairingISum all the elements of some container according to its group structure.     None"#.7=>?EHMSX_kj pairingElliptic curve coefficentpairingElliptic curve coefficentpairingEmbedding degreepairing&BN parameter that determines the primepairing0Characteristic of the finite fields we work withpairingxOrder of elliptic curve E(Fq) G1, and therefore also the characteristic of the prime field we choose our exponents frompairingNParameter used to define the twisted curve over Fq, with xi = xi_a + xi_b * ipairingNParameter used to define the twisted curve over Fq, with xi = xi_a + xi_b * ipairingQuadratic nonresidue in FqNone"#.7=>?EHMSX_k"pairing%Picks the postive square root only |None"#.7=>?EHMSX_klm!pairing Prime field with characteristic _r pairingUse new instead of this constructor!pairingTurn an integer into an Fr( number, should be used instead of the Fr constructor.)pairingCompute primitive roots of unity for 2^0, 2^1, ..., 2^28. (2^28 is the largest power of two that divides _r - 1, therefore there are no primitive roots of unity for higher powers of 2 in Fr.))pairingCexponent of 2 for which we want to get the primitive root of unity  !"#$%&'()*  !$%"#&'()*None"#.7=>?EHMSX_k'r4pairing Prime field with characteristic _q5pairingUse new instead of this constructor6pairingTurn an integer into an Fq( number, should be used instead of the Fq constructor.8pairingQuadratic non-residue9pairingMultiplicative inverse:pairingAdditive identity;pairingMultiplicative identity 456789:;<=> 4569:;87<=>None"#.79=>?EHMSX_klm41 JpairingQuadratic extension of Fq defined as  Fq[u]/x^2 + 1KpairingUse new instead of this contructorNpairingnew x y creates a value representing  x + y * u OpairingCubic non-residue in Fq2PpairingMultiplicative identityQpairingAdditive identityRpairingMultiplication by a scalar in FqSpairing Multiply by xiTpairing Divide by xiUpairingSquaring operationWpairingMultiplicative inverseXpairing ConjugationYpairing$Square root of Fq2 are specified by  $https://eprint.iacr.org/2012/685.pdf,% Algorithm 9 with lots of help from  Hhttps://docs.rs/pairing/0.14.1/src/pairing/bls12_381/fq2.rs.html#162-222q This implementation appears to return the larger square root so check the return value and negate as necessaryJKLMNOPQRSTUVWXYZ[JKLMNRWPQXUYV[STOZNone"#.79=>?EHMSX_klm:epairing/Field extension defined as Fq2[v]/v^3 - (9 + u)jpairingCreate a new value in Fq6 , should be used instead of the Fq6 constructor.kpairingAdditive identitylpairingMultiplicative identitympairingSquaring operationnpairing Multiply by xi (cubic nonresidue in Fq2) and reorder coefficientsopairingMultiplicative inverse efghijklmnop efghijolkmnpNone"#.79=>?EHMSX_klmC xpairing)Field extension defined as Fq6[w]/w^2 - vypairingUse new instead of this constructor|pairingCreate a new value in Fq120 by providing a list of twelve coefficients in Fq , should be used instead of the Fq12 constructor.}pairingDeconstruct a value in Fq12' into a list of twelve coefficients in Fq.~pairingMultiplicative identitypairingAdditive identitypairingMultiplicative inversepairing ConjugationpairingIterated Frobenius automorphism xyz{|}~ xyz{|}~ None"#.479=>?EHMSX_kJpairingPoints on a curve over a field aE represented as either affine coordinates or as a point at infinity.pairing Affine pointpairingPoint at infinitypairinghPoint addition, provides a group structure on an elliptic curve with the point at infinity as its unit.pairingPoint doublingpairing#Negation (flipping the y component)pairingMultiplication by a scalar None"#.7=>?EHMSX_kNpairingCJacobian coordinates for points on an elliptic curve over a field a.pairing2Convert affine coordinates to Jacobian coordinatespairing2Convert Jacobian coordinates to affine coordinates None"#.7=>?EHMSX_kV5pairingEncodes a given byte string to a point on the BN curve. The implemenation uses the Shallue van de Woestijne encoding to BN curves as specifed in Section 6 of Indifferentiable Hashing to Barreto Naehrig Curves by Pierre-Alain Fouque and Mehdi Tibouchi. This function evaluates an empty bytestring or one that contains NUL to zero which according to Definiton 2 of the paper is sent to an arbitrary point on the curve None"#.7=>?EHMSX_k]pairing9The serialisation may fail if y cannot be obtained from xpairingPoint serialisation using  :https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html It is unclear if 02 is smallest y or not so the following is used in the first 2 bytes 01 - Point at infinity 02 - Compressed repr i.e. x only but use smallest y on decode 03 - Compressed repr i.e. x only but use largest y on decode 04 -- Uncompressed repr i.e. x & y None"#.7=>?EHMSX_kg8 pairingKGT is subgroup of _r-th roots of unity of the multiplicative group of Fq12pairing+G2 is E'(Fq2) defined by y^2 = x^3 + b / xipairing$G1 is E(Fq) defined by y^2 = x^3 + bpairingGenerator for G1pairingGenerator for G2pairingFTest whether a value in G1 satisfies the corresponding curve equationpairingFTest whether a value in G2 satisfies the corresponding curve equationpairing.Test whether a value is an _r-th root of unitypairingParameter for curve on Fqpairing$Parameter for twisted curve over Fq2    None"#.7=>?EHMSX_kqpairing9Optimal Ate pairing (including final exponentiation step)pairing9Optimal Ate pairing without the final exponentiation steppairingXBinary expansion (missing the most-significant bit) representing the number 6 * _t + 2. Z29793968203157093288 = 0b11001110101111001011100000011100110111110011101100011101110101000pairing*Miller loop with precomputed values for G2pairingQIterated frobenius morphisms on fields of characteristic _q, implemented naivelypairing5Naive implementation of the final exponentiation steppairing8A faster way of performing the final exponentiation step !"#$%&'()*+,-.//01234!56789:;<=>?@ABB0CDEFGH!IJKLMNOPQRSTUUVW0XYZ[\]^_`ab!cdefghijklmmnop0qrs\t!uvwxyz{||}~0!          $pairing-0.3.1-JhhvluXyNup3CB27ybng3mPairing.ByteReprPairing.CyclicGroupPairing.Params Pairing.Fr Pairing.Fq Pairing.Fq2 Pairing.Fq6 Pairing.Fq12 Pairing.PointPairing.Jacobian Pairing.HashPairing.Serialize Pairing.GroupPairing.PairingPairing.ModularByteReprmkReprfromRepr reprLengthtoBytes toPaddedBytesfromBytesToIntegerValidateisValidElementFromXyFromX isLargestY CyclicGroup generatororderexpninverserandom AsInteger asIntegersumG$fAsIntegerInteger$fAsIntegerInt_b_a_k_q_r_xiA_xiB_nqrFrnewfrAddfrNegfrInvfrPow isRootOfUnityisPrimitiveRootOfUnityprimitiveRootOfUnityprecompRootOfUnity $fPrettyFr$fFractionalFr$fNumFr $fAsIntegerFr$fShowFr$fEqFr$fOrdFr$fBitsFr $fNFDataFrFqfqPowfqNqrfqInvfqZerofqOnefqSqrtfqYforX $fByteReprFq $fFromXFq$fFractionalFq$fNumFq $fAsIntegerFq$fShowFq$fEqFq$fBitsFq $fGenericFq $fNFDataFq$fOrdFqFq2fq2xfq2yxifq2onefq2zero fq2scalarMulmulXidivXifq2sqrfq2powfq2invfq2conjfq2sqrtfq2YforX $fByteReprFq2 $fFromXFq2$fOrdFq2$fFractionalFq2$fNumFq2$fEqFq2 $fShowFq2 $fGenericFq2 $fNFDataFq2Fq6fq6xfq6yfq6zfq6zerofq6onefq6sqrfq6inv $fByteReprFq6$fFractionalFq6$fNumFq6$fEqFq6 $fShowFq6 $fGenericFq6 $fNFDataFq6Fq12fq12xfq12y deconstructfq12onefq12zerofq12invfq12conj fq12frobenius$fByteReprFq12$fFractionalFq12 $fNumFq12$fEqFq12 $fShowFq12 $fGenericFq12 $fNFDataFq12PointInfinitygAddgDoublegNeggMul $fEqPoint $fOrdPoint $fShowPoint$fFunctorPoint$fGenericPoint $fNFDataPointJPoint toJacobian fromJacobianswEncBNToUncompressedFormserializeUncompressedToCompressedFormserializeCompressedheaderelementToUncompressedFormtoUncompressedFormtoCompressedFormpointFromByteStringprocessCompressed buildPointgetCompressionTypeelementReadUncompressedparseBSGTG2G1g1g2 isOnCurveG1 isOnCurveG2isInGTb1b2hashToG1 groupFromXfromByteStringG1fromByteStringG2fromByteStringGT$fArbitraryPoint$fArbitraryPoint0$fToUncompressedFormPoint$fToCompressedFormPoint$fValidatePoint$fCyclicGroupPoint $fMonoidPoint$fSemigroupPoint$fToUncompressedFormPoint0$fToCompressedFormPoint0$fValidatePoint0$fCyclicGroupPoint0$fMonoidPoint0$fSemigroupPoint0$fValidateFq12$fToUncompressedFormFq12$fCyclicGroupFq12 $fMonoidFq12$fSemigroupFq12reducedPairing atePairingateLoopCountBinaryfrobeniusNaivefinalExponentiationNaivefinalExponentiation$fShowEllCoeffs $fEqEllCoeffs_tsqrtOfwithModwithModMwithQwithQMwithRwithRMnewMod toIntegermodUnOpmodBinOp multInversemodUnOpM modUnOpMTupthreeModFourCongruenceisSquare bothSqrtOflegendre randomMod fromBytes ateMillerLoop