{"version":3,"sources":["webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js"],"names":["BN","utils","getNAF","getJSF","assert","BaseCurve","type","conf","this","p","red","prime","mont","zero","toRed","one","two","n","g","pointFromJSON","gRed","_wnafT1","Array","_wnafT2","_wnafT3","_wnafT4","_bitLength","bitLength","adjustCount","div","cmpn","redN","_maxwellTrick","BasePoint","curve","precomputed","module","exports","prototype","point","Error","validate","_fixedNafMul","k","doubles","_getDoubles","naf","I","step","repr","j","length","nafW","push","a","jpoint","b","i","mixedAdd","points","neg","add","toP","_wnafMul","w","nafPoints","_getNAFPoints","wnd","acc","dblp","z","_wnafMulAdd","defW","coeffs","len","jacobianResult","wndWidth","max","comb","y","cmp","toJ","redNeg","index","jsf","Math","ja","jb","tmp","eq","decodePoint","bytes","enc","toArray","byteLength","slice","pointFromX","encodeCompressed","encode","_encode","compact","x","getX","getY","isEven","concat","precompute","power","beta","_getBeta","_hasDoubles","ceil","dbl","res","r","elliptic","version","rand","curves","ec","eddsa","inherits","Base","EdwardsCurve","twisted","mOneA","extended","call","umod","m","c","c2","redSqr","d","dd","redAdd","fromRed","oneC","Point","t","zOne","redMul","redInvm","_mulA","num","_mulC","odd","x2","rhs","redSub","lhs","y2","redSqrt","isOdd","pointFromY","isInfinity","normalize","obj","fromJSON","inspect","toString","_extDbl","redIAdd","e","redISub","f","h","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mul","mulAdd","k1","k2","jmulAdd","zi","other","eqXToP","rx","xc","clone","iadd","base","short","edwards"],"mappings":"8FAEA,IAAIA,EAAK,EAAQ,QACbC,EAAQ,EAAQ,QAChBC,EAASD,EAAMC,OACfC,EAASF,EAAME,OACfC,EAASH,EAAMG,OAEnB,SAASC,EAAUC,EAAMC,GACvBC,KAAKF,KAAOA,EACZE,KAAKC,EAAI,IAAIT,EAAGO,EAAKE,EAAG,IAGxBD,KAAKE,IAAMH,EAAKI,MAAQX,EAAGU,IAAIH,EAAKI,OAASX,EAAGY,KAAKJ,KAAKC,GAG1DD,KAAKK,KAAO,IAAIb,EAAG,GAAGc,MAAMN,KAAKE,KACjCF,KAAKO,IAAM,IAAIf,EAAG,GAAGc,MAAMN,KAAKE,KAChCF,KAAKQ,IAAM,IAAIhB,EAAG,GAAGc,MAAMN,KAAKE,KAGhCF,KAAKS,EAAIV,EAAKU,GAAK,IAAIjB,EAAGO,EAAKU,EAAG,IAClCT,KAAKU,EAAIX,EAAKW,GAAKV,KAAKW,cAAcZ,EAAKW,EAAGX,EAAKa,MAGnDZ,KAAKa,QAAU,IAAIC,MAAM,GACzBd,KAAKe,QAAU,IAAID,MAAM,GACzBd,KAAKgB,QAAU,IAAIF,MAAM,GACzBd,KAAKiB,QAAU,IAAIH,MAAM,GAEzBd,KAAKkB,WAAalB,KAAKS,EAAIT,KAAKS,EAAEU,YAAc,EAGhD,IAAIC,EAAcpB,KAAKS,GAAKT,KAAKC,EAAEoB,IAAIrB,KAAKS,IACvCW,GAAeA,EAAYE,KAAK,KAAO,EAC1CtB,KAAKuB,KAAO,MAEZvB,KAAKwB,eAAgB,EACrBxB,KAAKuB,KAAOvB,KAAKS,EAAEH,MAAMN,KAAKE,MAmNlC,SAASuB,EAAUC,EAAO5B,GACxBE,KAAK0B,MAAQA,EACb1B,KAAKF,KAAOA,EACZE,KAAK2B,YAAc,KAnNrBC,EAAOC,QAAUhC,EAEjBA,EAAUiC,UAAUC,MAAQ,WAC1B,MAAM,IAAIC,MAAM,oBAGlBnC,EAAUiC,UAAUG,SAAW,WAC7B,MAAM,IAAID,MAAM,oBAGlBnC,EAAUiC,UAAUI,aAAe,SAAsBjC,EAAGkC,GAC1DvC,EAAOK,EAAE0B,aACT,IAAIS,EAAUnC,EAAEoC,cAEZC,EAAM5C,EAAOyC,EAAG,EAAGnC,KAAKkB,YACxBqB,GAAK,GAAMH,EAAQI,KAAO,IAAOJ,EAAQI,KAAO,GAAM,EAAI,EAAI,GAClED,GAAK,EAIL,IADA,IAAIE,EAAO,GACFC,EAAI,EAAGA,EAAIJ,EAAIK,OAAQD,GAAKN,EAAQI,KAAM,CACjD,IAAII,EAAO,EACX,IAAST,EAAIO,EAAIN,EAAQI,KAAO,EAAGL,GAAKO,EAAGP,IACzCS,GAAQA,GAAQ,GAAKN,EAAIH,GAC3BM,EAAKI,KAAKD,GAKZ,IAFA,IAAIE,EAAI9C,KAAK+C,OAAO,KAAM,KAAM,MAC5BC,EAAIhD,KAAK+C,OAAO,KAAM,KAAM,MACvBE,EAAIV,EAAGU,EAAI,EAAGA,IAAK,CAC1B,IAASP,EAAI,EAAGA,EAAID,EAAKE,OAAQD,IAAK,EAChCE,EAAOH,EAAKC,MACHO,EACXD,EAAIA,EAAEE,SAASd,EAAQe,OAAOT,IACvBE,KAAUK,IACjBD,EAAIA,EAAEE,SAASd,EAAQe,OAAOT,GAAGU,QAErCN,EAAIA,EAAEO,IAAIL,GAEZ,OAAOF,EAAEQ,OAGXzD,EAAUiC,UAAUyB,SAAW,SAAkBtD,EAAGkC,GAClD,IAAIqB,EAAI,EAGJC,EAAYxD,EAAEyD,cAAcF,GAChCA,EAAIC,EAAUE,IAQd,IAPA,IAAIA,EAAMF,EAAUN,OAGhBb,EAAM5C,EAAOyC,EAAGqB,EAAGxD,KAAKkB,YAGxB0C,EAAM5D,KAAK+C,OAAO,KAAM,KAAM,MACzBE,EAAIX,EAAIK,OAAS,EAAGM,GAAK,EAAGA,IAAK,CAExC,IAASd,EAAI,EAAGc,GAAK,GAAgB,IAAXX,EAAIW,GAAUA,IACtCd,IAKF,GAJIc,GAAK,GACPd,IACFyB,EAAMA,EAAIC,KAAK1B,GAEXc,EAAI,EACN,MACF,IAAIa,EAAIxB,EAAIW,GACZrD,EAAa,IAANkE,GAIHF,EAHW,WAAX3D,EAAEH,KAEAgE,EAAI,EACAF,EAAIV,SAASS,EAAKG,EAAI,GAAM,IAE5BF,EAAIV,SAASS,GAAMG,EAAI,GAAM,GAAGV,OAGpCU,EAAI,EACAF,EAAIP,IAAIM,EAAKG,EAAI,GAAM,IAEvBF,EAAIP,IAAIM,GAAMG,EAAI,GAAM,GAAGV,OAGvC,MAAkB,WAAXnD,EAAEH,KAAoB8D,EAAIN,MAAQM,GAG3C/D,EAAUiC,UAAUiC,YAAc,SAAqBC,EACAb,EACAc,EACAC,EACAC,GAOrD,IANA,IAAIC,EAAWpE,KAAKa,QAChB8C,EAAM3D,KAAKe,QACXuB,EAAMtC,KAAKgB,QAGXqD,EAAM,EACDpB,EAAI,EAAGA,EAAIiB,EAAKjB,IAAK,CAC5B,IACIQ,GADAxD,EAAIkD,EAAOF,IACGS,cAAcM,GAChCI,EAASnB,GAAKQ,EAAUE,IACxBA,EAAIV,GAAKQ,EAAUN,OAIrB,IAASF,EAAIiB,EAAM,EAAGjB,GAAK,EAAGA,GAAK,EAAG,CACpC,IAAIH,EAAIG,EAAI,EACRD,EAAIC,EACR,GAAoB,IAAhBmB,EAAStB,IAA4B,IAAhBsB,EAASpB,GAAlC,CAQA,IAAIsB,EAAO,CACTnB,EAAOL,GACP,KACA,KACAK,EAAOH,IAI4B,IAAjCG,EAAOL,GAAGyB,EAAEC,IAAIrB,EAAOH,GAAGuB,IAC5BD,EAAK,GAAKnB,EAAOL,GAAGO,IAAIF,EAAOH,IAC/BsB,EAAK,GAAKnB,EAAOL,GAAG2B,MAAMvB,SAASC,EAAOH,GAAGI,QACM,IAA1CD,EAAOL,GAAGyB,EAAEC,IAAIrB,EAAOH,GAAGuB,EAAEG,WACrCJ,EAAK,GAAKnB,EAAOL,GAAG2B,MAAMvB,SAASC,EAAOH,IAC1CsB,EAAK,GAAKnB,EAAOL,GAAGO,IAAIF,EAAOH,GAAGI,SAElCkB,EAAK,GAAKnB,EAAOL,GAAG2B,MAAMvB,SAASC,EAAOH,IAC1CsB,EAAK,GAAKnB,EAAOL,GAAG2B,MAAMvB,SAASC,EAAOH,GAAGI,QAG/C,IAAIuB,EAAQ,EACT,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,GAGEC,EAAMjF,EAAOsE,EAAOnB,GAAImB,EAAOjB,IACnCqB,EAAMQ,KAAKR,IAAIO,EAAI,GAAGjC,OAAQ0B,GAC9B/B,EAAIQ,GAAK,IAAIhC,MAAMuD,GACnB/B,EAAIU,GAAK,IAAIlC,MAAMuD,GACnB,IAAK,IAAI3B,EAAI,EAAGA,EAAI2B,EAAK3B,IAAK,CAC5B,IAAIoC,EAAiB,EAAZF,EAAI,GAAGlC,GACZqC,EAAiB,EAAZH,EAAI,GAAGlC,GAEhBJ,EAAIQ,GAAGJ,GAAKiC,EAAiB,GAAVG,EAAK,IAAUC,EAAK,IACvCzC,EAAIU,GAAGN,GAAK,EACZiB,EAAIb,GAAKwB,QAhDThC,EAAIQ,GAAKpD,EAAOuE,EAAOnB,GAAIsB,EAAStB,GAAI9C,KAAKkB,YAC7CoB,EAAIU,GAAKtD,EAAOuE,EAAOjB,GAAIoB,EAASpB,GAAIhD,KAAKkB,YAC7CmD,EAAMQ,KAAKR,IAAI/B,EAAIQ,GAAGH,OAAQ0B,GAC9BA,EAAMQ,KAAKR,IAAI/B,EAAIU,GAAGL,OAAQ0B,GAiDlC,IAAIT,EAAM5D,KAAK+C,OAAO,KAAM,KAAM,MAC9BiC,EAAMhF,KAAKiB,QACf,IAASgC,EAAIoB,EAAKpB,GAAK,EAAGA,IAAK,CAG7B,IAFA,IAAId,EAAI,EAEDc,GAAK,GAAG,CACb,IAAI5C,GAAO,EACX,IAASqC,EAAI,EAAGA,EAAIwB,EAAKxB,IACvBsC,EAAItC,GAAiB,EAAZJ,EAAII,GAAGO,GACD,IAAX+B,EAAItC,KACNrC,GAAO,GAEX,IAAKA,EACH,MACF8B,IACAc,IAKF,GAHIA,GAAK,GACPd,IACFyB,EAAMA,EAAIC,KAAK1B,GACXc,EAAI,EACN,MAEF,IAASP,EAAI,EAAGA,EAAIwB,EAAKxB,IAAK,CAC5B,IACIzC,EADA6D,EAAIkB,EAAItC,GAEF,IAANoB,IAEKA,EAAI,EACX7D,EAAI0D,EAAIjB,GAAIoB,EAAI,GAAM,GACfA,EAAI,IACX7D,EAAI0D,EAAIjB,IAAKoB,EAAI,GAAM,GAAGV,OAG1BQ,EADa,WAAX3D,EAAEH,KACE8D,EAAIV,SAASjD,GAEb2D,EAAIP,IAAIpD,KAIpB,IAASgD,EAAI,EAAGA,EAAIiB,EAAKjB,IACvBU,EAAIV,GAAK,KAEX,OAAIkB,EACKP,EAEAA,EAAIN,OAQfzD,EAAU4B,UAAYA,EAEtBA,EAAUK,UAAUmD,GAAK,WACvB,MAAM,IAAIjD,MAAM,oBAGlBP,EAAUK,UAAUG,SAAW,WAC7B,OAAOjC,KAAK0B,MAAMO,SAASjC,OAG7BH,EAAUiC,UAAUoD,YAAc,SAAqBC,EAAOC,GAC5DD,EAAQ1F,EAAM4F,QAAQF,EAAOC,GAE7B,IAAIlB,EAAMlE,KAAKC,EAAEqF,aAGjB,IAAkB,IAAbH,EAAM,IAA4B,IAAbA,EAAM,IAA4B,IAAbA,EAAM,KACjDA,EAAMxC,OAAS,GAAM,EAAIuB,EAS3B,OARiB,IAAbiB,EAAM,GACRvF,EAAOuF,EAAMA,EAAMxC,OAAS,GAAK,GAAM,GACnB,IAAbwC,EAAM,IACbvF,EAAOuF,EAAMA,EAAMxC,OAAS,GAAK,GAAM,GAE9B3C,KAAK+B,MAAMoD,EAAMI,MAAM,EAAG,EAAIrB,GACnBiB,EAAMI,MAAM,EAAIrB,EAAK,EAAI,EAAIA,IAG9C,IAAkB,IAAbiB,EAAM,IAA4B,IAAbA,EAAM,KAC3BA,EAAMxC,OAAS,IAAMuB,EAC/B,OAAOlE,KAAKwF,WAAWL,EAAMI,MAAM,EAAG,EAAIrB,GAAmB,IAAbiB,EAAM,IAExD,MAAM,IAAInD,MAAM,yBAGlBP,EAAUK,UAAU2D,iBAAmB,SAA0BL,GAC/D,OAAOpF,KAAK0F,OAAON,GAAK,IAG1B3D,EAAUK,UAAU6D,QAAU,SAAiBC,GAC7C,IAAI1B,EAAMlE,KAAK0B,MAAMzB,EAAEqF,aACnBO,EAAI7F,KAAK8F,OAAOT,QAAQ,KAAMnB,GAElC,OAAI0B,EACK,CAAE5F,KAAK+F,OAAOC,SAAW,EAAO,GAAOC,OAAOJ,GAEhD,CAAE,GAAOI,OAAOJ,EAAG7F,KAAK+F,OAAOV,QAAQ,KAAMnB,KAGtDzC,EAAUK,UAAU4D,OAAS,SAAgBN,EAAKQ,GAChD,OAAOnG,EAAMiG,OAAO1F,KAAK2F,QAAQC,GAAUR,IAG7C3D,EAAUK,UAAUoE,WAAa,SAAoBC,GACnD,GAAInG,KAAK2B,YACP,OAAO3B,KAET,IAAI2B,EAAc,CAChBS,QAAS,KACTE,IAAK,KACL8D,KAAM,MAOR,OALAzE,EAAYW,IAAMtC,KAAK0D,cAAc,GACrC/B,EAAYS,QAAUpC,KAAKqC,YAAY,EAAG8D,GAC1CxE,EAAYyE,KAAOpG,KAAKqG,WACxBrG,KAAK2B,YAAcA,EAEZ3B,MAGTyB,EAAUK,UAAUwE,YAAc,SAAqBnE,GACrD,IAAKnC,KAAK2B,YACR,OAAO,EAET,IAAIS,EAAUpC,KAAK2B,YAAYS,QAC/B,QAAKA,GAGEA,EAAQe,OAAOR,QAAUkC,KAAK0B,MAAMpE,EAAEhB,YAAc,GAAKiB,EAAQI,OAG1Ef,EAAUK,UAAUO,YAAc,SAAqBG,EAAM2D,GAC3D,GAAInG,KAAK2B,aAAe3B,KAAK2B,YAAYS,QACvC,OAAOpC,KAAK2B,YAAYS,QAI1B,IAFA,IAAIA,EAAU,CAAEpC,MACZ4D,EAAM5D,KACDiD,EAAI,EAAGA,EAAIkD,EAAOlD,GAAKT,EAAM,CACpC,IAAK,IAAIE,EAAI,EAAGA,EAAIF,EAAME,IACxBkB,EAAMA,EAAI4C,MACZpE,EAAQS,KAAKe,GAEf,MAAO,CACLpB,KAAMA,EACNW,OAAQf,IAIZX,EAAUK,UAAU4B,cAAgB,SAAuBC,GACzD,GAAI3D,KAAK2B,aAAe3B,KAAK2B,YAAYW,IACvC,OAAOtC,KAAK2B,YAAYW,IAK1B,IAHA,IAAImE,EAAM,CAAEzG,MACRqE,GAAO,GAAKV,GAAO,EACnB6C,EAAc,IAARnC,EAAY,KAAOrE,KAAKwG,MACzBvD,EAAI,EAAGA,EAAIoB,EAAKpB,IACvBwD,EAAIxD,GAAKwD,EAAIxD,EAAI,GAAGI,IAAImD,GAC1B,MAAO,CACL7C,IAAKA,EACLR,OAAQsD,IAIZhF,EAAUK,UAAUuE,SAAW,WAC7B,OAAO,MAGT5E,EAAUK,UAAU+B,KAAO,SAAc1B,GAEvC,IADA,IAAIuE,EAAI1G,KACCiD,EAAI,EAAGA,EAAId,EAAGc,IACrByD,EAAIA,EAAEF,MACR,OAAOE,I,kCCpXT,IAAIC,EAAW9E,EAEf8E,EAASC,QAAU,EAAQ,QAAmBA,QAC9CD,EAASlH,MAAQ,EAAQ,QACzBkH,EAASE,KAAO,EAAQ,QACxBF,EAASjF,MAAQ,EAAQ,QACzBiF,EAASG,OAAS,EAAQ,QAG1BH,EAASI,GAAK,EAAQ,QACtBJ,EAASK,MAAQ,EAAQ,S,oCCVzB,IAAIvH,EAAQ,EAAQ,QAChBD,EAAK,EAAQ,QACbyH,EAAW,EAAQ,QACnBC,EAAO,EAAQ,QAEftH,EAASH,EAAMG,OAEnB,SAASuH,EAAapH,GAEpBC,KAAKoH,QAA2B,IAAP,EAATrH,EAAK+C,GACrB9C,KAAKqH,MAAQrH,KAAKoH,UAA6B,IAAR,EAATrH,EAAK+C,GACnC9C,KAAKsH,SAAWtH,KAAKqH,MAErBH,EAAKK,KAAKvH,KAAM,UAAWD,GAE3BC,KAAK8C,EAAI,IAAItD,EAAGO,EAAK+C,EAAG,IAAI0E,KAAKxH,KAAKE,IAAIuH,GAC1CzH,KAAK8C,EAAI9C,KAAK8C,EAAExC,MAAMN,KAAKE,KAC3BF,KAAK0H,EAAI,IAAIlI,EAAGO,EAAK2H,EAAG,IAAIpH,MAAMN,KAAKE,KACvCF,KAAK2H,GAAK3H,KAAK0H,EAAEE,SACjB5H,KAAK6H,EAAI,IAAIrI,EAAGO,EAAK8H,EAAG,IAAIvH,MAAMN,KAAKE,KACvCF,KAAK8H,GAAK9H,KAAK6H,EAAEE,OAAO/H,KAAK6H,GAE7BjI,GAAQI,KAAKoH,SAAwC,IAA7BpH,KAAK0H,EAAEM,UAAU1G,KAAK,IAC9CtB,KAAKiI,KAAwB,IAAP,EAATlI,EAAK2H,GAwFpB,SAASQ,EAAMxG,EAAOmE,EAAGtB,EAAGT,EAAGqE,GAC7BjB,EAAKzF,UAAU8F,KAAKvH,KAAM0B,EAAO,cACvB,OAANmE,GAAoB,OAANtB,GAAoB,OAANT,GAC9B9D,KAAK6F,EAAI7F,KAAK0B,MAAMrB,KACpBL,KAAKuE,EAAIvE,KAAK0B,MAAMnB,IACpBP,KAAK8D,EAAI9D,KAAK0B,MAAMnB,IACpBP,KAAKmI,EAAInI,KAAK0B,MAAMrB,KACpBL,KAAKoI,MAAO,IAEZpI,KAAK6F,EAAI,IAAIrG,EAAGqG,EAAG,IACnB7F,KAAKuE,EAAI,IAAI/E,EAAG+E,EAAG,IACnBvE,KAAK8D,EAAIA,EAAI,IAAItE,EAAGsE,EAAG,IAAM9D,KAAK0B,MAAMnB,IACxCP,KAAKmI,EAAIA,GAAK,IAAI3I,EAAG2I,EAAG,IACnBnI,KAAK6F,EAAE3F,MACVF,KAAK6F,EAAI7F,KAAK6F,EAAEvF,MAAMN,KAAK0B,MAAMxB,MAC9BF,KAAKuE,EAAErE,MACVF,KAAKuE,EAAIvE,KAAKuE,EAAEjE,MAAMN,KAAK0B,MAAMxB,MAC9BF,KAAK8D,EAAE5D,MACVF,KAAK8D,EAAI9D,KAAK8D,EAAExD,MAAMN,KAAK0B,MAAMxB,MAC/BF,KAAKmI,IAAMnI,KAAKmI,EAAEjI,MACpBF,KAAKmI,EAAInI,KAAKmI,EAAE7H,MAAMN,KAAK0B,MAAMxB,MACnCF,KAAKoI,KAAOpI,KAAK8D,IAAM9D,KAAK0B,MAAMnB,IAG9BP,KAAK0B,MAAM4F,WAAatH,KAAKmI,IAC/BnI,KAAKmI,EAAInI,KAAK6F,EAAEwC,OAAOrI,KAAKuE,GACvBvE,KAAKoI,OACRpI,KAAKmI,EAAInI,KAAKmI,EAAEE,OAAOrI,KAAK8D,EAAEwE,cAjHtCrB,EAASE,EAAcD,GACvBtF,EAAOC,QAAUsF,EAEjBA,EAAarF,UAAUyG,MAAQ,SAAeC,GAC5C,OAAIxI,KAAKqH,MACAmB,EAAI9D,SAEJ1E,KAAK8C,EAAEuF,OAAOG,IAGzBrB,EAAarF,UAAU2G,MAAQ,SAAeD,GAC5C,OAAIxI,KAAKiI,KACAO,EAEAxI,KAAK0H,EAAEW,OAAOG,IAIzBrB,EAAarF,UAAUiB,OAAS,SAAgB8C,EAAGtB,EAAGT,EAAGqE,GACvD,OAAOnI,KAAK+B,MAAM8D,EAAGtB,EAAGT,EAAGqE,IAG7BhB,EAAarF,UAAU0D,WAAa,SAAoBK,EAAG6C,IACzD7C,EAAI,IAAIrG,EAAGqG,EAAG,KACP3F,MACL2F,EAAIA,EAAEvF,MAAMN,KAAKE,MAEnB,IAAIyI,EAAK9C,EAAE+B,SACPgB,EAAM5I,KAAK2H,GAAGkB,OAAO7I,KAAK8C,EAAEuF,OAAOM,IACnCG,EAAM9I,KAAKO,IAAIsI,OAAO7I,KAAK2H,GAAGU,OAAOrI,KAAK6H,GAAGQ,OAAOM,IAEpDI,EAAKH,EAAIP,OAAOS,EAAIR,WACpB/D,EAAIwE,EAAGC,UACX,GAA6C,IAAzCzE,EAAEqD,SAASiB,OAAOE,GAAIvE,IAAIxE,KAAKK,MACjC,MAAM,IAAI2B,MAAM,iBAElB,IAAIiH,EAAQ1E,EAAEyD,UAAUiB,QAIxB,OAHIP,IAAQO,IAAUP,GAAOO,KAC3B1E,EAAIA,EAAEG,UAED1E,KAAK+B,MAAM8D,EAAGtB,IAGvB4C,EAAarF,UAAUoH,WAAa,SAAoB3E,EAAGmE,IACzDnE,EAAI,IAAI/E,EAAG+E,EAAG,KACPrE,MACLqE,EAAIA,EAAEjE,MAAMN,KAAKE,MAGnB,IAAI6I,EAAKxE,EAAEqD,SACPkB,EAAMC,EAAGF,OAAO7I,KAAK2H,IACrBiB,EAAMG,EAAGV,OAAOrI,KAAK6H,GAAGQ,OAAOrI,KAAK2H,IAAIkB,OAAO7I,KAAK8C,GACpD6F,EAAKG,EAAIT,OAAOO,EAAIN,WAExB,GAA0B,IAAtBK,EAAGnE,IAAIxE,KAAKK,MAAa,CAC3B,GAAIqI,EACF,MAAM,IAAI1G,MAAM,iBAEhB,OAAOhC,KAAK+B,MAAM/B,KAAKK,KAAMkE,GAGjC,IAAIsB,EAAI8C,EAAGK,UACX,GAA6C,IAAzCnD,EAAE+B,SAASiB,OAAOF,GAAInE,IAAIxE,KAAKK,MACjC,MAAM,IAAI2B,MAAM,iBAKlB,OAHI6D,EAAEmC,UAAUiB,UAAYP,IAC1B7C,EAAIA,EAAEnB,UAED1E,KAAK+B,MAAM8D,EAAGtB,IAGvB4C,EAAarF,UAAUG,SAAW,SAAkBF,GAClD,GAAIA,EAAMoH,aACR,OAAO,EAGTpH,EAAMqH,YAEN,IAAIT,EAAK5G,EAAM8D,EAAE+B,SACbmB,EAAKhH,EAAMwC,EAAEqD,SACbkB,EAAMH,EAAGN,OAAOrI,KAAK8C,GAAGiF,OAAOgB,GAC/BH,EAAM5I,KAAK2H,GAAGU,OAAOrI,KAAKO,IAAIwH,OAAO/H,KAAK6H,EAAEQ,OAAOM,GAAIN,OAAOU,KAElE,OAAwB,IAAjBD,EAAItE,IAAIoE,IAkCjB3B,EAASiB,EAAOhB,EAAKzF,WAErB0F,EAAarF,UAAUnB,cAAgB,SAAuB0I,GAC5D,OAAOnB,EAAMoB,SAAStJ,KAAMqJ,IAG9BlC,EAAarF,UAAUC,MAAQ,SAAe8D,EAAGtB,EAAGT,EAAGqE,GACrD,OAAO,IAAID,EAAMlI,KAAM6F,EAAGtB,EAAGT,EAAGqE,IAGlCD,EAAMoB,SAAW,SAAkB5H,EAAO2H,GACxC,OAAO,IAAInB,EAAMxG,EAAO2H,EAAI,GAAIA,EAAI,GAAIA,EAAI,KAG9CnB,EAAMpG,UAAUyH,QAAU,WACxB,OAAIvJ,KAAKmJ,aACA,sBACF,gBAAkBnJ,KAAK6F,EAAEmC,UAAUwB,SAAS,GAAI,GACnD,OAASxJ,KAAKuE,EAAEyD,UAAUwB,SAAS,GAAI,GACvC,OAASxJ,KAAK8D,EAAEkE,UAAUwB,SAAS,GAAI,GAAK,KAGlDtB,EAAMpG,UAAUqH,WAAa,WAE3B,OAA0B,IAAnBnJ,KAAK6F,EAAEvE,KAAK,KACO,IAAvBtB,KAAKuE,EAAEC,IAAIxE,KAAK8D,IAChB9D,KAAKoI,MAAqC,IAA7BpI,KAAKuE,EAAEC,IAAIxE,KAAK0B,MAAMgG,KAGxCQ,EAAMpG,UAAU2H,QAAU,WAMxB,IAAI3G,EAAI9C,KAAK6F,EAAE+B,SAEX5E,EAAIhD,KAAKuE,EAAEqD,SAEXF,EAAI1H,KAAK8D,EAAE8D,SACfF,EAAIA,EAAEgC,QAAQhC,GAEd,IAAIG,EAAI7H,KAAK0B,MAAM6G,MAAMzF,GAErB6G,EAAI3J,KAAK6F,EAAEkC,OAAO/H,KAAKuE,GAAGqD,SAASgC,QAAQ9G,GAAG8G,QAAQ5G,GAEtDtC,EAAImH,EAAEE,OAAO/E,GAEb6G,EAAInJ,EAAEmI,OAAOnB,GAEboC,EAAIjC,EAAEgB,OAAO7F,GAEb+G,EAAKJ,EAAEtB,OAAOwB,GAEdG,EAAKtJ,EAAE2H,OAAOyB,GAEdG,EAAKN,EAAEtB,OAAOyB,GAEdI,EAAKL,EAAExB,OAAO3H,GAClB,OAAOV,KAAK0B,MAAMK,MAAMgI,EAAIC,EAAIE,EAAID,IAGtC/B,EAAMpG,UAAUqI,SAAW,WAQzB,IAMIJ,EACAC,EACAE,EARAlH,EAAIhD,KAAK6F,EAAEkC,OAAO/H,KAAKuE,GAAGqD,SAE1BF,EAAI1H,KAAK6F,EAAE+B,SAEXC,EAAI7H,KAAKuE,EAAEqD,SAKf,GAAI5H,KAAK0B,MAAM0F,QAAS,CAEtB,IAEIyC,GAFAF,EAAI3J,KAAK0B,MAAM6G,MAAMb,IAEfK,OAAOF,GACjB,GAAI7H,KAAKoI,KAEP2B,EAAK/G,EAAE6F,OAAOnB,GAAGmB,OAAOhB,GAAGQ,OAAOwB,EAAEhB,OAAO7I,KAAK0B,MAAMlB,MAEtDwJ,EAAKH,EAAExB,OAAOsB,EAAEd,OAAOhB,IAEvBqC,EAAKL,EAAEjC,SAASiB,OAAOgB,GAAGhB,OAAOgB,OAC5B,CAEL,IAAIC,EAAI9J,KAAK8D,EAAE8D,SAEXlF,EAAImH,EAAEhB,OAAOiB,GAAGF,QAAQE,GAE5BC,EAAK/G,EAAE6F,OAAOnB,GAAGkC,QAAQ/B,GAAGQ,OAAO3F,GAEnCsH,EAAKH,EAAExB,OAAOsB,EAAEd,OAAOhB,IAEvBqC,EAAKL,EAAExB,OAAO3F,QAEX,CAEL,IAAIiH,EAAIjC,EAAEK,OAAOF,GAEbiC,EAAI9J,KAAK0B,MAAM+G,MAAMzI,KAAK8D,GAAG8D,SAE7BlF,EAAIiH,EAAEd,OAAOiB,GAAGjB,OAAOiB,GAE3BC,EAAK/J,KAAK0B,MAAM+G,MAAMzF,EAAE4G,QAAQD,IAAItB,OAAO3F,GAE3CsH,EAAKhK,KAAK0B,MAAM+G,MAAMkB,GAAGtB,OAAOX,EAAEkC,QAAQ/B,IAE1CqC,EAAKP,EAAEtB,OAAO3F,GAEhB,OAAO1C,KAAK0B,MAAMK,MAAMgI,EAAIC,EAAIE,IAGlChC,EAAMpG,UAAU0E,IAAM,WACpB,OAAIxG,KAAKmJ,aACAnJ,KAGLA,KAAK0B,MAAM4F,SACNtH,KAAKyJ,UAELzJ,KAAKmK,YAGhBjC,EAAMpG,UAAUsI,QAAU,SAAiBnK,GAMzC,IAAI6C,EAAI9C,KAAKuE,EAAEsE,OAAO7I,KAAK6F,GAAGwC,OAAOpI,EAAEsE,EAAEsE,OAAO5I,EAAE4F,IAE9C7C,EAAIhD,KAAKuE,EAAEwD,OAAO/H,KAAK6F,GAAGwC,OAAOpI,EAAEsE,EAAEwD,OAAO9H,EAAE4F,IAE9C6B,EAAI1H,KAAKmI,EAAEE,OAAOrI,KAAK0B,MAAMoG,IAAIO,OAAOpI,EAAEkI,GAE1CN,EAAI7H,KAAK8D,EAAEuE,OAAOpI,EAAE6D,EAAEiE,OAAO9H,EAAE6D,IAE/B6F,EAAI3G,EAAE6F,OAAO/F,GAEb+G,EAAIhC,EAAEgB,OAAOnB,GAEbhH,EAAImH,EAAEE,OAAOL,GAEboC,EAAI9G,EAAE+E,OAAOjF,GAEbiH,EAAKJ,EAAEtB,OAAOwB,GAEdG,EAAKtJ,EAAE2H,OAAOyB,GAEdG,EAAKN,EAAEtB,OAAOyB,GAEdI,EAAKL,EAAExB,OAAO3H,GAClB,OAAOV,KAAK0B,MAAMK,MAAMgI,EAAIC,EAAIE,EAAID,IAGtC/B,EAAMpG,UAAUuI,SAAW,SAAkBpK,GAO3C,IAgBI+J,EACAE,EAjBApH,EAAI9C,KAAK8D,EAAEuE,OAAOpI,EAAE6D,GAEpBd,EAAIF,EAAE8E,SAENF,EAAI1H,KAAK6F,EAAEwC,OAAOpI,EAAE4F,GAEpBgC,EAAI7H,KAAKuE,EAAE8D,OAAOpI,EAAEsE,GAEpBoF,EAAI3J,KAAK0B,MAAMmG,EAAEQ,OAAOX,GAAGW,OAAOR,GAElCgC,EAAI7G,EAAE6F,OAAOc,GAEbjJ,EAAIsC,EAAE+E,OAAO4B,GAEb3E,EAAMhF,KAAK6F,EAAEkC,OAAO/H,KAAKuE,GAAG8D,OAAOpI,EAAE4F,EAAEkC,OAAO9H,EAAEsE,IAAIqF,QAAQlC,GAAGkC,QAAQ/B,GACvEkC,EAAKjH,EAAEuF,OAAOwB,GAAGxB,OAAOrD,GAc5B,OAXIhF,KAAK0B,MAAM0F,SAEb4C,EAAKlH,EAAEuF,OAAO3H,GAAG2H,OAAOR,EAAEgB,OAAO7I,KAAK0B,MAAM6G,MAAMb,KAElDwC,EAAKL,EAAExB,OAAO3H,KAGdsJ,EAAKlH,EAAEuF,OAAO3H,GAAG2H,OAAOR,EAAEgB,OAAOnB,IAEjCwC,EAAKlK,KAAK0B,MAAM+G,MAAMoB,GAAGxB,OAAO3H,IAE3BV,KAAK0B,MAAMK,MAAMgI,EAAIC,EAAIE,IAGlChC,EAAMpG,UAAUuB,IAAM,SAAapD,GACjC,OAAID,KAAKmJ,aACAlJ,EACLA,EAAEkJ,aACGnJ,KAELA,KAAK0B,MAAM4F,SACNtH,KAAKoK,QAAQnK,GAEbD,KAAKqK,SAASpK,IAGzBiI,EAAMpG,UAAUwI,IAAM,SAAanI,GACjC,OAAInC,KAAKsG,YAAYnE,GACZnC,KAAK0B,MAAMQ,aAAalC,KAAMmC,GAE9BnC,KAAK0B,MAAM6B,SAASvD,KAAMmC,IAGrC+F,EAAMpG,UAAUyI,OAAS,SAAgBC,EAAIvK,EAAGwK,GAC9C,OAAOzK,KAAK0B,MAAMqC,YAAY,EAAG,CAAE/D,KAAMC,GAAK,CAAEuK,EAAIC,GAAM,GAAG,IAG/DvC,EAAMpG,UAAU4I,QAAU,SAAiBF,EAAIvK,EAAGwK,GAChD,OAAOzK,KAAK0B,MAAMqC,YAAY,EAAG,CAAE/D,KAAMC,GAAK,CAAEuK,EAAIC,GAAM,GAAG,IAG/DvC,EAAMpG,UAAUsH,UAAY,WAC1B,GAAIpJ,KAAKoI,KACP,OAAOpI,KAGT,IAAI2K,EAAK3K,KAAK8D,EAAEwE,UAOhB,OANAtI,KAAK6F,EAAI7F,KAAK6F,EAAEwC,OAAOsC,GACvB3K,KAAKuE,EAAIvE,KAAKuE,EAAE8D,OAAOsC,GACnB3K,KAAKmI,IACPnI,KAAKmI,EAAInI,KAAKmI,EAAEE,OAAOsC,IACzB3K,KAAK8D,EAAI9D,KAAK0B,MAAMnB,IACpBP,KAAKoI,MAAO,EACLpI,MAGTkI,EAAMpG,UAAUsB,IAAM,WACpB,OAAOpD,KAAK0B,MAAMK,MAAM/B,KAAK6F,EAAEnB,SACP1E,KAAKuE,EACLvE,KAAK8D,EACL9D,KAAKmI,GAAKnI,KAAKmI,EAAEzD,WAG3CwD,EAAMpG,UAAUgE,KAAO,WAErB,OADA9F,KAAKoJ,YACEpJ,KAAK6F,EAAEmC,WAGhBE,EAAMpG,UAAUiE,KAAO,WAErB,OADA/F,KAAKoJ,YACEpJ,KAAKuE,EAAEyD,WAGhBE,EAAMpG,UAAUmD,GAAK,SAAY2F,GAC/B,OAAO5K,OAAS4K,GACyB,IAAlC5K,KAAK8F,OAAOtB,IAAIoG,EAAM9E,SACY,IAAlC9F,KAAK+F,OAAOvB,IAAIoG,EAAM7E,SAG/BmC,EAAMpG,UAAU+I,OAAS,SAAgBhF,GACvC,IAAIiF,EAAKjF,EAAEvF,MAAMN,KAAK0B,MAAMxB,KAAKmI,OAAOrI,KAAK8D,GAC7C,GAAuB,IAAnB9D,KAAK6F,EAAErB,IAAIsG,GACb,OAAO,EAIT,IAFA,IAAIC,EAAKlF,EAAEmF,QACP7C,EAAInI,KAAK0B,MAAMH,KAAK8G,OAAOrI,KAAK8D,KAC3B,CAEP,GADAiH,EAAGE,KAAKjL,KAAK0B,MAAMjB,GACfsK,EAAGvG,IAAIxE,KAAK0B,MAAMzB,IAAM,EAC1B,OAAO,EAGT,GADA6K,EAAGpB,QAAQvB,GACY,IAAnBnI,KAAK6F,EAAErB,IAAIsG,GACb,OAAO,IAKb5C,EAAMpG,UAAUwB,IAAM4E,EAAMpG,UAAUsH,UACtClB,EAAMpG,UAAUoB,SAAWgF,EAAMpG,UAAUuB,K,oCC7a3C,IAAI3B,EAAQG,EAEZH,EAAMwJ,KAAO,EAAQ,QACrBxJ,EAAMyJ,MAAQ,EAAQ,QACtBzJ,EAAMtB,KAAO,EAAQ,QACrBsB,EAAM0J,QAAU,EAAQ","file":"vendor.elliptic~19e3614f.e8f5b4dc0ff7492d6775.chunk.js","sourcesContent":["'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n"],"sourceRoot":""}