{"version":3,"file":"static/chunks/pages/_app-9dfaac206e448e6d.js","mappings":"kbAGO,gBACP,2BACA,iCAEA,OADA,yBAkCA,cACA,IAJA,IAIA,mBACA,OALA,EAKA,iBALA,EAKA,aAJA,OAIA,OAJA,IAKA,CArCA,EACA,GACA,QACA,YACA,CAAK,CACL,CAOA,oBACA,MAHA,MAGA,GAHA,iBAGA,GAHA,YAAuF,MAGvF,SACA,WAKA,OAJA,aACA,iBACA,YAEA,CACA,CACA,kBACA,8CACA,OACA,WAKA,OAJA,aACA,kBACA,YAEA,CACA,0BAiBA,iBACA,gCACA,EAIA,aACA,aACA,8BACA,CAOA,OANA,4BACA,sBAEA,8BACA,eACA,EACA,CACA,CAAC,GACD,GACA,kBACA,YACA,CAAK,EAEE,GACP,SAjCA,kBAPA,IAQA,OARA,EAQA,iBARA,EAQA,aAPA,OAOA,OAPA,IAQA,EAgCA,QA/BA,kBAVA,IAWA,OAXA,EAWA,iBAXA,EAWA,aAVA,OAUA,OAVA,IAWA,CA8BA,mKC/EO,ECAI,EAwCJ,EOxCP,EAqIA,IPrIe,SAgDR,cACP,gBAAuB,EAAI,QAEpB,SAAS,EAAiB,GACjC,gBAAuB,EADU,QACN,CAEpB,SAAS,EAAe,GAC/B,gBAD+B,EACJ,OAEpB,CAFoB,QAEX,EAAa,GAC7B,cAD6B,EACN,EAAI,KAEpB,GAFoB,MAEX,EAAa,GAC7B,cAD6B,EACN,EAAI,KAEpB,GAFoB,MAEX,EAAe,GAC/B,gBAD+B,EACJ,MAC3B,CACO,CAFoB,QAEX,EAAe,GAC/B,gBAD+B,EACJ,OAEpB,CAFoB,QAEpB,KACP,gBAAuB,EAAI,MAEpB,EAFoB,OAEX,EAAY,GAC5B,gBAAuB,EAAI,IAEpB,IAFoB,KAEpB,KACP,kDACA,CACO,cACP,oDACA,CD/EA,aAEA,qEAEA,uCAEA,+CAEA,mDAEA,qDAEA,qDAEA,yDAEA,+DAEA,uDAEA,8DAEA,4EAEA,wEAEA,kFAEA,oFAEA,0EAEA,0EAEA,4FAKA,4FAEA,4EAKA,gFAIA,gFAEA,oDAEA,kCAEA,4CAEA,sDAEA,oCACA,CAAC,UAA8B,EC7D/B,YAIA,yBAIA,2BAIA,uBAIA,mBAIA,mBAIA,uBAIA,uBAKA,qBAIA,gBACA,CAAC,CAAE,IAAS,EAAI,GAAK,CAAd,CAEP,GAFgB,MAEhB,GACA,uBACA,0BACA,CAAC,YC3CM,qDCIP,YAAgC,IAAI,GAAG,IAAI,MAAM,IAAI,cAAc,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,WAAW,IAAI,6BCJ1J,EAAiB,wCC8B5B,qCACA,0BACA,4BACA,WACA,cACA,SA6BA,MA5BA,oBACA,mCAEA,qBACA,qCAEA,4BAoBA,MAlBA,oBACA,oCACA,qCAGA,QACA,oCAGA,WACA,qCAIA,oCACA,2BACA,0CAEA,EACA,CAAK,EACL,CACA,CACA,cACA,UACA,gBACA,OACA,kBACA,CACA,uBACA,SACA,OACA,yBACA,CACA,mBACA,SACA,OACA,oBACA,CACA,8BACA,UACA,OACA,qBACA,yBACA,CACA,wBACA,SACA,OACA,wBACA,CACA,mCACA,UACA,OACA,yBACA,yBACA,CACA,kBACA,SACA,OACA,mBACA,CACA,CACA,CAiCA,qBAEA,MADA,EAMA,CChJO,OACP,OACA,IACA,IACA,CACA,KACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,KACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,IACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,KACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,CACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,KACA,KACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,IACA,IACA,KACA,IACA,CACA,IACA,IACA,KACA,KACA,IACA,CACA,IACA,IACA,KACA,CACA,IACA,IACA,IACA,KACA,KACA,CACA,IACA,IACA,KACA,IACA,KACA,CACA,IACA,IACA,IACA,CACA,SACA,IACA,IACA,KACA,KACA,CACA,UACA,IACA,KACA,KACA,IACA,CACA,SACA,IACA,IACA,KACA,CACA,UACA,IACA,KACA,IACA,KACA,CACA,SACA,IACA,KACA,IACA,KACA,CACA,SACA,IACA,IACA,KACA,KACA,CACA,SACA,IACA,KACA,IACA,KACA,CACA,SACA,IACA,IACA,KACA,KACA,CACA,SACA,IACA,IACA,KACA,KACA,CACA,SACA,IACA,IACA,KACA,KACA,CACA,SACA,IACA,IACA,KACA,CACA,SACA,IACA,IACA,KACA,CACA,SACA,KACA,KACA,IACA,IACA,CACA,SACA,KACA,IACA,IACA,CACA,SACA,IACA,IACA,KACA,CACA,SACA,IACA,IACA,KACA,CACA,SACA,KACA,IACA,IACA,CACA,SACA,KACA,IACA,IACA,CACA,SACA,KACA,KACA,IACA,IACA,CACA,SACA,KACA,KACA,IACA,IACA,CACA,SACA,KACA,IACA,KACA,IACA,CACA,SACA,KACA,IACA,IACA,CACA,SACA,IACA,KACA,KACA,IACA,EEh4CA,wBAAwD,EAAqB,aAC7E,MAD6E,OAC7E,UAAqD,EAAqB,cAC1E,KAD0E,IAC1E,OACA,OAAa,cACb,CAGA,4DACA,yBACA,uBACA,iCACA,+BACA,6BAEA,SADA,cAEA,qBACA,YACA,0BACA,aACA,mBACA,6BACA,EAEA,KACA,IACA,gBAAwB,YAAY,IAAI,eAAe,WAOvD,wDACA,CACA,SACA,IACA,CACA,QAEA,gBACA,wBACA,EAEA,gBACA,gCACA,EACA,IACA,qBAEA,WAEA,QAMA,EAPA,KACA,IAA6B,mBAAuB,IACpD,kBAMA,IARA,IAIA,KACA,WACA,IAEA,MAEA,IADA,UACA,QACA,iDACA,GACA,QACA,uBACA,wDACA,CACA,QACA,EACA,EAEA,EACA,mBAEA,YAEA,QADA,KACA,IAAkD,EAAlD,EAAkD,OAAuB,KACzE,MADA,CACA,kBACA,MACA,CACA,QACA,EACA,IAEA,cACA,uBACA,EAEA,cACA,IAKA,EALA,WACA,oBAGA,sBAEA,gBACA,SACA,SACA,6BACA,QACA,EACA,8BACA,EACA,IAEA,YACA,oBACA,EAEA,YACA,sBACA,EACA,IAEA,YACA,kBACA,EAEA,YACA,sBACA,EAEA,gBACA,sBACA,CAGA,MAEA,gBAA4C,YAAY,IAAI,eAAe,WAC3E,gBAGA,IAFA,EAGA,OAFA,cAEA,YADA,OACA,qBACA,CACA,MAGA,gBAEA,IADA,WACA,CACA,IA62BA,EA72BA,SACA,qBA62BA,CADA,EA52BA,IA62BA,WACA,QACA,cACA,QACA,QACA,QACA,QACA,QACA,QACA,cACA,cACA,cACA,cACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,gBACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,kBACA,kBACA,UACA,UACA,UACA,kBACA,UACA,UACA,UACA,kBACA,kBACA,UACA,UACA,kBACA,kBACA,UACA,UACA,UACA,kBACA,UACA,UACA,kBACA,kBACA,kBACA,kBACA,kBACA,UACA,kBACA,UACA,kBACA,UACA,kBACA,UACA,kBACA,kBACA,kBACA,UACA,UACA,UACA,kBACA,kBACA,kBACA,UACA,UACA,UACA,UACA,kBACA,kBACA,iBACA,UACA,UACA,kBACA,UACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,UACA,kBACA,UACA,kBACA,kBACA,kBACA,UACA,mBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,oBACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,oBACA,oBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,WACA,oBACA,oBACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,WACA,oBACA,WACA,oBACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,WACA,oBACA,oBACA,oBACA,WACA,WACA,WACA,oBACA,oBACA,WACA,oBACA,oBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,oBACA,WACA,WACA,WACA,WACA,mBAnmCA,MAEA,UACA,eACA,CACA,wBACA,EAEA,IAAI,EAAM,WACV,gBACA,YAAkC,OAClC,eACA,eAA0B,0BAC1B,6BACA,qBACA,iDACA,mDAsyBA,OApyBA,6BACA,qBACA,4CAEA,iCACA,EACA,yCAEA,IADA,SACA,gBACA,kBACA,WAAkC,KAClC,0BACA,SACA,SAEA,aACA,MACA,YAAuC,IACvC,WAEA,WACA,qCACA,2BACA,YACA,QACA,KAA0B,EAAI,MAC9B,EAD8B,OAC9B,yBACA,CAAiB,CACjB,MACA,WACA,gBACA,kBASA,WACA,iBACA,mBACA,yBACA,SACA,SAEA,aACA,KACA,CACA,6BACA,SACA,SAEA,aACA,MAvBA,CACA,MAIA,kBAAsC,EAAS,oEAH/C,KAKA,CAiBA,CACA,OAAiB,eACjB,EAmBA,mCACA,2BACA,YACA,CADqB,GACrB,sBAEA,GADA,iBACA,kBAEA,OACA,KACA,KAA0B,EAAI,cAC9B,mBACA,kCACA,CAAiB,CACjB,QACA,EAEA,qBAoCA,kBAA8B,EAAS,uCAnCvC,kCACA,SACA,SAEA,YAEA,uBACA,sBAwBA,kBAAkC,EAAS,wCAvB3C,iCACA,kBAAsC,EAAS,uCAE/C,kCAEA,IADA,oBAEA,WAAsC,EAAS,kDAE/C,iBACA,kBAGA,CACA,KACA,KAA8B,EAAI,IAClC,IADkC,EAClC,EACA,WACA,kCACA,CAAqB,CACrB,QACA,EAVA,WAAsC,EAAS,sCAmB/C,EAIA,oCACA,IA4qBA,EA5qBA,gBAEA,IADA,YACA,CADqB,IACrB,UA2qBA,OADA,EA1qBA,cA4qBA,QACA,cACA,QACA,eACA,cACA,QACA,gBACA,gBACA,gBACA,iBACA,kBACA,kBACA,kBACA,oBACA,oBACA,oBACA,oBACA,sBA5rBA,YAEA,0CACA,EACA,uCAGA,IAFA,2BACA,OACA,CACA,4BACA,MACA,KACA,QACA,CACA,iCACA,MACA,KACA,QACA,CACA,sCACA,MACA,KACA,QACA,CACA,KACA,CACA,gCACA,OACA,KAAmB,KAAM,EAAI,2BAA4C,CACzE,QACA,CACA,EACA,oDAsoBA,SAroBA,cACA,kBACA,iBAooBA,GADA,EAjoBA,iBAkoBA,QA9nBA,CA8nBoD,KAjoBpD,YACA,CADyB,GAIzB,EAMA,sCACA,kCACA,YAIA,oBACA,QAIA,OAFA,YACA,YACA,GAEA,UACA,QACA,QACA,SACA,KACA,SACA,qCACA,MAEA,WACA,SACA,WACA,CACA,YACA,CADqB,GACrB,gBAGA,CAHwC,GACxC,YAEA,gBACA,kBACA,WACA,oBACA,WAEA,gBAEA,CAEA,YACA,KACA,OAGA,UAEA,WACA,CACA,wBACA,EACA,2CACA,gBACA,YAEA,yBACA,QACA,SACA,QACA,qCACA,SAA6B,IAC7B,MAGA,YACA,KAEA,EACA,wCACA,2BAGA,GAFA,YACA,CADqB,GACrB,EAD0B,QAC1B,GACA,aACA,kBAA8B,EAAS,yDAEvC,YAAqC,CAArC,QAEA,OADA,YACA,WAA8B,EAAS,0CAGvC,6CACA,MACA,kBAA8B,EAAS,8CAGvC,GADA,iBACA,aACA,kBAA8B,EAAS,yDAEvC,oBAEA,SAEA,KAF0B,EAC1B,YACA,CACA,KACA,KAA8B,EAAI,SAElC,QACA,kCACA,CAAqB,CACrB,QACA,CAGA,SAGA,GAFA,YACA,CAD6B,GAC7B,aACA,aACA,kBAAsC,EAAS,yDAE/C,yCAEA,SACA,kBAAkC,EAAS,6CAC3C,CACA,EAKA,iDACA,2BACA,gBACA,oBACA,aAIA,OAHA,eAGA,CAAiB,iBADjB,IADA,qBAEiB,CACjB,EACA,mDAKA,IAJA,EAIA,uBACA,yCACA,uBACA,UACA,OAEA,kBAAkC,EAAS,4BAC3C,cACA,WACA,WAIA,iBACA,WACA,qBACA,iBACA,2BACA,uCACA,SACA,SAEA,eACA,gBACA,kBAA0C,EAAS,oEAGnD,GAAyC,sBADzC,yBACyC,CACzC,CACA,oCACA,SACA,SAEA,gCAEA,wCAEA,ILjgBA,EKigBA,sBACA,iBACA,4DACA,SACA,SAEA,OACA,KAAmC,KAAM,EAAI,sCAAgE,CAC7G,QACA,CACA,CAEA,gBACA,kBAA8C,EAAS,6BAEvD,OAIA,cACA,GD1hBO,cAEP,QADA,KACA,IAA6B,WAA8B,KAC3D,kBACA,YAEA,IADA,QACA,cACA,mBACA,IACA,IAEA,cACA,iBAEA,WAyBA,GACA,IAyBA,EAzBA,cASA,GARA,YAEA,cAEA,qBAEA,oBAEA,EACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,SACA,gCACA,CAGA,iBASA,MAPA,YACA,wBAMA,CAJqB,CAAQ,SACrB,CAAQ,SACR,CAAQ,uBACR,CAAQ,QAChB,GACA,EA5DA,GAIA,IAHA,kBACA,MAEA,QACA,GANA,IAQA,aACA,KAEA,KACA,QACA,OAGA,IAEA,CACA,QACA,ECyf4D,gBAE5D,OACA,KAAkC,EAAa,SAC/C,EAD+C,MAC/C,EACA,yBACA,yCL3hBA,KACA,wBACA,eACA,aAEA,QACA,0CACA,KAEA,SACA,iCACA,KACA,SACA,QACA,QACA,QACA,gFAEA,SACA,QACA,8DAEA,SACA,QACA,2DACA,KAEA,SACA,QACA,2DACA,SACA,iCACA,KACA,SACA,QACA,QACA,6EAEA,SACA,8CACA,KACA,SACA,OACA,iEAEA,kDACA,KACA,SACA,OACA,iEAEA,kDACA,KAEA,SACA,YACA,KACA,SACA,QACA,8EAEA,SACA,kBACA,kCACA,KACA,SACA,kBACA,kCACA,KACA,SACA,kBACA,kCACA,KACA,SACA,kBACA,kCACA,KACA,SACA,QACA,QACA,oFAEA,SACA,oCACA,KAEA,SACA,oCACA,KACA,SACA,QACA,8EAEA,SACA,kCACA,KACA,SACA,QACA,QACA,QACA,QACA,QACA,wFACA,CACA,QACA,CAAK,EACL,GKmbA,EAAoC,EAGpC,OACA,KAAmC,KAFnC,WAAwD,EAAI,KAAQ,EAAI,CAAZ,GAAY,CAErC,GAFqC,GAErC,qBAA8D,CACjG,QACA,CAEA,CAEA,OACA,KACA,kBAC8B,EAAI,OAClC,CADkC,QAClC,EACkC,EAAI,KACJ,EAAI,CADA,GACA,CACtC,GADsC,GACtC,EACA,WACA,0DACA,CAAqB,CACrB,QACA,CAEA,cACA,oBACA,aAIA,2BAEA,GADA,iBACA,kBACA,kBAAsC,EAAS,mCAAmE,QAAQ,GAAG,MAE7H,iBASA,uCACA,IACA,qCACA,qBACA,kBAA0C,EAAS,kFAEnD,iBACA,kCAA6D,EAAS,oCAAsC,EAAS,sCACrH,SACA,SAGA,iBACA,mCACA,QAEA,kDACA,SACA,SAEA,oCACA,SACA,SAEA,gCACA,gBACA,OACA,KACA,KAAkC,EAAI,OACtC,CADsC,KACtC,EACA,iBACA,UACA,CAAyB,CACzB,QACA,EAGA,OACA,KACA,KAAkC,EAAI,OACtC,CADsC,KACtC,EACA,iBACA,SACA,6CACA,UACA,CAAyB,CACzB,QACA,CAGA,SACA,kBAAkC,EAAS,6BAC3C,CACA,EACA,qDAGA,uBAAqD,CAArD,QACA,WAA8B,EAAS,0DAEvC,YACA,CADqB,IACJ,CADS,EACT,UACjB,EAIA,qDAGA,IAFA,QACA,uBACA,eAEA,OADA,aAEA,QAGA,YACA,2BACA,wBACA,kBAA0C,EAAS,4DAEnD,YACA,KAEA,UACA,KAD8B,IAE9B,QACA,KAEA,UACA,KAD8B,EAC9B,GAIA,OACA,+CACA,QACA,EANA,KAQA,KAEA,SACA,WAEA,CAEA,OACA,+CACA,QACA,CACA,EACA,wDACA,SACA,IACA,EHrsBO,YACP,gBACA,CGmsBkD,KHnsBlD,yCAOA,QAJA,IACA,MAAe,GACf,mBAA+B,WADC,IACD,GAAsB,EACrD,KACA,IAAoD,EAApD,EAAoD,OAA4B,KAEhF,MAFA,CACA,IACA,WACA,gBACA,uCAGA,QADA,oBACA,IAA8C,EAA9C,EAA8C,OAAuB,IAErE,OADA,KACA,OACA,uCAGA,QAAsB,iBAA8B,CACpD,CACA,QACA,EG4qBkD,EAClD,CACA,SACA,kBAA8B,EAAS,0BACvC,CACA,OACA,KACA,KAAsB,EAAa,OACnC,IADmC,GACnC,EACA,WACA,wCACsB,SH5jBf,GAEP,OG0jByC,CH3jBzC,KACA,IAAwC,EAAxC,EAAwC,OAAsB,KAC9D,MADA,CACA,IACA,eACA,cACA,QACA,kBACA,QACA,aACA,kBACA,YACA,QACA,gBACA,mBACA,wBACA,QACA,iBACA,SACA,iBACA,QACA,yBACA,QACA,0BACA,QACA,oBACA,WACA,eACA,oBArJA,sBAsJA,QACA,qBACA,QACA,qBACA,yBACA,QACA,oBACA,SACA,qBACA,wBACA,QACA,kBACA,EAAyB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAa,sBAAwB,iCAA8C,MAAQ,QAAQ,CAAC,QAAQ,GAAG,IAlDrK,EAkDqK,IAnDrK,GAmDqK,CAAsC,GAAI,GAC/M,QACA,mBACA,EAAyB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAa,uBAAyB,iCAA8C,MAAQ,QAAQ,CAAC,QAAQ,GAAG,IArDtK,EAqDsK,IAtDtK,GAsDsK,CAAsC,GAAI,GAChN,QACA,uBACA,sBACA,QAEA,yBACA,iCACA,uBACA,QACA,wBACA,yBACA,sBACA,QACA,4BACA,yBACA,qBACA,QACA,2BACA,2BACA,QACA,aACA,iCACA,QACA,2BACA,uBACA,QACA,6BACA,sBACA,QACA,0BACA,uBACA,QACA,wBACA,wBACA,QACA,+BACA,0BACA,QACA,+BACA,2BACA,QACA,6BACA,4BACA,QAEA,qBACA,sBACA,6EAEA,6CACA,KACA,qCAEA,QACA,uEAEA,KACA,gEAEA,QACA,CAAiB,EACjB,QACA,CAEA,mBACA,qCACA,QACA,CACA,mBAIA,sBACA,kFAEA,uCAkBA,MAhBA,QACA,iCAGA,cACA,iCAGA,MACA,iCACA,4CAGA,iCACA,kCAEA,EACA,CAAa,EACb,kBAEA,SACA,EAAyB,QAAQ,CAAC,QAAQ,GAAG,KAAa,qCAAuC,EAEjG,GACA,GAAyB,QAAQ,CAAC,QAAQ,GAAG,WAE7C,QACA,CAEA,mBACA,EAAqB,QAAQ,CAAC,QAAQ,GAAG,eACzC,QACA,CACA,gBACA,GACA,GAAqB,QAAQ,CAAC,QAAQ,GAAG,QAEzC,eA1MA,GAEA,MAaA,GAZA,wBACA,GACA,sBACA,EACA,cAEA,aACA,GACA,qBACA,EACA,cAEA,GACA,mBASA,GARA,UACA,uBACA,cAEA,WACA,2BACA,cAEA,WACA,wDAEA,iCAEA,QACA,EA2KA,QACA,GACA,GAAqB,QAAQ,CAAC,QAAQ,GAAG,OAEzC,CACA,QACA,EGuZyC,GACzC,EAAwB,CACX,CACb,QACA,CACA,EAWA,4DASA,IAPA,IADA,EACA,KACA,KACA,UACA,yBAIA,CACA,iBACA,2BACA,mCAEA,kCAA6D,EAAS,gCAAkC,EAAS,kCACjH,SACA,SAEA,4BACA,4CACA,MAEA,KAEA,CAEA,YACA,+BACsB,EAAS,mCACT,EAAS,qCAE/B,cACA,OAKA,iBACA,2BACA,kBAA+B,GAC/B,+BACsB,EAAS,yCACT,EAAS,uFAE/B,iCACA,SACA,SAEA,oCACA,SACA,SAEA,QACA,EACA,CACA,YACA,kCACA,CAAiB,CACjB,EAEA,SAEA,iBACA,iEAEA,aACA,wBACkB,EAAS,gCACT,EAAS,8EAE3B,6BACA,WAA8B,EAAS,mEAEvC,CAAiB,eACjB,EACA,iDACA,QACA,uBACA,kBAEA,kBACA,OAIA,IAFA,SACA,IACA,gBACA,kBACA,gBACA,KACA,cACA,iBAGA,KAEA,CACA,uCACA,EAIA,EADA,MAIA,CAAiB,gBAFjB,gBAJA,eAOA,EACA,8BACA,6BAEA,6BACA,4CAEA,qCAEA,OACA,4BACA,wBACA,4BAEA,EAKA,4BACA,2BACA,0BACA,4BAEA,wBACA,cACA,4EAEA,QACA,EACA,gCACA,OACA,SACA,KACA,OACA,qBACA,UACA,CAAa,CAEb,EAEA,4BACA,kBAGA,iBACA,SACA,sBACA,uBACA,0BAGA,wBAEA,mCAEA,EAOA,+BACA,oCACA,YAA4B,WAAmB,IAC/C,YAEA,QACA,CACA,QACA,EAKA,kCACA,oBACA,mCACA,MACA,eA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AuB,IACpD,kBAEA,0BAA8D,QAAa,iBAC3E,CAAS,EACT,wBACA,SAAsB,GAAU,UACvB,CACT,CACA,CACO,oBACP,IACA,EADA,UAKA,GAHA,GACA,SAEA,EACA,SAEA,MAAgB,IAAyB,8CACzC,yBCnKC,eAAqC,aAEtC,gBACA,qBAEA,iCACA,sCAEA,GACA,wBACA,wDACS,EAGT,iBACA,CAEA,QACA,CAEA,cACA,YAAoB,mBAAsB,KAC1C,wCAEA,KACA,oCACA,WACA,CAAS,EACD,iCACR,+DAEA,iCACA,+DACA,CAAS,CAET,CAEA,QACA,CAEA,cAaA,OATA,EADA,4DACA,YACA,eACA,EAEA,YACA,mGACA,GAGA,EACA,CAEA,kBAYA,OAXA,OACA,2BACA,QACA,cACA,gBACA,WACA,CAAO,EAEP,OAGA,CACA,CAsCA,gBACA,OAGA,YACA,4BACA,EALA,IAOA,cACA,IAOA,IAPA,uEAEA,YACA,SACA,KACA,KAIA,IACA,gBAA8B,yBAC9B,gBAEA,kBAH6D,MAK7D,CAAM,SACN,KACA,GACA,EAAM,OACN,IACA,6BACA,EAAQ,OACR,YACA,CACA,CAEA,SACA,EAnCA,MAqCA,cACA,MACA,oCACA,oDAEA,GADA,oDACA,0CACA,qFACA,EA5CA,MAsDA,WACA,4JACA,GAvDA,CA6CA,gBACA,oCAEA,uBAA2C,IAAS,cAEpD,QACA,CAUA,IAJA,EAYA,EACA,EAiBA,EACA,EA3BA,GAAmB,WAkGnB,YArEA,WACA,cACA,IAEA,MArBA,KACA,IAGA,EADA,gDAoBA,cAEA,cAgDA,OA9CA,sBAEA,aACA,wBACA,UAKA,8LAEA,OADA,6BACA,EACA,CAGA,aACA,QACA,CAJA,eAOA,OACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,MACA,UACA,UACA,cACA,aACA,OACA,WACA,QACA,YACA,QACA,QACA,iBACA,mBACA,EAEA,OADA,cACA,CACA,CAGA,OAgBA,MAzGA,CADA,EAyGA,YAxGA,4EA2GA,kBACA,UACA,cAGA,uBACA,WACA,CAAK,MACL,uBACA,UACA,oBAGA,iBACA,WACA,4BAEA,EAGA,OADA,UACA,WACA,UACA,CACA,CAAK,WACL,EAEA,cACA,kBAIA,OAHA,uBACA,WACA,CAAK,MACL,WAGA,cACA,gCACA,EAWA,oBACA,kBACA,gBACA,aAGA,uBAEA,OADA,iBACA,SACA,4CAEA,OADA,wCACA,SAGA,KAH4D,EAG5D,gBACA,qBACA,iBACA,gCAGA,QAFA,KAEA,IAAoB,WAAqB,KACzC,WAGA,YAAqB,WAAuB,KAC5C,WAPA,IAUA,wBAEA,qBAWA,QAJA,YACA,mBACA,EAGA,EAEA,yBACA,KAIA,oCACA,kCAEA,eACA,GACA,0FAGA,GAGA,EAIA,MAA6C,MAAkB,IAAK,KAAoB,UAHxF,CAIA,CAAK,OAnBL,IAoBA,EAEA,uMAIA,CAJqO,CAIrO,YACA,+DAEA,aA9EA,EA8EA,IA9EA,mJA+EA,QAGA,eACA,EAEA,cACA,+DAEA,GA9FA,EA8FA,IA9FA,0BA+FA,OACA,YACA,kDACA,aACA,CAAS,CACT,EAGA,oBAEA,SACA,CACA,WACA,EAGA,CACA,WACA,QACA,CACA,EAEA,cACA,2CAIA,oBACA,uBACA,eACA,CAAK,EAEL,mBACA,uBACA,gBACA,6CACA,CAAK,EACL,EAEA,uBACA,iCACA,oBACA,MACA,8CAAwD,sFAGxD,QACA,EAYA,cACA,eACA,YACA,aACA,uBACA,WACA,CAAK,MAQL,CARyB,CAQzB,EANA,sBACA,OACA,oCACA,iDACA,CACA,CAAK,EACL,GACA,OACA,OAEA,uBACA,SAEA,cACA,qBAEA,WACA,CACA,SACA,sBACA,CACA,CAAS,CACT,EAiBA,CAjBS,KAGT,0BASQ,0BAER,YAVA,iCACA,MAIA,IAEA,CAAS,EAMT,WACA,IACA,CACA,CAAK,UAEL,CAFgC,GAEhC,OACA,uBACA,iBACA,0GAEA,CAAK,QAEL,CAFqC,GAErC,OAgBA,OAfA,uBACA,eAIA,sCAEA,GACA,qBAEA,CAAK,mBAEL,CAF8C,CAE9C,qBACA,WACA,CAAK,aACL,4BACA,OACA,CAAK,GACL,CACA,cACA,aACA,kBAEA,kBAEA,SADA,gBACA,EACA,EAeA,cAIA,MAHA,eACA,+BAGA,CAH0E,CAI1E,aACA,0BACA,EAEA,uBACA,uBACA,0CACA,oBACA,MACA,4DAAsE,oGAGtE,QACA,EACA,uBACA,uCACA,oBACA,MACA,WAGA,MACA,UACA,eA9fA,KACA,oBAEA,IAEA,IAFA,WAlBA,KACA,oBACA,IAEA,IAFA,KACA,iBAGA,QAAgB,WAAuB,IACvC,OACA,iBACA,YAGA,QACA,EAKA,KAIA,iCACA,sCAEA,QAAkB,WAA6B,IAC/C,QACA,mBACA,iDACA,WAEA,CAEA,QACA,EA2eA,YAEA,EAIA,MAA2C,OAH3C,MAA6C,gBAI7C,EAEA,cACA,eACA,YACA,aACA,uBACA,WANA,mNAOA,CAAK,MAGL,CAHyB,CAGzB,EADA,iBACA,GACA,OACA,OAQA,IANA,sBACA,OACA,oCACA,sBACA,CACA,CAAK,EACL,GACA,OACA,OAEA,gBACA,qBACA,8BACA,EAGA,CACA,SACA,mBACA,CACA,CAAO,CACP,EAGA,CAHO,CAGP,aACA,uBACA,SA2BA,MAzBA,0BAeQ,uCACR,aACA,gDACA,IACA,cACA,iBAEA,CAAS,GArBT,iCACA,mBAIA,aACA,yCACA,IACA,OACA,iBAEA,CAAa,EAEb,CAAS,EAWT,WACA,IACA,CACA,CAAK,YAEL,CAF4C,GAE5C,OACA,uBACA,iBACA,wHAEA,CAAK,QAEL,CAFqC,GAErC,OACA,uBAGA,yBAIA,wDACA,0FAGA,IAVA,IAUA,8EACA,8EAEA,YACA,wCAEA,CAAK,4BAEL,CAFuD,CAEvD,qBACA,WACA,CAAK,aACL,2BACA,+BACA,CAAK,iCAEL,oBAIA,4BACA,OACA,CAAK,6BACL,OACA,CAAK,KAPL,IAQA,CACA,cACA,aACA,iBACA,iCACA,yBACK,cAML,kBACA,sBACA,kBAEA,QACA,yIAGA,EACA,OAGA,MACA,EAiBA,gBACA,gBAJA,0BAIA,EAJA,SAIA,WA0HA,IAVA,YACA,4BACA,WACA,cACA,8BACA,KACA,WACA,CAAO,CACP,EAtHA,YACA,IA2CA,EA3CA,OACA,cACA,YACA,gBAAiD,EACjD,WACA,YACA,YACA,aACA,aACA,YACA,gBACA,kBACA,qBACA,cACA,aACA,4BACA,yBACA,8BACA,iCACA,mDAGA,IADA,iBACA,GACA,OACA,OAEA,iBACA,iBAIA,CAJwC,CAIxC,YACA,eACA,gBACA,eACA,mBACA,qBACA,wBACA,iBACA,gBACA,+BACA,4BACA,gBAGA,IAGA,EAFA,sBAEA,EAGA,WACA,IACA,GAIA,eACA,6BACA,+CACA,WAEA,EACA,uBACY,GACZ,kBAIA,YAEA,KAEA,GACA,EAL2C,KAK3C,WAEA,CACA,CAAO,UACP,WAuBA,OAtBA,uBACA,cAIA,gCAEA,GACA,oBAEA,CAAO,QACP,6BACA,kBACA,mDACA,IACA,oBACA,cACA,CAAc,SAAe,CAG7B,CACA,CAAO,KACP,uBACA,KACA,YACA,KACA,CAAO,CACP,EAkCA,CAlCO,MAcP,aACA,YACA,mBACA,gBACA,cACA,eACA,eACA,gBACA,eACA,mBACA,qBACA,wBACA,iBACA,gBACA,+BACA,4BACA,kBAEA,gBACA,kBACA,CACA,EAEA,6BAEA,uBACA,iDACA,iBACA,sBAEA,MACA,iFAGA,QACA,EAwKA,IAXA,YACA,WACA,cAGA,OADA,IACA,uBACA,KACA,WACA,CAAK,CACL,EAhDA,YACA,WACA,cAGA,EADA,IACA,iBAEA,eACA,iBAuBA,OAtBA,6BAOA,MANA,kCACA,mBACA,cAIA,WACA,gBACA,IACA,YACA,YACA,CAAY,SAAW,CAQvB,CACA,CAAK,MACL,uBACA,MACA,KACA,WACA,CAAK,CACL,EAkCA,CAlCK,CAkCL,qBAKA,cAKA,oBAKA,oBAKA,iBAKA,iBAKA,cAKA,mBAKA,iBAKA,iBACA,iBAKA,yBAKA,+BAKA,6BAKA,kBAQA,0BAKA,iCAKA,wBAKA,iCAEA,qBACA,0BACA,oCACA,yBACA,mBACA,gBACA,sBACA,sBACA,2BACA,aACA,qBACA,qBACA,2BAjSA,YACA,eACA,YACA,aACA,uBACA,WANA,qNAOA,CAAK,MACL,iBACA,iBAKA,IAHA,YACA,qBACA,CAAK,EACL,GACA,OACA,OAEA,uBAEA,2BAIA,kBAC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CT,OACA,CACA,CACA,wBACA,IACA,EAuBA,sCAAgD,SAAa,EAC7D,uCAEA,mBAzBA,CA2BA,kBAzBA,YACA,gEACA,KACA,0BAEA,iCACA,iCAWA,OAVA,mCACA,kCACA,8BACA,0BACA,aACA,+BAGA,iBAEA,kBACA,EAcA,iBACA,iBAEA,GACA,eARA,CACA,mBACA,gBACA,EAMA,iBACA,YAJA,yBAKA,UAZA,+BAaA,EAEA,GACA,QACA,WACA,EAOA,aACA,4DAsBA,kBACA,QAEA,OADA,aAAmC,MACnC,gCACA,QACA,0BAEA,GADA,GAkDA,oCAlDA,GACA,aACA,iEAKA,YAHA,OADA,sDACA,sGAKA,CACA,MACA,iFAEA,kBAWA,OAEA,GADA,aAAmC,MACnC,KACA,QACA,qBACA,uBACA,iCAGA,uBACA,CAAa,CACb,CACA,QACA,kBACA,oBACA,UACA,iCACA,qEACA,CAAS,CACT,EA9BA,OACA,CAAa,CACb,CAAS,CACT,CAyCA,MACA,WACA,eAEA,cACA,SAAgC,GAChC,UACA,qBACA,GACA,SAAsC,GACtC,EACA,YACA,SACA,WACA,yCACA,6CACA,CAAa,CACb,QACA,iCACA,kCACA,CAAa,CACJ,CACT,MACA,SACA,SACA,WACA,yCACA,6CACA,CAAa,CACb,QACA,iCACA,kCACA,CAAa,CACJ,CACT,GA8CA,gBACA,MAEA,GADA,aAAmC,MACnC,KAhKA,KACA,qCACA,4CAkKA,kBACA,aAAmC,CACnC,KACA,EACA,CAAiB,EAEjB,gCACA,0BACA,6BACA,iCACA,uBACA,CAAa,CACb,CAEA,UACA,YACA,MACA,oBACA,CAAS,CACT,CAMA,cACA,8BACA,SACA,4EACA,oCACA,CAgCA,cACA,UA7GA,YACA,uCACA,YACA,0BACA,gBACA,WA8EA,EACA,EAiBA,EA3FA,GAJA,4CACA,8BA6EA,SA5EA,EA4EA,OA5EA,EA4EA,eACA,0BACA,4BA9EA,EAkFA,GACA,SAJA,IACA,iBACA,gDAGA,yBApFA,EAoFA,yDACS,EApFT,EA6FA,GACA,uBACA,yBA/FA,EA+FA,OA/FA,EA+FA,gDACS,EA/FT,8BACA,sBACA,sBACA,OACA,QACA,EAUA,OARA,OADA,SACA,KACA,QACA,mCACA,sBACA,gBACA,sBACA,OACA,EAIA,+CACA,kBAAoD,UAAY,aAAwB,EAExF,CAAa,CACb,CAAS,CACT,CA8EA,CAAC,CA7YD,oCACA,6CACA,kEAA0G,CA6Y1G,CAAC,GAAG,sBACJ,aAEA,kCACA,wBACA,gBACA,sBACA,uCACA,+BA2CA,cACA,kDACA,sBACA,oCAEA,cACA,6BAEA,CAEA,6CACA,aACA,kBAGA,yBACA,aACA,eAEA,6BACA,EAAK,YAEL,EAEA,8CACA,MACA,iEAEA,GAcA,iDACA,2BACA,gBACA,WACA,CAAG,CACH,EAuDA,oDACA,6BACA,2CAGA,2BACA,YACA,iDACA,EAAK,YAEL,EAEA,wDACA,GAEA,MACA,iEAUA,uBAAyB,CATzB,CACA,0BACA,4BACA,6DACA,sDACA,qCACA,CAAK,CACL,EAEyB,EACzB,EA4CA,0CACA,kBAEA,mBAMA,sBACA,gBACA,OACA,8BACA,kDACA,mBACA,4CAOA,OAJA,qBACA,8BAGA,mBACA,cACA,kCACA,MACA,OAAmB,mBAAqB,CACxC,oBACA,CAAS,CACF,CACP,CAAK,EACL,iBAGA,OAFA,8DAEA,kBACA,CAAK,EACL,wBAGA,CAFA,2DAEA,iCACA,eACA,OACA,iDACA,iDACA,uDACA,SACA,sCACa,CACF,GAIX,eACA,OACA,kDACA,kDACA,wDACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EA1DL,eACA,2CA0DA,EA6CA,iCACA,kBAEA,QAMA,sBACA,gBACA,0BACA,cACA,gDACA,MACA,OACA,kBACA,CAAW,CACX,kCAA6C,UAE7C,qDACA,CAAW,CACX,CAAS,CACF,CACP,CAAK,EACL,iBAGA,OAFA,qDAEA,mCACA,CAAK,EACL,kBAGA,OAFA,kDAEA,eACA,OACA,mCACA,mCACA,yCACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EAvCL,eACA,0CAuCA,EAcA,gCAGA,OAFA,uBAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,uJAAuJ,sBAC1J,aAuBA,iCAEA,YACA,uBACA,sBACA,6BACA,qDACA,CAAG,CACH,mCACA,sBACA,yCACA,gEACA,CAAG,CACH,uCACA,qBACA,6CACA,0EACA,CAAG,CACH,sCACA,sBACA,4CACA,QACA,gFACA,CAAG,CACH,kCACA,sBACA,wCACA,uDACA,CAAG,CACH,wBACA,qBACA,8BACA,yEACA,CAAG,CAGH,CAAC,EAAE,4BAA4B,sBAC/B,aAOA,uBACA,wBACA,8BACA,2CACA,gCACA,qCACA,gBAEA,+BA0DA,WACA,SA/CA,YACA,kBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBAEA,IADA,EACA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,wBACA,uDAMA,sCAEA,GAPA,eACA,+BAOA,CAAS,QAKT,CAHA,kBACA,WAEA,qBAQA,EAPA,mBAGA,OAFA,YAEA,CACA,CAAS,CAIT,CAAK,CACL,GAQA,QAjEA,SAkEA,CAEA,CAAC,EAAE,yNAAyN,sBAC5N,aAEA,yCAEA,yBACA,iBACA,iCACA,8BACA,yCACA,4CACA,wCACA,2BACA,+BACA,mBACA,uBACA,4BACA,wBACA,gBACA,gCACA,qCACA,sBACA,uCACA,qBACA,uCACA,wCACA,qCAEA,KAoBA,cACA,QAOA,GAHA,iBAFA,SAKA,CAFA,2BAGA,oDA8BA,GA3BA,6DACA,GACA,QACA,SAEA,aACA,wDACA,wDACA,8CACA,CAAO,CAEP,CAAG,EAOH,iCACA,oBACA,EAEA,gBACA,4CAEA,6CAEA,WACA,qBACA,aACA,wDACA,wDACA,uDACA,CAAO,CAGP,sBACA,kBACK,CACL,CACA,CAEA,yBAEA,IADA,IACA,qBAEA,KAGA,OAFA,2CAEA,EAGA,IACA,oBACA,CAAI,SACJ,sBACA,sCAEA,CAoBA,OAlBA,iCACA,GAUA,OARA,SACA,eAGA,gCAEA,UAGA,CAAG,EAEH,qBAEA,gDAEA,EACA,iBAGA,OAFA,8CAEA,CACA,CAAK,EACL,kBAGA,OAFA,0BAEA,iBACA,CAAK,CACL,EAGA,wBACA,IACA,EAEA,kDACA,IACA,QADA,kDAGA,IACA,gEACA,wBACA,2BAIA,GACA,qBACA,KAHA,2BAGA,iCAEA,gCAGA,iCACA,kBAEA,mCACA,YAEA,CAAK,EAGL,GACA,iBACA,KACA,MACA,GACA,EACA,wBACA,EA4FA,kCACA,WACA,CADmB,CACnB,0BAEA,IAiNA,EAlNA,QACA,IACA,8CACA,sDACA,mBAWA,GARA,uBACA,SAEQ,YACR,uBAFA,oBAMA,EACA,aACA,mCACA,mCACA,+CACA,CAAO,EAgBP,GAZA,EADA,UACA,MAEA,YAGA,GACA,gBACA,mBACA,kBACA,6CAGA,gBACA,sBAEA,qBACA,iBACA,aAEM,oBACN,EACA,qDACA,cACA,gBACA,SACA,CACA,mBACA,qDACA,iDACA,2DACA,uDACA,SACA,CAAW,CACF,CACT,QAGA,UAyJA,CACA,wBAHA,EAFA,EApJA,kBAsJA,2CAIA,qBACA,OAxJA,aACA,kCACA,kCACA,iCACA,CAAO,CAGP,oBACA,iCACA,gBACA,EAEA,6BACA,QAIA,GAFA,EA0DA,cACA,MAoBA,GAlBA,OACA,kCACI,QACJ,wCACI,QACJ,6CACI,QACJ,+BACI,OACJ,kCACI,iBACJ,QACA,iCACA,iCACA,wCACK,EAGL,EAIA,OAHA,wBACA,uBAEA,CAEA,EArFA,KAEA,CACA,KAEA,MACA,CAEA,+BACA,EACA,YACA,yCACA,yCACA,+CACW,GAGX,MACA,CAEA,KAA8B,cAAqB,IAGnD,GACA,eACA,yBAEA,oDAEA,cACA,MACA,oBACA,CAAS,GAET,IACA,CAAK,CACL,CAAG,EAEH,yBACA,UAEA,EACA,iBACA,uBACA,CAAO,EACP,kBACA,yCAEA,WACA,CAAO,EAEP,MACA,CAEA,QACA,EAgCA,aAjCyB,KAiCzB,YACA,8BACA,EAgBA,kCACA,QACA,EAcA,kCAMA,OAHA,SAFA,KAEA,CAFmB,eAEnB,kBACA,EAHA,KAGA,gBAEA,iBACA,CAAC,EAYD,WAEA,CAAC,EAAE,idAAid,sBACpd,aAEA,WACA,8BACA,CAEA,CAAC,GAAG,sBACJ,aA8BA,kCAEA,WACA,6CACA,sBACA,kDACA,CAAG,CACH,wBACA,sBACA,6BACA,CAAG,CACH,uBACA,sBACA,4BACA,CAAG,CACH,sCACA,sBACA,4CACA,uCACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,qFACA,CAAG,CACH,wBACA,qBACA,8BACA,kDACA,CAAG,CACH,wBACA,qBACA,8BACA,gDACA,CAAG,CACH,sBACA,qBACA,4BACA,gDACA,CAAG,CACH,8BACA,qBACA,oCACA,gDACA,CAAG,CACH,qBACA,sBACA,2BACA,qCAA0C,mCAC1C,CAAG,CACH,mCACA,sBACA,yCACA,6DACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,gIACA,CAAG,CAGH,CAAC,EAAE,4BAA4B,sBAC/B,aAEA,kCACA,+BACA,iBACA,uBACA,wBACA,gBACA,yBACA,qCACA,0CAEA,qCAwGA,WACA,mBAvGA,cACA,iCAEA,IADA,MACA,SACA,GACA,mCACA,oBACA,qBACA,gBAEA,0BACA,8BACA,WACA,EAEA,UACA,cAEA,UACA,sDACA,oBAEA,GACA,MACA,aACA,MACA,EAEA,uCACA,qBACA,kBACA,SACA,kBACA,2BACW,EACF,EAGT,cACM,oBACN,iBACA,SACA,qBACA,2BACS,CACF,EAEP,cAeA,oBACA,MAEA,MASA,EACA,OACA,MATA,EADA,QACA,oCACU,QACV,+BAEA,0BAKA,KACA,YACA,kBACA,SACA,eACA,CAAa,CACF,GAGX,MACA,CAWA,EATA,CACA,oCACA,mBACA,eACA,oDACA,oBACA,sBACA,EAGA,CAAK,CACL,CAAG,CACH,EAIA,CAEA,CAAC,EAAE,kNAAkN,sBACrN,aAEA,kCACA,gBAEA,+BACA,qBA8CA,WACA,SAhBA,mBACA,gBAWA,gBAVA,eACA,OACA,0CACA,0CACA,QACA,gEACA,CAAO,EAKP,GAQA,QAtDA,SAuDA,CAEA,CAAC,EAAE,2FAA2F,sBAC9F,aAEA,iCACA,+BACA,mBACA,oBACA,aACA,gBACA,yBACA,yBA6JA,WACA,QALA,eArIA,kBAEA,IADA,cACA,QACA,YACA,YACA,uBAEA,IACA,iCAGA,aACA,CAAM,kCAAoC,CAC1C,WASA,GALA,EADA,EACA,SAEA,UAGA,SACA,cACA,gBACA,iBAEA,YACA,kBACA,QAGA,EACA,gCACA,qBAIA,oBAKA,iBACA,SAEA,MACA,CAMA,GAJA,oBACA,yBACA,mCAEA,gBA/DA,EAgEA,GACA,GA1DA,cAPA,EACA,SACA,UACA,aACA,wBA8DA,EA7DA,kCAEA,gBA4DA,CACA,iBACA,SAEA,MACA,CAEA,KAlFA,GAIA,EA8EA,GA9EA,MA8EA,CA9EA,EA8EA,CAEA,WAEA,MACA,CA/DA,EAgEA,uBACA,EAAQ,IAjER,EAkEA,UAEA,GAEA,WACA,oBAGA,oBA1EA,EA2EA,gCACA,EAEA,qBAGA,mBACA,EAGA,0BAEA,uBAvFA,EAwFA,kBACA,GAGA,IACA,cACA,CAAI,SAOJ,MACA,OAGA,kBAEA,SAEA,MACA,CAEA,YAEA,GACA,mCACA,0BACA,CAAK,EAGL,IACA,cACA,CAAI,SAEJ,CACA,EAGA,MACA,CAIA,CAEA,CAAC,EAAE,8IAA8I,sBACjJ,aAEA,cACA,gBACA,kBACA,sBACA,wBAGA,8BACA,gBACA,EAEA,+BACA,mBAGA,iCACA,qBAGA,kCACA,sBAGA,0CACA,QACA,EAEA,wCACA,QACA,EAEA,WAEA,CAAC,GAAG,sBACJ,aAEA,mBACA,qCAGA,GACA,YACA,oCACA,oBACA,gCACA,UACA,wBACA,YACA,wBACA,qBACA,YACA,UACA,cACA,qBACA,CAAG,CACH,aACA,YACA,wBACA,oBACA,wBACA,gCACA,SACA,CAAG,CACH,cACA,YACA,wBACA,oBACA,mCACA,CAAG,CACH,WACA,YACA,wBACA,oBACA,wBACA,gCACA,SACA,CAAG,CACH,YACA,YACA,oBACA,oBACA,wBACA,gBACA,gCACA,SACA,CAAG,EAkKH,gBACA,qCACA,oBACA,eAGA,CACA,CAAG,IACH,CAEA,UAxKA,kBAcA,EADA,EAJA,OANA,mBAaA,GACA,aAJA,EATA,EASA,0BAIA,0BACA,4BACA,sBACA,WACA,mBACK,CACL,wBACA,WACA,EAEA,qBACA,YACA,2BACA,6CACA,sBACA,CAAO,CACP,GAGA,gBACA,gCAGA,gBACA,4BACA,kCACA,kCACA,eAGA,0CAGA,YACA,wBAGA,SACA,kBAGA,cACA,kDACA,GAEA,sBACA,CAAK,EAEL,eACA,qBACA,iCACA,aAEA,EACA,uDACA,2CAEA,gBACA,eACA,uBAEA,0BAGA,aACA,eACA,oCACA,WACA,kDACA,+BACA,gCACA,0CACA,oBACA,gCACA,YAEA,GAGA,SACA,iBACA,8BACA,gCACA,8CACA,4BACA,mCACA,GAGA,UACA,mBACA,aAA+B,WAC/B,+CACA,wDAEA,8BAEA,mBAGA,YACA,aACA,WACA,+CACA,EAGA,gBACA,iBACA,6BACA,2CACA,iDACA,qBACA,mCACA,eAEA,GAGA,cACA,eACA,mDACA,oBACA,iCACA,aAEA,GAGA,iBACA,kBACA,gCACA,OACA,yCACO,CACP,EAGA,GArJA,IAIA,CAgKA,CAAC,EAAE,yCAAyC,sBAC5C,aAEA,mBAEA,GAEA,oCACA,kBACA,oBACA,UACA,cACA,sBACA,gCACA,UACA,wBACA,qBACA,qBACA,WAEA,EAEA,GACA,UACA,QACA,iBACA,EAEA,GACA,aACA,EAgFA,UA9EA,gBAkBA,IAJA,EACA,EACA,EACA,EAPA,OAPA,mBAaA,GADA,GADA,EATA,EASA,yCACA,uBACA,8BACA,eAIA,CACA,aACA,QACA,kBACA,aACA,UACA,UACA,qBACA,KACA,aAEA,cAEA,CAAK,EAEL,oEACA,MACA,gBAEA,CAAK,GAGL,GACA,aACA,CACA,UACA,YACA,gCACA,yBACA,SACA,gCACA,kCACA,gCACA,cACA,mCACA,qBACA,SACA,CAAS,CACT,kBACA,qBACA,CAAO,CACP,EAGA,0BACA,EACA,oEACA,wCACA,sBACA,MACA,eACA,GAGA,GApEA,IAIA,CAqEA,CAAC,EAAE,aAAa,sBAChB,aAEA,mBAEA,GAEA,oCACA,kBACA,oBACA,UACA,cACA,sBACA,gCACA,UACA,wBACA,qBACA,qBACA,WAEA,EAEA,GACA,UACA,QACA,iBACA,EAEA,GACA,aACA,CA+EA,WA7EA,gBAiBA,IAJA,EACA,EACA,EACA,EAPA,OANA,mBAYA,GADA,GADA,6BACA,YACA,8BACA,eAIA,CACA,aACA,QACA,kBACA,aACA,UACA,UACA,qBACA,KACA,aAEA,cAEA,CAAK,EAEL,oEACA,MACA,gBAEA,CAAK,GAGL,GACA,aACA,CACA,UACA,YACA,gCACA,cACA,SACA,gCACA,kCACA,gCACA,cACA,mCACA,qBACA,SACA,CAAS,CACT,kBACA,qBACA,CAAO,CACP,EAGA,0BACA,EACA,oEACA,wCACA,sBACA,MACA,eACA,GAGA,GApEA,IAIA,CAqEA,CAAC,EAAE,aAAa,sBAChB,aAgGA,UA9FA,YAEA,IAwCA,EACA,EAbA,EA5BA,EACA,UACA,aACA,wBACA,kCAaA,MAXA,iBAwBA,KAUA,EAZA,SAaA,KAEA,sBACA,sCAGA,SAMA,SAEA,IADA,EACA,0BACA,OAEA,iBACA,QACA,OACA,QACA,kBACK,EAEL,MACA,CAEA,sBACA,aACA,KAEA,CAAG,EAEH,IACA,GAAmB,wBACnB,WAGA,6BACA,EAjCA,oCACA,CAAG,EApBH,EAsBA,GApBA,OACA,CAAa,OAAS,QAxBtB,EAwBsB,oBAGtB,CACA,OAAa,QAgDb,EACA,mCACA,EAIA,CAtDa,CAoDb,UAEA,CAtDqD,CACrD,aACA,EA7BI,EAaJ,CACA,OAAa,QAbb,EAaa,kBAAyC,CACtD,gBAZA,CACA,OAAe,mDAAqD,CACpE,eAKA,CA4EA,CAAC,GAAG,sBACJ,YAwFA,WAPA,WACA,OACA,MAhFA,6BAA+B,wwCAiF/B,mCACA,CACA,CAIA,CAAC,GAAG,sBACJ,aAEA,yCAmKA,UAdA,YACA,IAnEA,EACA,EACA,EACA,EAEA,EAEA,EA6BA,EACA,EArHA,EACA,EAiDA,EACA,EACA,EAIA,EACA,EACA,EAGA,EAsFA,GACA,2BACA,8CAEA,EAEA,OACA,OA1JA,EA0JA,EA1JA,yBACA,EACA,+FAEA,GACA,kEAGA,GACA,KAAS,4dA4BT,GACA,IACA,gEAAsE,uDAE1D,EAGZ,SAAoB,GA+GpB,WAxGA,GADA,EAyGA,EAzGA,YACA,aACA,EACA,gBACA,0CACA,qCACA,UACA,2CACA,oBAGA,MAA+B,EAoB/B,GADA,iBACA,iBACA,sBACA,EACA,kDACA,EACA,iDACA,GACA,OACA,YACA,mBACA,kBACA,iBACA,aACA,mCACO,CAEP,UACA,CAAK,EAyDL,EAtDA,0BACA,+BACA,kBAoDA,EApDA,kBACA,EAGA,GACA,sCAGA,SAKA,EALA,QASA,cACA,sBACA,kBAiCA,EAjCA,4BAEA,gCAEA,4BA6BA,EA7BA,iBACA,2BAEA,KA0BA,EAzBI,iBACJ,OAGA,qBACA,aACA,CACA,UACA,CAAO,CACP,UACA,EAGA,GA9BA,GApD+B,OAC/B,QACA,QACA,cACA,2BACA,CAAG,EAEH,qBACA,kCAGA,GACA,sBAGA,CAAW,UAgFX,kDACA,CACA,CAIA,CAAC,EAAE,4BAA4B,sBAC/B,aAEA,wCA8HA,WAdA,YACA,IA/BA,EACA,EAhFA,EACA,EA2CA,EACA,EACA,EACA,EAEA,EAEA,EA2DA,GACA,2BACA,8CAEA,EAEA,OACA,OArHA,EAqHA,EArHA,yBACA,iEAEA,GACA,kEAGA,GACA,KAAS,iXAuBT,GACA,IACA,gEAAsE,uDAE1D,EAGZ,SAAoB,GAgFpB,WAzEA,GADA,iBACA,iBACA,sBACA,EACA,kDACA,EACA,iDACA,GACA,OACA,YACA,mBACA,kBACA,iBACA,aACA,mCACO,CACP,UACA,CACA,EAwDA,EAtDA,0BACA,+BACA,kBAoDA,EApDA,kBACA,EAGA,GACA,sCAGA,SAKA,EALA,QASA,cACA,sBACA,kBAiCA,EAjCA,4BAEA,EA+BA,EA/BA,4BA+BA,EA7BA,0BA6BA,EA7BA,iBA6BA,EA5BA,yBAEA,KA0BA,EAzBI,iBACJ,OAGA,qBACA,aACA,CACA,UACA,CAAO,CACP,UACA,EAGA,GA9BA,GA2CA,kCACA,CACA,CAIA,CAAC,EAAE,4BAA4B,sBAC/B,aAEA,OACA,qDACA,6BACA,EAEA,4CAEA,cACA,uBAGA,0CACA,yBAGA,2CAEA,IADA,EACA,iCAEA,kCAIA,yCACA,eACA,CAAG,GA0BH,mBAKA,gBAJA,kCACA,eACK,CA3BL,EA8BA,CAAG,GA1BH,EACA,EAEA,yCAGA,IAFA,EAEA,UADA,mBAOA,OAJA,YACA,uBAGA,CACA,EAEA,yCACA,sBAaA,WAEA,CAAC,GAAG,sBACJ,aAEA,6CAEA,kCACA,6CACA,yCAEA,6CACA,2CACA,oDACA,0DAEA,kCACA,gCAEA,GACA,oDACA,EAEA,KAGA,IACA,CAAG,CACH,eACA,EAEA,GACA,sDACA,EAEA,OAGA,MACA,CAAG,CACH,eACA,EAEA,cACA,uCAEA,yBACA,kBACA,sBACA,wBACA,yBACA,yBACA,mCACA,gCAEA,kEAEA,qBACA,mBAEA,wCACA,CAEA,8BACA,yCACA,EAEA,+BACA,MA8FA,cACA,SAcA,OAZA,mCACA,UAEA,uBACA,aACM,sBACN,kBAEA,UAEG,EAEH,CACA,EA9GA,YACA,kBACA,EAEA,0BAOA,sBALA,EACA,CAAM,0CAA4C,CAClD,GAIA,EAEA,iCACA,YACA,EAEA,kCACA,QAeA,OAbA,qCACA,8DACA,wCAEA,qDACA,8BAGA,GACA,0BACA,qBACA,EAEA,IAAkB,iBAClB,EAEA,0CACA,qBACA,EACA,KAEA,oDAEA,EAEA,qCACA,EACA,OAEA,IA+BA,OA7BA,SACA,EACA,UACA,aACA,wBACA,kCAGA,EADA,kBACA,IACM,iBACN,IACM,oBACN,IACM,qBACN,IAmBA,CAlBM,GAkBN,oBAjBA,IAEA,KAKA,EAHI,GACJ,IAKA,8CACA,wDAEA,CACA,EA8BA,WAEA,CAAC,EAAE,8XAA8X,sBACjY,aAEA,0BACA,qBAEA,wBACA,2BACA,yCACA,wCACA,kBAEA,cACA,CAEA,CAAC,EAAE,wCAAwC,sBAC3C,aAEA,sBACA,IACA,eACA,CAAI,SAEJ,CAEA,QACA,CAEA,CAAC,GAAG,sBACJ,aAEA,wBACA,sBACA,uCAOA,MAJA,kCACA,2CAGA,CACA,CAEA,CAAC,GAAG,sBACJ,aAEA,MACA,4BACA,uBACA,8CAQA,WACA,cACA,iBARA,WACA,SACA,0BACA,0BAMA,CAEA,CAAC,GAAG,sBACJ,aAeA,iCAEA,YACA,4BACA,sBACA,kCACA,sDACA,CAAG,CACH,8BACA,oCACA,QACA,oEACA,qBACG,CACH,oCACA,0CACA,sBAEA,CAEA,CAAC,EAAE,4BAA4B,sBAC/B,aAEA,4BACA,4BACA,uCACA,mBACA,gDACA,8BACA,gBACA,sBACA,+BAEA,GACA,gCACA,+BACA,EA+BA,cAQA,GAPA,oCACA,sBACA,4CAEA,6CACA,0CAEA,yCACA,aACA,+CACA,QACA,yDACA,uBACA,iGACA,+CACK,CAEL,CAEA,6CACA,aACA,kBAGA,yBACA,aACA,cACA,EAAK,YAEL,EAEA,yDAGA,oCACA,EAEA,yCASA,OARA,qBACA,uBACA,gCACA,uBACA,uBACA,EAGA,mBACA,EAEA,iDACA,GAEA,+BACA,EACA,oBACA,uCACA,EACA,uCASA,MANA,OAAgC,OAIhC,qCANA,KAQA,CACA,EAEA,iDACA,GAEA,+BAqBA,OAnBA,yBACA,4CACA,QACA,wBACA,OACA,QAGA,GACA,SAmPA,EACA,GAEA,mCACA,sBACA,OACA,EAAU,CACV,KACA,MAGA,KACA,MACA,KAEG,CACH,EAlQA,EACA,EAGA,CAAK,EAGL,MAAgC,KAGhC,EAuEA,wDACA,wBAIA,2BACA,YACA,oDACA,EAAK,aANL,6CAQA,EAEA,2DACA,GAEA,UAAoC,IACpC,yBACA,EACA,KAeA,OAZA,mBACA,8BAEA,8BACA,yCAGA,YACA,oBACA,kDAGA,UACA,EAkCA,sCACA,WAEA,yBACA,gBAMA,IALA,EAKA,aAHA,iBACA,2CACA,4BAEA,iBAEA,EACA,mBAGA,YACA,iBACA,0CAGA,mBACA,sBACA,YACA,iBACA,iDAGA,iBACA,cACA,YACA,0BACS,IAET,uBACA,YACA,iBACA,yDAGA,iBACA,cACA,YACA,0BACA,SACA,4BACA,4BACA,0BACA,gDACA,kBACS,CACT,kBACO,EACP,CAAK,EACL,kBAMA,OALA,YACA,iBACA,uCAGA,eACA,OACA,yCACA,+CACA,yCACA,SACA,eACA,CACA,CAAS,EAET,CAAK,CACL,EAcA,gCAGA,OAFA,uBAEA,iBACA,EAqBA,4BAEA,CAAC,EAAE,2OAA2O,sBAC9O,aAMA,4BACA,8BACA,gCACA,qCACA,2CACA,+BAEA,gBAkKA,WACA,SAjDA,YACA,mBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,cA0BA,CAxBA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,iBACA,iCAGA,CADA,WACA,mCAMA,EALA,eACA,oCAKA,CAAS,EAET,kBACA,WAEA,qBAQA,EAPA,mBAGA,OAFA,YAEA,CACA,CAAS,CAIT,CAAK,CACL,GAQA,QAzKA,SA0KA,CAEA,CAAC,EAAE,wMAAwM,sBAC3M,aAEA,qCACA,wBACA,6CAsCA,UApCA,kBACA,EAsBA,OApBA,oBAOI,UAiBJ,aAjBI,EAiBJ,CACA,iBAlBI,GAkBJ,iBAlBI,EAmBA,cAnBA,EAmBA,EACJ,iBApBI,IAoBJ,iBApBI,EAoBJ,IAnBA,UACA,sDACA,sDACA,QACA,UACA,EACA,yBACA,EACA,cACA,EAAK,EAhBL,SACA,kDACA,kDACA,QACA,0DACA,CAAK,EAcL,CACA,CAcA,CAAC,EAAE,8EAA8E,sBACjF,aAEA,+BACA,yBAEA,0BACA,OACA,EACA,QACA,UACA,4BACA,KACA,SACA,CAEA,CAEA,CAAC,EAAE,iDAAiD,sBACpD,aAEA,oDACA,mCACA,iCACA,kCACA,gCAGA,GACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,CAEA,qBACA,wBAOA,yBACA,oBALA,iBAOA,CAwBA,cACA,QAEA,IACA,IACA,WACA,IAIA,KAFA,QAGA,SAIA,WACA,CAEA,WACA,uCACA,6CAMA,CALA,KACA,eAIA,qBACA,GAIA,2CACA,uBAEA,CAAK,CACL,CAAG,CAEH,uCACA,mBAEA,IADA,QACA,0BACA,qCAGA,MAMA,GAFA,iBAEA,6BACA,4BAEA,MACA,CAGA,GADA,6BACA,WACA,WAhFA,KACA,UACA,YACA,OACA,6BACA,UACA,CAAS,CACT,cACA,CACA,gBACA,OACA,6BACA,YACA,CAAS,CACT,aACA,CAEA,CAEA,QACA,EA4DA,sBAEA,GAEA,GADA,iBACA,sBACA,OAEA,QACQ,YAER,0CACA,sBACA,uCAGA,UAEA,CACA,CAAG,CAGH,CAAC,EAAE,yHAAyH,sBAC5H,aAEA,+CAEA,oBACA,IAEA,EAFA,kCACA,KA0BA,MAvBA,YACA,mBAGA,cACA,kCACA,oCACA,mCACA,kCACA,6BAEA,6BAEA,sBACA,WAEA,GACA,QAEA,CAAG,EAEH,6BAEA,CACA,CAEA,CAAC,EAAE,yBAAyB,sBAC5B,aAEA,mCACA,mCACA,oCACA,4BACA,0BACA,gBACA,wCACA,iCACA,qBACA,+BACA,2BACA,wBACA,EACA,gDACA,uBACA,kCACA,mCACA,WACA,gCACA,sBACA,2BACA,kBACA,yBACA,wBACA,gCACA,0CACA,wBACA,gCACA,oCACA,+BACA,sBACA,yCA6UA,cAEA,IADA,UACA,OACA,KACA,KACA,KACA,MACA,cAwBA,GAtBA,uCAAgD,IAEhD,UAEA,GADA,uCACA,CAD0E,mBAC1E,WACA,cAEA,4BACA,eAGA,8BACA,gBACA,8BACA,QACA,YACA,qBACA,WACA,CAAG,EAEH,WAEA,4CACA,aACA,0CACA,0CACA,sEACA,CAAK,EAGL,aAEA,uBACA,uBACA,eACA,aACA,SAAc,CACd,WACA,EAEA,iBACA,UACA,eACA,qBACA,CAAG,EAEH,wDACA,iBACA,CAAG,EAGH,SAMA,YACA,oBACA,oCAPA,YACA,oBACA,oDASA,8BACA,aACA,cAEA,sCACA,aACA,4CACA,4CACA,uCACA,CAAS,EAYT,GAJA,gBAFA,IAHA,eAGA,wBAGA,8BAGA,kBAWQ,IACR,8CAEA,aACA,iDACA,iDACA,uDACA,SACA,yBACA,2BACA,UACA,CAAW,CACF,CACT,MAvBA,aACA,iDACA,iDACA,uDACA,SACA,yBACA,2BACA,UACA,CAAW,CACF,EAyBT,GATA,IAEA,sBACA,qBACA,EACA,eACA,EAGA,0CACA,aACA,iDACA,iDACA,oDACA,SACA,UACA,CAAW,CACF,EAGT,6CACA,aACA,iDACA,iDACA,oDACA,SACA,UACA,CACA,CAAS,EAGT,KACA,OACA,iCACA,2BACA,MACA,eACA,uDACO,EACP,4BAEA,+BACA,oBACA,mBACA,UACA,CAAS,GAGT,2BACA,MACA,eACA,kBACA,EACA,0BACA,MACA,CAAO,EACP,UAEA,uBACA,WACA,WACA,sBACA,aACA,WACA,EAGA,sBACA,OACA,CAAO,GACP,EAAK,aAGL,2CACA,wEACA,GAEA,+CAEA,qBACA,2CACA,KAEA,CAAK,EAGL,mDACA,UACA,CAAG,EAEH,aACA,uBACA,8BACA,oCACA,uCACA,IACA,CAAS,CACT,CAAO,CACP,gCACA,UACA,CAAO,CACF,GAGL,4CACA,kCACA,IACA,CAAK,CACL,CAAG,EAEH,oDACA,2DACA,CAAG,EAEH,yCACA,wBACA,KACA,CAAK,CACL,CAAG,EAEH,wBACA,YACA,iBACA,uCAEA,kBACA,CAAG,IAEH,gCACA,IAo3BA,EAp3BA,OAEA,gBACA,GAm3BA,CAFA,MAAiC,CAh3BjC,kCAk3BA,WAAoC,WACpC,0CACA,gBAA6C,cAC7C,6BACG,EAEH,IAr3BA,4BAEA,gBACA,CAAG,EAEH,yCACA,aACA,CAAG,EAEH,qCAhUA,GAEA,IADA,EACA,oBACA,cACA,wBAEA,0CACA,sBAyTA,CAzTA,qBACK,EAEL,cAEA,mBACA,0BACA,aAEA,sDAEA,mBACA,0BACA,uBAIA,aACA,cACA,iBAGA,oBACA,GAkSA,YAEA,CArSiD,GAqSjD,oDACA,UAEA,QAAgB,0BAAgC,IAEhD,GADA,wBACA,YAEA,eAEA,mBACA,0BACA,0BACA,wBAGA,CAAG,EAEH,wDACA,GACA,CAAG,EAEH,wDAKA,IAJA,sBACA,gBAIA,CAAG,CACH,CAEA,iBAEA,2CAEA,IADA,IACA,OACA,OAEA,eA2BA,IAlBA,6BACA,oDAEA,cAEA,YACA,2BACA,6CAEA,EAKA,GAFA,0BAEA,uBACA,uBACA,CAAG,EAEH,IAAc,WAAmB,IACjC,oCAGA,wDACA,QAAgB,WAAmB,IACnC,sCAEA,CAAG,EA/BH,aACA,UACA,CA8BA,EAEA,6CACA,WAEA,sDACA,wCACG,MACH,EAEA,+CACA,KAEA,yBACA,0CAGA,KADA,6BACA,YAGA,2BACA,EACA,aACA,0CACA,IACA,CAAW,CACX,EAAS,aAGT,yCAGA,EAEA,6DAGA,WACA,4BACA,sCAKA,2BACA,mCACA,aACA,4DACA,CAAK,aAEL,EAYA,qCACA,4CACA,4DACG,CACH,EAYA,6CACA,4CAgBA,OAfA,EACA,mBACA,iEACA,SAEA,iBAIA,aAGA,CACA,CAAO,CAGP,CAAG,CACH,EAgBA,gCACA,WAEA,iCACA,mCACA,YACA,iBACA,2CAGA,EACA,KAEA,GAEA,CAAK,CACL,CAAG,CACH,EA8JA,iCACA,WAMA,OAJA,GACA,OAGA,0BACA,iDACA,WACA,OAEA,GACA,0CACA,aAEA,IAEA,CAAK,CACL,CAAG,CACH,EAiBA,mCACA,YA2BA,CAzBA,oBASI,+BAUJ,4BACA,QACA,WACA,CAAK,EAZL,SACA,4CACA,4CACA,QACA,wBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,gFACA,CAAK,EAiBL,GACA,kBAGA,iBACA,EAqBA,sCACA,YA2BA,CAzBA,oBASI,+BAUJ,+BACA,QACA,WACA,CAAK,EAZL,SACA,4CACA,4CACA,QACA,6BACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EAiBL,GACA,kBAGA,iBACA,EAqCA,qCACA,cAkCA,CAhCA,0BASI,qCAUJ,2BAGA,IAEA,gCACA,cACA,sBACA,cACO,EAlBP,SACA,4CACA,4CACA,QACA,6BACA,QACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,QACA,sFACA,CAAK,EAwBL,GACA,kBAGA,iBACA,EA2BA,wCACA,IAEA,EAFA,OACA,kDASA,CANA,kBAEI,0BACJ,uDAFA,8DAKA,GACA,eACA,OACA,iDACA,iDACA,SACA,CAAO,GAIP,wBACA,oCACA,CAAG,CACH,EAwBA,mCACA,8BACA,cACA,kBACG,CACH,EAuBA,wCACA,cAiCA,CA/BA,0BASI,qCAUJ,mBAGA,IAEA,mCACA,cACA,sBACO,EAjBP,SACA,4CACA,4CACA,QACA,gCACA,QACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,QACA,uFACA,CAAK,EAuBL,GACA,kBAGA,iBACA,EAYA,yCACA,0BACA,QACA,wBACA,OACA,CAAG,CACH,EAoBA,8BACA,YA0BA,CAxBA,oBASI,+BAUJ,8BACA,OACA,CAAK,EAXL,SACA,4CACA,4CACA,QACA,iBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EAgBL,GACA,kBAGA,iBACA,EAuBA,8BAEA,IADA,EACA,wBAuCA,CArCA,oBASI,gCAUJ,uBAEA,sCACA,OACA,CAAK,EAEL,WAIA,0BA9lCA,EACA,EACA,EADA,cADA,EA+lCA,mBA/lCA,yBACA,UACA,wBAGA,MACA,uBACA,0CACA,WACA,YACA,OACA,sBACA,yCAolCA,mCAEA,CAAO,CAv5CP,IAg4CA,SACA,4CACA,4CACA,QACA,iBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EA6BL,GACA,kBAGA,iBACA,EAaA,gCACA,oBAoBA,4BAEA,CAAC,EAAE,sxBAAwxB,sBAC3xB,aAEA,qCACA,gDAEA,4BACA,6BACA,gCACA,oCACA,aACA,EACA,EACA,OACA,GAEA,aACA,EACA,EACA,UACA,GAYA,OATA,qBAEA,iBACA,iBACA,iBACA,iBAEA,iBAEA,MAGA,CAAC,EAAE,wDAAwD,sBAC3D,aAGA,oCACA,2CACA,uBACA,kDACA,+BACA,8BAmTA,WAyCA,0BACA,SA/DA,YACA,SACA,QACA,qBACA,8BACA,gBACK,EACL,gBACA,eAEA,iCACA,wBACA,IACA,CAAS,EACT,0BACA,iCACA,CAAS,CACT,CAAO,CACP,CAAK,CACL,GAiDA,QAjWA,SAkWA,CAEA,CAAC,EAAE,sMAAsM,sBACzM,aAEA,mDACA,iDACA,2CACA,8CAUA,WACA,YACA,aACA,YAPA,WACA,eACA,EAMA,uDACA,QACA,8DACA,oBAfA,WACA,oBACA,CAcA,CAEA,CAAC,EAAE,+QAA+Q,sBAClR,aAEA,+BACA,gBAGA,GACA,QAHA,UAIA,wBACA,gBACA,cACA,YACA,cACA,qBACA,iCACA,iCACA,CAAG,CACH,mBACA,UACA,aACA,iBACA,kBACA,iBACA,KACA,CAAG,CACH,iBACA,0CACA,0CACA,qCACA,CAAG,CACH,sBACA,cACA,eACA,CAAG,CACH,oBACA,cACA,aACA,cACA,YACA,CAAG,CACH,wBACA,qDAIA,2DACG,CACH,eACA,kBACA,kBACA,0BACA,2BACA,kBACA,qBACA,qBACA,yBACA,8BACA,0BACA,qBACA,aACA,aACA,QACA,YACA,OACA,cACA,YACA,mBACA,eACA,aACA,eACA,0BACA,oBACA,0BACA,yBACA,uBACA,cACA,iBACA,cACA,SACA,aACA,eACA,gBACA,cACA,UACA,UACA,UACA,cACA,gBACA,iBACA,eACA,aACA,cACA,aACA,CACA,eACA,gBACA,uBACA,uBACA,CAAK,CACL,QACA,0BACA,0BACA,CAAK,CACL,KACA,WACA,WACA,CAAK,CACL,gBACA,kBACA,uBACA,CAAK,CACL,iBACA,wBACA,wBACA,CAAK,CACL,gBACA,uBACA,uBACA,CAAK,CACL,YACA,mBACA,mBACA,CAAK,CACF,CACH,mBACA,yBACA,0BACA,mBACA,oBACA,CAAG,CACH,6BACA,UACA,qBACA,oBACA,oBACA,cACA,kBACA,WACA,SACA,YACA,WACA,aACA,gBACA,CACA,8BACA,UACA,qBACA,oBACA,oBACA,cACA,kBACA,WACA,SACA,YACA,WACA,aACA,gBACA,CACA,sBACA,4BACA,iCACA,oBACA,kCACA,gCACA,aACA,mCACA,CAAG,EAGH,WACA,CACA,YACA,0BACA,gBACA,4BACA,cACA,gBACA,cACA,cACA,mBACA,mBACA,eACA,0BACA,gBACA,cACA,oBACA,uBACA,uBACA,sBACA,kBACA,CACA,kBAGA,WAEA,CAAC,EAAE,wCAAwC,sBAC3C,aAsCA,oCAEA,YACA,uBACA,qBACA,6BACA,4DACA,CAAG,CACH,iCACA,sBACA,sCACA,CAAG,CACH,sCACA,sBACA,4CACA,uDACA,CAAG,CACH,sCACA,sBACA,4CACA,sDACA,CAAG,CACH,6BACA,sBACA,kCACA,CAAG,CACH,iCACA,sBACA,sCACA,CAAG,CACH,0CACA,qBACA,gDACA,gDACA,CAAG,CACH,8CACA,sBACA,oDACA,kEACA,CAAG,CACH,oDACA,sBACA,0DACA,sDACA,CAAG,CACH,mCACA,sBACA,yCACA,qDACA,CAAG,CACH,4BACA,sBACA,kCACA,kEACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,6EACA,CAAG,CACH,uCACA,sBACA,4CACA,CAAG,CACH,2CACA,sBACA,gDACA,CAAG,CACH,sCACA,sBACA,2CACA,CAAG,CAGH,CAAC,EAAE,+BAA+B,sBAClC,aAiBA,UAfA,cAIA,IAHA,mBACA,KAEA,SACA,8CACA,UAGA,eAGA,QACA,CAIA,CAAC,GAAG,sBACJ,aAEA,+BACA,mBACA,+BACA,yBAEA,GACA,2BACA,6CAcA,EAFA,sCAMA,qCACA,qCACA,6CACA,wCACA,eACA,KACA,qBAEA,eACA,QACA,eA3BA,CACA,yBACA,2BACA,wBACA,uBACA,uBACA,+BACA,sBACA,sBACA,GAmBA,YAAqB,SACrB,eAAyB,IAGzB,mCAEA,uCACA,KAWA,yBACA,QAEA,CAAK,EAEL,GArCA,iCAsCA,CAAG,CACH,oBACA,MAEA,EAIA,gCAHA,0DACA,oBAKA,sBAEA,GACA,gBACA,2CAEA,2BAEA,CAAK,CACL,CAAG,CACH,8BACA,kBAEA,MAMA,CAFA,iBAEA,YAIA,cACA,qBACA,EACA,eACA,iBAEA,YACA,CAAG,EAGH,WAEA,CAAC,EAAE,0CAA0C,sBAC7C,aAEA,4BAEA,sBACA,WAYA,OAVA,sBAKA,uBACA,sBAEA,CAAG,EAEH,CACA,CAEA,CAAC,EAAE,uBAAuB,sBAC1B,aAEA,uCACA,oBACA,kBA0DA,YACA,YAzDA,cAEA,IADA,EACA,YACA,2BACA,yBAIA,SAFA,sDAEA,QACA,2BACA,kBAYA,OARA,UAEA,kBACA,oCAEA,sDAGA,CACA,EAmCA,iBAjCA,YACA,2BACA,2BACA,oDAGA,GACA,yDACA,4BACA,oBACA,+BACA,0CACA,8CACA,mBACA,oBACA,4CACA,yCACA,gDACA,uBACA,EASA,OAPA,kBACA,qCAEA,8CAIA,CACA,CAKA,CAEA,CAAC,EAAE,qEAAqE,sBACxE,aAEA,uBACA,sBACA,uBAWA,WACA,EACA,EACA,EACA,GAEA,iBAEA,0BACA,iBACA,IAkDA,EAlDA,aACA,kBACA,uBAEA,EACA,eAFA,qBAEA,iCACA,GACA,UACA,aAEA,0BAqBA,OAnBA,eACA,MAEA,QAHgD,CACd,CAGlC,CACA,aACA,QACA,SACA,6BACA,WACA,CAAW,CACF,CACT,CACA,eAEA,uBACA,cAwBA,YAFA,MAAoC,CAtBpC,IAwBA,oBACA,8CACA,YAEG,EAEH,EA9BA,EA8BA,IA9BA,EAGA,EACA,CACA,MACA,cACA,OACA,uCACS,CACT,EAEA,CAAK,EACL,kBACA,GACA,IAEA,CAAK,CACL,CAiBA,WACA,UAnFA,gBACA,SACA,EACA,EACA,EAAM,CACN,EAEA,EA6EA,eACA,CAEA,CAAC,EAAE,mDAAmD,sBACtD,aAEA,+CACA,2CAEA,WACA,aACA,uBAGA,CAAC,EAAE,iFAAiF,sBACpF,aAEA,MACA,iDAEA,cACA,UAEA,QAAc,mBAAsB,IAEpC,SADA,eAEA,qBACA,YAKA,QACA,CAEA,WACA,SACA,SACA,CAEA,CAAC,GAAG,sBACJ,aAEA,6BACA,gBACA,YAoDA,WACA,OAnDA,YACA,iBAEA,GAWA,SACA,WACA,kBAEA,MAYA,sBAiBA,kBAhBA,eACA,OACA,kCACA,kCACA,QACA,mBACA,eACA,SACA,EACA,aACA,EACA,iDACA,CAAO,GAxBP,eACA,OACA,0CACA,0CAGA,8DACA,CAAO,GAtBP,eACA,OACA,6CACA,6CACA,QACA,gEACA,CAAO,EAsCP,CAIA,CAEA,CAAC,EAAE,sCAAsC,sBACzC,aAEA,kBAaA,wBAEA,IAbA,EAYA,EACA,WACA,IACA,OAEA,UACA,QAEA,MACA,CAEA,cACA,MACA,KAEA,MACA,CAGA,GADA,QAEA,OAEA,CAEA,QAAc,IAAY,IAnC1B,KADA,EAqCA,MApCA,QAGA,IAiCA,EAhCA,OAEA,EA8BA,EAEA,CAEA,CAAC,EAAE,aAAa,sBAChB,aAEA,uBASA,cACA,mCACA,4CAGA,WACA,oCAGA,cACA,sCAGA,4BAMA,iBAMA,uBAMA,iBAMA,uBAGA,2CACA,0BAcA,WACA,WACA,WACA,UACA,WACA,UACA,EAEA,mCACA,aACA,GACA,WACA,wBAEA,yCAGA,CACA,EAEA,WAEA,CAAC,EAAE,kBAAkB,sBACrB,aAwCA,UA9BA,cACA,MA0BA,OAxBA,SACA,OACI,kBACJ,KAEA,sBACA,YACA,CAAK,GAEL,EADI,mBACJ,oCACA,QAlBA,qCACA,4CACA,cAwBA,MANA,sBACA,aAEA,UAGA,CACA,CAAK,GAAI,EAET,EAGA,CACA,CAIA,CAAC,GAAG,sBACJ,aAEA,gBAkBA,WACA,wBACA,iCACA,oEACA,YAdA,CACA,iDACA,6CACA,EAYA,gBApBA,CACA,kDACA,sDACA,EAkBA,mCACA,+DACA,+CACA,4DACA,aAfA,CACA,wDACA,4DACA,EAaA,2BACA,UACA,qBACA,gBACA,SAhCA,MAiCA,6CACA,iDAGA,CAAC,GAAG,sBACJ,aAEA,6BACA,gBAEA,wBACA,sBACA,gBACA,aACA,yCACA,yCACA,6CACA,CAAO,CACP,CACA,CAAG,CACH,CAEA,CAAC,EAAE,sCAAsC,sBACzC,aAEA,6BAiBA,UAfA,qBACA,eACA,EAGA,OACA,YACA,YACA,kBACA,SACA,eACA,CACA,CAAG,CACH,CAIA,CAAC,EAAE,uBAAuB,sBAC1B,aAEA,mCAOA,WACA,OANA,YACA,oBAMA,CAEA,CAAC,EAAE,iBAAiB,sBACpB,aAEA,uCACA,wCA6CA,UA5BA,YAEA,IAZA,EACA,EAUA,IACA,GACA,QAAa,CACb,YACA,EAoBA,MAvCA,iDAqBA,IAhBA,GADA,EAkBA,EAlBA,WACA,IAiBA,EAdA,CACA,WAHA,qBAIA,aACA,EAYA,4BACA,0BACA,YACA,iBACA,cACA,aACA,iCAEA,mBACA,4BACA,iCACA,2BACA,wBACA,qBAGA,CACA,CAIA,CAAC,EAAE,mDAAmD,uBACtD,aAEA,6BACA,gBACA,gBAEA,YAqDA,WACA,OApDA,YACA,+BAEA,SACA,2BAGA,2CACA,KACA,YACA,6CACA,CAAO,EACP,kBACA,sBACA,OACA,yCACA,yCACA,+CACA,SACA,eACA,CAAa,CACF,EAEX,EAAO,EAGP,yBACA,oCACA,eACA,OACA,kCACA,kCACA,QACA,mBACA,gCACA,SACA,OACA,aACA,EACA,iDACA,CAAS,GAIT,gCACA,8BACA,aACA,CAAK,CACL,CAAG,EACH,CAIA,CAEA,CAAC,EAAE,oDAAoD,uBACvD,aAEA,sBACA,kBAEA,gBAEA,sBACA,eACA,CAAK,GACL,CACA,CAEA,CAAC,GAAG,uBACJ,aAEA,qCAEA,aACA,0BAEA,sBACA,CAEA,oDACA,sBACA,8BAEA,EAEA,iCACA,wBACA,+CAEA,MACA,CAEA,uBAEA,EACA,uBACA,aACA,0BACA,uBAEA,sBACA,IAEA,EAAK,YAEL,EAEA,WAEA,CAAC,EAAE,+BAA+B,uBAClC,YAYA,WAVA,cAGA,OAFA,eAEA,uBAGA,OAFA,SAEA,CACA,CAAG,GAAI,CACP,CAIA,CAAC,GAAG,uBACJ,aAuBA,6BAEA,WACA,kCACA,sBACA,uCACA,CAAG,CACH,+BACA,sBACA,oCACA,CAAG,CACH,uBACA,sBACA,4BACA,CAAG,CACH,8BACA,qBACA,oCACA,sDACA,CAAG,CACH,8BACA,sBACA,mCACA,CAAG,CAGH,CAAC,EAAE,uBAAuB,uBAC1B,aAEA,sBACA,mBACA,eAGA,QACA,CAEA,CAAC,GAAG,uBACJ,aAEA,0BACA,MAEA,QAAc,WAAkB,IAChC,uCACA,YAIA,WACA,CAEA,CAAC,GAAG,uBACJ,aAEA,8BACA,iCACA,0BACA,gBACA,wBACA,wBACA,2BACA,uBACA,0BACA,6BACA,mCACA,6BACA,EACA,qDAEA,6CAEA,cAkBA,cACA,CAjBA,YACA,MACA,+CASA,GANA,sBACA,wBACA,mDAEA,CAAG,EAEH,yBACA,mDAEA,EAGA,GAEA,qCAEA,eACA,gCACA,oCACA,4BACA,gBACA,cACA,UACA,aAEA,uBAEA,iBAAwB,wBAA0B,EAClD,oBACA,CAEA,mCACA,kBACA,IACA,uCACA,EAAG,YAEH,uCACA,0BACA,EAEA,2CACA,gDACA,iCAEA,uBACA,iBACA,OACA,QACA,MACA,6BACA,SACA,QACA,OACA,oBACA,cACA,CACA,CAAG,EAEH,8CACA,EAEA,qCACA,aACA,wBACA,eACA,0BACA,oDAEA,oBAEA,8BAEA,GACA,GAEA,EAAK,aAGL,aACA,EACA,aACA,aACA,EAAK,YAEL,EAEA,+BAMA,GALA,QACA,4CAEA,2BAEA,4BAYA,GALA,sBAEA,2BACA,mBAEA,sBACA,qBAEA,GACA,4CAGA,MACA,CACA,0BACA,EAEA,iCACA,oCACA,uBAEA,EAEA,6BACA,sBACA,mBAEA,EAEA,6BACA,sBACA,mBAEA,EAEA,sCAGA,OAFA,QAEA,CACA,kBACA,eACA,gBAGA,YACA,EAAK,YACL,kBACA,eACA,gBAGA,YACA,EAAK,WACL,CACA,EAEA,yCACA,OACA,QACA,OACA,CACA,EAEA,gCACA,aACA,gEACA,yBACA,oBACA,EAEA,qCACA,gDACA,EAEA,qCACA,iBACA,mCACA,wBACA,EAEA,0CAeA,OAdA,gCACA,YACA,uBACA,qBACA,0BACA,yBACA,qCAIA,EAAK,YACL,uBAGA,qBAGA,gDACA,yBACA,uBAEA,MAA6B,yBAE7B,EACA,SACI,EACJ,SAGA,QACA,EAEA,WAEA,CAAC,EAAE,0TAA4T,uBAC/T,aAEA,0BAuBA,YACA,qBACA,eAEA,wBACA,IACA,CAAK,CACL,CAAG,CAGH,CAAC,EAAE,sBAAsB,uBACzB,aAEA,8BACA,8BACA,sCAEA,GACA,iBACA,MACA,OACA,SACA,UACA,SACA,SACA,eACA,aACA,oBACA,EAEA,cAQA,cACA,kBACA,iBACA,oBACA,uDAGA,yBAEA,4BACA,OACA,+BACA,wBACA,gBACA,cACA,aACA,UAAoB,IACpB,sBACA,EAEA,WAGA,qBACA,sBAEA,YAGA,uCAEA,oBACA,cACA,aACA,gBACA,oCACA,CAAK,EAEL,iBACA,mCAEA,0BAEA,gBAEA,qCACA,EAEA,oBAEA,6BACA,sCACA,iBACA,gBACA,oBACA,uBAEA,EAEA,gCACA,sBAGA,iCACA,iBACA,EAEA,wCACA,qEACA,qEACA,gBACA,+BACA,+BAEA,kCAGA,sCACA,+BAGA,2BACA,0DACA,uDACA,2CACA,4CAEA,sCACA,qCACA,oBACA,EAEA,WAEA,CAAC,EAAE,kFAAkF,uBACrF,aAEA,oCACA,2BAEA,cAEA,cACA,kBACA,eACA,CAEA,mCACA,WAEA,4CACA,aAIA,GAFA,aAEA,MAEA,uCAEA,MACA,CAEA,SACA,CACA,EAEA,6BACA,MAGA,GADA,SACA,yCAEA,gBACA,0BACA,EAEA,oBAEA,oBAEA,gCACA,sBAGA,iCACA,WAAc,eAA2B,CACzC,EAEA,WAEA,CAAC,EAAE,wDAAwD,uBAC3D,aAEA,qCACA,kBAEA,yBACA,WACA,EAGA,OACA,CAEA,sBACA,uCACA,iCACA,mBACA,qBAEA,OACA,qBACA,YACA,WACA,SACA,UACA,UACA,CAEA,CAAC,EAAE,iDAAiD,uBACpD,aAEA,6BAIA,cACA,iBACA,mBACA,CAEA,uBAPA,aASA,4BACA,wBACA,2BACA,mBACA,iBAEA,EAEA,6BACA,mBACA,EAEA,6BACA,oBAGA,mBACA,EAEA,gCACA,0CAGA,iCACA,2BACA,EAEA,WAEA,CAAC,EAAE,wBAAwB,uBAC3B,aAqBA,WACA,IApBA,YAKA,MAWA,EAdA,2DAGA,CAWA,IAbA,sDAGA,EAeA,KAbA,YAIA,MAIA,EAPA,yDAGA,CAIA,IANA,uDAGA,EASA,OAPA,gBACA,eACA,CAMA,CAEA,CAAC,GAAG,uBACJ,aAEA,WACA,+CACA,kEACA,gEACA,CAEA,CAAC,EAAE,8IAA8I,uBACjJ,aAEA,WACA,+BACA,gDACA,0CACA,wBACA,yBACA,wBACA,uBACA,CAEA,CAAC,GAAG,uBACJ,aAUA,iCAEA,WACA,4BACA,sBACA,kCACA,uDACA,CAAG,CACH,iCACA,sBACA,uCACA,+BACA,CAAG,CAGH,CAAC,EAAE,2BAA2B,uBAC9B,aAEA,2BAEA,YACA,iDACA,gBAGA,CAAC,EAAE,sBAAsB,uBACzB,aAEA,gBACA,uBAEA,gBACA,0BAeA,WAAkB,CAdlB,CACA,oBACA,yDACA,4BACA,yBACA,qCACA,gBACA,0BACA,sBACA,UACA,mBACA,CAAK,CACL,EAEkB,EAClB,CAEA,0BAEA,IADA,IACA,oCACA,EACA,kDACA,aACA,OAiGA,OA/FA,OACA,GACA,aACA,kBACA,cACA,uBACA,CACA,YACA,YACA,iDACA,4CACA,YACA,sBACA,EAEA,CAAW,CACX,2BACA,uBACA,gBACA,qCACA,iCACa,CACb,CAAW,CACF,CACT,EAGA,GACA,iBACA,YACA,GAGA,mBACA,GACA,cACA,YAEA,kBACA,gBACA,CACA,OACA,2BACiB,CACjB,oBACA,CAAe,CACf,CACW,CAEF,CACT,2BACA,uBACA,gBACA,4CACW,CACX,CAAS,EAGT,mCAGA,GACA,cACA,gDACA,qCACA,mCACA,gBACA,qCACA,iCACS,CACT,CAAO,CACP,kBACA,4CACA,YACA,sBACA,EAEA,CAAO,EAGP,0CACA,kDACA,sBACA,kBAGA,GACA,iBAGA,GACA,kBAIA,CACA,CAEA,CAAC,EAAE,cAAc,uBACjB,aAEA,sBACA,YAEA,IACA,sBACI,SACJ,QACA,CACA,CAEA,CAAC,GAAG,uBACJ,aAEA,cACA,mBAEA,+BACA,CAQA,UANA,cACA,OACA,UAEA,CAIA,CAAC,GAAG,uBACJ,aAEA,sBACA,OACA,GACA,8BACA,UAEA,CAEA,CAAC,GAAG,uBACJ,aAQA,WACA,QAPA,YAGA,iBAFA,+BAGA,CAIA,CAEA,CAAC,GAAG,uBACJ,aAGA,IADA,EACA,GACA,eACA,0BACA,yBACA,qBACA,CAsBA,WAhBA,YACA,aAIA,EAFA,kBAEA,oBAIA,mCACA,OACA,aAdA,+BAgBA,oBACA,CAIA,CAAC,GAAG,uBACJ,aAEA,sBACA,oCACA,CAEA,CAAC,GAAG,uBACJ,aAEA,sBACA,yCACA,8BACG,CACH,CAEA,CAAC,GAAG,uBACJ,YAaA,WAXA,YACA,SAEA,kBACA,IACA,KACA,wBAEA,CACA,CAIA,CAAC,GAAG,uBACJ,aA0BA,cAGA,OAFA,0BAEA,YACA,CA2BA,gBAEA,IADA,MACA,KAEA,WACA,sBAIA,OAIA,EAFA,EAnDA,GACA,iBAmDA,GAlDA,iBAkDA,EAlDA,QACA,kDAiDA,GACA,OAEA,YAGA,EAEA,mBACA,eAEA,yDAIA,kBACA,CAcA,WACA,MApEA,mBAKA,EAFA,2BAMA,sBACA,8BAEA,qBACA,mBACA,2BACA,2BAIA,OAFA,OAEA,CACA,CAAG,GAAI,EAdP,EAiBA,EA8CA,YACA,SAfA,cASA,OARA,QAEA,sCAxFA,GACA,MAEA,WACA,uBACA,SAIA,QACA,EA8EA,KACA,8BACA,8BACA,SAGA,CACA,EAMA,gBACA,CAEA,CAAC,GAAG,uBACJ,aAEA,2BACA,wBAKA,cAGA,+BAFA,QAEA,UACA,CAEA,qBAGA,EAFA,QAMA,OAHA,IAIA,CAiCA,WACA,kBACA,gBACA,gBAlCA,gBACA,kCACA,OACA,qBACA,iCACA,sCAmBA,CAjBA,yBACA,iBAEA,yBACA,iBAEA,IACA,IACA,kCACA,kBAGA,mBACA,6BAA8C,OAAgB,IAI9D,MACA,OAGA,CACA,CAMA,CAEA,CAAC,EAAE,4CAA4C,uBAC/C,aAEA,6BACA,oBACA,EAGA,8CACA,yBACA,CAAG,CACH,CAEA,CAAC,GAAG,uBACJ,aAEA,yBAMA,WACA,aALA,WACA,oCACA,CAIA,CAEA,CAAC,EAAE,oBAAoB,uBACvB,aAMA,UAJA,YACA,kBACA,CAIA,CAAC,GAAG,uBACJ,aAKA,qCAEA,cAEA,IADA,gBACA,SACA,mBAAuB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,IAAI,MAE7F,EACA,oEACA,KAEA,cACA,uEAGA,IACA,GACA,2BACA,2BACA,2BACA,2BAEA,mBACA,oBACA,gBAEA,GACA,uBACA,8BACA,oCACI,YAEJ,QACA,CAEA,WACA,iBACA,uBACA,CAAG,CACH,OACA,CAEA,CAAC,GAAG,uBACJ,aAwCA,kCAEA,WACA,oBACA,sBACA,0BACA,kDACA,CAAG,CACH,mCACA,sBACA,yCACA,QACA,+OACA,CAAG,CACH,oCACA,qBACA,0CACA,mDACA,CAAG,CACH,oBACA,qBACA,0BACA,2CACA,CAAG,CACH,6BACA,sBACA,mCACA,qDACA,CAAG,CACH,sDACA,sBACA,2DACA,CAAG,CACH,oDACA,qBACA,0DACA,qEACA,CAAG,CACH,yDACA,sBACA,+DACA,QACA,qGACA,CAAG,CACH,gDACA,sBACA,sDACA,0DACA,CAAG,CACH,mDACA,sBACA,yDACA,uDACA,CAAG,CACH,+BACA,sBACA,qCACA,6CACA,CAAG,CACH,gCACA,sBACA,sCACA,kCACA,CAAG,CAGH,CAAC,EAAE,4BAA4B,uBAC/B,aAMA,+CACA,+BACA,yBAuDA,WACA,SA5BA,YAGA,SACA,QACA,KAJA,kBAKA,gBACA,8BACK,EACL,gBAGA,OAFA,SAEA,cACA,CAAK,CACL,GAeA,YANA,WACA,QACA,EASA,QA7DA,SA8DA,CAEA,CAAC,EAAE,8FAA8F,uBACjG,aAEA,4BACA,4BACA,qCACA,gCACA,mCACA,+BACA,8BACA,yCACA,gBACA,kCACA,qCACA,wCACA,sBACA,sBACA,uCACA,0BACA,uCAEA,+CAEA,GACA,SACA,WACA,2CACA,CAmMA,cACA,4CAKA,wDApMA,qCAuMA,oCACA,YAyDA,CAvDA,UACA,8BACA,gCACA,uCACA,kDAGA,qBACA,gCACA,6CACA,4BAIA,sBACA,QACA,8BACA,gBACA,cACA,oCACA,sBACA,CAAK,EACL,KACA,mBAmBA,CAlBA,yCAKA,0BACA,uDAIA,KADA,gDACA,sBAEA,wBACA,oCACA,EAPA,8CAWA,kBACA,kCAGA,6CACA,qDAEA,EACA,EAAO,aAKP,UACA,yBACA,YACA,WACA,EAAO,aAIP,qBACA,EAEA,2CACA,YACA,uBACA,wBACA,yDACA,SACA,MACA,sDAGA,CAAG,IA8BH,OA5BA,gBACA,uDACA,wBAEA,sBACA,gBACA,6BACA,iBACA,QAEA,SACA,CACA,8BACA,iBACA,gBACA,uBACA,iBACA,QACA,mCACK,CACL,aACA,qBACA,gBAEA,WACA,GAAK,YAGL,CACA,EAgPA,sCACA,kBAEA,4CAMA,iEAEA,gDACA,MAWA,OAPA,EAFA,oBACA,uCACA,MAEA,yBAGA,eAEA,CACA,CAAG,GApBH,eACA,qCAoBA,EAEA,iDACA,WACA,4CAWA,OATA,kBACA,oCAEA,QAEA,oBACA,kEAGA,oBACA,iBACA,SACA,SACA,WACA,cACA,sCACA,CAAS,EACT,iBAGA,OAFA,mCAEA,CACA,CAAS,CACT,CAAK,EACL,yBAGA,cACA,8BAKA,MAFA,kCAGA,eACA,OACA,0CACA,0CACA,gDACA,SACA,eACA,CAAa,CACF,GAIX,eACA,KACA,+BACA,+BACA,qCACS,EAET,CAAK,CACL,EAuEA,sCACA,iBAGA,kDACA,gBACA,iBACA,gDACA,CACA,iCAIA,eACA,0CAIA,mCAuBA,gBACA,oBACA,gCACA,CACA,iCAIA,oBACA,iBACA,kBACA,SAlDA,uCAmDA,cACA,kCACA,CAAO,CACP,CAAK,EACL,yBAGA,MAFA,mCAGA,gBACA,iBACA,wCACA,CACA,iCAIA,eACA,OACA,0CACA,0CACA,gDACA,SACA,eACA,CAAa,CACF,KAIX,gBACA,iBACA,2DACA,CACA,iCAIA,eACA,KACA,+BACA,+BACA,qCACS,GAET,CAAK,IA7EL,gBACA,iBACA,wDACA,CACA,iCAIA,eACA,OACA,0CACA,0CACA,gDACA,SACA,oBACA,wEAEA,CAAS,CACF,GA4DP,EA+BA,oDAEA,IADA,EACA,cAEA,wCACA,gBACA,oBACA,wEACA,CACA,iCAIA,eACA,MACA,wDAKA,sBACA,qBACA,KAEA,CAAG,EAEH,GACA,eACA,OACA,iEACA,iEACA,0CACA,CAAO,IAIP,0CACA,0BAEA,MAAqB,IACrB,eACA,CAAG,EAEH,gBACA,oBACA,sDACA,CACA,iCAIA,kDACA,gBACA,YACA,IACA,0BACA,wDACA,qDACA,CAAS,EACT,iBACA,oCAIA,OAFA,4BAEA,CACA,CAAS,EAOT,OALA,qBACA,EAAU,CACV,kCAGA,CACA,CAAK,EACL,wBAIA,CAHA,uCACA,yBAEA,wCACA,gBACA,iBACA,mEACA,CACA,iCAIA,eACA,MACA,qDAKA,iBACA,wBAIA,QACA,uDAEA,gBACA,iBACA,sEACA,CACA,8BACA,GAGA,eACA,OACA,+DACA,KACA,+DACA,KACA,QACA,0DACA,QACA,SACA,eACA,CACA,CAAW,IAIX,iBACA,CAAK,EACL,iBAYA,OAXA,wBACA,uCACA,yBACA,gBACA,iBACA,wDACA,CACA,iCAIA,kBACA,CAAK,EACL,EAEA,0CACA,0BAIA,sBACA,kDACA,iCACA,uDACA,IAEA,2CACA,gCACA,mCACA,iCACA,kCACA,sCACA,6CACA,wCACA,qCACA,QACA,YACA,wCACA,EAAO,cAIP,+CACA,EAEA,4CACA,qDAIA,+DACA,EAWA,yDAWA,OAVA,wCACA,gBACA,oBACA,mEACA,CACA,iCACA,GAIA,uDACA,YACA,0BACA,EAAK,YAEL,EAWA,yDACA,8DACA,YACA,0BACA,EAAK,YAEL,EAEA,iDACA,GAEA,WAKA,qBACA,EACA,YACM,IACN,6CACA,EACA,iBACA,qBACA,kBACA,sBACA,kBACS,EACT,iBACA,YACA,CAAS,EACT,kBACA,WACA,CAAS,EAET,CACA,EAEA,uDACA,WACA,WAEA,2CACA,8BACK,CACL,EAEA,kDACA,oCAEA,OACA,gBACA,SACA,EACA,iBACA,iBACA,CAEA,EA+BA,wCACA,IAEA,EAFA,OACA,KAEA,GACA,gBACA,6CACA,EACA,GAEA,uBACA,4BACA,kBACA,sBACA,kBACA,uCAiBA,OAdA,2BACA,YAGA,UAEA,gBACA,oBACA,uCACA,CACA,iCAIA,oBACA,iBACA,kBACA,2CACA,cACA,+BACA,CAAO,CACP,CAAK,EACL,iBAoBA,OAnBA,8BAEA,gBACA,iBACA,uCACA,CACA,iCAGA,0BACA,gBACA,iBACA,kCACA,CACA,iCAKA,CACA,CAAK,EACL,yBACA,cACA,+BAGA,gBACA,iBACA,sCACA,CACA,iCAIA,eACA,KACA,+CACA,+CACA,qDACS,GAET,CAAK,CACL,EAmBA,mCACA,4CACA,iEACG,CACH,EA+DA,sCAEA,IADA,EACA,QACA,0BACA,EACA,4CAyFA,OAvFA,qBACA,iDACA,wBACA,iDAGA,GACA,GACA,4CACA,0DAGA,oDASA,IACA,EAAM,CACN,CACA,oBACA,CAAK,CACL,GAEA,wBAOA,QACA,+BAEA,+BACA,8BAGA,mCACA,qCACA,WACA,EAEA,uBACA,aACA,gCACA,gCACA,KAEA,EAAK,aASL,CANA,eACA,gCAEA,oBAGA,KACA,aACA,iBAEA,kCACA,wDAGA,0BACA,KACA,cACA,gBACA,oBACA,2BACA,CAAS,GAGT,uCACA,2BACA,mBACA,gCAEA,EAAK,aAGL,OACA,YACA,YACA,EAAK,WAEL,EAEA,4CAEA,IADA,EACA,OACA,gBACA,6CAEA,gBAz4CgB,IAAI,kCAy4CpB,UAA6C,IAAI,EADjD,gCAEA,GACA,cACA,iBACA,CAEA,WACA,oBAEA,YACA,wBAEA,cACA,gCAGA,uBACA,4BACA,QACA,EAEA,gDACA,EACA,GAGA,IADA,EACA,2CAIA,WACA,GAGA,kEACA,kEACA,qCACA,0CACA,mBACA,8CACA,oBACA,iDACA,+CACA,kCACK,CACL,kCACA,uCAOA,GAJA,yCACA,8CAGA,qBA4BA,SA3BA,kBACA,6BACA,oDAEA,IAIA,eACA,WAEA,YAGA,+BACA,0BAGA,8DACA,4CACA,4CAGA,qCACA,sCAGA,0BACA,6CACA,oCAIA,6CACA,qDAEA,EAAI,IAEJ,4CAEA,+BACA,8CAGA,aAEA,uBAEA,gBACA,mBACA,eACA,GAgBA,OALA,4CACA,qBACA,0CAGA,CACA,EAWA,wDACA,CACA,aACA,qCACA,mCAEA,oCACA,OACA,UACA,mBACA,0DAEA,CAAK,CAIL,EAWA,4CACA,QAIA,GAFA,QAGA,6BACA,+BAEA,SAGA,QAAc,WAAqB,IAGnC,GAFA,OAEA,qBACA,SAIA,QACA,EAEA,iDAEA,OACA,0CACA,iCACA,4BAiDA,OA9CA,4BACA,oBAGA,+BACA,0BAGA,qCACA,sCAGA,qCACA,sCAIA,sCACA,gBACA,IA1BA,CA0BA,eACA,yEACA,CACA,kBA7BA,KA6BA,aAIA,gCAEA,2CACA,kCAGA,8BACA,gCACA,0CACA,4CAEA,2CACA,kCAGA,mDACA,mDAIA,CACA,EAEA,8CACA,0BACA,yBACA,EACA,yCACA,mBAGA,GACA,eACA,cAHA,mDAIA,SACA,wBACO,CACF,EAoBL,OAjBA,EACA,sDAEA,oDACA,kCACA,2BACA,0BAEA,UACA,mCAIA,yBACA,8CAGA,CACA,EAEA,+CAEA,IADA,EACA,KA4BA,OA1BA,kBACA,wBAGA,GACA,cACA,UAAe,CACf,aAGA,gCACA,gCAGA,6CACA,4DAGA,uCACA,gDAGA,yCACA,oDAGA,CACA,EAcA,gCACA,WAQA,OANA,uBAEA,mDACA,8DAGA,0BACA,iBAEA,CAAK,EACL,uBACA,gBAIA,2BAHA,iBAIA,CAAK,CACL,EAEA,4BAEA,CAAC,EAAE,ygBAAygB,uBAC5gB,aAEA,WACA,4CACA,gBACA,mCACA,+BACA,CAAG,CACH,0CAGA,CAAC,GAAG,uBACJ,aAEA,sCACA,8BACA,oCACA,uCACA,mCACA,gCACA,2BACA,0BACA,gBACA,8BACA,uBACA,2BACA,4BACA,EACA,4DAEA,YAMA,cACA,aAEA,sBACA,oCACA,sBAEA,cACA,sDACA,gBACA,iEAEA,0BACA,6BAEA,yCACA,CAlBA,qCAoBA,iBAEA,6CACA,aACA,kBAGA,yBACA,aACA,cACA,EAAK,YAEL,EAEA,2CACA,uDACA,EAEA,qCAEA,IADA,IACA,aAMA,CAJA,QAEA,sCAGA,mBAGA,8BAEA,mCAEA,0BACA,iBAMA,OALA,YACA,iBACA,4CAGA,2BACA,CAAK,EACL,iBAOA,OANA,YACA,iBACA,gDACA,8BAGA,wBACA,CAAK,EACL,iBACA,+CACA,EACA,EAEA,CAAK,EACL,iBAQA,OAPA,4BAEA,YACA,iBACA,8CAGA,CACA,CAAK,EACL,kBAQA,OAPA,4BAEA,YACA,iBACA,2CAGA,iBACA,CAAK,EACL,EAEA,uDACA,WACA,uDACA,EAEA,yCACA,uDACA,EAEA,qCACA,uDACA,EAEA,+CACA,8BACA,iCAEA,6CACA,0BAEA,EAEA,yCACA,WACA,gDAEA,6CACA,iBACA,SACA,WACA,cACA,MACA,CAAO,EACP,kBACA,IAEA,EAFA,qCACA,mDAeA,OAZA,SACA,kDACA,WACU,SACV,oCACA,WAEA,yBAGA,gCAEA,eACA,OACA,YACA,YACA,kBACA,SACA,eACA,CAAa,CACF,EAEX,CAAO,CACP,CAAG,CACH,EAEA,4CAUA,OACA,UAEA,kBACA,qBACA,mCACA,iBAEA,EAEA,8CACA,EACA,GAEA,YAEA,gCACA,6CACI,QAIJ,oCAEA,gBALA,YAQA,GACA,mDACA,EACA,EACA,EAGA,GACA,OACA,+CACA,+CACA,gDACA,CAAK,EAGL,IACA,EAEA,2DACA,EACA,GAEA,WAaA,OAXA,QAEA,0CAKA,yBACA,gCACA,6BAEA,0CAYA,OAXA,YACA,iBACA,sDACA,4BAEA,YACA,iBACA,6DACA,kCAGA,CACA,CAAG,CACH,EAEA,2CACA,EACA,GAEA,IAGA,EAHA,IACA,4BAIA,YACA,oBACA,wDACA,WAGA,EACA,6BAMA,CAJA,2BACA,gBACA,mBACA,EACA,uCAEA,uCAEA,EAEA,0CAIA,OAHA,0CACA,kCAEA,kBACA,EAEA,yCACA,EACA,GAEA,OACA,cACA,YACA,kBACA,kBACA,YACA,eACA,iCACA,uCACA,uBACA,4BACA,oCAEA,EAEA,iDACA,WAAkB,GAClB,EAEA,0CACA,OACA,eACA,EAaA,MAXA,2BACA,6CACA,oDACA,8BACA,4CACA,2CACA,yCACA,iDACA,2BAGA,kBACA,EAEA,8CACA,iCAEA,WACA,oCACA,yBACA,gBACA,qBAIA,oBACA,0CAEA,oCACA,yBACA,0BACA,qBAIA,mCACA,OACA,qBACA,6BACA,wBACO,EAGP,EAEA,wCACA,YAIA,CAFA,8BAEA,4BAMA,6CAUA,gBARA,IAAsB,4BACtB,uBACA,4BACA,uCACA,oBACA,yBACG,IAbH,eACA,yCAeA,EAEA,oCACA,sCACA,qCACA,mBACA,MACA,SACA,UACA,cACA,CAAG,EACH,EACA,gBACA,mEACA,sBACA,IAqBA,OAnBA,mBACA,GACA,sBACA,cACA,gBACA,cACA,QACA,UACA,2BACA,EACA,qCACA,sBACA,QACA,WACA,CAAK,CACL,CAAG,EAEH,qDAEA,CACA,EAEA,uCAeA,OARA,GACA,IANA,gBACA,kCACA,iBACA,oBACA,aAGA,OAjbA,IAkbA,MAjbA,IAkbA,kDACA,qCACA,CAAG,CAGH,EAEA,yCACA,gCACA,qCACA,EAEA,2CACA,cACA,uBACA,kBAGA,4CACA,sDACA,qBAGA,kBACA,sDACA,qBAEA,EAEA,gCAKA,OAJA,qEAEA,2BAEA,iBACA,EAEA,WAEA,CAAC,EAAE,8XAAgY,uBACnY,aAKA,sBAEA,cACA,cACA,CAEA,0BACA,YACA,CACA,aACA,GAGA,iDACA,GAEA,oCA0BA,OAxBA,YACA,uIAA2I,0cAmB3I,EACA,+DACA,eAEA,CACA,EAEA,gDACA,YACA,MACA,qDACA,KACA,GAKA,OAFA,iCAEA,CACA,EAEA,WAEA,CAAC,EAAE,iBAAiB,uBACpB,aAEA,sBAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,iDACA,GAEA,oCACA,IACA,sBACA,uCACA,+CACA,iEA8DA,OA3DA,YACA,4yBAiDA,GACA,iBACA,6CACA,sBAEA,EACA,+DACA,eAEA,CACA,EAEA,WAEA,CAAC,EAAE,iBAAiB,uBACpB,aAEA,oBACA,wBACA,0BACA,uBAEA,WACA,SACA,mBACA,qBACA,iBACA,CAEA,CAAC,EAAE,qFAAqF,uBACxF,aAEA,sBACA,oCACA,2BACA,8BAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,WACA,oCACA,4BAGA,4CACA,6CAEA,QACA,yCACA,cACA,wCACA,EAEA,EAEA,yDACA,GAEA,MACA,qDACA,KACA,GAKA,OAFA,6BAEA,CACA,EAEA,0CACA,WACA,yCACA,CACA,qBACA,CAAK,CACL,WAEA,EAEA,EAEA,wDACA,0EACA,EAEA,oCACA,EACA,EACA,EACA,GAEA,QAYA,GAVA,KAEI,sBACJ,KAEA,kDAEA,OANA,KASA,GACA,oDAEA,MACA,CAGA,CADA,iCACA,YAEA,0BACA,uBACA,6BACA,KACI,wBACJ,WACA,yCACA,CACA,SACA,CAAO,CACP,WACA,GACA,EAGA,EAEA,WAEA,CAAC,EAAE,0GAA0G,uBAC7G,aAEA,kBACA,6BAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,2CAEA,EAEA,uDACA,GAcA,OAZA,sDACA,wDACA,gDACA,+CACA,6BACA,mCACA,sCACA,wCACA,iCACA,+BACA,0CAEA,CACA,EAEA,sCACA,WAWA,OATA,uBACA,cACA,gCACA,wBACA,+BACA,0BACA,CAAK,CACF,EAEH,gBAGA,8CACA,uBAEA,gBAGA,EACA,YACA,6BACA,EAAK,cAEL,EAEA,uDACA,YACA,MAQA,MANA,8BACA,yBACM,kCACN,6BAGA,CACA,EAEA,iDACA,gDACA,KACA,GAOA,OAJA,yBACA,+BACA,+BAEA,CACA,EAEA,0CACA,WAEA,qCACA,aACA,iBAOA,OANA,uCACA,gDACA,WACA,EAGA,CACA,CAAK,CACL,EAEA,uCACA,EACA,GAEA,WACA,KACA,oBACA,wBACA,wBACA,4BACA,0BACK,EAEL,EAEA,WAEA,CAAC,EAAE,yCAAyC,uBAC5C,aAEA,kBACA,kCACA,6BACA,oCACA,+CACA,8BACA,2BACA,2BACA,8BACA,8BACA,mCAEA,EACA,mDACA,uCACA,YAEA,GACA,WACA,YAKA,kBACA,mBACA,oBACA,CAEA,4CAIA,cACA,eAEA,4BACA,sBACA,iCACA,kBACA,EACA,4BACA,wCACA,sBACA,wBA0yBA,kBACA,6BACA,+BACA,qBACA,uBACA,sBACA,+BACA,sCACA,CA/zBA,qCAgBA,uCACA,aACA,CAAC,EAED,WACA,CACA,kBACA,oBACA,WACA,YACA,kBACA,mBACA,oBACA,CACA,uBAGA,4CACA,+CACA,wBACA,CAAG,EACH,8CACA,sBACA,CAAG,EACH,wCACA,+BACA,CAAG,EACH,yCACA,gCACA,CAAG,EACH,+CACA,uCACA,CAAG,EACH,gDACA,sCACA,CAAG,EACH,iDACA,uCACA,CAAG,CACH,EAEA,sCACA,UAAsB,IACtB,OAEA,+BACA,iBACA,iBACA,CAAK,EACL,gBACA,0CACA,CAAK,EACL,iBAGA,CAAK,EACL,gBACA,yBACA,CAAK,EACL,gBAMA,OALA,mCACA,2BACA,sDACA,6CAEA,CACA,CAAK,CACL,EAEA,2DACA,EACA,GAEA,iCACA,YACA,8DACA,KACA,EACA,EAEA,EAAK,YAEL,EAEA,4CACA,4BACA,gCACA,YACA,oBACA,iDAGA,uBACA,+BAEA,EAEA,mDACA,WACA,aAEA,8DACA,GAEA,wDACA,aACA,mDACA,YACG,CACH,EAEA,6CACA,EACA,GAUA,OARA,IAEA,iBACA,mCACA,+BACA,4BAGA,CACA,EAEA,8CACA,GAEA,wBASA,OAPA,IAEA,kBAEA,0BAGA,CACA,EAEA,oDACA,oCAUA,OARA,YACA,wFAGA,EACA,sEACA,eAEA,CACA,EAEA,6CACA,0CACA,+DACA,2DACA,OAEA,aACA,4BACA,oDACA,mDACA,iBACA,CAyBA,OAvBA,4BACA,kBAIA,cAKA,GACA,EAEA,GACA,8BAGA,GACA,8BAGA,mDAEA,CACA,EAEA,0CACA,wCACA,EAEA,sCACA,WACA,oBAEA,wBAIA,QAEA,4BACA,4CAEA,EACA,uBACA,uBACA,gBAQA,yBACA,eACA,gBACA,CAAO,GAVP,sDAEA,eACA,4CAQA,CAAK,EACL,kBACA,WACA,8CACA,8CACA,oDACO,EAEP,yCAEA,sDACA,YACA,UACA,iDAEA,sBACA,qDAEA,CAAK,GAzCL,uBA8CA,8CACA,WAEA,6BACA,gBAIA,OAFA,+DAGK,EACL,iBACA,kCACA,iBACA,mBACA,EACA,yCAEA,sBACA,mCACA,kCACA,CAAS,CACT,CAAO,EACP,sBACA,yBACA,0CAGA,qCAEA,6BAEA,8BACA,KACA,CAAO,EAEP,0DACA,aAEA,sBACA,qBACA,qCAEA,CAAK,EACL,kBAGA,OAFA,6DAEA,iBACA,CAAK,CACL,EAEA,8CACA,6BACA,uBACA,EAEA,wDAEA,EAEA,yDACA,GAEA,8BACA,gBAmBA,MAjBA,8BACA,YACA,eACA,GAGA,aAEA,oCACA,0BACA,kBAEA,uCACA,6BACA,qBAGA,CACA,EAEA,4CACA,WAEA,6BACA,gBACA,mCAUA,OARA,8DACA,YACA,UACA,kDAEA,mDACA,CAAO,eAEP,cAAiC,MAAmB,CACpD,CAAK,EACL,kBAGA,OAFA,qDAEA,eACA,EACA,EACA,2CAGA,CAAK,CACL,EAEA,gDACA,kEAEA,gCACA,oCAGA,kCAGA,4DACA,WAEA,mBACA,oDAEA,sDACA,YACA,iBACA,oDAGA,4BACA,CACA,EAEA,wCACA,0CAGA,2CACA,EACA,GAEA,WACA,kCACA,EACA,6DACA,EACA,GACA,WACA,wBACA,uCAoBA,OAlBA,IAGA,YACA,oBACA,gEA3bA,OA8bA,GACA,wCAIA,YACA,oBACA,mEAGA,sBACA,gBACA,0BACA,cACA,WACA,MACA,MACA,oBACA,CACA,CAAO,CACP,CAAK,EACL,iBACA,8CACA,wBACA,EACA,oBAUA,OAPA,iCACA,EACA,YACA,UACA,qEAGA,kBACA,CAAK,EACL,kBACA,aACA,8CACA,8CACA,oDACA,SACA,eACA,CAAS,CACF,EAOP,OALA,YACA,UACA,mEAGA,iBACA,CAAK,CACL,EAEA,wDACA,WAaA,qBACA,MAQA,GANA,YACA,iBACA,6DACA,4BAGA,2BACA,sBACA,kDAGA,MACA,CAEA,qBAEA,cACA,eACA,cACA,EACA,2BACA,iBACA,mCACA,CAAW,EACX,kBACA,kCACA,CAAW,EACX,KAEA,aAOA,OANA,YACA,iBACA,uDACA,eAGA,eACA,WACA,WACA,QACA,uCAEA,KACA,YACA,WACA,WACA,QACA,0CAEA,KACA,YACA,WACA,QACA,mCAEA,KACA,YACA,WACA,QACA,gCAEA,KACA,YAIA,YACA,iBACA,6CAEA,QACA,iCAEA,KACA,SACA,QACA,6BAEA,CAEA,WACA,eACA,mBACA,+BACW,EAGX,kCAIA,CACA,CACA,EAEA,8CACA,EACA,UAEA,MAQA,0CACA,KACA,EACA,GAVA,OACA,+CACA,+CACA,gDACA,CAAK,CAQL,EAEA,uDACA,cACA,MASA,MANA,uCACA,qCAEA,mCAGA,CACA,EAEA,iDACA,gDACA,KACA,GAEA,8BAoBA,OAlBA,+BACA,EACA,kBAEA,mCAEA,oBACA,2CAEA,SACA,kBAEA,qBACA,0CAGA,0BAEA,CACA,EAEA,uCACA,EACA,GAEA,WAEA,qCACA,aACA,iBACA,iCAOA,aACA,IACA,CANA,+BACA,4BAOA,kCAIA,mBACA,wBAEA,qCAEA,CAAO,CACP,CAAK,CACL,EAEA,2CAGA,kDAKA,yBACA,MACA,CACA,uBACA,uBACK,CACL,CACA,cAAsB,qCAAoD,EAG1E,EAEA,0CACA,WAEA,qCACA,aACA,iBASA,GARA,yCAEA,eACA,8BAEA,sBACA,4CAEA,0BACA,yCACA,aACA,qDACA,qDACA,QACA,2BACA,yBACA,yDACA,eACA,GACA,CAAW,CAEX,mDA4BA,OA1BA,gBACA,gCAEA,qBACA,0CAEA,sBACA,4CAEA,kBACA,oCAEA,OACA,cAGA,iBACA,sBAEA,mCACA,wCAEA,gBACA,gCAGA,kBACA,CAAK,CACL,EAEA,yCACA,WAEA,oCACA,WACA,iBASA,OARA,2BACA,EACA,GACA,kDAEA,oCAGA,CACA,CAAK,CACL,EAEA,gDACA,yCACA,sBACA,CAAG,EAEH,yBAGA,gCAUA,OATA,iBACA,gCAQA,+BACA,EAEA,2CACA,WACA,aAEA,oCACA,yBACA,oCACA,gBACA,CAAK,CACL,CAAG,CACH,EAYA,WAEA,CAAC,EAAE,uVAAuV,uBAC1V,aAEA,mCACA,yBACA,0CACA,gCACA,oBAwXA,cACA,WACA,iBAEA,aAEA,yBACA,+CACA,0BACA,CAAG,CACH,CAEA,iBA6LA,mCACA,MAQA,OANA,qCACA,IACA,oCACA,GAGA,+BACA,EAyBA,2DACA,GAMA,MAJA,oBACA,kBAGA,wDACA,EA0BA,sCACA,yDACA,wBACA,CAAG,CACH,EAmFA,wCACA,yCACA,EAcA,gCAOA,OAFA,OAJA,sBACA,iBAKA,0BACA,EAEA,4BAEA,CAAC,EAAE,8IAA8I,uBACjJ,aAGA,qCACA,+BACA,2CACA,qCACA,gCACA,8BACA,wBACA,uBAEA,8BAwNA,YACA,SAlHA,YACA,kBACA,EAgFA,YACA,4BAEA,eACA,aACA,wCACA,wCACA,8CACK,EAGL,UACA,QACA,uBACA,sBACA,0BACA,wBACA,uBACA,qBACA,SACA,aACA,yCACA,yCACA,QACA,YACA,UACA,kHACA,CAAO,CACP,CACA,EA7GA,GAEA,SACA,QACA,OACA,gBACA,6BACA,CAAK,EACL,gBACA,gCACA,IACA,QACA,8BACA,gBACA,cACA,YACA,MACA,CAAS,EACT,iBAEA,IADA,EACA,uBACA,+BAgCA,CA9BA,WAEA,uBACA,0BAGA,0CACA,2CAGA,8BAEA,KACA,6BAIA,cAEA,gBACA,2CAGA,YACA,SACA,0EAEA,gCAGA,GACA,0BAGA,mDAEA,EACA,CAAS,EACT,SACA,gBACA,YACA,gBACA,gCACA,sCACA,WACA,CAAO,SAEP,SACA,kBACA,QACA,CAAS,EAGT,CACA,CAAK,CACL,GAuCA,QA/NA,SAgOA,CAEA,CAAC,EAAE,sQAAsQ,uBACzQ,aAEA,WACA,kDACA,wBACA,uEACA,uEACA,CAAG,CAGH,CAAC,GAAG,uBACJ,aAiDA,qCAEA,WACA,qBACA,sBACA,2BACA,qDACA,CAAG,CACH,sCACA,sBACA,4CACA,qEACA,CAAG,CACH,wBACA,sBACA,8BACA,mCACA,CAAG,CACH,4BACA,sBACA,kCACA,QACA,uIACA,CAAG,CACH,8BACA,sBACA,mCACA,CAAG,CACH,mCACA,qBACA,yCACA,yEACA,CAAG,CACH,yCACA,qBACA,+CACA,6DACA,CAAG,CACH,qCACA,qBACA,2CACA,wDACA,CAAG,CACH,wCACA,qBACA,8CACA,kDACA,CAAG,CACH,iCACA,sBACA,uCACA,QACA,6EACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,2EACA,CAAG,CACH,4BACA,qBACA,kCACA,QACA,mFACA,CAAG,CACH,+BACA,sBACA,qCACA,2BACA,CAAG,CACH,0CACA,sBACA,gDACA,qDACA,CAAG,CACH,oCACA,sBACA,0CACA,QACA,sEACA,CAAG,CACH,oCACA,sBACA,yCACA,CAAG,CACH,mCACA,qBACA,yCACA,mEACA,CAAG,CACH,+CACA,sBACA,qDACA,QACA,mGACA,CAAG,CACH,iCACA,sBACA,uCACA,QACA,2FACA,CAAG,CACH,sBACA,qBACA,4BACA,0DACA,CAAG,CACH,yCACA,qBACA,+CACA,QACA,oFACA,CAAG,CACH,iCACA,sBACA,uCACA,4CACA,CAAG,CACH,4CACA,sBACA,kDACA,iDACA,CAAG,CACH,0CACA,sBACA,gDACA,oDACA,CAAG,CACH,0CACA,sBACA,gDACA,8CACA,CAAG,CACH,6BACA,sBACA,mCACA,QACA,mLACA,CACA,CAEA,CAAC,EAAE,+BAA+B,uBAClC,aAEA,+BAEA,wDAEA,CAAC,EAAE,0BAA0B,uBAC7B,aAUA,kCAEA,WACA,iEACA,sBACA,uEACA,QACA,kFACA,CAAG,CACH,8CACA,sBACA,mDACA,CAAG,CACH,mDACA,qBACA,wDACA,CACA,CAEA,CAAC,EAAE,4BAA4B,uBAC/B,aAMA,+CACA,qCACA,gCACA,uBAEA,+BAiCA,WACA,SAvBA,YACA,sBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,cACA,wBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,CACT,CAAO,CACP,CAAK,CACL,GAQA,QAxCA,SAyCA,CAEA,CAAC,EAAE,8JAA8J,uBACjK,aAEA,4BACA,8BACA,gBACA,uCACA,sBACA,+BA2BA,cACA,mCACA,CA4IA,cACA,OACA,cACA,kBACA,kBACA,kCACA,aAWA,OARA,eACA,8BAGA,WACA,sBAGA,CACA,CA3IA,4CACA,MAMA,OAFA,QAFA,SAEA,iBAEA,oBACA,iBACA,kBACA,2BACA,aACA,MACA,cACA,CAAS,CACF,CACP,CAAK,EACL,KACA,aAMA,OALA,YACA,oBACA,iDAGA,qBACA,EAEA,EAAO,YAEP,EAaA,4CACA,kDAEA,wDAGA,eACA,MACA,oEAKA,EACA,SACA,iBACA,MACA,MAxGA,sGAAwG,kFAyGxG,WACA,OACA,kBACA,CAAa,CACF,CACX,qDACA,CAAS,CACF,EACP,gBACA,YACA,EACA,gDAIA,CAAO,EACP,kBACA,IACA,EADA,0BAuCA,OApCA,YACA,EACA,8CAIA,MACA,0CAEA,UACA,yDACA,yDACA,QACA,8CACA,EACA,wBACA,SACA,eACA,CAAa,EACF,EAGX,GACA,UACA,8DACA,8DACA,QACA,mHACA,EACA,KACA,SACA,eACA,CAAa,EACF,EAGX,iBACA,CAAO,CACP,CAAG,CACH,EAkCA,gCAGA,OAFA,uBAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,wJAAwJ,uBAC3J,aAMA,OAJA,4BACA,YACA,0BAA2C,UAC3C,GACA,sBACA,sBAEA,WADA,aACA,YACA,CAEA,CAAC,EAAE,sBAAsB,uBACzB,aACA,sCAA+C,SAAa,EAC5D,qCACA,4CACA,+BACA,sCACA,+BACA,sCACA,OACA,sCACA,0FAA4F,oDAAoD,uDAAuD,qEAAqE,KAAK,GAAG,EACpR,+BACA,8EAAgF,8CAA8C,iDAAiD,qEAAqE,KAAK,GAAG,EAC5P,sCACA,0FAA4F,oDAAoD,2BAA2B,GAAG,EAC9K,+BACA,0FAA4F,oDAAoD,2BAA2B,GAAG,EAC9K,4CACA,iCAAmC,mBAAmB,wCAAwC,4DAA4D,KAAK,GAAG,EAClK,qCACA,iCAAmC,mBAAmB,kCAAkC,wEAAwE,yIAAyI,wKAAwK,2BAA2B,wKAAwK,SAAS,OAAO,KAAK,GAAG,CAE5qB,CAAC,GAAG,uBACJ,aACA,MACA,qBACA,WAWA,OAVA,EACA,eACA,YACA,iCAAiD,IAAO,IAExD,aADA,eAEA,uDAEA,QACA,GACA,qBACA,EACA,EACA,4BACA,YACA,0BAA2C,UAC3C,EACA,sCAA+C,SAAa,EAC5D,uBACA,6BACA,0BACA,wBACA,iBAGA,aACA,cACA,iBACA,uBACA,oBACA,2BACA,+BACA,6CACA,4DACA,qCACA,wBACA,gBACA,4BACA,eACA,CAAK,EACL,6BACA,2BACA,uBACA,4CACA,4DACA,2CACA,qCACA,mCACA,iCACA,gCACA,sCACA,+BACA,uBACA,MACA,4BACA,OACA,eACA,iBACA,QACA,WACA,UACA,SACA,cACA,aACA,gBACA,CAAO,CACP,qBACA,CAAK,EACL,oCACA,CA2UA,OA1UA,kCACA,WACA,oCACA,iDACA,IACA,CAAO,EACP,wDACA,gEACA,gBACA,CAAO,EACP,oCACA,qCACA,CAAK,CACL,EACA,yCACA,UACA,kBACA,qCACA,uCACA,iBAEA,UACA,kCACA,GAEA,UACA,8BACA,EAGA,EACA,cACA,IACA,oDACA,GACA,wBACA,uBACA,KACA,CAAS,CACT,EACA,aACA,IACA,+CACA,YACA,4DAEA,GACA,wBACA,0BACA,CAAS,CACT,CACA,gCACA,IACA,IACA,EACA,SACA,kCACA,GAEA,yCACA,CAAK,EAKL,OAJA,kCACA,gEACA,oBACA,oBACA,EACA,iBAGA,OAFA,wBACA,4CACA,CACA,CAAO,EACP,kBAGA,OAFA,wBACA,4CACA,mBACA,CAAO,CACP,EACA,yCACA,WACA,eAGA,sBACA,oBACA,sBAEA,0BACK,CArIL,IAsIA,EACA,wCACA,yCACA,0CAEA,EACA,uCACA,kBACA,iCACA,kDACA,gBACA,EACA,qCACA,gBAGA,6CACA,SACA,CAAK,EACL,iBACA,EACA,wCACA,gBAGA,+CACA,KACA,YACA,CAAK,EACL,0DACA,EACA,iCACA,gBAGA,yCACA,0CACA,EACA,mCACA,gBAGA,2CACA,6CACA,EACA,oCACA,WACA,+CACA,iBACA,MACA,gCACA,gCACA,eAEA,OADA,mCACA,iCACA,CAAO,EACP,iBACA,MAMA,qBACA,wBACA,oBACA,qCACA,WACA,sBACA,uBACA,CAAS,EACT,CAAO,EACP,kBACA,yBAIA,sDACA,qBACA,CAAO,CACP,EACA,8CACA,kBACA,oBAGA,aACA,iEAGA,OAFA,uCACA,gEACA,kBACA,wBACA,gBACA,CAAS,CACT,CAAO,EAEP,yDACA,yBACA,2BAEA,eACA,SAKA,OAJA,IACA,YACA,yDAEA,GACA,cAIA,KACA,eACA,aACA,eACA,MACA,eACA,iCACA,uBAGA,OAFA,kBAEA,kBACA,wBACA,QACA,CAAa,CACb,eACA,gBACA,KACA,gBAEA,OADA,cACA,oBAIA,CAEA,mCACA,sBACA,EACA,yBACA,QACA,QACA,CAAS,CArRT,IAsRA,CAAO,CACP,CAAK,EA5DL,sBA6DA,EACA,gCACA,oBACA,wBACA,gDAEA,0BACA,mDAEA,EACA,iCACA,6CACA,2BACA,EACA,gEACA,YACA,8DACA,OACA,qBACA,QACA,CACA,CAAO,mBACP,SACA,0DACO,CACP,EACA,wDACA,OACA,SACA,2CACA,wBACA,EAOA,OANA,gBACA,qCAEA,kBACA,iCAEA,gDACA,OACA,CAAK,mBACL,uDACK,CACL,EACA,wDACA,WAIA,MAHA,oCACA,yEACA,sDACA,iBACA,sBACA,gCACA,OACA,QACA,gBACA,aACA,sBACA,sBAEA,CAAK,CACL,EACA,sDACA,EACA,GAKA,GAHA,YACA,OAEA,qBACA,8BAEA,OACA,QACA,CAAU,gCAAyC,CACnD,EAEA,EACA,qCACA,sCACA,+BACA,4CAEA,CAAK,CACL,EACA,wDACA,wBACA,8BAEA,yCACA,4CACA,qCACA,0BACA,uBACK,mBACL,cACK,CACL,EACA,CACA,CAAC,GACD,WAEA,CAAC,EAAE,iGAAmG,uBACtG,aAGA,4BACA,2CACA,qCACA,gCACA,uBACA,+BACA,8BACA,eACA,+BAiKA,WACA,SAvFA,YACA,cAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,eAEA,0CACA,eACA,mCAKA,qBACA,qCAEA,eACA,8CAIA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,iBACA,iCAIA,CAFA,WAEA,qCAIA,EAHA,0CAIA,CAAS,EAET,kBACA,WAEA,mCAEA,kBACA,QACA,CAAO,EACP,CAAK,CACL,GAgCA,mBANA,YACA,8BACA,EASA,QAvKA,SAwKA,CAEA,CAAC,EAAE,4PAA4P,uBAC/P,aAEA,mDACA,8CACA,2CACA,kDACA,mDACA,+CAmCA,WACA,YACA,iBAnCA,WACA,OACA,8DAEA,EAgCA,WACA,QACA,YATA,WACA,eACA,EAQA,YACA,cACA,eACA,gCA5BA,WACA,qDAGA,oDAIA,KAIA,mDACA,EAgBA,8BArCA,iBACA,OAIA,WACA,CAgCA,CAEA,CAAC,EAAE,gRAAgR,uBACnR,aAUA,WACA,2CACA,kCACA,6DACA,sEACA,sDACA,CAEA,CAAC,GAAG,uBACJ,aAiCA,qCAEA,WACA,mBACA,sBACA,yBACA,iDACA,CAAG,CACH,mCACA,sBACA,yCACA,iDACA,CAAG,CACH,uCACA,sBACA,6CACA,sCACA,CAAG,CACH,kBACA,qBACA,wBACA,0CACA,CAAG,CACH,oBACA,sBACA,0BACA,+CACA,CAAG,CACH,gBACA,sBACA,sBACA,QACA,mEACA,CAAG,CACH,yBACA,sBACA,+BACA,4CACA,CAAG,CACH,qBACA,qBACA,2BACA,iDACA,CAAG,CACH,wBACA,sBACA,8BACA,QACA,uEACA,CAAG,CACH,yCACA,sBACA,+CACA,8DACA,CAAG,CACH,6BACA,qBACA,mCACA,2DACA,CAAG,CACH,2CACA,qBACA,iDACA,kEACA,CAAG,CACH,iDACA,qBACA,uDACA,qDACA,CAAG,CACH,2CACA,sBACA,iDACA,qDACA,CAAG,CACH,4CACA,sBACA,kDACA,8CACA,CAAG,CACH,2CACA,sBACA,iDACA,4DACA,CAAG,CACH,0CACA,qBACA,gDACA,yCACA,CAAG,CACH,0BACA,sBACA,gCACA,sCACA,CAAG,CACH,oCACA,sBACA,0CACA,gDACA,CAAG,CACH,2BACA,qBACA,iCACA,qCACA,CAAG,CACH,oBACA,sBACA,oBACA,QACA,mHACA,CAAG,CAGH,CAAC,EAAE,+BAA+B,uBAClC,aACA,sCAA+C,SAAa,EAC5D,8BACA,oCACA,mCACA,6BACA,gCACA,8BACA,kCACA,4BACA,0BACA,wCACA,OACA,wCACA,wCACA,oDACA,wDACA,oEACA,4DACA,gEACA,0DACA,sEACA,wEACA,2DAEA,CAAC,GAAG,uBACJ,aACA,uBAYA,UAVA,mBACA,0BACA,sBAEA,oBACA,+BAEA,iCAKA,CAAC,EAAE,kBAAkB,uBACrB,aAEA,+BACA,2BAiEA,WACA,mBAhEA,YAMA,IAJA,EAEA,EACA,EACA,gBACA,eACA,kBACA,EACA,0BAIA,EACA,MAHA,UAGA,sCACA,oBACA,uBAEA,qBAQA,sCACA,kBASA,CAHA,WAGA,iBACA,qCACA,eAOA,IACA,4CAKA,EAIA,EAIA,EAHA,EAJA,EAQA,CAIA,CAEA,CAAC,EAAE,oDAAoD,uBACvD,aAEA,4CACA,yBACA,mCACA,wBACA,mCAWA,+BAEA,6BACA,8BACA,gCACA,kBACA,qBAMA,cACA,6BACA,aACA,yBACA,uBACA,8BACA,QAkDA,OAhDA,SACA,kBACA,oCACA,SACA,CAAK,EACL,SACA,kBACA,oCACA,UACA,IACA,GACA,CAAK,EACL,SAA8B,aAG9B,EACA,YAEA,EALA,GAMA,iBACA,YACA,CAAS,EACT,kBASA,qBACA,qBACA,SACA,kCAGA,WAEA,CAAW,CACX,CAAS,EAGT,UACA,GACA,CAAG,EACH,cAEA,CACA,CAcA,aACA,6EACA,CA3EA,qCAuSA,WACA,YAhDA,YAGA,OA3EA,WACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EARA,6BAUA,MACA,6BAEA,MACA,CACA,kCACA,gCACA,gCACA,gCACA,gCACA,gCACA,mCACA,mCAEA,0CACA,YA7BA,CA9FA,sCAA0C,CAC1C,eAAmB,EACnB,EAAM,EACN,SAAoC,EACpC,qBAAyB,EACzB,iBAAqB,EACrB,iBAAqB,EACrB,QAAY,EACZ,SAAa,EACb,WAAe,EACf,aAAiB,EACjB,gCAAoC,EACpC,EAAM,EACN,CAyEA,OAxEA,CACA,SAA6C,EAC7C,eAAmB,EACnB,uBAA2B,EAC3B,yBAA6B,EAC7B,qBAAyB,EACzB,aAAiB,EACjB,cAAkB,EAClB,wBAA4B,EAC5B,EAAM,EACN,CAEA,CACA,SAAwC,EACxC,cAAkB,EAClB,cAAkB,EAClB,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,+BAAmC,EACnC,cAAkB,EAClB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAA0C,EAC1C,cAAkB,EAClB,cAAkB,EAClB,qBAAyB,EACzB,qBAAyB,EACzB,cAAkB,EAClB,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAAmC,EACnC,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAAwC,EACxC,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,gBAAoB,EACpB,kBAAsB,EACtB,cAAkB,EAClB,EAAM,EACN,EAUA,WA+BA,OAEA,OAEA,KAnNA,kBAoNA,YAlOA,grFAoOA,OACA,yCAEA,OACA,YAtOA,8GAwOA,OACA,+BAEA,OACA,6BAEA,6BACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,6BAEA,uCACA,mBACA,CAAG,CACH,IAgBA,IACA,EA6CA,YACA,qBA/BA,YACA,YAEA,cACA,cACA,EA7MA,CACA,IALA,+BA3EA,GA2EA,sBAMA,KAJA,8BA9EA,GA8EA,sBAKA,EA2MA,wBAmBA,OAjBA,SACA,CACA,KARA,uBASA,iBACA,iCACA,aACA,sCACA,UACA,YACA,OAxSA,IAySA,MA1SA,GA2SA,CAAK,CACL,YACA,YACA,GAGA,CACA,EAMA,YAxTA,IAyTA,aAxTA,GAyTA,CAEA,CAAC,EAAE,sJAAsJ,uBACzJ,aAEA,4BACA,+BACA,kCACA,0BACA,uBACA,0BACA,iCACA,sBACA,uCACA,+BACA,8BACA,wBACA,mCACA,8BACA,mCACA,uCACA,yBAMA,mBACA,0BAEA,YAsBA,cACA,UAEA,uDACA,gDACA,oCACA,mDACA,yCACA,uCACA,iDACA,4BACA,gCACA,4CACA,kDACA,kEACA,oDACA,qDACA,uBACA,mEACA,8BACA,8CACA,0DACA,2DACA,sBACA,oCACA,oCACA,qCACA,qCACA,wCACA,4BACA,sCACA,sCACA,4BACA,sCACA,gCAEA,sCACA,uDAEA,YACA,oBACA,+DAUA,6BACA,YACA,oBACA,qCAEI,uBACJ,yDACA,gDAEA,UACA,IACA,YACA,QACA,EACA,iCACA,YACA,oDACA,kDACA,yCACA,2BACA,gBACA,yBACA,SACA,SACA,iBACA,MACA,QACA,WACA,CAAe,CACF,EACb,iBACA,cACa,CACb,CAAS,CACT,sBACA,+BACA,CAAS,CACT,cACA,CAAO,EACP,iBAOA,OANA,0BACA,YACA,iBACA,gCAGA,CACA,CAAS,EACT,iBAOA,OANA,YACA,iBACA,mCAEA,uBAEA,CACA,CAAS,CACT,CAAK,EACD,wCAIJ,4BAtIA,IAuIA,CAvI2C,GAuI3C,gCAtIA,IAwIA,yDAEA,IADA,IACA,0BACA,gBACA,yBACA,uBA+CA,OA7CA,IACA,sBACA,2CACA,gBACS,EACT,iBACA,yBACA,CAAS,EACT,kBACA,QACA,CAAS,EAET,mCACA,iDAEA,IACA,8BACA,gBAMA,OALA,YACA,iBACA,yBAGA,CACA,CAAS,EACT,kBAMA,OALA,YACA,iBACA,4BAGA,eACA,OACA,sDACA,sDACA,QA0BA,WA1BA,EA2BA,uBACA,4BACA,uCACA,iEACA,+DA9BA,mCACA,oDACA,SACA,eACA,CAAe,CACF,EAEb,CAAS,EAET,aACA,iBAGA,uBAFA,KAGA,CAHiD,EAIjD,kBAEA,wBACA,CAAS,CACT,CAAK,EAEL,CAilCA,cAGA,MAFA,kDAEA,qBACA,mBAMA,IADA,4CAEA,2BAIA,OAFA,OAEA,CACA,CAAG,GAAI,EAMP,OAJA,cACA,oBAGA,CACA,CAEA,cAKA,UAJA,UAIA,eACA,CAuBA,aACA,MAWA,OATA,gCAEA,qBACI,kCACJ,uBACI,uCACJ,6BAGA,CACA,CA11CA,qCAmNA,gDACA,EACA,GAEA,IACA,IADA,OAGA,EADA,qBACA,kCACA,KACA,6BACA,aACA,aAEA,0CACA,yBAGA,6BACA,IACA,SACA,iBACA,MACA,4CACA,WACA,OACA,kDACA,qBACA,CAAa,CACF,CACF,CACF,EACP,iBACA,SACA,+DACO,MACH,CAEJ,GACA,sCACA,uCACA,+BAEA,kDAGA,kBACA,oCACA,oCACA,CAAO,EAUP,cARA,GACA,oCACA,oCACA,0BACA,oCACA,8BACA,yBACA,GACA,cACA,GAEA,qBACK,EADkD,EAGvD,EACA,SACA,iBACA,MACA,qCACA,WACA,OACA,4CACA,kBACA,iBACA,kCACA,8BACA,iBACA,8BACA,oCACA,+BACA,qCACA,qBACA,EACA,MACA,CAAe,CACF,CACF,CACF,CACF,EACP,iBACA,4DACO,CACP,CAEA,0BACA,kDAMA,8CACA,sDACA,2BAGA,kCACA,CAAK,CAXL,SAaA,+BAIA,sCACA,8BACA,CAAG,CACH,EAEA,kCACA,wBAuhCA,2BACA,oDAthCA,YACA,oBACA,qCAGA,wBAEA,oBACA,4CAEA,YACA,oBACA,sCAEA,6BAEA,iEACA,iBAGA,iEAGA,mCACA,kCAEA,uBAEA,eAGA,EAEA,8BACA,gCACA,aACA,2BACA,KACA,EACA,yBACA,sDACA,sCACA,sBACA,gBACA,GACA,OACA,qBACA,0BACA,oBACA,sBACS,EAgDT,OA7CA,wBACA,iDAEA,sBAGA,8BACA,0BAKA,wCAEA,2CAIA,gEACA,+BACA,GACA,uDAEA,mCACA,iCACA,iCAEA,sBACA,qBACA,qBAGA,6BAGA,2BAFA,2BAKA,gCACA,wBACA,8BACA,2BACA,sCACA,6CAGA,GACA,sDACA,yCACA,CAAS,EACT,IACA,cAEA,EAAK,YAEL,EAUA,0CACA,6BACA,4CACA,kCACA,gCACA,+CACA,CAAG,CACH,EAUA,6CACA,oCACA,EAIA,+CACA,WACA,mBAMA,OAJA,eACA,4CAIA,KACA,IADA,6CAGA,EAEA,sDAIA,2BASA,6BAGA,kCACA,iCACA,EAwCA,iCACA,iBAKA,CAFA,QAEA,mCACA,eACA,6CAIA,gCAqDA,CApDA,uBASA,kCACI,8BAWJ,qCACI,2BAcJ,0CAaA,mDAIA,iBACA,wBACA,iBACA,sCACA,CAAS,EACT,oBAitBA,EA9sBA,OAFA,6BAgtBA,GACA,MA/sBA,EA+sBA,mBACA,oBACA,SACA,WAltBA,EAktBA,UACA,iBAntBA,EAmtBA,GACK,EAptBL,EAutBA,YACA,gCACA,+BAztBA,EA0tBA,qBAIA,CA7tBA,CAAS,CACT,CAAK,EACL,kBACA,wBACA,iBAIA,sCACA,CAAS,EACT,gBAGA,OAFA,6BAEA,iBACA,CAAS,CACT,CAAK,EACL,EA8BA,iDACA,8BAMA,sCAMA,uBACA,6BACA,kDAIA,aACA,mCACA,kCACA,GApBA,eACA,+CAoBA,EAEA,qDACA,WAOA,OALA,+DACA,2CACG,EACH,4BAEA,+BAuCA,OAtCA,EACA,aACA,qBACA,qDACA,gDACA,6CACA,WACA,iBACA,8DACA,CAAO,EACP,iBACA,YACA,iBACA,mCACA,CACA,6CAIA,4BACA,qCACA,oBACA,sBACA,4BACS,CACT,CAAO,EACP,kBACA,YACA,iBACA,mCACA,CACA,6CAIA,4BACA,CAAO,EAEP,mBACG,CACH,EAEA,mDACA,WAEA,2BACA,iBACA,6BACA,4CACA,qCAEA,kBACA,iBACA,MACA,QACA,WACA,IACA,CACA,CAAS,CACF,CACP,CAAK,EACL,iBACA,mBACK,CACL,EASA,gEACA,GAEA,WAEA,uDACA,eAEA,oCAWA,OAVA,+BAEA,YACA,iBACA,yCACA,CACA,6CAIA,GACA,eACA,yBACA,gBACA,sBACA,iCAEA,cACA,sBACA,mCAGA,CAGA,wCACA,oBACA,IAEA,EACA,8CACA,QACA,UAGA,qCACA,CAAK,CACL,CAAG,CACH,EAEA,kDAGA,OAFA,KAGA,2BAHA,KAGA,wBACA,kBACA,sBACA,OACA,gCACA,gCACA,sCACA,SACA,CAAS,EAET,CAAK,EACL,iBACA,yBACA,CAAK,CACL,EAEA,4CACA,kBAEA,4CACA,eACA,oDAIA,6DACA,kBACA,sBACA,OACA,4DACA,4DACA,QACA,0DACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EACL,iBACA,eAEA,oCAYA,OAXA,+BAEA,YACA,iBACA,8CACA,gBACA,CACA,6CAIA,GACA,cACA,aACA,eACA,sBACA,MACA,2CAGA,gBACA,yBAMA,CAGA,iCACA,sBACA,yCACA,CAAS,0BACT,CAAO,CACP,CAAK,CACL,EAEA,0DACA,WA2CA,OAzCA,YACA,oBACA,qCACA,CACA,0CACA,GAGA,oCACA,+CACA,4BAEA,4BACA,iBACA,YACA,iBACA,uCACA,CACA,6CAIA,4BACA,qCACA,oBACA,sBACA,4BACO,CACP,CAAK,EACL,kBACA,YACA,iBACA,uCACA,CACA,0CACA,GAGA,4BACA,CAAK,EAEL,+BAGA,OAFA,eAEA,mBACG,CACH,EAEA,wDACA,cAIA,8BAIA,wBACA,EAEA,kEACA,IACA,IADA,OAGA,gCACA,2CAQA,cACA,MAEA,EACA,gCACA,kBACA,GACA,CAAO,EACP,iBAEA,yBACA,wCAEA,uCAEA,mCAEA,EACA,6BAEA,8BAEA,0BACO,CACP,CAgCA,OA7DA,+DACA,4BAEA,wCA8BA,uCACA,6BAEA,8BAIA,KACA,gBACA,KACA,EAEA,oEAKA,0CACA,MACA,uDAEA,wBACA,GACA,mBAGA,EAEA,+BAWA,OAVA,eAGA,sBACA,iCACA,IACA,4BAEA,CAAK,2CAEL,mBACG,CACH,EAEA,iDACA,WAkDA,OAhDA,gEAEA,4BAEA,oBACA,gBACA,kDACA,CAAK,EACL,iBACA,0CAEA,YACA,iBACA,kCAGA,6BACA,CAAK,EACL,kBAUA,GATA,YACA,iBACA,kCAGA,yBACA,0CAGA,mCACA,0BACA,iCAGA,MACA,CAEA,0BACA,OACA,wCACA,wCACA,8CACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EAEL,uBAGA,mDACA,WAEA,4CACA,aAEA,0BACA,yBACA,sCACA,+BAEA,WACA,iBACA,MACA,QACA,WACA,OACA,4BACA,iBACA,CACA,CACA,CAAS,CACF,GAGP,iBACA,CAAG,CACH,EAEA,kDACA,WAEA,2CAKA,OAJA,yBACA,qEAGA,iBACA,CAAG,CACH,EAcA,gCACA,WAIA,OAFA,sCAEA,yBACA,YACA,yBACA,mCAGA,8CACA,gCAEA,sBACA,EAAK,YAEL,EAEA,sDACA,oEACA,oCACA,IACA,gCAGA,sCACA,mCAeA,qDACA,WACA,OAKA,iCACA,uBAqCM,gBACN,YACA,iBACA,kCAGA,MACM,cACN,6DACA,EACA,OACA,6BACA,6BACA,mCACA,SACA,eACA,2CACA,iBACa,CACF,CACF,IAEH,eACN,8DACA,iCAGA,YACA,iBACA,yCAEA,4BAnEA,EACA,uBACA,iBASA,OARA,YACA,iBACA,8DACA,CACA,6CAIA,GACA,qCACA,oBACA,sBACA,4BACW,CACX,CAAS,EACT,kBAEA,4DAGA,KAGA,YACA,iBACA,4DACA,CACA,6CAIA,IACA,CAAS,EAmCT,4BACA,CAAG,CACH,EAEA,iDACA,4BAKA,gDACA,sBAEA,kBACA,EAAQ,CACR,GACA,gEAGA,EAiFA,4BAEA,CAAC,EAAE,ghBAAghB,uBACnhB,aACA,sCASA,MARA,8BACA,iCAAiD,IAAO,IAExD,aADA,eACA,2CACA,YAEA,QACA,GACA,qBACA,EACA,wBACA,2CACA,iCACA,6BACA,mBACA,KACA,GACA,YACA,wBACA,oCACA,0BACA,oBACA,UACA,oBACA,kBACA,UACA,UACA,cACA,qBACA,EACA,GACA,OACA,aACA,mBACA,cACA,WACA,MACA,WACA,UACA,MACA,MACA,QACA,YACA,CACA,iBACA,cACA,iBACA,CAIA,gBACA,aAAgD,MAChD,mBACA,cACA,qDAEA,QACA,CACA,cACA,SACA,8BACA,SAEA,gBACA,OAhBA,kBAA+C,wBAAgD,EAkB/F,sBACA,WACA,sCACA,CAAK,EACL,oCACA,EACA,IAEA,CACA,CACA,0BACA,uBACA,EACA,yBACA,WACA,aACA,EACA,sBACA,kBACA,aACA,QACA,cAEA,EACA,2BACA,iBACA,MACA,kFAEA,2BACA,gDAEA,oBAEA,GADA,SAAqC,QACrC,OACA,EACA,4BACA,WACA,cACA,eACA,EACA,gCACA,iBACA,IACA,EACA,UACA,WAEA,CAAC,EAAE,+IAA+I,uBAClJ,aACA,sCAA+C,SAAa,EAC5D,mCACA,mBACA,iBAsBA,4BArBA,gBACA,QACA,QAAgB,oBAAuC,KACvD,oBACA,uBAGA,qBAEA,EADA,iBACA,oBAGA,iBAEA,aACA,oBAEA,UACA,MACA,CACA,CAGA,CAAC,EAAE,8BAA8B,uBACjC,YAiMA,WAhMA,CACA,MACA,gBACA,YACA,aACA,cACA,mBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,YACA,sBACA,kBACA,gEACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,oBACA,4BACA,wBACA,iBACA,YACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,eACA,uBACA,mBACA,8BACA,YACA,mBACA,MACA,WACA,MACA,CACA,CAAK,CACL,UACA,oBACA,gBACA,6BACA,cACA,gBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,KACA,eACA,WACA,iCACA,cACA,sBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,UACA,oBACA,gBACA,UACA,IACA,cACA,cACA,cACA,cACA,gBACA,OACA,cACA,UACA,KACA,KACA,KACA,gBACA,gBACA,YACA,KACA,KACA,IACA,YACA,YACA,YACA,YACA,CACA,cACA,4BACA,MACA,WACA,MACA,CAAS,CACJ,CACL,SACA,mBACA,eACA,UACA,OACA,aACA,gBACA,gBACA,QACA,GACA,GACA,EACA,CACA,cACA,kCACA,MACA,WACA,MACA,CAAS,CACJ,CACL,KACA,eACA,WACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,gBACA,eACA,OACA,OACA,OACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,gBACA,CACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,KACA,eACA,WACA,uBACA,cACA,sBACA,MACA,YACA,MACA,CAAS,CACJ,CACL,OACA,iBACA,aACA,kEACA,cACA,aACA,MACA,WACA,MACA,CACA,CAAK,CACL,WACA,qBACA,iBACA,kBACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CAIL,CAAC,GAAG,uBACJ,aACA,sCAA+C,SAAa,EAC5D,eAOA,QANA,mBACA,EAGA,8BAFA,IAGA,CAGA,CAAC,GAAG,uBACJ,aACA,sCAA+C,SAAa,EAC5D,uBA6BA,gBAlBA,gBATA,QAMA,CANA,EAUA,EAVA,mBAAoF,uBAA8B,UAMlH,GACA,aAMA,6BACA,IAOA,gDANA,EASA,CACA,CAAK,EAdL,IAeA,CAGA,CAAC,GAAG,uBACJ,aACA,sCAA+C,SAAa,EAC5D,0BAIA,mBAHA,YACA,6CACA,CAGA,CAAC,GAAG,uBACJ,aAIA,sCAA+C,SAAa,EAC5D,iBAqBA,UANA,kBAdA,IACA,EACA,EACA,EAMA,SAMA,kBAfA,EAgBA,KAhBA,EAgBA,KAfA,mBAEA,WADA,gBACA,IACA,4CACA,4CACA,MACA,MAGA,UADA,EASA,EARA,EACA,wBAOA,EANA,qBAOA,CAGA,CAAC,GAAG,uBACJ,aACA,sCAA+C,SAAa,EAC5D,kBACA,iBACA,8BACA,eACA,aACA,cACA,aAAkC,MAClC,0BACA,2BACA,iCAQA,qCACA,kDACA,oBACA,kBACA,8FACA,CAiOA,OAhOA,yBACA,WACA,EACA,qBACA,eACA,EACA,uCACA,kCAGA,yBACA,EACA,uCACA,SAGA,gBAGA,2BAGA,uBACA,GACA,EACA,+BACA,kBACA,EACA,iCACA,oBACA,SAEA,kBAEA,GADA,yBACA,qBAGA,oBAFA,QAKA,wBACA,IACA,UAEA,QAF8B,CAE9B,iCACA,MAGA,iCACA,iDACA,wBACA,CAAa,EAGb,mBACA,SACA,8BACa,EAEb,GACA,EACA,wCACA,WACA,mCACA,uBACA,IACA,CAAa,GAEb,kDAEA,CAAS,CACT,EACA,6BACA,oBACA,SAGA,WACA,cACA,WACA,0BACA,uCAGA,wCAEA,cAEA,QADA,KACA,IAAiC,mBAAuB,IACxD,kBAGA,8CAIA,6CAGA,iBACA,GAGA,qBACA,YACA,UACA,iBACA,CAAS,EACT,sCACA,4CACA,4BACA,GACA,EACA,8BACA,QACA,oBACA,SAEA,0CACA,YAA4B,wBAA2B,KACvD,wBACA,uBACA,aAEA,CAEA,yBACA,kBACA,wCACA,SAEA,4CACA,MACA,SAEA,YAAwB,WAA2B,IACnD,YAEA,OADA,cACA,GAGA,QACA,EACA,gCACA,sBAGA,oBACA,YAAwB,wBAA2B,KACnD,wBACA,+BACA,CACA,wBACA,EACA,sDACA,oBAIA,mBACA,EACA,oDACA,iCAGA,kBACA,uBAMA,+BACA,gBAEA,CACA,CAAS,EACT,mBAKA,QACA,CAAS,EApBT,IAs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BAEA,+BACA,CAEA,CAAC,EAAE,mBAAmB,uBACtB,qCACA,CAAC,EAAE,MAAQ,uBACX,qCACA,CAAC,EAAE,MAAQ,uBACX,qCACA,CAAC,EAAE,gGAAkG,uBACrG,qCACA,CAAC,EAAE,MAAQ,uBACX,qCACA,CAAC,EAAE,MAAQ,uBACX,sCACA,CAAC,EAAE,OAAS,uBACZ,sCACA,CAAC,EAAE,yBAA2B,uBAC9B,sCACA,CAAC,EAAE,OAAS,uBACZ,sCACA,CAAC,EAAE,OAAS,uBACZ,sCACA,CAAC,EAAE,OAAS,uBACZ,sCACA,CAAC,EAAE,OAAS,uBACZ,sCACA,CAAC,EAAE,+BAAiC,uBACpC,sCACA,CAAC,EAAE,iCAAmC,uBACtC,sCACA,CAAC,EAAE,8BAAgC,uBACnC,sCACA,CAAC,EAAE,2BAA6B,uBAChC,sCACA,CAAC,EAAE,2BAA6B,uBAChC,+CAEA,CAAC,EAAE,uCAAuC,uBAC1C,aAEA,WACA,kBACA,YACA,gBACA,4BACA,oBACA,cACA,qBACA,CAAG,CACH,oBACA,kBACA,uBACA,6BACA,wBACA,qBACA,0BACA,CAAG,CACH,gBACA,kBACA,uBACA,wBACA,qBACA,0BACA,CAAG,CACH,wBACA,YACA,yBACA,sCACA,4BACA,oBACA,UACA,oBACA,kBACA,UACA,cACA,qBACA,CAAG,CACH,eACA,YACA,yBACA,sCACA,4BACA,oBACA,UACA,uBACA,kBACA,UACA,cACA,qBACA,CAAG,CACH,wBACA,YACA,2BACA,sCACA,yBACA,oBACA,UACA,oBACA,kBACA,UACA,cACA,qBACA,CAAG,CACH,uBACA,YACA,gBACA,4BACA,yBACA,CAAG,CACH,QACA,0DACA,0GACA,CAAG,CACH,iCACA,+BACA,yCACA,uEACA,8DACA,sBACA,oEACA,kEACA,kEACA,2CACA,CAEA,CAAC,GAAG,uBACJ,aAEA,2BACA,0BACA,gCACA,mBACA,uBACA,qBACA,0BACA,+BACA,mCACA,mCACA,uCAKA,GACA,WACA,YACA,QACA,CACA,GACA,OACA,SACA,eACA,QACA,WACA,YACA,CACA,mCACA,cAGA,kBA6cA,EACA,EAxbA,IArBA,0BACA,+BACA,mDACA,iCACA,8CAKA,OAJA,kCACA,sBAGA,CACA,EAAG,cAAe,EAClB,sCAicA,EA/bA,wDAgcA,YACA,GAGA,kBACA,sBACA,YAEA,GAMA,aACA,IAMA,SACA,CAAK,EAGL,GAtdA,2BACA,gBACA,uBACA,gCAEA,0BACA,uCAEA,oEAEA,YACA,CAEA,iBAEA,kCAEA,IADA,EACA,OACA,yBACA,4BACA,0CACA,OAIA,iBAEA,iCACA,CAAG,CA/CH,KAiDA,iBACA,yBACG,mBAGH,OAFA,kBAEA,yCACA,CAAG,mBAGH,OAFA,4BAEA,4BACA,CAAG,mBACH,oBACA,wDACA,CAAG,CACH,EAEA,0CACA,sBACA,EAEA,kDACA,0CAGA,yCACA,6BACA,iCACA,iCACA,EAEA,4CACA,qCAEA,UAIA,iCACA,oCACA,EAEA,6CACA,WAEA,qDACA,oBAEA,gCACA,CAAG,CACH,EAEA,kDACA,4BACA,yCACA,EAEA,yCACA,+BAEA,6BACA,+BACA,iBACA,WACA,CAAG,CACH,EAEA,iDACA,+BACA,wCACA,kCACA,gBACA,CAAG,CACH,EAEA,4CACA,oCACA,eACA,CAAG,CACH,EAEA,sCACA,qDACA,sBACA,4BACA,EAEA,uCACA,sBACA,6BACA,EAEA,oCACA,4BAGA,qDACA,wCACA,4CACA,EAEA,iDACA,cAIA,yCACA,QACA,MACI,kCAGJ,gBAGA,kBAOA,iDAIA,+DAIA,gBACA,EAEA,oDACA,0DAEA,GADA,0DACA,2CAEA,uBAQA,8BAIA,2BAKA,EAEA,oDACA,0CACA,GACA,kDACA,YAGA,kDAEA,gBACA,2FAEA,2CAGA,IAIA,gBACA,yCAEA,yCAEA,EAEA,yCAKA,mCACA,EAEA,8CACA,kCAGA,yCACA,wCACA,EAEA,+CACA,sCACA,EAGA,iCAGA,8CACA,kCAGA,+CACA,uBACA,EAEA,+CACA,qBACA,KACA,OACA,CACA,EAEA,2DACA,IACA,EAEA,QAAc,sCAAyC,IACvD,GAJA,KAIA,2DACA,SAIA,QACA,EAEA,6CACA,iCAGA,8CACA,iDAGA,wCACA,uCACA,EAEA,6CACA,oCACA,EAEA,oCACA,6BACA,EAEA,kCACA,0BACA,EAEA,yCACA,+BACA,EAEA,uCACA,6BACA,EAEA,kDACA,IAEA,EAFA,OACA,oBAWA,OARA,gDAEA,mBACA,yGACA,GACA,EAAK,EAGL,kBAGA,OAFA,0CAEA,yBACA,CAAG,kBACH,oBACA,+CACA,CAAG,CACH,EAEA,wDACA,iDAEA,8CAGA,gDACA,kBAEA,kBACA,oBAGA,qCACA,2EACG,mBACH,wDAGA,OAFA,aAEA,CACA,CAAK,CACL,CAAG,mBACH,0BACA,CAAG,CACH,EAEA,oDACA,WACA,+CACA,EACA,GAEA,IAoFA,EApFA,OAWA,OAyEA,EA/EA,kCADA,GAoFA,eApFA,IAIA,UAGA,CACA,CAAG,CACH,IAEA,4BACA,2BACA,CAAG,CACH,EAEA,oDACA,WACA,mDAGA,yBACA,uDAgBA,mBAZA,0BAA8E,yBAAqD,EAEnI,oBAiCA,EAhCA,MAuBA,EASA,MAhCA,EAgCA,GAMA,aACA,gBACA,sBAxCA,EAwCA,sBACG,oBAIH,OAHA,uEACA,CADsF,OACtF,SAEA,KAF0B,GAE1B,WACA,CAAG,EAXH,mFAZA,iBACA,OACA,UACA,KA1BA,EA0BA,CAEA,CAAG,EA5BH,iBAKA,OAJA,WACA,yCAGA,CACA,CAAK,CACL,CAAG,GAEH,wBAKA,IAJA,wBACA,kBACK,EAEL,OACA,6DAGA,kBAAwC,YAAiB,CACzD,CAAG,CACH,EAqEA,WAEA,CAAC,EAAE,oOAAoO,uBACvO,aAEA,+BACA,uBACA,mBACA,0BACA,sBACA,gCACA,+BAEA,yBACA,qBACA,mCACA,sBACA,uBACA,2BACA,4BACA,4BACA,6CAKA,GACA,mBACA,2BACA,6BACA,wBAGA,oBACA,YACA,sBACA,aACA,aACA,0BACA,gBACA,sBAGA,wBACA,kCACA,iCACA,CACA,GACA,SACA,eACA,WACA,YACA,eACA,CACA,GACA,SACA,eACA,WACA,YACA,CACA,KA+WA,cACA,sBACA,sBACA,kDACA,+DACA,gEACA,yCACA,kDACA,oDAEA,Y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,EAQA,gCAEA,IADA,EACA,oBACA,OAkCA,OAhCA,yBAEA,gBACA,kBACA,gDACA,GACA,CAAO,CACP,CAAK,EAGL,qBACA,mBACA,wDACA,SACA,uDACA,mBACA,CAAS,CACT,CAAO,CACP,EAAK,aAGL,oBACA,mBACA,uDACA,SACA,kDACA,mBACA,CAAS,CACT,CAAO,CACP,EAAK,aAGL,kBACA,+BACA,CAAG,yBACH,EACA,kBAGA,iBACA,CAAG,CACH,EAOA,kDACA,+CACA,EAEA,4CAGA,OAFA,gEAEA,iBACA,EAyCA,cAEA,CAAC,EAAE,uWAAuW,uBAC1W,aAyGA,oBACA,4BACA,oCACA,mBACA,uBACA,0BACA,+BAEA,WAqcA,qBACA,gBAIA,UACA,8BACG,oBACH,6BACA,+CACA,mBACA,CAAK,EACL,CAAG,uBA0BH,EACA,EAlBA,MANA,sBA0BA,CAFA,GADA,EAzBA,GA0BA,oBAEA,4CACA,kDACA,oCAEA,8BACA,QACA,EAlCA,EAoCA,GAlCA,qCACA,0CAEA,sCAGA,0BACA,OACA,wBACA,QACA,CAAO,4BACP,MACA,KAEA,MACA,CAEA,IACA,CAAO,CACP,CAAK,CACL,CAAG,EAjCH,2DAkCA,CAiBA,yGAEA,WACA,YAKA,SACA,CAEA,CAAC,EAAE,0KAA0K,uBAC7K,aAWA,UATA,cACA,8BACA,uCACA,gBACA,GAEA,CAAG,CACH,CAIA,CAAC,GAAG,uBACJ,aAEA,2BACA,oBACA,sCAkCA,SACA,UA7BA,gBACA,2BACA,aACA,EANA,gBAMA,MANA,KAOA,uCACA,GACA,YACA,0BACA,WACA,CAAK,EACL,0BACA,yBACA,CAEA,0CACA,kCAEA,mFAGA,GACA,MACA,cACA,OACA,uCACG,GACH,CAIA,CAEA,CAAC,EAAE,8DAA8D,uBACjE,aAEA,uDAEA,cACA,UAEA,QAAc,mBAAsB,IAEpC,SADA,eAEA,qBACA,YAKA,QACA,CAEA,WACA,SACA,SACA,CAEA,CAAC,GAAG,uBACJ,aAEA,+CACA,4CAEA,WACA,QACA,QACA,CAEA,CAAC,EAAE,mFAAmF,uBACtF,aAEA,uBACA,0BA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,0BAA0B,uBAC7B,aAUA,WACA,MATA,YAGA,OAFA,OAEA,wBACA,sBACA,CAAG,CACH,CAIA,CAEA,CAAC,GAAG,uBACJ,aAEA,WACA,2BAAiC,eAAe,EAChD,4CACA,mCACA,gCACA,aACA,iBACA,qCACA,yDAA+D,sBAAsB,sBAAsB,YAAY,GACvH,sDAA4D,YAAY,gBACxE,6FAAmG,YAAY,GAC/G,mEACA,2BACA,+BACA,iDACA,gEACA,2DACA,0EACA,sCACA,oDACA,2DACA,2CACA,gEACA,8CACA,oDACA,oFACA,qCACA,gGACA,4EACA,uEACA,iFACA,uHACA,0DACA,6DACA,mFACA,6FACA,8EACA,2EACA,iHACA,4EACA,sDACA,yEACA,qGACA,kEACA,uCACA,8BACA,oBACA,yCACA,wCACA,6CACA,4CACA,wCACA,yCACA,gCACA,4BACA,yCACA,yBAA+B,oBAAoB,EACnD,wBACA,eACA,eACA,gBACA,gCACA,0BACA,uCACA,qBACA,6BACA,WACA,eACA,uBACA,yBACA,aACA,WACA,mBACA,oBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,4BAAkC,eAAe,KACjD,qDACA,uCACA,wCACA,eACA,qBACA,4CACA,oDAA0D,sBAAsB,oBAAoB,YAAY,kBAChH,iDAAuD,YAAY,2BACnE,yFAA+F,aAAa,wBAC5G,iFACA,4BACA,qCACA,uCACA,mEACA,+DACA,oGACA,wCACA,qEACA,gFACA,qEACA,oFACA,+DACA,sFACA,yIACA,mDACA,yGACA,6FACA,wFACA,uFACA,uJACA,uFACA,uFACA,yFACA,gHACA,kGACA,wFACA,kMACA,iGACA,qFACA,2FACA,kHACA,iFACA,8CACA,iCACA,yBACA,iDACA,gDACA,oDACA,kDACA,wCACA,kCACA,oDACA,6BACA,8BACA,0BAAgC,oBAAoB,QACpD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,2BAAiC,eAAe,EAChD,yDACA,iDACA,gDACA,eACA,wBACA,6CACA,yDAA+D,qBAAqB,wBAAwB,YAAY,MACxH,2EAAiF,YAAY,GAC7F,wGAA8G,YAAY,MAC1H,+FACA,8BACA,gCACA,oDACA,iEACA,mEACA,mFACA,kDACA,0DACA,mEACA,sDACA,gEACA,0DACA,8DACA,qHACA,mCACA,gHACA,2EACA,sEACA,2EACA,uIACA,mFACA,iFACA,wFACA,gHACA,2FACA,yFACA,iLACA,4FACA,oEACA,kFACA,kHACA,mFACA,4CACA,6BACA,wBACA,yCACA,wCACA,kDACA,oCACA,8CACA,wCACA,6BACA,yBACA,sCACA,uBAA6B,oBAAoB,KACjD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,yBAA+B,eAAe,EAC9C,iEACA,oDACA,0CACA,iBACA,qBACA,gDACA,uCAA6C,qBAAqB,4BAA4B,aAAa,aAC3G,uDAA6D,aAAa,aAC1E,0FAAgG,aAAa,sBAC7G,4FACA,+BACA,sCACA,gEACA,6DACA,0EACA,uGACA,iDACA,2DACA,iFACA,gEACA,oEACA,4DACA,gEACA,2GACA,mDACA,wHACA,yGACA,oGACA,2FACA,0KACA,2FACA,2FACA,gGACA,uIACA,iHACA,kGACA,4MACA,sHACA,6EACA,iHACA,0IACA,gGACA,8CACA,+BACA,+BACA,2CACA,0CACA,oDACA,oCACA,wCACA,kCACA,+BACA,gCACA,+BACA,+BAAqC,oBAAoB,EACzD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,YAEA,YACA,yBAA+B,eAAe,EAC9C,2DACA,0CACA,uCACA,mBACA,oBACA,kDACA,2DAAiE,sBAAsB,eAAe,aAAa,EACnH,mDAAyD,YAAY,mBAAmB,EACxF,8GAAoH,aAAa,EACjI,wFAA8F,EAC9F,6BACA,oCACA,4DACA,4DACA,wEACA,kHACA,+CACA,+DACA,+EACA,kEACA,0EACA,kEACA,4EACA,8FACA,kDACA,oHACA,kFACA,6EACA,4EACA,6IACA,2FACA,6FACA,gGACA,wHACA,4FACA,sGACA,+MACA,wGACA,oEACA,6FACA,sHACA,8FACA,2CACA,iCACA,mCACA,yCACA,wCACA,iDACA,uCACA,wCACA,kCACA,uCACA,kCACA,+BACA,yBAA+B,oBAAoB,EACnD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,kDACA,sCACA,mCACA,YACA,mBACA,0CACA,8CAAoD,sBAAsB,iBAAiB,YAAY,GACvG,gEAAsE,YAAY,GAClF,qGAA2G,YAAY,GACvH,wFACA,4BACA,kCACA,uCACA,2DACA,8DACA,kFACA,6CACA,mDACA,kEACA,2CACA,8DACA,sDACA,uDACA,sFACA,gEACA,mGACA,+EACA,0EACA,6EACA,wHACA,8EACA,4EACA,mFACA,yGACA,qFACA,4FACA,qNACA,4FACA,sEACA,oFACA,+GACA,yEACA,sCACA,8BACA,eACA,0CACA,yCACA,4CACA,kCACA,wCACA,kCACA,2BACA,0BACA,4BACA,sBAA4B,oBAAoB,EAChD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,kDACA,sCACA,mCACA,YACA,mBACA,0CACA,8CAAoD,sBAAsB,iBAAiB,YAAY,GACvG,gEAAsE,YAAY,GAClF,qGAA2G,YAAY,GACvH,wFACA,4BACA,kCACA,iDACA,2DACA,8DACA,kFACA,6CACA,mDACA,kEACA,qDACA,8DACA,sDACA,uDACA,sFACA,gDACA,0GACA,mFACA,8EACA,6EACA,mIACA,8EACA,4EACA,mFACA,yGACA,qFACA,4FACA,2KACA,wGACA,sEACA,oFACA,+GACA,yEACA,sCACA,8BACA,yBACA,0CACA,yCACA,4CACA,kCACA,wCACA,kCACA,2BACA,0BACA,4BACA,sBAA4B,oBAAoB,EAChD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,kDACA,sCACA,mCACA,YACA,mBACA,0CACA,8CAAoD,sBAAsB,iBAAiB,YAAY,GACvG,gEAAsE,YAAY,GAClF,qGAA2G,YAAY,GACvH,wFACA,4BACA,kCACA,uCACA,2DACA,8DACA,kFACA,6CACA,mDACA,kEACA,2CACA,8DACA,sDACA,uDACA,sFACA,gEACA,mGACA,mFACA,8EACA,6EACA,4HACA,8EACA,4EACA,mFACA,yGACA,qFACA,4FACA,sMACA,4FACA,sEACA,oFACA,+GACA,iFACA,sCACA,8BACA,eACA,0CACA,yCACA,4CACA,kCACA,wCACA,kCACA,2BACA,0BACA,4BACA,sBAA4B,oBAAoB,EAChD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAA6B,eAAe,EAC5C,kDACA,sCACA,mCACA,YACA,mBACA,0CACA,8CAAiD,sBAAsB,iBAAiB,YAAY,GACpG,gEAAmE,YAAY,GAC/E,qGAAwG,YAAY,GACpH,wFACA,4BACA,kCAEA,0CACA,kEACA,iEACA,qDACA,yDACA,mEACA,sDACA,mEACA,uDACA,2DACA,kFACA,sFACA,gDACA,0GACA,mFACA,mIACA,6EACA,8EACA,8EACA,4EACA,mFACA,yGACA,qFACA,4FACA,+GACA,yEACA,qFACA,2KACA,uEACA,qFAEA,sCACA,8BACA,eACA,0CACA,yCACA,sCACA,wCACA,4CACA,kCACA,8BACA,0BACA,4BAEA,sBAAyB,oBAAoB,EAC7C,YACA,gBACA,gCACA,wBACA,0BACA,cACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAEA,CAAC,GAAG,uBACJ,aAEA,WACA,wBAA8B,eAAe,KAC7C,uDACA,4CACA,sCACA,cACA,oBACA,2CACA,4DAAkE,sBAAsB,eAAe,YAAY,MACnH,qEAA2E,YAAY,MACvF,iHAAuH,YAAY,MACnI,sFACA,8BACA,oCACA,qCACA,kEACA,6EACA,wGACA,8CACA,yDACA,qFACA,gEACA,yEACA,iEACA,iEACA,gGACA,sCACA,iHACA,2FACA,sFACA,iFACA,uJACA,mFACA,+EACA,wFACA,sHACA,gGACA,kGACA,sMACA,uGACA,6FACA,uFACA,qHACA,qFACA,uDACA,uCACA,eACA,iDACA,gDACA,6DACA,2CACA,wCACA,kCACA,mCACA,gCACA,gCACA,yBAA+B,oBAAoB,EACnD,wBACA,cACA,eACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,wBAA8B,eAAe,EAC7C,iDACA,+CACA,sCACA,cACA,oBACA,+CACA,yDAA+D,sBAAsB,kBAAkB,YAAY,SACnH,8EAAoF,YAAY,MAChG,gHAAsH,YAAY,MAClI,qFACA,8BACA,oCACA,mCACA,gEACA,uEACA,wGACA,4CACA,uDACA,qFACA,kEACA,2EACA,mEACA,mEACA,uFACA,yCACA,iHACA,wFACA,mFACA,iFACA,gKACA,mFACA,0EACA,wFACA,uHACA,gGACA,iGACA,8MACA,sGACA,wFACA,iGACA,qHACA,oFACA,uDACA,uCACA,eACA,8CACA,6CACA,6DACA,2CACA,wCACA,kCACA,mCACA,gCACA,gCACA,4BAAkC,oBAAoB,KACtD,wBACA,cACA,eACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,2BAAiC,eAAe,KAChD,iDACA,oCACA,mCACA,eACA,qBACA,yCACA,wDAA8D,uBAAuB,wBAAwB,aAAa,SAC1H,wEAA8E,aAAa,GAC3F,wGAA8G,aAAa,YAC3H,qFACA,6BACA,kCACA,oCACA,0FACA,wDACA,oFACA,mCACA,4CACA,wEACA,oDACA,6FACA,0DACA,4DACA,mFACA,+DACA,uGACA,6EACA,wEACA,6EACA,mIACA,gEACA,yDACA,qEACA,gHACA,uGACA,uFACA,sKACA,gGACA,kEACA,yFACA,2GACA,2EACA,0CACA,gCACA,6BACA,+CACA,iDACA,gDACA,+DACA,wCACA,kCACA,8BACA,gCACA,6BACA,oBAA0B,qBAAqB,QAC/C,wBACA,cACA,cACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,yBAA+B,eAAe,EAC9C,0DACA,8CACA,0CACA,gBACA,yBACA,oDACA,0DAAgE,sBAAsB,mBAAmB,YAAY,OACrH,qEAA2E,YAAY,OACvF,yHAA+H,YAAY,OAC3I,wFACA,6BACA,qCACA,qCACA,+DACA,yEACA,6GACA,8CACA,oDACA,qFACA,8DACA,0EACA,gEACA,6DACA,sGACA,8DACA,oIACA,gGACA,2FACA,+EACA,qKACA,mFACA,gFACA,wFACA,0HACA,2GACA,kGACA,6NACA,oGACA,oFACA,wGACA,oIACA,+FACA,mDACA,qCACA,+BACA,+CACA,8CACA,yDACA,wCACA,wCACA,kCACA,8BACA,qCACA,8BACA,6BAAmC,oBAAoB,EACvD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,2BAAiC,eAAe,KAChD,0DACA,8CACA,0CACA,gBACA,yBACA,oDACA,0DAAgE,sBAAsB,mBAAmB,YAAY,OACrH,qEAA2E,YAAY,OACvF,wHAA8H,YAAY,UAC1I,8FACA,6BACA,qCACA,sDACA,gEACA,0EACA,8GACA,+CACA,qDACA,kFACA,2DACA,wEACA,6DACA,0DACA,sGACA,wCACA,kIACA,oFACA,+EACA,4EACA,qJACA,gFACA,8EACA,qFACA,+GACA,gGACA,kGACA,mNACA,oGACA,yFACA,+FACA,yHACA,qGACA,mDACA,qCACA,mBACA,+CACA,8CACA,yDACA,wCACA,wCACA,kCACA,8BACA,qCACA,8BACA,6BAAmC,oBAAoB,EACvD,2BACA,cACA,aACA,gBACA,mCACA,6BACA,yCACA,oBACA,+BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,yBAA+B,eAAe,EAC9C,0DACA,8CACA,0CACA,gBACA,yBACA,oDACA,0DAAgE,uBAAuB,mBAAmB,aAAa,OACvH,qEAA2E,aAAa,OACxF,wHAA8H,aAAa,UAC3I,8FACA,6BACA,qCACA,sDACA,gEACA,0EACA,8GACA,+CACA,qDACA,kFACA,2DACA,wEACA,6DACA,0DACA,sGACA,wCACA,kIACA,oFACA,+EACA,4EACA,qJACA,gFACA,8EACA,qFACA,+GACA,gGACA,kGACA,mNACA,oGACA,yFACA,+FACA,yHACA,qGACA,mDACA,qCACA,mBACA,+CACA,8CACA,yDACA,wCACA,wCACA,kCACA,8BACA,qCACA,8BACA,0BAAgC,oBAAoB,EACpD,2BACA,cACA,aACA,gBACA,mCACA,6BACA,yCACA,oBACA,+BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,4BAAkC,eAAe,EACjD,mDACA,oCACA,mCACA,aACA,mBACA,uCACA,6CAAmD,sBAAsB,iBAAiB,YAAY,GACtG,8DAAoE,YAAY,GAChF,uGAA6G,YAAY,GACzH,6EACA,2BACA,iCACA,6DACA,8DACA,0DACA,8EACA,0CACA,+CACA,yDACA,0CACA,6DACA,qDACA,8CACA,qGACA,0CACA,oFACA,2EACA,sEACA,uEACA,mHACA,2EACA,mEACA,iFACA,0FACA,sEACA,yEACA,8IACA,yFACA,oEACA,yEACA,mGACA,gEACA,oCACA,6BACA,iCACA,yCACA,wCACA,0CACA,uCACA,wCACA,mCACA,wBACA,kCACA,uCACA,0BAAgC,oBAAoB,EACpD,wBACA,cACA,aACA,iBACA,iCACA,0BACA,mCACA,qBACA,4BACA,WACA,eACA,uBACA,uBACA,YACA,WACA,mBACA,oBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,6BAAmC,eAAe,KAClD,mEACA,oDACA,+CACA,sBACA,sBACA,0DACA,kDAAwD,cAAc,OAAO,uBAAuB,sBACpG,qDAA2D,aAAa,0BACxE,6DAAmE,aAAa,+DAChF,iFACA,8BACA,wCACA,+DACA,qEACA,yEACA,iGACA,gDACA,sEACA,gFACA,mEACA,6EACA,kEACA,+EACA,iIACA,mDACA,sHACA,2FACA,sFACA,yFACA,0JACA,wFACA,sFACA,8FACA,iIACA,oHACA,uGACA,uOACA,uHACA,0FACA,qHACA,2HACA,oGACA,6CACA,mCACA,eACA,+CACA,8CACA,mDACA,2CACA,8CACA,wCACA,2CACA,qCACA,uEACA,YAAkB,sBAAsB,SACxC,wBACA,cACA,iBACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,8BAAoC,eAAe,EACnD,qDACA,wCACA,0CACA,YACA,sBACA,4CACA,mDAAyD,sBAAsB,yBAAyB,YAAY,GACpH,gEAAsE,YAAY,GAClF,mGAAyG,YAAY,GACrH,gFACA,8BACA,iCACA,sCACA,mEACA,kEACA,mFACA,8CACA,kDACA,oEACA,oDACA,qEACA,qDACA,sDACA,mGACA,gDACA,0HACA,kFACA,6EACA,iFACA,gIACA,6EACA,gFACA,kFACA,4GACA,2FACA,oFACA,yJACA,6FACA,8EACA,qFACA,kHACA,oFACA,yCACA,8BACA,eACA,yCACA,wCACA,+CACA,0CACA,wCACA,kCACA,2BACA,6BACA,iCACA,8BAAoC,oBAAoB,EACxD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBAEJ,aAEA,gCAEA,GACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,EAEA,GACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YAGA,WACA,4BACA,uBACA,iBAAyB,KACzB,CAGA,CAAC,EAAE,gfAAgf,uBACnf,aAEA,WACA,mCAAyC,eAAe,EACxD,4DACA,gDACA,2CACA,gBACA,mBACA,kDACA,0DAAgE,sBAAsB,2BAA2B,YAAY,GAC7H,oEAA0E,YAAY,GACtF,kGAAwG,YAAY,GACpH,sFACA,6BACA,mCACA,mCACA,4DACA,4DACA,+GACA,yCACA,0CACA,sEACA,6DACA,qEACA,4DACA,oDACA,6FACA,gEACA,uHACA,uEACA,kEACA,qEACA,oIACA,iFACA,2EACA,sFACA,kHACA,+FACA,2FACA,oMACA,gGACA,2EACA,+FACA,0HACA,iFACA,wCACA,kCACA,eACA,yCACA,wCACA,8CACA,uCACA,wCACA,kCACA,sBACA,4BACA,iCACA,iCAAuC,oBAAoB,EAC3D,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,cAAoB,eAAe,QACnC,wCACA,gCACA,0BACA,UACA,iBACA,6BACA,uCAA6C,qBAAqB,YAAY,YAAY,WAC1F,qDAA2D,YAAY,UACvE,8CAAoD,YAAY,0BAChE,kDACA,2BACA,8BACA,iCACA,6CACA,kDACA,0DACA,mCACA,yCACA,kDACA,uCACA,6CACA,sCACA,yCACA,qEACA,8BACA,iFACA,0DACA,qDACA,mEACA,4FACA,qDACA,uDACA,2DACA,4EACA,wDACA,8DACA,4GACA,qEACA,wDACA,gEACA,0EACA,6DACA,gCACA,wBACA,eACA,oCACA,mCACA,sCACA,2BACA,wCACA,kCACA,uBACA,uBACA,sBACA,kBAAwB,oBAAoB,EAC5C,wBACA,cACA,WACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,uBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,oBAA0B,eAAe,EACzC,0CACA,0BACA,yBACA,UACA,iBACA,6BACA,uCAA6C,YAAY,WAAW,sBAAsB,eAC1F,oDAA0D,YAAY,gBACtE,gDAAsD,YAAY,0BAClE,qDACA,wBACA,8BACA,+BACA,0CACA,gDACA,2DACA,iCACA,uCACA,wDACA,yCACA,kDACA,4CACA,+CACA,kEACA,iCACA,gFACA,2DACA,sDACA,oEACA,2FACA,uDACA,mDACA,4DACA,kFACA,+DACA,iEACA,4FACA,uEACA,+CACA,+DACA,+EACA,0DACA,gCACA,wBACA,eACA,qCACA,oCACA,sCACA,0BACA,wCACA,kCACA,uBACA,sBACA,qBACA,qBAA2B,oBAAoB,EAC/C,wBACA,cACA,UACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,sDACA,yCACA,uCACA,gBACA,oBACA,6CACA,uCAA6C,qBAAqB,sBAAsB,aAAa,cACrG,0DAAgE,aAAa,cAC7E,mGAAyG,aAAa,mBACtH,6FACA,+BACA,uCACA,mCACA,sDACA,iEACA,sFACA,yCACA,+CACA,8DACA,wDACA,8DACA,qDACA,uDACA,oGACA,qDACA,wGACA,qFACA,gFACA,8EACA,2IACA,iFACA,+EACA,sFACA,6HACA,kGACA,oFACA,+MACA,kGACA,oEACA,2FACA,+HACA,mFACA,uCACA,8BACA,eACA,2CACA,0CACA,6CACA,kCACA,wCACA,kCACA,2BACA,8BACA,gCACA,yBAA+B,oBAAoB,EACnD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,uDACA,wCACA,yCACA,aACA,qBACA,6CACA,qDAA2D,qBAAqB,yBAAyB,YAAY,MACrH,qEAA2E,YAAY,GACvF,yGAA+G,YAAY,MAC3H,+FACA,4BACA,iCACA,iDACA,qDACA,2DACA,+EACA,sCACA,8CACA,4EACA,2DACA,sEACA,2DACA,+DACA,2FACA,sCACA,oHACA,uFACA,kFACA,+EACA,2IACA,gFACA,8EACA,qFACA,8FACA,uEACA,sGACA,uKACA,+FACA,6DACA,mFACA,wGACA,oFACA,0CACA,6BACA,eACA,yCACA,wCACA,gDACA,oCACA,8CACA,wCACA,6BACA,2BACA,6BACA,uBAA6B,oBAAoB,KACjD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,6CAAmD,eAAe,KAClE,0DACA,8CACA,wCACA,cACA,qBACA,4CACA,oDAA0D,sBAAsB,gCAAgC,YAAY,GAC5H,iDAAuD,YAAY,eACnE,qGAA2G,YAAY,GACvH,8EACA,4BACA,gCACA,kCACA,mDACA,sEACA,oGACA,mCACA,8CACA,wFACA,gEACA,qEACA,wDACA,6DACA,kHACA,gDACA,0GACA,sFACA,iFACA,6EACA,oJACA,0EACA,uEACA,+EACA,4GACA,qGACA,+FACA,wLACA,gGACA,mFACA,4FACA,mHACA,yEACA,uDACA,8BACA,wBACA,yCACA,wCACA,6DACA,oCACA,wCACA,kCACA,+BACA,6BACA,2BACA,sCAA4C,oBAAoB,EAChE,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,YAEA,YACA,0BAAgC,eAAe,EAC/C,wDACA,+CACA,wCACA,cACA,2BACA,+CACA,sDAA4D,sBAAsB,WAAW,YAAY,MACzG,kEAAwE,YAAY,GACpF,gHAAsH,YAAY,MAClI,0FACA,8BACA,mCACA,oCACA,+DACA,4EACA,iGACA,6CACA,wDACA,iFACA,sEACA,0EACA,mEACA,oEACA,uGACA,gCACA,0HACA,wFACA,mFACA,2EACA,8JACA,mFACA,iFACA,qFACA,wGACA,qFACA,8GACA,0MACA,+GACA,mFACA,6FACA,4GACA,2FACA,mDACA,yCACA,eACA,8CACA,6CACA,yDACA,yCACA,wCACA,kCACA,sBACA,iCACA,oDACA,qBAA2B,oBAAoB,EAC/C,wBACA,cACA,iBACA,gBACA,uCACA,0BACA,sCACA,qBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,4BAAkC,eAAe,EACjD,0DACA,8CACA,4CACA,cACA,2BACA,+CACA,uDAA6D,sBAAsB,eAAe,YAAY,MAC9G,gEAAsE,YAAY,GAClF,oGAA0G,YAAY,GACtH,+EACA,8BACA,oCACA,qCACA,8DACA,yEACA,mGACA,8CACA,yDACA,yFACA,2EACA,6EACA,2EACA,yEACA,uGACA,kDACA,0HACA,6FACA,wFACA,2EACA,mKACA,+EACA,iFACA,wFACA,qGACA,6EACA,2GACA,qMACA,qFAA2F,2BAC3F,wFACA,oGACA,6GACA,uFACA,mDACA,yCACA,eACA,iDACA,gDACA,yDACA,uCACA,wCACA,kCACA,mCACA,kCACA,kCACA,uBAA6B,oBAAoB,EACjD,wBACA,cACA,iBACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,+BAAqC,eAAe,EACpD,sDACA,yCACA,uCACA,gBACA,qBACA,6CACA,qDAA2D,sBAAsB,gCAAgC,YAAY,GAC7H,8DAAoE,YAAY,GAChF,0GAAgH,YAAY,GAC5H,uFACA,4BACA,mCACA,6CACA,qEACA,2DACA,4FACA,qCACA,mDACA,kEACA,oDACA,4EACA,kDACA,0DACA,sHACA,kDACA,oHACA,+FACA,0FACA,0EACA,iJACA,6EACA,2EACA,8EACA,uGACA,qFACA,yFACA,sKACA,8FACA,kFACA,yGACA,qGACA,8EACA,0CACA,8BACA,sCACA,yCACA,wCACA,gDACA,oDACA,wCACA,kCACA,yBACA,gCACA,yCACA,6BAAmC,oBAAoB,EACvD,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,6BAAmC,eAAe,KAClD,wDACA,0CACA,0CACA,eACA,qBACA,+CACA,8DAAoE,sBAAsB,iBAAiB,YAAY,MACvH,2DAAiE,YAAY,oBAC7E,gGAAsG,YAAY,eAClH,kGACA,4BACA,wCACA,uCACA,oEACA,2DACA,+FACA,wCACA,uCACA,yEACA,kEACA,mFACA,4DACA,qDACA,4IACA,kDACA,sHACA,qFACA,gFACA,kFACA,mJACA,oFACA,+EACA,sFACA,iHACA,qGACA,iFACA,oMACA,4GACA,uFACA,oGACA,kHACA,mFACA,0CACA,iCACA,eACA,iDACA,gDACA,gDACA,mDACA,wCACA,kCACA,sBACA,6BACA,8BACA,kBAAwB,oBAAoB,KAC5C,wBACA,cACA,aACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,0BAAgC,eAAe,EAC/C,6DACA,iDACA,0CACA,gBACA,oBACA,gDACA,+CAAqD,qBAAqB,wBAAwB,YAAY,MAC9G,+DAAqE,YAAY,GACjF,4GAAkH,YAAY,eAC9H,6GACA,4BACA,mCACA,mCACA,0DACA,4DACA,qGACA,yCACA,iDACA,6EACA,qEACA,kEACA,8DACA,uDACA,kGACA,gCACA,kHACA,qFACA,gFACA,+EACA,8IACA,6FACA,2FACA,+FACA,+GACA,0FACA,6FACA,iLACA,gGACA,2EACA,yFACA,oHACA,2FACA,4CACA,6BACA,eACA,2CACA,0CACA,kDACA,sCACA,8CACA,wCACA,6BACA,2BACA,8BACA,sBAA4B,oBAAoB,KAChD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,2BAAiC,eAAe,EAChD,iDACA,wCACA,uCACA,aACA,wBACA,0CACA,8CAAoD,sBAAsB,gBAAgB,aAAa,SACvG,mEAAyE,aAAa,SACtF,gGAAsG,YAAY,EAClH,sFACA,4BACA,8BACA,4CACA,0DACA,qDACA,qEACA,sCACA,uDACA,4DACA,kDACA,2DACA,iDACA,sDACA,gGACA,8CACA,gGACA,kFACA,6EACA,mFACA,qIACA,oEACA,oEACA,0EACA,oGACA,+EACA,+FACA,+KACA,sFACA,qDACA,uEACA,yGACA,gFACA,wCACA,8BACA,eACA,wCACA,uCACA,8CACA,iCACA,wCACA,kCACA,+BACA,2BACA,8CACA,uBAA6B,oBAAoB,EACjD,wBACA,cACA,YACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,gBAAsB,eAAe,IACrC,mCACA,yBACA,wBACA,UACA,iBACA,4BACA,4CAAkD,YAAY,GAAG,qBAAqB,IACtF,oDAA0D,YAAY,GACtE,mDAAyD,YAAY,YACrE,gDACA,wBACA,8BACA,2BACA,uCACA,wCACA,iDACA,+BACA,mCACA,0CACA,6BACA,yCACA,+BACA,qCACA,8CACA,0BACA,iEACA,oDACA,+CACA,sDACA,2EACA,yCACA,uCACA,oDACA,+DACA,8CACA,wDACA,wEACA,uDACA,0CACA,2CACA,uDACA,oDACA,4BACA,qBACA,eACA,qCACA,oCACA,kCACA,2BACA,sCACA,gCACA,uBACA,qBACA,oBACA,eAAqB,oBAAoB,EACzC,wBACA,cACA,SACA,gBACA,gCACA,0BACA,sCACA,cACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,aACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,oBAA0B,eAAe,EACzC,kCACA,yBACA,wBACA,UACA,iBACA,4BACA,+CAAqD,aAAa,IAAI,sBAAsB,KAC5F,6CAAmD,aAAa,aAChE,oDAA0D,aAAa,cACvE,gDACA,wBACA,8BACA,mCACA,sCACA,wCACA,mDACA,6BACA,mCACA,yCACA,8BACA,wCACA,+BACA,oCACA,uDACA,uBACA,8DACA,oDACA,+CACA,wDACA,2EACA,4CACA,0CACA,gDACA,+DACA,+CACA,yDACA,sEACA,yDACA,2CACA,6CACA,0DACA,kDACA,4BACA,qBACA,eACA,sCACA,qCACA,kCACA,0BACA,wCACA,kCACA,uBACA,oBACA,0BACA,kBAAwB,oBAAoB,EAC5C,wBACA,cACA,WACA,gBACA,gCACA,0BACA,sCACA,oBACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,mBACA,CAGA,CAAC,GAAG,uBACJ,YAEA,YACA,iBAAuB,gBAAgB,IACvC,iCACA,yBACA,wBACA,UACA,iBACA,4BACA,6CAAmD,aAAa,IAAI,sBAAsB,KAC1F,6CAAmD,aAAa,cAChE,oDAA0D,aAAa,aACvE,+CACA,wBACA,8BACA,6BACA,qCACA,uCACA,mDACA,4BACA,kCACA,0CACA,8BACA,wCACA,+BACA,qCACA,oDACA,0BACA,+DACA,kDACA,6CACA,sDACA,yEACA,2CACA,yCACA,6CACA,8DACA,8CACA,yDACA,wEACA,uDACA,2CACA,6CACA,0DACA,mDACA,4BACA,qBACA,kBACA,sCACA,qCACA,kCACA,0BACA,wCACA,kCACA,uBACA,qBACA,qBACA,gBAAsB,oBAAoB,EAC1C,wBACA,cACA,UACA,gBACA,gCACA,0BACA,0BACA,eACA,oBACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,aACA,CAGA,CAAC,GAAG,uBACJ,aAEA,WACA,gBAAsB,eAAe,IACrC,iCACA,yBACA,wBACA,UACA,iBACA,4BACA,0CAAgD,aAAa,KAAK,sBAAsB,IACxF,oDAA0D,aAAa,GACvE,kDAAwD,aAAa,YACrE,gDACA,wBACA,8BACA,4BACA,uCACA,wCACA,iDACA,6BACA,mCACA,0CACA,6BACA,yCACA,+BACA,qCACA,8CACA,0BACA,kEACA,oDACA,+CACA,sDACA,2EACA,+CACA,uCACA,oDACA,6DACA,6CACA,wDACA,wEACA,uDACA,yCACA,2CACA,uDACA,oDACA,4BACA,qBACA,gBACA,qCACA,oCACA,kCACA,2BACA,sCACA,gCACA,uBACA,oBACA,oBACA,aAAmB,qBAAqB,IACxC,wBACA,cACA,SACA,gBACA,gCACA,0BACA,sCACA,cACA,4BACA,UACA,cACA,sBACA,wBACA,YACA,UACA,kBACA,aACA,CAGA,CAAC,GAAG,uBACJ,aAEA,gCACA,2BACA,2BAEA,cAGA,OAFA,QAGA,CAEA,8CACA,aAEA,GAFuB,CAEvB,sDAFuB,IAGvB,EAEA,4CACA,uDACA,EAEA,wCACA,mEAGA,qCAEA,gCACA,wBACA,EAEA,yCACA,cACA,uDAGA,8BACA,EAEA,uCACA,cACA,0DAGA,4BACA,EAEA,WAEA,CAAC,EAAE,iEAAiE,uBACpE,aAEA,uBACA,0CACA,uCAEA,aACA,wBAEA,kBACA,CAEA,uCACA,0BACA,0CAEA,mCACA,gEACA,8DACA,qEAEA,8BACA,uCACA,EAAG,aACH,6BACA,6CACA,EAAG,YACH,EAEA,2CAEA,IADA,IACA,mDAEA,MACA,eACA,YACA,qBACA,qBACA,qBACA,KACA,eACA,kBACA,KACA,cACA,qBAMA,eAAyC,YAAY,KACrD,GACA,gBAA2C,qBAAqB,KAEhE,EAAI,IACJ,+CAEA,6BACA,EAEA,mCACA,yCACA,uBACA,EAAG,YACH,EAEA,WAEA,CAAC,EAAE,8EAA8E,uBACjF,aAEA,4BACA,mCACA,mBACA,6BACA,8BACA,8BACA,kCACA,0CACA,mBACA,+BAEA,yDACA,8DAEA,aACA,wBAEA,gCAEA,kBACA,CAsYA,cACA,yBACA,CAtYA,uCACA,0BAEA,mCACA,KAEA,6EAEA,eAEA,2DACA,4DAEA,0CACA,2DACA,2DAEA,+DACA,qEAEA,yBAEA,6EAEA,8DACA,6DACA,qEACA,iEAEA,8DACA,QAkBA,OAhBA,qDAUA,CAPA,KAFA,SAEA,CACA,kCACA,cACA,iBACA,mBACA,oBACA,EAAO,EACP,aAEA,gBACA,cAGA,CACA,EAAG,gBAEH,gCACA,qBACA,iBACA,mBACA,qBACG,EACH,uCAEA,mCACA,mDACA,iBACA,qBACG,EACH,0CAEA,uDAEA,sDACA,4BACA,WAKA,gCACA,kCAGA,sBACA,EAAK,YACL,EAAG,aAEH,sEAEA,sDACA,wDAEA,mDACA,6BAEA,EAAG,aAEH,+DAEA,iEAEA,qGACA,uGACA,qGACA,uGAEA,kCACA,SACA,mBACA,kCACA,cACA,iBACA,qBACK,EAEL,iBAGA,yBACA,EAEA,4CACA,kBACA,iBAEA,WACA,8EACA,kEAEA,4BACA,4DACA,EAAK,aACL,iFACA,oCACA,wCACA,gBACA,CAAO,GAIP,eACA,EAEA,gCACA,mBACA,EAEA,gCACA,uBAGA,yCACA,MAEA,4BACA,4BACA,GACA,gCAEA,GAAG,YAEH,iCACA,+BAEA,yCACA,4DACA,kBAEA,kBAEI,UACJ,kBAEA,oFACI,UACJ,kBAGA,sBACA,0DAGA,sCAEA,wCACA,gDACA,eACA,uBACA,CAAG,EAEH,uBACA,EAEA,4CAGA,WAFA,8CAEA,yCAGA,OAFA,6DAEA,CACA,EAAG,gCAGH,OAFA,wDAEA,iBACA,EAAG,YACH,EAEA,4CACA,2DACA,uDACA,uDACA,EAEA,4CACA,wDACA,0DACA,0DACA,EAEA,+CAEA,IADA,EACA,6DAEA,kBAEA,gCAKI,EACJ,0CACA,2BAEA,+BACA,mBAGA,qCAZA,8BAEA,iCACA,+BAWA,EAEA,kCACA,4BAGA,iDACA,sDACA,EAEA,kCACA,8CACA,wDACA,EAEA,uCAEA,IADA,EACA,4BAGA,EADA,+BACA,gBACI,2BACJ,oBA6HA,4CACA,yBACA,CAAG,EA/HH,YACI,qBACJ,EAEA,EAGA,iEACA,+BACA,EAEA,sCACA,mEACA,EAEA,0CACA,qCAGA,yCACA,wDACA,EAEA,uCACA,qDACA,EAEA,gCAEA,IADA,EAQA,mBANA,OADA,kBACA,iBACA,mDACA,GACA,CAAK,CACL,EAAG,cAEH,uBACA,EACA,kBAGA,iBACA,CAAG,CACH,EAEA,sCACA,iDACA,0CACA,kBAEA,wCACA,gBACA,CAAG,CACH,EAEA,uCACA,MAEA,sBACA,2CACA,kBAEA,sCAEA,wCACA,kBACA,eACA,uBACA,CAAG,CACH,EAEA,+DACA,kDACA,mDACA,EAEA,0DACA,gDACA,EAEA,yDACA,0BACA,2BACA,EAEA,2DACA,WAWA,OATA,iDAEA,4CACA,4BACA,+DAEA,0BAGA,wBACA,6BAEA,yBACA,GACA,CAAK,CACL,CAAG,CACH,EAEA,0CACA,qCACA,sEAEA,WACA,GACA,kDAEA,4CAEA,iDAEI,gCACJ,0BAEA,gDAEA,EAWA,WAEA,CAAC,EAAE,4QAA4Q,uBAC/Q,aAEA,4BACA,mBACA,oBAEA,0CAIA,aACA,wBAEA,kBACA,CAEA,uCACA,0BAEA,mCAEA,IADA,EACA,EAbA,uwBAcA,2BACA,uBAeA,OAbA,2CACA,0CACA,0CACA,2CAEA,2BACA,0BACA,qBAEA,2BAEA,EAAG,aAEH,yBACA,gBACA,qCACA,0BACA,6CACA,yBACA,KACA,aACA,mCAAsD,oBAAoB,uCAC1E,qEACA,mDACA,qBACA,wEACA,KACA,kBACA,sCACA,0BACA,8CACA,yBACA,KACA,eACA,mCACA,0BACA,oDACA,0CACA,KACA,cACA,kCACA,0BACA,uDACA,wCAIA,CAEA,yBACA,+EACA,EAEA,kCAEA,uBACA,2DACA,EAAG,cACH,EAEA,sCACA,iDACA,oCACA,wDAEA,EAEA,uCACA,oDACA,2DACA,EAEA,gCACA,yBACA,iDAEA,EAEA,4CACA,4BACA,wFAGA,wDACA,EAEA,qCACA,2DACA,EAEA,WAEA,CAAC,EAAE,qGAAqG,uBACxG,aAEA,uBACA,6BACA,2BACA,2BACA,0CAEA,GACA,kBACA,uBACA,yBACA,4BACA,oBACA,EAEA,aACA,wBAEA,kBACA,CAEA,uCACA,0BACA,8BAEA,mCACA,cACA,wDACA,wDACA,qDAEA,oEACA,0FACA,6EAEA,6BAEA,gDACA,0EAEA,+BACA,0BACA,6BAEA,2BAEA,EAAK,aAEL,sDAEA,EAEA,iDACA,wBAGA,oCACA,2BACA,yEACA,EAEA,+CACA,eAEA,uBAIA,8CACA,kBAEA,mCAA4C,eAAe,MAN3D,EAOA,EAEA,sCACA,wDAEA,2DACA,6DAEA,+BACA,kBACA,CAAG,CACH,EAEA,uCACA,2DAEA,6CACA,4DAEA,+BACA,mBACA,CAAG,CACH,EAEA,0CACA,aACA,iBACA,gBACA,mBACA,qBACG,CAEH,yDACA,yBACA,kBAGA,0BACA,iEAEA,sCAGA,kBACA,EAEA,6CACA,MAEA,QAAc,oBAAuB,IACrC,oCACA,yBACA,oCAA4C,EAC5C,uBACA,KACA,CAEA,EAEA,uDAEA,IADA,EACA,wBAEA,QAAc,oBAAuB,IACrC,oCACA,oCACA,4DACA,KACA,CAGA,GACA,gBAEA,oCACA,2EACA,EAEA,kDACA,kDACA,iDAGA,oDACA,EAEA,6CAEA,IADA,EACA,iCAQA,IANA,+BACA,YACA,CAAG,EAEH,cAEA,aAAsC,KAAQ,IAC9C,4BAEA,EAEA,WAEA,CAAC,EAAE,oIAAoI,uBACvI,aAEA,4BACA,0CACA,mBAEA,qCAIA,aACA,wBAEA,kBACA,CAEA,uCACA,0BACA,8BAEA,mCACA,gEACA,iBAEA,wDACA,yBACA,GAAG,WACH,EAEA,0CAEA,IADA,EACA,gCACA,EAxBA,0SAyBA,cACA,gCACA,kCACA,yCACA,EAAG,YAMH,OAJA,oDACA,+BACA,gCAEA,GACA,gBACA,4BACA,qCACA,KACA,aACA,oBAEA,EADA,wCACA,kDACA,KACA,kBACA,6BACA,sCACA,KACA,eACA,sBACA,mCACA,KACA,qBACA,gCACA,yCACA,KACA,cACA,qBACA,iCAIA,CAIA,EADA,GADA,6DACA,6BACA,0BAEA,cAEA,OAEA,8BACA,kBACA,MACA,cACA,CACA,EAEA,6CACA,0CAA4C,eAAe,IAC3D,EAEA,WAEA,CAAC,EAAE,qGAAqG,uBACxG,aAAmB,YACnB,aAEA,mCACA,oBACA,+BACA,8BACA,0BACA,wCAIA,aACA,uBACA,CAEA,uCACA,0BACA,+BAEA,kCACA,WAOA,OALA,4BAAwC,yCACxC,yEAdA,EAgBA,sDAEA,UAA4B,mBAAoB,mBAChD,iDAEA,qBAEA,gDACA,yGAEA,kCACA,CAAG,oBACH,+BACA,UACA,cACA,CAAK,CACL,CAAG,CACH,EAEA,4CAGA,OAFA,mDAEA,2CACA,EAEA,yCACA,IACA,IADA,aAGA,2BAIA,2BAEA,wFACA,sDAEA,+BACA,sCACA,8BACA,gDACK,mBACL,+BACA,CAAK,oBACL,uBACA,wBACA,SACA,CAAK,CACL,EAEA,kCACA,6BACA,sBACK,mBACL,wBACA,oDACA,2BACA,2BACA,CAAK,oBACL,uBACA,wBACA,mDACA,CAAK,CACL,EAEA,sBACA,uBACA,EAEA,UAEA,GACA,EAEA,8CACA,+BACA,EAEA,wBAEA,MADA,iDACA,gDACA,kGAKA,CAFA,KArGA,EAuGA,GAIA,gCAMA,sCAIA,uDAbA,mBAcA,EAEA,YAEA,CAAC,aAAa,WAAyB,SAAN,GAAM,CAAmB,GAAM,mEAAmF,CACnJ,CAAC,EAAE,mJAAmJ,uBACtJ,aAAmB,YACnB,aAEA,IAcA,EAdA,2BACA,+BACA,mCACA,oBACA,qCACA,8BACA,uBACA,+BACA,+CAGA,2BAKA,aACA,uBACA,CAEA,uCAEA,kCAEA,IADA,EACA,yBACA,KACA,OACA,4BACA,sCACA,gDAWA,OATA,6BAAsC,IAEtC,wBACA,+BACA,UACA,uDACA,CAAK,CACL,CAAG,CA5BH,KA8BA,UAA0B,mBAAoB,mBAE9C,IADA,EACA,wCACA,qGACA,uCAyDA,OAvDA,mBAEA,sCACA,GACA,MACA,2CAAuD,CACvD,oCACA,mBACA,sDACA,CAAO,CACP,wBAKA,gFAMA,OAJA,GACA,aAGA,sCACA,kEACA,eAEA,2BACA,CAAS,UACT,CAAO,CACP,SACA,EAEA,YACA,+BACA,YAEA,WACA,aACA,EAEA,kDACA,4BAGA,8CACA,CAAK,EAEL,GACA,+CACA,wBAEA,mDAGA,UAEA,4CACA,gCACA,KACA,eACA,CAAK,CACL,CAAG,WAEH,cACA,EACA,wBAEA,+BACA,UACA,OACA,CAAO,EACP,gBAEA,CACA,EAEA,4CAGA,OAFA,iDAEA,2CACA,EAEA,8CACA,mBACA,+BAEA,EAEA,wBACA,uDACA,8EAEA,gBAIA,uBACA,oEAEA,qBAGA,0BACA,oBAGA,GAIA,iBACA,yBACA,+BACA,gBACA,wBAnJA,MAoJA,CACA,CAAG,kBACH,0BACA,CAAG,mBACH,0BACA,CAAG,mBAGH,OAFA,OAEA,kBACA,EAAG,EA/BH,mBAkCA,EAEA,YAEA,CAAC,aAAa,gBAAyB,IAAN,GAAM,CAAmB,GAAM,mEAAmF,CACnJ,CAAC,EAAE,kPAAkP,uBACrP,aAEA,mCAEA,oBACA,uBACA,8BACA,mCACA,0BACA,mCAIA,GACA,QAEA,qBACA,eACA,CAEA,GACA,SACA,iBACA,MACA,aACA,iBACA,CAEA,aACA,uBACA,CAsoBA,cACA,yDACA,CAEA,cACA,qCACA,CAUA,cACA,kBAEA,yBACA,CAxpBA,uCACA,0BACA,4CAEA,kCAEA,IADA,MACA,qDA8DA,OAzDA,kFACA,iEAEA,8BAEA,sEACA,mEACA,4GACA,sCAEA,wBACA,iCAEA,yBACA,0DACA,4DACA,mEACA,6CACA,oDACA,oEACA,oBAEA,yBACA,4BACA,uBACA,0BACA,CAAK,GAGL,cACA,2CACA,0BACA,uBACA,eACA,CAAK,GAGL,sBAEA,CADA,kDACA,0BACA,uBACA,sBACA,CAAK,GAGL,0FACA,kFAOA,iDACA,gCAGA,8BACA,4BACA,kEACA,sFACA,oEACA,0EACA,sFACA,uBACA,wCACA,0CACA,CAAO,CACP,EAAK,aAEL,uBACA,4CACA,6BACA,EAAO,YACP,EAAK,aAEL,qCACA,EAAG,gCACH,kCACA,aACA,OACA,CAAK,CACL,EAAG,YACH,EAEA,6CACA,oBACA,wCACA,mCACA,8BACA,CAAK,CAEL,EAEA,wCACA,2CACA,yCACA,oEAEA,YAnIA,qzEAqIA,GACA,uCAEA,EA+fA,CA7fA,MAHA,OAIA,+DA4fA,EA3fA,4BA6fA,oCA1fA,CAAK,CAEL,EAEA,oDACA,IA4hBA,EA5hBA,iEACA,wBACA,gCACA,uCACA,GACA,mBACA,QACA,gBACA,qDACA,mDACO,CACP,QACA,4CACA,YAihBA,CAFA,OAEA,gBAhhBA,CAAO,CACP,gBACA,gDACA,mDACO,CACP,KACA,yCACA,gBACA,CAAO,CACP,YACA,gDACA,CACA,CAAK,CACL,QACA,OACA,mBACA,kKACA,YACA,CAAO,CACP,UACA,aACA,CAAO,CACP,+BACA,eACA,CAAO,CACP,qBACA,eACA,CAAO,CACP,sBACA,eACA,CAAO,CACP,2BACA,eACA,CAAO,CACP,oBACA,mBACA,CACA,CACA,SAEA,wBACA,+BAGA,GACA,oBAGA,GACA,2BAGA,IAEA,SAFoB,EAGpB,iDACA,mCAGA,0CACA,sDACA,mBAEA,MACA,CAEA,aAIA,2BACA,8BACO,CACP,CAAK,GAGL,UACA,0CACA,uBACA,mBAEA,MACA,CAAQ,iCAER,wBAEA,MACA,CAEA,CAsaA,YACA,mCAGA,EAFA,KAEA,KACA,CAAG,EACH,EA5aA,aACA,4BAEA,0BACA,CAAK,GAzCe,CA6CpB,EAEA,sCAEA,IADA,MACA,KACA,2FAEA,8BAMA,YAFA,yCAEA,6BACA,kBAEA,SAMA,UACA,mDAGA,KAEA,GACA,2DALA,KAQM,aACN,KAEA,GACA,6DAGA,EAAG,aAEH,yBAKA,CAFA,CADA,GADA,gBACA,mCACA,qBAGA,KAEA,GACA,qEAKA,EACA,EAEA,wCAGA,GAHoD,IACpD,iBAGA,OACA,+BAGA,EAEA,gCAEA,I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A,GADA,EAUA,IATA,yBASA,CACA,CAEA,CAAC,EAAE,kHAAkH,sBACrH,gCAEA,CAAC,EAAE,sBAAsB,sBACzB,kCAEA,CAAC,EAAE,wBAAwB,sBAC3B,+BAEA,CAAC,EAAE,qBAAqB,sBACxB,gCAEA,CAAC,EAAE,sBAAsB,sBACzB,mCAEA,CAAC,EAAE,0BAA0B,sBAC7B,oCAEA,CAAC,EAAE,2BAA2B,sBAC9B,sCAEA,CAAC,EAAE,6BAA6B,sBAChC,4BAEA,CAAC,EAAE,mBAAmB,sBACtB,gCAEA,CAAC,EAAE,uBAAuB,sBAC1B,qCAEA,CAAC,EAAE,4BAA4B,sBAC/B,aACA,iBACA,aACA,eACA,CA0CA,OAzCA,6BACA,gBACA,wBAGA,qBAGA,8BACA,sBACA,MAGA,mBACA,cACA,EACA,8BAEA,QADA,KACA,IAAyB,mBAAuB,IAChD,oBAFA,IAIA,kBACA,GAGA,sBACA,iBACA,CAAS,CACT,EACA,oCACA,4BACA,KAGA,UACA,EACA,0BACA,uCACA,aACA,CAAS,CACT,EACA,CACA,CAAC,GACD,WAEA,CAAC,GAAG,sBACJ,aACA,kCACA,QACA,KACA,aACA,cACA,WACA,yBACA,+BACA,MACA,CACA,0CACA,qBACA,mBACA,CAAS,EACT,QACA,gDACA,6CACA,4BACA,+BAIA,CAAa,EAEb,kBACA,CAuGA,OAtGA,+BACA,2BACA,EACA,8BACA,0BACA,EACA,yBACA,WACA,EACA,2CACA,oDACA,oCAEA,qCAIA,kBACA,uBACA,EACA,yBACA,8BACA,EACA,mBACA,wBACA,EACA,qBACA,0BACA,EACA,sBACA,2BACA,EACA,4BAGA,QAFA,EACA,KACA,IAAyB,mBAAuB,IAChD,kBAEA,uCACA,EACA,6BAGA,QAFA,EACA,KACA,IAAyB,mBAAuB,IAChD,kBAEA,wCACA,EACA,gCACA,kBACA,mBAGA,oBACA,oBACA,gBACA,sBACA,CAAS,EACT,iBACA,qBACA,CAAS,EACT,kBACA,gBACA,WACA,CAAS,GAbT,IAeA,EACA,+BACA,kBACA,mBAGA,oBACA,oBACA,gBACA,qBACA,CAAS,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ACA,EAcA,iBACA,iBAEA,GACA,eARA,CACA,mBACA,gBACA,EAMA,iBACA,YAJA,yBAKA,UAZA,+BAaA,EAEA,GACA,QACA,WACA,EAOA,aACA,4DAsBA,kBACA,QAEA,OADA,aAAmC,MACnC,gCACA,QACA,0BAEA,GADA,GAkDA,oCAlDA,GACA,aACA,iEAKA,YAHA,OADA,sDACA,sGAKA,CACA,MACA,iFAEA,kBAWA,OAEA,GADA,aAAmC,MACnC,KACA,QACA,qBACA,uBACA,iCAGA,uBACA,CAAa,CACb,CACA,QACA,kBACA,oBACA,UACA,iCACA,qEACA,CAAS,CACT,EA9BA,QACa,CACb,CAAS,CACT,CAyCA,MACA,WACA,eAEA,cACA,SAAgC,GAChC,UACA,qBACA,GACA,QAAsC,CACtC,KACA,YACA,SACA,WACA,yCACA,6CACA,CAAa,CACb,QACA,iCACA,kCACA,CAAa,CACJ,CACT,MACA,SACA,SACA,WACA,yCACA,6CACA,CAAa,CACb,QACA,iCACA,kCACA,CAAa,CACJ,CACT,GA8CA,gBACA,MAEA,GADA,aAAmC,MACnC,KAhKA,KACA,qCACA,4CAkKA,kBACA,aAAmC,CACnC,KACA,EACA,CAAiB,EAEjB,gCACA,0BACA,6BACA,iCACA,uBACA,CAAa,CACb,CAEA,UACA,YACA,MACA,oBACA,CAAS,CACT,CAMA,cACA,8BACA,SACA,4EACA,oCACA,CAgCA,cACA,UA7GA,YACA,uCACA,YACA,0BACA,gBACA,WA8EA,EACA,EAiBA,EA3FA,GAJA,4CACA,8BA6EA,SA5EA,EA4EA,wBACA,0BACA,4BA9EA,EAkFA,GACA,SAJA,IACA,iBACA,gDAGA,yBApFA,EAoFA,OApFA,EAoFA,gDACS,EApFT,EA6FA,GACA,uBACA,yBA/FA,EA+FA,OA/FA,EA+FA,gDACS,EA/FT,8BACA,sBACA,sBACA,OACA,QACA,EAUA,OARA,OADA,SACA,WACA,EACA,mCACA,sBACA,gBACA,sBACA,OACA,QAIA,yCACA,kBAAoD,UAAY,aAAwB,EAExF,CAAa,CACb,CAAS,CACT,CA8EA,CAAC,CA7YD,oCACA,6CACA,kEAA0G,CA6Y1G,CAAC,GAAG,sBACJ,aACA,sCASA,MARA,8BACA,iCAAiD,IAAO,IAExD,aADA,eACA,2CACA,YAEA,QACA,GACA,qBACA,EACA,wBACA,2CACA,iCACA,6BACA,mBACA,KACA,GACA,YACA,wBACA,oCACA,0BACA,oBACA,UACA,oBACA,kBACA,UACA,UACA,cACA,qBACA,EACA,GACA,OACA,aACA,mBACA,cACA,WACA,MACA,WACA,UACA,MACA,MACA,QACA,YACA,CACA,iBACA,cACA,iBACA,CAIA,gBACA,YAAgD,OAChD,mBACA,cACA,qDAEA,QACA,CACA,cACA,SACA,8BACA,SAEA,gBACA,OAhBA,kBAA+C,wBAAgD,EAkB/F,sBACA,WACA,sCACA,CAAK,EACL,oCACA,EACA,IAEA,CACA,CACA,0BACA,uBACA,EACA,yBACA,WACA,aACA,EACA,sBACA,kBACA,aACA,QACA,cAEA,EACA,2BACA,iBACA,MACA,kFAEA,2BACA,gDAEA,oBAEA,IADA,QAAqC,QACrC,OACA,EACA,4BACA,WACA,cACA,eACA,EACA,gCACA,iBACA,IACA,EACA,UACA,WAEA,CAAC,EAAE,0IAA0I,sBAC7I,aACA,sCAA+C,SAAa,EAC5D,mCACA,mBACA,iBAsBA,4BArBA,gBACA,QACA,QAAgB,oBAAuC,KACvD,oBACA,uBAGA,qBAEA,EADA,iBACA,oBAGA,iBAEA,aACA,oBAEA,UACA,MACA,CACA,CAGA,CAAC,EAAE,4BAA4B,sBAC/B,YAiMA,WAhMA,CACA,MACA,gBACA,YACA,aACA,cACA,mBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,YACA,sBACA,kBACA,gEACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,oBACA,4BACA,wBACA,iBACA,YACA,aACA,MACA,WACA,MACA,CACA,CAAK,CACL,eACA,uBACA,mBACA,8BACA,YACA,mBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,UACA,oBACA,gBACA,6BACA,cACA,gBACA,MACA,WACA,MACA,CAAS,CACJ,CACL,KACA,eACA,WACA,iCACA,cACA,sBACA,MACA,WACA,MACA,CACA,CAAK,CACL,UACA,oBACA,gBACA,UACA,IACA,cACA,cACA,cACA,cACA,gBACA,OACA,cACA,UACA,KACA,KACA,KACA,gBACA,gBACA,YACA,KACA,KACA,IACA,YACA,YACA,YACA,YACA,CACA,cACA,4BACA,MACA,WACA,MACA,CAAS,CACJ,CACL,SACA,mBACA,eACA,UACA,OACA,aACA,gBACA,gBACA,QACA,GACA,GACA,EACA,CACA,cACA,kCACA,MACA,WACA,MACA,CACA,CAAK,CACL,KACA,eACA,WACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,gBACA,eACA,OACA,OACA,OACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,gBACA,CACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,KACA,eACA,WACA,uBACA,cACA,sBACA,MACA,YACA,MACA,CAAS,CACJ,CACL,OACA,iBACA,aACA,kEACA,cACA,aACA,MACA,WACA,MACA,CAAS,CACJ,CACL,WACA,qBACA,iBACA,kBACA,cACA,aACA,MACA,WACA,MACA,CAAS,CAET,CAGA,CAAC,GAAG,sBACJ,aACA,sCAA+C,SAAa,EAC5D,eAOA,QANA,mBACA,EAGA,8BAFA,IAGA,CAGA,CAAC,GAAG,sBACJ,aACA,sCAA+C,SAAa,EAC5D,uBA6BA,gBAlBA,gBATA,QAMA,CANA,uBAAoF,uBAA8B,UAMlH,GACA,aAMA,6BACA,IAOA,gDANA,EASA,CACA,CAAK,EAdL,IAeA,CAGA,CAAC,GAAG,sBACJ,aACA,sCAA+C,SAAa,EAC5D,0BAIA,mBAHA,YACA,6CACA,CAGA,CAAC,GAAG,sBACJ,aAIA,sCAA+C,SAAa,EAC5D,iBAqBA,UANA,kBAdA,IACA,EACA,EACA,EAMA,SAMA,kBAfA,EAgBA,KAhBA,EAgBA,KAfA,mBAEA,WADA,EAcA,EAdA,YACA,IACA,4CACA,4CACA,MACA,MAIA,CADA,SADA,EASA,EARA,EACA,YAOA,EAPA,UACA,uBAOA,CAGA,CAAC,GAAG,sBACJ,aACA,sCAA+C,SAAa,EAC5D,kBACA,iBACA,8BACA,eACA,aACA,cACA,aAAkC,MAClC,0BACA,2BACA,iCAQA,qCACA,kDACA,oBACA,kBACA,8FACA,CAiOA,OAhOA,yBACA,WACA,EACA,qBACA,eACA,EACA,uCACA,kCAGA,yBACA,EACA,uCACA,SAGA,gBAGA,2BAGA,uBACA,GACA,EACA,+BACA,kBACA,EACA,iCACA,oBACA,SAEA,kBAEA,GADA,yBACA,qBAGA,oBAFA,QAKA,wBACA,IACA,UAEA,QAF8B,CAE9B,iCACA,MAGA,iCACA,iDACA,wBACA,CAAa,EAGb,mBACA,SACA,8BACa,EAEb,GACA,EACA,wCACA,WACA,mCACA,uBACA,IACA,CAAa,GAEb,kDAEA,CAAS,CACT,EACA,6BACA,oBACA,SAGA,WACA,cACA,WACA,0BACA,uCAGA,wCAEA,cAEA,QADA,KACA,IAAiC,mBAAuB,IACxD,kBAGA,8CAIA,6CAGA,iBACA,GAGA,qBACA,YACA,UACA,iBACA,CAAS,EACT,sCACA,4CACA,4BACA,GACA,EACA,8BACA,QACA,oBACA,SAEA,0CACA,YAA4B,wBAA2B,KACvD,wBACA,uBACA,aAEA,CAEA,yBACA,kBACA,wCACA,SAEA,4CACA,MACA,SAEA,YAAwB,WAA2B,IACnD,YAEA,OADA,cACA,GAGA,QACA,EACA,gCACA,sBAGA,oBACA,YAAwB,wBAA2B,KACnD,wBACA,+BACA,CACA,wBACA,EACA,sDACA,oBAIA,mBACA,EACA,oDACA,iCAGA,kBACA,uBAMA,+BACA,gBAEA,CACA,CAAS,EACT,mBAKA,QACA,CAAS,EApBT,EAqBA,EACA,qDACA,mCAOA,EAHA,8CACA,YACA,CAAS,CAET,EACA,oCAEA,IADA,EACA,qCAYA,EAXA,mBAEA,EADA,sBACA,2BAEA,qBACA,0BAGA,OAEA,oBACA,IAGA,mBACA,oBAGA,EACA,8CACA,aAGA,sCAFA,CAGA,EACA,YACA,CACA,CAA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CAEA,CAAC,EAAE,kKAAkK,sBACrK,aAEA,kCACA,wBACA,gBACA,sBACA,uCACA,+BA6CA,cACA,kDACA,sBACA,oCAEA,cACA,6BAEA,CAEA,6CACA,aACA,kBAGA,yBACA,aACA,eAEA,6BACA,EAAK,YAEL,EAEA,8CACA,MACA,iEAEA,GAcA,iDACA,2BACA,gBACA,WACA,CAAG,CACH,EAuDA,oDACA,6BACA,2CAGA,2BACA,YACA,iDACA,EAAK,YAEL,EAEA,wDACA,GAEA,MACA,iEAUA,uBAAyB,CATzB,CACA,0BACA,4BACA,6DACA,sDACA,qCACA,CAAK,CACL,EAEyB,EACzB,EA4CA,0CACA,kBAEA,mBAMA,sBACA,gBACA,OACA,8BACA,kDACA,mBACA,4CAOA,OAJA,qBACA,8BAGA,mBACA,cACA,kCACA,MACA,OAAmB,mBAAqB,CACxC,oBACA,CAAS,CACF,CACP,CAAK,EACL,iBAGA,OAFA,8DAEA,kBACA,CAAK,EACL,wBAGA,CAFA,2DAEA,iCACA,eACA,OACA,iDACA,iDACA,uDACA,SACA,sCACa,CACF,GAIX,eACA,OACA,kDACA,kDACA,wDACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EA1DL,eACA,2CA0DA,EA6CA,iCACA,kBAEA,QAMA,sBACA,gBACA,0BACA,cACA,gDACA,MACA,OACA,kBACA,CAAW,CACX,kCAA6C,UAE7C,qDACA,CAAW,CACX,CAAS,CACF,CACP,CAAK,EACL,iBAGA,OAFA,qDAEA,mCACA,CAAK,EACL,kBAGA,OAFA,kDAEA,eACA,OACA,mCACA,mCACA,yCACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EAvCL,eACA,0CAuCA,EAcA,gCAGA,OAFA,uBAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,0JAA0J,sBAC7J,aAuBA,kCAEA,WACA,uBACA,sBACA,6BACA,qDACA,CAAG,CACH,mCACA,sBACA,yCACA,gEACA,CAAG,CACH,uCACA,qBACA,6CACA,0EACA,CAAG,CACH,sCACA,sBACA,4CACA,QACA,gFACA,CAAG,CACH,kCACA,sBACA,wCACA,uDACA,CAAG,CACH,wBACA,qBACA,8BACA,yEACA,CAAG,CAGH,CAAC,EAAE,6BAA6B,sBAChC,aAOA,uBACA,wBACA,8BACA,2CACA,gCACA,qCACA,gBAEA,+BA0DA,WACA,SA/CA,YACA,kBAEA,SACA,QACA,OACA,gBACA,6BACA,CAAK,EACL,gBAEA,IADA,EACA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,wBACA,uDAMA,sCAEA,GAPA,eACA,+BAOA,CAAS,QAKT,CAHA,kBACA,WAEA,qBAQA,EAPA,mBAGA,OAFA,YAEA,CACA,CAAS,CAIT,CAAK,CACL,GAQA,QAjEA,SAkEA,CAEA,CAAC,EAAE,6NAA6N,sBAChO,aAEA,yCAEA,yBACA,iBACA,iCACA,8BACA,yCACA,4CACA,wCACA,2BACA,+BACA,mBACA,uBACA,4BACA,wBACA,gBACA,gCACA,qCACA,sBACA,uCACA,qBACA,uCACA,wCACA,qCAEA,KAoBA,cACA,QAOA,GAHA,iBAFA,SAKA,CAFA,2BAGA,oDA8BA,GA3BA,6DACA,GACA,QACA,SAEA,aACA,wDACA,wDACA,8CACA,CAAO,CAEP,CAAG,EAOH,iCACA,oBACA,EAEA,gBACA,4CAEA,6CAEA,WACA,qBACA,aACA,wDACA,wDACA,uDACA,CAAO,CAGP,sBACA,kBACK,CACL,CACA,CAEA,yBAEA,IADA,IACA,qBAEA,KAGA,OAFA,2CAEA,EAGA,IACA,oBACA,CAAI,SACJ,sBACA,sCAEA,CAoBA,OAlBA,iCACA,GAUA,OARA,SACA,eAGA,gCAEA,UAGA,CAAG,EAEH,qBAEA,gDAEA,EACA,iBAGA,OAFA,8CAEA,CACA,CAAK,EACL,kBAGA,OAFA,0BAEA,iBACA,CAAK,CACL,EAGA,wBACA,IACA,EAEA,kDACA,IACA,QADA,kDAGA,IACA,gEACA,wBACA,2BAIA,GACA,qBACA,IAHA,4BAGA,iCAEA,gCAGA,iCACA,kBAEA,mCACA,YAEA,CAAK,EAGL,GACA,iBACA,KACA,MACA,GACA,EACA,wBACA,EA4FA,kCACA,WACA,CADmB,CACnB,0BAEA,IAiNA,EAlNA,QACA,IACA,8CACA,sDACA,mBAWA,GARA,uBACA,SAEQ,YACR,uBAFA,oBAMA,EACA,aACA,mCACA,mCACA,+CACA,CAAO,EAgBP,GAZA,EADA,UACA,MAEA,YAGA,GACA,gBACA,mBACA,kBACA,6CAGA,gBACA,sBAEA,qBACA,iBACA,aAEM,oBACN,EACA,qDACA,cACA,gBACA,SACA,CACA,mBACA,qDACA,iDACA,2DACA,uDACA,SACA,CAAW,CACF,CACT,QAGA,UAyJA,CACA,wBAHA,EAFA,EApJA,kBAsJA,2CAIA,qBACA,OAxJA,aACA,kCACA,kCACA,iCACA,CAAO,CAGP,oBACA,iCACA,gBACA,EAEA,6BACA,QAIA,GAFA,WA0DA,KACA,MAoBA,GAlBA,OACA,kCACI,QACJ,wCACI,QACJ,6CACI,QACJ,+BACI,OACJ,kCACI,iBACJ,QACA,iCACA,iCACA,wCACK,EAGL,EAIA,OAHA,wBACA,uBAEA,CAEA,EArFA,KAEA,CACA,KAEA,MACA,CAEA,+BACA,EACA,YACA,yCACA,yCACA,+CACW,GAGX,MACA,CAEA,KAA8B,cAAqB,IAGnD,GACA,eACA,yBAEA,oDAEA,cACA,MACA,oBACA,CAAS,GAET,IACA,CAAK,CACL,CAAG,EAEH,yBACA,UAEA,EACA,iBACA,uBACA,CAAO,EACP,kBACA,yCAEA,WACA,CAAO,EAEP,MACA,CAEA,QACA,EAgCA,aAjCyB,KAiCzB,YACA,8BACA,EAgBA,kCACA,QACA,EAcA,kCAMA,OAHA,aAFA,CAEA,CAFmB,eAEnB,kBACA,EAHA,KAGA,gBAEA,iBACA,CAAC,EAYD,WAEA,CAAC,EAAE,4dAA4d,sBAC/d,YAEA,YACA,8BACA,CAEA,CAAC,GAAG,sBACJ,aA8BA,kCAEA,WACA,6CACA,sBACA,kDACA,CAAG,CACH,wBACA,sBACA,6BACA,CAAG,CACH,uBACA,sBACA,4BACA,CAAG,CACH,sCACA,sBACA,4CACA,uCACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,qFACA,CAAG,CACH,wBACA,qBACA,8BACA,kDACA,CAAG,CACH,wBACA,qBACA,8BACA,gDACA,CAAG,CACH,sBACA,qBACA,4BACA,gDACA,CAAG,CACH,8BACA,qBACA,oCACA,gDACA,CAAG,CACH,qBACA,sBACA,2BACA,qCAA0C,mCAC1C,CAAG,CACH,mCACA,sBACA,yCACA,6DACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,gIACA,CAAG,CAGH,CAAC,EAAE,6BAA6B,sBAChC,aAEA,kCACA,+BACA,iBACA,uBACA,wBACA,gBACA,yBACA,qCACA,0CAEA,qCA4FA,WACA,mBA3FA,cACA,iCAEA,IADA,MACA,SACA,GACA,mCACA,oBACA,qBACA,gBAEA,0BACA,8BACA,WACA,EAEA,UACA,cAEA,UACA,sDACA,oBAEA,GACA,MACA,aACA,MACA,EAEA,uCACA,qBACA,kBACA,SACA,kBACA,2BACW,EACF,EAGT,cACM,oBACN,iBACA,SACA,qBACA,2BACS,CACF,EAEP,cAGA,oBACA,MAEA,MASA,EACA,OACA,MATA,EADA,QACA,oCACU,QACV,+BAEA,0BAKA,KACA,YACA,kBACA,SACA,eACA,CAAa,CACF,GAGX,MACA,CAWA,EATA,CACA,oCACA,mBACA,eACA,oDACA,oBACA,sBACA,EAGA,CAAK,CACL,CAAG,CACH,EAIA,CAEA,CAAC,EAAE,sNAAsN,sBACzN,aAEA,kCACA,gBAEA,+BACA,qBA8CA,WACA,SAhBA,mBACA,gBAWA,gBAVA,eACA,OACA,0CACA,0CACA,QACA,gEACA,CAAO,EAKP,GAQA,QAtDA,SAuDA,CAEA,CAAC,EAAE,4FAA4F,sBAC/F,aAEA,iCACA,+BACA,mBACA,oBACA,aACA,gBACA,yBACA,yBA6JA,WACA,QALA,eArIA,kBAEA,IADA,cACA,QACA,YACA,YACA,uBAEA,IACA,iCAGA,aACA,CAAM,kCAAoC,CAC1C,WASA,GALA,EADA,EACA,SAEA,UAGA,SACA,cACA,gBACA,iBAEA,YACA,kBACA,QAGA,EACA,gCACA,qBAIA,oBAKA,iBACA,SAEA,MACA,CAMA,GAJA,oBACA,yBAGA,CAFA,kCAEA,gBA/DA,EAgEA,GACA,GA1DA,cAPA,EACA,CAiEA,EAjEA,MAiEA,EAhEA,QACA,aA+DA,EA9DA,sBA8DA,EA7DA,kCAEA,gBA4DA,CACA,iBACA,SAEA,MACA,CAEA,KAlFA,GAIA,EA8EA,GA9EA,MA8EA,CA9EA,EA8EA,CAEA,WAEA,MACA,CA/DA,EAgEA,uBACA,EAAQ,IAjER,EAkEA,UAEA,GAEA,WACA,oBAGA,oBACA,kCACA,EAEA,qBA9EA,EAiFA,iBACA,EAGA,0BAEA,uBAvFA,EAwFA,kBACA,GAGA,IACA,cACA,CAAI,SAOJ,MACA,OAGA,kBAEA,SAEA,MACA,CAEA,YAEA,GACA,mCACA,0BACA,CAAK,EAGL,IACA,cACA,CAAI,SAEJ,CACA,EAGA,MACA,CAIA,CAEA,CAAC,EAAE,mJAAmJ,sBACtJ,aAEA,cACA,gBACA,kBACA,sBACA,wBAGA,8BACA,kBAGA,+BACA,iBACA,EAEA,iCACA,qBAGA,kCACA,oBACA,EAEA,0CACA,QACA,EAEA,wCACA,QACA,EAEA,WAEA,CAAC,GAAG,sBACJ,aAEA,mBACA,qCAGA,GACA,YACA,oCACA,oBACA,gCACA,UACA,wBACA,YACA,wBACA,qBACA,YACA,UACA,cACA,qBACA,CAAG,CACH,aACA,YACA,wBACA,oBACA,wBACA,gCACA,SACA,CAAG,CACH,cACA,YACA,wBACA,oBACA,mCACA,CAAG,CACH,WACA,YACA,wBACA,oBACA,wBACA,gCACA,SACA,CAAG,CACH,YACA,YACA,oBACA,oBACA,wBACA,gBACA,gCACA,SACA,CAAG,EAkKH,gBACA,qCACA,oBACA,eAGA,CACA,CAAG,IACH,CAEA,UAxKA,kBAcA,EADA,EAJA,OANA,mBAaA,GACA,aAJA,EATA,EASA,0BAIA,0BACA,4BACA,sBACA,WACA,mBACK,CACL,wBACA,WACA,EAEA,qBACA,YACA,IAzBA,EAyBA,qBACA,6CACA,sBACA,CAAO,CACP,GAGA,gBACA,gCAGA,gBACA,4BACA,kCACA,kCACA,eAGA,0CAGA,YACA,wBAGA,SACA,kBAGA,cACA,kDACA,GAEA,sBACA,CAAK,EAEL,eACA,qBACA,iCACA,aAEA,EACA,uDACA,2CAEA,gBACA,eACA,uBAEA,0BAGA,aACA,eACA,oCACA,WACA,kDACA,+BACA,gCACA,0CACA,oBACA,gCACA,YAEA,GAGA,SACA,iBACA,8BACA,gCACA,8CACA,4BACA,oCACA,EAGA,UACA,mBACA,aAA+B,WAC/B,+CACA,wDAEA,8BAEA,mBAGA,YACA,aACA,WACA,+CACA,EAGA,gBACA,iBACA,6BACA,2CACA,iDACA,qBACA,mCACA,eAEA,GAGA,cACA,eACA,mDACA,oBACA,iCACA,aAEA,GAGA,iBACA,kBACA,gCACA,OACA,yCACO,CACP,EAGA,GArJA,IAIA,CAgKA,CAAC,EAAE,2CAA2C,sBAC9C,aAEA,mBAEA,GAEA,oCACA,kBACA,oBACA,UACA,cACA,sBACA,gCACA,UACA,wBACA,qBACA,qBACA,WAEA,EAEA,GACA,UACA,QACA,iBACA,EAEA,GACA,aACA,EAgFA,UA9EA,gBAkBA,IAJA,EACA,EACA,EACA,EAPA,OAPA,mBAaA,GADA,GADA,EATA,EASA,yCACA,uBACA,8BACA,eAIA,CACA,aACA,QACA,kBACA,aACA,UACA,UACA,qBACA,KACA,aAEA,cAEA,CAAK,EAEL,oEACA,MACA,gBAEA,CAAK,GAGL,GACA,aACA,CACA,UACA,YACA,gCACA,yBACA,SACA,gCACA,kCACA,gCACA,cACA,mCACA,qBACA,SACA,CAAS,CACT,kBACA,qBACA,CAAO,CACP,EAGA,0BACA,EACA,oEACA,wCACA,sBACA,MACA,eACA,GAGA,GApEA,IAIA,CAqEA,CAAC,EAAE,cAAc,uBACjB,aAEA,mBAEA,GAEA,oCACA,kBACA,oBACA,UACA,cACA,sBACA,gCACA,UACA,wBACA,qBACA,qBACA,WAEA,EAEA,GACA,UACA,QACA,iBACA,EAEA,GACA,aACA,CA+EA,WA7EA,gBAiBA,IAJA,EACA,EACA,EACA,EAPA,OANA,mBAYA,GADA,GADA,6BACA,YACA,8BACA,eAIA,CACA,aACA,QACA,kBACA,aACA,UACA,UACA,qBACA,KACA,aAE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,OATA,uBACA,gBACA,oBAIA,kBACA,sBAEA,iCACA,GAAiB,kBAAkC,eAEnD,CAAK,EACL,kBACA,sBACA,OACA,oCACA,oCACA,iBACA,CAAS,EAET,CAAK,CACL,EAIA,CAAC,EAAE,iHAAiH,uBACpH,aAIA,+CACA,kBACA,gCACA,qCACA,+BAEA,4BA6DA,WACA,SA9BA,YACA,iBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBACA,SACA,EACA,CACA,SACA,wBACW,CACX,GAGA,CAAK,CACL,GAOA,QApEA,SAqEA,CAEA,CAAC,EAAE,+KAA+K,uBAClL,aAeA,kCAEA,WACA,4BACA,sBACA,kCACA,sDACA,CAAG,CACH,8BACA,oCACA,QACA,oEACA,qBACG,CACH,oCACA,0CACA,sBACG,CAGH,CAAC,EAAE,6BAA6B,uBAChC,aAEA,4BACA,4BACA,uCACA,mBACA,gDACA,8BACA,gBACA,sBACA,+BAEA,GACA,gCACA,+BACA,EA+BA,cAQA,GAPA,oCACA,sBACA,4CAEA,6CACA,0CAEA,yCACA,aACA,+CACA,QACA,yDACA,uBACA,iGACA,+CACK,CAEL,CAEA,6CACA,aACA,kBAGA,yBACA,aACA,cACA,EAAK,YAEL,EAEA,yDAGA,oCACA,EAEA,yCASA,OARA,qBACA,uBACA,gCACA,uBACA,uBACA,EAGA,qBAGA,iDACA,GAEA,+BACA,EACA,oBACA,uCACA,EACA,uCASA,MANA,OAAgC,OAIhC,qCANA,KAQA,CACA,EAEA,iDACA,GAEA,+BAqBA,OAnBA,yBACA,4CACA,QACA,wBACA,OACA,QAGA,GACA,SAmPA,EACA,GAEA,mCACA,sBACA,OACA,EAAU,CACV,KACA,MAGA,KACA,MACA,KAEG,CACH,EAlQA,EACA,EAGA,CAAK,EAGL,MAAgC,KAGhC,EAuEA,wDACA,wBAIA,2BACA,YACA,oDACA,EAAK,aANL,6CAQA,EAEA,2DACA,GAEA,UAAoC,IACpC,yBACA,EACA,KAeA,OAZA,mBACA,8BAEA,8BACA,yCAGA,YACA,oBACA,kDAGA,UACA,EAkCA,sCACA,WAEA,yBACA,gBAMA,IALA,EAKA,aAHA,iBACA,2CACA,4BAEA,iBAEA,EACA,mBAGA,YACA,iBACA,0CAGA,mBACA,sBACA,YACA,iBACA,iDAGA,iBACA,cACA,YACA,0BACS,IAET,uBACA,YACA,iBACA,yDAGA,iBACA,cACA,YACA,0BACA,SACA,4BACA,4BACA,0BACA,gDACA,kBACS,CACT,kBACO,EACP,CAAK,EACL,kBAMA,OALA,YACA,iBACA,uCAGA,eACA,OACA,yCACA,+CACA,yCACA,SACA,eACA,CAAW,CACF,EAET,CAAK,CACL,EAcA,gCAGA,OAFA,uBAEA,iBACA,EAqBA,4BAEA,CAAC,EAAE,gPAAgP,uBACnP,aAMA,4BACA,8BACA,gCACA,qCACA,2CACA,+BAEA,gBAkKA,WACA,SAjDA,YACA,mBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,cA0BA,CAxBA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,iBACA,iCAGA,CADA,WACA,mCAMA,EALA,eACA,oCAKA,CAAS,EAET,kBACA,WAEA,qBAQA,EAPA,mBAGA,OAFA,YAEA,CACA,CAAS,CAIT,CAAK,CACL,GAQA,QAzKA,SA0KA,CAEA,CAAC,EAAE,6MAA6M,uBAChN,aAEA,qCACA,wBACA,+CAsCA,QApCA,kBACA,EAsBA,OApBA,oBAOI,UAiBJ,aAjBI,EAiBJ,CACA,iBAlBI,GAkBJ,iBAlBI,EAmBA,cAnBA,EAmBA,EACJ,iBApBI,IAoBJ,iBApBI,EAoBJ,IAnBA,UACA,sDACA,sDACA,QACA,UACA,EACA,yBACA,EACA,cACA,EAAK,EAhBL,SACA,kDACA,kDACA,QACA,0DACA,CAAK,EAcL,CACA,CAcA,CAAC,EAAE,iFAAiF,uBACpF,aAEA,+BACA,yBAEA,0BACA,OACA,EACA,QACA,UACA,4BACA,KACA,SACA,CAEA,CAEA,CAAC,EAAE,kDAAkD,uBACrD,aAEA,oDACA,mCACA,iCACA,kCACA,gCAGA,GACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,CAEA,qBACA,wBAOA,yBACA,oBALA,iBAOA,CAwBA,cACA,QAEA,IACA,IACA,WACA,IAIA,KAFA,QAGA,SAIA,WACA,CAEA,WACA,uCACA,6CAMA,CALA,KACA,eAIA,qBACA,GAIA,2CACA,uBAEA,CAAK,CACL,CAAG,CAEH,uCACA,mBAEA,IADA,QACA,0BACA,qCAGA,MAMA,GAFA,iBAEA,6BACA,4BAEA,MACA,CAGA,EADA,8BACA,WACA,EAhFA,cACA,UACA,YACA,OACA,6BACA,UACA,CAAS,CACT,cACA,CACA,gBACA,OACA,6BACA,YACA,CAAS,CACT,aACA,CAEA,CAEA,QACA,EA4DA,sBAEA,GAEA,GADA,iBACA,sBACA,OAEA,QACQ,YAER,0CACA,sBACA,uCAGA,UAEA,CACA,CAAG,CAGH,CAAC,EAAE,6HAA6H,uBAChI,aAEA,6CAEA,sBACA,IAEA,EAFA,kCACA,KA0BA,MAvBA,YACA,mBAGA,cACA,kCACA,oCACA,mCACA,kCACA,6BAEA,6BAEA,sBACA,WAEA,GACA,QAEA,CAAG,EAEH,6BAEA,CACA,CAEA,CAAC,EAAE,0BAA0B,uBAC7B,aAEA,mCACA,mCACA,oCACA,4BACA,0BACA,gBACA,wCACA,iCACA,qBACA,+BACA,2BACA,wBACA,EACA,gDACA,uBACA,kCACA,mCACA,WACA,gCACA,sBACA,2BACA,kBACA,yBACA,wBACA,gCACA,0CACA,wBACA,gCACA,oCACA,+BACA,sBACA,yCA6UA,cAEA,IADA,UACA,OACA,KACA,KACA,KACA,MACA,cAwBA,GAtBA,uCAAgD,IAEhD,UAEA,EADA,wCACA,CAD0E,mBAC1E,WACA,cAEA,4BACA,eAGA,8BACA,gBACA,8BACA,QACA,YACA,qBACA,WACA,CAAG,EAEH,WAEA,4CACA,aACA,0CACA,0CACA,sEACA,CAAK,EAGL,aAEA,uBACA,uBACA,eACA,aACA,SAAc,CACd,WACA,EAEA,iBACA,UACA,eACA,sBACG,EAEH,wDACA,iBACA,CAAG,EAEH,SAMA,YACA,oBACA,oCAPA,YACA,oBACA,oDASA,8BACA,aACA,cAEA,sCACA,aACA,4CACA,4CACA,uCACA,CAAS,EAYT,GAJA,gBAFA,GAHA,gBAGA,wBAGA,8BAGA,kBAWQ,IACR,8CAEA,aACA,iDACA,iDACA,uDACA,SACA,yBACA,2BACA,UACA,CAAW,CACF,CACT,MAvBA,aACA,iDACA,iDACA,uDACA,SACA,yBACA,2BACA,UACA,CAAW,CACF,EAyBT,GATA,IAEA,sBACA,qBACA,EACA,eACA,EAGA,0CACA,aACA,iDACA,iDACA,oDACA,SACA,UACA,CAAW,CACF,EAGT,6CACA,aACA,iDACA,iDACA,oDACA,SACA,UACA,CAAW,CACF,EAGT,KACA,OACA,iCACA,2BACA,MACA,eACA,uDACO,EACP,4BAEA,+BACA,oBACA,mBACA,UACA,CAAS,GAGT,2BACA,MACA,eACA,kBACA,EACA,0BACA,MACA,CAAO,EACP,UAEA,uBACA,WACA,WACA,sBACA,aACA,WACA,EAGA,sBACA,OACA,CAAO,GACP,EAAK,aAGL,2CACA,wEACA,GAEA,gDAEA,oBACA,2CACA,KAEA,CAAK,EAGL,mDACA,UACA,CAAG,EAEH,aACA,uBACA,8BACA,oCACA,uCACA,IACA,CAAS,CACT,CAAO,CACP,gCACA,UACA,CAAO,CACF,GAGL,4CACA,kCACA,IACA,CAAK,CACL,CAAG,EAEH,oDACA,2DACA,CAAG,EAEH,yCACA,wBACA,KACA,CAAK,CACL,CAAG,EAEH,wBACA,YACA,iBACA,uCAEA,kBACA,CAAG,IAEH,gCACA,IAo3BA,EAp3BA,OAEA,gBACA,GAm3BA,CAFA,MAAiC,CAh3BjC,kCAk3BA,WAAoC,WACpC,0CACA,gBAA6C,cAC7C,6BACG,EAEH,IAr3BA,4BAEA,gBACA,CAAG,EAEH,yCACA,aACA,CAAG,EAEH,qCA/TA,GAEA,IADA,EACA,oBACA,cACA,wBAEA,0CACA,sBAwTA,CAxTA,oBACA,CAAK,EAEL,cAEA,mBACA,0BACA,aAEA,sDAEA,mBACA,0BACA,uBAIA,aACA,cACA,iBAGA,oBACA,GAiSA,YAEA,CApSiD,GAoSjD,oDACA,UAEA,QAAgB,0BAAgC,IAEhD,IADA,uBACA,YAEA,eAEA,mBACA,0BACA,0BACA,wBAGA,CAAG,EAEH,wDACA,GACA,CAAG,EAEH,wDAKA,IAJA,sBACA,gBAIA,CAAG,CACH,CAEA,iBAEA,2CAEA,IADA,IACA,OACA,OAEA,eA2BA,IAlBA,6BACA,oDAEA,cAEA,YACA,2BACA,6CAEA,EAKA,EAFA,2BAEA,uBACA,uBACA,CAAG,EAEH,IAAc,WAAmB,IACjC,oCAGA,wDACA,QAAgB,WAAmB,IACnC,sCAEA,CAAG,EA/BH,aACA,UACA,CA8BA,EAEA,6CACA,WAEA,sDACA,wCACG,MACH,EAEA,+CACA,KAEA,yBACA,0CAGA,KADA,6BACA,YAGA,2BACA,EACA,aACA,0CACA,IACA,CAAW,CACX,EAAS,aAGT,yCAGA,EAEA,6DAGA,WACA,4BACA,sCAKA,2BACA,mCACA,aACA,4DACA,CAAK,aAEL,EAYA,qCACA,4CACA,4DACG,CACH,EAYA,6CACA,4CAgBA,OAfA,EACA,mBACA,iEACA,SAEA,iBAIA,aAGA,CACA,CAAO,CAGP,CAAG,CACH,EAgBA,gCACA,WAEA,iCACA,mCACA,YACA,iBACA,2CAGA,EACA,KAEA,GAEA,CAAK,CACL,CAAG,CACH,EA8JA,iCACA,WAMA,OAJA,GACA,OAGA,0BACA,iDACA,WACA,OAEA,GACA,0CACA,aAEA,IAEA,CAAK,CACL,CAAG,CACH,EAiBA,mCACA,YA2BA,CAzBA,oBASI,+BAUJ,4BACA,QACA,WACA,CAAK,EAZL,SACA,4CACA,4CACA,QACA,wBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,gFACA,CAAK,EAiBL,GACA,kBAGA,iBACA,EAqBA,sCACA,YA2BA,CAzBA,oBASI,+BAUJ,+BACA,QACA,WACA,CAAK,EAZL,SACA,4CACA,4CACA,QACA,6BACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EAiBL,GACA,kBAGA,iBACA,EAqCA,qCACA,cAkCA,CAhCA,0BASI,qCAUJ,2BAGA,IAEA,gCACA,cACA,sBACA,cACO,EAlBP,SACA,4CACA,4CACA,QACA,6BACA,QACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,QACA,sFACA,CAAK,EAwBL,GACA,kBAGA,iBACA,EA2BA,wCACA,IAEA,EAFA,OACA,kDASA,CANA,kBAEI,0BACJ,uDAFA,8DAKA,GACA,eACA,OACA,iDACA,iDACA,SACA,CAAO,GAIP,wBACA,oCACA,CAAG,CACH,EAwBA,mCACA,8BACA,cACA,kBACG,CACH,EAuBA,wCACA,cAiCA,CA/BA,0BASI,qCAUJ,mBAGA,IAEA,mCACA,cACA,qBACA,CAAO,EAjBP,SACA,4CACA,4CACA,QACA,gCACA,QACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,QACA,uFACA,CAAK,EAuBL,GACA,kBAGA,iBACA,EAYA,yCACA,0BACA,QACA,wBACA,OACA,CAAG,CACH,EAoBA,8BACA,YA0BA,CAxBA,oBASI,+BAUJ,8BACA,OACA,CAAK,EAXL,SACA,4CACA,4CACA,QACA,iBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EAgBL,GACA,kBAGA,iBACA,EAuBA,8BAEA,IADA,EACA,wBAuCA,CArCA,oBASI,gCAUJ,uBAEA,sCACA,OACA,CAAK,EAEL,WAIA,0BA7lCA,EACA,EACA,EADA,cADA,EA8lCA,mBA9lCA,yBACA,UACA,wBAGA,MACA,uBACA,0CACA,WACA,YACA,OACA,sBACA,yCAmlCA,mCAEA,CAAO,CAt5CP,IA+3CA,SACA,4CACA,4CACA,QACA,iBACA,EACA,sEACA,CAAK,EAhBL,SACA,wCACA,wCACA,QACA,IACA,EACA,kFACA,CAAK,EA6BL,GACA,kBAGA,iBACA,EAaA,gCACA,oBAoBA,4BAEA,CAAC,EAAE,syBAAwyB,uBAC3yB,aAEA,qCACA,gDAEA,4BACA,6BACA,gCACA,oCACA,aACA,EACA,EACA,OACA,GAEA,aACA,EACA,EACA,UACA,GAYA,OATA,qBAEA,iBACA,iBACA,iBACA,iBAEA,iBAEA,MAGA,CAAC,EAAE,0DAA0D,uBAC7D,aAGA,oCACA,2CACA,uBACA,kDACA,+BACA,6BAmTA,YAyCA,0BACA,SA/DA,YACA,SACA,QACA,qBACA,8BACA,gBACK,EACL,gBACA,eAEA,iCACA,wBACA,IACA,CAAS,EACT,0BACA,iCACA,CAAS,CACT,CAAO,CACP,CAAK,CACL,GAiDA,QAjWA,SAkWA,CAEA,CAAC,EAAE,yMAAyM,uBAC5M,aAEA,mDACA,iDACA,2CACA,8CAUA,WACA,YACA,aACA,YAPA,WACA,eACA,EAMA,uDACA,QACA,8DACA,oBAfA,WACA,oBACA,CAcA,CAEA,CAAC,EAAE,+QAA+Q,uBAClR,aAEA,+BACA,gBAGA,GACA,QAHA,UAIA,wBACA,gBACA,cACA,YACA,cACA,qBACA,iCACA,iCACA,CAAG,CACH,mBACA,UACA,aACA,iBACA,kBACA,iBACA,KACA,CAAG,CACH,iBACA,0CACA,0CACA,qCACA,CAAG,CACH,sBACA,cACA,eACA,CAAG,CACH,oBACA,cACA,aACA,cACA,YACA,CAAG,CACH,wBACA,qDAIA,2DACG,CACH,eACA,kBACA,kBACA,0BACA,2BACA,kBACA,qBACA,qBACA,yBACA,8BACA,0BACA,qBACA,aACA,aACA,QACA,YACA,OACA,cACA,YACA,mBACA,eACA,aACA,eACA,0BACA,oBACA,0BACA,yBACA,uBACA,cACA,iBACA,cACA,SACA,aACA,eACA,gBACA,cACA,UACA,UACA,UACA,cACA,gBACA,iBACA,eACA,aACA,cACA,aACA,CACA,eACA,gBACA,uBACA,uBACA,CAAK,CACL,QACA,0BACA,0BACA,CAAK,CACL,KACA,WACA,WACA,CAAK,CACL,gBACA,kBACA,uBACA,CAAK,CACL,iBACA,wBACA,wBACA,CAAK,CACL,gBACA,uBACA,uBACA,CAAK,CACL,YACA,mBACA,mBACA,CAAK,CACF,CACH,mBACA,yBACA,0BACA,mBACA,oBACA,CAAG,CACH,6BACA,UACA,qBACA,oBACA,oBACA,cACA,kBACA,WACA,SACA,YACA,WACA,aACA,gBACA,CACA,8BACA,UACA,qBACA,oBACA,oBACA,cACA,kBACA,WACA,SACA,YACA,WACA,aACA,gBACA,CACA,sBACA,4BACA,iCACA,oBACA,kCACA,gCACA,aACA,mCACA,CAAG,CAGH,YACA,CACA,YACA,0BACA,gBACA,4BACA,cACA,gBACA,cACA,cACA,mBACA,mBACA,eACA,0BACA,gBACA,cACA,oBACA,uBACA,uBACA,sBACA,kBACA,CACA,kBAGA,WAEA,CAAC,EAAE,yCAAyC,uBAC5C,aAsCA,oCAEA,YACA,uBACA,qBACA,6BACA,4DACA,CAAG,CACH,iCACA,sBACA,sCACA,CAAG,CACH,sCACA,sBACA,4CACA,uDACA,CAAG,CACH,sCACA,sBACA,4CACA,sDACA,CAAG,CACH,6BACA,sBACA,kCACA,CAAG,CACH,iCACA,sBACA,sCACA,CAAG,CACH,0CACA,qBACA,gDACA,gDACA,CAAG,CACH,8CACA,sBACA,oDACA,kEACA,CAAG,CACH,oDACA,sBACA,0DACA,sDACA,CAAG,CACH,mCACA,sBACA,yCACA,qDACA,CAAG,CACH,4BACA,sBACA,kCACA,kEACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,6EACA,CAAG,CACH,uCACA,sBACA,4CACA,CAAG,CACH,2CACA,sBACA,gDACA,CAAG,CACH,sCACA,sBACA,2CACA,CACA,CAEA,CAAC,EAAE,gCAAgC,uBACnC,aAiBA,UAfA,cAIA,IAHA,mBACA,KAEA,SACA,8CACA,UAGA,eAGA,QACA,CAIA,CAAC,GAAG,uBACJ,aAEA,+BACA,mBACA,+BACA,yBAEA,GACA,2BACA,6CAYA,wCAMA,qCACA,qCACA,6CACA,wCACA,eACA,KACA,qBAEA,eACA,QACA,eA3BA,CACA,yBACA,2BACA,wBACA,uBACA,uBACA,+BACA,sBACA,sBACA,GAmBA,YAAqB,SACrB,eAAyB,IAGzB,mCAEA,uCACA,KAWA,yBACA,QAEA,CAAK,EAEL,GArCA,iCAsCA,CAAG,CACH,o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CA,oEACA,YAhBA,CACA,iDACA,6CACA,EAcA,gBAtBA,CACA,kDACA,sDACA,EAoBA,mCACA,+DACA,+CACA,4DACA,aAjBA,CACA,wDACA,4DACA,EAeA,2BACA,UACA,qBACA,gBACA,SAlCA,MAmCA,6CACA,gDACA,CAEA,CAAC,GAAG,uBACJ,aAEA,6BACA,gBAEA,wBACA,sBACA,gBACA,aACA,yCACA,yCACA,6CACA,CAAO,CACP,CACA,CAAG,CACH,CAEA,CAAC,EAAE,uCAAuC,uBAC1C,aAEA,6BAiBA,UAfA,qBACA,eACA,EAGA,OACA,YACA,YACA,kBACA,SACA,eACA,CACA,CAAG,CACH,CAIA,CAAC,EAAE,wBAAwB,uBAC3B,aAGA,mCASA,WACA,OARA,YAGA,mBACA,CAKA,CAEA,CAAC,EAAE,kBAAkB,uBACrB,aAEA,uCACA,wCA6CA,UA5BA,YAEA,IAZA,EACA,EAUA,IACA,GACA,QAAa,CACb,YACA,EAoBA,MAvCA,iDAqBA,IAhBA,GADA,EAkBA,EAlBA,WACA,IAiBA,EAdA,CACA,WAHA,qBAIA,aACA,EAYA,4BACA,0BACA,YACA,iBACA,cACA,aACA,iCAEA,mBACA,4BACA,iCACA,2BACA,wBACA,qBAGA,CACA,CAIA,CAAC,EAAE,oDAAoD,uBACvD,aAEA,6BACA,gBACA,gBAEA,YAqDA,WACA,OApDA,YACA,+BAEA,SACA,2BAGA,2CACA,KACA,YACA,6CACA,CAAO,EACP,kBACA,sBACA,OACA,yCACA,yCACA,+CACA,SACA,eACA,CAAa,CACF,EAEX,EAAO,EAGP,yBACA,oCACA,eACA,OACA,kCACA,kCACA,QACA,mBACA,gCACA,SACA,OACA,aACA,EACA,iDACA,CAAS,GAIT,gCACA,8BACA,aACA,CAAK,CACL,CAAG,EACH,CAIA,CAEA,CAAC,EAAE,sDAAsD,uBACzD,aAEA,sBACA,kBAEA,gBAEA,sBACA,eACA,CAAK,GACL,CACA,CAEA,CAAC,GAAG,uBACJ,aAEA,qCAEA,aACA,0BAEA,sBACA,CAEA,oDACA,sBACA,8BAEA,EAEA,iCACA,wBACA,+CAEA,MACA,CAEA,uBAEA,EACA,uBACA,aACA,0BACA,uBAEA,sBACA,IAEA,EAAK,YAEL,EAEA,WAEA,CAAC,EAAE,gCAAgC,uBACnC,aAYA,UAVA,cAGA,OAFA,eAEA,uBAGA,OAFA,SAEA,CACA,CAAG,GAAI,CACP,CAIA,CAAC,GAAG,uBACJ,aAuBA,6BAEA,WACA,kCACA,sBACA,uCACA,CAAG,CACH,+BACA,sBACA,oCACA,CAAG,CACH,uBACA,sBACA,4BACA,CAAG,CACH,8BACA,qBACA,oCACA,sDACA,CAAG,CACH,8BACA,sBACA,mCACA,CAAG,CAGH,CAAC,EAAE,wBAAwB,uBAC3B,aAEA,sBACA,mBACA,eAGA,QACA,CAEA,CAAC,GAAG,uBACJ,aAEA,0BACA,MAEA,QAAc,WAAkB,IAChC,uCACA,YAIA,WACA,CAEA,CAAC,GAAG,uBACJ,aAEA,8BACA,iCACA,0BACA,gBACA,wBACA,wBACA,2BACA,uBACA,0BACA,6BACA,mCACA,6BACA,EACA,qDAEA,6CAEA,cAkBA,cACA,CAjBA,YACA,MACA,+CASA,GANA,sBACA,wBACA,mDAEA,CAAG,EAEH,yBACA,mDAEA,EAGA,GAEA,qCAEA,eACA,gCACA,oCACA,4BACA,gBACA,cACA,UACA,aAEA,uBAEA,iBAAwB,wBAA0B,EAClD,oBACA,CAEA,mCACA,kBACA,IACA,uCACA,EAAG,YAEH,uCACA,0BACA,EAEA,2CACA,gDACA,gCAEA,wBACA,iBACA,OACA,QACA,MACA,6BACA,SACA,QACA,OACA,oBACA,cACA,CAAK,CACF,EAEH,8CACA,EAEA,qCACA,aACA,wBACA,eACA,0BACA,oDAEA,oBAEA,8BAEA,GACA,GAEA,EAAK,aAGL,aACA,EACA,aACA,aACA,EAAK,YAEL,EAEA,+BAMA,GALA,QACA,4CAEA,2BAEA,4BAYA,GALA,sBAEA,2BACA,mBAEA,sBACA,qBAEA,GACA,4CAGA,MACA,CACA,0BACA,EAEA,iCACA,oCACA,uBAEA,EAEA,6BACA,sBACA,mBAEA,EAEA,6BACA,sBACA,mBAEA,EAEA,sCAGA,OAFA,QAEA,CACA,kBACA,eACA,gBAGA,YACA,EAAK,YACL,kBACA,eACA,gBAGA,YACA,GAAK,UACL,CACA,EAEA,yCACA,OACA,QACA,OACA,CACA,EAEA,gCACA,aACA,gEACA,yBACA,oBACA,EAEA,qCACA,gDACA,EAEA,qCACA,iBACA,mCACA,wBACA,EAEA,0CAeA,OAdA,gCACA,YACA,uBACA,qBACA,0BACA,yBACA,qCAIA,EAAK,YACL,uBAGA,qBAGA,gDACA,yBACA,uBAEA,MAA6B,yBAE7B,EACA,SACI,EACJ,SAGA,QACA,EAEA,WAEA,CAAC,EAAE,4TAA8T,uBACjU,aAEA,2BAuBA,WACA,qBACA,eAEA,wBACA,IACA,CAAK,CACL,CAAG,CAGH,CAAC,EAAE,sBAAsB,uBACzB,aAEA,8BACA,8BACA,sCAEA,GACA,iBACA,MACA,OACA,SACA,UACA,SACA,SACA,eACA,aACA,oBACA,EAEA,cAQA,cACA,kBACA,iBACA,oBACA,uDAGA,yBAEA,4BACA,OACA,+BACA,wBACA,gBACA,cACA,aACA,UAAoB,IACpB,sBACA,EAEA,WAGA,qBACA,sBAEA,YAGA,uCAEA,oBACA,cACA,aACA,gBACA,oCACA,CAAK,EAEL,iBACA,mCAEA,0BAEA,gBAEA,qCACA,EAEA,oBAEA,6BACA,sCACA,iBACA,gBACA,oBACA,uBAEA,EAEA,gCACA,sBAGA,iCACA,iBACA,EAEA,wCACA,qEACA,qEACA,gBACA,+BACA,+BAEA,kCAGA,sCACA,8BAGA,4BACA,0DACA,uDACA,2CACA,4CAEA,sCACA,qCACA,oBACA,EAEA,WAEA,CAAC,EAAE,mFAAmF,uBACtF,aAEA,oCACA,2BAEA,cAEA,cACA,kBACA,eACA,CAEA,mCACA,WAEA,4CACA,aAIA,GAFA,aAEA,MAEA,uCAEA,MACA,CAEA,SACA,CACA,EAEA,6BACA,MAGA,EADA,UACA,yCAEA,gBACA,0BACA,EAEA,oBAEA,oBAEA,gCACA,sBAGA,iCACA,WAAc,eAA2B,CACzC,EAEA,WAEA,CAAC,EAAE,yDAAyD,uBAC5D,aAEA,qCACA,kBAEA,yBACA,WACA,EAGA,OACA,CAEA,sBACA,uCACA,iCACA,mBACA,qBAEA,OACA,qBACA,YACA,WACA,SACA,UACA,UACA,CAEA,CAAC,EAAE,iDAAiD,uBACpD,aAEA,6BAIA,cACA,iBACA,mBACA,CAEA,uBAPA,aASA,4BACA,wBACA,2BACA,mBACA,iBAEA,EAEA,6BACA,mBACA,EAEA,6BACA,oBAGA,mBACA,EAEA,gCACA,0CAGA,iCACA,2BACA,EAEA,WAEA,CAAC,EAAE,wBAAwB,uBAC3B,YAqBA,YACA,IApBA,YAKA,MAWA,EAdA,2DAGA,CAWA,IAbA,sDAGA,EAeA,KAbA,YAIA,MAIA,EAPA,yDAGA,CAIA,IANA,uDAGA,EASA,OAPA,gBACA,eACA,CAMA,CAEA,CAAC,GAAG,uBACJ,YAEA,YACA,+CACA,kEACA,gEACA,CAEA,CAAC,EAAE,8IAA8I,uBACjJ,aAEA,WACA,+BACA,gDACA,0CACA,wBACA,yBACA,wBACA,uBACA,CAEA,CAAC,GAAG,uBACJ,aAUA,iCAEA,WACA,4BACA,sBACA,kCACA,uDACA,CAAG,CACH,iCACA,sBACA,uCACA,+BACA,CAAG,CAGH,CAAC,EAAE,4BAA4B,uBAC/B,aAEA,2BAEA,YACA,iDACA,gBAGA,CAAC,EAAE,sBAAsB,uBACzB,aAEA,gBACA,uBAEA,gBACA,0BAeA,WAAkB,CAdlB,CACA,oBACA,yDACA,4BACA,yBACA,qCACA,gBACA,0BACA,sBACA,UACA,mBACA,CAAK,CACL,EAEkB,EAClB,CAEA,0BAEA,IADA,IACA,oCACA,EACA,kDACA,aACA,OAiGA,OA/FA,OACA,GACA,aACA,kBACA,cACA,uBACA,CACA,YACA,YACA,iDACA,4CACA,YACA,sBACA,EAEA,CAAW,CACX,2BACA,uBACA,gBACA,qCACA,gCACA,CAAa,CACb,CAAW,CACF,CACT,EAGA,GACA,iBACA,YACA,GAGA,mBACA,GACA,cACA,YAEA,kBACA,gBACA,CACA,OACA,0BACA,CAAiB,CACjB,oBACA,CAAe,CACf,CACW,CAEF,CACT,2BACA,uBACA,gBACA,4CACW,CACX,CACA,EAEA,mCAGA,GACA,cACA,gDACA,qCACA,mCACA,gBACA,qCACA,iCACS,CACT,CAAO,CACP,kBACA,4CACA,YACA,sBACA,EAEA,CAAO,EAGP,0CACA,kDACA,sBACA,kBAGA,GACA,iBAGA,GACA,kBAIA,CACA,CAEA,CAAC,EAAE,eAAe,uBAClB,aAEA,sBACA,YAEA,IACA,sBACI,SACJ,QACA,CACA,CAEA,CAAC,GAAG,uBACJ,aAEA,cACA,mBAEA,+BACA,CAQA,UANA,cACA,OACA,UAEA,CAIA,CAAC,GAAG,uBACJ,aAEA,sBACA,OACA,GACA,8BACA,UAEA,CAEA,CAAC,GAAG,uBACJ,aAQA,WACA,QAPA,YAGA,iBAFA,+BAGA,CAIA,CAEA,CAAC,GAAG,uBACJ,aAGA,IADA,EACA,GACA,eACA,0BACA,yBACA,qBACA,EAwBA,UAhBA,YACA,aAEA,oBAEA,oBAKA,CADA,kCACA,OACA,aAdA,+BAgBA,oBACA,CAIA,CAAC,GAAG,uBACJ,aAEA,sBACA,oCACA,CAEA,CAAC,GAAG,uBACJ,aAEA,sBACA,yCACA,8BACG,CACH,CAEA,CAAC,GAAG,uBACJ,YAaA,WAXA,YACA,SAEA,kBACA,IACA,KACA,wBAEA,CACA,CAIA,CAAC,GAAG,uBACJ,aA0BA,cAGA,OAFA,0BAEA,YACA,CA2BA,gBAEA,IADA,MACA,KAEA,WACA,sBAIA,OAIA,EAFA,EAnDA,GACA,iBAmDA,GAlDA,iBAkDA,EAlDA,QACA,kDAiDA,GACA,OAEA,YAGA,EAEA,mBACA,eAEA,yDAIA,kBACA,CAcA,WACA,MApEA,mBAKA,EAFA,2BAOA,CADA,qBACA,8BAEA,qBACA,mBACA,2BACA,2BAIA,OAFA,OAEA,CACA,CAAG,GAAI,EAdP,EAiBA,EA8CA,YACA,SAfA,cASA,OARA,QAEA,sCAxFA,GACA,MAEA,WACA,uBACA,SAIA,QACA,EA8EA,KACA,8BACA,8BACA,SAGA,CACA,EAMA,gBACA,CAEA,CAAC,GAAG,uBACJ,aAEA,2BACA,wBAKA,cAGA,+BAFA,QAEA,UACA,CAEA,qBAGA,EAFA,QAMA,OAHA,IAIA,CAiCA,WACA,kBACA,gBACA,gBAlCA,gBACA,kCACA,OACA,qBACA,iCACA,sCAmBA,CAjBA,yBACA,iBAEA,yBACA,iBAEA,IACA,IACA,kCACA,kBAGA,mBACA,6BAA8C,OAAgB,IAI9D,MACA,OAGA,CACA,CAMA,CAEA,CAAC,EAAE,4CAA4C,uBAC/C,YAEA,8BACA,oBACA,EAGA,8CACA,yBACA,CAAG,CACH,CAEA,CAAC,GAAG,uBACJ,aAEA,wBAMA,YACA,aALA,WACA,oCACA,CAIA,CAEA,CAAC,EAAE,oBAAoB,uBACvB,aAMA,UAJA,YACA,kBACA,CAIA,CAAC,GAAG,uBACJ,aAKA,qCAEA,cAEA,IADA,gBACA,SACA,mBAAuB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,IAAI,MAE7F,EACA,oEACA,KAEA,cACA,uEAGA,IACA,GACA,2BACA,2BACA,2BACA,2BAEA,mBACA,oBACA,gBAEA,GACA,uBACA,8BACA,oCACI,YAEJ,QACA,CAEA,WACA,iBACA,uBACA,CAAG,CACH,OACA,CAEA,CAAC,GAAG,uBACJ,aAEA,WACA,oCACA,YACA,UACA,eACA,cACA,SACA,WACA,CACA,oDACA,YACA,UACA,eACA,iBACA,cACA,SACA,UACA,iBACA,YACA,QACA,SACA,8BACA,gBACA,QACA,mBACA,YACA,CACA,8BACA,gBACA,WACA,aACA,cACA,CACA,iCACA,WACA,OACA,WACA,aACA,gBACA,CACA,iDACA,YACA,UACA,eACA,cACA,SACA,CACA,uDACA,mDACA,WACA,oBACA,aACA,CACA,wDACA,oBACA,WACA,CAGA,CAAC,GAAG,uBACJ,aAEA,4CACA,iCACA,yBAEA,EACA,gDACA,2BACA,yBACA,0CACA,4CACA,mCACA,6BACA,+BACA,mBACA,wBACA,+BACA,2BAcA,cACA,sBACA,gBACA,0EAGA,kDACA,sBACA,gBACA,oCACA,iBACA,QACA,iCACA,4BACA,4CACA,gBACA,gCACA,wBAEA,CA62BA,cACA,wBACA,EACA,+BACA,4BACA,oBAEA,WAEA,6BACA,6BAIA,sDACA,CAx5BA,qCA8BA,mCACA,WACA,eACA,wBACA,6CACA,CAAG,IAEH,+BACA,SACA,CACA,+BACA,iBACA,aACA,uBACA,cACA,QACA,gCACO,CACP,YACA,kBACA,gBACA,8CACA,IACA,EAEA,CAAG,CACH,EAwUA,qCAaA,IAZA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,QAAmB,KAenB,CAbA,kBACA,6BAEA,6BASA,WAomBA,GACA,cAEA,MACA,SAGA,SAGA,wBAFA,sBAEA,cACA,IACA,IACA,8DACA,IACA,CAGA,GAFA,EACA,wDACA,qBACA,SAEA,uCAEA,IADA,EA3HA,YACA,QAEA,QAAc,wCAAmD,IAEjE,GADA,oCACA,qBACA,SAIA,QACA,EAgHA,MAEA,cACA,MACU,oBACV,GAnHA,YACA,YAEA,QAAc,WAAkB,IAEhC,QADA,OACgB,2CAAsD,IAEtE,GADA,uCACA,qBACA,SAKA,QACA,EAqGA,OAEA,cAGA,MACM,4BACN,gBA1GA,GAEA,IADA,MACA,oBAQA,IANA,eACA,uDACA,kBAKA,IACA,2DACA,IAGA,GADA,uDACA,qBACA,SAIA,+BACA,KACA,IACA,qDACA,IAKA,GAHA,iDAGA,6BACA,8BAEA,MACI,iCAGJ,GAFA,mBAEA,2BACA,KACA,IACA,EACA,gEACA,IAKA,GAHA,EACA,4DAEA,qBACA,+BAEA,MAEA,IACA,IACA,6DACA,IAIA,GAFA,yDAEA,qBACA,gCAMA,QACA,EAuCA,OAEI,CAKJ,IAJA,eACA,4DAGA,IAAgB,8CAAyD,IAGzE,GAFA,0CAEA,qBACA,SAIA,mBACA,qBAEA,0BACA,4BAEA,mCACA,kBAEA,CAEA,QACA,EAjqBA,KAEA,QACA,uDAEA,oBACA,+CAGA,oBAEA,sBACA,gBACA,iBACA,uBACA,GACA,gBACA,gBACA,sBACA,wBACA,gBACA,eACA,wBACA,0BACK,CACL,sBACA,0BACA,gBACA,8BACA,0BACA,+BACA,gCACA,mBACA,wBACA,0DACA,gBACA,sCACK,CACL,sBACA,4BACA,cACA,mBACA,sBACA,wBACA,sBACA,uCACA,yCACA,mBACA,gDACA,cACA,oCACA,wBACA,sBACA,gCACA,gBAGA,mBACA,6BACA,cACA,CAAK,EACL,mBAEA,aACA,aACA,qCACA,cACA,QACA,CACA,UACA,qBACA,mCACA,GACA,GAEA,aACA,aACA,qCACA,cACA,QACA,CACA,UACA,QACA,kBAIA,KAAmB,wBAA4C,EAE/D,2CAEA,iDACA,YACA,UACA,oEAGA,eACA,8CAIA,8BAEA,QAIA,0BACA,sDACA,YACA,YACA,CAAO,CACP,YACA,WACA,GAGA,qBACA,CACA,eAthBA,KAuhBA,iBAthBA,GAuhBA,CAAO,CACP,0BAIA,UACA,SACA,cACA,iCACA,MACA,CAAK,EACL,iBACA,oCAEA,kBACA,YACA,UACA,0DAGA,YACA,UACA,sDAGA,yBAEA,MACA,8BAEA,6BACA,SACA,MACA,wDAIA,qBACA,0CACW,YAEX,QACA,kBACA,WACA,CAAa,EAEb,aAGQ,kBACR,IACA,uDAEA,mDAGA,iBACA,CAAY,yCAAkD,CAC9D,WACA,uDACA,EAGA,CAAK,EACL,kBACA,sCAOA,GALA,mBACA,wBAEA,8BAEA,SACA,SACA,OACA,iDACA,iDACA,uDACA,SACA,eACA,CAAa,CACF,GAGX,MACA,CAEA,SACA,KACA,+CACA,+CACA,qDACS,EAET,CAAK,EAEL,EACA,EAmBA,iCACA,WACA,qBASA,CAPA,iBAGA,YACA,iBAGA,oBACA,eACA,OACA,mCACA,mCACA,yCACA,SACA,eACA,sBACA,kBACW,CACF,CACF,GAEH,YACJ,eACA,OACA,+CACA,+CACA,qDACA,SACA,eACA,sBACA,kBACW,CACF,CACF,GAIP,EACA,SACA,2CACA,cACA,gCACA,CAAK,EACL,iBACA,kCAcA,OAZA,mBACA,YACA,EACA,kEAGA,YACA,EACA,sDAIA,CACA,CAAK,EACL,kBAMA,OALA,YACA,EACA,qDAGA,eACA,KACA,8CACA,8CACA,mDACA,CAAS,EAET,CAAK,CACL,EASA,mCACA,8BACA,YACA,aACA,qEAGA,0BACA,EASA,mCACA,0BACA,EAEA,iDACA,EACA,GAEA,WACA,eAEA,qBAEA,GADA,8BACA,GACA,0CACA,wCAGA,YACA,EACA,kDAEA,+CAEA,MACA,CAOA,YACA,EACA,6DAEA,uCACA,EAAQ,IACR,QACA,sDAEA,EACA,OACA,6CACA,6CACA,mDACA,SACA,eACA,CAAa,CACF,QAGL,IACN,oBACA,6CAGA,EACA,YACA,QACA,SACA,gBACA,uBACA,CAAS,EAET,CACA,EAEA,+CAEA,IADA,EACA,KAqBA,OAnBA,kBACA,wBAGA,GACA,cACA,UAAe,CACf,aAGA,YACA,qBACA,gCAEA,yBACA,2CAIA,CACA,EAuBA,6CACA,sBAEA,0BAIA,EACA,6CAEA,EAEA,4CAEA,MADA,gCACA,qBAYA,MAXA,CACA,0CACA,eACA,mCACA,0CACA,iCACA,qCACA,aACA,CAAK,CAIL,EA2MA,gCAWA,OARA,IAFA,CAEA,iBACA,IAHA,CAGA,CAHmB,YAGnB,YAGA,EANA,KAMA,gBAEA,gBARA,CAQA,4CAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,mbAAmb,uBACtb,aAMA,4BACA,2CACA,qCACA,gCACA,gCAEA,+BACA,8BACA,uBACA,gCAkIA,WACA,SA3DA,YACA,sBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBAEA,IADA,IACA,6BAIA,CAFA,WAEA,2CACA,eACA,qCAIA,2CAEA,WACA,eAGA,CAFA,2BAEA,qBACA,EACA,YACA,iBAGA,OAFA,oBAEA,CACA,CAAa,EACb,kBAGA,OAFA,0CAEA,CACA,CAAa,EAGb,EAGA,eACA,CAAK,CACL,GAQA,QA5IA,SA6IA,CAEA,CAAC,EAAE,4QAA4Q,uBAC/Q,aAqBA,qCAEA,WACA,2BACA,sBACA,iCACA,wDACA,CAAG,CACH,mCACA,sBACA,yCACA,sDACA,CAAG,CACH,wBACA,sBACA,8BACA,gEACA,CAAG,CACH,6BACA,sBACA,mCACA,iEACA,CAAG,CACH,kCACA,sBACA,wCACA,QACA,qCAA2C,gEAC3C,CAAG,CACH,oCACA,qBACA,0CACA,2CACA,CAAG,CACH,qDACA,sBACA,2DACA,mDACA,CAAG,CACH,qDACA,qBACA,2DACA,4DACA,CAAG,CACH,mCACA,qBACA,yCACA,yDACA,CAAG,CACH,sCACA,sBACA,4CACA,4CACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aAEA,4CACA,iCACA,wBAEA,yBACA,+BACA,2BACA,0CACA,4CACA,2BAEA,EACA,gDA+CA,cACA,iCAEA,uBACA,gBACA,gDACA,wBACA,wBAEA,oBACA,yDAEA,mEAEA,kBACA,gBACA,uBACA,0BACA,OAEA,CAEA,mCACA,WAEA,+BACA,4BACA,kDACA,CAAK,IAEL,SACA,CACA,0BACA,sBACA,oBACA,iBACA,aACA,uBACA,uBACA,QACA,aACA,aACA,iCACA,uBACA,OACA,CAAO,CACP,YACA,kBACA,gBACA,mDACA,IACA,EAEA,CAAG,CACH,EA0DA,iCACA,iBAEA,aA0RA,GACA,QAEA,QAAc,yCAAoD,IAGlE,GAFA,qCAEA,qBACA,SAIA,QACA,EAtSA,GACA,eACA,sDAIA,kBACA,eACA,sDAIA,0BACA,0CAEA,qBACA,eACA,+BAEA,CAAG,CACH,EAEA,oDACA,WAIA,OAFA,wBAEA,aACA,SACA,cACA,oCACA,MACA,cACA,iEACA,oBACA,4BACA,8BACS,CACF,CACF,EACL,iBACA,IAQA,EARA,EACA,aACA,iCACA,uBACA,SACA,EACA,kDACA,eAGA,GACA,0BACA,4BACA,2BACA,mDACA,gDACA,8BAGA,mCACA,yBACA,WAEA,CAAO,EAEP,kBACA,gBACA,kBACS,EACT,UAEA,2BACA,CAAK,EACL,kBACA,4CAIA,CAFA,iBAEA,SACA,eACA,0CAIA,eACA,8BAEA,CAAK,CACL,EAEA,kDACA,kBAEA,mBACA,cAGA,GAFA,qBAEA,GACA,YACA,UACA,sDAEA,EACA,EACA,EACA,4BAIA,MACA,CAAQ,kBACR,YACA,UACA,8CAEA,mCAEA,MACA,CAEA,oDACA,EAGA,cACA,MAGA,GAFA,qBAEA,uCACA,YACA,UACA,0CAEA,oCAEA,MACA,CAEA,GACA,QACA,qDACA,CACA,YACA,UACA,0CAEA,EACA,OACA,yCACA,yCACA,+CACA,SACA,eACA,CACA,CAAW,GAGX,MACA,CAEA,wDACA,iBACA,EACA,+BAGA,MACA,CAEA,yCACA,CACA,EAEA,4CACA,iBAEA,wBACA,gEACA,iBAEA,kDA6DA,CA1DA,EA2DA,eA3DA,EA4DA,YA5DA,EA6DA,sBACA,kBACA,0BACA,CAAG,GA/DH,YACA,UACA,kDAEA,iBAEA,eACA,wDAIA,UACA,SACA,4CACA,cACA,MACA,gBACA,4CACA,2BACA,8BACA,CAAS,CACF,CACF,EACL,iBAWA,OAVA,iBACA,mBACA,YACA,UACA,+CAGA,yDAGA,qBACK,EACL,kBAWA,OAVA,iBACA,mBACA,YACA,UACA,8CAGA,wDAGA,eACA,EACA,EACA,0CAGA,CAAK,CACL,EAYA,oCACA,wBACA,0BACA,EAcA,gCACA,WAEA,+BACA,2BAEA,oBAEA,uDAEA,GACA,CAAG,CACH,EAgBA,4BAEA,CAAC,EAAE,qTAAqT,uBACxT,aAKA,kCACA,2CACA,kCACA,6BACA,qCACA,gCAEA,uBACA,+BAiFA,aACA,gDACA,CAEA,WACA,SA9DA,YACA,mBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,uBACA,IAMA,kBALA,eACA,0CAKA,CAAK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,uBAMA,CAHA,WACA,iDAEA,YAQA,IAFA,KAEA,cAPA,eACA,gCAOA,CAAK,CACL,GAoBA,cAKA,QA9FA,SA+FA,CAEA,CAAC,EAAE,0PAA0P,uBAC7P,aAEA,WACA,gEACA,CAEA,CAAC,EAAE,kDAAkD,uBACrD,aAEA,WACA,gDACA,gBACA,iBACA,wBACA,yDACA,CAEA,CAAC,GAAG,uBACJ,aAsBA,oCAEA,YACA,kCACA,sBACA,wCACA,mCACA,CAAG,CACH,wBACA,sBACA,8BACA,sDACA,CAAG,CACH,6CACA,sBACA,mDACA,+CACA,CAAG,CACH,6CACA,sBACA,mDACA,yDACA,CAAG,CACH,wCACA,qBACA,8CACA,uDACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,uGACA,CAAG,CACH,8CACA,sBACA,oDACA,QACA,4FACA,CAAG,CACH,yBACA,sBACA,+BACA,8DACA,CAAG,CACH,mCACA,sBACA,yCACA,iDACA,CAAG,CACH,wBACA,qBACA,8BACA,+CACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aAEA,+BACA,+BACA,gBACA,0CACA,mDACA,0BACA,uBACA,yBACA,yBACA,gCACA,iCAEA,2BACA,WACA,WACA,+BA6GA,GACA,YACA,wBACA,0BACA,uBACA,oBACA,UACA,oBACA,iBACA,EA6BA,cACA,kCAEA,aAEA,sBACA,sBACA,6BACA,2BACA,4BAEA,kDACA,uBAvCA,uBAwCA,8BACA,gDACA,iDACA,+BACA,IACA,aACA,wCACA,CAAK,aAEL,iBAAwB,0BAA4B,CACpD,CAEA,iBAEA,qDACA,WACA,sCACA,oCACA,qCACA,KAuCA,OApCA,uCACA,GACA,+BAEA,cACA,8BACA,MACA,8CACA,cAKA,OAJA,QACA,aAGA,CACA,CAAa,CACb,GAEA,CAAS,CACT,EAIA,uCACA,GACA,WAEA,cACA,0CACA,OACA,EACA,uBACA,uBAEA,GAGA,CACA,EAEA,kCACA,sCACA,aAeA,CAbA,eACA,uBACA,uCACA,wCACA,SACA,QACA,OACA,oBACA,cACA,CAAK,CACL,4BACA,CAAG,EAEH,iDACA,eACA,MACA,uDAKA,4BA5HA,IA6HA,oCACA,YACA,CAAK,EACL,+CACA,qDACA,gDACA,OACA,QACA,iBACA,CAAW,CACX,uBACA,wCACA,CAAW,EAGX,mCACA,kCACA,CAAO,EACP,+CACA,OACA,QACA,gBACA,CAAW,CACX,uBACA,uCACA,CAAW,EAGX,kCACA,iCACA,CAAO,EACP,IACA,CAAK,EAKL,cAlKA,EAmKA,iCAnKA,EAoKA,eAnKA,EAKA,0CAIA,EA2JA,WA1JA,SACA,GA2JA,mCACA,CAAG,CACH,EAwBA,uDACA,cACA,MAEA,MACA,YACA,oFAIA,mCACA,YACA,mFAOA,MAHA,OAA6B,oCAC7B,SAAkC,WAElC,CACA,EAqIA,iCACA,WAIA,iCACA,YACA,8BACA,CACA,wBACA,2BACA,kCACA,kBACA,kBACO,CACP,YACA,WACA,OAEA,MACA,iCAEA,MACA,CAEA,4DACA,GACA,cACA,YACA,0BACA,SACA,gDACA,4BACA,4BACA,0BACW,CACX,kBACS,CACT,EAEA,CAAG,CACH,EA2BA,uCACA,IACA,EADA,cAIA,sBASA,4BACA,8CACA,yBAEA,0BACA,KAEA,CAAK,EAEL,GACA,eACA,OACA,uDACA,uDACA,QACA,uCACA,CAAS,GAKT,0BACA,YACA,mBACA,CACA,wBACA,2BACA,kCACA,kBACA,kBACO,CACP,YACA,WACA,OAEA,MACA,mCAEA,MACA,CAEA,YACA,UACA,uCAGA,IACA,EAEA,CAAG,GAzDH,YACA,UACA,kDAGA,oBAqDA,EAcA,gCAQA,OAPA,qBACA,gDAEA,uBAEA,+DAEA,iBACA,EAEA,iDACA,MAEA,eACA,iBAYA,OAXA,SACA,qCACA,qCACA,2CACA,SACA,eACA,CAAS,CACF,EAEP,8DAEA,CACA,6CACA,SACA,yDACA,yDACA,+DACA,SACA,eACA,CACA,CAAO,EACP,KACA,2DACA,SACA,8DACA,8DACA,QACA,4DACA,SACA,eACA,CAAS,CACF,EACP,KACA,sDACA,SACA,yDACA,yDACA,+DACA,SACA,eACA,CAAS,CACF,EACP,KACA,SACA,SACA,0CACA,8BACA,gDACA,SACA,eACA,CAAS,CACF,CACP,CAIA,OAFA,4DAEA,CACA,EAEA,gDACA,GAEA,MAEA,eACA,4CACA,SACA,yDACA,yDACA,+DACA,SACA,eACA,CACA,CAAO,EACP,KACA,uBACA,SACA,yDACA,yDACA,+DACA,SACA,eACA,CAAS,CACF,EACP,KACA,SACA,SACA,oDACA,oDACA,0DACA,SACA,eACA,CAAS,CACF,CACP,CAIA,OAFA,oEAEA,CACA,EAEA,4BAEA,CAAC,EAAE,0WAA4W,uBAC/W,aAQA,sCACA,2CACA,qCACA,gCACA,8BAuEA,YACA,SA7BA,YACA,wBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBAMA,OAHA,WAGA,IAFA,KAEA,YACA,CAAK,CACL,GAQA,QA5EA,SA6EA,CAEA,CAAC,EAAE,2KAA2K,uBAC9K,aAEA,+BACA,gBAEA,KAEA,WACA,CACA,mBACA,cACA,0BACA,8BACA,0BACA,0BACA,yBACA,yBACA,CACA,oBAGA,WAEA,qBACA,gBACA,2BACA,EAEA,WAEA,CAAC,EAAE,yCAAyC,uBAC5C,aAkCA,oCAEA,YACA,oDACA,sBACA,0DACA,QACA,sEACA,CAAG,CACH,0BACA,sBACA,gCACA,uCACA,CAAG,CACH,8CACA,sBACA,oDACA,oEACA,CAAG,CACH,yCACA,qBACA,+CACA,4DACA,CAAG,CACH,8CACA,sBACA,oDACA,QACA,6JACA,CAAG,CACH,4CACA,sBACA,iDACA,CAAG,CACH,mDACA,sBACA,yDACA,mEACA,CAAG,CACH,8CACA,qBACA,oDACA,mEACA,CAAG,CACH,+BACA,qCACA,iDACA,CAAG,CACH,iFACA,CACA,sBACA,wFACA,QACA,2EACA,CAAK,CACL,gFACA,CACA,sBACA,uFACA,QACA,qFACA,CAAK,CAGL,CAAC,EAAE,gCAAgC,uBACnC,aAwCA,kCAEA,WACA,oBACA,sBACA,0BACA,kDACA,CAAG,CACH,mCACA,sBACA,yCACA,QACA,+OACA,CAAG,CACH,oCACA,qBACA,0CACA,mDACA,CAAG,CACH,oBACA,qBACA,0BACA,2CACA,CAAG,CACH,6BACA,sBACA,mCACA,qDACA,CAAG,CACH,sDACA,sBACA,2DACA,CAAG,CACH,oDACA,qBACA,0DACA,qEACA,CAAG,CACH,yDACA,sBACA,+DACA,QACA,qGACA,CAAG,CACH,gDACA,sBACA,sDACA,0DACA,CAAG,CACH,mDACA,sBACA,yDACA,uDACA,CAAG,CACH,+BACA,sBACA,qCACA,6CACA,CAAG,CACH,gCACA,sBACA,sCACA,kCACA,CACA,CAEA,CAAC,EAAE,6BAA6B,uBAChC,aAMA,+CACA,+BACA,yBAuDA,WACA,SA5BA,YAGA,SACA,QACA,KAJA,kBAKA,gBACA,8BACK,EACL,gBAGA,OAFA,SAEA,cACA,CAAK,CACL,GAeA,YANA,WACA,QACA,EASA,QA7DA,SA8DA,CAEA,CAAC,EAAE,+FAA+F,uBAClG,aAEA,4BACA,4BACA,qCACA,gCACA,mCACA,+BACA,8BACA,yCACA,gBACA,kCACA,qCACA,wCACA,sBACA,sBACA,uCACA,0BACA,uCAEA,+CAEA,GACA,SACA,WACA,2CACA,CAmMA,cACA,4CAKA,wDApMA,qCAuMA,oCACA,YAyDA,CAvDA,UACA,8BACA,gCACA,uCACA,kDAGA,qBACA,gCACA,6CACA,4BAIA,sBACA,QACA,8BACA,gBACA,cACA,oCACA,sBACA,CAAK,EACL,KACA,mBAmBA,CAlBA,yCAKA,0BACA,uDAIA,KADA,gDACA,sBAEA,wBACA,oCACA,EAPA,8CAWA,kBACA,kCAGA,6CACA,qDAEA,EACA,EAAO,aAKP,UACA,yBACA,YACA,YACA,CAAO,aAIP,qBACA,EAEA,2CACA,YACA,uBACA,wBACA,yDACA,SACA,MACA,sDAGA,CAAG,IA8BH,OA5BA,gBACA,uDACA,wBAEA,sBACA,gBACA,6BACA,iBACA,QAEA,SACA,CACA,8BACA,iBACA,gBACA,uBACA,iBACA,QACA,mCACK,CACL,aACA,qBACA,gBAEA,WACA,GAAK,YAGL,CACA,EAgPA,sCACA,kBAEA,4CAMA,iEAEA,gDACA,MAWA,OAPA,EAFA,oBACA,uCACA,MAEA,yBAGA,eAEA,CACA,CAAG,GApBH,eACA,qCAoBA,EAEA,iDACA,WACA,4CAWA,OATA,kBACA,oCAEA,QAEA,oBACA,kEAGA,oBACA,iBACA,SACA,SACA,WACA,cACA,sCACA,CAAS,EACT,iBAGA,OAFA,mCAEA,CACA,CAAS,CACT,CAAK,EACL,yBAGA,cACA,8BAKA,MAFA,kCAGA,eACA,OACA,0CACA,0CACA,gDACA,SACA,eACA,CAAa,CACF,GAIX,eACA,KACA,+BACA,+BACA,qCACS,EAET,CAAK,CACL,EAuEA,sCACA,iBAGA,kDACA,gBACA,iBACA,gDACA,CACA,iCAIA,eACA,0CAIA,mCAuBA,gBACA,oBACA,gCACA,CACA,iCAIA,oBACA,iBACA,kBACA,SAlDA,uCAmDA,cACA,kCACA,CAAO,CACP,CAAK,EACL,yBAGA,MAFA,mCAGA,gBACA,iBACA,wCACA,CACA,iCAIA,eACA,OACA,0CACA,0CACA,gDACA,SACA,eACA,CAAa,CACF,KAIX,gBACA,iBACA,2DACA,CACA,iCAIA,eACA,KACA,+BACA,+BACA,qCACS,GAET,CAAK,IA7EL,gBACA,iBACA,wDACA,CACA,iCAIA,eACA,OACA,0CACA,0CACA,gDACA,SACA,oBACA,wEAEA,CAAS,CACF,GA4DP,EA+BA,oDAEA,IADA,EACA,cAEA,wCACA,gBACA,oBACA,wEACA,CACA,8BACA,GAGA,eACA,MACA,wDAKA,sBACA,qBACA,KAEA,CAAG,EAEH,GACA,eACA,OACA,iEACA,iEACA,0CACA,CAAO,IAIP,0CACA,0BAEA,MAAqB,IACrB,eACA,CAAG,EAEH,gBACA,oBACA,sDACA,CACA,8BACA,GAGA,kDACA,gBACA,YACA,IACA,0BACA,wDACA,qDACA,CAAS,EACT,iBACA,oCAIA,OAFA,4BAEA,CACA,CAAS,EAOT,OALA,qBACA,EAAU,CACV,kCAGA,CACA,CAAK,EACL,wBAIA,CAHA,uCACA,yBAEA,wCACA,gBACA,iBACA,mEACA,CACA,iCAIA,eACA,MACA,qDAKA,iBACA,wBAIA,QACA,uDAEA,gBACA,iBACA,sEACA,CACA,iCAIA,eACA,OACA,+DACA,KACA,+DACA,KACA,QACA,0DACA,QACA,SACA,eACA,CAAa,CACF,IAIX,iBACA,CAAK,EACL,iBAYA,OAXA,wBACA,uCACA,yBACA,gBACA,iBACA,wDACA,CACA,8BACA,GAGA,kBACA,CAAK,EACL,EAEA,0CACA,0BAIA,sBACA,kDACA,iCACA,uDACA,IAEA,2CACA,gCACA,mCACA,iCACA,kCACA,sCACA,6CACA,wCACA,qCACA,QACA,YACA,wCACA,EAAO,cAIP,+CACA,EAEA,4CACA,qDAIA,+DACA,EAWA,yDAWA,OAVA,wCACA,gBACA,oBACA,mEACA,CACA,oCAKA,uDACA,YACA,0BACA,EAAK,YAEL,EAWA,yDACA,8DACA,YACA,0BACA,EAAK,YAEL,EAEA,iDACA,GAEA,WAKA,qBACA,EACA,YACM,IACN,6CACA,EACA,iBACA,qBACA,kBACA,sBACA,kBACS,EACT,iBACA,YACA,CAAS,EACT,kBACA,WACA,CAAS,EAET,CACA,EAEA,uDACA,WACA,WAEA,2CACA,8BACK,CACL,EAEA,kDACA,oCAEA,OACA,gBACA,SACA,EACA,iBACA,iBACA,CAEA,EA+BA,wCACA,IAEA,EAFA,OACA,KAEA,GACA,gBACA,+CAEA,GAEA,uBACA,4BACA,kBACA,sBACA,kBACA,uCAiBA,OAdA,2BACA,YAGA,UAEA,gBACA,oBACA,uCACA,CACA,iCAIA,oBACA,iBACA,kBACA,2CACA,cACA,+BACA,CAAO,CACP,CAAK,EACL,iBAoBA,OAnBA,8BAEA,gBACA,iBACA,uCACA,CACA,8BACA,GAEA,0BACA,gBACA,iBACA,kCACA,CACA,iCAKA,CACA,CAAK,EACL,yBACA,cACA,+BAGA,gBACA,iBACA,sCACA,CACA,iCAIA,eACA,KACA,+CACA,+CACA,oDACA,CAAS,GAET,CAAK,CACL,EAmBA,mCACA,4CACA,iEACG,CACH,EA+DA,sCAEA,IADA,EACA,QACA,0BACA,EACA,4CAyFA,OAvFA,qBACA,iDACA,wBACA,iDAGA,GACA,GACA,4CACA,0DAGA,oDASA,IACA,EAAM,CACN,CACA,oBACA,CAAK,CACL,GAEA,wBAOA,QACA,+BAEA,+BACA,8BAGA,mCACA,qCACA,WACA,EAEA,uBACA,aACA,gCACA,gCACA,KAEA,EAAK,aASL,CANA,eACA,gCAEA,oBAGA,KACA,aACA,iBAEA,kCACA,wDAGA,0BACA,KACA,cACA,gBACA,oBACA,4BACS,GAGT,uCACA,2BACA,mBACA,gCAEA,EAAK,aAGL,OACA,YACA,WACA,EAAK,YAEL,EAEA,4CAEA,IADA,EACA,OACA,gBACA,6CAEA,gBAz4CgB,IAAI,kCAy4CpB,UAA6C,IAAI,EADjD,gCAEA,GACA,cACA,iBACA,CAEA,WACA,oBAEA,YACA,wBAEA,cACA,gCAGA,uBACA,4BACA,QACA,EAEA,gDACA,EACA,GAGA,IADA,EACA,2CAIA,WACA,GAGA,kEACA,kEACA,qCACA,0CACA,mBACA,8CACA,oBACA,iDACA,+CACA,kCACK,CACL,kCACA,qCACA,EAMA,GAJA,yCACA,8CAGA,qBA4BA,SA3BA,kBACA,6BACA,oDAEA,IAIA,eACA,WAEA,YAGA,+BACA,0BAGA,8DACA,4CACA,4CAGA,qCACA,sCAGA,0BACA,6CACA,oCAIA,6CACA,qDAEA,EAAI,IAEJ,4CAEA,+BACA,8CAGA,aAEA,uBAEA,gBACA,mBACA,eACA,GAgBA,OALA,4CACA,qBACA,0CAGA,CACA,EAWA,wDACA,CACA,aACA,qCACA,mCAEA,oCACA,OACA,UACA,mBACA,0DAEA,CAAK,CAIL,EAWA,4CACA,QAIA,GAFA,QAGA,6BACA,+BAEA,SAGA,QAAc,WAAqB,IAGnC,GAFA,OAEA,qBACA,SAIA,QACA,EAEA,iDAEA,OACA,0CACA,iCACA,4BAiDA,OA9CA,4BACA,oBAGA,+BACA,0BAGA,qCACA,sCAGA,qCACA,sCAIA,sCACA,gBACA,IA1BA,CA0BA,eACA,yEACA,CACA,kBA7BA,KA6BA,aAIA,gCAEA,2CACA,kCAGA,8BACA,gCACA,0CACA,4CAEA,2CACA,kCAGA,mDACA,mDAIA,CACA,EAEA,8CACA,0BACA,yBACA,EACA,yCACA,mBAGA,GACA,eACA,cAHA,mDAIA,SACA,wBACO,CACF,EAoBL,OAjBA,EACA,sDAEA,oDACA,kCACA,2BACA,0BAEA,UACA,mCAIA,yBACA,8CAGA,CACA,EAEA,+CAEA,IADA,EACA,KA4BA,OA1BA,kBACA,wBAGA,GACA,cACA,UAAe,CACf,aAGA,gCACA,gCAGA,6CACA,4DAGA,uCACA,gDAGA,yCACA,oDAGA,CACA,EAcA,gCACA,WAQA,OANA,uBAEA,mDACA,8DAGA,0BACA,iBAEA,CAAK,EACL,uBACA,gBAIA,2BAHA,iBAIA,CAAK,CACL,EAEA,4BAEA,CAAC,EAAE,khBAAkhB,uBACrhB,aAEA,4CACA,iCACA,4CACA,yBACA,sBACA,YACA,2BACA,EACA,gDACA,2BACA,yBACA,0BACA,wBACA,0CACA,6BACA,+BA4DA,cACA,sBACA,gBACA,kEACA,QACA,EACA,kDACA,sBACA,gBACA,6BACA,iBACA,QACA,gCACA,CAEA,mCACA,WACA,eACA,wBACA,sCACA,CAAG,IAEH,+BACA,SACA,CACA,0BACA,iBACA,aACA,uBACA,cACA,QACA,+BACA,CAAO,CACP,YACA,kBACA,gBACA,uCACA,IACA,EAEA,CAAG,CACH,EAiJA,mCACA,IAEA,IAFA,OACA,qBAOA,CAJA,GACA,YAGA,4CAyCA,CA7BA,4BACA,4BACA,0DAEA,iDAEA,8BAEA,oBACA,4CAGA,oBACA,uCAGA,sBACA,yCAGA,mCAEA,qBACA,EAAU,CACV,sCAGA,CAAG,EAEH,IACA,EACA,iBACA,SACA,CAAO,EACP,SAEA,kCACA,uBACA,uDACA,CAAO,CACF,GAGL,EApDA,CAFA,uCAEA,IACA,KAEA,wCAGA,iBA+CA,EAEA,iDACA,EACA,EACA,GAEA,WACA,sBAEA,mBACA,cACA,MACA,4CAEA,+BAGA,MACA,YACA,EACA,kDAGA,iCACQ,GACR,EACA,gCACA,QACA,QAEA,EAGA,cACA,8BAEA,EACA,uCACA,oDACA,iCAEA,QACA,sDAEA,EACA,OACA,qCACA,qCACA,2CACA,SACA,eACA,CAAa,CACF,GAGL,GACN,uCAEA,CACA,EAEA,0CACA,WACA,eAMA,OAJA,oBACA,mDAGA,EACA,SACA,2CACA,cACA,kCACA,CAAK,EACL,iBACA,kCAcA,OAZA,mBACA,yDAEA,6CAGA,0BACA,wCAGA,wBAEA,CACA,CAAK,EACL,kBASA,OARA,mBACA,wDAEA,4CAGA,wBAEA,eACA,KACA,+CACA,+CACA,oDACA,CAAS,EAET,CAAK,CACL,EAEA,+CAEA,IADA,EACA,KAoBA,OAlBA,kBACA,wBAGA,GACA,cACA,UAAe,CACf,aAGA,gCACA,gCAGA,6CACA,4DAGA,CACA,EAEA,8CACA,sCACA,yBACA,EACA,yCACA,GACA,eACA,kCACA,SACA,6BACA,CAAO,CAEP,EAeA,OAbA,WACA,kDAEA,yCACA,kCACA,2BACA,0BAEA,4BACA,mCAIA,CACA,EAEA,6CACA,WACA,eACA,4CAEA,SACA,SACA,WACA,cACA,uCACA,CAAK,EACL,iBACA,MAGA,EADA,oBACA,8BAEA,6BAGA,yBACA,iBACA,mBACA,EAAS,EAGT,oBACA,wDAGA,2BACA,CAAK,EACL,kBACA,4CAKA,CAHA,wBACA,8BAEA,SACA,eACA,OACA,0CACA,0CACA,gDACA,SACA,eACA,CAAa,CACF,GAIX,eACA,KACA,+BACA,+BACA,qCACS,EAET,CAAK,CACL,EAEA,mDAEA,IADA,EACA,EACA,qDACA,gCACA,GACA,UACA,mBACA,QACA,EACA,uBACA,iBACA,iBACA,EACA,UACA,mBACA,QACA,EACA,qBACA,iBACA,iBACA,EACA,qCACA,mCACA,mBACA,8CACA,oBACA,iDACA,+CACA,kCACK,EAaL,GATA,oBACA,2DAEA,YACA,iDACA,YACA,kDAGA,oBAQA,SAPA,kBACA,6BAEA,4BACA,oBAGA,0BACA,6CACA,yCAIA,4CAEA,+BACA,8CAIA,QACA,EASA,mCACA,+BACA,+DAEA,0BACA,EASA,mCACA,0BACA,EAcA,kCASA,OARA,KAEA,yBAEA,EAJA,KAIA,gBAEA,YANA,KAMA,CANmB,MAMnB,8BAEA,iBACA,CAAC,EAED,WAEA,CAAC,EAAE,uZAAuZ,uBAC1Z,aAOA,4BACA,2CACA,qCACA,gCACA,8BACA,uBACA,yBAEA,+BA8GA,WACA,SArDA,YACA,eAEA,SACA,QACA,OACA,gBACA,6BACA,CAAK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBAEA,iCAIA,CAFA,WAEA,2CACA,6CAGA,2CAEA,SAEA,cACA,CAAK,CACL,GAoBA,YANA,WACA,QACA,EASA,QAtHA,SAuHA,CAEA,CAAC,EAAE,4OAA4O,uBAC/O,aAEA,WACA,4CACA,gBACA,mCACA,+BACA,CAAG,CACH,0CAGA,CAAC,GAAG,uBACJ,aAoBA,qCAEA,WACA,oBACA,sBACA,0BACA,kDACA,CAAG,CACH,oCACA,sBACA,0CACA,iDACA,CAAG,CACH,oCACA,qBACA,0CACA,mDACA,CAAG,CACH,oBACA,qBACA,0BACA,2CACA,CAAG,CACH,6BACA,sBACA,mCACA,qDACA,CAAG,CACH,0BACA,sBACA,gCACA,QACA,kFACA,CAAG,CACH,qBACA,sBACA,2BACA,0DACA,CAAG,CACH,+BACA,sBACA,qCACA,6CACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aAGA,mCACA,2CACA,mCAsCA,WACA,SAjBA,YAGA,SACA,QACA,KAJA,0BAKA,gBACA,8BACK,EACL,gBAGA,WAFA,IAEA,aACA,CAAK,CACL,GAQA,QA3CA,SA4CA,CAEA,CAAC,EAAE,yGAAyG,uBAC5G,aAEA,mCACA,wBACA,gCACA,qCAMA,cAEA,mCACA,WAqBA,OAnBA,sBACA,QACA,8BACA,gBACA,cACA,oCACA,8BACA,CAAK,EACL,kBAGA,OAFA,gBAEA,iBACA,CAAK,EAEL,YACA,oBACA,yCAGA,qBACA,EA0BA,oDAEA,IADA,EACA,OAEA,2BACA,iBAGA,MAFA,MAEA,SACA,iBACA,MACA,MACA,iCAA6C,6DAM7C,CAAS,CACF,CACP,CAAK,EACL,iBACA,qDACA,gDAWA,OATA,YACA,EACA,oDAEA,YACA,EACA,mDAGA,CACA,kBACA,gBACA,CACA,CAAK,EACL,wBACA,cACA,+BAGA,qDAEA,CACA,mBACA,iBACA,EACA,CAAK,CACL,EAEA,4BAEA,CAAC,EAAE,uHAAuH,uBAC1H,aAEA,qCACA,wBACA,wCACA,2BACA,yBACA,EACA,iDACA,0CACA,+BA2MA,gBAGA,OACA,oBACA,eACA,6CACA,0CACA,0BACA,CAAK,CACL,yCAIA,SACA,SACA,gBACA,cACA,+CACA,MACA,CAAK,EACL,iBACA,YACA,uCAGA,OACA,cACA,qBACA,wBACA,0BAEA,CAAK,EACL,iBACA,sCACA,CAAK,CACL,CAkCA,WACA,cAzOA,cAGA,OACA,YACA,wCACA,iBACA,2BACO,CACP,YACA,6CACA,2BACK,CACL,gBACA,uBACA,uBACA,yCAcA,OAXA,kBACA,sBACA,WACA,uBACA,iCACA,oBAEA,CAF4C,EAM5C,EACA,SACA,gBACA,cACA,sBACA,MACA,CAAK,EACL,iBACA,sCAEA,MACA,0CAGA,OACA,0BACA,cACA,wCAEA,CAAK,EACL,iBACA,yCACA,CAAK,CACL,EAqLA,UAvKA,cAEA,0BACA,cAEA,iCACA,MAiEA,CACA,IALA,+BA5KA,GA4KA,sBAMA,KAJA,8BA/KA,GA+KA,sBAKA,EAlEA,SACA,CACA,KATA,kBAUA,iBACA,iCACA,aACA,qCACA,UACA,YACA,OA1HA,IA2HA,MA5HA,GA6HA,CAAO,CACP,YACA,wCACA,SAAoC,sBACpC,GAgCA,WA/BA,UAEA,KAGA,GA+BA,UACA,0CA/BA,UAEA,EACA,mCAIA,UAEA,EACA,mCAEA,CAAS,EAET,yBACA,EAEA,CAAG,CACH,EAwHA,iBACA,YAnRA,IAoRA,aAnRA,IAoRA,aAzHA,YACA,sBACA,EAwHA,kCAvCA,cACA,SACA,SACA,gBACA,aACA,iCACK,EACL,iBACA,+BAWA,OATA,gDAEA,KACA,cACA,yCACA,0BACA,wCACO,EAEP,MACA,CAAK,EACL,iBAGA,OAFA,oDAEA,CACA,CAAK,EACL,iBAEA,MADA,sDACA,gCACA,CAAK,CACL,CAUA,CAEA,CAAC,EAAE,0OAA0O,uBAC7O,aAEA,mCACA,iCACA,wBACA,2BACA,iBACA,oCACA,2BAEA,+BAQA,cACA,iCAEA,uBACA,gBACA,gDACA,wBACA,eACA,8BACA,0CACA,0BAEA,sEACA,sEAEA,mBACA,yCAGA,sDACA,CAwCA,iCACA,IACA,EADA,OAEA,IACA,CAAM,8CAAwD,CAC9D,SAGA,6BACA,+DAEA,eACA,iDAIA,6CAQA,IACA,2BACA,uBAGA,CAFA,qDAEA,mBACA,+BAGA,gBACA,0CAEA,uBACA,0BACA,uBACO,EACP,CAAK,EAGL,mBACA,kBAIA,EACA,gBAGA,OAFA,+CAEA,4BACA,wCACA,cACA,wBACA,0BACA,sCACO,CACP,CAAK,EACL,iBAGA,OAFA,mDAEA,kBACA,CAAK,EACL,kBAGA,OAFA,mDAEA,iBACA,CAAK,GApDL,+DAEA,eACA,oCAkDA,EAEA,4BAEA,CAAC,EAAE,kNAAkN,uBACrN,aAGA,4BACA,uBACA,gCACA,qCACA,2CACA,+BAEA,gCACA,4BACA,0BAsFA,WACA,SAzDA,YACA,aACA,0BAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBAKA,OAJA,WAEA,yCAEA,QACA,CAAK,EACL,wBAGA,0CAGA,SAGA,EACA,8CACA,iBAGA,OAFA,oBAEA,CACA,CAAW,EACX,kBACA,uDACA,CAAW,IACH,UACR,YACA,SACA,0CAIA,EACA,CAAK,CACL,GAQA,QA/FA,SAgGA,CAEA,CAAC,EAAE,6PAA6P,uBAChQ,aAEA,WACA,kBACA,OACA,oBACA,cACA,aACA,oBACA,cACA,CACA,yBACA,iBACA,iBACA,eACA,eACA,cACA,CACA,0CAGA,CAAC,GAAG,uBACJ,aAEA,qCAcA,WACA,4BACA,sBACA,kCACA,sCACA,wBACA,CAAG,CACH,wBACA,sBACA,8BACA,2CACA,2BACA,CAAG,CACH,2BACA,sBACA,iCACA,sCACA,CAAG,CACH,0BACA,qBACA,gCACA,qCACA,oBACA,CAAG,CACH,uCACA,sBACA,6CACA,+CACA,CAAG,CACH,yBACA,qBACA,+BACA,kCACA,yBACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aA0BA,UAhBA,cACA,QAIA,QAFA,QAEc,WAAqB,IAGnC,GAFA,OAEA,qBACA,SAIA,QACA,CAIA,CAAC,GAAG,uBACJ,aAEA,sCACA,8BACA,oCACA,uCACA,mCACA,gCACA,2BACA,0BACA,gBACA,8BACA,uBACA,2BACA,4BACA,EACA,4DAEA,YAMA,cACA,aAEA,sBACA,oCACA,sBAEA,cACA,sDACA,gBACA,iEAEA,0BACA,6BAEA,yCACA,CAlBA,qCAoBA,iBAEA,6CACA,aACA,kBAGA,yBACA,aACA,cACA,EAAK,YAEL,EAEA,2CACA,uDACA,EAEA,qCAEA,IADA,IACA,aAMA,CAJA,QAEA,sCAGA,mBAGA,8BAEA,mCAEA,0BACA,iBAMA,OALA,YACA,iBACA,4CAGA,2BACA,CAAK,EACL,iBAOA,OANA,YACA,iBACA,gDACA,8BAGA,wBACA,CAAK,EACL,iBACA,+CACA,EACA,EAEA,CAAK,EACL,iBAQA,OAPA,4BAEA,YACA,iBACA,8CAGA,CACA,CAAK,EACL,kBAQA,OAPA,4BAEA,YACA,iBACA,2CAGA,iBACA,CAAK,EACL,EAEA,uDACA,WACA,uDACA,EAEA,yCACA,uDACA,EAEA,qCACA,uDACA,EAEA,+CACA,8BACA,iCAEA,6CACA,0BAEA,EAEA,yCACA,WACA,gDAEA,6CACA,iBACA,SACA,WACA,cACA,MACA,CAAO,EACP,kBACA,IAEA,EAFA,qCACA,mDAeA,OAZA,SACA,kDACA,WACU,SACV,oCACA,WAEA,yBAGA,gCAEA,eACA,OACA,YACA,YACA,kBACA,SACA,eACA,CAAa,CACF,EAEX,CAAO,CACP,CAAG,CACH,EAEA,4CAUA,OACA,UAEA,kBACA,qBACA,mCACA,iBAEA,EAEA,8CACA,EACA,GAEA,YAEA,gCACA,6CACI,QAIJ,oCAEA,gBALA,YAQA,GACA,mDACA,EACA,EACA,EAGA,GACA,OACA,+CACA,+CACA,gDACA,CAAK,EAGL,IACA,EAEA,2DACA,EACA,GAEA,WAaA,OAXA,QAEA,0CAKA,yBACA,gCACA,6BAEA,0CAYA,OAXA,YACA,iBACA,sDACA,4BAEA,YACA,iBACA,6DACA,kCAGA,CACA,CAAG,CACH,EAEA,2CACA,EACA,GAEA,IAGA,EAHA,IACA,4BAIA,YACA,oBACA,wDACA,WAGA,EACA,6BAEA,4BACA,gBACA,mBACA,EACA,uCAEA,uCAEA,EAEA,0CAIA,OAHA,0CACA,kCAEA,kBACA,EAEA,yCACA,EACA,GAEA,OACA,cACA,YACA,kBACA,kBACA,YACA,eACA,iCACA,uCACA,uBACA,4BACA,oCAEA,EAEA,iDACA,WAAkB,GAClB,EAEA,0CACA,OACA,iBAcA,MAXA,2BACA,6CACA,oDACA,8BACA,4CACA,2CACA,yCACA,iDACA,2BAGA,kBACA,EAEA,8CACA,iCAEA,WACA,oCACA,yBACA,gBACA,qBAIA,oBACA,0CAEA,oCACA,yBACA,0BACA,qBAIA,mCACA,OACA,qBACA,6BACA,wBACO,EAGP,EAEA,wCACA,YAIA,CAFA,8BAEA,4BAMA,6CAUA,gBARA,IAAsB,4BACtB,uBACA,4BACA,uCACA,oBACA,yBACG,IAbH,eACA,yCAeA,EAEA,oCACA,sCACA,qCACA,mBACA,MACA,SACA,UACA,cACA,CAAG,EACH,EACA,gBACA,mEACA,sBACA,IAqBA,OAnBA,mBACA,GACA,sBACA,cACA,gBACA,cACA,QACA,UACA,2BACA,EACA,qCACA,sBACA,QACA,WACA,CAAK,CACL,CAAG,EAEH,qDAEA,CACA,EAEA,uCAeA,OARA,GACA,IANA,gBACA,kCACA,iBACA,oBACA,aAGA,OAjbA,IAkbA,MAjbA,IAkbA,kDACA,qCACA,CAAG,CAGH,EAEA,yCACA,gCACA,qCACA,EAEA,2CACA,cACA,uBACA,kBAGA,4CACA,sDACA,qBAGA,kBACA,sDACA,qBAEA,EAEA,gCAKA,OAJA,qEAEA,2BAEA,iBACA,EAEA,WAEA,CAAC,EAAE,iYAAmY,uBACtY,aAKA,sBAEA,cACA,cACA,CAEA,0BACA,YACA,CACA,aACA,GAGA,iDACA,GAEA,oCA0BA,OAxBA,YACA,uIAA2I,0cAmB3I,EACA,+DACA,eAEA,CACA,EAEA,gDACA,YACA,MACA,qDACA,KACA,GAKA,OAFA,iCAEA,CACA,EAEA,WAEA,CAAC,EAAE,iBAAiB,uBACpB,aAEA,sBAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,iDACA,GAEA,oCACA,IACA,sBACA,uCACA,+CACA,iEA8DA,OA3DA,YACA,4yBAiDA,GACA,iBACA,6CACA,sBAEA,EACA,+DACA,eAEA,CACA,EAEA,WAEA,CAAC,EAAE,iBAAiB,uBACpB,aAEA,oBACA,wBACA,0BACA,uBAEA,WACA,SACA,mBACA,qBACA,iBACA,CAEA,CAAC,EAAE,qFAAqF,uBACxF,aAEA,sBACA,oCACA,2BACA,8BAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,WACA,oCACA,4BAGA,4CACA,6CAEA,QACA,yCACA,cACA,wCACA,EAEA,EAEA,yDACA,GAEA,MACA,qDACA,KACA,GAKA,OAFA,6BAEA,CACA,EAEA,0CACA,WACA,yCACA,CACA,sBACK,CACL,WAEA,EAEA,EAEA,wDACA,0EACA,EAEA,oCACA,EACA,EACA,EACA,GAEA,QAYA,GAVA,KAEI,sBACJ,KAEA,kDAEA,OANA,KASA,GACA,oDAEA,MACA,CAEA,kCACA,YAEA,0BACA,uBACA,6BACA,KACI,wBACJ,WACA,yCACA,CACA,SACA,CAAO,CACP,WACA,GACA,EAGA,EAEA,WAEA,CAAC,EAAE,2GAA2G,uBAC9G,aAEA,kBACA,6BAEA,cACA,cACA,CAEA,uCACA,aACA,CAAC,EAED,2CAEA,EAEA,uDACA,GAcA,OAZA,sDACA,wDACA,gDACA,+CACA,6BACA,mCACA,sCACA,wCACA,iCACA,+BACA,0CAEA,CACA,EAEA,sCACA,WAWA,OATA,uBACA,cACA,gCACA,wBACA,+BACA,0BACA,CAAK,CACF,EAEH,gBAGA,8CACA,uBAEA,gBAGA,EACA,YACA,6BACA,EAAK,cAEL,EAEA,uDACA,YACA,MAQA,MANA,8BACA,yBACM,kCACN,6BAGA,CACA,EAEA,iDACA,gDACA,KACA,GAOA,OAJA,yBACA,+BACA,+BAEA,CACA,EAEA,0CACA,WAEA,qCACA,aACA,iBAOA,OANA,uCACA,gDACA,WACA,EAGA,CACA,CAAK,CACL,EAEA,uCACA,EACA,GAEA,WACA,KACA,oBACA,wBACA,wBACA,4BACA,0BACK,EAEL,EAEA,WAEA,CAAC,EAAE,yCAAyC,uBAC5C,aAEA,kBACA,kCACA,6BACA,oCACA,+CACA,8BACA,2BACA,2BACA,8BACA,8BACA,mCAEA,EACA,mDACA,uCACA,YAEA,GACA,WACA,YAKA,kBACA,mBACA,oBACA,CAEA,4CAIA,cACA,eAEA,4BACA,sBACA,iCACA,kBACA,EACA,4BACA,wCACA,sBACA,wBAwyBA,kBACA,6BACA,+BACA,qBACA,uBACA,sBACA,+BACA,uCA5zBA,qCAgBA,uCACA,aACA,CAAC,EAED,WACA,CACA,kBACA,oBACA,WACA,YACA,kBACA,mBACA,oBACA,CACA,uBAGA,4CACA,+CACA,wBACA,CAAG,EACH,8CACA,sBACA,CAAG,EACH,wCACA,+BACA,CAAG,EACH,yCACA,gCACA,CAAG,EACH,+CACA,uCACA,CAAG,EACH,gDACA,sCACA,CAAG,EACH,iDACA,uCACA,CAAG,CACH,EAEA,sCACA,UAAsB,IACtB,OAEA,+BACA,iBACA,iBACA,CAAK,EACL,gBACA,0CACA,CAAK,EACL,iBAGA,CAAK,EACL,gBACA,yBACA,CAAK,EACL,gBAMA,OALA,mCACA,2BACA,sDACA,6CAEA,CACA,CAAK,CACL,EAEA,2DACA,EACA,GAEA,iCACA,YACA,8DACA,KACA,EACA,EAEA,EAAK,YAEL,EAEA,4CACA,4BACA,gCACA,YACA,oBACA,iDAGA,uBACA,+BAEA,EAEA,mDACA,WACA,aAEA,8DACA,GAEA,wDACA,aACA,mDACA,YACG,CACH,EAEA,6CACA,EACA,GAUA,OARA,IAEA,iBACA,mCACA,+BACA,4BAGA,CACA,EAEA,8CACA,GAEA,wBASA,OAPA,IAEA,kBAEA,0BAGA,CACA,EAEA,oDACA,oCAUA,OARA,YACA,wFAGA,EACA,sEACA,eAEA,CACA,EAEA,6CACA,0CACA,+DACA,2DACA,OAEA,aACA,4BACA,oDACA,mDACA,iBACA,CAyBA,OAvBA,4BACA,kBAIA,cAKA,GACA,EAEA,GACA,8BAGA,GACA,8BAGA,mDAEA,CACA,EAEA,0CACA,wCACA,EAEA,sCACA,WACA,oBAEA,wBAIA,QAEA,4BACA,4CAEA,EACA,uBACA,uBACA,gBAQA,yBACA,eACA,gBACA,CAAO,GAVP,sDAEA,eACA,4CAQA,CAAK,EACL,kBACA,WACA,8CACA,8CACA,oDACO,EAEP,yCAEA,sDACA,YACA,UACA,iDAEA,sBACA,qDAEA,CAAK,GAzCL,uBA8CA,8CACA,WAEA,6BACA,gBAIA,OAFA,+DAGK,EACL,iBACA,kCACA,iBACA,mBACA,EACA,yCAEA,sBACA,mCACA,kCACA,CAAS,CACT,CAAO,EACP,sBACA,yBACA,0CAGA,qCAEA,6BAEA,8BACA,KACA,CAAO,EAEP,0DACA,aAEA,sBACA,qBACA,qCAEA,CAAK,EACL,kBAGA,OAFA,6DAEA,iBACA,CAAK,CACL,EAEA,8CACA,6BACA,uBACA,EAEA,wDAEA,EAEA,yDACA,GAEA,8BACA,gBAmBA,MAjBA,8BACA,YACA,eACA,GAGA,aAEA,oCACA,0BACA,kBAEA,uCACA,6BACA,qBAGA,CACA,EAEA,4CACA,WAEA,6BACA,gBACA,mCAUA,OARA,8DACA,YACA,UACA,kDAEA,mDACA,CAAO,eAEP,cAAiC,MAAmB,CACpD,CAAK,EACL,kBAGA,OAFA,qDAEA,eACA,EACA,EACA,2CAGA,CAAK,CACL,EAEA,gDACA,kEAEA,gCACA,oCAGA,kCAGA,4DACA,WAEA,mBACA,oDAEA,sDACA,YACA,iBACA,oDAGA,4BACA,CACA,EAEA,wCACA,0CAGA,2CACA,EACA,GAEA,WACA,kCACA,EACA,6DACA,EACA,GACA,WACA,wBACA,uCAoBA,OAlBA,IAGA,YACA,oBACA,gEA3bA,OA8bA,GACA,wCAIA,YACA,oBACA,mEAGA,sBACA,gBACA,0BACA,cACA,WACA,MACA,MACA,oBACA,CAAS,CACF,CACP,CAAK,EACL,iBACA,8CACA,wBACA,EACA,oBAUA,OAPA,iCACA,EACA,YACA,UACA,qEAGA,kBACA,CAAK,EACL,kBACA,aACA,8CACA,8CACA,oDACA,SACA,eACA,CAAS,CACF,EAOP,OALA,YACA,UACA,mEAGA,iBACA,CAAK,CACL,EAEA,wDACA,WAaA,qBACA,MAQA,GANA,YACA,iBACA,6DACA,4BAGA,2BACA,sBACA,kDAGA,MACA,CAEA,qBAEA,cACA,eACA,cACA,EACA,2BACA,iBACA,mCACA,CAAW,EACX,kBACA,kCACA,CAAW,EACX,KAEA,aAOA,OANA,YACA,iBACA,uDACA,eAGA,eACA,WACA,WACA,QACA,uCAEA,KACA,YACA,WACA,WACA,QACA,0CAEA,KACA,YACA,WACA,QACA,mCAEA,KACA,YACA,WACA,QACA,gCAEA,KACA,YAIA,YACA,iBACA,6CAEA,QACA,iCAEA,KACA,SACA,QACA,6BAEA,CAEA,WACA,eACA,mBACA,+BACW,EAGX,kCAIA,CACA,CACA,EAEA,8CACA,EACA,UAEA,MAQA,0CACA,KACA,EACA,GAVA,OACA,+CACA,+CACA,gDACA,CAAK,CAQL,EAEA,uDACA,cACA,MASA,MANA,uCACA,qCAEA,mCAGA,CACA,EAEA,iDACA,gDACA,KACA,GAEA,8BAoBA,OAlBA,+BACA,EACA,kBAEA,mCAEA,oBACA,2CAEA,SACA,kBAEA,qBACA,0CAGA,0BAEA,CACA,EAEA,uCACA,EACA,GAEA,WAEA,qCACA,aACA,iBACA,iCAKA,aACA,IACA,CANA,+BACA,4BAOA,kCAIA,mBACA,wBAEA,qCAEA,CAAO,CACP,CAAK,CACL,EAEA,2CAGA,kDAKA,yBACA,MACA,CACA,uBACA,uBACK,CACL,CACA,cAAsB,qCAAoD,EAG1E,EAEA,0CACA,WAEA,qCACA,aACA,iBASA,GARA,yCAEA,eACA,8BAEA,sBACA,4CAEA,0BACA,yCACA,aACA,qDACA,qDACA,QACA,2BACA,yBACA,yDACA,eACA,GACA,CAAW,CAEX,mDA4BA,OA1BA,gBACA,gCAEA,qBACA,0CAEA,sBACA,4CAEA,kBACA,oCAEA,OACA,cAGA,iBACA,sBAEA,mCACA,wCAEA,gBACA,gCAGA,kBACA,CAAK,CACL,EAEA,yCACA,WAEA,oCACA,WACA,iBASA,OARA,2BACA,EACA,GACA,kDAEA,oCAGA,CACA,CAAK,CACL,EAEA,gDACA,yCACA,sBACA,CAAG,EAEH,yBAGA,gCAUA,OATA,iBACA,gCAQA,+BACA,EAEA,2CACA,WACA,aAEA,oCACA,yBACA,oCACA,gBACA,CAAK,CACL,CAAG,CACH,EAYA,WAEA,CAAC,EAAE,6VAA6V,uBAChW,aAEA,mCACA,yBACA,0CACA,gCACA,oBAwXA,cACA,WACA,iBAEA,aAEA,yBACA,+CACA,0BACA,CAAG,CACH,CAEA,iBA6LA,mCACA,MAQA,OANA,qCACA,IACA,oCACA,GAGA,+BACA,EAyBA,2DACA,GAMA,MAJA,oBACA,kBAGA,wDACA,EA0BA,sCACA,yDACA,wBACA,CAAG,CACH,EAmFA,wCACA,yCACA,EAcA,gCAOA,OAFA,OAJA,sBACA,iBAKA,0BACA,EAEA,4BAEA,CAAC,EAAE,+IAA+I,uBAClJ,aAGA,qCACA,+BACA,2CACA,qCACA,gCACA,8BACA,wBACA,uBAEA,+BAwNA,WACA,SAlHA,YACA,kBACA,WAgFA,GACA,4BAEA,eACA,aACA,wCACA,wCACA,8CACK,EAGL,UACA,QACA,uBACA,sBACA,0BACA,wBACA,uBACA,qBACA,SACA,aACA,yCACA,yCACA,QACA,YACA,UACA,kHACA,CAAO,CACP,CACA,EA7GA,GAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,gCACA,IACA,QACA,8BACA,gBACA,cACA,YACA,MACA,CAAS,EACT,iBAEA,IADA,EACA,uBACA,+BAgCA,CA9BA,WAEA,uBACA,0BAGA,0CACA,2CAGA,8BAEA,KACA,6BAIA,cAEA,gBACA,2CAGA,YACA,SACA,0EAEA,gCAGA,GACA,0BAGA,mDAEA,EACA,CAAS,EACT,SACA,gBACA,YACA,gBACA,gCACA,sCACA,WACA,CAAO,SAEP,SACA,kBACA,QACA,CAAS,EAGT,CACA,CAAK,CACL,GAuCA,QA/NA,SAgOA,CAEA,CAAC,EAAE,0QAA0Q,uBAC7Q,aAEA,WACA,kDACA,wBACA,uEACA,uEACA,CACA,CAEA,CAAC,GAAG,uBACJ,aAiDA,qCAEA,WACA,qBACA,sBACA,2BACA,qDACA,CAAG,CACH,sCACA,sBACA,4CACA,qEACA,CAAG,CACH,wBACA,sBACA,8BACA,mCACA,CAAG,CACH,4BACA,sBACA,kCACA,QACA,uIACA,CAAG,CACH,8BACA,sBACA,mCACA,CAAG,CACH,mCACA,qBACA,yCACA,yEACA,CAAG,CACH,yCACA,qBACA,+CACA,6DACA,CAAG,CACH,qCACA,qBACA,2CACA,wDACA,CAAG,CACH,wCACA,qBACA,8CACA,kDACA,CAAG,CACH,iCACA,sBACA,uCACA,QACA,6EACA,CAAG,CACH,8BACA,sBACA,oCACA,QACA,2EACA,CAAG,CACH,4BACA,qBACA,kCACA,QACA,mFACA,CAAG,CACH,+BACA,sBACA,qCACA,2BACA,CAAG,CACH,0CACA,sBACA,gDACA,qDACA,CAAG,CACH,oCACA,sBACA,0CACA,QACA,sEACA,CAAG,CACH,oCACA,sBACA,yCACA,CAAG,CACH,mCACA,qBACA,yCACA,mEACA,CAAG,CACH,+CACA,sBACA,qDACA,QACA,mGACA,CAAG,CACH,iCACA,sBACA,uCACA,QACA,2FACA,CAAG,CACH,sBACA,qBACA,4BACA,0DACA,CAAG,CACH,yCACA,qBACA,+CACA,QACA,oFACA,CAAG,CACH,iCACA,sBACA,uCACA,4CACA,CAAG,CACH,4CACA,sBACA,kDACA,iDACA,CAAG,CACH,0CACA,sBACA,gDACA,oDACA,CAAG,CACH,0CACA,sBACA,gDACA,8CACA,CAAG,CACH,6BACA,sBACA,mCACA,QACA,mLACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aAEA,+BAEA,wDAEA,CAAC,EAAE,0BAA0B,uBAC7B,aAMA,6BACA,2CACA,8BACA,qCACA,gCACA,wBACA,uBAEA,8BAuDA,YACA,SArCA,YACA,iBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,iBACA,iCAIA,CAFA,WAGA,iCACA,+CAKA,6CAEA,UALA,6CAMA,CAAK,CACL,GAQA,QA9DA,SA+DA,CAEA,CAAC,EAAE,4OAA4O,uBAC/O,aAEA,+BAEA,WACA,SACA,CACA,mCACA,uBACA,yBACA,CACA,cAEA,wDACA,CAEA,CAAC,EAAE,0BAA0B,uBAC7B,aAuCA,qCAEA,WACA,sBACA,sBACA,4BACA,oDACA,CAAG,CACH,yCACA,sBACA,+CACA,QACA,qFACA,CAAG,CACH,0CACA,sBACA,gDACA,oDACA,CAAG,CACH,kDACA,sBACA,wDACA,QACA,mGACA,CAAG,CACH,2CACA,sBACA,iDACA,QACA,oEACA,CAAG,CACH,qCACA,sBACA,2CACA,+DACA,CAAG,CACH,4CACA,sBACA,kDACA,oDACA,CAAG,CACH,mCACA,qBACA,yCACA,yCACA,CAAG,CACH,2CACA,qBACA,iDACA,4CACA,CAAG,CACH,qCACA,qBACA,2CACA,gDACA,CAAG,CACH,oCACA,sBACA,0CACA,iEACA,CAAG,CACH,8BACA,sBACA,oCACA,qDACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aAEA,+BACA,iCACA,gBACA,mBACA,oCACA,yBACA,0CACA,gBACA,WACA,0BACA,yBAEA,uBACA,+BACA,EACA,yDAQA,cACA,eACA,CAqBA,0CACA,WACA,uBACA,4BACA,wBAEA,KACA,eACA,oDAEI,EACJ,EACA,SACA,aACA,qDACA,MACA,OAAmB,kBAAoB,CACvC,YACA,QACA,CACA,CAAS,CACF,EACP,iBAGA,OAFA,gDAEA,CACA,CAAO,EACP,kBACA,4CAIA,CAFA,8CAEA,SACA,kBAGA,eACA,OACA,sDACA,sDACA,4DACA,SACA,eACA,CAAa,CACF,EAEX,CAAO,EACH,EACJ,OAMA,4CACA,iCACA,YACA,mCACA,CAAY,eAA4B,CACxC,YACA,UACA,gBAEA,MACA,CAEA,YACA,EAEA,CAAO,CACP,CAAK,EArBL,eACA,kDAuBA,eACA,0DAEA,EA0BA,+BACA,IAKA,EALA,OACA,uBACA,SACA,WACA,iBAGA,MACA,sBACA,6CAIA,YACA,OAIM,EACN,eACA,oDAIA,0BACA,4CACA,YACA,uBACA,CAAY,wBAA4C,CACxD,YACA,UACA,gBAEA,MACA,CAEA,YACA,EAEA,CAAO,CACP,CAAK,EAzBL,eACA,kDAyBI,gBAUJ,GATA,GACA,OAAe,kBAAoB,CACnC,oBACA,gBACA,gCACA,sBACO,EAGP,iBACA,0DACM,wCACN,yCAIA,sBACA,6CAJA,sDACA,uDAQA,SACA,SACA,cACA,iCACA,MACA,CAAO,EACP,iBAGA,OAFA,+CAEA,CACA,oCACA,kCAEA,CAAO,EACP,kBAEA,IADA,EACA,kCAgBA,OAdA,QACA,IACU,MACV,SACA,6CACA,EACA,SAA4B,iBAE5B,+CACA,SAA4B,iBAG5B,4CAEA,iBACA,CAAO,CACP,CAEA,sBACA,0DAEA,EA6BA,iCAEA,IADA,EACA,OACA,uBACA,SACA,wBAEA,KACA,eACA,oDAEI,GACJ,GACA,OAAe,kBAAoB,CACnC,YACA,qBACA,SACA,oBACA,kBACW,CACF,CACF,EAGP,WACA,4DAGA,iBACA,6CACM,sCACN,6CACA,gDAGA,YACA,8BAGA,EACA,SACA,cACA,wCACA,MACA,CAAO,EACP,iBACA,uBAOA,OALA,kBACA,0BAEA,yCAEA,CACA,CAAO,EACP,kBAEA,IADA,EACA,kCAgBA,OAdA,uCAEA,QACA,IACU,MACV,0CACA,SAA4B,iBAK5B,CAHA,QACA,sCACA,EACA,SAA4B,iBAG5B,iBACA,CAAO,GACH,EACJ,OAMA,0BACA,4CACA,YACA,yBACA,EACA,YACA,UACA,gBAEA,MACA,CAEA,YACA,EAEA,CAAO,CACP,CAAK,EArBL,eACA,kDAuBA,eACA,0DAEA,EAUA,gCAQA,OAPA,YACA,wEACA,sBAGA,uBAEA,iBACA,EAEA,+CAEA,IADA,IACA,MACA,cAEA,qCAIA,6DACA,EACA,oEACA,+CAEA,cACA,UACA,cACA,CAAK,EACL,wBACA,sCACA,IACA,mDAIA,KACA,QACA,SACA,OACA,CAAK,EAEL,wBACA,qBAEA,GACA,CAAK,EAEL,+CACA,EAAG,EAhCH,mCAmCA,EAEA,4BAEA,CAAC,EAAE,uUAAyU,uBAC5U,aAEA,WACA,uEACA,CAEA,CAAC,GAAG,uBACJ,aAqBA,kCAEA,WACA,iCACA,sBACA,sCACA,CAAG,CACH,4CACA,sBACA,iDACA,CAAG,CACH,mCACA,qBACA,yCACA,yCACA,CAAG,CACH,8BACA,sBACA,oCACA,6DACA,CAAG,CACH,sCACA,sBACA,4CACA,4DACA,CAAG,CACH,4CACA,qBACA,kDACA,gDACA,CAAG,CACH,qCACA,sBACA,2CACA,gDACA,CAAG,CACH,6BACA,sBACA,mCACA,yCACA,CAAG,CACH,wCACA,sBACA,8CACA,oCACA,CAAG,CAGH,CAAC,EAAE,6BAA6B,uBAChC,aAMA,+CACA,8BACA,qCACA,gCACA,gBACA,yBAEA,+BA8CA,WACA,SApCA,YACA,wBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,iBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAO,CACP,CAAK,EACL,uBAOA,CAJA,WAGA,gEAOA,SALA,eACA,qCAKA,CAAK,CACL,GAQA,QArDA,SAsDA,CAEA,CAAC,EAAE,8MAA8M,uBACjN,aAEA,kCACA,mBACA,gBACA,qBACA,wBACA,mBACA,uCACA,sBACA,+BAEA,qBACA,mBAcA,cACA,sBAEA,+BAEA,qDACA,CAsVA,cAEA,IADA,EACA,kCAaA,MAFA,CARA,QADA,QACA,kCACI,MACJ,sCAGA,+CAGA,SAAoB,iBAEpB,CACA,CAEA,gBACA,8BACA,kBAGA,OACA,WACA,UAAe,CACf,YALA,iCAMA,sBACA,CACA,CAiCA,gBACA,aACA,sBAEA,CAFsC,EAEtC,+BAaA,iCACA,gCACA,4CAbA,qBAEA,CAEA,aACA,4BAEA,6CACA,CAQA,8BACA,6BACA,wCACA,CAEA,cACA,OACA,8BACA,kCACA,gBACA,eACA,qBAEA,CAEA,gBACA,6BACA,mBACA,sBACA,qBAEI,8BACJ,kBACA,4BACA,CAEA,CAEA,cACA,MACA,oBAEA,EACA,oBACA,EAJA,sBAOA,EAPA,0IAoBA,CAxVA,uCACA,UAEA,YAUA,2BACA,eACA,OACA,uDACA,uDACA,QACA,kEACA,CAAO,GAEH,cACJ,6BACI,YACJ,2BAGA,eACA,OACA,4CACA,4CACA,gEACA,CAAK,GA7BL,eACA,OACA,4CACA,4CACA,2CACA,CAAO,EA0BP,EAEA,6CACA,mBACA,gBACA,GACA,yBACA,8BACA,8BACA,wCACA,iBACA,qBAEA,EAIA,OAFA,OAEA,EACA,SACA,iBACA,MACA,QACA,WACA,OACA,eACA,CAAW,CACF,CACF,CACF,EACL,iBAMA,OALA,YACA,EACA,oDAGA,gBACA,6BAEA,CAAK,EACL,kBACA,WAOA,OALA,YACA,EACA,iDAGA,iBACA,CAAK,CACL,EAEA,2CACA,WACA,eACA,4CACA,+BACA,+BAEA,wBAUA,EAMA,4BACA,eACA,gDAGA,+BAEA,0BACA,2BACA,MACA,KAEA,MACA,CAEA,EACA,QACA,mCACA,gBACA,6BACA,gBACA,eACA,iBACA,kBACA,4BAEA,YACA,EACA,uDAGA,wCACA,CAAW,CACX,wBACA,kBACA,GACA,cACA,YACA,aACA,mBACA,4CACA,yBACA,iBACA,qBAEA,EAEA,OAEA,EACA,SACA,iBACA,MACA,QACA,WACA,OACA,aACA,CAAqB,CACF,CACF,CACF,EACf,iBACA,4BAEA,YACA,EACA,kDAGA,EACA,EACA,EACA,uBAGA,CAAe,EACf,kBACA,KAEA,6BACA,OAEA,YACA,EACA,+CAGA,IACA,CAAe,CACf,CACA,CAAS,EACT,OAEA,YACA,EACA,+CAEA,CAAK,CACL,CAAG,GAvGH,eACA,iDAXA,eACA,OACA,4CACA,4CACA,gEACA,CAAO,EA6GP,EAiCA,mCACA,QAIA,GAFA,OAEA,cACA,qBAEA,MACA,CAEA,0BACA,oCACA,EAGA,QAIA,CAFA,oCAEA,oBACA,WAEA,OAEA,6BAEA,oBAEA,EAwFA,gCAOA,OANA,mBACA,6CAGA,uBAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,mNAAmN,uBACtN,aAUA,kCAEA,WACA,iEACA,sBACA,uEACA,QACA,kFACA,CAAG,CACH,8CACA,sBACA,mDACA,CAAG,CACH,mDACA,qBACA,wDACA,CAAG,CAGH,CAAC,EAAE,6BAA6B,uBAChC,aAMA,+CACA,qCACA,gCACA,uBAEA,+BAiCA,WACA,SAvBA,YACA,sBAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,cACA,wBACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,CACT,CAAO,CACP,CAAK,CACL,GAQA,QAxCA,SAyCA,CAEA,CAAC,EAAE,gKAAgK,uBACnK,aAEA,4BACA,8BACA,gBACA,uCACA,sBACA,+BA2BA,cACA,mCACA,CA4IA,cACA,OACA,cACA,kBACA,kBACA,kCACA,aAWA,OARA,eACA,8BAGA,WACA,sBAGA,CACA,CA3IA,4CACA,MAMA,OAFA,OAFA,UAEA,iBAEA,oBACA,iBACA,kBACA,2BACA,aACA,MACA,cACA,CAAS,CACF,CACP,CAAK,EACL,KACA,aAMA,OALA,YACA,oBACA,iDAGA,qBACA,EAEA,GAAO,WAEP,EAaA,4CACA,kDAEA,wDAGA,eACA,MACA,oEAKA,EACA,SACA,iBACA,MACA,MAxGA,sGAAwG,kFAyGxG,WACA,OACA,kBACA,CAAa,CACF,CACX,qDACA,CAAS,CACF,EACP,gBACA,YACA,EACA,gDAIA,CAAO,EACP,kBACA,IACA,EADA,0BAuCA,OApCA,YACA,EACA,8CAIA,MACA,0CAEA,UACA,yDACA,yDACA,QACA,8CACA,EACA,wBACA,SACA,eACA,CAAa,EACF,EAGX,GACA,UACA,8DACA,8DACA,QACA,mHACA,EACA,KACA,SACA,eACA,CAAa,EACF,EAGX,iBACA,CAAO,CACP,CAAG,CACH,EAkCA,gCAGA,OAFA,uBAEA,iBACA,EAEA,4BAEA,CAAC,EAAE,2JAA2J,uBAC9J,aAMA,OAJA,4BACA,YACA,0BAA2C,UAC3C,GACA,sBACA,sBAEA,OADA,iBACA,YACA,CAEA,CAAC,EAAE,sBAAsB,uBACzB,aACA,sCAA+C,SAAa,EAC5D,qCACA,4CACA,+BACA,sCACA,+BACA,sCACA,OACA,sCACA,0FAA4F,oDAAoD,uDAAuD,qEAAqE,KAAK,GAAG,EACpR,+BACA,8EAAgF,8CAA8C,iDAAiD,qEAAqE,KAAK,GAAG,EAC5P,sCACA,0FAA4F,oDAAoD,2BAA2B,GAAG,EAC9K,+BACA,0FAA4F,oDAAoD,2BAA2B,GAAG,EAC9K,4CACA,iCAAmC,mBAAmB,wCAAwC,4DAA4D,KAAK,GAAG,EAClK,qCACA,iCAAmC,mBAAmB,kCAAkC,wEAAwE,yIAAyI,wKAAwK,2BAA2B,wKAAwK,SAAS,OAAO,KAAK,GAAG,CAE5qB,CAAC,GAAG,uBACJ,aACA,MACA,qBACA,WAWA,OAVA,EACA,eACA,YACA,iCAAiD,IAAO,IAExD,aADA,eAEA,uDAEA,QACA,GACA,qBACA,EACA,EACA,4BACA,YACA,0BAA2C,UAC3C,EACA,sCAA+C,SAAa,EAC5D,uBACA,6BACA,0BACA,wBACA,iBAGA,aACA,cACA,iBACA,uBACA,oBACA,2BACA,+BACA,6CACA,4DACA,qCACA,wBACA,gBACA,4BACA,gBACK,EACL,6BACA,2BACA,uBACA,4CACA,4DACA,2CACA,qCACA,mCACA,iCACA,gCACA,sCACA,+BACA,uBACA,MACA,4BACA,OACA,eACA,iBACA,QACA,WACA,UACA,SACA,cACA,aACA,gBACA,CAAO,CACP,qBACA,CAAK,EACL,oCACA,CA2UA,OA1UA,kCACA,WACA,oCACA,iDACA,IACA,CAAO,EACP,wDACA,gEACA,gBACA,CAAO,EACP,oCACA,qCACA,CAAK,CACL,EACA,yCACA,WACA,iBACA,qCACA,uCACA,iBAEA,UACA,kCACA,GAEA,UACA,8BACA,EAGA,EACA,cACA,IACA,oDACA,GACA,wBACA,uBACA,KACA,CAAS,CACT,EACA,aACA,IACA,+CACA,YACA,4DAEA,GACA,wBACA,0BACA,CAAS,CACT,CACA,gCACA,IACA,IACA,EACA,SACA,kCACA,GAEA,yCACA,CAAK,EAKL,OAJA,kCACA,gEACA,oBACA,oBACA,EACA,iBAGA,OAFA,wBACA,4CACA,CACA,CAAO,EACP,kBAGA,OAFA,wBACA,4CACA,mBACA,CAAO,CACP,EACA,yCACA,WACA,eAGA,sBACA,oBACA,sBAEA,0BACK,CArIL,IAsIA,EAtIsD,EAuItD,sCACA,yCACA,0CAEA,EACA,uCACA,kBACA,iCACA,kDACA,gBACA,EACA,qCACA,gBAGA,6CACA,SACA,CAAK,EACL,iBACA,EACA,wCACA,gBAGA,+CACA,KACA,YACA,CAAK,EACL,0DACA,EACA,iCACA,gBAGA,yCACA,0CACA,EACA,mCACA,gBAGA,2CACA,6CACA,EACA,oCACA,WACA,+CACA,iBACA,MACA,gCACA,gCACA,eAEA,OADA,mCACA,iCACA,CAAO,EACP,iBACA,MAMA,qBACA,wBACA,oBACA,qCACA,WACA,sBACA,uBACA,CAAS,EACT,CAAO,EACP,kBACA,yBAIA,sDACA,qBACA,CAAO,CACP,EACA,8CACA,kBACA,oBAGA,aACA,iEAGA,OAFA,uCACA,gEACA,kBACA,wBACA,gBACA,CAAS,CACT,CAAO,EAEP,yDACA,yBACA,2BAEA,eACA,SAKA,OAJA,IACA,YACA,yDAEA,GACA,cAIA,KACA,eACA,aACA,eACA,MACA,eACA,iCACA,uBAGA,OAFA,kBAEA,kBACA,wBACA,QACA,CAAa,CACb,eACA,gBACA,KACA,gBAEA,OADA,cACA,oBAIA,CAEA,mCACA,sBACA,EACA,yBACA,QACA,QACA,CAAS,CArRT,IAsRA,CAAO,CACP,CAAK,EA5DL,sBA6DA,EACA,gCACA,oBACA,wBACA,gDAEA,0BACA,mDAEA,EACA,iCACA,6CACA,2BACA,EACA,gEACA,YACA,8DACA,OACA,qBACA,QACA,CAAS,CACF,mBACP,SACA,0DACO,CACP,EACA,wDACA,OACA,SACA,2CACA,wBACA,EAOA,OANA,gBACA,qCAEA,kBACA,iCAEA,gDACA,OACA,CAAK,mBACL,uDACK,CACL,EACA,wDACA,WAIA,OAHA,mCACA,yEACA,sDACA,iBACA,sBACA,gCACA,OACA,QACA,gBACA,aACA,sBACA,sBAEA,CAAK,CACL,EACA,sDACA,EACA,GAKA,GAHA,YACA,OAEA,qBACA,8BAEA,OACA,QACA,CAAU,gCAAyC,CACnD,EAEA,EACA,qCACA,sCACA,+BACA,4CAEA,CAAK,CACL,EACA,wDACA,wBACA,8BAEA,yCACA,4CACA,qCACA,0BACA,uBACK,mBACL,cACK,CACL,EACA,CACA,CAAC,GACD,WAEA,CAAC,EAAE,gGAAkG,uBACrG,aAGA,4BACA,2CACA,qCACA,gCACA,uBACA,+BACA,8BACA,eACA,8BAiKA,YACA,SAvFA,YACA,cAEA,SACA,QACA,OACA,gBACA,8BACK,EACL,gBACA,eAEA,0CACA,eACA,mCAKA,qBACA,qCAEA,eACA,8CAIA,IACA,QACA,8BACA,gBACA,cACA,oCACA,MACA,CAAS,EACT,iBACA,iCAIA,CAFA,WAEA,qCAIA,EAHA,0CAIA,CAAS,EAET,kBACA,WAEA,mCAEA,kBACA,QACA,CAAO,EACP,CAAK,CACL,GAgCA,mBANA,YACA,8BACA,EASA,QAvKA,SAwKA,CAEA,CAAC,EAAE,gQAAgQ,uBACnQ,aAEA,mDACA,8CACA,2CACA,kDACA,mDACA,+CAmCA,WACA,YACA,iBAnCA,WACA,OACA,8DAEA,EAgCA,WACA,QACA,YATA,WACA,eACA,EAQA,YACA,cACA,eACA,gCA5BA,WACA,qDAGA,oDAIA,KAIA,mDACA,EAgBA,8BArCA,iBACA,OAIA,WACA,CAgCA,CAEA,CAAC,EAAE,gRAAgR,uBACnR,aAUA,WACA,2CACA,kCACA,6DACA,sEACA,sDACA,CAEA,CAAC,GAAG,uBACJ,aAiCA,qCAEA,WACA,mBACA,sBACA,yBACA,iDACA,CAAG,CACH,mCACA,sBACA,yCACA,iDACA,CAAG,CACH,uCACA,sBACA,6CACA,sCACA,CAAG,CACH,kBACA,qBACA,wBACA,0CACA,CAAG,CACH,oBACA,sBACA,0BACA,+CACA,CAAG,CACH,gBACA,sBACA,sBACA,QACA,mEACA,CAAG,CACH,yBACA,sBACA,+BACA,4CACA,CAAG,CACH,qBACA,qBACA,2BACA,iDACA,CAAG,CACH,wBACA,sBACA,8BACA,QACA,uEACA,CAAG,CACH,yCACA,sBACA,+CACA,8DACA,CAAG,CACH,6BACA,qBACA,mCACA,2DACA,CAAG,CACH,2CACA,qBACA,iDACA,kEACA,CAAG,CACH,iDACA,qBACA,uDACA,qDACA,CAAG,CACH,2CACA,sBACA,iDACA,qDACA,CAAG,CACH,4CACA,sBACA,kDACA,8CACA,CAAG,CACH,2CACA,sBACA,iDACA,4DACA,CAAG,CACH,0CACA,qBACA,gDACA,yCACA,CAAG,CACH,0BACA,sBACA,gCACA,sCACA,CAAG,CACH,oCACA,sBACA,0CACA,gDACA,CAAG,CACH,2BACA,qBACA,iCACA,qCACA,CAAG,CACH,oBACA,sBACA,oBACA,QACA,mHACA,CAAG,CAGH,CAAC,EAAE,gCAAgC,uBACnC,aACA,sCAA+C,SAAa,EAC5D,8BACA,oCACA,mCACA,6BACA,gCACA,8BACA,kCACA,4BACA,0BACA,wCACA,OACA,wCACA,wCACA,oDACA,wDACA,oEACA,4DACA,gEACA,0DACA,sEACA,wEACA,2DAEA,CAAC,GAAG,uBACJ,aACA,uBAYA,UAVA,mBACA,0BACA,sBAEA,oBACA,+BAEA,iCAKA,CAAC,EAAE,kBAAkB,uBACrB,aAEA,+BACA,0BAiEA,YACA,mBAhEA,YAMA,IAJA,EAEA,EACA,EACA,gBACA,eACA,kBACA,EACA,0BA+BA,EA1BA,MAHA,UAGA,sCACA,oBACA,uBAEA,qBAQA,sCACA,kBASA,CAHA,WAGA,iBACA,qCACA,eAOA,IACA,4CAKA,EAIA,EAIA,EAHA,EAJA,EAQA,CAIA,CAEA,CAAC,EAAE,oDAAoD,uBACvD,aAEA,4CACA,yBACA,mCACA,wBACA,mCAWA,+BAEA,6BACA,8BACA,gCACA,kBACA,qBAMA,cACA,6BACA,aACA,yBACA,uBACA,8BACA,QAkDA,OAhDA,SACA,kBACA,oCACA,SACA,CAAK,EACL,SACA,kBACA,oCACA,UACA,IACA,GACA,CAAK,EACL,SAA8B,aAG9B,EACA,YAEA,EALA,GAMA,iBACA,YACA,CAAS,EACT,kBASA,qBACA,qBACA,SACA,kCAGA,WAEA,CAAW,CACX,CAAS,EAGT,UACA,GACA,CAAG,EACH,cAEA,CACA,CAcA,aACA,6EACA,CA3EA,qCAuSA,WACA,YAhDA,YAGA,OAFA,WAxEA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EARA,6BAUA,MACA,6BAEA,MACA,CACA,kCACA,gCACA,gCACA,gCACA,gCACA,gCACA,mCACA,mCAEA,0CACA,YA5HA,CACA,sCAA0C,CAC1C,eAAmB,EACnB,EAAM,EACN,SAAoC,EACpC,qBAAyB,EACzB,iBAAqB,EACrB,iBAAqB,EACrB,QAAY,EACZ,SAAa,EACb,WAAe,EACf,aAAiB,EACjB,gCAAoC,EACpC,EAAM,EACN,CAyEA,OAxEA,CACA,SAA6C,EAC7C,eAAmB,EACnB,uBAA2B,EAC3B,yBAA6B,EAC7B,qBAAyB,EACzB,aAAiB,EACjB,cAAkB,EAClB,wBAA4B,EAC5B,EAAM,EACN,CAEA,CACA,SAAwC,EACxC,cAAkB,EAClB,cAAkB,EAClB,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,+BAAmC,EACnC,cAAkB,EAClB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAA0C,EAC1C,cAAkB,EAClB,cAAkB,EAClB,qBAAyB,EACzB,qBAAyB,EACzB,cAAkB,EAClB,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAAmC,EACnC,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,gBAAoB,EACpB,kBAAsB,EACtB,EAAM,EACN,CAEA,CACA,SAAwC,EACxC,6DAAiE,EACjE,oBAAwB,EACxB,kBAAsB,EACtB,iBAAqB,EACrB,mBAAuB,EACvB,oBAAwB,EACxB,gBAAoB,EACpB,kBAAsB,EACtB,cAAkB,EAClB,EAAM,EACN,EAUA,WA+BA,OAEA,OAEA,KAnNA,kBAoNA,YAlOA,grFAoOA,OACA,yCAEA,OACA,YAtOA,8GAwOA,OACA,+BAEA,OACA,6BAEA,6BACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,6BAEA,uCACA,mBACA,CAAG,CACH,IAgBA,IACA,EA6CA,YACA,qBA/BA,YACA,YAEA,cACA,cACA,EA7MA,CACA,IALA,+BA3EA,GA2EA,sBAMA,KAJA,8BA9EA,GA8EA,wBAgNA,wBAmBA,OAjBA,SACA,CACA,KARA,uBASA,iBACA,iCACA,aACA,sCACA,UACA,YACA,OAxSA,IAySA,MA1SA,GA2SA,CAAK,CACL,YACA,YACA,GAGA,CACA,EAMA,YAxTA,IAyTA,aAxTA,GAyTA,CAEA,CAAC,EAAE,uJAAuJ,uBAC1J,aAEA,4BACA,+BACA,kCACA,0BACA,uBACA,0BACA,iCACA,sBACA,uCACA,+BACA,8BACA,wBACA,mCACA,8BACA,mCACA,uCACA,yBAMA,mBACA,0BAEA,YAsBA,cACA,WAEA,sDACA,gDACA,oCACA,mDACA,yCACA,uCACA,iDACA,4BACA,gCACA,4CACA,kDACA,kEACA,oDACA,qDACA,uBACA,mEACA,8BACA,8CACA,0DACA,2DACA,sBACA,oCACA,oCACA,qCACA,qCACA,wCACA,4BACA,sCACA,sCACA,4BACA,sCACA,gCAEA,sCACA,uDAEA,YACA,oBACA,+DAUA,6BACA,YACA,oBACA,qCAEI,uBACJ,yDACA,gDAEA,UACA,IACA,YACA,QACA,EACA,iCACA,YACA,oDACA,kDACA,yCACA,2BACA,gBACA,yBACA,SACA,SACA,iBACA,MACA,QACA,WACA,CAAe,CACF,EACb,iBACA,cACa,CACb,CAAS,CACT,sBACA,+BACA,CAAS,CACT,cACA,CAAO,EACP,iBAOA,OANA,0BACA,YACA,iBACA,gCAGA,CACA,CAAS,EACT,iBAOA,OANA,YACA,iBACA,mCAEA,uBAEA,CACA,CAAS,CACT,CAAK,EACD,wCAIJ,4BAtIA,IAuIA,CAvI2C,GAuI3C,gCAtIA,IAwIA,yDAEA,IADA,IACA,0BACA,gBACA,yBACA,uBA+CA,OA7CA,IACA,sBACA,2CACA,eACA,CAAS,EACT,iBACA,yBACA,CAAS,EACT,kBACA,QACA,CAAS,EAET,mCACA,iDAEA,IACA,8BACA,gBAMA,OALA,YACA,iBACA,yBAGA,CACA,CAAS,EACT,kBAMA,OALA,YACA,iBACA,4BAGA,eACA,OACA,sDACA,sDACA,UA0BA,SACA,yBA3BA,EA4BA,0BACA,uCACA,iEACA,+DA9BA,mCACA,oDACA,SACA,eACA,CAAe,CACF,EAEb,CAAS,EAET,aACA,iBAGA,uBAFA,KAGA,CAHiD,EAIjD,kBAEA,wBACA,CAAS,CACT,CAAK,EAEL,CAilCA,cAGA,OAFA,iDAEA,qBACA,mBAMA,IADA,4CAEA,2BAIA,OAFA,OAEA,CACA,CAAG,GAAI,EAMP,OAJA,cACA,oBAGA,CACA,CAEA,cAKA,WAJA,SAIA,eACA,CAuBA,aACA,MAWA,OATA,gCAEA,qBACI,kCACJ,uBACI,uCACJ,6BAGA,CACA,CA11CA,qCAmNA,gDACA,EACA,GAEA,IACA,IADA,OAGA,EADA,qBACA,kCACA,KACA,6BACA,aACA,aAEA,0CACA,yBAGA,6BACA,IACA,SACA,iBACA,MACA,4CACA,WACA,OACA,kDACA,qBACA,CAAa,CACF,CACF,CACF,EACP,iBACA,SACA,+DACO,MACH,CAEJ,GACA,sCACA,uCACA,+BAEA,kDAGA,kBACA,oCACA,oCACA,CAAO,EAUP,cARA,GACA,oCACA,oCACA,0BACA,oCACA,8BACA,4BAEA,cACA,GAEA,qBACK,EADkD,EAGvD,EACA,SACA,iBACA,MACA,qCACA,WACA,OACA,4CACA,kBACA,iBACA,kCACA,8BACA,iBACA,8BACA,oCACA,+BACA,qCACA,qBACA,EACA,MACA,CAAe,CACF,CACF,CACF,CACF,EACP,iBACA,4DACO,CACP,CAEA,0BACA,kDAMA,8CACA,sDACA,2BAGA,kCACA,CAAK,CAXL,SAaA,+BAIA,sCACA,8BACA,CAAG,CACH,EAEA,kCACA,wBAuhCA,2BACA,oDAthCA,YACA,oBACA,qCAGA,wBAEA,oBACA,4CAEA,YACA,oBACA,sCAEA,6BAEA,iEACA,iBAGA,iEAGA,mCACA,kCAEA,uBAEA,eAGA,EAEA,8BACA,gCACA,aACA,2BACA,KACA,EACA,yBACA,sDACA,sCACA,sBACA,gBACA,GACA,OACA,qBACA,0BACA,oBACA,sBAEA,EA+CA,OA7CA,wBACA,iDAEA,sBAGA,8BACA,0BAKA,wCAEA,2CAIA,gEACA,+BACA,GACA,uDAEA,mCACA,iCACA,iCAEA,sBACA,qBACA,qBAGA,6BAGA,2BAFA,2BAKA,gCACA,wBACA,8BACA,2BACA,sCACA,6CAGA,GACA,sDACA,0CACS,EACT,IACA,cAEA,GAAK,WAEL,EAUA,0CACA,6BACA,4CACA,kCACA,gCACA,+CACA,CAAG,CACH,EAUA,6CACA,oCACA,EAIA,+CACA,WACA,mBAMA,OAJA,eACA,4CAIA,KACA,IADA,6CAGA,EAEA,sDAIA,2BASA,6BAGA,kCACA,iCACA,EAwCA,iCACA,iBAKA,CAFA,QAEA,mCACA,eACA,6CAIA,gCAqDA,CApDA,uBASA,kCACI,8BAWJ,qCACI,2BAcJ,0CAaA,mDAIA,iBACA,wBACA,iBACA,sCACA,CAAS,EACT,oBAitBA,EA9sBA,OAFA,6BAgtBA,GACA,2BACA,oBACA,SACA,uBACA,sBACK,EAGL,cACA,oBAxtBA,EAwtBA,UACA,+BACA,uBAIA,CA7tBA,CAAS,CACT,CAAK,EACL,kBACA,wBACA,iBAIA,sCACA,CAAS,EACT,gBAGA,OAFA,6BAEA,iBACA,CAAS,CACT,CAAK,EACL,EA8BA,iDACA,8BAMA,sCAMA,uBACA,6BACA,kDAIA,aACA,mCACA,kCACA,GApBA,eACA,+CAoBA,EAEA,qDACA,WAOA,OALA,+DACA,2CACG,EACH,4BAEA,+BAuCA,OAtCA,EACA,aACA,qBACA,qDACA,gDACA,6CACA,WACA,iBACA,8DACA,CAAO,EACP,iBACA,YACA,iBACA,mCACA,CACA,6CAIA,4BACA,qCACA,oBACA,sBACA,4BACS,CACT,CAAO,EACP,kBACA,YACA,iBACA,mCACA,CACA,6CAIA,4BACA,CAAO,EAEP,mBACG,CACH,EAEA,mDACA,WAEA,2BACA,iBACA,6BACA,4CACA,qCAEA,kBACA,iBACA,MACA,QACA,WACA,IACA,CAAW,CACF,CACF,CACP,CAAK,EACL,iBACA,mBACK,CACL,EASA,gEACA,GAEA,WAEA,uDACA,eAEA,oCAWA,OAVA,+BAEA,YACA,iBACA,yCACA,CACA,6CAIA,GACA,eACA,yBACA,gBACA,sBACA,iCAEA,cACA,sBACA,mCAGA,CAGA,wCACA,oBACA,IAEA,EACA,8CACA,QACA,UAGA,qCACA,CAAK,CACL,CAAG,CACH,EAEA,kDAGA,WAFA,CAGA,2BAHA,KAGA,wBACA,kBACA,sBACA,OACA,gCACA,gCACA,sCACA,SACA,CAAS,EAET,CAAK,EACL,iBACA,yBACA,CAAK,CACL,EAEA,4CACA,kBAEA,4CACA,eACA,oDAIA,6DACA,kBACA,sBACA,OACA,4DACA,4DACA,QACA,0DACA,SACA,eACA,CACA,CAAS,EAET,CAAK,EACL,iBACA,eAEA,oCAYA,OAXA,+BAEA,YACA,iBACA,8CACA,gBACA,CACA,6CAIA,GACA,cACA,aACA,eACA,sBACA,MACA,2CAGA,gBACA,yBAMA,CAGA,iCACA,sBACA,yCACA,CAAS,0BACT,CAAO,CACP,CAAK,CACL,EAEA,0DACA,WA2CA,OAzCA,YACA,oBACA,qCACA,CACA,6CAIA,oCACA,+CACA,4BAEA,4BACA,iBACA,YACA,iBACA,uCACA,CACA,6CAIA,4BACA,qCACA,oBACA,sBACA,2BACA,CAAO,CACP,CAAK,EACL,kBACA,YACA,iBACA,uCACA,CACA,0CACA,GAGA,4BACA,CAAK,EAEL,+BAGA,OAFA,eAEA,mBACG,CACH,EAEA,wDACA,cAIA,8BAIA,wBACA,EAEA,kEACA,IACA,IADA,OAGA,gCACA,2CAQA,cACA,MAEA,EACA,gCACA,kBACA,GACA,CAAO,EACP,iBAEA,yBACA,wCAEA,uCAEA,mCAEA,EACA,6BAEA,8BAEA,0BACO,CACP,CAgCA,OA7DA,+DACA,4BAEA,wCA8BA,uCACA,6BAEA,8BAIA,KACA,gBACA,KACA,EAEA,oEAKA,0CACA,MACA,uDAEA,wBACA,GACA,mBAGA,EAEA,+BAWA,OAVA,eAGA,sBACA,iCACA,IACA,4BAEA,CAAK,2CAEL,mBACG,CACH,EAEA,iDACA,WAkDA,OAhDA,gEAEA,4BAEA,oBACA,gBACA,kDACA,CAAK,EACL,iBACA,0CAEA,YACA,iBACA,kCAGA,6BACA,CAAK,EACL,kBAUA,GATA,YACA,iBACA,kCAGA,yBACA,0CAGA,mCACA,0BACA,iCAGA,MACA,CAEA,0BACA,OACA,wCACA,wCACA,8CACA,SACA,eACA,CAAW,CACF,EAET,CAAK,EAEL,uBAGA,mDACA,WAEA,4CACA,aAEA,0BACA,yBACA,sCACA,+BAEA,WACA,iBACA,MACA,QACA,WACA,OACA,4BACA,iBACA,CAAa,CACF,CACF,CACF,GAGP,iBACA,CAAG,CACH,EAEA,kDACA,WAEA,2CAKA,OAJA,yBACA,qEAGA,iBACA,CAAG,CACH,EAcA,gCACA,WAIA,OAFA,sCAEA,yBACA,YACA,yBACA,mCAGA,8CACA,gCAEA,sBACA,EAAK,YAEL,EAEA,sDACA,oEACA,oCACA,IACA,gCAGA,sCACA,mCAeA,qDACA,WACA,OAKA,iCACA,uBAqCM,gBACN,YACA,iBACA,kCAGA,MACM,cACN,6DACA,EACA,OACA,6BACA,6BACA,mCACA,SACA,eACA,2CACA,iBAEA,CAAW,CACF,IAEH,eACN,8DACA,iCAGA,YACA,iBACA,yCAEA,4BAnEA,EACA,uBACA,iBASA,OARA,YACA,iBACA,8DACA,CACA,6CAIA,GACA,qCACA,oBACA,sBACA,4BACW,CACX,CAAS,EACT,kBAEA,4DAGA,KAGA,YACA,iBACA,4DACA,CACA,6CAIA,IACA,CAAS,EAmCT,4BACA,CAAG,CACH,EAEA,iDACA,4BAKA,gDACA,sBAEA,kBACA,EAAQ,CACR,GACA,gEAGA,EAiFA,4BAEA,CAAC,EAAE,mhBAAmhB,uBACthB,aAqBA,kCAEA,WACA,2BACA,sBACA,iCACA,yDACA,CAAG,CACH,qCACA,sBACA,2CACA,yCACA,CAAG,CACH,gCACA,sBACA,sCACA,+DACA,CAAG,CACH,4BACA,qBACA,kCACA,QACA,qEACA,CAAG,CAGH,CAAC,EAAE,6BAA6B,uBAChC,aAOA,+CACA,8BACA,qCACA,gCACA,uBACA,wBACA,gBAEA,+BA8CA,WACA,SApCA,YACA,sBAEA,SACA,QACA,OACA,gBACA,6BACA,CAAK,E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KAAO,6BACpE,8BACA,GACA,kBACA,2BACA,CAAO,EAEP,CAAG,sBACD,gBAAS,YACX,oBAA6D,KAAO,8BACpE,+BACA,GACA,mBACA,4BACA,CAAO,EAEP,CAAG,uBACD,gBAAS,YACX,oBAA6D,KAAO,6BACpE,0BACA,GACA,kBACA,wBACO,EAEP,CAAG,uCACH,qBAIA,iBAAuC,GAAU,wBACjD,qBACA,kCAEA,OAEA,GACA,wBACA,UACA,CAAS,EACT,mBACA,QACA,CAAS,mBACT,GACA,uBACA,SACA,QACA,OACA,CACA,CAAW,EACX,GACA,wBACA,UACA,CAAW,CACX,CAAS,IAET,GACA,uBACA,SACA,QACA,OACA,CACA,CAAS,EACT,mBAEA,EAAM,0BACN,GACA,wBACA,UACA,CAAO,EACP,+BACA,QACA,CAAO,mBACP,GACA,uBACA,SACA,QACA,aACA,CACA,CAAS,EACT,GACA,wBACA,UACA,CAAS,CACT,CAAO,GAGP,iBACA,CAAG,EACH,EAAsB,kBAAW,eACjC,iBACA,cACA,UACA,CACA,CAAG,KACH,EAAwB,kBAAW,aACnC,oBACG,KACH,mBAMA,OALA,GACA,mBACA,SACA,CAAK,EACL,iBACA,6BACA,CAAG,EACH,EAAkB,kBAAW,aAC7B,GACA,kBACA,SACA,CAAK,CACL,CAAG,KACH,mBACA,MAAyB,GAAU,iBAMnC,CANmC,MACnC,GACA,kBACA,SACA,CAAK,EACL,iBACA,sBACA,CAAG,EACH,EAAsB,kBAAW,eACjC,GACA,uBACA,SACA,QACA,OACA,CACA,CAAK,CACL,CAAG,KACH,qBASA,OARA,GACA,uBACA,SACA,QACA,OACA,CACA,CAAK,EACL,iBACA,qCACA,CAAG,EACH,EAAsB,kBAAW,eAIjC,IAEA,EAFA,IACA,IAIA,WAGA,WACA,YAGA,wCACA,SACA,SACA,OACA,UACA,YAEA,GADA,YACA,WACA,aACA,UAUA,wEACA,SA0cA,OAEA,uBACA,UAIA,SACA,KACA,KAEA,oBAOA,IAEA,EADA,kBACA,OAPA,6BACA,iBAUA,SACA,YAIA,EAKA,kCAJA,CAKA,EA7eA,yBAicA,WAhcA,GAgcA,mBACA,kBACG,kBACH,cACA,CAAG,EApcH,CACA,CAEA,GAEA,MAEA,CAAG,eACH,iBACA,SACA,mBACA,aACA,EAEA,IAEA,CAAG,EACH,qBAaA,OAZA,YACA,OAGA,GACA,yBACA,SACA,QACA,OACA,CACA,CAAK,EACL,iBACA,6BACA,CAAG,EACH,EAAoB,kBAAW,eAC/B,WACA,YAGA,eACA,SACA,OACA,YAWA,EAVA,QAUA,GACA,CAAG,MACH,iBACA,SACA,mBACA,aACA,EAEA,IAEA,CAAG,EACH,EAAuB,kBAAW,aAC1B,GAAU,GAClB,GACA,YAFkB,YAGlB,SACA,CAAO,EAEP,GACA,wBACA,mBACA,QACA,CACA,CAAO,CAEP,CAAG,KACH,EAAkB,kBAAW,aAC7B,GACA,kBACA,SACA,CAAK,CACL,CAAG,KACH,EAAsB,kBAAW,aACjC,GACA,wBACA,SACA,CAAK,CACL,CAAG,KACH,gBAIA,OAHA,GACA,qBACA,CAAK,EACL,qBAOA,IAcA,EAdA,qBAGA,GAFA,8BAEA,CAaA,IAIA,GAHA,MAGA,WACA,EAJgD,IAMhD,CAAU,SACV,OACA,CAEA,2CAOA,OANA,WACA,GACA,qBACA,CAAa,EAGb,CACA,CAAS,oBACT,aAMA,MALA,GACA,qBACA,CAAa,EAGb,CAEA,CAAS,CACT,CAAQ,eAER,GACA,qBACA,CAAS,EAET,CAFY,EAGZ,OAKA,CAAK,CACL,CAAG,EACH,iBACA,qBAAiC,GAAU,mBAC3C,mBAGA,sBAAkC,GAAU,oBAC5C,oBAgBA,sBACA,0EACA,CAAK,CACL,CAAG,EACH,GACA,YACA,eACA,gBACA,YACA,gBACA,kBACA,gBACA,YACA,gBACA,aACA,YACA,iBACA,YACA,EACA,gBACA,oBACA,CAAG,EACH,iBACA,qBAAiC,GAAU,mBAC3C,mBAGA,sBAAkC,GAAU,oBAC5C,oBAGA,GACA,CAAG,EACH,EAAqB,kBAAW,aAChC,OACA,qBACA,qBACA,0BACA,6BACA,iCACA,4BACA,CACA,CAAG,gCACH,GAAwB,kBAAW,aACnC,OACA,uBACA,eACA,CAAO,CACP,yBACA,eACA,CAAO,CACP,qBACA,aACA,CACA,CACA,CAAG,UACH,GAAsB,kBAAW,aACjC,MAAqB,GAAQ,GAC7B,aAD6B,EAE7B,eACA,GACA,OACA,QACA,WACA,QACA,EAEA,MACA,aACA,UACA,OACA,YAEA,gBACA,WACA,eAEA,8CACA,WAEQ,aACR,gBACA,WACQ,kBACR,oBACA,cAEA,CAEA,QACA,CAAG,iBACH,GAAc,cAAO,YACrB,OAAY,KAAO,mBACnB,CAAG,GADgB,CAChB,mBACH,GAAgB,cAAO,YACvB,wEAAgJ,GAAU,oDAC1J,CAAG,oBAoCH,OAlCA,KAAuB,IACvB,wBACA,wBACA,yBACA,wBACA,aACA,eACA,cACA,eACA,YACA,YACA,iBACA,kBACA,gBACA,gBACA,YACA,gBACA,aACA,YACA,aACA,eACA,gBACA,WACA,SACA,kBACA,gBACA,iBACA,eACA,mBACA,iBACA,mBACA,iBACA,CAAG,CAGH,CAmHA,mBACA,gBAYA,OAXA,wBACA,kBAEA,OADA,aACA,sBACA,QAAqC,EAAS,sBAA2B,OACzE,EAAM,2BACN,KAAuB,EAAS,UAC1B,mBACN,SAEA,CAAG,EACH,CACA,CAuDA,oGAAkK,kBAAe,CAAG,YAAS,CAE7L,eACA,MAAY,aAAM,IAKlB,EALwB,KAExB,cACA,WACA,CAAG,EACM,kBAAW,YACpB,0CAAwE,IAAa,IACrF,kBAGA,gCACA,CAAG,IACH,CAwIwB,iBAAU,eAGlC,IAh0CA,EAg0CA,WACA,mBAIA,GAp0CA,CADA,EAAe,SACD,MAAqC,CADpC,CAAU,EACgK,KAAG,GAAS,IACrM,GAo0CA,MAr0CqM,SAq0CrM,CACA,iBAEA,MAAS,oBAAa,YACtB,WACA,MACA,UACA,OAVA,aAWA,CAAG,IACH,CAAC,EACD,mBAqHA,uBACA,YACA,OAGA,OAFA,cACA,gBACA,CACA,EACA,mBACA,YACA,OAGA,OAFA,UACA,OACA,CACA,EACA,mBACA,YAEA,OADA,gBACA,CACA,EACA,mBACA,YAEA,OADA,OACA,CACA,EAEA,eACA,MACA,SACI,oBACJ,mBAEA,qCACA,kBACA,CAAK,uBACL,cACA,CAAK,IACL,uBAAiC,IACjC,UACA,CAAK,EAEL,EAEA,iBACA,+BACA,0BACA,kBAA+B,GAAQ,GAEvC,EADA,OAMA,CACA,CACA,CAsOA,CA/OuC,CAWvC,YAGA,cACA,MAsIA,MAjIA,CAHA,wBAAwD,gBAGxD,iBACA,cACA,SACA,4BACA,YACA,cACA,UAGA,EAHuE,GAGvE,8BACA,6BACA,8BAUA,OARA,OACA,WAGA,OACA,WAGA,KAA0B,IAC1B,SACA,mCACA,sCACS,CACT,CAAO,CACP,EAEA,mBACA,sCACA,uBAAoD,GAAS,IAC7D,CAAO,OACP,EAEA,yBACA,kBACA,gBACA,CACA,EAEA,qBACA,sCACA,gBACA,CAAO,OACP,EAEA,2BACA,kBACA,kBACA,CACA,EAEA,qBACA,sCACA,gBACA,CAAO,OACP,EAEA,2BACA,kBACA,kBACA,CACA,EAEA,uBACA,sCACA,gBACA,CAAO,aACP,mBACA,CAAO,aACP,mBACA,CAAO,CACP,EAEA,6BACA,kBACA,oBACA,CACA,EAEA,wBACA,sCACA,gBACA,CAAO,OACP,EAEA,8BACA,kBACA,qBACA,CACA,EAEA,sBACA,SAYA,OAVA,+BACA,0BAEA,OADA,WACA,CACA,CAAO,aACP,iCACO,aACP,iCACO,EAEP,CACA,EAEA,4BACA,kBACA,mBACA,CACA,EAEA,2BACA,kBACA,kBACA,CACA,EAEA,uBACA,kBACA,cACA,CACA,EAEA,8BACA,wBACA,CACA,CAzqDA,uCACA,wBA8hDA,IA7hDA,UA6hDA,EA4IA,kBAoFA,OAlFA,iCACA,kEAA8E,KAAO,0EACrF,wDAEA,EAEA,qBAEA,MAkBA,OAjBA,sBACA,YACA,iBAWA,OATA,GACA,SAGU,GAAU,WACpB,OADoB,CACpB,MAIa,GAAU,8BACvB,iBACA,CAAO,MACP,CAAK,QACL,CACA,EAEA,iBAEA,MAWA,OAVA,sBACA,YACA,gBAMA,OAJA,GACA,sBAGA,CACA,CAAK,QACL,CACA,EAEA,oBACA,IAppDA,EAopDA,GACA,eACA,aACA,eACA,eACA,mBACA,qBACA,qBACA,mBACA,2BACA,yBACA,2BACA,2BACA,+BACA,iCACA,iCACA,gCAGA,aACA,cACA,WACA,aACA,SAEA,KADA,SACA,iCAEA,OAA2B,IAC3B,OACA,MACA,CAAK,EAEL,SAAuB,oBAAa,eACpC,2BArrDA,EAqrDA,EAprDS,eAAQ,WAorD6E,KAAR,WAAQ,aAC9F,EAEA,EACA,CAAC,CAAC,YAAS,EAEX,cACA,mBACA,+BC/xDA,MAAc,EAAQ,KAAU,EAMhC,GACA,OAPqB,WAOrB,GACA,eACA,gBACA,gBACA,eACA,mBACA,4BACA,4BACA,UACA,aACA,OACA,EACA,GACA,QACA,UACA,aACA,UACA,UACA,aACA,QACA,EAQA,GACA,YACA,WACA,gBACA,eACA,aACA,OACA,EACA,KAIA,qBAEA,YACA,EAIA,gBACA,CAXA,gBAhBA,CACA,YACA,UACA,gBACA,eACA,YACA,EAWA,YAYA,4BACA,6BACA,+BACA,kCACA,wBACA,mBAsCA,UArCA,kBACA,uBAEA,MACA,WAEA,UACA,QAEA,CAEA,WAEA,GACA,mBAMA,QAHA,OACA,OAEA,IAAoB,WAAiB,KACrC,WAEA,8CACA,aAEA,IAEA,QACA,CAAU,UACV,CACA,CACA,CAEA,QACA,iGCxEA,cACA,OACA,kBACA,OACA,gBACA,WACA,CAAiB,CACjB,kBACA,MACA,CAAiB,CAEjB,CAAS,CAET,CA2CA,iBACA,oBACA,YAAkC,oBAClC,IApEA,EAuBA,EA6CA,OA0CA,GAzCA,qBACA,SAAsB,CACtB,WAAwB,CACxB,cAA2B,EAE3B,wBACA,yBAEA,gBACA,kBAEA,6BASA,OARA,UACA,SAAkC,IAAS,UAC3C,+BAIA,uBAHA,gBAKA,CACA,CAAa,YACb,YACA,SAEA,CACA,EACA,+BACA,MAAmB,QAAa,2DAChC,EACA,gCACA,MACA,OACA,sEACA,kDACA,CAAa,EAEb,uBAAoC,cAEpC,eACA,uCACA,oBAEA,GADA,eACA,WACA,+FAEA,WAA+B,iBAA0C,QAAM,mBAE/E,sBAA0D,QAAQ,CAAC,QAAQ,GAAG,KAAgB,2BAA6B,EAC3H,MAEA,WAEA,4BACA,iEAIA,eA/HA,EA+HA,UA9HA,EAGA,wCAbA,IAeA,OADA,MAdA,EAcA,KAbA,CADA,EAwIA,CA1HA,KAVW,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAW,OAAa,sCAEhE,OADA,KAAiB,QAAQ,CAAC,QAAQ,GAAG,eAAsB,EAC3D,CACA,CAAK,GAAI,GALT,GAaA,CACA,CAAK,CAAE,QAAQ,GAAG,KALlB,GA8HA,gBACA,kBAzGA,UADA,EA0GA,uBAzG4B,GAC5B,SAAkB,CAClB,WAAoB,CACpB,cACA,GACA,CACA,gBAAyB,OAAO,YAGhC,QAFA,EACA,KACA,IAA6B,mBAAuB,IACpD,kBAEA,8CAAgE,QAAa,iBAC7E,CAAS,EACT,kBACA,SAAsB,GAAU,UACvB,EACT,kBAA2B,OAAO,YAGlC,QAFA,EACA,KACA,IAA6B,mBAAuB,IACpD,kBAEA,gDAAkE,QAAa,iBAC/E,CAAS,EACT,oBACA,SAAsB,GAAU,UACvB,EACT,eAAwB,OAAO,YAG/B,QAFA,EACA,KACA,IAA6B,mBAAuB,IACpD,kBAEA,6CAA+D,QAAa,iBAC5E,CAAS,EACT,uBACA,SAAsB,GAAU,UACvB,CACT,EAmEA,CAsFA,OArFA,yCACA,eAKA,OAJA,yBACA,yBACA,kDAEA,wBACS,CACT,cACA,eACA,CAAK,EACL,6BACA,4BACA,yBAGA,yDAEA,YADA,WACA,KAEA,2BACA,EACA,UAAgC,IAAK,CAIrC,WACA,QACA,SACA,uBACA,CAAa,CACb,UACA,gBACA,CAAa,CACb,SACA,eACA,CAAa,CACJ,CACT,MACA,OACA,gBACA,cACA,cACA,CAAa,CACb,QACA,cACA,cACA,cACA,CAAa,CACb,MACA,aACA,cACA,cACA,CAAa,CACb,MACA,eACA,aACA,cACA,cACA,CAAa,CACJ,CACT,MACA,OACA,eACA,gBACA,CAAa,CACb,QACA,eACA,iBACA,gBACA,CAAa,CACb,MACA,eACA,iBACA,iBACA,oBACA,CAAa,CACb,MACA,eACA,iBACA,iBACA,oBACA,CAAa,CACJ,EAET,CACA,CAAC,2FC3OM,cACP,YAEA,gCAEA,gCAEA,qCACA,CAAC,UAA8B,EAC/B,kBAEA,kBACA,2BAGA,OAFA,SACA,oBACA,CACA,CAIA,MAVI,QAAS,MAOb,gCACA,qEACA,EACA,CACA,CAAC,QAED,cAEA,oBACA,wJACA,CACA,MAJI,QAAS,MAIb,CACA,CAAC,IAED,cAEA,kBACA,mGAEA,MAJI,QAAS,MAIb,CACA,CAAC,IAED,cAEA,gBACA,8IAEA,MAJI,QAAS,MAIb,CACA,CAAC,kEClBM,uBAEP,GAEA,iBAA4B,QAAgB,OAC5C,OACA,CACA,eACA,gBACA,CAAa,CACb,CAGA,QADA,KACA,IAAkC,EAAlC,EAAkC,OAAmB,KACrD,WAEA,GAAY,QAAgB,KAC5B,QACA,eACA,cACa,EACb,QACA,CAGA,GAAY,QAAc,KAC1B,oBACA,QACA,eACA,oCACA,CAAiB,EAEjB,QACA,CACA,cAEA,gBACA,UAAsB,IAAiB,MAEvC,WACA,GAAY,QAAiB,KAC7B,2CACA,GACA,uCACA,UACA,IAEA,QACA,2CACA,OACA,CAAa,EACb,QACA,CAIA,GAAY,QAAa,KACzB,+BACA,gBACkB,QAAkB,UACpC,sBACA,OACA,QACA,eACA,QACA,uBACA,SACA,CAAa,EACb,QACA,CACA,GAAY,QAAa,KACzB,+BACA,gBACkB,QAAkB,UACpC,sBACA,cACA,QACA,eACA,QACA,uBACA,SACA,CAAa,EACb,QACA,CACA,GAAY,QAAe,KAC3B,+BACA,kBACkB,QAAgB,UAClC,sBACA,OACA,YACA,IAEA,YAEA,QACA,eACA,QACA,qBACA,SACA,CAAa,EACb,QACA,CACA,GAAY,QAAY,KACxB,2BACA,OACA,SACA,UAA0B,IAAqB,iBAG/C,QADA,eACA,gBAA2D,eAAiB,GAC5E,kBACA,QAEA,iCACA,OACA,2CACA,OACA,CACA,CAAa,EACb,CACA,GAAY,QAAe,KAC3B,oCACA,MACA,UAA0B,IAAiB,qCAE3C,mCACA,QACA,CACA,GAAY,QAAe,KAC3B,+BACA,OACA,qBACA,UAA8B,IAAW,mHAAsH,IAAS,qBAExK,QACA,kBAA+C,kBAAqB,EACpE,wBACA,+BACA,CACA,MACA,UAA0B,IAAiB,qCAE3C,mDACA,QACA,CACA,CACA,SAvKA,SAuKA,IApKA,qBACA,oBASA,OARA,GACA,oBACA,mBAIA,iBAHA,UAKA,CACA,CAAK,IA0JL,QA9KO,wBAsBA,cACP,0BACA,EAvBA,YACA,yBACA,sBACA,CAAC,UAA8B,sDSN/B,0BREA,IAAK,UAAQ,CACb,iEAEA,IAAK,IAAc,CACnB,iGELO,cACP,GACA,CCFO,cACP,MAAW,QAAiB,GAC5B,CEDA,iBACA,cACA,WACA,uCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,4CACA,cACA,gBACA,YACA,aACA,CAAS,EACT,2CACA,cACA,gBACA,YACA,YACA,CAAS,EAET,oCACA,cACA,gBACA,YACA,kBACA,aAAyC,EA7BlC,GA6BkC,EAEzC,6BACA,sBACA,iBACA,sCACA,sBACA,oBACA,0BAEA,CAAiB,EACjB,wBACA,iBAEA,CACA,CAAS,EAET,qDACA,cACA,gBACA,YACA,iBACA,UACA,CACA,CAAS,CACT,CAgCA,OA9BA,8CACA,cACA,gBACA,YACA,sBACA,0BACA,QACA,uBACA,CAAa,EACb,oBACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,4BACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,iBACA,4BACA,yCAjFO,IAiFP,CAEA,CACA,CAAK,EACL,CACA,CAAC,GCtFM,KDwFA,8BCxFoE,YDyF3E,qBACA,GC1F2E,YAC3E,KACA,gDACA,eACA,CAAC,aCCD,cACA,eAAuB,IAAQ,sCAC/B,KACA,yBAIA,iDACA,CAAK,CACL,CCTA,4CACA,kEAA4F,4DAE5F,IACA,gCACA,mBAAa,YAAU,EAAmB,gBAAU,aAAoB,YAAc,WACtF,IACA,yBACA,mBAAa,MAAI,EAAmB,UAAI,aAAoB,YAAc,WAEnE,aAEP,GAMA,qBACA,mMAMA,IAZA,EAYA,wDACA,IACA,wBAGA,uBACA,KAEA,kBADA,cAEA,oFAGA,oBACA,OAAe,SD5BR,EC4BmB,CD5BnB,EACP,aAAwC,cAIxC,IAsDA,EACA,EAvDA,EAAiB,QAAY,OAC7B,eAEA,OACA,cACA,mBACA,sBACA,OACA,sBAeA,OAbgB,EAA4B,cAC5C,YAD4C,GAC5C,GACA,aAMA,KAGA,yBAEA,WACA,KAEA,sBACA,+CACA,eACA,CACA,CAAa,CACb,uBAEA,sBAEA,CACA,YACA,CACA,gBA0BA,GAzBA,aAEA,KAIQ,EAA4B,iBAEhC,SAFgC,MAEb,YAAe,GAClC,YADiD,aACjD,CAAoB,CAExB,yCAMA,4BACA,IACA,KACA,CACA,SACA,GACA,CACA,CAAK,EACL,EACA,QAEA,QACA,CAHyB,CC1CC,WAAe,cAA4B,GACrE,SACA,4BACA,GACA,gCACA,aACA,YACA,eACA,CAAS,EAGT,gBAEA,gCAMA,GAIA,GAA4B,gBAAU,KAMtC,SAqBA,KACA,mCACA,MACA,+DAEA,CAAK,CACL,EA3BA,EADA,EAAwB,UAAI,KAU5B,CACA,CAEA,OACA,YACA,UACA,WACA,QAGA,cACA,EKrFA,CXJO,YACP,GACA,MAKI,QAAS,EAAG,oBAAsC,CACtD,GWJiB,yBAAK,EAQS,EAA4B,oCAAwC,IAAE,cAAc,IAAE,mBAAmB,6CCsBxI,EAo3CA,EASA,EA04BA,EAKA,EAkyBA,EAklBA,EAwuCA,yBAv2JA,YACA,4BACA,4BACA,wDACA,8BACA,+BACA,CAAC,YAkBD,oBAIA,OAHA,yBACA,EAAW,eAAgB,+BAAsC,cAAkB,EACnF,cAA0B,wEAC1B,IACA,EAEA,gBACA,kCACA,kFAEA,aAAoB,mBADpB,OAEA,qEACA,CAEA,iBAQA,MAPA,8BACA,iCAAiD,IAAO,IAExD,aADA,eACA,uDAEA,QACA,GACA,qBACA,EA0CA,cACA,+DACA,sBACA,uCACA,gBAEA,OADA,2BACA,CAAqB,wBACrB,CACA,CACA,+EACA,CAEA,gBACA,oDACA,eACA,yBACA,IACA,8DACA,CACA,SAAoB,GAAM,gBAC1B,CACA,IACA,mCACA,QACA,CAAkB,mBAClB,CACA,QACA,CAEA,kBACA,mDAA6E,IAAO,KACpF,YACA,yCACA,WAGA,iDACA,CAaA,cAEA,iBACA,CA6CA,gBAIA,0BACA,CAWA,gBAIA,yBACA,CA0JA,gBAGA,6BACA,CAgHA,cAGA,6BACA,CA8ZA,cACA,QACA,CAlwBA,oDAk1BA,iBACA,oBACA,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,OACA,CAAS,EACT,8CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,gDACA,cACA,gBACA,YACA,YACA,CAAS,EACT,6CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,CADY,MACZ,iCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,qCACA,cACA,gBACA,YACA,qBACS,EACT,+CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,mBACA,uBACA,CA4MA,OA3MA,6CACA,eACA,qBACS,CACT,cACA,eACA,CAAK,EACL,sDACA,eACA,6BACA,CAAS,CACT,cACA,eACA,CAAK,EACL,mDACA,eACA,2BACS,CACT,cACA,eACA,CAAK,EACL,2CACA,eACA,+BACA,CAAS,CACT,cACA,eACA,CAAK,EACL,2CACA,eACA,mBACS,CACT,gBACA,mBACA,cACA,kBACA,wBACA,8BAEA,CAAS,CACT,cACA,eACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,uBACA,oCAEA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,oBAIA,OAHA,uBACA,+BAEA,mCACA,CACA,CAAK,EACL,4CACA,eACA,oBACS,CACT,cACA,eACA,CAAK,EACL,2DACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,mDACA,cACA,gBACA,YACA,oBACA,eACA,gBACA,4BACA,SAD8C,IAC9C,EACA,6BAEA,CACA,CAAK,EACL,0CAIA,eACA,8BACA,CAAS,CACT,cACA,eACA,CAAK,EACL,oDACA,cACA,gBACA,YACA,wBAOA,CANA,IACA,eACA,eAAoC,QAAU,UAE9C,gCAEA,cAGA,+BACA,0DAEA,wDALA,EAMA,CACA,CAAK,EACL,4CACA,eACA,yBACA,CAAS,CACT,cACA,eACA,CAAK,EACL,6CACA,eACA,2BACS,CACT,cACA,eACA,CAAK,EACL,iDACA,eACA,gCACS,CACT,cACA,eACA,CAAK,EACL,uDACA,eAKA,OAJA,gBACA,gBAAiC,QAAU,WAE3C,gCACA,aACS,CACT,cACA,eACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,kBAQA,2BACA,gBACA,mCAEA,OAEA,4BACA,CACA,uBACA,GACA,GAEA,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,iBACA,uBACA,iCAEA,qCACA,4CACA,4BACA,kBAEA,CAAK,EACL,oDACA,cACA,gBACA,YACA,iBACA,8BACA,CACA,CAAK,EACL,CACA,CAAC,GAMD,cAEA,sBACA,iCACA,IACA,oCACA,CACA,SAGA,MADA,eACA,CACA,CAMA,OALA,kBAIA,qBACA,CACA,CA0GA,OA3HA,OAkBA,0CACA,eAEA,gBACA,uDACA,uBACA,CAAS,CACT,cACA,eACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,oBACA,sBACA,mBACA,SAiBA,wBACA,SAD0C,SAC1C,gBACA,CACA,CAAK,EACL,8CACA,eACA,gBA+nFA,UAEA,GAjoFA,mBACA,CAAS,CACT,cACA,eACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,kCACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,4DACA,+EACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,iBACA,yCAEA,kBACA,qBACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,iBACA,2BACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,iBACA,qBACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,iBACA,wBACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBACA,wBACA,CACA,CAAK,EACL,CACA,CAAC,GACD,iBAA2B,QAAM,kBAEjC,QAEA,aAEA,qCAEA,2BAEA,yBACA,CAAC,YAED,YACA,oBACA,gBACA,qBACA,CAAC,UAAwC,EACzC,OACA,oBACA,OACA,CACA,EAKA,cAEA,sBACA,iCA4IA,GA3IA,kCACA,cACA,gBACA,YACA,SACA,CAAS,EACT,+CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,CADY,MACZ,2CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,2CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,+CACA,cACA,gBACA,YACA,QACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,oDACA,cACA,gBACA,YACA,QACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,CADY,MACZ,qCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,CADY,MACZ,yCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,oDACA,cACA,gBACA,YACA,sBACS,EACT,uCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,4CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,kDACA,cACA,gBACA,YACA,YACA,CAAS,EACT,yDACA,cACA,gBACA,YACA,QACA,CAAS,EACT,6CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,8CACA,cACA,gBACA,YACA,YACA,CAAS,EAET,2CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,oBAAkC,QAAQ,YAAe,gBA85EzD,UAEA,GAh6EyD,iBAAqC,EAC9F,wBACA,4BA45EA,UAEA,GA95EA,GACA,4CACA,GACA,0BAEA,2DAGA,kBACA,8BACA,2CACA,gDACA,eAEA,2CACA,GACA,WAEA,CACA,0CACA,uIAGA,cA6rNA,GA7rNA,EACA,0BACA,CAOA,OANA,EAIA,yCAHA,oCAKA,CACA,CA+sBA,OAp3BA,OAsKA,kDACA,cACA,gBACA,YACA,kBACA,wCACA,qBACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,kBACA,wCACA,sBACA,CACA,CAAK,EACL,sEACA,cACA,gBACA,YACA,kBACA,aAAwC,MACxC,iDACA,gCAEA,CACA,CAAK,EACL,8DACA,cACA,gBACA,YACA,kBAEA,aAAwC,MAOxC,yCASA,IANA,IAXA,QAWA,KACA,cAKA,GACA,8CACA,aACA,WAEA,IAEA,0BAAwG,QAAuB,YAC/H,cAEA,sCACA,CACA,CACA,SAA4B,GAAQ,gBACpC,CACA,IACA,mCACA,QACA,CAA0B,mBAC1B,CACA,gBACA,IACA,uDACA,eACA,yBACA,4CACA,CACA,SAGA,MADA,kBACA,CACA,QACA,CACA,wBACA,CAOA,GANA,wCACA,yCACA,aACA,4BACA,oBACA,qBACA,GACA,6BAGA,wBACA,IAEA,oCAAmF,QAAU,YAC7F,cACA,0BAEA,oBACA,CACA,CACA,SAAgC,GAAQ,gBACxC,CACA,IACA,mCACA,QACA,CAA8B,mBAC9B,CACA,CACA,CACA,CAAK,EACL,0CACA,eACA,kBACA,qBACS,CACT,cACA,eACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,gBAGA,8BACA,iBACA,uBACA,gBACA,gBACA,qCACA,IACA,sCACA,4BACA,mBACA,sBACA,QACA,CACA,YACA,EACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,oBACA,sBACA,mBACA,SAwBA,GAEA,wBACA,SAD8C,aAC9C,kBACA,wBACA,8BAEA,GAEA,kCAEA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBACA,WACA,yBACA,wBACA,mCACA,oBACA,uBAEoB,IAAgC,CAChC,QAAgC,YACpD,sBACA,CAAqB,EAGrB,0BAGA,CACA,CAAK,EACL,8CAEA,eAIA,OAHA,+BACA,wCAEA,4BACA,CAAS,CACT,cACA,eACA,CAAK,EAEL,iDACA,cACA,gBACA,YACA,wBACA,aAEA,0CACA,0BACA,iCAHA,wBAKA,CAAK,EACL,wDACA,cACA,gBACA,YACA,iBACA,kCACA,CACA,CAAK,EACL,+DACA,cACA,gBACA,YACA,iBACA,wCACA,gBACA,mBACA,wBACA,0DACA,qCACA,CACA,mCAEA,CAAK,EACL,qDACA,cACA,gBACA,YACA,uBACA,0BAEA,aAEA,6BACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBAEA,kBACA,mCAKA,CAg3EA,YACA,mDACA,GAl3EA,EAEA,CACA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,kBACA,sDACA,+BACA,mBAstCA,EAptCA,2CACA,wBAEA,SACA,oBAEA,oBAx3CA,GAw3CA,WAx3CA,MAy3CA,EACA,sCACA,CACA,2TACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,kBACA,kBACA,SACA,CAAa,EACb,mBACA,IACA,iDACA,+BACA,2BAEA,CACA,kBACA,CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,qBACA,mBACA,IACA,iDACA,4BACA,oBACA,QACA,CACA,kBACA,CACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,kBACA,gCACA,CACA,CAAK,EACL,iDACA,eACA,qCACS,CACT,cACA,eACA,CAAK,EACL,oDACA,cACA,gBACA,YACA,kBAEA,GADA,oBACA,0CACA,sHAEA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,6BACA,CACA,CAAK,EAEL,2CACA,cACA,gBACA,YACA,yBACA,GAEA,kBACA,sCACa,EACb,2BAJA,CAKA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,4DACA,yDACA,yFACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,iBACA,WACA,qCACA,QACA,IACA,wCAAiF,QAAU,WAC3F,QACA,kBAEA,CACA,SAAgC,GAAQ,gBACxC,CACA,IACA,mCACA,QACA,CAA8B,mBAC9B,CACA,+CACA,CAAa,CACb,CACA,CAAK,EACL,4CACA,cACA,gBACA,YACA,iBACA,iBACA,0DACA,kBACA,CACA,CAAK,EACL,6CACA,cACA,gBACA,YACA,iBACA,WACA,mEACA,sBACA,YACA,gCACA,MACA,CACA,eAyiFA,GAEA,2BAOA,IANA,SACA,SACA,UACA,WACA,YACA,aAEA,8FAWA,MAHA,WACA,UAEA,CACA,EA/jFA,QACA,CAwtDA,gBACA,aAAyC,MACzC,QACA,IACA,YAAwB,WAAsB,KAC9C,WACA,YAEA,IADA,WAEA,UAA8B,IAE9B,WACA,cAEA,MACA,mBAGA,cACA,MACA,SAGA,CACA,mBACA,mBAEA,sBAEA,QAGA,CACA,iIACA,CACA,CACA,SACA,MACA,MAEA,QACA,CACA,SACA,EAnwDA,iBACA,kCACA,CAAiB,CACjB,CAAa,EACb,qEAEA,kBAGA,gCACA,CAAa,EACb,sCACA,gCACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,iBACA,yCAEA,kBACA,qBACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,iBACA,kDAGA,uCACA,cACA,CAAa,EAGb,sBACA,oCACA,qCACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,iBAEA,uCACA,iBACA,CAAa,EACb,2CAEA,oBACA,0BACA,+BACA,wBACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBAEA,OADA,4BACA,0CACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,kBACA,sCACA,CACA,CAAK,EACL,6CACA,cACA,gBACA,YACA,kBACA,8CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,oBACA,gDAEA,6DAEA,aA42EA,GACA,qBACA,oEACA,OAMA,YAGA,aACA,UACA,OAAqB,mCACrB,cACA,OAAqB,wBACrB,eACA,OAAqB,uCACrB,CACA,EAjBA,YAkBA,GACA,aACA,UACA,OACA,YACA,WACA,CACA,cACA,OACA,SACA,YACA,iBAEA,eACA,OACA,aACA,YACA,iBAEA,CACA,EAtCA,GACA,EAllBA,YAEA,QADA,KACA,IAAqB,mBAAuB,IAC5C,oBAEA,YAAoB,WAAc,KAClC,WACA,eACA,UAEA,QACA,EA1yDA,EAA8C,IAAe,OAAY,GACzE,iBACA,qCACA,CACA,aACA,0BACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,2CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,yBACA,6CACA,MACA,CACA,iFACA,CACA,CAAK,EACL,oDACA,cACA,gBACA,YACA,kBACA,yCACA,kFAEA,2CACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,qBACA,kCACA,MACA,4BAEA,CACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,oBACA,gBACA,QAA2C,MAC3C,OAA+B,0BAK/B,OAJA,iBAGA,yBAFA,qBAGA,WACA,qBACA,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,oBACA,qBACA,SACA,CAAa,EACb,wCACA,qCACA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,iBACA,WACA,+BACA,MAAuC,QAAQ,YAAe,kBAAwB,aAAwB,yBAAsC,IACpJ,oBACA,4BACA,CACA,CACA,CAAK,EAEL,mEACA,cACA,gBACA,YACA,kBACA,oEACA,CACA,CAAK,EACL,6DACA,cACA,gBACA,YACA,sBAKA,OAJA,YAA6C,OAC7C,sBACA,8BAEA,oCACA,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,oBACA,2DACA,CACA,CAAK,EACL,+DACA,cACA,gBACA,YACA,oBACA,sBACA,oCAEA,CACA,CAAK,EACL,yDACA,cACA,gBACA,YACA,kBAGA,QAFA,EACA,KACA,IAA6B,mBAAuB,IACpD,oBAEA,sBACA,qDAEA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,kBACA,sBACA,6BAEA,CACA,CAAK,EACL,6DACA,cACA,gBACA,YACA,iBACA,sBACA,+BAEA,CACA,CAAK,EACL,CACA,CAAC,GACD,sCAAgD,QAAM,uCACtD,mBAA8B,QAAM,qBACpC,gBAA2B,QAAM,kBAQjC,YACA,uBACA,uBACA,yBACA,mBACA,0BACA,sBACA,kBACA,yBACA,yBACA,6BACA,gCACA,kCACA,sBACA,kCACA,yBACA,uBACA,iCACA,8BACA,4BACA,kDACA,yBACA,6BACA,0BACA,CAAC,UAA8B,EAK/B,wBAEA,kBAOA,aACA,cACA,8BACA,cACA,gBACA,YACA,YACA,CAAS,EAET,gCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,gCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,gCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,gCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,qCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,mCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,WACA,CAmFA,OAlFA,4CACA,cACA,gBACA,YACA,oBAEA,OADA,UACA,oCAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBAEA,oCACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,gBAEA,CAAK,EACL,8CACA,cACA,gBACA,YACA,oBAEA,GADA,MACA,CACA,IAtvEA,EAsvEA,EApvEA,GAFA,EAsvEA,GApvEA,KAqvEA,gCA4/BA,GA1/BA,MAEA,CACA,gCACA,CACA,CAAK,EACL,wCACA,cACA,gBACA,YACA,kBACA,6BAA2C,kBAAsB,UAEjE,CAAK,EACL,0CACA,eAEA,qKACA,CAAS,CACT,cACA,eACA,CAAK,EACL,oDACA,eAEA,yLACA,CAAS,CACT,cACA,eACA,CAAK,EACL,kDACA,eAEA,qLACA,CAAS,CACT,cACA,eACA,CAAK,EACL,kDACA,eAEA,qLACA,CAAS,CACT,cACA,eACA,CAAK,EACL,CACA,CAAC,GACD,IACA,mBAA4B,QAAM,qBAOlC,kBAEA,cACA,2BAOA,OANA,+CACA,cACA,gBACA,YACA,YACA,CAAS,EACT,CACA,CAuFA,OAjGA,OAWA,4CACA,cACA,gBACA,YACA,oBAEA,OADA,aAAuC,6BACvC,iCACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBAEA,OADA,qCACA,aACA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,8BACA,eAmwLA,GAlwLA,yBAEA,CAAK,EACL,wDACA,cACA,gBACA,YACA,0BACA,oBAEA,gBAIA,oBAIA,gBACA,OACA,OACA,kCAGA,mBACA,IAGA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBAEA,GADA,6BAGA,OADA,iBACA,EAKA,GAFA,QAEA,CAF2B,CAE3B,0BA/3EA,GAFA,EAi4EA,GA/3EA,MA+3EA,CAEA,IAn4EA,EAm4EA,QAEA,OADA,iBACA,CACA,CAEA,qCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,WACA,CACA,CAAK,EACL,CACA,CAAC,IACD,mBAA+B,QAAM,qBAKrC,kBAEA,aACA,+CAqDA,OAvDA,OAIA,uDACA,cACA,gBACA,YACA,kBACA,QACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBAMA,qBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,qBAEA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBAEA,oDACA,SAEA,qCAEA,OADA,QACA,CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,WACA,CACA,CAAK,EACL,CACA,CAAC,IAOD,cACA,2CAMA,gBAEA,CAgFA,YACA,gBACA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,2CACA,cACA,gBACA,YACA,OACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,GACA,YAEA,CACA,4CACA,cACA,gBACA,YACA,kBACA,eACA,gBACA,YACA,iCAGA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,iBACA,mBACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,iBACA,mBACA,CACA,CAAK,EACL,qDACA,eACA,0BACA,CAAS,CACT,cACA,eACA,CAAK,EAEL,CAAC,GA0SD,QAqBA,gBACA,mBACA,oBACA,eACA,eACA,CAAS,EAET,yBACA,sBACA,QACA,IACA,IACA,OA0JA,gBACA,iBAEA,aACA,MAAe,QAAM,uBACrB,WA2CA,gBA1CA,KACA,IAmCA,EAnCA,wBACA,eACA,MACA,MAAmB,QAAM,uBAGzB,8BACA,YAEA,SAYA,KAOA,IAlBA,cACA,KAKA,OACA,GACA,QAEA,EAEA,YACA,KAGA,GACA,GAYA,QACA,EACA,EACA,EA3MA,MACA,QACA,CACA,IACA,oBACA,CACA,CAKA,cACA,WAEA,kBACA,EACA,oBAMA,kBACA,iBACA,MA3CA,IA4CA,IACA,OACA,UACA,cACA,OACA,KACA,mBACA,UACA,UACA,oBACA,kBACA,eACA,2CACA,cACA,mBACA,CAAS,GACT,EAGA,OAFA,kBACA,gCACA,CACA,CAmDA,iBACA,gBACA,yCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,2CACA,cACA,gBACA,YACA,OACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,SACS,EAET,mBACA,yCAIA,IAFA,QAEA,GACA,eACA,qCACA,WA2BA,OAxBA,6CACA,eACA,iCACA,CAAS,CACT,cACA,eACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,iBACA,wCACA,YAEA,yBAEA,kBACA,oBACA,yBAGA,CACA,CAAK,EACL,CACA,CAAC,GAqGD,cACA,2BACA,6CACA,KACA,kBACA,oBAlBA,GACA,IACA,wBACA,CACA,SAEA,uCACA,CACA,EAUA,OACA,CAMA,cACA,cACA,qCACA,YACA,gBAEA,OADA,OAEK,EACL,mBAAkC,kBAAyB,EAC3D,UACA,4CACA,OACA,6CACA,MACA,QACA,WACA,gCACA,iHACA,0CACA,GACA,MA4vGA,CA5vGA,EA4vGA,MACA,UACA,SACA,UACA,UACA,SACA,GAlwGA,MACA,IACA,wGACA,GACA,qFACA,IACA,IACA,CAKA,kBACA,kBAA6B,cAAwB,EACrD,CAYA,kBACA,QAAc,4BAAkD,EAMhE,cACA,8BAA2C,mBAAqB,IAChE,CAMA,gBAszBuB,SAAP,GAA2B,EAAO,EAA3B,CAA2B,WAAQ,EAAO,uBAnzBjE,SAWA,KACA,qBAAyC,eAAsB,GAC/D,cACA,sBAGA,WAtFA,EAuFA,gBAGA,uCAzFA,CADA,EA0FA,MAzFA,WACA,EACA,uEAuFA,4DACA,EARA,OAEA,EAhBA,IAEA,CAsBA,QAKA,aACA,aACA,sCACA,cACA,gBACA,YACA,SACA,CAAS,EAET,oCACA,cACA,gBACA,YACA,MAAmB,IAAU,MAC7B,CAAS,EAGT,yDACA,cACA,gBACA,YACA,MAAmB,IAAU,MAC7B,CAAS,CACT,CA0IA,OAzIA,sEACA,cACA,gBACA,YACA,kBACA,6CAEA,uDACA,CACA,CAAK,EACL,mEACA,cACA,gBACA,YACA,kBACA,gDACA,2CACA,CACA,CAAK,EACL,oDACA,cACA,gBACA,YACA,oBAEA,GADA,aAA8C,MAC9C,uBACA,mBACA,mBACA,iBAA+C,IAAU,eAEzD,wBACA,qBACA,mCACA,UACA,GACA,wCAEA,CACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,WACY,QAAM,8CAClB,6BACA,mBACA,CAAiB,CACjB,CAAa,CACb,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,0BACA,mBACA,oBACA,IACA,YAEA,UACA,qBAEA,oDAEA,CACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,WACA,QAIA,aAoBA,MAnBY,QAAO,iCAGnB,QAFA,uBACA,KACA,aAA+C,KAAQ,KACvD,WACA,iCACA,uBACA,KAD8D,GAC9D,MAEA,UACA,kBAEA,KAEA,CACA,GACA,qCAEA,CAAa,EACb,CACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,oBACA,8BACA,KAEA,mBAAmD,kCAA+C,CAClG,CACA,CAAK,EACL,6CACA,cACA,gBACA,YACA,oBACA,wBACA,MACA,YACA,2BAA4D,kCAA+C,EAC3G,iBACA,OACA,WACA,QACA,oBAEA,uJACA,gBAA4C,cAAgB,EAC5D,YACA,CACA,CACA,CAAK,EACL,CACA,CAAC,GAMD,sBACA,YACA,MACA,YAEA,iOAMA,OAJA,GACA,iBAGA,CACA,CAEA,uBACA,CAKA,sBACA,uBACA,CA6BA,cACA,wBACA,CAKA,gBAEA,CAKA,eACA,SAEA,mDAEA,mBAMA,eACA,2BACA,CAKA,cACA,0BAhDA,YACA,mCACA,yBACA,6BACA,6BACA,kBACA,CAAC,UAAsC,EA4HvC,eACA,MACA,UACA,qBACA,aACA,UACA,sBAIA,OAHA,wBACA,UACK,EACL,CACA,CA2BA,yBAKA,qBAKA,mBAAmC,EAKnC,GAAkB,QAAe,cACjC,CAAQ,SACR,CAAQ,kBACR,kBAKA,mBAEA,cAEA,OADA,aAAkC,mBAClC,kDAEA,OALA,OAKA,CACA,CAAC,QAKD,eACA,QACA,CAKA,wBAmBA,eACA,yBAAiC,QAAiB,GAClD,CAKA,sBACA,EAEA,MACA,EACA,IAHA,EAIA,CAqBA,eAEA,gCACA,SACA,IAHA,EAGA,kCACA,SAEA,+DACA,CAKA,eACA,iBACA,oBACA,sBACA,sBACA,CAKA,iBAEA,OADA,aAAkC,MAClC,SAEA,oBACA,oBACA,qBACA,oBACA,CAMA,sBAEA,CAEA,CAMA,sBAEA,CAWA,CAKA,eACA,0BACA,CAcA,uBATA,QAUA,EAVA,EAUA,EAVA,EAUA,CACA,cACA,YACA,gBACA,OACA,CAAK,CAdD,QAAkB,IACZ,QAAgB,QAC1B,4BAaA,CAiBA,kBACA,aACA,uCACA,cACA,gBACA,YACA,SACS,CACT,CAmEA,OAlEA,oDACA,eACA,6BACA,CAAS,CACT,cACA,eACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,oBACA,WAQA,OAPA,YAA6C,OAC7C,EACA,yBAGA,sBAEA,WACA,eACA,CACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,kBACA,kCACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,+BACA,MACA,yBAEA,CACA,CAAK,EACL,2CACA,cACA,gBACA,YACA,iBACA,sBACA,CACA,CAAK,EACL,0CACA,cACA,gBACA,YACA,iBAEA,QADA,KACA,IAA6B,mBAAuB,IACpD,kBAGA,sBACA,oBAA4C,qCAAiE,CAC7G,CACA,CAAK,EACL,CACA,CAAC,GAKD,cACA,aACA,4CACA,cACA,gBACA,YACA,YACA,CAAS,CACT,CAgFA,OA/EA,oDACA,cACA,gBACA,YACA,kBACA,gDACA,4BAEA,CAAK,EACL,8CACA,cACA,gBACA,YACA,sBACA,aAA6C,MAC7C,oBACA,wBAEA,4BAIA,OAHA,GACA,iCAEA,eACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,oBACA,gDACA,mBACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,oBACA,gDACA,GACA,eAEA,CACA,CAAK,EACL,2CACA,cACA,gBACA,YACA,kBACA,oBACA,6BAGA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,yBACA,CACA,CAAK,EACL,0CACA,cACA,gBACA,YACA,kBAGA,QADA,KACA,IAA6B,mBAAuB,IACpD,oBAFA,IAIA,4CACA,GACA,6BAEA,CACA,CAAK,EACL,CACA,CAAC,GAKD,eAEA,QADA,kBACA,IAAoB,WAAiB,IACrC,UACA,QACA,CAKA,iBACA,uBACA,CAwDA,iBAEA,CAkBA,mBACA,YAAiC,MAKjC,CAKA,eACA,kCACA,kBAEA,gCACA,gBAGA,eAEA,CAOA,mBAmFA,EACA,EAnFA,OAkFA,EAlFA,OAyKA,CAtFA,aAEA,MA/yCA,IAgzCA,EAvzCA,EAwzCA,MACA,6DAEA,WACA,MACA,oEAEA,OACA,OACA,KACA,YACA,kBACA,cACA,qDACA,gBACA,cACA,mBACA,EACA,YACA,kBAEA,OADA,oCACA,CAD0D,CAC1D,MAA4D,KAAkB,gBAAyB,IACvG,CACA,iCAEA,IADA,EACA,aACA,0BACA,SACA,EAGA,QAJwC,CAIxC,KACA,MACA,IAEA,oBAA0D,YAAoB,kBAC9E,oBACA,cAEA,CACA,SAEA,cACA,cAA4C,KAAY,gBACxD,CAAqB,EACrB,MACA,CACA,IAEA,CACA,cACA,MACA,IAEA,cAAwC,aAAqB,uBAC7D,CACA,GAF0F,GAE1F,GAEA,cACA,cAA4C,KAAY,gBACxD,CAAqB,EACrB,MACA,CACA,IACA,CACA,cACA,WAEA,cACA,cAA4C,KAAa,uBACzD,CAAqB,EACrB,MACA,CAEA,6CAEA,iEAEA,wBACA,CAlDA,oCACA,QAAqD,KAAkB,6BAA6C,IAkDpH,CAAS,CACT,GACA,iBACA,CAzKA,CAqOA,qBACA,IARA,kBAQA,CARA,EASA,KAEA,yCACA,EACA,wCACA,CAIA,eACA,8CACA,CAOA,eAEA,gBACA,SACA,kBAAoC,kCACpC,wBAEA,KAIA,QAEA,CAgCA,qCACA,eAEA,kBACA,mCAaA,OAZA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,CACA,CAmLA,OAnMA,OAiBA,2CACA,eACA,+CACS,CACT,cACA,eACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,+DACA,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,yBACA,8BACA,2CAEA,CACA,CACA,CAAK,EACL,4DACA,cACA,gBACA,YACA,kBACA,IACA,iCACA,CACA,SACA,SACA,CACA,CACA,CAAK,EACL,yDACA,cACA,gBACA,YACA,2BACA,+BACA,0DAEA,CACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBACA,IAq4EA,EAr4EA,OAEA,CA2HA,cAGA,QAFA,IACA,KACA,IAAqB,mBAAuB,IAC5C,oBAEA,IACA,0BAAgF,QAAmB,YACnG,cACA,iBACA,CACA,CACA,SAAoB,GAAQ,gBAC5B,CACA,IACA,mCACA,QACA,CAAkB,mBAClB,CACA,GA9IA,sBACA,gBACA,8DAEA,oBACA,yBAA6C,2CA+3E7C,EADA,EA73EA,gBA83EA,qBA73EA,oCACA,QACA,EAEA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,WACA,EACA,2BACA,qCAEA,OADA,iBACA,CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,uEAIA,OAHA,OACA,iBAEA,CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBACA,aAA+C,MAC/C,mCACA,wCACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,4CACA,OACA,oCAEA,2BACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,qBAEA,CAAK,EAkBL,wCACA,cACA,gBACA,YACA,kBACA,WACA,cACA,KACA,EACA,sCACA,QAGA,+BAAoD,2BAA+B,UAEnF,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,wCACA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,iCACA,SAEA,iCACA,8CACA,CACA,CAAK,EACL,CACA,CAAC,IAqED,8FAkCA,YACA,yBACA,iBACA,cACA,CAAC,UAA8C,EAC/C,mBAEA,gBACA,qBAA8C,IAAU,uBA8ExD,OAhFA,OAIA,yCACA,cACA,gBACA,YACA,kBAEA,sCACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,kBACA,sCACA,CACA,CAAK,EACL,4CACA,cACA,gBACA,YACA,kBACA,yCACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,oBACA,wCACA,CACA,CAAK,EACL,yCACA,cACA,gBACA,YACA,kBACA,MACA,2DACA,SACA,YACA,GAKA,oBAHA,iBAOA,OADA,yBACA,CACA,CACA,SAGA,CACA,eACA,SACA,4BACA,iBAGA,QADA,yBACA,CACA,WAGA,IA7jJA,EAIA,EAyjJA,qDACA,iBA7jJA,aAAuC,MAGvC,KA0jJA,GAzjJA,EACA,WACA,0BAwjJA,CACA,MA4yGA,GA5yGA,EAEA,OADA,cACA,WACA,CAnBA,gEAoBA,CACA,CAAK,EACL,CACA,CAAC,CAAC,IAAa,EAKf,eAEA,kBACA,aAA2C,MAC3C,2BAiCA,OAhCA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,gBACS,EACT,kDACA,cACA,gBACA,YACA,YACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,YACS,EACT,4CACA,cACA,gBACA,YACA,SACS,EACT,6BACA,qBACA,CACA,CA0SA,OA/UA,OAsCA,2CACA,cACA,gBACA,YACA,kBACA,yEACA,uCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBAEA,OADA,gCACA,eACA,CACA,CAAK,EACL,8DACA,cACA,gBACA,YACA,iBACA,oCAGA,SACA,YA/LA,OAEA,IADA,IACA,kBACA,SACA,SAEA,MACA,YACA,IACA,0BAA4G,QAAyB,YACrI,cACA,WACA,QACA,CACA,CACA,SAAwB,GAAQ,gBAChC,CACA,IACA,mCACA,QACA,CAAsB,mBACtB,CACA,CAIA,OAHA,iBACA,UAEA,EACA,EAoKA,kBACA,6BACA,0BACA,SACA,gCACA,0NAEA,4BACA,CAAiB,SACjB,GACA,0BACA,+BAGA,0BAGA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,aAA8C,MAC9C,sBACA,KAIA,OAHA,mCACA,mCACA,CAAa,EACb,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,kBACA,0BACA,CACA,CAAK,EACL,yDACA,cACA,gBACA,YACA,oBACY,QAAe,YAC3B,OACA,qCACA,WACA,mCACA,WACA,WACA,SACA,CAAiB,CACjB,CAAa,EACD,QAAS,oBACT,QAAO,kBACnB,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBAEA,MAAmB,QAAM,eACzB,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,oBACA,8BACA,MACA,+BACA,QACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,mBACA,SACA,kBAAkC,UAAc,EAChD,aACA,aACA,eACA,aAEA,iBAEA,OADA,gBAEA,YACA,OACA,yDACA,kCAEA,KACA,WAEA,gBACA,gDACA,iCAGA,CACA,QACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,oBACA,gDACA,mBACA,SACA,uLACA,CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,SAIA,OAHA,oCACA,wBACa,EACb,CACA,CACA,CAAK,EACL,4DACA,cACA,gBACA,YACA,kBACA,SAIA,OAHA,mCACA,uBACA,CAAa,EACb,CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,kBACA,mBACA,eACA,aACA,yBACA,aACA,gBACA,0BACA,8CACA,CAAqB,GACrB,WACA,yBACA,SACA,gBACA,0BACA,eACA,CAAqB,GACrB,cAEA,0BAGA,OAFA,iBAEA,kBACA,YACA,gBACA,UACA,CAAqB,GACrB,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,sBACA,oBACA,aACA,UACA,cACA,iBACA,KACA,cACA,WAEA,CACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,oBACA,UACA,oBACA,KAIA,GAHA,yCACA,OACA,CAAa,EACb,EAEA,eACA,cACA,WAGA,mCACA,WACA,WACA,CAAa,CACb,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,iBACA,qBAEA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,kBACA,MAGA,iCACA,kDACA,CAAa,GAJb,oCAKA,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,iBACA,SACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBACA,uBACA,CACA,CAAK,EACL,CACA,CAAC,IACD,2BAAkC,QAAM,6BA6CxC,mBAEA,kBACA,aAA2C,MAC3C,2BAoBA,OAnBA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,cACS,EACT,4CACA,cACA,gBACA,YACA,SACS,EACT,qBACA,CACA,CAgQA,OAxRA,OAyBA,2CACA,cACA,gBACA,YACA,kBACA,yEACA,uCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,sBACA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,aAAuC,MACvC,sBACA,KAKA,OAJA,wBACA,UACA,iCACA,CAAa,EACb,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,kBACA,YAA8C,MAAkB,eAAiB,EACjF,OAAmB,IAAU,eAC7B,CACA,CAAK,EACL,yDACA,cACA,gBACA,YACA,oBACY,QAAkB,qBAE9B,EADA,KACA,qCACA,WACA,mCACA,WACA,WACA,SACA,CAAiB,CACjB,CAAa,EACD,QAAS,oBACT,QAAO,kBACnB,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,4BACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,oBACA,gBACA,0BACA,8BACA,yBACA,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,mBACA,kBAAkC,mBAA4B,EAC9D,sBACA,kBACA,eACA,aAEA,kCACA,YACA,kDACA,MACA,WAEA,iBAEA,KACA,cAEA,yCACA,8CAAqK,WAAqB,GAC1L,MACA,WAEA,WAEA,cAA6D,WAAuB,IACpF,mCAIA,CACA,QACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,uCAAiE,kBAA4B,CAC7F,CACA,CAAK,EACL,4DACA,cACA,gBACA,YACA,kBACA,SAIA,OAHA,mCACA,0BACA,CAAa,EACb,CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,kBACA,mBACA,eACA,aACA,yBACA,aACA,gBACA,0BACA,8CACA,CAAqB,GACrB,cAEA,kDACA,yBACA,aACA,QACA,iBACA,mCAA2E,kBAAuB,CAClG,CAAyB,IAEzB,2BAA0D,KAAQ,IAClE,aACA,YACA,oBACA,+BACyB,IACzB,YAAoC,eAAuB,IAC3D,aACA,SACA,oBACA,0BACA,eACA,CAAyB,IACzB,MACA,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,sBACA,oBACA,6BACA,aACA,cACA,aACA,KACA,WACA,sBACA,KACA,cACA,aAEA,CACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,oBACA,UACA,cACA,UACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,iBACA,qBAEA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,kBACA,MAGA,sBACA,kDACA,CAAa,GAJb,8BAKA,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,iBACA,SACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBACA,iCACA,CACA,CAAK,EACL,CACA,CAAC,IA8BD,uBAEA,QADA,KACA,KAAqB,KACrB,IAvgEA,EAugEA,gBACA,OACA,gBACA,UAKA,GA9gEA,EADA,EA6gEA,aA5gEA,oBA6gEA,kBACA,MAIA,MAYA,MAWA,WAEA,uBAEA,CAIA,QAFA,SAEA,IAA4B,WAAqB,IACjD,eACA,mBACA,KACA,CAEA,KACA,oBACA,eACA,MA5BA,CAGA,0BAEA,gOAEA,KACA,kBACA,eACA,OApBA,KACA,cACA,gBAGA,qCAEA,QACA,SAZA,KA2CA,CACA,eACA,CAIA,uBAEA,OAmBA,MAlBA,WAEA,SACA,YAGA,GAFA,kBAEA,8BAEA,OADA,iBACA,CAEA,QAEA,EACA,qBAGA,2BACA,IAUA,OARA,WACA,gBAGA,qCAEA,SAEA,CACA,CAIA,iBAEA,cACA,SAGA,SACA,YACA,uBACA,CAEA,kBACA,SAGA,qBACA,SAEA,gCAEA,4BACA,uBACA,OACA,SACA,2BACA,CAvJA,2BAAoC,QAAM,6BAkK1C,4BACA,yBACA,cACA,0BACA,CACA,QACA,sBACA,aAAkB,CAClB,eACA,EAyDA,eAEA,cACA,IA3DA,EACA,EACA,EAyDA,qCA0FA,OAzFA,iCACA,cACA,gBACA,YACA,eACS,EAIT,wCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,wCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,kBACA,0BAA+C,OAAY,CAC3D,CACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,kBACA,0BAA+C,aAAwB,CACvE,CACA,CAAS,EACT,8CACA,cACA,gBACA,YACA,kBACA,4BACA,EAGA,mBACA,yBAA4D,eAC5D,CAAqB,EAJrB,mBAAmD,eAA4B,CAK/E,CACA,CAAS,EACT,+CACA,cACA,gBACA,YACA,kBACA,6BACA,EAGA,mBACA,0BAA6D,eAC7D,CAAqB,EAJrB,mBAAmD,gBAA8B,CAKjF,CACA,CAAS,EACT,sBAEA,cAhJA,cADA,EAiJA,cA/IA,UACA,sBACA,YACA,qGAEA,QACA,CAAK,EAEL,uBAEA,UACA,6GAGA,2CACA,aACA,kFAGA,cACA,WACA,oJAGA,SACA,iBA4yBA,GACA,iBACA,aACA,SACA,cACA,SACA,MAD2B,SAE3B,SACA,cACA,qBACA,OAfA,EAgBA,CACA,6DACA,EAzzBA,WAGA,mBACA,YAA2C,OAE3C,mBACA,mBAGA,cAUA,mJAEA,QACA,CAAK,KAAa,MAgGlB,aACA,EADkC,aAClC,2BACA,kDACA,CACA,CAwbA,OArhBA,OA8FA,6DACA,cACA,gBACA,YACA,iBACA,aAQA,OAPA,+BACA,yBACA,KACA,gJACA,GACA,CACA,CAAa,EACb,CACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,kBACA,cACA,uBACA,2BAA4C,+BAC5C,0DACA,+CACA,kDACa,CACb,CACA,CAAK,EACL,6CACA,cACA,gBACA,YACA,kBACA,WAKA,6BAA0C,cAJ1C,YAEA,OADA,6BACA,CACA,EAC0C,CAAmC,CAC7E,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,oBACA,WAEA,UACA,oFAGA,kDACA,qBACA,kFAGA,UACA,wHAEA,UACA,yHACA,WAEA,OACA,cACA,QACA,aACA,wBACA,uBACA,CACA,CAGA,wBACA,CAD2D,CAC3D,SACA,qCACA,oBACA,cACA,QACA,SACA,CAAa,CACb,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,kBACA,WACA,wBACA,+GAMA,6BAA0C,cAJ1C,YAEA,OADA,mCACA,CACA,EAC0C,CAAkC,CAC5E,CACA,CAAK,EACL,8DACA,cACA,gBACA,YACA,oBACA,WAEA,UACA,yFAEA,kDACA,qBACA,uFAEgB,QAAG,UACnB,CAAa,CACb,CACA,CAAK,EACL,4CACA,cACA,gBACA,YACA,kBACA,WAaA,6BAA0C,cAZ1C,YACA,sDA9+LA,KACA,SACA,0EACA,YACA,4DACA,8CAA6D,WAAc,IAC3E,uEACA,kBAEA,QACA,EAo+LA,+BACA,eACA,4JAOA,OANA,GACA,gCACA,GACA,wBACA,GACA,0BACA,CACA,EAC0C,CAA6B,CACvE,CACA,CAAK,EACL,2CACA,cACA,gBACA,YACA,kBACA,WAKA,6BAA0C,cAJ1C,YAEA,OADA,2BACA,CACA,EAC0C,CAAiC,CAC3E,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,oBACA,WAEA,UACA,gFAEA,kDAEA,qBACA,+EAGA,IALA,EAKA,uCACA,aACoB,QAAgB,QAChB,QAAc,UAAe,IAAa,IAAQ,UAEtE,8BACA,qBAGA,kFAEA,CAAa,CACb,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBAIA,oBAHA,KACA,EACA,kCAIA,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,aAA8C,MAC9C,aACA,KAIA,OAHA,4BACA,mCACA,CAAa,EACb,CACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,kBACA,YAA8C,MAAkB,eAAiB,EACjF,OAAmB,IAAU,eAC7B,CACA,CAAK,EACL,yDACA,cACA,gBACA,YACA,oBACA,oBACA,6BACgB,QAAe,aAC/B,CAAa,EACb,uCAA2D,YAAkB,IACjE,QAAS,oBACT,QAAO,kBACnB,CACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBAGA,SADA,EACA,QACA,SACA,kBAAkC,UAAkB,EACpD,2BAMA,OAJA,IACA,IAPA,EAOA,UAPA,EAQA,uCARA,EAQA,eARA,CAWA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,kBAGA,SADA,EACA,QAEA,GADA,2BAKA,4CACA,aACA,aACA,gBACA,0BACA,UACA,CAAa,IACb,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,WACA,KAIA,OAHA,6BACA,2BACA,CAAa,EACb,CACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,oBAEA,2BACA,yCACA,IAHA,EAGA,EAAsB,QAAkB,kBACxC,gDACA,MACA,mDACA,QACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBACA,UACA,aAA+C,OAC/C,eAOA,CANA,+BAE2B,QAAO,kBAClC,iBACA,kCACa,EACb,GACA,mCAEA,CACA,CACA,CAAK,EACL,4DACA,cACA,gBACA,YACA,kBACA,SAIA,OAHA,mCACA,uBACA,CAAa,EACb,kCACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,sBACA,qCACA,+DAEA,0BAEA,CAAK,EACL,mDACA,cACA,gBACA,YACA,oBACA,UACA,wCACA,6BACA,sBACa,CACb,CACA,CAAK,EACL,+DACA,cACA,gBACA,YACA,kBACA,wBACA,yBACA,CACA,CAAK,EACL,gEACA,cACA,gBACA,YACA,kBACA,gCACA,EACA,eACA,CACA,CACA,CAAK,EACL,kDACA,cACA,gBACA,YACA,kBAEA,OADA,QACA,mBAEA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,WACA,2CACA,MAGA,qCACA,4DACA,CAAa,GAJb,oCAKA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,WACA,uCAAwD,4BAAwC,CAChG,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,WAEA,SAAuB,EACvB,mCAAwD,yCAAuD,UAAU,GACzH,GAAmB,CACnB,CACA,CAAK,EACL,wDACA,cACA,gBACA,YACA,iBACA,SACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,oBACA,uBACA,CACA,CAAK,EACL,CACA,CAAC,IACD,2BAAoC,QAAM,6BAyE1C,mBAEA,oBACA,aAAsC,MACtC,2BAoBA,OAnBA,iCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,UACA,CACA,CAqCA,OA7DA,OAyBA,8CACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,sBACA,CACA,CAAK,EACL,uDACA,cACA,gBACA,YACA,kBACA,0BACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,0BACA,OA5lGA,GA8lGA,2EACA,yCACA,CACA,CAAK,EACL,CACA,CAAC,IAcD,wCAAqE,yBAA+B,EAcpG,wCAAqE,yBAA+B,EAapG,0CAAwE,aAAsB,EAa9F,sCAAkE,OAhsFlE,OAgsFkE,UAhsFlE,IAgsFkE,CAAoB,EAatF,wCAAqE,OAtsFrE,gBAssFqE,GAAqB,EAc1F,0CAAwE,0BAAgC,EAIxG,oCAAmE,gBAAoB,EAIvF,8CAAkF,kBAAyB,EAC3G,oCAAyE,4CAAoD,aAAiB,uCAA+C,EAC7L,2BACA,8BACA,EAqDA,mBAEA,cACA,2CAcA,OAbA,iCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,gBACS,EACT,UACA,CACA,CA4BA,OA7CA,OAkBA,iDACA,cACA,gBACA,YACA,wBACA,sBACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,iCACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,2BACA,sBA7xGA,GAgyGA,mEACA,CACA,CAAK,EACL,CACA,CAAC,IAiBD,eAGA,gBACA,CAWA,mBAEA,oBACA,2BAmBA,OAlBA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,sCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,CACA,CAgEA,OAtFA,OAuBA,2CACA,eACA,wCACS,CACT,cACA,eACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBAEA,yCACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,wCACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,kCACA,cACA,SACA,mCACA,mBAr4GA,GAs4GA,uBAGA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,uCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,qBAEA,CAAK,EACL,CACA,CAAC,IAsED,eAEA,kBACA,2BAuBA,OAtBA,kCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,uCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,kCACA,cACA,gBACA,YACA,QACA,CAAS,EACT,KAA6B,2BAAoC,IACjE,2BACA,SACA,cACA,CACA,CA4GA,OAtIA,OA2BA,2CACA,eACA,cAIA,OAHA,gCACA,WACa,EACb,CACA,CAAS,CACT,cACA,eACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,oCAAyD,6BAAwC,CACjG,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,sCAA8D,oBAA4B,iBAC1F,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,mCACA,MACA,4DACA,CADqF,MACrF,sBACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,sDACA,MACA,4DACA,CADqF,MACrF,oBACA,CACA,CAAK,EACL,mDACA,cACA,gBACA,YACA,2BAEA,iBACA,oBAIA,EACA,QACA,EAEA,+BAAyD,aAAoC,mBAAyB,eAAwB,EAG9I,6BAA0D,eAAwB,CAElF,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,oBACA,yCAIA,QAFA,KACA,IACA,IAA4B,qBAAwB,KAEpD,MADA,eACA,cACA,iBACA,eACA,OAplHA,EAslHA,IACA,MAEA,SAEA,QACA,MA5lHA,GA8lHA,yDACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,mBAEA,CAAK,EACL,CACA,CAAC,IAQD,eAEA,QADA,KACA,IAAqB,mBAAuB,IAC5C,oBAFA,IAIA,gBACA,wBAWA,cAVA,sBAAiD,cAAmB,kBAUpE,IACA,CAeA,mBAEA,kBACA,gCAmBA,OAlBA,oCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,0CACA,cACA,gBACA,YACA,OACA,CAAS,EACT,CACA,CAmFA,OAzGA,OAuBA,2CACA,eACA,sCACS,CACT,cACA,eACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,mCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,sCACA,0CACA,yCACA,CACA,yCACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,uFACA,EACA,wCACA,CACA,CAAK,EACL,kEACA,cACA,gBACA,YACA,iBACA,4CACA,qBACA,mBAMA,MAHA,uCACA,UAEA,CACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,2BAEA,kCAtuHA,GA0uHA,2BACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,wCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBACA,qBAEA,CAAK,EACL,CACA,CAAC,IA2DD,mBAEA,OA5DA,cAEA,8BACA,4HAYA,EA4CA,KACA,iBACA,CACA,gBAYA,iBACA,eAQA,eAEA,eACA,CAaA,mBAEA,gBACA,2BAaA,OAZA,uCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,oCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,CACA,CA4FA,OA5GA,OAiBA,2CACA,eACA,mDACS,CACT,cACA,eACA,CAAK,EACL,gDACA,cACA,gBACA,YACA,kBACA,mBACA,aACA,IACA,oBACA,CACA,SACA,+BAEA,cAEA,OACA,CACA,iBACA,+FACA,GAGA,iBAEA,CACA,qBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,+CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,6CACA,CACA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,0BACA,oCACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,iCACA,EAIA,gBA17HA,EA27HA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,0BACA,gCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,iBAEA,OADA,qBACA,CACA,CACA,CAAK,EACL,CACA,CAAC,IA8CD,eAEA,gBACA,2BAiDA,OAhDA,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,aACS,EACT,sCACA,cACA,gBACA,YACA,UACA,CAAS,EACT,2CACA,cACA,gBACA,YACA,MAAmB,IAAU,QAC7B,CAAS,EACD,QAAI,YACZ,mCACA,mCACA,kBACA,2DACA,CAAiB,CACjB,CAAS,YACT,0BAA0C,QAAM,aAChD,eACA,sCACA,UAEA,cAEA,uBACA,CACA,aACA,2BACA,gBACA,EACA,CACA,CAAiB,CACjB,CAAa,EACb,CAAS,EACT,CACA,CAkDA,OAtGA,OAqDA,8CACA,cACA,gBACA,YACA,iBACA,oCACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,WACA,mBACA,4CAEA,sBAGA,OAFA,6BACY,QAAI,YAAe,iBAAuB,YAAgB,gEAA8E,EACpJ,CACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,2BACA,gBACA,8BAEA,MAnlIA,GAolIA,qDAGA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,+BACA,iBACA,QACA,kDAEA,wCACA,CACA,CAAK,EACL,CACA,CAAC,IAMD,eAEA,cACA,iEAaA,OAZA,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,eACS,EACT,CACA,CA+BA,OA/CA,OAiBA,8CACA,cACA,gBACA,YACA,iBACA,6BACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBAEA,sBACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,2BACA,MAGA,aACA,2BAxpIA,GAqpIA,uDAKA,CACA,CAAK,EACL,CACA,CAAC,IACD,UAqEA,cACA,gBAyBA,GAxBA,yCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,mCACA,cACA,gBACA,YACA,YACA,CAAS,EACT,gDACA,cACA,gBACA,YACA,YACA,CAAS,EACT,MACA,uBAEA,SACA,YACA,0BACA,+EACA,+BACA,WACA,kFAEA,kBACA,MAEA,4FAEA,CAgCA,OA/BA,6DACA,cACA,gBACA,YACA,kBACA,MAklBA,GAllBA,gBACA,SACA,qDACA,4BACA,kDACA,sBAEA,iCACA,MACA,sKAEA,yBACA,OACA,uBACA,CACA,CACA,CACA,CAAK,EACL,mDACA,eAEA,OADA,wCACA,kCACS,CACT,cACA,eACA,CAAK,EACL,CACA,CAAC,GAKD,eAEA,cACA,2BAEA,OADA,qCACA,CACA,CACA,OANA,OAMA,CACA,CAAC,QAKD,eAEA,gBACA,yDAmBA,OAlBA,sCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,yCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,kBACS,EACT,CACA,CAqKA,OA3LA,OAuBA,8CACA,cACA,gBACA,YACA,iBACA,gBACA,CACA,CAAK,EACL,sDACA,cACA,gBACA,YACA,kBACA,0CACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,aA72IA,GA+2IA,uEACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,wBAIA,eACA,iBAGA,oBACA,GAGA,oBACA,QACA,SACA,qCACA,YACA,uBACA,sBACA,aACA,QACA,YACqB,CACrB,CAAiB,CACjB,yBAn3CA,CACA,GADA,EAo3CA,SAn3CA,qBAo3CA,wBAGA,sBACA,YACA,YACyB,CAEzB,CACA,CAAa,EACb,CACA,CAAK,EACL,0DACA,cACA,gBACA,YACA,oBACA,WAEA,mBACA,MAGA,YACA,gBACA,eAhNA,GACA,UACA,qBACA,eACA,qBACA,cACA,SACA,MACA,CACA,EAuMA,GACA,GAGA,0BACA,EACA,mCACA,oCACA,kBACA,IACA,GACA,EACA,CACA,CAAK,EACL,qEACA,cACA,gBACA,YACA,sBACA,IAIA,EAJA,OACA,uBAMA,0CACA,GACA,GAEA,CAAa,EACb,kBAEA,GACA,IAGA,eACA,mBACA,mBAEA,EACA,aAGA,wCA+YA,GA/YA,IAaA,8BALA,GACA,uDAOA,CACA,uBAEA,OAGA,UAEA,2DAEA,UACA,2CAEA,CAAqB,EAGrB,wCACA,KACA,CAAiB,GAEjB,CACA,CAAK,EACL,CACA,CAAC,IAKD,eAEA,gBACA,6BACA,CAuDA,OA1DA,OAIA,8CACA,cACA,gBACA,YACA,kBACA,aAGA,SADA,YACA,cAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBAEA,OADA,cACA,WAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,WAh3OA,GAi3OA,GAj3OA,WAk3OA,EACA,4BACA,kBAGA,OAFA,SACA,iDACA,CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,kCACA,WACA,gBACA,yBACA,uBAEA,OADA,iBACA,CAEA,CACA,qCAEA,OADA,QACA,CACA,CACA,CAAK,EACL,CACA,CAAC,KAKD,eAEA,kBACA,6BAOA,OANA,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,CACA,CAoDA,OA9DA,OAWA,8CACA,cACA,gBACA,YACA,kBACA,aAGA,OADA,kEAEA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,qBAEA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,WACA,yCACA,EACA,kBAEA,OADA,uDACA,CACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,WACA,yCACA,EACA,mBACA,eACA,kBAEA,OADA,iBACA,EAEA,qCAEA,OADA,QACA,CAD2B,CAG3B,CAAK,EACL,CACA,CAAC,KAKD,iBAQA,gBACA,IACA,gBACA,cACA,kBAMA,UACA,UACA,UACS,IAGT,WAEA,CA2CA,mBAEA,gBACA,2BAaA,OAZA,qCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,mBACS,EACT,CACA,CAkCA,OAlDA,OAiBA,iDACA,cACA,gBACA,YACA,wBACA,+BACA,0FACA,sBACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBAEA,qBACA,qIAEA,OADA,iBACA,CACA,CACA,CAAK,EACL,qDACA,cACA,gBACA,YACA,2BACA,0BACA,8FA3vJA,EA8vJA,CACA,CAAK,EACL,CACA,CAAC,IAKD,eAEA,aACA,+CAOA,OANA,iCACA,cACA,gBACA,YACA,mBACS,EACT,CACA,CASA,OAnBA,OAWA,8CACA,cACA,gBACA,YACA,iBACA,kBACA,CACA,CAAK,EACL,CACA,CAAC,KAKD,eAEA,aACA,sDAkBA,OApBA,OAIA,iDACA,cACA,gBACA,YACA,kBACA,qBAEA,CAAK,EACL,8CACA,cACA,gBACA,YACA,iBACA,wBACA,CACA,CAAK,EACL,CACA,CAAC,KAkBD,UAcA,UAqBA,eACA,4CACA,CA8DA,mBAEA,cACA,gCAaA,OAZA,mCACA,cACA,gBACA,YACA,OACA,CAAS,EACT,iCACA,cACA,gBACA,YACA,eACS,EACT,CACA,CAiEA,OAjFA,OAiBA,8CACA,cACA,gBACA,YACA,iBACA,iBAEA,CAAK,EACL,qDACA,cACA,gBACA,YACA,oBACA,gCACA,OA38JA,GA48JA,kDACA,EACA,oEA98JA,EAi9JA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,kBACA,6CACA,CACA,CAAK,EACL,iDACA,cACA,gBACA,YACA,wBACA,mCACA,EACA,mDACA,sBACA,CACA,CAAK,EACL,+CACA,cACA,gBACA,YACA,wBACA,oCAEA,mBACA,eACA,qCAGA,OADA,iBACA,EAGA,QACA,gDACA,EACA,iCAEA,OADA,QACA,CAD2B,CAG3B,CAAK,EACL,CACA,CAAC,IAGD,IACA,YAljDA,cACA,IAOA,0BAPA,wBAOA,gBAAgG,gBAA8B,QAG9H,MAFA,oBACA,WACA,CACA,EAuiDA,MAliEA,WAEA,QADA,KACA,IAAqB,mBAAuB,IAC5C,kBAOA,eAA2B,KAF3B,iDAE2B,WAD3B,aAC2B,CAAoC,CAC/D,EAwhEA,QAhhEA,WAEA,QADA,KACA,IAAqB,mBAAuB,IAC5C,kBAFA,IAKA,wBACA,0BAUA,OATA,GACA,UAQA,EACA,qBACA,0BACA,uBACA,wBACA,4BACA,yBACA,kEACA,CAAa,CACb,0BACA,oEACA,CACA,CAAS,CACT,CAAK,EACL,QACA,EAi/DA,OAjGA,YACA,gBACA,EAgGA,aACA,cAzUA,cACA,iBAAyD,KAAc,0BACvE,oBACA,mBAEA,aACA,EAAW,UACX,2BACA,EAGA,KAEA,EA6TA,SACA,YACA,WACA,SACA,UA/qCA,YAEA,eACA,EA6qCA,WAxmDA,WAEA,QADA,KACA,IAAqB,mBAAuB,IAC5C,kBAFA,IAIA,yDACA,OACA,OACA,OACA,KACA,YAAyB,yDAMzB,OAHA,QAGA,eACA,EAwlDA,UACA,WACA,UACA,WACA,SACA,UACA,KAv0DA,GAw0DA,IAlmGA,YACA,kDACA,EAimGA,MA9xFA,YAEA,uCACA,EA4xFA,OAh1BA,mBACA,oBACA,GACA,KACA,UAEA,QACA,EA00BA,cACA,oBACA,KAzjCA,cASA,cARA,sDACA,uBAQA,EAgjCA,KAriCA,cAEA,kBACA,EAmiCA,aACA,QACA,kBAtmHA,gBAYA,oBACA,CA0lHA,gCCx3QA,cACA,kDAAyF,IAAa,IACtG,0BAOA,+MACA,4HA0nGA,kBACA,gCACA,KACA,QACA,IACA,eACA,WAEA,EAAM,OACN,IACA,CACA,MACA,CACA,MACA,eACI,MACJ,WACI,MACJ,SACI,OACJ,oBACA,mBAEA,KACA,4BAEA,KACA,aACA,eAEA,OACA,MAEA,IAEA,4HA3pGA,IA8mCA,IAkiBA,EAoBA,EAohIA,EAxrLA,KACA,mBACA,+BACA,WAEA,2BACA,OAEA,KAAmB,IAAN,GAAM,CACR,GAAM,CAEjB,yBACA,KAEA,CACA,CAGA,oBACA,kCACA,wBACA,mBACA,KACA,iBACA,SACA,iBACA,gCACA,oBACA,aACA,GACA,EAA2K,EAAnK,MAAqC,GAAG,CAA2H,UAE3K,CAYA,cACA,SACA,kBACA,MAIA,OADA,KACA,uBACA,CACA,CACA,mBACA,cACA,0BACA,CACA,cAEA,OADA,UAEA,aACA,aACA,aACA,QACA,CACA,QACA,CACA,cACA,mCACA,CACA,cACA,SACA,SAEA,+BACA,WACA,SAEA,iEACA,4CACA,CAEA,cACA,yCACA,KAGA,mEAIA,CACA,kBACA,OACA,cACA,YACA,gBACA,OACA,CAAG,CACH,CACA,kBACA,OACA,cACA,YACA,gBACA,OACA,CAAG,CACH,CACA,gBACA,iBAEA,OADA,kBACA,YACA,uBAEA,CAIA,cACA,kEACA,CAaA,cACA,kEACA,CACA,4CAoBA,6EACA,4EACA,EAAE,2BAUF,cACA,8CACA,CACA,gBACA,iCACA,CAEA,oDAEA,SAKA,OAHA,yBACA,WACA,CAAG,EACH,CACA,EAIA,kBAMA,OALA,EACA,KAEA,MAEA,CACA,CAEA,gBACA,oCACA,uBAAgC,IAAO,cACvC,QACA,CACA,gBACA,YAAkB,WAAc,KAChC,WACA,qGAoDA,YACA,eAXA,KACA,mCACA,4BACA,eACA,6BACA,8BACA,gEACA,CACA,qCACA,EAEA,YACA,+BACA,EAvDA,SACA,CACA,CACA,kBACA,0EACA,WACA,CAAG,GACH,CACA,gBACA,sEACA,sCACA,iCA6CA,KACA,MACA,iCAFA,QAGA,UAAc,8BACd,qKAJA,QAIA,MACA,CACA,EAnDA,sCACA,SACA,QACA,kBACA,oBACA,OACA,EAAQ,CACR,QACA,aAEA,CACA,CACA,wJACA,CACA,aACA,wDACA,YAAoB,mBAAsB,KAC1C,mBACA,oBAA0B,qCAC1B,CACA,QACA,EAAG,sBACH,CACA,gBACA,uEACA,CACA,gBACA,0EACA,sBACA,EAAG,KACH,CAuBA,wCAMA,cAQA,qBAPA,cACA,QACA,8BAEA,QAEA,EACA,EACA,CAKA,kBACA,QACA,UAAiE,QAUjE,EA6PA,sBA5PA,WAEA,CAwBA,cACA,kDAQA,oCACA,aAKA,cACA,YACA,GAA2E,MAA7D,EAEd,IAFmD,CAEnD,EAFsD,CAAqB,EAE3E,QACA,cACA,wBACA,uBACA,0CAEA,kBAEA,mBACA,YACA,CAEA,kBAiCA,OAhCA,kBACA,YACA,+BACA,UACA,CAAO,CAEP,EACA,mBACA,aACA,gCACA,UACA,CAAO,CAEP,EAKA,4BACA,eACA,EAIA,2BACA,KACA,SACA,IACA,EACA,sBACA,iBACA,EACA,MACA,sBACA,eACA,OAjNA,MAiNA,+BACA,CAAK,CACL,gBACA,mDACA,CACA,CAAG,EACH,6BACA,eACA,OAzNA,MAyNA,qCAzNA,CA0NA,CAAK,CACL,gBACA,0DACA,CACA,CAAG,EACH,gBACA,eACA,uCACA,CAAK,CACL,gBACA,iDACA,CACA,CAAG,EACH,CAAC,GACD,yBACA,gCACA,mBACA,kBACA,kBACA,YACA,MAEA,YACA,MAEA,eAQA,OANA,OAu1EA,GAHA,OAn1EA,IAq1EA,QAn1EA,OACA,QAEA,CACA,CAiBA,OAEA,WAdA,cACA,cACA,EAaA,QATA,qBACA,UACA,eAEA,gCACA,CAMA,EAEA,0BA2mFA,GAzmFA,GACA,EAGA,iBACA,YACA,MACA,CAAK,EAEL,KACA,oBACA,MACA,CAAK,EAEL,KACA,UACA,MACA,CAAK,EAEL,KACA,UACA,MACA,CAAK,EAEL,mCAOA,EANA,KACA,MAEA,OAIA,CAoCA,eAEA,QACA,CAWA,kBA4BA,iBACA,OACA,kBACA,WACA,SACA,WACA,kBACA,CACA,CACA,qBAGA,oCACA,yCAGA,iBACA,yCAGA,eAGA,SAEA,IAfA,EAeA,oBAEA,OADA,SACA,CACA,CACA,qBACA,qBACA,+BACA,CACA,iBAIA,IAuBA,EAvBA,SACA,SACA,mBACA,OACA,cACA,YACA,8HACA,QACA,WACA,YAEA,IADA,EACA,IAQA,OAPA,OACA,SAEA,+BAEA,CADA,iBACA,iBAEA,CACA,EAEA,aAEA,OACA,SAEA,kCACA,aAEA,MADA,KACA,QADA,KAEA,mBAFA,IAGA,KACA,CAAO,EAEP,QAEA,0JACA,CAQA,oBAEA,GAEA,YACA,uBAXA,kBACA,QAaA,IALA,cAOA,EAFA,UAKA,OAJA,+BAEA,2CAEA,CACA,6HAEA,qEAGA,kCAEA,cAGA,WACA,CACA,CAEA,iBACA,OACA,kBACA,WACA,SACA,WACA,kBACA,CACA,CACA,qBAGA,iBACA,yCAIA,2EACA,8BACA,SAGA,eAGA,SAEA,IAjBA,EAiBA,uBAEA,OADA,SACA,CACA,CACA,qBAEA,IADA,EACA,wDACA,+BACA,CACA,iBAKA,IAJA,EAIA,SACA,mBAYA,OAXA,OACA,UAEA,kCACA,aAEA,MADA,KACA,QADA,KAEA,iBACA,IAHA,CAGA,IACA,CAAK,EAEL,CACA,CAQA,sBAEA,GACA,YACA,uBAEA,EAZA,gBAYA,EAXA,MAYA,IAMA,EANA,UAYA,OAVA,OACA,UAEA,GAKA,EAFA,0CAEA,eAEA,CACA,QAGA,kCAEA,cAGA,WACA,CACA,CAEA,iBACA,OACA,kBACA,WACA,SACA,WACA,kBACA,CACA,CACA,mBACA,wCACA,CACA,qBAEA,OA0BA,IA3BA,CA2BA,gBACA,MA3BA,gCAAqD,gBACrD,UACA,UACG,IACH,CACA,iBAIA,WACA,SAWA,MAVA,qBACA,WACA,kBACA,MAA6B,aAC7B,MACA,aACK,CACL,iBAA4G,EAAxE,MAAqC,GAAG,CAAgC,sBAC5G,0BACA,CAAG,EACH,WACA,yCACA,CACA,CASA,iBACA,OACA,kBACA,WACA,SACA,WACA,kBACA,CACA,CACA,mBACA,wCACA,CACA,yBACA,IAEA,OAoDA,IArDA,CAqDA,gBApDA,iGACA,CACA,iBAOA,WACA,SACA,SAQA,cACA,gBAEA,IADA,IACA,WACA,iEAA4Q,WAAzE,MAAqC,GAAG,CAAiC,gBAC5Q,mBACA,QACA,CACA,iBACA,OACA,eAIA,OAHA,aACA,yBAEA,kCACA,CAAO,CACP,gBAIA,OAHA,aACA,UAEA,oCACA,CAAO,CACP,iBAIA,OAHA,aACA,UAEA,CACA,CACA,CAGA,CASA,YACA,eACA,OACA,gBAJA,OAKA,WACA,SACA,WACA,kBACA,CACA,CACA,qBAGA,SACA,yBAGA,UAEA,IARA,IAyBA,EAEA,EAaA,EAhCA,gCAEA,cACA,4BACA,mDACA,KACA,CAAO,OAGP,OACA,gBACA,KACA,CAAK,EACL,EACA,CAEA,oDAEA,WAGA,CADA,iDACA,eAEA,kDACA,eAKA,6DAMA,MAJA,iEAEA,uDAEA,gBACA,CACA,yBACA,IAgBA,SAdA,MACA,oBAGA,MAEA,qBACA,mDACA,0BACA,CAAK,KAIL,iEAEA,uDAGA,CADA,wDACA,iBACA,CACA,iBACA,6DACA,CAQA,QACA,QACA,YACA,wBACA,QACA,EACA,kBAIA,UAhBA,cAiBA,MAhBA,iBAgBA,CACA,WACA,CAAC,EACD,MAlBA,qBAkBA,CACA,SA5fA,uBACA,SAGA,2BAFA,EAKA,iBACA,YACA,OACA,OACA,CAAK,EAEL,KACA,oBACA,OACA,OACA,CAAK,EAEL,KACA,UACA,OACA,OACA,CAAK,EAEL,KACA,UACA,OACA,OACA,CAAK,QAKL,CA2dA,CAAC,EACD,MApBA,oBAoBA,CACA,SAxdA,qBAIA,QACA,EAEA,CACA,CAidA,CAAC,EACD,SACA,mBAOA,EACA,IAPA,qCAMA,EANA,qBAQA,qDAPA,CAaA,mBAEA,QACA,+BAGA,SACA,UACA,MACA,QA8iEA,GA5iEA,GACA,EAGA,KACA,iBAGA,iBACA,cAGA,KACA,YAGA,KACA,YAGA,6BACA,EAGA,WACA,CACA,SA6BA,YA5BA,CACA,kBACA,MApEA,MAqEA,yCACA,CAAG,CACH,oBACA,MAxEA,MAyEA,wCAg5IA,gBACA,oBACA,EAxlDA,kBAQA,OAPA,YACA,GAAmF,KAAxE,MAAqC,GAAG,CAAgC,IAEnF,YACA,OAEA,IACA,cACA,uBACA,iBACA,8BAKA,OAJA,WACA,aACA,0BAEA,CACA,CAAG,CACH,CA50FA,iBACA,CAAG,CACH,kBACA,MA5EA,MA6EA,6BACA,CAAG,CACH,kBACA,MAhFA,MAiFA,6BACA,CAAG,CACH,uBACA,yBAk5EA,EACA,IA3oBA,QAmBA,EA1xDA,OAuwDA,EAvwDA,uDAA8I,KAi5E9I,EAj5E8I,EAAyC,CAm5EvL,IAEA,YADA,QAp5EuL,EAo5EvL,CACA,yCA9oBA,EAvwDuL,EAuwDvL,EAvwDuL,EA0xDvL,OACA,cACA,WArBA,OAqBA,IACA,yBACA,iBAEA,oBACA,CAAK,CACL,CAAG,EACH,CAlyDA,CAAK,CACL,CAAG,CACH,UACA,cACA,QACA,YACA,GAIA,cAEA,UACA,MAFA,kBAEA,CACA,oBACC,EAKD,iBACA,QAEA,+BAEA,QAEA,iBAEA,QAEA,mBAWA,gBAGA,OAFA,QACA,4BACA,EAD8C,EAC9C,KACA,EACA,qBACA,gBAKA,SACA,KACA,mCAAqH,oCAErH,IACA,eACA,gBACA,YACA,aACA,EACA,qBAYA,aACA,kCACA,CASA,OAtBA,YACA,OAaA,kBACA,sBACA,mBACA,EACA,KACA,WACA,gBAEA,CACA,CACA,uBACA,IAyBA,EACA,EAEA,EAMA,EAlCA,GAyBA,wBACA,GA1BA,GA0BA,GACA,KACA,uBACA,CAD8D,GAE9D,KACA,UAaA,IAVA,GACA,eACA,kBACA,yBACA,qBALA,OAMA,WA1BmB,GA2BnB,GA3B0E,IAAI,CAAY,GAC1F,EA2BA,eACA,kBACA,GACA,UACA,GA5CA,IACA,mBACA,CAAI,SAEJ,MADA,WACA,CACA,EAAI,OA0CJ,kBACA,MAEA,GA5CA,EA4CA,gBACA,mBACA,+BAEA,6BACA,2BACA,KACA,gBACA,sBAOA,4BA1DA,CACA,CA2DA,iBACA,YACA,IACA,UACA,EAAI,OACJ,KACA,CACA,CACA,eACA,2BAEA,OADA,uBACA,CACA,CACA,eACA,sBACA,CAGA,mBACA,sBACA,aACA,YACA,GAAsF,MAAxE,MAAqC,GAAG,CAAgC,GAEtF,YACA,OAEA,YACA,cAEA,yBACA,gBACA,eACA,gBACA,0BACA,uBACA,0BACA,gBACA,kBACA,aACA,UACA,WACA,uBAWA,CACA,CACA,OACA,kBA8FA,OA7FA,kCACA,uBACA,iBAEA,CACA,EACA,kBACA,YACA,+BACA,cAYA,oBAKA,EACA,+BAEA,aACA,eACA,YACA,QACA,UACA,CAAO,EACP,MACA,oBAEA,aAIA,OADA,0CACA,yCACA,EACA,2BACA,kBACA,cACA,qBACA,UACA,SACA,QACA,YACA,WACA,UACA,CAAO,CAEP,EACA,iBAEA,OADA,sBACA,8BACA,EACA,yBACA,iBACA,EACA,yBAWA,OAVA,GACA,GACA,uBACA,2BACA,YACA,QACA,qBACA,eACA,CAAO,EAEP,UACA,EACA,iBAEA,oBAEA,oBACA,iBACA,EACA,sBACA,qCACA,EACA,qBACA,oBACA,EACA,iCACA,qBACA,EACA,CACA,CAAC,IACD,2BAqBA,cAaA,cACA,wCACA,mBAEA,wBAEA,wBACA,cACA,uBACA,wCACA,yBACA,yBACA,kBACA,yBACA,cACA,uBAEA,oBACA,uBACA,mBACA,oBACA,8BACA,uBACA,kBACA,mBACA,OACA,MAEA,sBACA,mBAAwG,GAAtE,MAAqC,GAAG,CAA8B,GACxG,OACA,iBAAgG,UAA9D,MAAqC,GAAG,CAAsB,WAEhG,8EACA,sBACA,0CACA,8BAEA,kBAsKA,OArKA,4BAwzBA,IAvzBA,CAuzBA,uCAGA,IA1zBA,CA0zBA,uCACA,IA3zBA,CA2zBA,+BACA,uCACA,uCACA,mBAEA,CAAG,EA/zBH,EACA,kBACA,YACA,+BACA,UACA,CAAO,CAEP,EACA,mBACA,aACA,gCACA,UACA,CAAO,CAEP,EAOA,iBAIA,GAHA,kBACA,iCAEA,gBAEA,0CASA,IADA,SACA,UACA,IA2vBA,EA3vBA,qBACA,qBACA,0BAEA,yBAuvBA,EAtvBA,KAwvBA,oCAGA,gCACA,iCACA,yCACA,8BAIM,sCAEN,sCAEA,CAAG,IApwBH,oBACA,OAjBA,WACA,+BACA,KACA,SADsB,EACtB,wBACA,MAeA,kBACA,SACA,cAEA,QACA,EACA,kBACA,iBACA,sBACA,iBAEA,wBACA,IACA,gCACA,EAAQ,OACR,uBACA,CACA,EAAM,IACN,gBAEA,EACA,6BAEA,kBACA,4CACA,yBACA,sCAcA,OAbA,GACA,gBAYA,CACA,EACA,4BACA,oBAEA,IACA,EADA,SAEA,KACA,4CAEA,kCACA,yCAEA,IACA,mCACA,CAAU,SACV,WACA,CAKA,OAFA,MACA,oBACA,CACA,EACA,sBACA,kBACA,SACA,mBAKA,EACA,EAN+B,QAM/B,eACA,WACA,KACA,SACA,qBAEA,cACA,UACA,WACA,GACA,0BACA,wBACA,QACA,SACA,WACA,UACA,CAAS,EACT,KACA,CACA,KACA,GACA,CAAK,CACL,EACA,qCAUA,EACA,sBACA,oDACA,EACA,qBACA,oBACA,EACA,iCACA,qBACA,EACA,MACA,kBACA,eACA,OAx6CA,MAw6CA,0BAx6CA,CAy6CA,CAAK,CACL,gBACA,+CACA,CACA,CAAG,EACH,sBACA,eACA,OAh7CA,MAg7CA,8BAh7CA,CAi7CA,CAAK,CACL,gBACA,mDACA,CACA,CAAG,EACH,sBACA,eACA,OAx7CA,MAw7CA,+BACA,CAAK,CACL,gBACA,mDACA,CACA,CAAG,EACH,6BACA,eACA,OAh8CA,MAg8CA,sCACA,CAAK,CACL,gBACA,0DACA,CACA,CAAG,EACH,gBACA,eACA,uCACA,CAAK,CACL,gBACA,iDACA,CACA,CAAG,EACH,CAAC,GACD,sBACA,0BACA,0BACA,iCACA,qBACA,6BAGA,aAGA,sCAIA,iCAOA,yCAGA,uBACA,CAAC,UAA8C,EAE/C,YACA,mBACA,iBACA,oBACA,CAAC,YACD,mBACA,kBACA,YAEA,EACA,eACA,sBACA,CAYA,eACA,6BACA,mBACA,QACA,sBACA,cACA,QACA,wBAOA,QAJA,SACA,OACA,aAD8C,CAC9C,CACA,WACA,IAAwB,IAAO,KAC/B,WACA,UACA,6BACA,aAEA,IACA,OACA,CAAgB,SAIhB,OAFA,MACA,MACA,EACA,CAKA,mCAGA,OAFA,MACA,MACA,EAEA,CACA,CAIA,OAHA,MACA,MACA,MACA,EAEA,CACA,CAwBA,mBACA,IAYA,EAZA,SACA,MAEA,sBAGA,sCACA,sBACA,oBACA,4BAIA,GAHA,wBACA,aAEA,+BACA,iBAEA,IACA,WACA,CAAM,SACN,WACA,CAOA,OALA,aACA,wBACA,SAqBA,GAUA,QARA,eACA,+BACA,gBAIA,IACA,sBACA,IAAkB,IAAO,KACzB,UACA,mBACA,cACA,OACA,SAEA,KAIA,wBACA,wBAEA,CAOA,IANA,WACA,qBAIA,CAJmC,CAInC,SACA,MACA,WACA,iBACA,QAEA,aACA,CAIA,WACA,WACA,kBACA,cAsQA,iBArQA,GAsQA,6CACA,8CArQA,CAGA,oBACA,uBACA,mBAEA,EA3EA,GAEA,MACA,CACA,CAwEA,eAEA,kBACA,iBAEA,IADA,eACA,KACA,UAEA,sCAEA,eACA,WACA,IACA,UACA,EAAI,OACJ,KACA,CACA,CACA,cACA,4BAEA,OADA,2BACA,CACA,CACA,eACA,uBACA,CACA,eACA,yBAEA,OADA,qBACA,CACA,CACA,eACA,oBACA,CAKA,eACA,yCAGA,mCAGA,IAFA,mBACA,WACA,KACA,wCAEA,CAMA,kBASA,eAIA,kBAIA,6BAMA,0BAIA,aAIA,gBAIA,eAOA,8BAIA,yBAIA,2BAMA,0BAKA,wBAIA,uBAIA,qBAIA,oCAIA,iCAKA,mCAKA,mCAKA,+BAKA,+BACA,mBAIA,sBAMA,uBACA,EACA,MACA,MACA,cACA,gBAOA,CANA,2CACA,QAEA,6DACA,QAEA,IASI,iBACJ,yBACA,2BACA,+BAEA,kBAEA,wBACA,yBAdA,sBACA,IACA,KAEA,CAAK,IACL,OAWA,CAAC,GAcD,cACA,SACA,CAiDA,iBAIA,uBACA,uBAEA,KAIA,CACA,eACA,gCAEA,4BACA,iCAEA,CAMA,cACA,YACA,CACA,cACA,oBACA,KAGA,QADA,2BACA,IAAoB,WAAiB,KACrC,WACA,4BACA,wBACA,oBAEA,qBACA,WAEA,iBAGA,aAGA,CACA,4BAEA,CACA,eAEA,mCACA,UAMA,+BACA,2BAEA,yCACA,yCACA,qBACA,WAGA,oBACI,qCACJ,MAEA,GACA,CAsBA,eAEA,oCAGA,gCAEA,iCACA,sCAIA,mBAEA,8BACG,EAEH,CA0DA,kBACA,oBACA,YACA,GAA+E,MAAjE,IAAiE,EAA5B,GAAG,CAAyB,CAE/E,aACA,0BACA,0BACA,gCACA,mBAEA,sBACA,wCACA,cACA,yBACA,cACA,uBACA,aACA,qBACA,qBACA,0BACA,CACA,kBAqIA,OApIA,4BACA,gBACA,EACA,uBACA,mBACA,oBACA,+BACA,KAEA,EAIA,0BACA,qBACA,KACA,oBACA,yBAEA,GADA,wBACA,UACA,uBACA,IACA,oBAQA,CAAU,SACV,oCACA,CACA,CACA,qBACA,IACA,CACA,EACA,oBACA,qBAIA,KAUA,kBACA,yBACA,CADoD,EACpD,qBACA,uBACA,sBACA,kBACA,uBACA,iBAEA,SAEA,OACA,2CAOA,KACA,EACA,2CACA,WACA,uBACA,2BACA,MACA,CACA,6BACA,OAGA,4BACA,cAF4K,sCAE5K,GAaA,mDACA,aACA,CAAK,CACL,EACA,qBACA,kBACA,mBACA,iBAEA,KACA,SACA,MAGA,EACA,2BACA,WACA,eACA,YACA,sEACA,EAGA,OAFA,iEACA,UACA,CACA,EACA,sBACA,gCACA,EACA,oBACA,YACA,MAGA,EACA,MACA,iBACA,eACA,OAxvEA,EAwvEA,6BAxvEA,CAyvEA,CAAK,CACL,gBACA,8CACA,CACA,CAAG,EACH,kBACA,eACA,OAhwEA,EAgwEA,8BAhwEA,CAiwEA,CAAK,CACL,gBACA,+CACA,CACA,CAAG,EACH,qBACA,eACA,OAxwEA,MAwwEA,8BACA,CAAK,CACL,gBACA,kDACA,CACA,CAAG,EACH,gBACA,eACA,OAhxEA,EAgxEA,6BACA,CAAK,CACL,gBACA,6CACA,CACA,CAAG,EACH,gBACA,eACA,uCACA,CAAK,CACL,gBACA,iDACA,CACA,CAAG,EACH,CAAC,EACD,sBACA,sBACA,yBACA,oBACA,qBAgBA,mBACA,UACA,EACA,cAEA,qCAGA,MACA,CACA,cACA,yBAMA,IALA,0BACA,IAIA,aAlBA,KAmBA,MACA,cAAoB,MAAqC,GAAG,CAA6K,yBACzO,aAA8B,IAG9B,IADA,cACA,eAAmD,IAAO,IAC1D,mBAEA,CACA,wBACA,CACA,wBAiEA,YAEA,gBAEA,sBACA,UACA,MALA,eAKA,CACA,QACA,CAAC,EACD,UACA,aACA,CAAC,EACD,MATA,mBASA,CACA,cACA,QACA,CAAC,EACD,eA6BA,OA5BA,qBAEA,KACA,mBAGA,KACA,UAGA,KACA,+BAGA,KACA,eAGA,KACA,cACA,OACA,YACA,CAAO,SAKP,CAEA,CACA,cACA,qBACA,cAIA,eACA,sCACA,CACA,eACA,gCACA,CAQA,iBAEA,YACA,MAUA,IAZA,QAcA,EAFA,wCAA6K,UAG7K,CAHgG,EAChG,IADqI,GAAG,CAAqC,GAC7K,UAOI,CACJ,YAEA,KACA,sBACA,IACA,KACA,aACA,KACA,cACA,UAEA,CAAS,EAET,CAAK,gCACL,MAlBA,sBACA,aACA,CAAK,iCAiBL,aACA,IACA,CAIA,OAHA,4CACA,cAEA,2CACA,CA5DA,qBACA,eACA,eA2DA,mBACA,UACA,EACA,eACA,mDACA,4BACA,EAAI,EACJ,CACA,mBAEA,YACA,MAUA,IA0CA,EAtDA,MAkBA,EANA,qBAAgI,WAChI,CAD+D,CAC/D,KADoG,EACpG,CADuG,CAAyB,KAChI,EAyCA,EAzCA,UA0CA,WACA,IACA,OA5CA,EA4CA,qBACA,CAAM,SACN,cACA,CACA,GAhDA,GACA,yBACA,QACA,KACA,KAEA,uDACA,sBACA,KACA,IACM,IACN,KACA,KAEA,CAAG,iCACH,aAEA,GADA,MACA,cAGA,SACA,IACA,mBACA,uBACA,WACA,CAAO,EACP,aACA,GACA,CAAK,EACL,qBACA,SACM,OACN,SAEA,KACA,CAIA,OAHA,4CACA,cAEA,2CACA,CAgBA,mBACA,UALA,QAKA,MACA,CACA,qBACA,yCACA,WACA,QAMA,OALA,KACA,YAEA,kBAEA,WACA,WACA,IACA,YACA,YACA,YAGA,CACA,CAGA,gBAGA,eACA,2BACA,WAvvBA,GAJA,iEACA,MAEA,MACA,IACA,SACA,6BACA,yBAEA,SACA,CACA,IAkvBA,IA5RA,EACA,EA2RA,eACA,mBAOA,GANA,YACA,uBAXA,UAWA,8BAEA,mBACA,sBAEA,YACA,gBAfA,aAeA,CACA,qBACA,mCACA,CACA,sJACA,QACA,cAEA,CAAG,EACH,kDAIA,sBAlTA,EAmTA,oBAlTA,KACA,eACA,oBACA,WACA,CAAK,CACL,EA+SA,CAiCA,iBACA,OAEA,cACA,OACA,cAKA,OAHA,qCACA,gBAiBA,mBAjBA,uBAEA,CACA,EAVA,QACA,CA0BA,SACA,cACA,6BACA,CACA,4CAIA,kBACA,oBACA,QACA,CAAC,EACD,+BAEA,QACA,+BAGA,QACA,iBAOA,MADA,EACA,uBAEA,aAEA,IAGA,EAHA,YACA,OACA,gCAPA,GAOA,MAHA,KAGA,GAEA,SACA,4BACA,QAEA,kBAEA,EADA,SAEA,IACA,uDACA,CAAU,SACV,WACA,CACA,IACA,CACA,kBAEA,EADA,SAEA,IACA,wDACA,CAAU,SACV,WACA,CACA,IACA,CACA,cACA,6BAEA,YACA,MACA,QACA,OACA,WAEA,6BACA,SACA,CAhCA,IAiCA,SACA,CAAK,EAkBL,OAnB8B,EAE9B,kDACA,IACA,GACA,MAGA,uBAEA,2BACA,YACA,MAEA,SACA,CAAQ,IAH+B,EAG/B,GACR,IACA,CACA,CAFqB,EAGrB,CACA,EAEA,OADA,gBACA,CACA,CAAC,KAED,eACA,aACA,UAEA,CAIA,eACA,wCACA,CAEA,mBACA,aACA,oBACA,QACI,OAIJ,YAOA,oCACA,WACA,iBACA,CACA,CAEA,0BACA,KAUA,GATA,KASA,WATA,GAMA,GAJA,GAIA,WAJA,EAEA,CAkCA,uBACA,MAGA,WAIA,SACA,oBAKA,kCACA,CAcA,sBACA,MACA,aAEA,aACA,qBAEA,MACA,oBACA,QACA,CAAK,OAEL,IACA,CACA,sBACA,MACA,sBACA,YACK,EAEL,MACA,sBACA,eACA,CAAK,EAEL,MACA,uBAEA,MACA,eAEA,IACA,CACA,sBACA,MACA,sBACA,eACK,EAEL,MACA,sBACA,mBACK,EAEL,MACA,wBAEA,MACA,oBACA,YACK,OAEL,IACA,CA8EA,mBACA,SACA,iCAEA,KACA,CAQA,4BACA,KAUA,GATA,KASA,SATA,KAMA,GAJA,GAIA,SAJA,IAEA,CAwGA,iBACA,YACA,WAEA,KACA,IACA,iBACA,EAAI,OACJ,IACA,CACA,CAEA,0BACA,2CAoCA,cAKA,0CACA,4DACA,kBACA,WACA,CACA,CAAK,EAIL,IAbA,EAWA,EACA,EACA,4BAEA,IADA,EACA,aAAwD,IACxD,SACA,CAAK,GACL,aACA,IACA,0BACA,EACA,aACA,IACA,wBACA,EACA,oFACA,CAAG,qBACH,MACA,uGACA,CAAG,EAEH,OADA,WACA,CACA,EArEA,KAEA,YAA0C,CAC1C,CACA,mBAEA,+BACA,IAFA,EAEA,wBACA,wBACA,qBAEA,GADA,IACA,UACA,kBAEA,QAGA,CAAK,WACL,CACA,OAAwF,EAA1E,KACd,CADmD,GAAG,CAAkC,CACxF,GAA+F,UAA7D,IAA6D,EAAxB,CAEvE,EAF0E,CAAqB,EAE/F,YAEA,WAEA,YACA,GACA,gBAEA,IAEA,CAAG,IACH,QACA,CArZA,eA+bA,QACA,kBAIA,OATA,KASA,OACA,CAAG,CACH,kBACA,OAZA,KAYA,OACA,CAAG,CACH,oBACA,YACA,QAOA,UAvBA,KAuBA,iBACA,CAAG,CACH,6BACA,YAIA,QAIA,WAlCA,IAkCA,kBACA,CAAG,CACH,+BACA,MAKA,gBA1CA,KA0CA,wBACA,CAAG,CACH,oBAIA,OAhDA,KAgDA,UACA,CAAG,CACH,8BACA,KACA,CACA,EAQA,eACA,yDACA,CACA,iBACA,4CAEA,OADA,UACA,aACA,kBACA,SACA,aAEA,CAAG,CACH,CACA,iBACA,WACA,IAGA,QADA,iCACA,eAA6C,MAC7C,aACA,SACA,MAEA,GALoD,KASpD,QACA,EAAI,OACJ,KACA,CACA,CAEA,eACA,+DACA,CACA,iBACA,kDAEA,OADA,UACA,aACA,kBACA,SACA,aAEA,CAAG,CACH,CACA,iBACA,WACA,qBACA,MAGA,YACA,uBAAwC,IAAO,IAC/C,QAEA,MACA,CAEA,mBAcA,OAbA,cAEA,uBAKA,IAztGA,EAytGA,EAztGA,IAOA,EAktGA,EAltGA,MAA8D,QAktG9D,GAhtGA,KAktGA,yBACA,sBACA,CAAK,CACL,CAAG,EACH,CACA,CAqCA,gBACA,YAEA,IACA,kBACA,kBACA,MACA,EAEA,aACA,oBAEA,6BAGA,QACA,MAEA,KALA,mBAMA,CAAG,CACH,oBACA,WAUA,MATA,cACA,qBAEA,6BACA,OAGA,sBAEA,EACA,CAAG,CACH,6BACA,KACA,CACA,EACA,cACA,oBACA,YACA,GAAqF,KAAxE,MAAqC,GAAG,CAAgC,IAErF,mBACA,wBACA,kBACA,gBAEA,0BACA,6BACA,sBACA,qBACA,mBACA,wBACA,cACA,mBACA,oBACA,6BACA,aAAuF,IAArD,MAAqC,GAAG,CAAa,QACvF,CACA,CACA,kBAyOA,OAxOA,mCACA,uBACA,iBAEA,CACA,EACA,oCACA,mCACA,qBAEA,CACA,EACA,yBACA,iBACA,EACA,yBAiBA,OAhBA,YACA,OAEA,GACA,GACA,uBACA,mBACA,iCACA,cACA,QACA,2BACA,+BACA,WACA,cACA,CAAO,EAEP,UACA,EACA,6BAEA,OADA,4BACA,qBAEA,8BACA,qCACA,sBAEA,0BACA,UAEM,QAEN,QADA,aACA,IAAsB,MAA+B,IACrD,YAEA,4BACA,EAAM,IACN,6BAEA,EACA,mCACA,2BACA,MAEA,yBACA,uBACA,SAEA,EACA,mCACA,WACA,WACA,0BAkBA,GAjBA,WACA,IACM,IACN,IACM,KACN,oBAGA,EADA,oBACA,IACM,QACN,EAEA,4BAEA,YACA,MAEA,UACA,eACA,mBACA,QACA,QACA,eACA,OACA,CAAO,EACP,MACA,SAEA,iBACA,SACA,CAIA,GAHA,mCACA,4BACA,CAAK,EACL,iBAAgD,CAChD,EAD4B,EAC5B,UADgD,CAChD,EACA,4BACA,CACA,WAFoD,sBAEpD,QAIA,MAHA,uBACA,+BAEA,sBACA,EACA,yCACA,YA5KA,IA4KA,CACA,EA7K6B,EA6K7B,EACA,sDACA,CAEA,CAFM,GAEN,4BAEA,yBAEA,iCACA,YAAsB,WAAqB,IAC3C,uBAEA,YAAuB,WAAsB,IAC7C,gCAEA,QAEA,EACA,0CACA,oBA/uCS,GAgvCT,WACA,QACA,uBACA,mBACA,QACA,iCACA,QACA,WACA,UACA,EAAM,KAMN,2BACA,GACA,UAKA,EACA,qCACA,oBAxwCS,GAywCT,GAzwC8C,EAywC9C,EAzwCkD,CAAiC,CAywCnF,EACA,QACA,uBACA,mBACA,iCACA,QACA,QACA,UACA,QACA,sBACA,qBACM,KAIN,2BAEA,GACA,UAKA,EACA,mBACA,6CACA,aAAmB,MAAqC,GAAG,CAA8L,uBACzP,MACA,CAEA,OADA,4BACA,mCACA,EACA,qBACA,mBAKA,GAJA,8BAEA,iBAEA,YAEA,WACA,WACA,aACA,eACA,QACA,mBAEA,QACA,UACA,CAAS,EACT,MACA,OAEA,aAEA,0BACA,IAEA,OACA,oCAEA,EAAM,IAKN,QADA,sBACA,IAAsB,aAAyB,IAC/C,WAEA,iBACA,mCACA,CACA,EACA,CACA,CAAC,GAqBD,IACA,iBACA,qBACA,CAAG,CACH,oBACA,cACA,+CACA,CAAG,CAEH,kBACA,mBACA,CAAG,CAOH,qBACA,kDAA+F,IAAa,IAC5G,oBAEA,cACA,yBACA,OACA,cACA,EACA,4BACA,QACA,8BACA,CACA,gCACA,CAAG,CACH,gCACA,sCACA,CAAG,CACH,gBAEA,QADA,UACA,kCAA4E,IAAe,IAC3F,kBAGA,OADA,yCACA,iBACG,CACH,eACA,8DACG,CACH,iBACA,2BACG,CACH,mBAEA,QADA,UACA,kCAA4E,IAAe,IAC3F,kBAGA,OADA,0BACA,iBACG,CACH,mBAOA,OAJA,uBACA,gBAEA,qCACA,KACG,CACH,gBAGA,uBACA,aAEA,mBAGA,OAFA,0BACA,gBACA,KACG,CACH,mBACA,cACA,gDACA,OACA,iBACA,GAGA,CACA,EAkCA,iBACA,uCACA,YAEA,CAEA,eACA,kBACA,cACA,yBACA,kCACA,8BACA,CACA,CAEA,eACA,qBACA,WACA,UAGA,OAFA,yBACA,2BACA,kBACA,sBACA,CAAK,CACL,CACA,CAEA,eACA,kBACA,WACA,UACA,yBACA,kCAEA,eAIA,OAHA,6BACA,iBACA,EACA,uBACA,CACA,CApEA,YACA,gBACA,cACA,kBACA,iBACA,cACA,qBACA,eACA,kBACA,wBACA,kBACA,mBACA,cAEA,eACA,gBACA,cACA,mBACA,kBACA,uBACA,iBACA,iBACA,aACA,cACA,oBAEA,gBACA,qBA0CA,6CACA,eACA,qBACA,CAEA,UAEA,YAGA,cACA,kBACA,gBACA,OACA,OAEA,YACA,GAAoF,MAAtE,MAAqC,GAAG,CAA8B,CAEpF,sBACA,kBACA,WACA,kBACA,oBAEA,sBACA,0BACA,6BACA,qBACA,iBACA,aACA,QACA,MAEA,cACA,cAAkG,SAA/D,MAAqC,GAAG,CAAuB,KAClG,gBACA,kBACA,GACA,UAEA,CAAK,CACL,CACA,kBAuVA,OAtVA,mBACA,wBACA,EACA,kBACA,WACA,0BACA,oBAEA,0BACA,OACA,+BAAsK,gBAAlF,KAAkF,IACtK,CADsK,GACtK,kBACA,gBACA,0BACA,CAAO,CACP,CACA,cACA,EACA,oBACA,mBACA,aACA,eACA,UA5DA,MA6DA,YACA,WACA,MACA,CAAO,EACP,MACA,YAEA,YACA,CAMA,OALA,EACA,uBAEA,oBAEA,MAEA,qBACA,WAEA,GADA,eACA,UAMA,CALA,SACA,QACA,YACA,MACA,CAAO,EAEP,SAGA,iBAEA,eACA,KACA,qBACA,2BACA,QACA,YACA,kCACA,MACA,EAAQ,YAIR,cAIA,IAHA,EACA,4BACA,+CAEA,EADA,aACA,qBACA,iBACA,CAAO,EACP,GACA,WAKA,EACA,CACA,QACA,EACA,6BACA,wBAEA,IADA,2BACA,cAEA,eACA,KACA,qBACA,2BACA,QACA,YACA,kBACA,OACA,UACA,EAAQ,KAIR,kBACA,GACA,UAKA,CACA,EACA,0BACA,WACA,eACA,cAEA,IADA,EACA,uBAAqJ,CAA9E,MAAqC,GAAG,CAAsC,aACrJ,iBACA,WACA,CADoC,KACpC,yCACA,2BACA,CAAK,EAEL,eACA,KACA,qBACA,2BACA,KArKA,MAsKA,YACA,OACA,UACA,EAAM,KAIN,GACA,UAKA,EACA,yBACA,YACA,4CAEA,0BACA,EACA,mCACA,uBACA,iBAEA,CACA,EACA,kBAEA,OADA,gCACA,iBACA,EACA,oBACA,WACA,cACA,WACA,gBACA,eACA,SACA,UACA,OACA,OACA,uBACA,CACA,CACA,CAAK,CACL,EACA,qBACA,WACA,cACA,WACA,gBACA,eACA,SACA,UACA,OACA,OACA,4BAEA,CACA,CAAK,CACL,EACA,8BACA,qBACA,EACA,wBACA,oBAAuE,cAA4B,EACnG,cACA,OACA,OACA,kBACA,CACA,EAEA,oBACA,WA0BA,OAzBA,OACA,eAEA,cACA,KACA,CA7oIA,YACA,qBAEA,MACA,SAEA,6CACA,SAGA,iCACA,uCACA,CAAG,GAJH,EAKA,EAgoIA,uBACA,oBACA,CAAS,EACD,iBACR,sBACA,WACA,OACA,iBACA,CAAS,EACD,MAlqIR,OADA,sBADA,sBADA,sBAsqIA,MACA,QAEA,wBACA,iBACA,CAAS,SACD,GACR,OAEA,CAAK,EACL,IACA,EACA,mBACA,WACA,cACA,cACA,wBAAsF,cAA8B,EACpH,cACA,WACA,CACA,CAAO,CACP,CAAK,CACL,EACA,sBACA,WA+EA,OAxEA,cASA,UAPA,EA+GA,YACA,eACA,SACI,oBACJ,kBACI,SAOJ,eANA,cACA,eACA,cAEA,QAIA,EA7HA,GACA,UAEA,KAIA,oBAA0F,cAA8B,EACxH,cAGA,cAGA,GAFA,YAIA,SACY,CAEZ,qBACA,UACA,EAEA,CAEA,2BAA+F,cAA8B,EAC7H,cACA,OACA,OAEA,iBAIA,GAFA,WAEA,gBAIA,qBACA,WAEA,GAEA,MAEA,CACA,CAEA,OACA,yBAEA,iCAMA,IAJA,qBACA,WACA,WACA,WACA,UACA,sBACA,4BACA,KACA,CACA,WACA,UACA,EAIA,SACA,CAAK,EACL,MAEA,sBACA,8BACA,EACA,oBACA,uBACA,EAMA,yBAIA,iBACA,EACA,yBACA,iBACA,EACA,MACA,WACA,eAEA,OADA,gCACA,gBAEA,CAAG,EACH,uBACA,eACA,WACA,CACA,CAAG,EACH,CAAC,GAED,yBACA,eAEA,OADA,oCACA,KACA,CAiBA,UACA,cACA,kBACA,gBACA,OACA,OAEA,YACA,GAAoF,MAAtE,MAAqC,GAAG,CAA8B,CAEpF,kBACA,WACA,mBACA,kBACA,6BACA,0BACA,qBACA,sBACA,aACA,QACA,MAEA,6BACA,eACA,EACA,cACA,mBACA,GACA,YAEA,CAAK,CACL,CACA,kBAqOA,OApOA,mCACA,uBACA,iBAEA,CACA,EACA,mBACA,WACA,cACA,cACA,gCAA4F,cAA4B,EACxH,cACA,WACA,CACA,CAAO,CACP,CAAK,CACL,EACA,wBACA,oBAAyE,cAA8B,EACvG,cACA,kBACA,CACA,EACA,kBACA,WAEA,GADA,WACA,UAMA,CALA,SACA,KA5dA,MA6dA,YACA,UACA,CAAO,EAEP,YAKA,iBACA,cACA,mCACA,uBACA,CAAO,EAEP,eACA,KACA,qBACA,2BACA,KAhfA,MAifA,YACA,UACA,EAAQ,KAIR,GACA,UAKA,CACA,aAEA,qBACA,WACA,aAMA,CALA,SACA,QACA,YACA,UACA,CAAO,EAEP,SAGA,gBAEA,eACA,KACA,qBACA,2BACA,QACA,YACA,UACA,EAAQ,YAIR,cACA,wBACA,iBACA,CAAO,EACP,GACA,WAKA,EACA,CACA,QACA,EACA,kBAEA,OADA,4BACA,qCACA,EACA,qBACA,oBACA,WACA,gBACA,eACA,UACA,SACA,SAGU,CACV,aACA,MACA,EANA,CACA,YACA,MACA,CAIA,CAJU,CAKL,CACL,EACA,kBACA,oBACA,EACA,oBACA,4BACA,WACA,sBACA,WACA,gBACA,eACA,UACA,SACA,SAGU,CACV,aACA,MACA,EANA,CACA,yBACA,MACA,CAIA,CAJU,CAKL,CACL,EACA,kCACA,aACA,qBAEA,cACA,eAEA,EACA,2BACA,aACA,cAEA,cACA,QAEA,EACA,yBACA,kCACA,EACA,yCACA,aACA,4BAGA,IADA,UACA,sBAEA,EACA,yBACA,kCACA,EACA,2BACA,oCACA,EACA,oCACA,aACA,uBAEA,cACA,iBAEA,EACA,sBACA,WAmBA,OAlBA,OACA,eAEA,cACA,kBACA,UACA,sBACA,eACA,CAAS,GACD,MACR,UACA,sBACA,eACA,CAAS,SACD,GACR,kCAEA,CAAK,EACL,MAEA,yBAKA,iBACA,EACA,yBACA,iBACA,EACA,oBACA,uBACA,EACA,sBACA,8BACA,EACA,8BACA,oBACA,EACA,MACA,WACA,eAEA,OADA,4BACA,gBAEA,CAAG,EACH,uBACA,eACA,WACA,CACA,CAAG,EACH,CAAC,GAED,yBACA,eAEA,OADA,oCACA,KACA,CAEA,2BACA,YACA,cACA,iBAEA,GACA,YACA,YAEA,YACA,OAEA,oBACA,oBACA,kBACA,+BACA,sBACA,6BACA,0BACA,mBACA,2BACA,gCACA,yBACA,eACA,eACA,aACA,0BACA,qBAA0F,GAA5D,MAAqC,GAAG,CAAoB,YAE1F,mCAQA,CACA,kBA4dA,OA3dA,sCACA,gCACA,EACA,wCACA,0BACA,mBAEA,OADA,SACA,GAGA,aACA,eACA,QACA,iCACA,OACA,UACA,CAAO,EACP,MACA,YAEA,aAIA,IAFA,2BAEA,cACA,eAEA,KACA,QACA,wBACA,2BACA,iCACA,kBACA,OACA,UACA,EAAQ,KAIR,kBACA,GACA,UAKA,CACA,QACA,EACA,mBAKA,OAJA,2CAEA,aAEA,iBASA,6BAKA,CAJA,YACA,OAGA,mBAEA,oBAEA,kCACQ,EAER,+BAGA,kBACA,IAIA,gBACA,QACA,cACA,YACA,eACA,CAAO,2BAEP,EAGA,mBACA,0BAEA,yBAEA,+CACA,+BAKA,OAJA,IACA,8BAA4J,gBAAlF,MAAqC,EAA6C,CAA1C,CAA0C,EAC5J,4BAEA,OACA,EAKA,sBAIA,GAHA,QACA,4BAEA,QAIA,yBACA,MAMA,mCACA,OAEA,CAFgB,CAEhB,gDAEA,CAEA,IADA,mBACA,WACA,aACA,MACA,0BACA,SACA,OAEA,SACA,KAEA,CACA,0BACA,CACA,aACA,EAQA,4BAOA,GANA,YACA,OAEA,QACA,4BAEA,OACA,mCAGA,4BAIA,OAHA,GACA,aAEA,CACA,EAOA,kCACA,YACA,OAEA,eACA,IACA,KAEA,sBACA,MAEA,SAGA,aACA,eACA,iCACA,OACA,KAl6BA,MAm6BA,iBACS,EACT,MACA,YAEA,iBACA,aACA,OAAkC,IAClC,OACA,EAAW,CAEX,CAEA,KACA,8CACA,QACA,MAEA,oBAGA,uCACA,EAAM,OACN,IACA,CACA,QACA,EAGA,8CACA,YACA,OAEA,eACA,IACA,KAEA,sBACA,MAEA,SAGA,aACA,eACA,iCACA,OACA,KAl9BA,MAm9BA,UACA,CAAS,EACT,MACA,YAEA,aAEA,YACA,GACA,sDACA,cACA,UACA,WAGA,KACA,8CACA,QACA,MAEA,oBAEA,iBAAqI,QAAzE,MAAqC,GAAG,CAAiC,SACrI,sBAEA,wCACA,EAAM,OACN,IACA,CACA,QACA,EAGA,0CACA,YACA,OAEA,eACA,IACA,KAEA,sBACA,MAEA,SAGA,aAOA,CANA,SACA,iCACA,OACA,KAtgCA,MAugCA,eACA,CAAS,EAET,WAGA,iBAA+G,EAAzE,MAAqC,GAAG,CAAiC,YAC/G,oCACA,YACA,GACA,sDACA,cACA,UACA,WAGA,KACA,8CACA,QACA,MAEA,oBAEA,8BAEA,sCACA,EAAM,OACN,IACA,CACA,QACA,EAOA,wBAMA,GALA,YACA,OAEA,eAEA,mBACA,SAGA,aAOA,CANA,SACA,iCACA,OACA,OACA,CAAO,EAGP,YAIA,IAEA,KACA,IAFA,EASA,EAPA,WAEA,sBAEA,SAOA,GALA,OAEA,+CAGA,EACA,4CACA,QACA,MAEA,uBAsBA,GAfA,IACA,uBAEA,iBACA,aAGA,OAGA,+BAGA,0EAEA,GACA,OACA,QACA,wBACA,iCACA,2BACA,WACA,MACA,EAIA,GACA,UAKA,CACA,EAAM,OACN,IACA,CACA,QACA,EAMA,yBAIA,iBACA,EACA,yBACA,iBACA,EACA,wCAEA,IADA,EACA,WAEA,MACA,SACA,KAvpCA,MAwpCA,wBACA,2BACA,iCACA,OACA,UACA,EAAQ,KAIR,GACA,UAKA,CACA,2DAEA,8BACA,EACA,sBAEA,OADA,gCACA,eACA,EACA,mBAQA,OADA,gCACA,yBACA,EACA,CACA,CAAC,GACD,iBAKA,UAIA,SAKA,IAxvIA,EA2uIA,EAaA,oCAAmO,cAAlI,KACjG,CADsI,CACtI,EADyI,CAA0F,CACnO,yBAxvIA,SAwvIA,EAxvIA,uBAwvIA,GAxvIA,QA0vIA,OADA,SACA,CACA,CACA,8CACA,eACA,sBACA,eACA,yCACA,CAAK,CACL,gBACA,2CACA,CACA,EAAG,CAEH,qBACA,QACA,QAGA,CACA,mBACA,KAKA,qCA+CA,aACA,cACA,SACA,KAOA,OANA,6BACA,eACA,IACA,CACA,CAAG,EACH,wBACA,MACA,CAAC,GAMD,KAEA,iBAUA,SATA,KACA,sBACA,qCACI,+BACJ,wBAEA,aAEA,EACA,oBAIA,mBACA,oBACA,MAsBA,OArBA,YACA,GAAqF,KAAxE,MAAqC,GAAG,CAAgC,IAErF,YACA,OAEA,qBACA,cACA,sBACA,YACA,SACA,aAEA,yBAEA,IAGA,+BAEA,CAAK,EACL,CACA,CACA,OACA,kBA2BA,OA1BA,oBACA,+BACA,0CAA0E,IAAa,IACvF,kBAEA,iDAEA,kBACA,wBACA,CAAK,EACL,EACA,8BACA,WACA,IACA,WACA,gBACA,mBACA,aACA,OACA,EAAU,CACV,QACA,YACA,CACA,CACA,CAAK,CACL,EACA,MACA,aACA,eACA,gCACA,CAAK,CACL,gBACA,0BACA,CACA,CAAG,EACH,uBACA,eACA,aACA,CACA,CAAG,EACH,CAAC,KAQD,eACA,OACA,cACA,gBACA,eACA,sBACA,CAAK,CACL,gBACA,iBACA,CACA,CACA,CAIA,eACA,SACA,QALA,EAKA,KAAmD,QAAmB,IALtE,EAMA,EALA,2BAOA,IACA,CACA,CAMA,iBACA,iCACA,SAIA,OAHA,YACA,MAEA,WAEA,SACA,eAEA,UACA,cACA,mBAEA,uCAIA,OAHA,GACA,cAEA,CACA,CACA,UACA,MACA,aAEA,0BAIA,OAHA,GACA,cAEA,CACA,CACA,sBACA,QAEA,EAAI,aACJ,SAEA,YAGA,KACA,CACA,uBAIA,CAHA,GACA,MAEA,YACA,YAEA,oBAGA,aAFA,EAKA,KACA,UAEA,OACA,CACA,iBACA,MACA,cACA,eACI,SACJ,cAEA,EADI,oBACJ,MAGA,MAEA,eAQA,eACA,WACA,SACA,KACA,IACA,UACA,EAAI,OACJ,KACA,MACA,KACA,CACA,CA9HA,uCACA,WACA,MACA,eACA,mBAEA,CAAC,EAwBD,QAkGA,kBACA,mBAIA,OAHA,YACA,OAEA,SAIA,aAGA,SACA,uBAGA,oBACA,SAGA,QACA,YAGA,eACA,oDACA,SAGA,iBACA,kBACA,SAEA,UAEA,sBAEA,sBAGA,gBACA,uBAGA,UACA,aAGA,6BACA,qBACA,uBAIA,YACA,uBACA,iFACA,oBACA,mBAGA,MACA,GAGA,CAEA,QACA,QACA,2BACA,OACA,0CACA,SAIA,oBACA,gBACA,8FACA,QAEA,CACA,SACA,SACI,KACJ,OAOA,QAEA,IADA,OAFA,SAEA,OACA,KAGA,YACA,gBAOA,GAHA,UACA,UAEA,GAGA,GADA,eACA,SACA,SAGA,UACA,yBACA,QAGA,EAAI,IAEJ,IACA,EADA,iBAIA,GAFA,WAEA,0BACA,SAE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iC,IAA+B,WAAoB,IAAW,kBAAyB,WAAmB,SAA+B,GAAR,KAAQ,oDAA2E,MAAoB,qCAAkD,IAAuB,QAAqB,mCAAmD,4BAA6D,UAA+B,SAAe,SAa1mB,MACA,yCACA,mDACA,CACA,eACA,+DACA,CA2BA,eACA,QA3BA,EA4BA,0BACA,UA5BA,CADA,EA8BA,2BA7BA,iCAAiD,IACjD,4CAA0D,IAC1D,wCAA6D,oCAAqC,sBAAsB,IAExH,GA0BA,IACA,CACA,SACA,WACA,CACA,CACA,eACA,MACA,GAmBA,eAnBA,EACA,IACA,EACA,kBACA,SApCA,GACA,YAAY,GAAU,EACtB,yBACA,SACA,wBAAyC,uBAA0B,IAanE,MAZA,iBACA,gBAEA,aACA,gBAAgC,YAAe,IAE/C,gBACA,mBAAmC,eAAkB,IAErD,gBACA,0BAEA,cAAmC,CACnC,EAkBA,EACA,CACA,SACA,MAEA,oDACA,iBAMA,QADA,uCACA,UAJA,qBAtEA,YACA,2BACA,mCACA,yBACA,mBACA,qBACA,wBACA,CAAC,UAAgC,CA2EjC,UACA,cACA,uBACA,4BACA,CACA,gBACA,EAGA,GADA,yEACA,QAFA,EAGA,CACA,WACA,kCACA,CACA,SACA,wCACA,CACA,WACA,oCACA,CACA,qBACA,oBACA,yBACA,cACA,kDAEA,CACA,OACA,4BACA,CACA,WACA,8BACA,CACA,SACA,WACA,wBACA,yBACA,CACA,aACA,sBACA,MACA,8BACA,GACA,yBACA,CACA,uBACA,CACA,QACA,uBACA,4BACA,CACA,CAIA,8BAA2B,mBAAkC,EAI7D,MAHA,cACA,aAEA,uBACA,SACA,gBACA,wBACA,CACA,aAA0B,2CAAwC,EAClE,mBACA,GAGA,GACA,WAEA,sBALA,CAMA,CACA,eACA,sBACA,CACA,eACA,sBACA,CACA,4BAmBA,eACA,aACA,6CACA,WACA,EAEA,MACA,IACA,CACA,yBACA,2CACA,4BAEA,OACA,CACA,iBACA,MACA,IACA,2CACA,CACA,SACA,WACA,CAGA,cADA,iBADA,uBAEA,oCACA,CACA,UACA,eACA,YACA,KACA,SAEA,sBACA,YACA,yCACA,IACA,+BACA,aACA,sBACA,sBACA,SACA,GACA,MAEA,qBACA,CACA,SACA,CAEA,2BACA,CACA,kBACA,6BACA,CACA,kBACA,+BACA,CAEA,SACA,0BAEA,cACA,WACA,CAwBA,oDACA,yBACA,eACA,2BACA,iBACA,yCACA,cACA,WACA,MACA,SAEA,2BAGA,WAFA,aAA0B,EAAW,EAAE,EAAS,EAAE,EAAW,GAK7D,cACA,aAA0B,EAAW,EAvBrC,CANA,mBACA,kCA4BuC,EAzBvC,eAEA,cAuBuC,EAA+B,EAAE,EAAW,GAEnF,mBACA,eAEA,aADA,QACA,GACA,UAGA,SACA,QAGA,WAGA,aAAsB,EAAW,EAAE,YAAgB,EAAE,EAAW,EAChE,CAAK,CACL,CACA,4BACA,wBA2DA,eACA,wBACA,iBAGA,QAFA,CAGA,CAIA,iBACA,gBAKA,GAJA,IACA,uBACA,aAEA,EAGA,iDACA,QACA,MAJA,KAMA,OADA,yBACA,OAEA,gCACA,EAGA,WACA,qCAGA,gCAGA,mBACA,iCAGA,aAlGA,cACA,iBACA,SAEA,QACA,kBACA,EACA,oCACA,GACA,OACA,YACA,GAEA,EACA,CACA,SACA,KACA,OACA,eAFA,CAKA,YACA,qBACA,kCACA,cAEA,CACA,SACA,UACA,SACA,QACA,kBACA,WACA,qBACA,KACA,CACA,KAWA,SACA,WAZA,CACA,YACA,KACA,qBACA,KACA,CACA,SACA,MAEA,CAMA,KACA,IACA,CACA,CACA,CACA,mBACA,EA0CA,KAEA,YACA,YAEA,yBACA,QAEA,qBACA,SAEA,EArBA,QAJA,CA0BA,CACA,mBACA,gDACA,CAoCA,iCACA,IAEA,6BAEA,IAHA,GAKA,KACA,EACA,wBACA,CACA,iBACA,WAEA,UADA,EAEA,SACA,IACA,MACA,sBACA,IANA,EAMA,YAAuC,EAAU,GACjD,cAEA,GA/BA,cACA,6BAA2C,KAAS,CACpD,GADoD,CACpD,iBACA,aACA,QAEA,CACA,QACA,EAcA,EASA,GACA,SAGA,mBACA,SACA,QACA,CACA,SACA,QACA,CACA,CACA,CACA,yBACA,IACA,kCACA,EACA,gBACA,YACA,SACA,wBACA,qCAUA,GATA,CACA,mBACA,eACA,YACA,SACA,eACA,cACA,SACA,CACA,YACA,QAEA,CACA,SACA,KACA,MAEA,GADA,kBACA,EACA,SAEA,0BACA,KACA,CAEA,GADA,kBACA,EACA,SAEA,0BACA,CACA,YACA,SACA,KAEA,SAEA,GACA,CACA,SACA,CACA,SACA,CA+WA,sBACA,QACA,GAGA,eAEA,CAyEA,qBA6BA,EA5BA,QAAY,4MAA6M,kFAA+E,0LAA+M,EACvf,oBAAU,MAA4B,EACtC,EAtYA,cACA,QAAY,4MAAoM,+CAA8C,yEAA4E,EAC1U,WA2EA,KACA,iBACA,OACA,iBACA,qBACA,EAhFA,KACA,mBACA,qBACA,+BACA,OACA,gBACA,cACA,yBAIA,OACA,gBACA,cAGA,2BACA,OACA,oBACA,YACA,oBACA,oBACA,QACA,CACA,qBACA,OA8GA,kBAwJA,EAvJA,QAAY,yFAAwF,oDAAmD,0KAAuK,EAC9T,WA9TA,SACA,IACA,mBACA,SAEA,sBACA,4BACA,QACA,MAGA,6BAAwD,KAAS,CACjE,GADiE,CACjE,iBACA,aACA,QAEA,CAEA,KACA,mBAEA,CACA,SACA,CACA,QACA,EAqSA,SACA,WAhfA,GACA,gCACA,aAEA,2BACA,WACA,MAEA,CACA,EAueA,GACA,KACA,sBACA,YAAoB,IAAS,KAC7B,sBACA,+BACA,0CAEA,CACA,kBACA,wCACA,iBAEA,OACA,GACA,UAEA,IACA,aACA,cACA,wBAEA,CACA,gBACA,SACA,iDACA,kBACA,GACA,wBAEA,CACA,gBACA,gBACA,cACA,cAEA,SADA,GAEA,KAFA,EAEA,SACA,EAHA,EAGA,QACA,kCACA,SALA,EAKA,YACA,OACA,cACA,kBACA,CAAa,EACb,aACA,WACA,QAZA,EAaA,QACA,aACA,CAAa,CACb,CACA,GACA,aAEA,CASA,GARA,eACA,sBACA,cAGA,mBAGA,iBACA,sBACA,UAroBA,GACA,yBACA,MACA,SAEA,YAAoB,UAAkB,GADtC,GAEA,YAAwB,WAAmB,GAF3C,GAE2C,CAC3C,qBAKA,OADA,YAHA,SACA,MACA,GACA,oBAPA,GAOA,oBAPA,GAOA,0BACA,eACA,QACA,CAEA,QACA,EAonBA,IACA,kDAGA,uBACA,oCACA,2BACA,iBACA,kBAEA,IADA,+BAEA,gBAEA,EAEA,iBACA,GAEA,GADA,8BACA,kBAGA,MADA,EACA,YADA,EACA,qCACA,EAFA,EAEA,YACA,OACA,gCACA,IACA,QANA,EAMA,aACA,yBACA,YARA,EAQA,KACA,0CACA,CACA,SACA,iBAZA,EAYA,aAZA,EAaA,wBAbA,EAcA,cAdA,EAcA,aACA,IAfA,EAiBA,2BACA,MACA,CAEA,sCAA0D,EAAS,WAAW,EAAI,EAElF,CACA,6BACA,GACA,gBA1BA,EA2BA,+BAEA,CACA,CA9BA,EA8BA,6BACA,IA/BA,EAiCA,0BACA,CAeA,GAdA,6BACA,yBACA,SACA,SACA,qCAEA,KACA,cACA,+BAEA,aACA,8BAGA,GACA,IAAgB,kBAAgB,0BAChC,GACA,cACA,YAAyB,EAAM,IAC/B,aAA0B,EAAO,IAEjC,CACA,yBACA,sBACA,iBAEA,cAGA,IACA,uBACA,MACA,CACA,SACA,CACA,OACA,eACA,UACA,aACA,cACA,OAjhBA,yCAihBA,OACA,YACA,SACA,UACA,CACA,EAvRA,GACA,MACA,aACA,gBACA,kBACA,mBACA,kBACA,mBACA,cACA,iBACA,eACA,eACA,kBACA,oBACA,SACA,cACA,gBACA,kBACA,mBACA,oBACA,CAAa,CACb,kBACA,OAkCA,cACA,gBAAY,oIAAwI,EACpJ,qCACA,gBACA,sBACA,uBACA,yBACA,SACA,IACA,kCAEA,qFACA,0BAEA,CACA,SACA,qEAAiF,EAAI,IACrF,CACA,iBACA,CACA,GACA,yBAEA,sBAwBA,OAvBA,iBACA,KACA,qBACA,wBAEA,uBACA,KACA,kBACA,wBAEA,iBAMA,OACA,sBANA,IACA,UACA,UACA,kBACA,CAAS,GAGT,UACA,QACA,aACA,EAAS,EAET,CACA,YACA,kBACA,UACA,QACA,CACA,EAvFA,GACA,MACA,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,cACA,QACA,CAAa,CACb,2BACA,OACA,aACA,eACA,QACA,CACA,qBACA,OACA,eACA,8BACA,QACA,CACA,SACA,QACA,CACA,EA0TA,GACA,MACA,SACA,aACA,gBACA,cACA,kBACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,eACA,eACA,kBACA,mBACA,CAAK,EACL,MAEA,OADA,iCACA,KAIA,EADA,aACA,WAEA,CAzGA,cACA,iCACA,SAEA,uBACA,aACA,uBACA,oBACA,+BACA,qCACA,4BACA,oBACA,+BACA,oCACA,+BAGA,eACA,yDACA,oBACA,mEACA,4CACA,+BACA,2CACA,yCATA,SAYA,uBACA,2BACA,uDAGA,kBACA,uDACA,+CACA,qCALA,SAQA,qBACA,mCACA,qCACA,mCACA,SAEA,wBACA,oCACA,cAEA,yBACA,mCACA,qCACA,qCACA,qCACA,kCACA,8CACA,8CACA,cAEA,2BACA,qDACA,+CACA,sCACA,2CACA,qCACA,wCACA,sDACA,QAEA,CACA,CACA,QACA,EAkCA,MACA,IACA,iBACA,WACA,gDAIA,KApxBA,GAsxBA,0BAA4D,EAAI,EAEhE,GADA,WACA,OACA,YAEA,GACA,KAEA,SACA,uBACA,kBACA,mBACA,mBACA,UACA,mBACA,CACA,yBACA,qBACA,GACA,kBACA,oBACA,oBACA,OAEA,OACA,MACA,SACA,aACA,gBACA,cACA,kBACA,gBACA,kBACA,mBACA,qBACA,YACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,qBACA,cACA,eACA,oBACA,mBACA,wBACA,iBACA,EACA,uCACA,cACA,GACA,oBAEA,CACA,KAzjCA,WAyjCA,EAzjCA,cAyjCA,aACA,kDACA,cACA,IACA,kBACA,gBACA,qBAEA,CAEA,CA0FA,OAzFA,cACA,kBACA,kBACA,gBAEA,oBACA,sBArjBA,oBAMA,EALA,sBACA,MACA,OAEA,SAEA,IACA,wBAEA,SACA,MACA,CACA,mBACA,cACA,IACA,IACA,KAEA,CAAS,IACT,+BACA,MACA,KACA,GACA,CAAS,EACT,MACA,CACA,oBACA,wBACA,WACA,WAEA,OADA,QACA,6BAEA,4BACA,EAmhBA,OACA,wBACA,SACA,YACA,MACA,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,qBACA,cACA,eACA,oBACA,mBACA,wBACA,iBACA,CAAiB,EACjB,GACA,MAEA,CACA,CAAS,IAET,oBACA,oBACA,mCACA,kCACA,8BACA,oCACA,gCA9jBA,gBACA,IACA,EADA,KAEA,IACA,SACA,CACA,SACA,MACA,CACA,KACA,OACA,cACA,IACA,IACA,KAEA,CAAK,IACL,+BACA,MACA,KACA,GACA,CAAK,CACL,EAyiBA,OACA,MACA,YACA,MACA,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,qBACA,cACA,eACA,oBACA,mBACA,wBACA,iBACA,CAAiB,EACjB,GACA,MAEA,CACA,CAAS,IAET,CACA,CAyEA,iBAAiC,IAA+B,WAAoB,IAAW,kBAAyB,WAAmB,SAA+B,GAAR,KAAQ,oDAA2E,MAAoB,qCAAkD,IAAuB,QAAqB,mCAAmD,4BAA6D,UAA+B,SACtf,4BACA,OAAsB,uBAEtB,OADA,0BACA,gCACA,CACA,mOAKA,IACA,MAAW,CACX,WACA,kBACA,IAEA,aACA,kBACA,MAEA,oBACA,iBACA,CAAK,CACL,SACA,kBACA,IAEA,QACA,iBACA,CAAK,EAYL,oBAA4C,EAC5C,WACA,IACA,sBACA,iBACA,mBACA,MAEA,cACA,OACA,WACA,IACA,SA8RA,MACA,wBACA,EAhSA,GACA,QAEA,IACA,cAEA,oBACA,WACA,8BACA,OACA,YACA,CAAa,IAEb,CACA,CAiBA,mBACA,IACA,aACA,WACA,EAEA,WACA,OAWA,MAVA,uBACA,4BACA,2BACA,oBACA,cACA,OACA,CAAiB,CACJ,GAEb,OACA,KACA,MACA,CACA,CACA,SACA,WACA,CACA,CACA,CA/EA,0DACA,kBACA,cACA,WACA,kBAEA,mBAEA,EAAK,EAwEL,gBAIA,eACA,iBACA,OACA,wBACA,8BACA,uBACA,cACA,wEACA,yGACA,qEACA,EACA,uBACA,6BACA,uBACA,cACA,uEACA,wGACA,oEACA,CACA,CACA,CACA,cACA,2BACA,iEACA,0CAEA,cACA,0BACA,gEACA,wCACA,CACA,sBACA,EAGA,4BACA,EACA,gBAJA,IAMA,CACA,uBACA,MACA,SAEA,YACA,MACA,SAEA,cACA,OACA,sBACA,eACA,CACA,cACA,WACA,SAGA,GACA,qBAEA,WAGA,IACA,CAIA,iBACA,OAzrCA,KAyrCA,UACA,CAkBA,eACA,yBA0BA,iBACA,6CACA,CACA,iBACA,8BACA,6BACA,gBACA,sCACA,aACA,CACA,eACA,gDACA,CAnIA,YAAkB,GAAG,+BACrB,6BAmIA,UACA,cACA,UACA,4BACA,uBACA,CACA,abhgDA,EaigDA,OAAe,EAAgB,uBb//C/B,YaggDA,CACA,OACA,6BACA,CACA,aAGA,SAFA,YACA,eAGA,EADA,WACA,UAGA,EACA,yBACA,yBACA,EACA,CACA,YACA,mCACA,CACA,QACA,4BACA,wBACA,SACA,CACA,aACA,gBACA,CACA,CACA,eACA,WAIA,OAHA,sHACA,sBACA,yBACA,CACA,CAeA,eACA,4BACA,KAEA,yBAXA,GACA,sBACA,MACA,SACA,eAXA,GACA,IACA,EADA,IAEA,cACA,IACA,QACA,EAKA,GACA,oBACA,EAKA,GACA,CACA,UACA,eACA,YACA,KACA,SAEA,sBACA,YACA,yCACA,IACA,+BACA,aACA,sBACA,sBACA,SACA,GACA,MAEA,qBACA,CACA,SACA,CAEA,2BACA,CAIA,kBACA,6BACA,CAKA,YACA,2CACA,mBACA,mCACA,iDACA,mBACA,uBACA,uBACA,EACA,CAAC,OAAiB,EAClB,QACA,2BACA,6BACA,2CACA,uBACA,uCACA,qBACA,6BACA,2CACA,uCACA,uCACA,oBACA,kBACA,oBACA,4CACA,8BACA,8CACA,sCACA,EACA,CAAC,OAAyB,EAC1B,QACA,yBACA,6BACA,qBACA,iCACA,2BACA,qBACA,mBACA,+BACA,+CACA,2BACA,kCACA,EACA,CAAC,OAAyB,EAC1B,QACA,qBACA,iBACA,qBACA,EACA,CAAC,OAAoB,CAMrB,UACA,cACA,cACA,eACA,cACA,CACA,OACA,kBACA,8CAEA,gBACA,YAA4B,IAAkB,IAC9C,WAhBA,KAAiC,IAA+B,WAAoB,IAAW,kBAAyB,WAAmB,SAA+B,GAAR,KAAQ,oDAA2E,MAAoB,qCAAkD,IAAuB,QAAqB,mCAAmD,4BAA6D,UAA+B,UAgBtf,sCAEA,QACA,CACA,WACA,OACA,QACA,cACA,SACA,EAEA,GADA,SACA,mBAzBA,SAyBA,mBACA,kCACA,SACA,kCACA,8BACA,GACA,cAEA,MACA,kBAlCA,SAmCA,eACA,6BACA,kCACA,aACA,0BACA,8BACA,GACA,UAEA,MAEA,WACA,uBAEA,iBACA,WAEA,gBACA,cAEA,aACA,CACA,cACA,aACA,YAGA,YAUA,uBACA,OACA,2BAGA,uBAdA,iBACA,UACA,wBAGA,gBAYA,QACA,cAEA,cACA,CACA,CACA,iBAAqC,EAAG,GAAG,EAAS,QACpD,GACA,cACA,eACA,eACA,cACA,mBACA,8BACA,gBACA,mBACA,iBACA,sBACA,sBACA,wBACA,0BACA,gCACA,WACA,EACA,eACA,4BACA,OAEA,SACA,UACA,SACA,MACA,QACA,EA7/CA,GA8/CA,aAEA,EADA,sBACA,qBAEA,QACA,EACA,MACA,yBACA,OAEA,uBACA,yBACA,gCACA,OACA,kBACA,oBAEA,YACA,aACA,mBACA,2BACA,iCACA,6BACA,qCACA,iCACA,qCACA,uCACA,2CACA,aACA,qBACA,uCACA,uCACA,qCACA,2BACA,6BACA,mCACA,mCACA,+BACA,+BACA,gBACA,mBACA,mEACA,gCAEA,mBACA,2CAEA,OACA,0DAEA,CAAqB,CACrB,qBACA,mEAGA,qCACA,iBACA,8CAEA,6CACA,CAAqB,CACrB,yBACA,6CACA,CAAqB,CACJ,EACjB,IACA,QACA,WACA,SACA,MACA,CAAqB,EACrB,YAEA,EACA,6BACA,uDAEA,2BACA,kCACA,kCAGA,KAEA,2BACA,uBACA,+BAGA,oBACA,KAGA,uBANA,KASA,WACA,gBACA,WACA,MACA,4CACA,YACA,iBACA,KAEA,CACA,OACA,aACA,SACA,QAEA,GADA,aACA,GACA,4CAEA,QADA,WAEA,SACA,WACA,IACA,KACA,CACA,CACA,cACA,iBACA,wBACA,6BACA,mBACA,KAEA,QADA,qBACA,CACA,IACA,KACA,CACA,CACA,CACA,CACA,CACA,CACA,OACA,aACA,2BAEA,KACA,CACA,aACA,sBACA,UACA,CACA,OACA,iBACA,SACA,6BACA,cACA,CAAiB,EACjB,wBACA,iCACA,2BACA,QACA,eAA4B,GAAa,EACzC,6BACA,kCACA,oCACA,0BACA,6BACA,8BACA,qBAGA,CACA,OACA,6BACA,YACA,CACA,CAAiB,EACjB,wBACA,iCACA,qBACA,MACA,EACA,iBACA,qBACA,kBACA,iBAGA,cACA,mBACA,8BACA,gBACA,sBACA,sBACA,wBACA,iBACA,mBACA,EACA,yBACA,6BAGA,eACA,qBACA,2BACA,yEACA,gBACA,iBACA,6HACA,gBACA,gCACA,uBACA,EACA,cACyB,EAEzB,KACA,CACA,kBACA,eACA,kBACA,2BACA,gBACA,YACA,YACA,YACA,UACA,uCACA,UACA,MACA,CAAyB,EAEzB,MACA,SAFA,qGAGA,UACA,QACA,6BACyB,CACzB,CACA,4EACA,eACA,OAEA,sCACA,yBACA,WACA,0BACA,qBAIA,OAHA,UAKA,CAgBA,GAfA,IACA,GACA,cACA,aAA0C,CAC1C,YAAyC,CACzC,mBAAgD,EAEhD,wBACA,mCAEA,YACA,qBACA,6CACA,6CAEA,mBACA,0EACA,cACA,uBACA,IACA,mBACA,4CACA,CACA,SACA,4BAGA,+CAIA,aAHA,YACA,mCAEA,sBACA,kCACA,gCACA,kCACA,mCACA,OACA,iBAGA,qBAIA,4BAGA,iCACA,kCACA,mBAGA,CAEA,KACA,CACA,gBACA,2EACA,OAEA,kDACA,2BACA,2BACA,eACA,iCACA,4BACA,yEACA,mBAroBA,SAsoBA,QAtoBA,MAsoBA,KAGA,sBACA,oBACA,wBAEA,qCAxoBA,gBACA,SACA,SAEA,uBACA,WAGA,gBACA,4CAGA,cAGA,kBACA,EAynBA,wBACA,sBACA,uBACA,oBAGA,mBACA,WACA,KACA,yCAEA,MACA,CAA6B,GAE7B,wBACA,CAAqB,CAGrB,CACA,EACA,qBACA,sDAEA,8CAEA,2BACA,qBACA,OAEA,qBACA,WACA,2BACA,yBAEA,WACA,8CAEA,MAEA,qBACA,yBAEA,qEACA,yCACA,OACA,oCACA,sCACA,iBACA,CAAqB,GAGrB,CACA,CACA,QACA,CACA,aACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBACA,kBACA,aACA,cACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,uBACA,aACA,aACS,CACT,CACA,SACA,eACA,2BACA,CACA,WACA,eACA,8BACA,WACA,CACA,WACA,kBACA,CACA,OACA,eACA,yBACA,CACA,SACA,eACA,4BACA,WACA,CACA,QACA,8BACA,0BACA,CACA,CACA,iBACA,YACA,gCACA,CACA,0BACA,cAEA,SAEA,OACA,mBACA,SACA,iBACA,uBACA,SAEA,eAEA,QACA,EAZA,MACA,CAYA,wBACA,YAEA,SAEA,OACA,eAAY,GAAa,QACzB,QAGA,UAGA,OACA,EAXA,IACA,CAmBA,UACA,EAGA,SACA,IACA,cACA,CACA,SACA,gBACA,WACA,CAEA,QACA,CACA,CAAK,CAbL,EAiBA,iBAAiC,IAA+B,WAAoB,IAAW,kBAAyB,WAAmB,SAA+B,GAAR,KAAQ,oDAA2E,MAAoB,qCAAkD,IAAuB,QAAqB,mCAAmD,4BAA6D,UAA+B,SACtf,UACA,eACA,IACA,uBACA,uBACA,YACA,iBAGA,6BACA,iBAGA,SACA,CACA,mBAEA,iBACA,aACA,WACA,UACA,+BACA,4BACA,mHACA,GACA,WACA,cAEA,mBACA,oCAGA,6BACA,CAAK,GASL,OARA,aACA,cACA,qBACA,iBACA,yBACA,aACA,UACA,CAAK,EACL,CACA,CAoJA,sBAA8B,2EAA8E,EAwB5G,mBAvBA,aACA,YACA,OACA,eACA,OAEA,iBACA,yBACA,wBACA,GACA,KACA,SACA,OACA,CAAa,CACb,MAEA,GACA,KACA,eACA,cACa,CAEb,CAAK,kBACL,EACA,CAkBA,qCACA,eAuGA,mBAEA,EAoBA,OApBA,EADA,GAEA,uBACA,yCACA,oBACA,sCACA,uBACA,yCACA,wBACA,yCAGA,UADA,MADA,4BACA,QAUA,IAPA,oBAGA,UADA,MADA,kCACA,QAKA,IAFA,CAGA,CACA,mBACA,eACA,GAEA,YACA,uBAEA,aACA,CACA,UACA,IACA,GARA,EASA,CA+IA,oBAAyC,sBAA4B,IACrE,WAEA,EADA,yBACA,WAEA,gBACA,+BACA,iEACA,uGACA,0CACA,8FACA,cACA,UACA,QACA,GACA,GAGA,8CACA,4BACA,wBACA,MACA,6EACA,CAAS,CACT,OACA,+EACA,oBACA,IACA,uBACA,CACA,SACA,CAEA,QACA,CACA,CAAK,EACL,QACA,8CACA,4BACA,wBACA,UACA,UACS,CACT,CAAK,GA3BL,KACA,CA2BA,CAyKA,kBAAqC,MAMrC,EALA,wBACA,MACA,WACA,CAGA,cACA,gBAEA,MAxrBA,sBAA4B,4BAAqC,MAUjE,EATA,oBACA,WACA,EAEA,kDACA,uCACA,oBACA,IACA,KAEA,YACA,mBACA,YACA,gBACA,IACS,GACT,KACA,MACA,CAAK,KACL,eACA,YACA,CAAgB,qBAAmB,MACnC,oBACA,EACA,GACA,SAEA,QACA,IACA,IACA,cACA,iBACA,CAAS,EACT,wDACA,QACA,wBACA,aACA,aACA,CAAK,KACL,WACA,CAAK,GACL,GACA,oBACA,oBACA,eACA,CACA,eACA,iBACA,CAAK,CACL,EAsoBA,GACA,EAtoBA,6BAAwC,2EAAwF,EAChI,2BACA,WACA,EAEA,+BACA,4BACA,GACA,mBACA,KACA,OACA,KACA,IACA,YACA,kBACA,OAEA,WACA,IACA,sBACA,sBACA,YACA,WACA,KACA,aACA,WACA,KACA,WACA,SAGA,aACA,qBACA,eAEA,oBACA,eAGA,MACA,MACA,OACA,YAEA,WACA,IACA,wBACA,cACA,uBACA,eACA,UAGA,mBACA,IACA,QAEA,kCACA,MACA,OAEA,iBACA,SAAoB,aAAmB,EACvC,OACA,WACA,KACA,IACA,IACA,cAA8C,cAAa,CAC9C,CACb,EAsBA,OApBA,gBACA,mCACA,0BACA,WACA,YACA,YACA,OACA,uBACA,cACA,kBACA,gBACA,+BACA,KACA,oBACA,iBACA,MACA,CAEA,iBACA,CAAK,EACL,QACA,iBACA,CAAK,CACL,EAuiBA,GACA,QACA,EA9gBA,2BAAsC,EAAkB,MAAI,EAAK,EACjE,SACA,KAaA,mBAZA,cACA,WACA,OACA,iBACA,GACA,gBACA,gBACA,CAAa,EACb,IACA,IAEA,CAAK,QACL,EACA,EA8fA,GACA,KACA,CAAK,EACL,EA9fA,kBAA6B,4OAAqO,EAClQ,cACA,YACA,cACA,mBAGA,GAFA,cACA,oBACA,IACA,IACA,iBACA,eACA,OAEA,QACA,4BACA,gBACA,OAEA,YACA,YACA,KACA,MACA,mBACA,UACA,MACA,CAAS,EACT,kBACA,+BACA,cAEA,MACA,WACA,UACA,QACA,aACA,CAAS,EACT,MACA,MAAgB,+BAChB,MAAgB,cAAiB,EACjC,aACA,mBACA,EACA,8CAA+D,EAAK,KACpE,YACA,UACA,UACA,WACA,UACA,gBACA,aACA,CAAqB,EACrB,MACA,MAA4B,iCAC5B,MAA4B,eAA6B,CACzD,CACA,CAAa,CAEb,CACA,gBACA,gBACA,OACA,iBACA,2BACA,YACA,iBACA,OACA,KACA,IACA,CAAa,CACb,CACA,CAEA,OADA,gDACA,sBACA,gBACA,MACA,WACA,iBACA,EAEA,8EACA,GACA,uCACA,yCACA,wCACA,0CACA,gDACA,2CACA,CAWA,OAVA,UACA,oBAnvCA,6BACA,6CAaA,OAZA,8BACA,EACA,CACA,OACA,QACA,kBACA,CAAiB,IACjB,UACA,kBAEA,CACA,CAAS,EACT,eAAuD,KACvD,EAouCA,WACA,MACA,OACA,YACA,YACA,CAAiB,CACjB,CAAa,CACJ,SAET,QACA,iBACA,CAAK,CACL,EAyZA,GACA,EAvIA,6BAAwC,2EAAwF,EAChI,sBACA,YACA,OACA,eACA,OAEA,gBAAgB,mCAA2C,EAC3D,GACA,OACA,cACA,cACA,SACA,QACA,cACA,CAAS,CACT,CAAK,iBACL,GACA,kBACA,mBACA,oBACA,0BACA,wBACA,CACA,eACA,iBACA,CAAK,CACL,EA4GA,GACA,SACA,SACA,SACA,QACA,eACA,EA1XA,2BAAkC,+BAA6C,MAAI,EAAK,MAmCxF,EAkBA,EApDA,gDACA,WACA,EAEA,2CACA,kDACA,mBACA,WACA,IAAoB,aAAc,sBAQlC,MAPA,wBACA,GACA,KACA,UACA,YAA6B,UAAa,EACzB,EAEjB,YACA,CAAS,CACT,CAAK,EACL,2CACA,kDACA,mBACA,SACA,IAAoB,aAAc,sBAQlC,MAPA,wBACA,GACA,KACA,UACA,gBAAgC,EAAO,CACvC,CAAiB,EAEjB,YACA,CAAS,CACT,CAAK,EAEL,oCACA,oCACA,+CACA,mBACA,SACA,IAAwB,aAAc,sBAQtC,MAPA,wBACA,GACA,KACA,UACA,SACA,CAAqB,EAErB,YACA,CAAa,CACb,CAAS,GAGT,wCACA,wCACA,mDACA,mBACA,SACA,IAAwB,aAAc,sBAQtC,MAPA,wBACA,GACA,KACA,UACA,aACA,CAAqB,EAErB,YACA,CAAa,CACb,CAAS,GAET,SACA,sBACA,qCAGA,oBACA,gCAEA,wBACA,wCAEA,uBACA,uCAGA,SA6CA,OA5CA,oCACA,MACA,kCACA,mCAEA,kDACA,mBACA,WACA,IAAwB,aAAc,uCAgBtC,MAfA,wBACA,GACA,KACA,UACA,MACA,CACA,OACA,UACA,MACA,KACA,CAC6B,CAC7B,CACqB,EAErB,YACA,CAAa,CACb,CAAS,EACT,kDACA,mBACA,SACA,IAAwB,aAAc,uCAUtC,MATA,wBACA,GACA,KACA,UACA,SACA,CAA8B,mBAAuD,CACrF,CACqB,EAErB,YACA,CAAa,CACb,CAAS,CACT,CAAK,EACL,QACA,uCACA,uCACA,yCACA,6CACA,oCACA,uCACA,uCACS,CACT,CAAK,CACL,EA6OA,GAAyD,MAAoB,EAC7E,cACA,WAjMA,oBAAwC,qDAAqE,MAAI,EAAK,EACtH,kDACA,yDACA,mBACA,aACA,YACA,0BAEA,OAAoB,aAAc,4FAalC,MAZA,wBACA,GACA,KACA,UACA,KACA,WACA,QACA,UACA,CAAqB,CACrB,sBACA,CAAiB,EAEjB,YACA,CAAS,CACT,CAAK,EACL,qDAqBA,OApBA,4DACA,mBACA,SACA,YACA,sBAEA,OAAoB,aAAc,4FAWlC,MAVA,wBACA,GACA,KACA,UACA,QACA,UACA,CAAqB,CACrB,sBACA,CAAiB,EAEjB,YACA,CAAS,CACT,CAAK,EACL,QACA,8CACA,gDACA,CAAK,CACL,EAgJA,GACA,KACA,CAAS,EACT,gBACA,GAvHA,iBAA4B,QAAa,EACzC,oBACA,MACA,WACA,EAEA,SACA,cACA,aACA,2BACA,mBASA,OARA,SACA,SACA,0BACA,cACA,8BACA,EACA,6CACA,CAAS,EACT,CACA,EACA,mCACA,mBAQA,OAPA,WACA,eACA,IACA,KACA,YAEA,CAAa,KACb,iBACA,CACA,CAAK,EAKL,OAJA,YACA,YACA,CAAK,EACL,UACA,QACA,iBACA,CAAK,CACL,EA+EA,KAGA,MAjFA,YACA,QAAY,yEAAwE,EACpF,KACA,UACA,uBACA,oDACA,OACA,oBACA,SACA,kBACA,YAAwB,IAAW,KAEnC,mBAAoB,4CAAuD,EAD3E,cAEA,gBACA,gBAGA,QACA,iBACA,cACA,eACA,WACA,CAAa,CACb,CACA,GAAsB,SAAQ,CAC9B,CAAK,EAEL,OADA,IACA,uBACA,EAqDA,GACA,EArDA,cAAqC,oBAAuB,EAC5D,2BACA,oBAEA,yCACA,uBACA,IACA,GACA,QACA,MACA,CAAqB,CACJ,CACjB,CACA,SACA,CACA,4BACA,CACA,CAAK,EAdL,MAgBA,EAkCA,GACA,KACA,uBACA,2CAEA,eACA,yBACA,uDACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,iBACA,CAAK,CACL,CACA,eACA,0BAEA,eACA,6BACA,qBACA,oCACA,mCACA,CAEA,SACA,eACA,oBACA,uCACA,sCACA,CACA,eACA,oCACA,gCACA,WAMA,OALA,IACA,sBACA,WACA,YAEA,CACA,CACA,YACA,iCACA,6BACA,oCACA,CACA,mBACA,0CACA,mBACA,EACA,UAEA,EAEA,CACA,kBACA,iCACA,wCACA,CACA,SACA,OACA,uCACA,uCACA,MACA,CACA,qCACA,oCACA,CACA,sBACA,wCAKA,OAJA,IACA,UACA,qCAEA,CACA,CACA,sBACA,wCAKA,OAJA,IACA,UACA,qCAEA,CACA,CACA,CAEA,iBAAiC,IAA+B,WAAoB,IAAW,kBAAyB,WAAmB,SAA+B,GAAR,KAAQ,oDAA2E,MAAoB,qCAAkD,IAAuB,QAAqB,mCAAmD,4BAA6D,UAA+B,SACtf,SACA,cACA,wCACA,2CACA,CACA,YACA,CACA,kBACA,CACA,eACA,CACA,CACA,SACA,eACA,yBACA,sCACA,wCACA,4CACA,6BACA,+BACA,2CACA,yDACA,iIACA,qBACA,+BACA,gEAEA,CACA,aACA,uBACA,iBACA,gDACA,CACA,mBACA,mBACA,CACA,kBACA,iBACA,MACA,CACA,8BACA,YACA,MACA,CAAiB,CACjB,CACA,WACA,SACA,cACA,iBACA,CAAS,EACT,6DACA,mBACA,sCACA,+CACA,kHACA,CACA,iBAEA,0BACA,WAFA,EAEA,aAGA,CADA,SADA,OAIA,8CACA,MACA,OACA,qDACA,GACA,qCACA,CACA,+BACA,eACA,sBACA,sCACA,2CACA,oCACA,qBAGA,OAFA,yCACA,sCACA,CACA,sBACA,4BACA,MACA,mBACA,MACA,CACA,8BACA,YACA,iBAC6B,CAC7B,CACA,WACA,SACA,cACA,iBACA,CACA,CACA,CACA,aACA,aACA,yBACA,KAEA,gBACA,QAEA,gBAEA,OADA,0EACA,CAEA,6BACA,sBACA,iBAoBA,OAnBA,wBACA,qBACA,WACA,SACA,aACA,EACA,+BACA,4CACA,oCACA,CAAyB,EACzB,2BACA,sCACA,CAAyB,EACzB,8BACA,2BACA,CAAyB,EACzB,yBACA,2BACA,CAAyB,EACzB,CAEA,cACA,kBACA,kBAIA,OAHA,6BACA,2BACA,CAAyB,EACzB,CAEA,wBACA,QAEA,0BACA,yBACA,eACA,uBACA,cAEA,OADA,iCACA,CAEA,wBACA,yBAGA,OAFA,iCACA,2CACA,CAEA,cACA,QAEA,mBAIA,OAHA,0BACA,oCACA,CAAyB,EACzB,CAEA,2BAMA,OALA,iCACA,4CACA,4FACA,qCACA,CAAyB,IACzB,CAEA,CAEA,CACA,QACA,CACA,iBACA,eACA,+CAEA,oBACA,sBAGA,sBAGA,QACA,CACA,kBACA,uDACA,CACA,uBACA,4DACA,CACA,qBACA,qCACA,kBACA,yBACA,yBACA,CAAa,CAEb,CACA,uBACA,+BACA,aACA,kBACA,yBACA,2BACA,CAAa,CAEb,CACA,CAEA,SACA,OACA,CACA,gBACA,CACA,sBACA,CACA,QACA,CACA,CACA,SACA,eACA,4BACA,wBACA,6BACA,yBACA,mCACA,qBACA,WACA,CACA,OACA,aACA,wCACA,CACA,mBACA,WAEA,uBADA,OAGA,uBACA,kDACA,UACA,sBACA,MACA,2BACA,mBACA,sBACS,IACT,8CACA,8BACA,sBACA,uBACA,MACA,mBACS,GACT,QACA,sBACA,+BACA,sGACA,8BACA,mBACA,sDACA,CAAa,IACb,CAAS,GACT,CACA,uBACA,oCAEA,iEACA,CACA,uBACA,WACA,oEACA,mBACA,qBAGA,OAFA,2BACA,mCACA,CACA,CACA,CAAS,EACT,CACA,QACA,iCACA,IACA,GACA,CACA,SACA,CACA,CAAS,EACT,wBACA,4BACA,mDACA,CACA,CAEA,SACA,QACA,CACA,SACA,CACA,WACA,CACA,OACA,CACA,SACA,CACA,WACA,CACA,YACA,CACA,gBACA,CACA,mBACA,CACA,CAEA,SACA,eACA,qCACA,wBACA,6BACA,8CACA,CACA,uBACA,2BACA,iBACA,QACA,WACA,SACA,YACA,CACA,QACA,aACA,WACqB,CAErB,CAAa,EACb,wBACA,CACA,oBACA,kCAEA,gCACA,qCACA,CACA,sBACA,gBACA,OACA,OACA,KACA,aAEA,KACA,gBACA,MACA,wBAWA,6BAVA,0BACA,QACA,UACA,2CACA,WACA,OACA,EAAqB,CACrB,CAAiB,GAIjB,kBACA,CACA,YACA,aACA,2BACA,CACA,QACA,yBACA,oCACA,CACA,gCACA,CACA,CAEA,SACA,cACA,yBACA,cACA,CACA,mBACA,0BACA,sCACA,CACA,SACA,cACA,eACA,SAn5DA,MACA,iCACA,EAi5DA,KACA,yBACA,cACA,CAAa,GAEb,yDACA,CACA,UACA,CACA,CAIA,IACA,kCACA,uCACA,6BACA,WAAqB,GAAc,4FACnC,4BACA,CACA,CACA,SACA,gDACA,CACA,OAn2GA,OAo2GA,gBAA4B,MAsE5B,EArEA,SAAY,kbAAke,oBAAqB,iIACngB,cACA,0LAAqN,EAnyCrN,EAoyCA,EACA,UACA,uBAEA,KACA,MACA,IACA,wBACA,MAEA,CACA,SACA,IACA,CAEA,SACA,yCAEA,UACA,WACA,CAEA,mCACA,gBAEA,WACA,aACA,CACA,SACA,QACA,oBACA,SACA,SACA,UACA,SACA,UACA,OACA,QACA,QACA,OACA,QACA,YACA,UACA,SACA,WACA,EACA,WACA,EACA,GACA,oBACA,CACA,UACA,WACA,eACA,kBACA,kBACA,kBACA,qBACA,wBACA,6BACA,8BACA,EACA,GAEA,IACA,SA/mEA,UACA,+CACA,8CACA,SAEA,uDACA,kDACA,SAEA,yBACA,kCACA,WACA,aACA,0CAEA,GACA,YACA,eAEc,mBACd,QACA,EAEA,IA0lEA,QACA,MACA,mBACA,kBACA,wBAOA,OAJA,GACA,IACA,SAEA,CACA,EACA,UASA,GARA,EACA,eACY,GAAc,qEAF1B,EAGA,wBACA,mCAJA,EAKA,4BACA,4BAEA,EACY,GAAc,yBAT1B,GAS0B,UAE1B,MACA,OACA,aACA,QAdA,GAeA,8BACA,YACA,EACA,gCACA,CACA,4BACA,EArBA,EAsBA,SAEA,oCACA,gCACA,sBACA,MAEA,KACA,cACA,KACA,GACA,0BACA,QACA,MAEA,CACA,EACA,UACA,GACA,4BACA,MACA,mBACA,KACa,CACJ,CACT,EACA,QACA,4BACA,MACA,iBACA,KACS,CACJ,EACL,QACA,4BACA,MACA,yBACA,IACA,CAAS,CACJ,EAQL,UACA,aACA,oBATA,MACA,4BACA,MACA,4BACA,KACS,CACJ,CAIL,CAAK,EACL,uEACA,OACA,QACA,UACA,aACA,oBACA,2BACA,aACA,CAAS,EACT,mBACA,aACA,aACA,cACA,kDACA,4DACa,EAEb,cACA,YAmTA,KACA,IACA,SACA,KACA,MACA,CACA,SAEA,OADA,mDACA,MACA,CACA,EA7TA,GACA,UACA,WACA,iBACA,4BACA,MACA,yBACA,KACa,CACJ,EACT,eACA,aACA,gBACA,kBACA,gBACA,kBACA,iBACA,cACA,CAAK,EACL,mDACA,6BACA,OACA,QACA,aACA,WACA,eACA,aACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBACA,iBACA,kBACA,aACA,cACA,eACA,eACA,WACA,iBACA,gBACA,oBACA,iBACA,kBACA,uBACA,CAAa,CACb,SACA,CAAS,EACT,YACA,MACA,OAEA,GACA,aACA,MACA,0BACA,WACA,WACA,CAAa,CACJ,IACT,UACA,UACA,wBACA,MAtjFA,cACA,WAAY,oeAA6gB,MAuCzhB,aACA,MACA,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,iBAnDA,OACA,CACA,SACA,QACA,oBACA,SACA,SACA,UACA,SACA,UACA,OACA,QACA,QACA,OACA,QACA,YACA,SACA,EACA,OACA,GACA,EAgCA,kBACA,aACA,cACA,eAlCA,kBAEA,CACA,UACA,WACA,eACA,kBACA,+BACA,kBACA,kBACA,qBACA,sBACA,uBACA,EACA,OACA,GACA,EAmBA,iBACA,eACA,eACA,qBACA,cACA,eACA,oBACA,mBACA,wBACA,kBACA,oBACA,CAAK,CACL,EAg/EA,UACA,UACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,gBACA,kBACA,cACA,aACA,UACA,iBACA,eACA,eACA,gBACA,UACA,eAEA,UACA,sBAEA,OACA,uCAEA,CAAa,CACb,qBACA,oBACA,iBACA,8BAEA,yBACA,CAAa,CACb,yBACA,wBACA,CAAa,CACb,iBACA,CAAS,EACT,MACA,uDAEA,GACA,qBACA,MACA,OACA,wBACA,CAAa,CACJ,EACT,0BACA,mEACA,kEACA,EACA,KACA,IACA,SACA,KACA,QACA,aACA,aACA,sBACA,4BACA,MACA,SACA,WACA,CAAqB,CACJ,EACjB,yBACA,4BACA,MACA,2BACA,KACqB,CACJ,EACjB,WACA,uBACA,4BACA,MACA,yBACA,IACA,CACA,CAAiB,EACjB,cACA,4BACA,MACA,gBACA,KACqB,CACJ,EACjB,yBACA,4BACA,MACA,2BACA,KACqB,CACJ,EACjB,uBACA,4BACA,MACA,yBACA,KACqB,CACJ,EACjB,yBACA,4BACA,MACA,2BACA,KACqB,CACJ,EACjB,mBACA,aACA,4BACA,MACA,eACA,KACqB,CACJ,EACjB,gBACA,GACA,4BACA,MACA,oBACA,KACyB,CACJ,CACrB,CAAiB,CACjB,oBACA,GACA,4BACA,MACA,wBACA,KAEA,CAAqB,CACrB,CAAiB,CACjB,aACA,cACA,iBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBACA,WACA,YACA,eACA,eACA,uBACA,eACA,MACA,kBACA,cACA,aACA,kBACA,gBACA,kBACA,iBACA,iBACA,UACA,gBACA,oBACA,oBACA,wBACA,iBACA,sBACA,QAAyB,GAAc,GACvC,QADuC,SACvC,uCACA,2CACA,oBACA,kBACA,eACA,eACA,MACA,cACA,SACA,CAAyB,CACJ,CACrB,EAAiB,QACJ,GAAI,EAEjB,sBACA,IACA,4BACA,CACA,SACA,eACA,CACA,CAAS,EACT,WACA,KACA,mBACA,EAuBA,MAtBA,qCACA,iCACA,KAGA,kCACA,GACA,yBACA,OAA4B,CACX,EACjB,wBACA,GACA,CAAa,GACb,sBACA,GACA,aACA,OAA4B,CACX,EACjB,YACA,GACA,CAAa,WAEb,KACA,kBACA,aACA,SAhvDA,QAkvDA,CACA,CACA,SACA,eACA,CACA,CAOA,aACA,oBAPA,YACA,MACA,+DAEA,IACA,EAsBA,qCAiFA,eAEA,OADA,cACA,OACA,CAKA,eAEA,OADA,cACA,OACA,CAKA,iBACA,oCAIA,6CACA,wBAEA,iCAGA,iBAGA,qBACA,eAGA,+BACA,MACA,iBAEA,QAAiB,SAAS,UAC1B,CAAO,CACF,EAGL,yBAEA,CAKA,eAEA,OADA,UAJA,aAKA,CACA,CAQA,eACA,mBAEA,wBAIA,MAHA,CAIA,CAGA,qBASA,iBARA,MAQA,WARA,EACA,SAGA,CACA,CAtFY,CAxDZ,WAIA,OACA,qBACA,oBACA,cACA,oBACA,iBACK,EAsCL,eACA,eACA,CAAK,CAIL,KAsIA,gBACA,YACA,kBACA,oBACA,qBACA,kBACA,aACA,oBACA,CAQA,UAGA,YACA,EACA,EAEA,KACA,CACA,qBACA,mBACA,gBAGA,4BACA,gCACA,uCACA,eACA,sCACA,0BACA,CAGA,mBAzEA,EA0EA,OA1EA,EA0EA,KAEA,uBACA,CAAK,CA3EE,IACH,EAAQ,GAeV,QAAI,uBACN,sBACA,GAAU,EACV,IACU,EAAQ,IAFA,GAEA,QAClB,CAAU,SAEV,CAGA,oBACA,CACA,CAAG,GAvBD,EAAQ,QAEV,EAFU,GAGV,MAAgB,EAAW,EAAQ,QAAX,EAAW,IACnC,MACA,EAAe,WAEf,EAiEA,qBACA,IAEA,gBACA,qBACA,kBACA,CACA,CAGA,kBACA,gBACA,iBAGA,yBACA,qCAEA,CAGA,qBAkKA,EAjKA,0BAkKA,aAlKA,EAkKA,UAKA,mDAvKA,EAuKA,2BAQA,MA/KA,EA+KA,SACA,CAhLA,EAgLA,0BAhLA,EAgLA,kCAhLA,EAgLA,yBAKA,GArLA,EAqLA,YAQA,EA7LA,EA6LA,uBA7LA,EA6LA,aA7LA,EA6LA,WA5LA,OAGA,OACA,0BACA,kBAEA,aACA,MACA,EAIA,6EAKA,qBAGA,yBACA,4BAEA,CAGA,+BACA,wBACA,CAGA,6BACA,sBACA,CAGA,iBACA,YACA,yBACA,CAGA,qBACA,+BACA,cACA,CAAK,CACL,CAGA,cACA,yCACA,CAGA,eACA,SAEA,OAiBA,aAfA,yBACA,sCACA,wFAEA,kCACA,kFAIA,8BACA,SAEA,CAAK,EAGL,IACA,8BAEA,OACA,6BACA,yBAEA,CAGA,qBACA,2BAEA,CAGA,wBACA,mBACA,mDACA,oDAGA,YAAY,qBAA8B,EAG1C,GAJA,OAIA,CAGA,iEACA,2CAEA,GACA,eACA,kBACA,sBACA,gCACA,MACA,UACA,qBACA,0BACA,mBACA,YAGA,eACA,CAAS,EAGT,8BACA,MACA,CAGA,QACA,OACA,eACA,kBACA,sBACA,yBACA,MACA,UACA,qBACA,0BACA,aACA,SACA,CAAS,EAGT,6BACA,CACA,CAGA,uBACA,yBACA,sCAGA,wBAA8B,SAAY,6BAC1C,CACA,CAEA,8BAmCA,cACA,qBACA,CAoDA,YACA,GAEA,OACA,yBACA,eACA,KAEA,EAGA,YACA,2BACA,mCACA,yBACA,mBACA,qBACA,wBACA,CAAC,UAA4B,EAI7B,gBACA,KACA,QACA,aACA,OACA,OACA,MACA,QACA,eACA,cACA,WACA,gBACA,wBACA,EAyBA,MAGA,IACA,kBACA,OAGA,eA6DA,GACA,WAAU,aAAkB,SAQ5B,OAGA,EAFA,uBAGA,OAGA,IACA,4BACA,EAAc,SAAgB,IAAW,oBAAsB,cAC/D,CAAI,SACJ,aACA,CAEA,cAAW,YACX,EAvB4B,GAE5B,WACA,eAAoB,OAAiB,EACrC,UACA,CAAG,CACH,EApEA,GAEA,MACA,OAGA,uBACA,mBAGA,GACA,iBACA,GACA,UACA,WACA,YACA,YACA,aApYA,gBACA,kBACA,EAqYA,gBACA,EACA,aAIA,OACA,EAIA,iBACA,yBACA,0BACA,0BACA,OAqDA,iBArDA,OAEA,OACA,UACA,OACA,CACA,SACA,MACA,KACA,kBACA,qCACA,uCACA,gBACA,iBACA,SACA,WA9EA,YACA,SAIA,YAHA,uDACA,sDAEA,EACA,cACA,QAEA,yCACA,aAGA,UAIA,QACA,EA4DA,aACA,CACA,EACA,EACA,CACA,CAiGA,OAEA,CAEA,SAkGA,SACA,GAEA,IACA,YACA,gBACA,OACA,cACA,YACA,kBACA,kBACA,iBACA,eACA,CAAI,QAGJ,uCACA,KAGA,CACA,QAAa,EAAU,GAAG,EAAc,EACxC,MAAW,GAAe,GAC1B,IAAS,GAAe,GACxB,GAF0B,EAE1B,EACA,MAFwB,KAGxB,EACA,aACA,kBACA,iBACA,CAAK,CAEL,EAjIA,MAuCA,YACA,aAAU,kCAAuC,EAEjD,EAAgB,GAAe,GAC/B,OACA,MAF+B,CAG/B,OACA,QACA,QACA,WACA,CACA,EAhDA,WAkDA,YACA,IACA,YACA,OACA,kBACA,WACA,cACA,kBACA,6BACA,2BACA,iBACA,iBACA,eACA,gBACA,YACA,eACA,OACA,CAAI,SAGJ,MACA,KAGA,CACA,QAAa,EAAU,GAAG,EAAK,EAC/B,MAAW,GAAe,GAC1B,IAAS,GAAe,GACxB,GAF0B,EAE1B,EACA,MAFwB,KAGxB,EACA,kBACA,kBACA,WACA,iBACA,6BACA,2BACA,iBACA,eACA,cACA,eACA,CAAK,CAEL,CA5FA,EAKA,YACA,EACA,GAEA,eAAY,EAAQ,6CACpB,CAWA,eACA,6BACA,EAIA,KAHA,IAIA,CAEA,SAAS,GAAe,GAGxB,QAAW,IAA4B,CAHf,CAGe,iCACvC,CAiGA,eACA,oCAEA,uCADA,gCAEA,CASA,eACA,SACA,KACA,uBACA,GAVA,SAUA,EAVA,QAUA,CACA,SACA,uBACA,WACA,eACA,8BACA,GACA,SAEA,CAEA,QAA0B,wCAAmE,CAC7F,CAGA,0CACA,CAKA,eACA,oCAEA,gCADA,8BAEA,CAKA,eACA,oCAEA,wCADA,8BAEA,CAKA,YACA,EACA,EACA,EACA,GAEA,cACA,WAEA,EAAc,GAAe,GAE7B,OACA,MAH6B,WAI7B,OACA,QACA,MACA,MACA,QAC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B,IACtD,2BACA,eACA,YACA,MACA,sBACA,SACA,KACA,cACA,iBACA,eACA,MACA,CAAS,CACF,CACF,EAGL,gDACA,CAAG,CACH,CA2DA,YACA,EACA,GAEA,eAIA,WHrvMA,cACA,IGwuM2B,EHxuM3B,cACA,2BACA,WAYA,WAZA,EAYA,SAZA,GAQA,GARA,KAQA,GARA,EACA,EGqvMA,OAhBiC,QAAS,KAoB1C,iBACA,UAIA,IAEA,CAGA,eACA,MACA,OAGA,sBAEA,IACA,sBACA,0BAGA,gCACA,qCAGA,0BACA,YACA,0BAGA,qBACA,cAGA,4BACA,oBAII,SAEJ,CAGA,CAGA,eACA,MACA,OAGA,qBACA,wBACA,CAGA,eACA,IACA,sBACA,UAGA,gCACA,qBAGA,yBACA,cAGA,MACA,eAEI,SAEJ,iCACA,CAIA,uCAIA,YACA,EACA,GAEA,MACA,OACA,UAAiB,CACjB,YACA,OACA,aACO,EAIP,OAAoB,YACpB,iBAIA,OAHA,oBAEA,UACA,CACA,CAGA,YACA,EACA,GAEA,MACA,YAGA,IAAU,kFAA2E,EAerF,MAbA,CACA,OACA,YACA,UACA,OACA,KAAU,QAAiB,EAC3B,SACA,aACA,UACA,UACA,CAAK,CACL,CAGA,CAGA,eACA,OACA,UAAe,CACf,OACA,OACA,yBACK,CAEL,CAGA,YACA,EACA,EACA,GAEA,iCACA,OAGA,MACA,OACA,SACA,EAGA,MACA,OACA,UACA,MACA,EAGA,OACA,UACA,MACA,EAEA,CAAU,mBAAiC,SA8B3C,GAGA,0BACA,OACA,MACA,EAGA,eAr7MA,KAs7MA,WAkCA,GACA,WACA,gBAGA,0BAAyD,IAAzD,GAAyD,EAAgB,IAAhB,CACzD,EAxCA,GAEA,MACA,gBAz7MA,aA27MA,EACA,CACA,OACA,iCACA,EAGA,CACA,QAAe,EAAc,GAC7B,4BAEA,CAEA,KACA,IAEA,OACA,KAFA,aAGA,CACA,CAAM,SAEN,CAGA,OACA,MACA,CACA,EAxE2C,GAQ3C,OAPA,SACA,eACA,UACA,UACA,GAGA,CACA,CAGA,iBACA,4CACA,sBAKA,OAHA,qBACA,SAEA,C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,CAEA,EAAK,IACL,yBAKA,sCAKA,cARA,OAaA,2BAEA,OADA,MACA,EAGA,8BAIA,wCACA,wCACA,SAQA,GACA,uBAEA,MACA,CAEA,uBACA,6CAKA,wBAIA,iBACA,mCAGA,IACA,sBACM,SACN,uBACA,EAAM,OACN,uBAEA,GAMA,sBAEA,CACA,EAGA,oBACA,2CACA,gBAEA,CAGA,UAAc,4BACd,eAEA,8BACA,wCACA,SAIA,WACA,UACA,4BACA,MACA,QACA,OACA,CAAS,CACF,EACP,+BACA,OAGA,KAGA,WAAkB,iEAAuE,EACzF,GAKA,EACA,CAEA,iBACA,UACA,KAEA,EACA,UACA,CAyDA,OACA,mGAEA,8CAEA,KA0BA,UAIA,sBAA0B,iBAkB1B,aACA,gBA3iSA,GA2iSA,CACA,gBAziSA,IAyiSA,CACA,oBAnhSA,IAmhSA,CACA,oBA/gSA,IA+gSA,CACA,IAhhSqC,UAghSrC,KACA,oBACA,YACA,iBAAqB,CACrB,iBACA,mBACA,mBAEA,8BACA,oBAEA,uBACA,8BAEA,4BACA,2BACA,0BACA,2BACA,4BAEA,UACA,yCACA,YACA,WACA,aACA,YACA,SAEA,0BACA,sBACA,CAAI,EAAI,EACR,gBAEA,MA/IA,eAA6B,sCAAsC,EAgBnE,MAVA,CAEA,iBALA,4CAMA,mBALA,SAOA,0DAVA,iBAUA,EACA,yBACA,mFACA,CAGA,EA8HA,CACA,OACA,SACA,QACA,UACA,QACA,CAAK,EAwEL,GAtEA,wBACA,gBACA,cACA,kBAA0B,YAAgB,CAC1C,aACA,cACA,yBACA,CAxIA,UACA,KACA,MACA,iBACA,cACA,iBACA,QACC,QAED,IAKA,sDAJA,EASA,eAGA,2FAEA,uBAGA,EACA,EA4GA,CACA,iBACA,cACA,iBACA,MACA,QACA,IACA,CAAS,EAET,KAGA,qBACA,oBAEA,gBAGA,gBACA,iBACA,IACA,cACA,CAAU,SAGV,CACA,CACA,EAEA,sBACA,gBACA,gBACA,6BAnmSA,MAomSA,6BAjmSA,MAkmSA,gBACA,iBACA,YACA,gBACA,gBACA,cACA,0BACA,gBACA,mBACA,2BA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A2B,EAC1C,wCAAkD,EAClD,0CAAoD,EACpD,uDAAiE,EACjE,IAAc,EACd,EAAY,EACZ,YACA,IACA,gDACA,CAAU,SAIV,MAFA,sFAEA,IACA,EAEA,SA1FA,GACA,gBACA,eAA6B,aAAsB,YAAsB,CACzE,CACA,mBACA,qCACA,eAA6B,SAAmB,KAChD,EAEA,uBACA,KAEA,OADA,UACA,EAGA,0CAyBA,OAvBA,gBACA,cACA,sBAIA,YACA,mCAEA,OAEA,UAEA,IACA,IACA,CAEA,gCACA,OAEA,kBAAiD,MAAQ,YAAe,CACxE,CAAS,CAGT,EAEA,mBAGA,aAFA,eAA6B,SAAa,EAE1C,EACA,OACA,YAGA,EAuCA,EACA,CAEA,QACA,GAGA,GACA,iBACA,SACA,UACA,iBACA,SACA,UACA,QACA,UACA,KACA,KACA,2BACA,WACA,QACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,CAEA,2BACA,QACA,EAUA,sBARA,EASA,OATA,EAUA,GALA,MAKA,eACA,IAVA,IAYA,CAEA,cACA,0BACA,CAOA,cACA,qBACA,CAEA,cACA,eACA,CAEA,cACA,0CAMA,OAJA,YACA,kCAGA,CACA,sBACA,sBACA,qBACA,CACA,CAUA,cACA,6CACA,+CAGA,cACA,+BACA,iBACA,kBAyOA,gBACA,IASA,EATA,KACA,WAA6C,WAC7C,KACA,yCAEA,EADA,UAAiE,cACjE,SACA,QACA,uCACA,gFAuDA,cACA,IAtSA,EAsSA,4CACA,uBAEA,QACA,qBACA,GACA,CAAS,CAGT,MAEA,WACQ,QAhTR,CAFA,oCAEA,uBACA,kBACA,mBACA,6BACA,eA8SA,IA5SA,EA6SA,8BAGA,OAEA,KAGA,OACA,cACA,iBAaA,aACA,MAEA,OACA,iCACA,MACA,gCAEA,CACA,EAEA,KAEA,eACA,QACA,cACA,gBAEA,CAAW,EACX,MACA,CAIA,qBACA,CAEA,aACA,OAEA,IACA,KACA,mCAGA,OACA,2BACA,6BAEA,OACA,KAEA,OAOA,CA3DA,OACA,UAGA,KAEA,GACA,8BA+CA,QACA,KACA,mCAGA,GACA,cA7IA,gBAqBA,IARA,IAjRA,EAsLA,EAGA,EACA,EAHA,EACA,EAIA,EAyEA,yBACA,sBACA,uBACA,8BACA,sBACA,wBACA,sBACA,kBACA,sBACA,gBACA,gBACA,gBACA,GAhRA,CADA,IAiRA,EAjRA,kBACA,kBACA,oBAEA,GA+QA,IACA,KAEA,cACA,eAEA,KACA,OAnPA,YACA,4BACA,yBAEA,OACA,MACA,MACA,wBACA,+CACA,0DACA,kCACA,yCACA,cACA,cACA,OACA,mBACA,cACA,cACA,uBACA,UACA,UACA,UACA,UACA,oBACA,cACA,gBACA,WACA,CACA,EAwNA,CACA,IACA,IACA,QACA,SACA,gBACA,oBACA,QA5TA,0BA4TA,UA5TA,GA4TA,GACA,QACA,QACA,UACA,QACA,SACA,MACA,CAAW,UAMX,EACA,gBA1HA,EA6HA,EA5HA,EA4HA,EA5HA,QACA,qBAIA,gBACA,aACA,SAEA,gBAmHA,EAnHA,gBACA,UAEA,IACA,GACA,CA2BA,UAzBA,aACA,+CACA,wBA0GA,EAzGA,0BAyGA,EAtGA,OAsGA,EAtGA,SAsGA,EArGA,GAqGA,EApGA,cAoGA,EAnGA,iBAGA,gBAgGA,EAhGA,gBAMA,CAJA,uBACA,OAjJA,cACA,4CACA,8CACA,oBAEA,QACA,WACA,0BACA,0BAEA,YACA,YACA,aAEA,wBACA,6CACA,6CAEA,gBACA,gCACA,gCACA,0BAGA,IAgVA,cACA,EAEA,EAGA,EArZA,YA+DA,wBAEA,yBACA,yBACA,+BACA,+BAMA,GAJA,2EAEA,cAEA,uFACA,QAoUA,EAnUA,aAmUA,EAlUA,eAkUA,EAjUA,IAiUA,EAhUA,IAgUA,EA/TA,iBA+TA,EA9TA,iBA8TA,EA7TA,oBA8TA,gBAGA,CADA,cACA,4BAIA,CAFA,cAEA,yBACA,cACA,cACA,eACA,cACA,EACA,EACA,GAEA,SA5UM,4BACN,0BACA,mBACA,mBACA,gCACA,iCAEA,iBACA,cACA,cACA,eACA,cACA,IACA,IACA,EAGA,8CAEA,+DACA,kBAEA,kBACA,cACA,WACA,QACA,QACA,EACA,GAEA,eACA,EAAM,0BACN,UA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,WACiB,OADjB,YACiB,KADjB,UACiB,MADjB,WACiB,OADjB,WACiB,CACjB,EACA,uBACA,sCACA,EACA,CACA,CAAC,GCrBD,cAAgC,+CAChC,cACA,SACA,uCACA,YACA,CACA,qCACA,wCACA,EACA,cAEA,wBACA,SAEA,IAJA,EAIA,6EACA,mCACA,EACA,cACA,kBACA,YACA,oBACA,KAEA,aACA,YACA,YACA,aACA,aACA,aACA,UACA,QACA,CACA,QACA,ECjCO,uCCMP,cACA,gBACA,iBACA,uBAAgC,EAAM,WAAc,EAAM,qBAC1D,cAAwC,2BACxC,kBAIA,OAHA,aAAiC,KACjC,aAAgC,KAChC,aAAkC,MAClC,IAAe,EAAkB,sBACjC,EACA,EAAgB,EAAM,CACtB,GADsB,uBACtB,IACA,kBACA,mBACA,gBAAqB,EAAe,QACpC,CAAC,EACD,EAFoC,SAEpC,KAEA,GADA,aAAyC,MACzC,aACA,gBAEA,GAAQ,EAAQ,GAEhB,GAFgB,IAChB,WACA,EAEA,0BACA,EAAc,EAAK,mCACnB,iCACA,4BACA,8BACA,8BACA,sBACA,wBACA,yBACA,uBACA,0BACA,4BACA,6BACA,2BACA,MACA,MACA,MACA,MACA,sCACA,oCAGA,uBAFA,UAEA,EACA,yBAFA,UAEA,EACA,UACA,UACA,EAAgB,EAAM,CACtB,GADsB,uBACtB,mEACA,uBACA,wBACA,gBAAyB,EAAe,QACxC,CAAK,EAEL,EAHwC,KAExC,WACA,CACA,EACA,kBACA,gFACA,UACA,KAAa,EAAwB,yBACrC,QACA,MAAa,EAAwB,WACrC,QACA,GAFqC,MAGrC,QACA,CACA,EC3EA,EACA,YACA,MAAoB,EAAiB,EACrC,aADqC,EAErC,+BACA,mBAA6B,EAAM,mBACnC,oBAA8B,EAAM,oBACpC,+BAAyC,EAAM,8BAC/C,ECTA,cACA,GAAQ,EAAQ,GAChB,GADgB,IAChB,IAIA,IAFA,QACA,eACA,GACA,KACA,eAEA,QACA,ECRA,aACA,UACA,KACI,EAAe,oBACnB,+BAGA,SACA,oCACA,UAA4B,EAAmB,UAC/C,EAA8B,EAAqB,GADJ,KACI,EACnD,SADmD,CAEnD,mBAAkC,EAAgB,wBAClD,KACA,KAEA,CAAS,EACT,kBACA,wCACA,CAAS,EACT,iDACA,CAAK,EACL,YAA8C,WAAyB,IAEvE,CADA,EADA,CACA,OAGA,QACA,EC7BA,cACI,EAAe,oBACnB,iDACA,mDACA,yCACA,eACoB,EAAqB,YACzC,OADyC,QACzC,SAGA,yBAGA,CAAS,CACT,CAAK,CACL,ECZA,aACA,QAEA,IADI,EADJ,CAEW,EdNA,EAAe,iBAAsB,gCAAqC,GcQ7E,EADR,EAAgB,KAMhB,ObbW,EAAe,aaOiB,CbPjB,GAAsB,iCAAsC,GaW9E,IAER,GACA,ECfA,KAEA,QDU8B,GCV9B,GACA,OACA,QACA,8BAEA,gCAA2C,OANhB,gCAAmD,WAAc,CAMjD,CAAkB,YAD7D,CAAuB,mBAEvB,aAAgC,mCAChC,CACA,UACA,GACA,ECZA,cACI,EAAc,WAClB,CADkB,qBAClB,EACA,CAAK,CACL,ECFA,IAGA,GAAuB,wDACvB,GACA,SACA,OACA,gBACA,eACA,iBACA,qBACA,QACA,UACA,UACA,YACA,YACA,WACA,OACA,QACA,CACA,cAEA,OADA,aAA8B,KAC9B,YACA,EACA,KAkEA,KAjEA,YACA,aACA,WACA,gBACA,yBAAsC,oBACtC,CA0DA,OAzDA,4BACA,WAEA,GADA,aAAkC,EA/BlC,GA+BkC,GAClC,GAGA,KACA,WACQ,EAAmB,WAC3B,SACA,IACA,EAAsC,GACtC,IAD6C,IAE7C,CAGA,GAFA,KACA,QA7C+B,GA+C/B,OAEA,EACA,WAEA,IACA,SAGA,SAEA,CACA,CAAS,EACT,EACA,gCACA,YACA,UACA,EACA,+BACA,WACA,aAA+B,uDAC/B,mBAA+B,EAAM,sCACrC,EACA,6BACA,WACA,eACA,gBACA,kDACA,eACA,sBAA6C,OAAO,EAAM,kCAAgD,EAE1G,EACA,4BACA,WACA,eACA,0CACA,sBAA6C,OAAO,EAAM,qCAAmD,EAC7G,gBAEA,EACA,CACA,CAAC,IAED,cACA,mBACA,QACA,QACA,EC1FA,aACA,gBACA,cACA,oBAA0C,EAAwB,YAClE,UADkE,WAClE,EACA,aACA,WACA,CACA,CAYA,OAXA,gCACA,IAfA,EAeA,EAAmB,EAAgB,wCAdvB,EADZ,EAgBA,CAfiB,GAejB,UAdY,EAAiB,IAC7B,wCAcA,0BAEA,iDACA,+CAKA,CACA,CAAC,GC7BD,EACA,cACA,sBACA,uBACA,2BACA,gBACA,eACA,ECHA,cACA,gBACA,YAAoB,WAA+B,KACnD,mBACA,SAGA,SACA,EACA,aACA,aACA,CA+BA,OA9BA,wBACA,UAAyB,EAAoB,KAC7C,UACA,EACA,CAH6C,CAG7C,wBACA,eACA,iCACA,+BACA,GAAgC,EAAe,QAC/C,KAD+C,eAC/C,UAA+C,EAAiB,aACpD,EADoD,GAEpD,EAAS,IADE,GACF,IAErB,EACA,0BACA,eACA,4BACA,kCACA,OACA,GAA+B,EAAe,OAAQ,EAAe,IAAvB,GAAuB,OACrE,iCACY,EAAW,IAEvB,EACA,GAHuB,SAGvB,aACA,WACA,WACA,iDAAkE,+BAAoD,EACtH,gDACA,EACA,CACA,CAAC,GC7CD,aACA,cACA,uBACA,kGAEA,wBACA,iHAEQ,EAAwB,eAChC,CAyBA,MA1BgC,CAEhC,kCACA,uBACA,6GAEA,IAAa,EAAS,GACtB,IADsB,EACtB,kGAEQ,EAAwB,iBAChC,EACA,GAFgC,QAEhC,uBACA,uBACA,+GAEA,IAAa,EAAS,GACtB,IADsB,EACtB,oGAEQ,EAAwB,iBAChC,EACA,GAFgC,QAEhC,uBACQ,EAAwB,gBAChC,EACA,IAFgC,MAEhC,YACA,oCAA6C,iBAAiB,CAC9D,EACA,CACA,CAAC,cEND,kBACA,gCACA,OAEA,2BACA,oBACA,kBACA,gBACA,cACA,QACA,EACA,CACA,gCACA,0BACA,YACO,CACP,QAEA,CAAG,EACH,qBAAqB,6BAAkC,IACvD,eACA,MACA,0CACA,IAAgB,oBAAiD,EACjE,aACA,CACA,MACA,CACA,QACA,EACA,CACA,8BACA,WACA,YACA,MACA,CAAO,CAGP,CACA,KACA,kBACA,EAEA,CAAG,CACH,gBCrEA,IACA,WACA,YAAc,CACd,QACA,cACC,IACD,MAAiB,QAAc,IAC/B,MAA8C,UAAc,GAC5D,EAAqB,QAAY,IAyCjC,OAxCA,YACE,SAAa,MACf,MACA,sBACA,OAEA,wBACA,gBACA,KACA,KACA,gBACA,yBACA,KAEU,CACV,kDACA,UACA,8BAEA,sDACA,SAEA,MATA,SAUA,CACA,YACQ,EAAO,GAAW,EAAX,MAAW,EAAqB,YAE/C,YACA,EACA,mBAGA,CACA,CAAG,UACD,WAAe,MACjB,IACM,EAAO,GAAW,EAAX,MAAW,EAAyB,YACjD,UAEA,CAAG,QACH,CACA,gQClDO,IAAM+1C,GAAe3gD,CAAAA,EAAAA,EAAAA,aAAAA,CAAaA,CAAmB,CAC1DgM,QAAS,WACX,GAAG,GAC0BjO,CAAAA,EAAAA,GAAAA,EAAAA,CAAQA,CAAC,OAAC,UACrC8K,CAAQ,CAGT,GACO,CACJqf,WAAS,CACV,CAAGiC,CAAAA,EAAAA,GAAAA,CAAAA,CAASA,GACP,SACJne,CAAO,CACR,CAAGkc,EACEvqC,EAA0B8a,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CAAC,IAAO,EAC7CuT,cAASA,EAAAA,EAAW,WACtB,GAAI,CAACA,CADMA,CACE,EAIb,MAHAzP,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACRoI,SAASi8C,IAAI,CAACC,OAAO,CAACC,KAAK,CAAG90C,CAChC,EAAG,CAACA,EAAQ,EACL,UAAC20C,GAAa73B,QAAQ,EAACnrC,MAAOA,EAAjBgjE,SAAyB93C,GAC/C,GAAG,eGxBH,cAYA,OAXA,kDACA,YAAoB,mBAAsB,KAC1C,mBACA,eACA,2CACA,WAGA,CACA,QACA,GACA,qBACA,CACA,iBACA,oBACA,IAEA,IAFA,KACA,iBAEA,QAAc,WAAuB,IACrC,OACA,iBACA,YAEA,QACA,CAEA,uBACA,mBACA,IACA,iBACA,WACA,YACA,YACA,6BACA,8BACA,6BACA,6BACA,EACA,mBACA,YACA,OAEA,oBAAmC,EACnC,iBACA,kBACA,gCAqDA,OApDA,OAA4B,eAAmB,SAC/C,mBACA,iBACA,cACK,GACL,OACA,OAA8B,eAAmB,SACjD,sBACA,wBACA,cACO,GAEP,aACA,OAA8B,eAAmB,SACjD,6BACA,+BACA,8BACA,CAAO,GAEP,QACA,OAA8B,eAAmB,SACjD,uBACA,yBACA,yBACA,CAAO,GAEP,QACA,OAA8B,eAAmB,SACjD,wBACA,0BACA,0BACA,CAAO,GACD,GACN,OAA8B,eAAmB,SACjD,wBACA,0BACA,oBACA,CAAO,GAEP,SACA,OAA8B,eAAmB,SACjD,wBACA,2BACA,2BACA,CAAO,GACD,GACN,OAA8B,eAAmB,SACjD,wBACA,2BACA,oBACA,CAAO,GAEP,CACA,CAAG,IACH,EACA,eAEA,IADA,MA4HA,EAQA,EAnIA,KACA,iBACA,mCAEA,QACA,UACA,UACA,kBACA,6CACA,QACA,EAAO,GAEH,gBACJ,mBAEA,GACA,OAAoC,eAAmB,UACvD,WACA,CAAK,KAEL,iFACA,iFACA,0BACA,KACA,kBACA,oBACA,cACA,eACA,oBACA,oBACA,cACA,iBACA,gBACA,qBACA,4MACA,CAuGA,GAtGA,YACA,iBAEA,MACA,mCACA,gBAEA,oCACA,iBAEA,OAAoC,eAAmB,SACvD,aACA,cACA,2DACA,CAAK,IACD,SACJ,OAAoC,eAAmB,SACvD,aACA,cACA,wBACA,CAAK,GAEL,eACA,OAAoC,eAAmB,SACvD,kBACA,mBACA,sBACK,GAEL,cACA,OAAoC,eAAmB,SACvD,kBACA,mBACA,qBACK,GAEL,mBACA,OAAoC,eAAmB,SACvD,gBACA,sBACA,8BACA,4BACK,GAEL,qDACA,yCACA,OAAsC,eAAmB,SACzD,gBACA,oCACA,oBACA,YACO,EACP,CAAK,EAEL,YACA,oBACA,OAAsC,eAAmB,SACzD,mBACA,oBACA,0BACA,CAAO,GAEP,gBACA,OAAsC,eAAmB,SACzD,mBACA,oBACA,uBACO,GAEP,kBACA,OAAsC,eAAmB,SACzD,sBACA,uBACA,yBACO,IAGP,YACA,kBACA,OAAsC,eAAmB,SACzD,gBACA,qBACA,yBACO,GAGP,qCAEA,OAAoC,eAAmB,SACvD,eACA,oBACA,iDACA,CAAK,GAEL,uDAEA,OAAoC,eAAmB,SACvD,qBACA,0BACA,mEACA,CAAK,GAEL,aAQA,GAPA,gCACA,OAAsC,eAAmB,SACzD,aACA,kBACA,oCACA,CAAO,GAEP,kBACA,qCACA,OAAsC,eAAmB,SACzD,cACA,mBACA,SACA,CAAO,GACP,oCACA,+BACA,OAA0C,eAAmB,SAC7D,yBACA,8BACA,sCACW,GAEX,8BACA,OAA0C,eAAmB,SAC7D,wBACA,6BACA,qCACW,GAEX,8BACA,OAA0C,eAAmB,SAC7D,uBACA,4BACA,qCACW,GAEX,4BACA,OAA0C,eAAmB,SAC7D,qBACA,0BACA,mCACW,IAEH,8BACR,2DACA,+CACA,OAA4C,eAAmB,SAC/D,sBACA,uBACA,SACA,CAAa,EACb,CAAW,EAEX,uBACA,OAA0C,eAAmB,SAC7D,gBACA,qBACA,8BACW,GAEX,8BACA,OAA0C,eAAmB,SAC7D,wBACA,6BACA,qCACW,GAEX,qDACA,4CACA,OAA4C,eAAmB,SAC/D,mBACA,oBACA,SACA,CAAa,EACb,CAAW,GAEH,oCACR,mCACA,OAA0C,eAAmB,SAC7D,6BACA,kCACA,yCACA,CAAW,GAEX,kCACA,OAA0C,eAAmB,SAC7D,4BACA,iCACA,yCACW,GAEX,oCACA,OAA0C,eAAmB,SAC7D,8BACA,mCACA,2CACW,GAEX,iEACA,kDACA,OAA4C,eAAmB,SAC/D,yBACA,0BACA,SACA,CAAa,EACb,CAAW,EAEX,6BACA,OAA0C,eAAmB,SAC7D,sBACA,2BACA,oCACW,GAEX,2DACA,+CACA,OAA4C,eAAmB,SAC/D,sBACA,uBACA,SACA,CAAa,EACb,CAAW,GAEH,sGACR,2DACA,+CACA,WACA,OAA8C,eAAmB,SACjE,sBACA,uBACA,kBACe,GAEf,QACA,OAA8C,eAAmB,SACjE,2BACA,4BACA,eACe,EAEf,CAAW,EAEX,iEACA,kDACA,OAA4C,eAAmB,SAC/D,yBACA,0BACA,SACA,CAAa,EACb,CAAW,EAEX,6DACA,gDACA,OAA4C,eAAmB,SAC/D,uBACA,wBACA,SACA,CAAa,EACb,CAAW,EAEX,4BACA,OAA0C,eAAmB,SAC7D,qBACA,0BACA,6CACA,CAAW,GAEX,+BACA,OAA0C,eAAmB,SAC7D,yBACA,8BACA,sCACW,GAEX,uDACA,6CACA,OAA4C,eAAmB,SAC/D,oBACA,qBACA,SACA,CAAa,EACb,CAAW,EAEX,0BACA,OAA0C,eAAmB,SAC7D,mBACA,wBACA,iCACW,GAGX,CAEA,8BACA,6DAEA,+BACA,+DAEA,+CACA,8CACA,2CACA,6CACO,GAGP,8BACA,6DAEA,+BACA,+DAEA,+CACA,8CACA,2CACA,6CACO,GAGP,mBACA,8CAEA,oBACA,OAAsC,eAAmB,SACzD,gBACA,qBACA,2BACO,GAEP,+CACA,OAAsC,eAAmB,SACzD,mBACA,wBACA,oDACO,EAEP,CA+BA,OA9BA,aACA,OAAoC,eAAmB,SACvD,gBACA,iBACA,eACA,CAAK,GAEL,qDACA,yCAEA,IADA,IACA,gBACA,WACA,OAAsC,eAAmB,YACzD,6EACA,CAAO,KACP,CAAK,EAEL,0CACA,yCAEA,IADA,EACA,gBACA,WAEA,OAAsC,eAAmB,YACzD,oDACO,IACP,YAJA,uDAKA,CAAO,GACP,CAAK,EAEL,CACA,EAEA,eACA,OAAsB,eAAmB,CAAC,KAAI,WAC9C,EAmDA,eACA,cACA,eACA,YACA,aACA,gBACA,gBACA,cACA,cACA,aACA,YACA,uBACA,kBACA,iBACA,oBACA,uBACA,uBACA,OAAsB,eAAmB,CAAC,UAAc,MAAqB,eAAmB,KAChG,QACA,aACA,UACA,WACA,cACA,cACA,YACA,WACA,YACA,qBACA,UACA,gBACA,eACA,kBACA,qBACA,oBACA,CAAG,EACH,EAcA,iBACA,WAEA,OAA2B,EAD3B,qBAC2B,CAC3B,YACI,EAAI,IAER,OADA,YACA,IACA,gCACA,SACA,CAAG,GACH,EACA,kBACA,UAAa,EACb,SAAY,EACZ,SAAY,EACZ,WAAc,EACd,WAAc,CACd,CAAC,EACD,gDACA,eACA,cAMA,GAGA,cACA,iBACA,aAEA,YACA,OAEA,QAEA,cACA,cACA,aACA,QAEA,cACA,uBACA,SAGA,MAEA,CACA,cC5pBA,IAAMk4C,GAAW,CAAC,CAChBtuD,IAAK,GAA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AAK,UAACL,GAAAA,CAAWC,eAAgBh2C,GAAAA,CAAoBA,CAAEjM,MAAOA,EAAOoM,OAAQ,KAC5Ei2C,IACAx+C,OAAOy+C,QAAQ,CAACC,MAAM,EACxB,KAAOC,UAAU,IAACn3C,sBAAoB,UAAUH,wBAAsB,gBAAgBC,0BAAwB,8BACzG/B,KACqB,oDC3C1B,iBAA0B,IAAS,CACnC,eACA,QACA,WACA,yBACA,mBACA,WACA,gBACA,yBACA,2BACA,iBAsUA,YACA,qEACA,aACA,gGACA,OACA,OACA,kBACA,gCACA,WACA,mBACA,iBACA,oBACA,wBACA,eACA,iBACA,6BACA,kBACA,CACA,EAxVA,cACA,mBACA,iBACA,CACA,IACA,GACA,GACA,GACA,CACA,KACA,GACA,MACA,OACA,yBAEA,MACA,cAAqB,iBACrB,sCACA,CACA,iBACA,iDACA,oBAEA,CACA,aACA,MAAiB,SAAW,iCAO5B,OANA,SACA,OACA,eACA,2BACA,gBACA,CAAK,EACL,CACA,CACA,cACA,SAAqB,0CAA0C,CAC/D,CACA,UACA,cAEA,OADA,mBACA,SAAkC,KAAI,QAAQ,KAAI,mBAClD,CACA,UACA,gBACA,aAAkB,UAAc,CAChC,CACA,QACA,eACA,sBACA,CACA,WACA,oBACA,0BAEA,CACA,aACA,mDACA,CACA,UACA,yGACA,CACA,mBACA,6DAAqE,SAAc,4BACnF,CACA,UACA,oDACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,WACA,kDACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,eACA,sBACA,gBACA,sBACA,gBAA2B,2CAA8C,EAEzE,CACA,kBACA,sBACA,iCACA,iBACA,UACA,QACA,gBAAmC,UAAc,EAEjD,uBAGA,mBAEA,gBAA2B,6CAAgD,EAE3E,CACA,oBACA,sBAEA,aACA,0BACA,SAAuB,kBAAoB,CAE3C,CACA,WACA,oCACA,8CACA,aAAsB,UAAc,OAC5B,WAER,OADA,yBACA,QAMA,GAHA,GACA,WAEA,uBACA,yCACA,GACA,kBAEA,CAQA,0BACA,GACA,uBACA,gBAEA,MACA,kCACA,cACA,SACA,WACA,SAEA,CAAO,CACP,EACA,KAmBA,OACA,eACA,qBACA,uBACA,iBACA,QAvBA,IACA,sBAKA,WACA,wBACA,uBACA,qBACA,EACA,MAGA,qBACA,GAbA,eACA,2BAAyC,uBAAuB,IAqBhE,EACA,KACA,+BACA,EACA,MAEA,mBACA,gFACA,SAAuB,uCAAiD,EAExE,UACY,SAAgB,eAC5B,SACA,aACA,OACA,CAAS,EAEE,SAAgB,MAC3B,yBACA,EACA,MAEA,2BACA,gBACA,EACA,OAGA,2BACA,kBAEA,4BACA,EAyCA,OAxCA,QAAoB,SAAa,EACjC,aACA,sBACA,cACA,eAMA,WAA+B,gBAAgB,qBAC/C,MACA,CACA,gBACA,mCACA,2BACA,EACA,iBACA,MAEA,2BACA,kBAEA,4BACA,CAAO,CACP,UACA,eACA,SAAyB,qCAAqC,CAC9D,CAAO,CACP,aACA,SAAyB,aAAe,CACxC,CAAO,CACP,gBACA,SAAyB,gBAAkB,CAC3C,CAAO,CACP,sBACA,gCACA,kCACK,EACL,wBACA,QAEA,MAyEA,YAxEA,IACA,eACA,aACA,OACA,KACA,iCACA,2BAEA,aACA,OACA,KACA,oBACA,CACA,gBACA,OACA,KACA,sBACA,CACA,aACA,OACA,KACA,oBACA,wBACA,uBACA,YAAyB,SAAQ,+CACjC,sBACA,WACA,gBACA,EAEA,eACA,OACA,KACA,YACA,oCACA,0CACA,WACA,iBACA,iBACA,eACA,mBACA,oBACA,uBACA,EAEA,aACA,cACA,GAAc,SAAgB,uBAC9B,OAAqB,+BAErB,OACA,KACA,QACA,sCACA,0BACA,wCACA,qBACA,mBACA,cACA,CACA,kBACA,OACA,KACA,gBACA,CACA,gBACA,OACA,KACA,WAEA,CACA,GACA,YACI,IAAa,YACjB,oBACA,iBACA,CAAO,EACP,gBAA2B,mCAAsC,CACjE,CAAK,CACL,CACA,cC/UA,iBAA+B,IAAY,CAC3C,gBAAyB,EACzB,QACA,cACA,eACA,CACA,GACA,aACA,iBACA,eAA2C,SAAqB,MAChE,cAYA,OAXA,IACA,MAAkB,GAAK,CACvB,CADuB,KACvB,KACA,WACA,YACA,iCACA,QACA,oCACA,CAAO,EACP,aAEA,CACA,CACA,OACA,2BACA,2BACA,aACA,aACA,OACA,CAAO,EAEP,CACA,UACA,+BACA,IACA,YACA,OACA,4BAEA,aAAoB,uBAAwB,EAE5C,CACA,QACI,IAAa,YACjB,0BACA,cACA,CAAO,CACP,CAAK,CACL,CACA,OACA,qBACA,CACA,SACA,4BAEA,QACA,OAA+B,eAC/B,0BACA,GAAiB,SAAU,MAE3B,CACA,YAAsB,EACtB,oBACA,2CAAuE,SAAU,QACjF,CACA,UACI,IAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,UACI,IAAa,YACjB,0BACA,WACA,CAAO,CACP,CAAK,CACL,CACA,WACI,IAAa,YACjB,0BACA,YACA,CAAO,CACP,CAAK,CACL,CACA,cCvFA,iBAAkC,IAAY,CAC9C,gBAAyB,EACzB,QACA,cACA,WACA,SACA,CACA,IACA,GACA,EACA,aACA,UAAyB,IAAQ,EACjC,mBACA,qBACA,oCACA,OACA,CAAK,EAEL,OADA,YACA,CACA,CACA,OACA,gBACA,aAAkB,wBAAyB,CAC3C,CACA,UACA,iCACA,aAAkB,0BAA2B,CAC7C,CACA,QACI,IAAa,YACjB,oBACA,cACA,CAAO,CACP,CAAK,CACL,CACA,SACA,eAEA,QACA,OAA+B,eAC/B,oBACA,GAAoB,SAAa,MAEjC,CACA,YAAsB,EACtB,sBACA,GAAoB,SAAa,MAEjC,CACA,UACI,IAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,wBAYA,OAXA,+CACA,0CACA,OAAa,IAAa,OAC1B,aACA,qCAA8E,KAAI,GAClF,mBAGA,CAAK,YACL,cACA,CAAK,EACL,QAEA,0BCoBA,qBAAqC,eAAmB,EACxD,iBACA,0BACA,KACA,EACA,KACA,EAEA,CCzFA,aACA,EACA,KACA,GACA,GACA,GACA,GACA,GACA,cACA,IAAyB,EACzB,0BAAgD,GAChD,OAD0D,CAC1D,qBAAsD,GACtD,6BACA,gBACA,gBACA,SACA,CACA,QACA,UACA,cAEA,QAA6B,IAAY,gBAC/B,IAAY,eACtB,6BACA,kBAEA,CAAK,EACL,QAA8B,IAAa,gBACjC,IAAa,cACvB,6BACA,mBAEA,CAAK,EACL,CACA,UACA,UACA,cAEA,YACA,eACA,YACA,eACA,CACA,cACA,wBAAsC,4BAAqC,SAE3E,cACA,wBAAyC,sBAA+B,SAExE,gBACA,qBAAmC,WAAU,aAC7C,CACA,mBACA,oCACA,uDACA,CACA,kBACA,sDAAwD,UAAiB,GAEzE,GADA,OACA,CAEA,CACA,oBACA,oBAA0C,WAAU,EACpD,gBACA,EAAiB,SAAgB,MACjC,cACA,OAEA,yCAAwD,EAAU,EAClE,wCAA0E,eAA0B,CACpG,CACA,sBACA,OAAW,IAAa,OACxB,mDAAyD,EAAU,IACnE,EACA,yBACA,EAEA,CACA,iBACA,qBAAmC,WAAU,QAC7C,CACA,iBACA,cACI,IAAa,YACjB,yBACA,WACA,CAAO,CACP,CAAK,CACL,CACA,kBACA,cACA,GACA,cACA,MAEA,OAAW,IAAa,YACxB,yBACA,SACA,CAAO,EACP,0BAEA,CACA,kBAA4B,KAAoB,EAChD,OAAqC,gBAIrC,mBAHqB,IAAa,OAClC,6CAEA,KAAsC,KAAI,QAAQ,KAAI,CACtD,CACA,sBAAgC,KAAc,EAC9C,OAAW,IAAa,YAIxB,GAHA,+BACA,cACA,CAAO,EACP,uBACA,yBAEA,OACA,KACA,oCACA,EACA,+BACA,CAAK,CACL,CACA,mBAA6B,IAC7B,OACA,KACA,kCACA,EAUA,mBATqB,IAAa,OAClC,0DACA,wBAIA,OAHA,gBACA,WAAkC,MAAI,EAEtC,kDACA,CAAO,IAEP,KAAsC,KAAI,CAC1C,CACA,cACA,iCACA,mBACA,aAEA,4BACA,4EACA,CACA,iBACA,+BAAyC,KAAI,QAAQ,KAAI,CACzD,CACA,0BDrKA,ECuKA,OADA,YDtKA,CCsKuB,CAAqB,QDrK5C,CACA,gBACA,oBAiDA,EAhDA,gBACA,6CACA,0BACA,+BAEA,KACA,MACA,kCACA,cACA,SACA,iBACA,KAEA,uCACA,IACA,CAAiB,EAEjB,SAEA,CAAW,CACX,EACA,yCACA,2BAAyC,oBAA0B,IACnE,EACA,iBACA,KACA,wBAEA,2BACA,0BAEA,OACA,oBACA,YACA,iCACA,qBAEA,KACA,cACA,GAEA,CAAkB,YAAW,UAC7B,IAAmC,KAAU,CAAG,KAAQ,CACxD,OACA,qBACA,8BACA,CACA,EAEA,gBACA,qBAEA,GACA,QACA,YACA,EACA,GALA,EA+CA,kBAAyC,eAAmB,EAC5D,gCACA,KACA,EACA,KACA,EAEA,EAtDA,IAKA,KACA,gBACA,EAAU,IACV,UAvDA,CAAwB,wBAyDxB,0BAEA,kBACA,YAA0B,IAAoB,KAC9C,cACA,cACA,CACA,CACA,QACA,CACA,qBACA,cACA,sBACA,EACA,CACA,oBACA,oBACA,gBACa,CACb,GAIA,WAEA,CACA,GC4EA,kBACA,CACA,yBACA,uCAAiD,KAAI,QAAQ,KAAI,CACjE,CACA,wBACA,sCACA,CACA,gBACA,eAEA,mBACA,eAEA,oBACA,cACA,CACA,qBACA,SACA,CACA,sBACA,YAA4B,SAAO,KACnC,WACA,gBACA,CAAK,CACL,CACA,oBACA,4BACA,KAMA,OALA,cACU,SAAe,gBACzB,IAAmB,0BAEnB,CAAK,EACL,CACA,CACA,yBACA,YAA+B,SAAO,KACtC,cACA,gBACA,CAAK,CACL,CACA,uBACA,4BACA,KAMA,OALA,cACU,SAAe,mBACzB,IAAmB,0BAEnB,CAAK,EACL,CACA,CACA,uBACA,iBACA,SAEA,OACA,mBACA,kDACA,KACA,aACA,EAgBA,OAfA,aACA,aAAmC,SAAqB,CACxD,WACA,EACA,EAEA,+BACA,gDAEA,yBACA,8BAEA,qCACA,+BAEA,CACA,CACA,iCACA,cACA,EAEA,CACA,qBACA,2DACA,KACA,aACA,CACA,CACA,QACA,gBACA,eACA,CACA,EClQA,GAAgE,WAChE,QAD0B,GAE1B,EAAE,EAAE,CAA2B,CCHlBq5C,GAA4B,OAAC,CACxCr5C,UAAQ,CAGT,GACO,CAACs5C,EAAY,CAAGvoD,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,IAAM,IAAIwoD,GAAa,CA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AG,CACvCikD,CADmCl3D,2BACP,CAAW,EACLA,sCACG,CAAW,8DCE5C,IAAMqpC,EAFX8tB,CAAAA,EAAAA,EAAAA,EAAAA,CAAwBA,KAAOC,EAAAA,EAAqBA,CAACC,KAEjBC,EAFwB,CAAC,qBAED,0BCRvD,IAAMt9B,EAAS,CACpBu9B,KAAM,IACNt9B,KAAM,QACNmhB,eAAgB,oBAChBoc,eAAgB,kBAClB,EAAE,sGCDK,eAAKC,CAAAA,iYAAAA,OASX,EAkBM,SAAK9tC,CAAAA,inNAAAA,OAmJX,EAoGM,SAAK+tC,CAAAA,6oBAAAA,OAuBX,IAYYC,EAAoB,OAE7B,IADMjuC,EAAKr5B,IAAI,CAEb,OAAQq5B,EAAKA,IAAI,EACf,QACA,OACA,OACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,OACE,OAAO,CAIX,CAGA,OAAO,CAEb,EAAE,EAEiC,IACjC,OAAQA,EAAKr5B,IAAI,EACf,OACE,OAAQq5B,EAAKA,IAAI,EACf,OACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,OACE,OAAO,CACT,SACE,OAAO,CACX,CACF,OACA,OACE,OAAO,CAET,SACE,OAAO,CACX,CACF,EAAE,IAEK,WAAKkuC,CAAAA,2NAAAA,OAOX,EAEM,SAAKC,CAAAA,uDAAAA,OAGX,8CC9XM,IAAMtzC,EAAuC,CAClD,CACEG,aAAc,YACdghB,eAAgB,YAChB1x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oBACA,CAAM,EAEN,+BACA,IACA,SACA,CAAQ,iBACR,+DACA,sEAGA,MADA,eACA,WACA,YAAsB,WAAmB,KACzC,wBACA,KACA,sBACA,GACA,uBAGA,CACA,CACA,QACA,CACA,EAEA,WACA,OACA,qBACA,IAEA,IADA,2DAEA,SAEA,8BACA,qCACA,iCACA,CAAI,SACJ,IACA,CACA,QACA,EACA,OACA,oBAEA,UACA,IACA,qBACA,CAAM,EACN,UACA,6CAGA,CAAG,CAEH,QAL2E,UAK3E,KACA,IACA,qBACA,CAAM,EACN,QACA,gCAEA,CACA,EAEA,WACA,OACA,qBACA,IAEA,IADA,6DAEA,SAEA,8BACA,uCACA,mCACA,CAAI,SACJ,IACA,CACA,QACA,EACA,OACA,sBACA,UACA,IACA,uBACA,CAAM,EACN,UACA,+CAGA,CAAG,CACH,uBACA,IACA,uBACA,CAAM,EACN,QACA,kCAEA,CACA,EAEA,GACA,iBACA,UACA,SACA,kCACA,IACA,YACA,eACA,WACA,CAAQ,UACR,KAEA,YAAwB,WAAsB,IAC9C,aAGA,GACA,UAEA,GACA,SAEA,CACA,0BACA,CACA,EAEA,GACA,eAEA,UACA,IAGA,EAHA,CACA,UACA,CAAM,EAEN,kEAIA,OAHA,sCACA,2BAEA,CACA,CACA,EAEA,GACA,YAEA,UACA,IACA,sBACA,CAAM,EACN,qCACA,wDACA,oBAEA,SADA,uBACA,iBACA,CACA,EAEA,GACA,iBACA,UACA,IACA,2BACA,CAAM,EAMN,qEAA6F,IAAI,eAAe,KAAK,QAAQ,IAAI,gBAGjI,KAEA,SATA,yBASA,CAEA,EAGA,SACA,IAEA,gBACA,IAEA,CAAE,UACF,qFACA,iBACA,YACA,QACA,wBACA,uBACA,gCACA,kCAEA,wBACA,2BAIA,6BACA,CAAC,OACD,EACA,eACA,+DACA,8BACA,kBACA,cACA,CACA,OACA,8DACA,gBACA,EACA,4DACA,2DACA,iBACA,sBAtVA,GAQA,OAPA,+BACA,KACA,eACA,0BAGA,CAAG,EACH,CACA,EA6UA,kBAAuD,MACvD,iHACA,6DAIA,oGACA,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ACA,4BACA,8DACA,yBAMA,mBACA,sCACA,eACA,0BAPA,CAOA,EAPA,MACA,IAMA,GANA,EAMA,EANA,EACA,QAKA,EACA,6BAAqD,EAAI,KACzD,+DACA,yDACA,kCACA,oDACA,kDACA,uBACA,IACA,CACA,gBACA,oBACA,WACA,+BACA,0BACA,WACA,CACA,CAAG,GACH,CAEA,cACA,8BACA,CAGA,WAAkB,aAAa,GAC/B,2BACA,EACA,qBACA,iBACA,oBACA,kBACA,iBACA,iBACA,mBACA,mBACA,kBACA,gBACA,4BACA,aACA,YACA,YACA,eACA,cACA,iBACA,iBACA,8BACA,iCACA,qBACA,EAAQ,IACR,mBAEA,CAAK,EACL,qCAA+C,oBAAoB,gCAEnE,CACA,qBACA,2BACA,gBACA,wBAEA,oCAOA,CAJA,kBAA6B,IAC7B,OACA,oBACK,EACL,gDACA,0BACA,CACA,CACA,kBACA,qCAEA,uBACA,qBACA,KACA,SAEA,QACA,kBACA,iBACA,iBACA,mBACA,eACA,cACA,gBACA,iBACA,uBACA,iBACA,mBACA,iBACA,qBACA,mBACA,yBACA,+BAEA,CACA,aACA,6DACA,CACA,CAEA,OACA,WAAc,MAAM,YACpB,YAAe,MAAM,qBACrB,WAAc,MAAM,iBACpB,WAAc,MAAM,gBACpB,SAAY,MAAM,uCAAuC,OAAO,EAChE,YAAe,MAAM,2CAA2C,OAAO,EACvE,UACA,OACA,OACA,QACA,gBACG,IACH,gDAAkG,QAAgC,UAClI,qBAAiC,GAAM,cAAc,EAAK,sCAA2C,QAAwB,GAAnE,CAAmE,KAAmB,EAAM,8DAAkE,QAAwB,GAA1F,CAA0F,CAChP,CACA,EACA,GACA,UAAa,MAAM,kBAAkB,QAAQ,YAC7C,OAAU,MAAM,mBAAmB,KAAK,YACxC,OAAU,MAAM,kBAAkB,KAAK,YACvC,WAAc,MAAM,6BAA6B,MAAM,GACvD,SAAY,MAAM,uBAClB,OAAU,MAAM,qBAChB,QAAW,MAAM,sBACjB,YAAe,MAAM,+BACrB,sBAAyB,MAAM,uEAAuE,WAAW,QACjH,mBAAsB,MAAM,qDAC5B,QAAW,MAAM,0BACjB,aAAgB,MAAM,4BACtB,aAAgB,MAAM,4BACtB,EACA,GACA,OAAU,MAAM,mCAAmC,IAAI,EACvD,OAAU,MAAM,gCAAgC,IAAI,EACpD,YAAe,MAAM,oBAAoB,KAAK,EAC9C,YAAe,MAAM,uBAAuB,KAAK,EACjD,YAAe,MAAM,2BACrB,YAAe,MAAM,2BACrB,WAAc,MAAM,mBACpB,EACA,GACA,OAAU,MAAM,2BAA2B,IAAI,EAC/C,OAAU,MAAM,gCAAgC,IAAI,CACpD,EACA,GACA,WAAc,MAAM,gBAAgB,MAAM,CAC1C,EACA,GACA,aAAgB,MAAM,8BAA8B,QAAQ,EAC5D,SAAY,MAAM,sCAAsC,WAAW,CACnE,EACA,GACA,OAAU,MAAM,2BAA2B,KAAK,OAChD,OAAU,MAAM,wCAAwC,KAAK,OAC7D,UAAa,MAAM,YAAY,QAAQ,MACvC,EACA,GACA,YACA,IACA,OACA,QACA,OACA,CAAM,EACN,iBACA,qBACA,uBAA4C,GAAM,sDAAsD,GAAS,UAAU,UAAc,eAAe,QAAwB,IAChL,uBAA4C,GAAM,uDAAuD,GAAS,UAAU,UAAc,eAAe,QAAwB,IAEjL,iCACA,CACA,EACA,mCACA,QACA,SACA,SACA,OACA,SACA,QACA,UACA,OACA,CAAC,EAED,oCAEA,EACA,wBACA,+GACA,IACA,KACA,OACA,YACA,CAAM,EACN,mDACA,uBACA,MACA,kBACA,wCACA,CAAK,CACL,CACA,iBACA,eACA,YACA,YACA,SACA,CACA,aACA,uBAEA,qFACA,iBACA,eAEA,MACA,SAEA,mEACA,mBACA,CACA,CAEA,OACA,YACA,SACA,CAIA,SACA,kBAA+B,EAQ/B,GAPA,gBACA,sBACA,oBACA,sBACA,iBACA,mBACA,gBACA,oEAEA,GADA,kBACA,wDACA,wCACA,mCACA,8CACA,sDACA,oCACA,uBAA+B,YAAM,eACrC,eAEA,gBACA,wCAGA,OAFA,kCAAsD,EACtD,0BACA,CACA,CASA,UACA,wEACA,CACA,UACA,YAEA,WACA,OACA,WACA,YACA,CACA,CACA,WACA,aAAkB,SAAS,GAE3B,gBACA,uBAEA,CAGA,0BAEA,iBAEA,cACA,YACA,QACA,UACA,UACA,gBACA,SACG,UAqDH,EApDA,IACA,OACA,OACA,SACA,UACA,aACA,CAAM,EACN,CACA,SACA,UACA,+BACA,6CACA,CAAM,EACN,cACA,qCACA,CACA,eAAuC,EACvC,qBACA,QACA,gBACA,mBACA,eACA,YACA,wCACA,CAAO,aACP,yCACA,kFAEA,OADA,WACA,CACA,CACA,YACA,GACA,OACA,SACA,OACA,YACA,cACA,UACA,UACA,gBACA,QACA,EACA,MACA,kBAAuE,EAA+C,QAA/C,MACvE,EACA,MACA,GAHsH,MAGtH,SAAqD,IACrD,EAEA,GADA,QAEA,aAGA,IACA,MAEA,GADA,gBACA,+CACA,UACA,yCAAuD,OAAS,iHAEhE,mCACA,CACA,CAAM,SACN,KACA,MACA,CACA,IACA,CAEA,OADA,YACA,CACA,CAqDA,oBACA,WACA,SACA,2BACA,kCAEA,QACA,CACA,cACA,SACA,2BACA,aAEA,QACA,CACA,QACA,2BACA,CACA,WACA,mBAGA,OAFA,uBACA,0BACA,CACA,CACA,CAGA,4BAGA,EAFA,yCACA,4BAEA,qBAEA,wBACA,gBACI,uBAEJ,gBACA,gBACI,qBAEJ,kBACA,WACA,YAAoB,WAAgB,kBACpC,EAAI,wBAIJ,eAFA,UACA,WACA,kCACI,oBAIJ,aAFA,UACA,WACA,sBACI,uBAIJ,eAFA,KACA,WACA,oCAEA,+BAAmC,EAAI,GAEvC,QACA,CAIA,QACA,eACA,iBACA,aACA,kBACA,uBACA,mBACA,oBACA,sBACA,sBACA,sBACA,wCACA,uBACA,iBACA,cACA,mBACA,uBACA,yBACA,CAAK,EACL,iBACA,wBACA,yBACA,SACA,UACA,cACA,aACA,qBACA,YACA,YACA,SACA,CAAK,wBACL,sBACA,eACA,CAAK,CACL,CAGA,YACA,gBACA,CACA,SACA,gBAEA,OADA,8BACA,KAKA,iDAgBA,OAbA,iBACA,6BACA,qCACA,qCACA,gCAAyC,qBACzC,iCAA0C,sBAG1C,sBACA,kCACA,wBACA,kCACA,yBAAsC,eACtC,CACA,CACA,SACA,mBAEA,OADA,eACA,CACA,CACA,WACA,sCACA,mBAEA,OADA,yCAAuD,OACvD,CACA,CACA,gBACA,mBACA,gBACA,cAEA,OADA,eACA,CACA,CACA,UACA,4BACA,mHAAwI,WAAW,MAAM,OAAY,GAErK,gBACA,kBAAuC,KAFvC,CAEuC,aAqBvC,OApBA,SACA,gCAA6C,CAJ7C,KAI6C,+BAI7C,iBARA,CAQA,4CACA,iBATA,CASA,4CAGA,YAZA,CAYA,MACA,qBAbA,CAaA,eAIA,mBACA,oBACA,iBACA,CAAO,CACP,CAAK,EACL,qBAtBA,CAsBA,4BACA,CACA,CACA,iBACA,UACA,8BACA,iCAGA,kBACA,CACA,WACA,WACA,wBACA,kBAEA,CADA,cACA,cAEA,GADA,qCACA,UACA,CACA,QACA,CACA,kBACA,YACA,uBAA2B,IAC3B,gBACA,6CACA,yDACA,sDACA,8EACK,CACL,CAMA,WAA0B,EAC1B,kCACA,OACA,CAAK,KACL,kCACA,eACA,gCACA,WACA,SAEA,WACA,MACA,iCAA0C,gBAAyB,iEAAqE,OAAoB;AAAA;AAAA,mBAA+B,GAAgB;AAAA,CAAxI,CAAwI,0BAA+D,EAAgB,MAC1R,CACA,QACA,CACA,WACA,0EAIA,OAHA,YACA,uBAEA,CACA,CACA,gBAAgC,MAChC,IACA,OACA,kBACA,0BACA,CAAM,EACN,IACA,GACA,+BACA,SACA,CAAO,MAEP,SACA,+CACA,aAEA,eACA,OACA,QACA,gBACA,UACA,OACA,CAAK,OAEL,YACA,cAEA,eACA,OACA,QACA,gBACA,UACA,iBACO,KACP,CAAK,CACL,CAMA,gBACA,SACA,CACA,QACA,QACA,gBACA,OACA,UACA,CAAM,EACN,MACA,IACA,KACA,OACA,EACA,MACA,IACA,KACA,OACA,EACA,WACA,KACA,mBACA,OACA,QACA,gBACA,OACA,UACA,aAEA,YAAoB,WAAkB,IACtC,SACA,gBACA,GACA,0CAEA,QACA,IAEA,CAAO,CAEP,CACA,cACA,MACA,QACA,SACA,aACA,iBACA,UACG,EACH,kBACA,WACA,wEAEA,yBACA,OACA,kBAAwC,IAIxC,UACA,SACA,QACA,mBAGA,WAEA,oBACA,2BAA4C,MAAiB,GAAG,QAAkB,EAAE,GAAG,SAAsB,EAAW,QACxH,CAAK,EACL,iDACA,CACA,cACA,MACA,mCAA8C,IAC9C,OACA,CAAK,GACL,0EACA,kDACA,0BACA,IACA,CAAK,SACL,uCAAiH,IACjH,CAAK,EACL,CACA,QAHiH,KAGjH,SACA,MAIA,EAHA,mCAA8C,IAC9C,OACA,CAAK,GAEL,0EAUA,OATA,8BAA4C,IAC5C,OACA,CAAK,UAEL,MADA,0BACA,CACA,CAAK,SACL,6CACA,GACA,CAAK,EACL,CACA,CACA,aACA,0CACA,wBACA,QACA,CAAK,CACL,CACA,iBACA,IAEA,OADA,uBACA,EACA,CAAM,SACN,wBACA,QACA,CACA,CACA,eACA,+BACA,QACA,EAEA,wCACA,CACA,aAEA,CAEA,WADA,cAA2C,EAC3C,cACA,CACA,kBACA,oBACA,mBAEA,YACA,SACA,CAAK,CAEL,CACA,aACA,mBACA,QACA,CAAK,CACL,CACA,iBACA,kBACA,UACA,CAAK,EAQL,OAPA,4BACA,UACA,gBACA,QACA,0CACA,CACA,CAAK,EACL,CACA,CACA,iBACA,kBACA,UACA,CAAK,EAQL,OAPA,+BACA,UACA,mBACA,QACA,6CAEA,CAAK,EACL,CACA,CACA,WACA,2BACA,CACA,qBACA,6BACA,CACA,WACA,2BACA,CACA,yBACA,6BACA,CACA,uBACA,gEACA,CACA,cACA,4DACA,CACA,aACA,mBAEA,OADA,qBACA,CACA,CAgBA,eACA,EAsBA,GADA,UAlBA,EAFA,aACA,wBACA,CACA,SACA,EAEA,KAEM,aACN,CACA,UACA,WAGA,CACA,UACA,aACA,YAGA,+BACA,6EACA,mBACA,OACA,qDACA,gBACA,6FAWA,OATA,iDACA,0BACA,0BACA,GACA,iCAIA,gBACA,CACA,CACA,UACA,uCACA,IACA,OAEA,mBACA,wBAMA,OALA,cAEA,+BACA,CAAK,EACL,sEACA,CACA,CACA,aACA,mBAcA,OAbA,6BACA,UACA,iBACA,cACA,cACA,+CACA,QACA,sBAEA,CAAS,CAET,CACA,CAAK,EACL,CACA,CACA,mBACA,mBAoBA,OAnBA,cACA,oBACA,sBACA,CAAK,EACL,6BACA,UACA,aACA,cACA,QACA,6BACA,6BACA,yCACA,QACA,gCACA,UACA,CACA,CAAS,CACT,CACA,CAAK,EACL,CACA,CACA,yBACA,mBAoBA,OAnBA,cACA,oBACA,sBACA,CAAK,EACL,6BACA,UACA,gBACA,QACA,6BACA,mCACA,kCACA,QACA,gCACA,UACA,CACA,CAAS,CAET,CACA,CAAK,EACL,CACA,CACA,YACA,mBAEA,OADA,eACA,CACA,CAOA,YACA,uCACA,CACA,QACA,OACA,WACA,WACA,CAAM,OAeN,MAdA,CACA,OACA,QACA,WACA,WACA,wBACA,YACA,8BACA,iCACA,uBACA,oBACA,wBACA,CAAO,sDACP,CAEA,CACA,CAGA,aADA,+BACA,4CAAuE,EAAO,sBAA0C,EACxH,IACA,SACA,aACA,SACA,CA1rBA,oBACA,iBAGA,GAKE,aAAO,aACT,gCAMA,YALA,cACA,UACA,SACA,OACA,EAAK,EACL,KACA,qBACA,mBACA,4FAAsH,EAAc,sDAAsD,EAAc,OACxM,kBACA,gEAA4E,EAAM,iBAAiB,EAAK,8CAExG,IACA,UACA,gCAOA,OACA,gFAA2G,EAAK,gBAAqB,GAAe,oBAAoB,OAAY,GAApE,EAChH,IACA,UACA,aACA,CACA,IACA,mBACA,CAAG,EACH,CACA,SACA,SACA,YACA,GAzCA,CACA,SACA,aACA,QACA,CAsCA,EA4oBI,oBACJ,oCAAsE,IACtE,SACA,MACA,CAAG,EACH,EACA,6DACA,+DAEA,YAIA,mBACA,eACA,4BACA,aACA,OACA,EAAM,eACN,aACA,OACA,CAAK,IACL,CACA,CACA,kBAKA,YACA,cACA,OACA,eACA,UACA,sCACA,oBAEA,CAAK,EACL,uBACA,yBACA,gCACA,0CACA,0CACA,CACA,QACA,CAAO,CACP,CAAK,CACL,CACA,oBACA,kBACA,UACA,gBACA,aACA,QACA,YACA,CAAO,CACP,QACA,YAEA,CAAK,CACL,CACA,qBACA,kBACA,UACA,gBACA,aACA,QACA,aACA,CAAO,CACP,QACA,YAEA,CAAK,CACL,CACA,WACA,uBACA,CACA,WACA,uBACA,CACA,WACA,uBACA,CACA,YACA,wBACA,CACA,cACA,0BACA,CACA,WACA,uBACA,CACA,eACA,2BACA,CACA,SACA,qBACA,CACA,CACA,YAYA,YAAqB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,GAAG,sBAAsB,EAAE,UAAU,EAAE,UAgBpJ,cACA,QACA,uBACA,EAIA,CACA,aACA,kBACA,cACA,aACA,eACA,eACA,iBAEA,yBACA,4DACA,eACA,uBACA,oBACA,qBACA,EAnBA,IAoBA,CACA,kBACA,mBACA,CAGA,MAEA,6BAA6B,EAAE,gCAAgC,KAAK,6CAA6C,KAAK,kBACtH,EAEA,iGAAiG,EAAE,kBAAkB,krBAAkrB,EAAE,kBAAkB,oFAAoF,EAAE,kBAAkB,2FAA2F,EAAE,kBAAkB,8GAA8G,EAAE,kBAAkB,qBAGppC,gBAA0B,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,GAAG,0CAIxF,YAAiC,aAAa,GAAG,iBAAiB,YAAY,UAAU,0BACxF,wBACA,MAAqB,YACrB,aACA,YACA,CACA,kBACA,cACA,OACA,cACA,UACA,qCACA,mBAEA,CAAK,EACL,uBACA,yBACA,gCAGA,iBAHA,SAIA,gDAGA,QACA,CACA,CAAO,CACP,CAAK,CACL,CACA,YACA,iDACA,sBACA,gBACA,cACA,mBACK,EACL,CACA,cACA,4CACA,uDACA,GAEA,CACA,qBACA,kBACA,UACA,cACA,aACA,QACA,QACA,CAAO,CACP,cACA,QACA,iCACA,CACA,CAAK,CACL,CACA,eACA,kBACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,gCACA,CACA,CAAK,CACL,CACA,eACA,kBACA,WACA,aACA,UACA,QACA,KACA,CAAO,CACP,cACA,QACA,gCACA,CACA,CAAK,CACL,CACA,aACA,IACA,EACA,EAFA,KAcA,OAXA,IACA,mBACA,CACA,wBACA,UACA,OACA,CAAU,EAEV,KAGA,WACA,kBACA,qBACA,QACA,OACA,CAAO,CACP,cACA,mCACA,CAAK,CACL,CACA,iBACA,uBACA,aACA,UACA,qBACA,CAAK,CACL,CACA,aACA,uBACA,WACA,UACA,qBACA,CAAK,CACL,CACA,eACA,uBACA,YACA,UACA,qBACA,CAAK,CACL,CACA,YACA,IACA,EACA,EAFA,KAcA,OAXA,IACA,mBACA,CACA,aACA,iBACA,YACA,CAAU,EAEV,KAGA,gBACA,gBACA,sBACA,qBACA,CAAK,QACL,uBACA,6BACA,QACA,aACA,CAAO,CACP,cACA,SACA,kBACA,iBACA,KACA,MAEA,CAAK,QACL,0BACA,gCACA,QACA,WACA,CAAO,CACP,cACA,SACA,0BACA,iBACA,KACA,eACA,CACA,CAAK,CACL,CAGA,SACA,mDACA,CACA,eACA,mDACA,UACA,YACA,MACA,CAAK,CACL,CACA,yBACA,uDACA,UACA,mBACA,aACA,cACA,iCACA,CAAK,CACL,CACA,yBACA,uDACA,UACA,mBACA,aACA,cACA,iCACA,CAAK,CACL,CACA,CACA,wBAMA,cAIA,mBACA,cACA,OACA,cACA,UACA,qCACA,0BAEA,CAAK,EACL,uBACA,yBACA,2BACA,QACA,uBAEA,QADA,wBACA,WAEA,IACA,QAIA,wBACA,aACA,CAAO,CACP,CAAK,CACL,CACA,eACA,kBACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,yBACA,CACA,CAAK,CACL,CACA,eACA,kBACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,yBACA,CACA,CAAK,CACL,CACA,yBACA,kBACA,UACA,WACA,aACA,QACA,MACA,CAAO,CACP,cACA,QACA,wBACA,CACA,CAAK,CACL,CACA,yBACA,kBACA,UACA,WACA,aACA,QACA,MACA,CAAO,CACP,cACA,QACA,wBACA,CACA,CAAK,CACL,CACA,uBACA,yBACA,CACA,uBACA,yBACA,CACA,qBACA,kBACA,eACA,UACA,cACA,2BACA,CAAK,CACL,CACA,WACA,oCACA,CACA,SACA,MACA,uCAIA,aAHA,kDAGA,uBACA,wGACA,2CACA,CACA,CACA,YAMA,oBACA,0DACA,cACA,aACA,CACA,mBACA,cACA,OACA,YACA,SACA,0BAEA,CAAK,EACL,uBACA,wBAGA,wCAIA,MAHA,EA1ZA,YACA,WACA,iDAGA,sCACA,uFAEA,QAKA,MAJA,kCACA,iCACA,4BAEA,uEACA,EA4YA,IAGA,4BAEA,CAAK,CACL,CACA,kBACA,MACA,cAKA,QALA,CACA,mBACA,4CAA2D,EAAK,gEAChE,GACA,CAGA,CAHM,MAGN,CACA,CACA,eACA,iCACA,kBACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,yBACA,CACA,CAAK,CACL,CACA,eACA,iCACA,kBACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,yBACA,CACA,CAAK,CACL,CACA,CAuBA,iBACA,UAQA,OAPA,eACA,MACA,mCAEA,OADA,IACA,EAEA,CAAG,EACH,CACA,CACA,eACA,aACA,eAEA,CArCA,mBACA,0BACA,mBAqCA,iBACA,sBACA,SAEA,QACA,IACA,eACA,CAAI,SAEJ,CACA,sBACA,EA0BA,WACA,UAAmB,mBAAa,KAChC,gCACA,cACA,EAAe,YAAM,CAAC,UAAI,WAC1B,mBACA,EACA,4DACA,iBACA,4BACA,kDACA,CACA,cACA,eACA,gBACA,CACA,mBACA,eACA,OACA,cACA,SACA,2BAEA,CAAK,EACL,gCACA,oBACA,eACA,uBACA,uBACA,GACA,aAEA,CAAK,CACL,CACA,YAA4B,EAC5B,MACA,uBAGA,wCACA,gCACA,kBACA,iDACA,4EACA,KACA,CADgC,CAChC,gBAAuC,IACvC,SACA,+BACA,CAAK,EACL,KACA,gBACA,WACA,SACA,UACA,EACA,WAGA,kBAA+C,OAAa,SAM5D,MALA,cACA,QACA,kBACA,QACA,EAAS,YACT,gBACA,0BACA,qBACA,YACA,QACA,CAIA,SAHA,qBAEA,sBAEA,QAEA,EAAQ,WACR,YAEA,2BACA,MAEA,CACA,YACA,CACA,gBAAgC,MAChC,IACA,UACA,kBACA,gCACA,CAAM,CACN,UACA,YACA,OACA,CAAK,OAGL,kBACA,kBACA,8BACA,eACA,OACA,MACA,CACA,OACA,SACA,0BACA,oBACA,iBAGA,uBACA,UACA,MACA,SACA,kBACA,gBACA,CAAS,EACT,CACA,eACA,QACA,QACA,gBACA,SACA,CAAO,OACP,uCACA,CAAO,CACP,CAAK,CACL,CACA,SACA,qBAKA,OAJA,yBAAkC,cAClC,qBACA,qCACA,+BACA,CACA,CACA,UACA,sBACA,WACA,4CACA,WACA,mBACA,CACA,yBAEA,4DACA,CACA,eACA,yBACA,4BAIA,uBACA,OAEA,SAaA,OAZA,wBACA,MACA,qBACA,GACA,uBACA,mBAAuC,IACvC,eACA,kBACS,EAET,+CACA,CAAK,EACL,CACA,CACA,eACA,mBAMA,OALA,WACA,SAtPA,iBACA,SACA,UACA,4BAA0D,EAAE,GAAG,EAAE,IACjE,gBACA,MAAe,WAAK,OACpB,SACA,SAAyB,EAAI,GAAG,EAAK,iBACrC,CACA,6BACA,WACA,SACA,oCAA4E,2CAC5E,CACA,OAAS,SAAc,2BACvB,EAuOA,KACA,iCAEA,wBACA,CACA,CACA,cACA,qCACA,uBAOA,OANA,WACA,6BACA,8BAIA,wCACA,CAAK,CACL,CACA,UACA,SACA,2CACA,mEAEA,wBACA,CACA,cAEA,OAjOA,cACA,iBACA,SACA,wCACA,UAEA,qBACA,CACA,qBACA,mBAEA,OADA,0CACA,CACA,OACA,iBACA,oBACA,yBACA,CAAK,EAEL,eACA,aAEA,CACA,EA0MA,KAEA,CACA,QACA,SACA,eACA,sCAEA,0FACA,CACA,QACA,SACA,sCACA,eACA,UAEA,mBACA,CACA,YACA,MAAqB,YAAM,OAC3B,0BACA,eACA,QAMA,OALA,UACA,kBAAiC,IACjC,eACA,WAEA,CACA,CAAK,CACL,CAGA,OACA,yBACA,CAKA,SACA,kBACA,aACA,aACA,mBACA,QACA,oBACA,wBACA,uCACA,QACA,uBACA,CACA,CAAS,CACT,CACA,CAAK,CACL,CACA,eACA,mBACA,YACA,CAAK,CACL,CACA,8BACA,sBACA,IACA,MAEA,iBACA,iBACA,aACA,UACA,QACA,oBACA,wBACA,0CACA,QACA,oBACA,CACA,CAAS,CACT,CACA,CAAK,EAEL,OADA,mBACA,CACA,CACA,4BACA,2BACA,CACA,iBACA,0BACA,eACA,SACA,yCACA,QACA,CAAK,CACL,CACA,YACA,0BAA8B,WAAS,CACvC,CACA,YACA,0BAA8B,WAAS,CACvC,CACA,eACA,6BAAqC,eAAS,kBAC9C,CACA,YACA,uCACA,oBAEA,eADA,YACA,2BACA,MACA,OACA,uBACA,mBAAuC,IACvC,eACA,kBACS,EAET,yBACA,CACA,QACA,CACA,CACA,gCAKA,aACA,eACA,OACA,aACA,MACA,OACA,CAAO,CACP,SACA,gBAEA,CAAK,EAGL,sBACA,gBACA,CACA,WACA,uBAGA,wCACA,SAEA,SACA,gBACA,4CAAiE,IACjE,QAAiB,WAAiB,GAAG,EAAI,GAClC,GAIP,OAHA,OACA,OAEA,CACA,CAAK,EACL,YACA,CACA,gBAAgC,MAChC,MAGA,qBAEA,oDACA,iCACA,kCACA,EASA,EARA,gCACA,OACA,MACA,CAGA,sBACA,YAA0B,WAAsB,IAEhD,qBACA,UACA,QACA,SACA,kBACA,4CACA,CAAS,EAET,eACA,QACA,QACA,4CACA,SACA,CAAO,uBACP,CAAK,CACL,CACA,SACA,qBAGA,OADA,2BACA,CACA,CAGA,OACA,yBACA,CACA,UACA,sBASA,OANA,2BACA,aAEA,yBAEA,6CACA,CACA,CACA,MAEA,mBACA,0FAOA,OAJA,cACA,uBAAgC,SAChC,OACA,CAAK,EACL,CACA,CACA,qBACA,kBACA,UACA,cACA,aACA,QACA,QACA,CAAO,CACP,cACA,QACA,iCACA,CACA,CAAK,CACL,CACA,SAEA,OADA,WACA,WACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cAEA,QACA,gCACA,CACA,CAAK,CACL,CACA,SAEA,OADA,WACA,WACA,UACA,WACA,aACA,QACA,KACA,CAAO,CACP,cACA,QACA,gCACA,CACA,CAAK,CACL,CACA,SACA,6CAEA,qBACA,wBAEA,CACA,WACA,kCACA,+CACA,CACA,YACA,uCACA,oBACA,gBACA,MACA,OACA,uBACA,mBAAuC,IACvC,eACA,kBACS,EAET,mCACA,CACA,QACA,CACA,CACA,mBAMA,aACA,eACA,OACA,aACA,MACA,OACA,CAAO,CACP,SACA,sBACA,6CAEA,CAAK,EACL,uBACA,yBACA,CAAK,CACL,CACA,WACA,IACA,QACA,CAAM,UACN,mBACA,uBACA,SAEA,SACA,gBACA,kCAAgE,IAChE,QAAiB,WAAmB,GAAG,EAAI,EAC3C,CAAO,GAEP,OADA,iBACA,CACA,CAAK,EACL,YACA,CACA,gBAAgC,MAChC,sBACA,kCACA,EAQA,EANA,wBACA,OACA,MACA,CACA,SACA,2BAEA,qBACA,UACA,QACA,SACA,kBACA,4CACA,CAAS,EAET,eACA,QACA,QACA,4CACA,SACA,CAAO,uBACP,CAAK,CACL,CACA,YACA,uCACA,oBAYA,OAXA,qCACA,MACA,QAOA,OANA,sBACA,mBAAuC,IACvC,eACA,kBACS,EAET,aACA,CAAK,EACL,CACA,CACA,CAMA,eACA,IACA,UACA,CAAI,SACJ,wCACA,QACA,CACA,CAZA,YAaA,UACA,eACA,iBACA,wBACA,iBACA,qBAAwC,IACxC,wBACA,wEAEA,OADA,qCACA,YACA,EACA,eACA,WACA,YACA,WACA,CACA,CACA,SACA,2BAEA,OADA,uBAAgC,cAChC,CACA,CACA,eAIA,OAHA,YACA,UACA,CAAK,CAEL,CACA,WACA,2BACA,CACA,WACA,+BACA,CACA,UACA,mCACA,CACA,gBACA,IACA,MACA,QACA,SACA,UACA,CAAM,EACN,iBACA,uCAAgD,IAChD,QACA,QACA,CAAK,kBACL,CACA,cACA,+CACA,CACA,kBACA,2CACA,CACA,kBACA,mDAC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BAA+B,OAAiB,EACvE,CAkBA,cACA,QACA,gEC/IA,cACA,QANA,cAMA,CAEA,MACA,OAEA,SAEA,oBAEA,CADA,iBACA,KAAa,QAAiB,KAG9B,QACA,gICdA,SA+CA,cACA,4BACA,wBACA,yBACA,qBACA,qBACA,cACA,cACA,eACA,kBACA,+BACA,yBAA+B,OAA0B,EACzD,CAKA,QACA,YAoBA,OAnBA,sCACA,SAAuB,eACvB,UAAwB,gBACxB,aAA2B,mBAC3B,mBACA,qBACA,yBACA,yCACA,iCACA,8CACA,uCACA,sCACA,0BAAwC,gCACxC,uBAAqC,6BACrC,uBACA,iCAEI,OAAgB,GAAW,OAAgB,QAE/C,CACA,CAKA,aACA,cACA,CAKA,kBACA,mBACA,CAKA,YACA,oBAMA,cACA,yBAMA,oBACA,4BACA,CAKA,qBAEA,OADA,8BACA,KAMA,WAeA,OAZA,eACA,aACA,UACA,kBACA,eACA,EAEA,eACM,QAAa,qBAAkB,EAAM,EAG3C,6BACA,KAMA,UACA,kBAMA,oBACA,4BAMA,qBAEA,OADA,uBACA,IACA,CAKA,WAMA,OALA,YACA,cACA,MAEA,6BACA,KAMA,YAGA,OAFA,YAAmB,qBACnB,6BACA,KAMA,aAMA,OALA,aACA,eACA,MAEA,6BACA,KAMA,cAGA,OAFA,aAAoB,sBACpB,6BACA,KAMA,kBAGA,OAFA,oBACA,6BACA,KAMA,YAGA,OAFA,cACA,6BACA,KAMA,sBAGA,OAFA,wBACA,6BACA,IACA,CAKA,gBASA,OARA,SAEA,yBAEA,oBAGA,6BACA,KAMA,cAOA,OANA,EAGA,gBAFA,qBAIA,6BACA,IACA,CAKA,aACA,oBACA,CAKA,UACA,MACA,YAGA,qCAEA,MACA,eACA,yCACU,QAAa,IACvB,qBACA,GAEA,MAAY,2EAA2E,MA0BvF,OAxBA,YAAmB,oBACnB,aAAoB,qBACpB,gBAAuB,wBAEvB,0BACA,eAGA,GACA,gBAGA,UACA,sBAGA,GACA,6BAGA,GACA,yBAGA,KAMA,QAiBA,OAfA,qBACA,cACA,eACA,cACA,kBACA,mBACA,6BACA,yBACA,4BACA,qBACI,OAAgB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S,MAGT,SAAgB,GAAO,eAEvB,gBAEA,IACA,IACA,KAEA,CAAQ,SACR,IACA,EAAQ,OACR,eACA,CACA,CAEA,gBAEA,gBACA,0BAEA,CAAK,CACL,CACA,CAEA,cAEA,MACA,IACA,WACA,CAAI,SACJ,MACA,CAGA,SACI,QAAe,wBACnB,aAAsC,IAAlB,QAAkB,GACtC,UACA,CAAK,CACL,CAAG,CACH,CAEA,gBACA,sCAGA,oBACA,mBACA,EAGA,EAIA,WACA,MAGA,WACA,aAGA,GAXA,EAYA,2ECxMA,WAQA,cACA,cACE,QAAU,MACV,QAAe,KACjB,CAEA,aACA,EAAuB,GAAU,SAE/B,GAAU,kBACZ,EACA,EACA,EACA,EACA,SASI,QAAe,SAPnB,CACA,SACA,QACA,OACA,MACA,KACA,KAGA,yBAEA,uBAIA,EAEE,GAAU,mCACZ,2EC1CA,WAQA,WACA,GAEA,2BACE,QAAU,MACV,QAAe,KACjB,CAEA,aACA,EAAoC,GAAU,sBAE5C,GAAU,wCAIZ,CAFI,OAAe,sBADnB,IAGA,0BAEA,uBAIA,EAEE,GAAU,gDACZ,wGC9BA,SACA,KAGA,gBACA,cACA,YACA,CAaA,gBACA,OACA,IACA,QAEA,CAGA,gBACA,cACA,KAIA,eACA,IACA,IACA,CAAM,SACA,GAAW,EACT,IAAM,OACd;AAAA,QAAoE,KAAK;AAAA,QAAU,QAAe,UAAU;AAAA,QAC5G,EAEA,CAEA,gLCjDA,gCASA,cACA,kBACA,qBACA,yBACA,4BACA,qCACA,QACA,SACA,iBACA,CACA,CAQA,gBACA,8BAAiD,EAAU,GAU3D,cACA,wBACA,CASA,cACA,sBACA,CASA,cACA,0BACA,CASA,cACA,oBACA,CASA,cACA,MACA,oBACA,UACA,kCACA,gCAEA,CASA,cACA,+DACA,CASA,cACA,oBACA,CASA,cACA,2CACA,CASA,cACA,+CACA,CASA,cACA,oBACA,CAMA,cAEA,8CACA,CASA,cACA,2EACA,CAUA,gBACA,IACA,qBACA,CAAI,SACJ,QACA,CACA,CAQA,cAEA,6DACA,sGC1LA,OACA,QACA,OACA,OACA,QACA,MACA,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A,EAEA,iBAAsC,aAAkB,KAqDxD,gBACA,qBACA,SAGA,SAEA,YAAkB,WAAkB,KACpC,WACA,IAMU,QAAc,IACxB,yBAEA,iBAEA,CAAM,SACN,sCACA,CACA,CAEA,gBACA,CAuCA,WACA,EACA,KACA,MAEA,kBAlCA,SACA,EACA,EACA,YAEA,EAAO,QAAQ,MAIT,QAAQ,IACd,YAEM,QAAQ,KACd,yBAIA,EAiBA,OACA,6FCrIA,MAAe,UAAU,CAwDzB,aACA,kBACA,SAGA,IAIA,OAHA,YACA,sCACA,aACA,EACA,CAAI,SACJ,QACA,CACA,CAMA,cACA,mCAA0C,uBAAuB,qBACjE,CAQA,aACA,gCACA,SAGA,QACA,SAKA,cACA,SAKA,SACA,aAEA,yCACA,IACA,+BACA,aACA,sBACA,wCAEA,6BAEA,qBACA,CAAM,SACA,GAAW,EACT,IAAM,0FACd,CAGA,QACA,wECxHA,aAiBA,cACA,iBACA,IACA,CAAG,CACH,CAQA,cACA,qBACA,IACA,CAAG,CACH,EAjCY,YAES,YAArB,EAAqB,WAEC,aAAtB,EAAsB,YAEA,aAAtB,EAAsB,WACtB,CAAC,SAAwB,EAgCzB,SAEA,YACA,EACA,CAAK,8BAAwC,+BAAyC,+BAAyC,+BAC/H,sBACA,kBAEA,IACA,6BACA,CAAM,SACN,eACA,CACA,CAGA,KACA,EACA,EACA,CACA,qBACA,qBACA,GACA,IACA,KAKA,IACA,OACA,CAAc,SACd,IACA,MANA,IAQA,CAAS,CACT,IACA,KAGA,IACA,OACA,CAAc,SACd,IACA,MANA,IAQA,CAAS,CACT,EACA,uBACA,CAAK,CACL,CAGA,MACA,EACA,CACA,wBACA,CAGA,WACA,qBACA,MACA,EAEA,iBACA,IACA,KACA,IACA,GACA,GAEA,CAAS,CACT,IACA,KACA,IACA,GACA,GAEA,CAAS,EACT,UACA,MACA,KACA,MACA,CAEA,IACA,CAAO,CACP,CAAK,CACL,CAGA,SAAc,kBACd,6BACA,EAGA,UAAe,iBACf,6BACA,EAGA,UAAe,wBACf,4BAIA,GAAQ,QAAU,KAClB,mCACA,MACA,CAEA,cACA,cAEA,wBACA,EAGA,UAAe,2BACf,2BACA,OAGA,4BACA,mBAEA,cACA,OAIA,0BACA,kBAGA,0BACA,kBAGA,QACA,CAAK,CACL,EACA,mFC9KA,aACA,kBAbA,GAcA,CA0CA,MAlCA,WACA,gBAAU,GAAc,EAAE,CAAU,CACpC,cACA,SAKA,yBACA,sCAWA,UACA,YA3CA,GA6CA,IAsBA,QAKA,gBAAU,GAAc,EAAE,CAAU,CACpC,cAEA,OAIA,cACA,aAGA,eACA,2BANA,KAgBA,qCAGA,EAFA,mBAEA,gBAnBA,YAsBA,EAtBA,MAoBA,EApBA,KAwBA,KAEA,aAGA,EAMA,EACA,CAAC,sFChHD,aACA,6DA0CA,WACA,EACA,GAEA,MAhCA,gBAUA,EATA,MACA,OAGA,iBACA,KAWA,MANA,WACA,KACI,YACJ,OAGA,CACA,aACA,gBACA,iBACA,CACA,EAUA,GACA,EAAiC,QAAqC,IAEtE,SAAU,kCAAuC,aAEjD,EAMA,CACA,WAA0B,QAAK,GAC/B,gBAAoC,QAAK,iBACzC,OAAc,QAAK,iBACnB,UACA,SACA,EAXA,CACA,WAA0B,QAAK,GAC/B,OAAc,QAAK,gBACnB,CAUA,CAKA,WACA,EAAY,QAAK,GACjB,EAAW,QAAK,iBAChB,GAEA,SAIA,OAHA,YACA,gBAEA,GAAY,EAAQ,GAAG,EAAO,EAAE,EAAc,iCC7E9C,cACA,MACA,SAGA,8EAEA,MACA,SAIA,eACA,WACA,OACA,UACA,UACA,cACA,SACA,OACA,iBACA,CACA,CAQA,cACA,qGCtCA,qFCGA,iBAaA,kBACA,WACA,+BAA2D,CAC3D,IAAuC,GAAW,IAAe,GAAW,KAAO,CACnF,uBACA,2ECwCA,MA1DA,cAAiC,GAAY,CAC7C,IACA,CACA,GACA,eACA,QACA,YACA,IAAW,IAAQ,2BACnB,cAEA,OADA,iDACA,KACA,gDACA,CACA,CAEA,CACA,CACA,cACA,SACA,8BAEA,CACA,gBACA,sBACA,YACA,eAEA,CACA,oBACA,UACA,YACA,cACA,oBACA,mBAEA,cAEA,CAAK,CACL,CACA,cACA,cAEA,UACA,eAEA,CACA,UACA,2BACA,GACA,CAAK,CACL,CACA,kBACA,0BACA,QAEA,+CACA,CACA,8FCxDA,gBAA6B,GAAS,CACtC,eACA,QACA,6BACA,yBACA,wBACA,WACA,wBACA,2BACA,iBACA,CACA,IACA,GACA,GACA,EACA,cACA,cAAqB,iBACrB,sCACA,CACA,WACA,yBAEA,eACA,sBACA,gBACA,sBACA,gBACA,qBACA,cACA,UACA,CAAO,EAEP,CACA,kBACA,iCACA,kBACA,gBACA,uBACA,cACA,UACA,CAAK,CACL,CACA,iBACA,iBACA,8BACA,kBAEA,qBAGA,CACA,WACA,4BACA,kCACA,CACA,iBAwBA,oCACA,IACA,OACA,SAAyB,2BAA4B,EACrD,gCACA,EACA,MAEA,uCACA,wBACA,SACA,eACA,UACA,WACA,CAAW,CAEX,CACA,aAvCA,QAAsB,QAAa,EACnC,OACA,wBAGA,2BAFA,6CAIA,eACA,SAA2B,qCAAqC,CAChE,CAAS,CACT,aACA,SAA2B,aAAe,CAC1C,CAAS,CACT,gBACA,SAA2B,gBAAkB,CAC7C,CAAS,CACT,4BACA,mCACA,qCACO,EACP,iBAoCA,OAhBA,iCACA,EACA,EACA,mBACA,MAEA,uDACA,iCACA,EACA,KACA,qBACA,mBACA,MAEA,4DACA,SAAuB,sBAAuB,EAC9C,CACA,CAAM,SACN,IAyBA,MAxBA,+BACA,EACA,EACA,mBACA,MAEA,6BACA,EACA,EACA,oBAEA,iCACA,OACA,EACA,qBACA,mBACA,MAEA,+BACA,OACA,EACA,EACA,oBAEA,CACA,EAAQ,OACR,SAAyB,qBAAsB,CAC/C,CACA,CACA,CACA,MAsDA,WArDA,KACA,eACA,aACA,OACA,KACA,4BACA,sBAEA,aACA,OACA,KACA,WACA,CACA,gBACA,OACA,KACA,WACA,CACA,eACA,OACA,KACA,kBACA,YACA,eACA,mBACA,WACA,UAAuB,QAAQ,2BAC/B,iBACA,sBACA,sBACA,CACA,eACA,OACA,KACA,YACA,eACA,mBACA,WACA,iBACA,WACA,CACA,aACA,OACA,KACA,YACA,cACA,8BACA,sBACA,YACA,cACA,CACA,CACA,GACA,YACI,GAAa,YACjB,oBACA,qBACA,CAAO,EACP,gBACA,cACA,eACA,QACA,CAAO,CACP,CAAK,CACL,CACA,EACA,aACA,OACA,eACA,YACA,WACA,eACA,mBACA,YACA,cACA,iBACA,aACA,CACA,gEClKA,aAhEA,SACA,IACA,MACA,GACA,EACA,MACA,GACA,EAcA,MACA,EACA,UAEM,QAAiB,MACvB,IACA,CAAO,CAEP,EAQA,OACA,QACA,KACA,UACM,QAAiB,MACvB,OACA,cACA,IACA,CAAW,CACX,CAAS,CACT,CAAO,CAEP,EAOA,OACA,MAjDA,IACA,KACA,KACA,IACA,KACA,EAAM,SAEN,GACA,GAEA,CACA,QACA,EAsCA,WA5BA,GACA,SACA,OACA,OACA,CAAO,CACP,EAwBA,WACA,kBAVA,IACA,GACA,EASA,uBARA,IACA,GACA,CAOA,CACA,6ECdA,MAjDA,cAAkC,GAAY,CAC9C,OACA,GACA,eACA,CACA,QACA,YACA,IAAW,IAAQ,2BACnB,gBACA,YAGA,OAFA,uCACA,wCACA,KACA,uCACA,uCACA,CACA,CAEA,CACA,CACA,cACA,SACA,8BAEA,CACA,gBACA,sBACA,YACA,eAEA,CACA,oBACA,UACA,YACA,oCACA,CACA,aACA,cAEA,UACA,2BACA,IACA,CAAO,EAEP,CACA,WACA,cACA,CACA,gECjDA,QACA,GACA,UACA,qBACA,CACA,aACA,sBACQ,QAAc,eACtB,yBACA,qBACA,CAAO,cAEP,CACA,gBACA,qBACA,eACA,IAAoB,IAAQ,UAE5B,CACA,iBACA,UACA,sBACA,eAEA,CACA,yGCvBA,cACA,6BACA,CACA,cACA,gCAAkD,GAAa,WAC/D,CACA,YACA,eACA,sBACA,qBACA,CACA,EACA,cACA,qBACA,CACA,cACA,IAGA,EACA,EACA,EALA,KACA,IACA,KAIA,sBACA,IACA,GACA,CAAG,EAaH,OAA6B,GAAY,yCAAoD,GAAa,YAC1G,MACA,IACA,KACA,iBACA,MACA,KAEA,EACA,MACA,IACA,KACA,eACA,MACA,KAEA,EACA,MACA,gBACA,MACA,cAIA,OAHA,GACA,KAEA,CACA,EACA,aACA,CAAK,YACL,SACA,GACA,gBAEA,CAAK,EAEL,WAIA,EAHA,OAIA,IACA,QACA,CAAM,SACN,mBACA,CACA,qCACA,KACA,OAEA,eAAqC,KAAQ,MAC7C,kBACA,gCACA,gEACA,UACA,KACA,MACA,CACA,IACA,gBACM,QAAK,cACX,OACA,UAGA,CAAO,YACP,EACA,KAEA,GAEA,CAAO,CACP,CAAK,EACL,EAMA,OALA,iBACA,IAEA,YAEA,CACA,UACA,OA3FA,IACA,IACA,YACA,YAEA,EAuFA,aACA,MACA,oBAEA,YA1FA,KACA,IACA,EAyFA,cAxFA,KACA,IACA,CAuFA,CACA,iDChIA,YACA,cACA,uBACA,wCACA,CACA,aAGA,OAFA,sBACA,mBACA,KACA,yBACA,oBACA,CACA,CACA,eACA,4BACA,CACA,cACA,CACA,gBACA,CACA,yLCpBA,kDACA,aAEA,CACA,gBACA,iCACA,CACA,cACA,uCACA,CACA,gBACA,sCACA,CACA,gBACA,IACA,aACA,QACA,cACA,YACA,WACA,QACA,CAAI,EACJ,MACA,KACA,iCACA,QACA,MACM,oBACN,SAGA,cACA,mBACA,qBAGA,kBAFA,QAKA,OACA,wCAGA,uCAGA,YAIA,CACA,gBACA,UAAU,sCAAwC,EAClD,MACA,0BACA,SAEA,KACA,oCACA,QACA,MACM,+BACN,QAEA,OACA,0BAGA,YAIA,CACA,gBAEA,MADA,uBACA,EACA,CACA,cACA,sBACA,EACA,iDACA,UACA,GACK,EAAI,IAET,CACA,uBACA,OAGA,oBAGA,kDACA,sCAGA,CAuBA,gBACA,gBACA,SAEA,eACA,eACA,SAGA,QACA,CACA,cACA,0DAEA,cACA,SACA,SAEA,oBACA,cACA,SAEA,2BACA,MAGA,kCAIA,CACA,cACA,2DACA,CACA,cACA,uBACA,eACA,CAAG,CACH,CACA,cACA,YACA,CACA,wBACA,uCACA,yBACI,yBACJ,SApEA,OACA,SACA,SAEA,iBACA,kBACA,uCACA,qBACA,WACA,UACA,IACA,YAAoB,IAAW,KAC/B,eACA,kBACA,aACA,GAEA,CACA,uBACA,CACA,QACA,EA+CA,KAEA,CACA,CAIA,oBACA,eACA,iCACA,CACA,oBACA,eACA,oCACA,0ECjLA,EAAyB,eAAmB,CAC5C,QAEA,MACA,MAAiB,YAAgB,IACjC,KACA,SAEA,MACA,sEAEA,QACA,EACA,IACA,SACA,WACC,IACC,WAAe,MACjB,UACA,KACA,WACA,GACG,KACsB,eAAmB,aAAgC,QAAe,+GCtB3F,gBAAqC,GAAY,CACjD,iBACA,QACA,eACA,UACA,mBACA,mBACA,SACA,CACA,IACA,CACA,KACA,EACA,cACA,mCACA,gCACA,CACA,cACA,mBACA,+CACS,QAAmB,kBAC5B,mCACA,8BACA,iBACA,cACO,EAEP,iCACA,CACA,gBACA,qBACA,6BAEA,CACA,oBACA,UACA,UACA,CACA,mBACA,eAEA,QACA,eACA,UACA,SACA,CACA,YAKA,OAJA,UACA,8BACA,+DACA,0BACA,kBACA,CACA,KACA,sBAAkD,OAAe,EACjE,UACA,KACA,+BACA,+BACA,2BACA,yBACA,mBACA,gBACA,CACA,CACA,MACI,GAAa,YACjB,+BACA,qBACA,oBACA,OACA,kBACA,iBAEA,oBACA,OACA,KACA,kBACA,kBAEU,oBACV,kBACA,QACA,kBACA,iBAEA,oBACA,OACA,QACA,kBACA,mBAIA,2BACA,UACA,CAAO,CACP,CAAK,CACL,CACA,wBCjGA,gBACA,MAAiB,QAAc,IAC/B,IAAqB,UAAc,CACnC,QAAc,EACd,EACA,IAGE,QAL4B,GAKb,MACjB,eACA,CAAG,QACH,MAAiB,sBAA0B,CACvC,aAAiB,CACrB,eAA4C,GAAa,gBACzD,KAEA,yBACA,0BAEA,EAAiB,aAAiB,CAClC,QACA,sBACA,CAAK,CACL,KAEA,YAAsB,OAAgB,mCACtC,cAEA,OAAW,mCACX,CACA,aACA,4GCzBA,gBAAkC,GAAY,CAC9C,iBACA,QACA,eACA,eACA,eACA,gBACA,UACA,eACA,aACA,mBACA,kBACA,CACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAGA,GACA,GACA,GACA,GACA,EACA,cACA,oCACA,CACA,cACA,0BACA,0BACA,yBACA,UAEA,UAEA,CACA,gBACA,qBACA,cAEA,CACA,yBACA,SACA,QACA,aACA,gCAEA,CACA,2BACA,SACA,QACA,aACA,kCAEA,CACA,UACA,uBACA,UACA,UACA,4BACA,CACA,gBACA,mBACA,UASA,GARA,4CACS,QAAmB,kBAC5B,gCACA,8BACA,cACA,cACO,EAEP,sEACA,+CAEA,wBACA,mCAEA,UACA,0BACA,KACA,QACA,EACA,aACA,IAEA,UAEA,qBACA,0FACA,UAEA,gBACA,iEACA,UAEA,CACA,uBACA,+CACA,yBAMA,MA6SO,QAAmB,CAlT1B,KAkT0B,mBAlT1B,KACA,UACA,qBACA,uBAEA,CACA,CACA,mBACA,eAEA,eACA,SAWA,OAVA,2BACA,2BACA,gBACA,cACA,SACA,eACA,KAEA,CAAO,CACP,CAAK,EACL,CACA,CACA,kBACA,eAEA,SAAY,MAAa,EAAI,EAC7B,mBACA,KACK,CACL,CACA,mBACA,qCACA,2CAEA,OADA,0BACA,0CACA,CACA,SACA,gBACA,KACA,iCACA,CAAK,YACL,oBACA,SAEA,CACA,MACA,UACA,oBACA,aACA,GAKA,OAHA,iBACA,WAA8B,KAAI,EAElC,CACA,CACA,KAEA,GADA,UACQ,IAAQ,oBAAoC,QAAc,yBAClE,OAEA,MAAiB,QAAc,CAC/B,sBACA,uBAGA,yBACA,iBACA,mBAEA,CAAK,CALL,IAMA,CACA,KACA,8HACA,CACA,MACA,UACA,WACQ,IAAQ,6BAAuC,QAAc,wBAGrE,0BACA,2CAAsD,GAAY,eAClE,SAEA,CAAK,UACL,CACA,KACA,UACA,kBACA,CACA,KACA,UACA,sBACA,eAEA,CACA,KACA,UACA,uBACA,eAEA,CACA,sBAWA,EAVA,cACA,eACA,UACA,UACA,UAEA,EADA,MACA,gBACA,OAAY,GAAQ,EACpB,OAAU,2CAA6C,EACvD,KAEA,yBACA,0BACA,aACA,gBACA,SACA,EAAsB,QAAQ,4CAC9B,iBACA,eAGA,sCACA,UAEA,CACA,8BACA,2CACA,eAEA,IACA,iBACA,mBACA,EAAiB,QAAW,cAC5B,UACA,YACA,CAAU,SACV,SACA,OAGA,SAEA,0DACA,MACA,gEACA,cAMA,GAJA,yDACA,oBACA,SACA,kBACA,qBACA,IACA,cACA,YACA,CAAY,SACZ,SACA,CAGA,aACA,YACA,EAAe,QAAW,CAC1B,QACA,EACA,GAEA,KAEA,CACA,UACA,UACA,UACA,aACA,WAEA,qBACA,gBACA,cACA,OA2BA,MA1BA,CACA,SACA,cACA,YACA,wBACA,UACA,mBACA,YACA,OACA,8BACA,QACA,iBACA,iCACA,mCACA,oCACA,oDACA,+FACA,aACA,mBACA,sCACA,sBACA,oBACA,sCACA,eACA,qBAGA,CACA,gBACA,cACA,0CAGA,GAFA,sBACA,qBACQ,QAAmB,MAC3B,MAEA,wBACA,kBAEA,UACA,SAsBA,oBArBA,KACA,MACA,SAEA,wBAAc,GAAsB,aACpC,6BACA,gCACA,SAEA,cACA,YAKA,OAHA,2BACA,eAEA,6BAEA,QADA,EACA,KADA,EACA,EACA,MAFA,GAIA,MAEA,iBAEA,SAAmB,UAA2C,CAC9D,CACA,KACA,0DACA,eACA,OAEA,cACA,UACA,gBACA,sBACA,wBACA,oBAEA,CACA,gBACA,oBACA,qBACA,SAEA,CACA,MACI,GAAa,YACjB,aACA,2BACA,UACA,CAAS,EAET,gCACA,cACA,6BACA,CAAO,CACP,CAAK,CACL,CACA,EAIA,gBACA,OAHA,IAGA,EAHA,UAGA,EAHA,uEAGA,gDACA,CACA,kBACA,mBACA,kCACA,kCACA,CACA,QACA,CACA,oBACA,8FACA,CACA,gBACA,mCACA,gBCpZA,EAAqC,eAAmB,CAdxD,WACA,SACA,OACA,gBACA,IACA,CAAK,CACL,WACA,IACA,CAAK,CACL,YACA,CAEA,CACA,KAEA,MAAuC,YAAgB,eCfvD,EAAyB,eAAmB,KAC5C,MAA2B,YAAgB,GAC3C,2BCDA,UACA,8BACA,cACA,mBAGA,EACA,MACE,WAAe,MACjB,cACA,CAAG,KACH,EACA,IACA,SACA,qBACA,eACA,QACC,GACD,wCAAkF,OAAgB,gBCrBlG,MACA,YACA,8BACA,iBAGA,EACA,uCACA,+BACA,2CACA,cACA,CAAC,EERD,gBACA,ODQA,gBAQA,MAAiB,QAAc,IAC/B,EAAsB,IACtB,EAA6B,IAC7B,IAFoC,kBACmB,CACvD,GACA,mDACE,EAAe,GACf,EAA+B,KAC/B,EAA0B,CAFX,EAGjB,OAAqB,UAAc,CACnC,CAHiC,EACL,CAE5B,MACA,EACA,IAGA,2BAgBA,GAfE,sBAA0B,CACxB,aAAiB,CACrB,IACA,+BAA4E,GAAa,gBAEzF,OADA,iBACA,CACA,CAAO,CACP,OAEA,yBACA,0BAEE,WAAe,MACjB,gBAA4C,aAAkB,CAC9D,CAAG,QACG,EAAa,OACnB,IADmB,EACT,EAAe,OAEzB,GAAM,EAAW,CAFQ,OAGzB,CADiB,CAEjB,qBACA,4BACA,yBACA,CAAG,EACH,cAEA,+CACA,EC1DqB,EAAU,EAAa,EAC5C,SAD4C,uBCL5C,sBACA,qBACA,QAEA,GACA,oDuCSA,wBrCmpBA,IqC9mBA,OtClDe,gBACf,kBACA,2BACA,CACA,uJCAA,IAAO,QAAQ,IAAE,iBACjB,gBAAO,GAAgB,OAEvB,UACA,MAAgB,EAAQ,QACxB,IADwB,GACxB,yCACA,CAAC,sBAED,MACA,kBACA,aAGA,qBASA,SAAO,GAAS,MAShB,iBAqBA,mBA2BA,cAQA,gBASA,cASA,kCAiBA,MACA,mBACA,SAGA,WACA,4HACA,EASA,YASA,YASA,YASA,gBAsCA,uBAEA,mEA2BA,2BAA2B,MAAoB,EAAI,MAMnD,EACA,EALA,YAaA,GALA,oBAEA,QAGA,KAEA,mBAAgC,IAAO,IACvC,0BAEI,KAIJ,EAFA,qDACA,WAGA,QAAgB,IAAS,IACzB,OACA,qBAEA,EACA,CAEA,oBAIA,EAHA,kBACA,qBACA,WAEA,aAEA,OADA,SACA,cACA,SAGA,WACA,CAEA,MAEA,0CACA,uEAGA,kBAkLA,MAEA,GACA,iBAEA,CAAC,gDA2CD,uBAWM,EAAc,mBAAM,CAAe,yCASzC,cAEA,UACA,0CACA,KAEA,YACA,KACA,oBACA,WAEA,CAAG,EAEH,4BACA,EAqDA,+BAEA,eAEA,GACA,QACA,QACA,+BACA,EAsDA,qBAQA,KAkBA,gCAlBA,EAmBA,iBAlBA,EACA,aAGA,WACA,sCAA0C,SAAa,IACvD,cACA,qBAEA,CAAK,KAEL,IACA,UACA,oBACA,EACA,CAAG,UAAW,cAAc,wBAM5B,qCACA,4BAAiD,IAAP,GAA2B,EAAO,EAA3B,GAA2B,OAI5E,EAAe,CACf,UACA,gBACA,SAlpBA,YACA,iEACA,oDACA,EAgpBA,WApgBA,IACA,MACA,UACA,qDACA,aACA,wBAEA,gEAEA,CAEA,EA0fA,kBA9nBA,YAOA,MALA,oDACA,sBAEA,wBAGA,EAunBA,WACA,WACA,UA9kBA,kBA+kBA,WACA,gBACA,mBACA,YACA,aACA,YACA,cACA,SACA,SACA,SACA,WACA,aACA,SA9hBA,mBA+hBA,oBACA,eACA,aACA,UACA,MAhaA,aACA,aAAS,GAAU,kBACnB,KACA,UACA,kBACA,eACA,eACM,KACN,SAAkC,IAC5B,KACN,eAEA,MAEA,EAEA,+BAAwC,IAAO,IAC/C,gCAEA,QACA,EA6YA,OAjYA,mBAAgC,EAAW,GAAI,IAC/C,YACA,QACA,KAAe,EAAI,KAEnB,MAEA,CAAG,aAAG,EAAW,EACjB,GA0XA,KA7fA,UACA,4DA6fA,SAjXA,IACA,yBACA,eAEA,GA8WA,SAlWA,YACA,yCACA,0BACA,iCACA,kBACG,EACH,+BACA,EA4VA,aAjVA,gBACA,EACA,EACA,EACA,SAIA,GAFA,QAEA,iBAEA,GAGA,IADA,EADA,kCACA,OACA,QACA,OACA,wBACA,UACA,SAGA,cACA,EAAI,4CAEJ,QACA,EA0TA,SACA,aACA,SAjTA,UACA,YACA,0BACA,aAEA,YACA,qBACA,oBACA,EA0SA,QAhSA,IACA,kBACA,iBACA,eACA,qBACA,eACA,aACA,UAEA,QACA,EAuRA,aA7PA,YAKA,EAFA,OAFA,uBAEA,QAIA,6BACA,cACA,mBACA,CACA,EAmPA,SAzOA,YACA,EACA,SAEA,2BACA,UAGA,QACA,EAiOA,aACA,cAAgB,GA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,CAAK,EAGL,QAGA,OACA,OAAqB,GAAe,mBAOpC,IANA,qBACA,kBACA,WAEA,qBAEA,KACA,wBAGA,QACA,CAEA,WAEA,QAIA,IAFA,IAEA,MACA,aACA,SACA,IACA,MACA,CAAQ,SACR,eACA,KACA,CACA,CAEA,IACA,EAAgB,GAAe,YAC/B,CAAM,SACN,wBACA,CAKA,IAHA,IACA,WAEA,KACA,wBAGA,QACA,CAEA,UAGA,OAAW,GADU,GAAa,CADlC,CAEmB,CAFN,GAAW,kBACU,eACf,4BACnB,CACA,CAGA,EAAK,sDAEL,8BACA,oBAAwB,GAAW,KAAa,EAChD,CADmC,MACnC,EACA,MACA,WAAyB,OACpB,EACL,CACA,CAAC,EAED,EAAK,2CAGL,cACA,uBACA,oBAA0B,GAAW,KAAa,EAClD,CADqC,MACrC,EACA,WACA,oCACA,EAAU,EAAI,CACd,MACA,MACA,CAAO,EACP,CACA,CAEA,oBAEA,4BACA,CAAC,CC3ND,UACA,mBAKA,EAJA,wBACA,+CAKA,sCACA,GACA,CAAK,EAEL,WAGA,sBACA,wBAEA,0BAEA,aACA,kBAEA,kBACA,CAAK,EAGL,0BACA,EAEA,sBACA,eACA,GACA,CAAO,UAMP,OAJA,oBACA,gBACA,EAEA,CACA,EAEA,kBACA,WAKA,aAAyB,GAAa,OACtC,GtBpC4B,CsBoC5B,CtBpC6B,KsBoC7B,EACA,CAAK,CACL,CAKA,mBACA,eACA,iBAEA,CAMA,aACA,gBACA,eACA,MACA,CAEA,gBACA,wBAEA,oBAQA,eACA,oBACA,OAEA,gCACA,SACA,2BAEA,CAEA,gBACA,0BAEA,MACA,UACA,EAMA,OAJA,kBAEA,6CAEA,SAOA,gBACA,MAIA,OACA,MAJA,mBACA,GACA,CAAK,EAGL,QACA,CACA,CACA,CGpIA,QACA,aACA,uBACA,eACA,eACA,OACA,YACA,aACA,gCACA,cACA,iBACA,mBACA,gBACA,oBACA,WACA,oBACA,qBACA,UACA,aACA,gBACA,aACA,WACA,sBACA,sBACA,eACA,iBACA,oBACA,cACA,aACA,qBACA,kBACA,gCACA,mBACA,aACA,SACA,mBACA,uBACA,oBACA,eACA,yBACA,wBACA,sBACA,cACA,uBACA,wBACA,WACA,qBACA,aACA,oBACA,yBACA,oBACA,gCACA,+BACA,wBACA,mBACA,eACA,uBACA,mBACA,4BACA,0BACA,wBACA,iBACA,gBACA,iCACA,EAEA,qCACA,OACA,CAAC,ECtBD,OAnBA,cACA,CAkB6B,GAlB7B,MAAsB,GAkBe,GAjBrC,EAAmB,EAAK,EAAD,CAAM,qBAa7B,OAVE,EAAK,SAAkB,GAAK,aAAsB,cAAiB,EAGnE,EAAK,iBAAkC,cAAiB,EAG1D,qBACA,SAA0B,GAAW,KACrC,EAEA,CACA,MAMA,SLuLe,EKvLD,CAGd,ELoLoB,CKpLpB,CLoLqB,KKvLF,OAGnB,GAAsB,CACtB,eJiFe,EIjFK,CACpB,CAFmC,EAEnC,KJgF0B,EAAC,CIhF3B,CAAiB,GACjB,EAF+B,CAE/B,EADyB,KACzB,CAAgB,GAChB,IADuB,SACvB,CAAmB,GAGnB,eAH6B,CAGV,GAGnB,YAH6B,WAG7B,CAGA,mBACA,qBACA,EAEA,UH9Ce,EG8CA,MAAM,CH9CN,GACf,mBACA,sBACA,CACA,EG6CA,gBF7De,EE6DM,OF7DN,GACf,EE4DiC,KF5DxB,EAAK,kCE+Dd,eAAoB,GAEpB,QAF+B,OAE/B,GAAqB,CAErB,gBAFiC,CAEL,GAAe,EAAK,iBAAN,CAAM,eAEhD,cAAmB,GAAQ,WAE3B,kBDbe,ECaQ,CAEvB,WDf6B,EAAC,CCkB9B,OALqC,KAKjB,0FCpFpB,MAAqB,mBAAa,CAClC,QAEA,MACA,MAAgB,gBAAU,IAC1B,mCAAgE,QAAe,EAC/E,EAkBA,+CACA,MACA,mBACA,OACA,IACA,qBACA,SACA,CAAK,CACL,IACA,oBACA,UACA,EAEA,EACA,EAAY,EAAY,UACxB,sBADwB,CACxB,CACA,QACI,0BACJ,eACI,yBACJ,qBAEA,KACA,EAEA,CAAC,CACD,cACA,MACA,eAoCA,OAnCA,IACA,sBACA,QACA,SACA,OACA,IAEA,EACA,SACA,OACA,IAEA,EACA,MACA,+CACA,eACA,GAAuD,EAAtC,EAAsC,EACvD,EADgC,GAAG,CAAoB,MACvD,iDAEA,MACA,WACA,IACA,kBACA,MAEA,IAEA,CAAW,CAEX,EACA,kBACA,IACA,CAAK,EACL,YAEA,CACA,EACA,gBACA,WACA,YAA4E,gBAAU,CACtF,IACA,sBACA,sCACA,EAEA,QACK,CACL,OACA,oBAEA,IACA,iBACA,IACA,YAEA,mCAiBA,CAhBE,eAAS,MACX,mBACA,uBACA,eACA,MACA,QAEA,gBACA,MACA,CACA,GACA,CAAK,EAEL,OADA,IACA,CACA,CAAG,UACD,mBAAa,IACf,MAEA,EADA,MAGA,CACA,CAEA,gBACA,WAUA,MATkB,iBAAW,CAC7B,SACA,GAAiD,EAAtC,MAAe,GAAG,CAAoB,GACjD,iCAEA,oBACA,CAAK,CACL,MAGA,CAEA,gBACA,OACA,OAEA,OACA,oCE3DA,6BDhGA,kDACA,gBACA,eACA,sBACA,MACA,WACA,UAEA,GAA6C,EAAtC,MAAe,CAAuB,EAC7C,CAD6C,KAC7C,6CAEA,YAEA,WACA,UACA,MACA,MACA,0CACA,EACA,UACA,WACA,KACA,QACA,2BAEA,iDAEA,EACA,MACA,QACA,OAEA,mBACA,OACA,WACA,OACA,EACA,YACA,eACA,WACA,CACA,EACA,+CACA,YACA,aACA,WACA,OACA,KACA,aACA,CAAO,CACP,KACA,aACA,GAGA,EACA,YACA,WACA,UACA,MACA,kBACA,QAEA,aADA,KACA,YACA,WAGA,OACA,WACA,sBACA,MACA,GACA,OAGA,EACA,YACA,MACA,cACA,gDACA,UACA,SAGA,iBACA,SAEA,QACA,EACA,OACA,cACA,OACA,iBACA,EAOA,OANA,UACA,SACA,KACA,WACA,GAEA,CACA,EACA,OACA,SACA,cACA,MACA,OACA,wCACA,qCACA,EAYA,OAXA,cACA,WACA,uCAEA,OADA,SACA,KACA,qBACA,QACA,WAEA,CACA,EACA,CACA,EAQA,WA4ZA,EA1ZA,6EAAmT,8DACnT,MACA,qDACA,CAAC,WACD,MACA,6CACA,CAAC,SACD,iBACA,GAA+C,EAAtC,CACT,KADwB,CACxB,EAD2B,CAAoB,GAC/C,6BAEA,eAMA,OALA,IACA,GAAoB,yBACpB,WACA,iBAEA,CACA,GACA,kBACA,EACA,EACA,UACA,IACA,GACA,CAAQ,SACR,IACA,KACA,IAEA,CACA,EACA,GACA,KACA,OAEA,cACA,gBACA,cACA,MACA,+CACA,CAAO,EACP,UACA,aACA,UACA,aACA,UACA,aACA,QACA,GAEA,EAAM,6BACN,KACA,OAEA,EAAG,CACH,cACA,SACA,cACA,cACA,gBACA,gBACA,oBACA,OACA,aACA,QACA,QACA,CACA,aACA,kBACA,mBACU,GAAgD,EAAtC,GAAsC,GAAvB,CACnC,EADsC,CAAoB,GAC1D,uCAEA,SACA,QACA,QACA,CAEA,aADA,SACA,UACA,UACA,SAGA,CACA,qBAA+C,KAAQ,KACvD,cACA,KACA,wBACA,oBACA,KACA,KACA,CAEA,IACA,KACA,MAEA,WACA,CACA,GACA,iBACA,QAoDA,EACA,EApDA,WACA,UACA,0BAGA,sBACA,SAGA,aANA,SAYA,YACA,SACA,OACA,WACA,KACA,IACA,IAEA,EA2DA,MACA,IACA,UA5DA,IACA,MACA,WACA,WACA,UACA,QACA,mBAEA,4BAGA,WACA,CACA,WACA,IACA,WACA,EAAQ,OACR,eACA,QACA,WAEA,+BACA,GACA,GAEA,CACA,EAGA,CACA,aAIA,OAHA,GACA,wBAEA,SACO,CACP,cAmBA,OAlBmD,MACnD,oEAEA,UACA,YAIA,GAHuD,GACvD,0DAEA,GACA,IACA,gBACA,EAAgB,OAChB,IACA,GACA,CAEA,GAEA,CACA,CACA,GAYA,OARA,SACA,OACA,6DACA,OACA,EACA,IAGA,CACA,CAAM,SAIN,OAHA,WACA,MACA,MACA,CACA,EAAM,OACN,KACA,wBACA,aACA,SACA,2BAEA,CACA,EAAG,CACH,aACA,UACA,gBACA,cACA,OACA,uBACA,WACA,aACA,SACA,CACA,CACA,EAAG,CACH,oBACA,SA8BA,IACA,WA9BA,WACA,WACA,MACA,WACA,IACA,WAeA,gBAfA,EACA,SACA,iCAEA,UACA,OACA,SACA,KACA,UACA,SACA,2BACA,MAEA,MACA,CAGA,CAHU,CAGF,OACR,IACA,IACA,IAEA,CACA,KAEA,EACA,EAAM,OACN,IACA,CACA,EAAG,CACH,aACA,MACA,WACA,WACA,eACA,mBACA,gBACA,WACA,KACA,SACA,WACA,UACA,SACA,2BACA,KAEA,CAEA,qBACA,gBACA,cACA,UACA,uBACA,CAEA,CACA,EAAG,CACH,aACA,MACA,WACA,WACA,OAEA,aADA,KACA,YACA,KACA,SAEA,GACA,UACA,sBACA,SACA,EACA,WACA,2BACA,MA6BA,MA5BA,KACA,SAWA,IACA,UAXA,SACA,IACA,gBACA,EAAc,OACd,IACA,IACA,IAEA,CACA,GAGA,GACA,UACA,KACA,IACA,GACA,EAAkB,OAClB,IACA,CACA,EAEA,EAAY,OACZ,IACA,CACA,EAGA,CACA,QACA,EAAG,CACH,aACA,MACA,WACA,WACA,2CACA,MACA,2CACA,CAAK,GAOL,aANA,KACA,WAEA,SACA,YACA,2BACA,aACA,UACA,uBACA,CACA,MACA,CACA,QACA,EAAG,CA0BH,GACA,eACA,eACA,IACA,gBACA,EAAQ,OACR,IACA,GACA,CACA,CAAK,CACL,YAEA,MADA,KACA,EAGA,OAFA,SACA,IACA,KACA,YACA,KACA,GACA,CACA,CACA,EAEA,OADA,2BAAkD,MA/ClD,CAEA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAuByE,EACzE,CACA,EAGA,EAraA,IACA,eACA,eACA,eACA,eACA,GC9HA,IACA,gBACA,aAAqB,IAAW,EAChC,GACA,WACA,QAAc,GAAsC,GAAvB,GAAG,CAAoB,4BACpD,CACA,EAWA,MAVA,qBACA,UAEA,SACA,SACA,WAEA,GACA,YAEA,CACA,CACA,cACA,cACA,CACA,kBACA,SACA,KACA,kCAEA,CAEA,WACA,QACA,EAAqB,EAA6B,EAAG,EACrD,cACA,SAFkD,KAGlD,EAAgB,EAChB,EACA,EACA,OACA,OACA,GALuC,EAKvC,EACA,OACA,EACA,OACA,cACA,EACA,UAEA,mBAGA,iBACA,mBACA,SACA,SACA,UACA,CAAG,EACH,mBACA,YACA,cACA,YACG,EAwBH,gBAvBA,CAEA,iCACA,6BACA,uBAgBA,MAfA,CACA,cACA,cACA,IACA,IACA,iBACA,YACA,MAGA,EAAY,OACZ,GACA,CACA,CACA,EAEA,CACA,EAEA,EACA,MAEA,IAMA,OACA,IACA,MAEA,2EACA,wCACA,aACA,iJAKA,6FC3GA,aACyC,SAGzC,cACA,MAAiB,QAAI,CACrB,EACA,UACA,qCACA,cACA,GAEA,QACA,CA6EA,IAuPA,+CAsBA,kBACA,IACA,2BACI,SAEJ,4BACA,gBAGA,MACA,CACA,CAAC,QACD,MACA,EACA,EA2CA,EA1CA,OACA,gBACA,QACA,UAEA,OADA,UACA,CACA,IACA,wCACA,CAAY,SACZ,QACA,CACA,GACA,CACA,QACA,EACA,4DACA,KACA,UAEA,IACA,CAAK,CACL,gBACA,MACA,sCACA,EACA,4CAEA,CAAK,CACL,eACA,MACA,2CACA,CACA,EAWA,IACA,mCACI,SACJ,CAkBA,GAjBA,4FACA,WACA,mCACA,WACA,EAEA,UACA,gCACA,aAEA,EAEA,OADA,qCACA,KACA,uCACA,CACA,GAEA,OA/BA,CAgCA,cAhCA,EAgCA,EAhCA,iBACA,MACA,IACA,mBACA,CAAM,SACN,GACA,CACA,IACA,CAAG,EAyBH,CACA,QACA,CACA,UACA,sBACA,iCACA,EAAmB,QAAI,CACvB,oBA+BA,OA5BA,kBAEA,kBAEA,EAIA,OALA,kBAEA,aACA,uBAEA,CACA,EACiB,QAAI,CACrB,QACA,UACA,4CACA,OACA,OACA,iBAEA,qBACA,WACA,OACA,kBAGA,OACA,eACA,EAGA,gCC/dA,cACA,YAAkB,mBAAsB,KACxC,mBACA,eACA,UAGA,QACA,kBAwHA,MAlGA,gBACA,kBACA,iCAMA,iBAFA,MAA0B,OAE1B,SACA,iDAEA,WACA,oCAGA,wBACA,mDACA,wBAEA,SACA,eACA,OAIA,MAAkC,IAElC,WAWA,qBAAuE,QAGvE,uBACA,qBACA,CA4BA,qBACA,CACA,MACA,IA7BA,YACA,yDAQA,QAFA,2CAA6D,MAC7D,KACA,IAAoB,WAAoB,KACxC,sBACA,uBAEA,IACA,+BAGA,GAFA,iBAEA,MACA,KAEA,CAAQ,UACR,CAEA,gBACA,EAMA,qBACA,EACA,EACA,GACA,IAAmB,IACnB,UACA,CAAW,EAEX,CAAO,CACP,2BACA,4BAA6C,oBAC7C,CAAO,CACP,0BACA,aAA6B,mCAC7B,CACA,CAAK,CACL,CACA,YAAoB,uBAAyC,CAC7D,WAAmB,uBACnB,EAEA,EAlHA,CACA,iBAIA,MAHA,YACA,kBAEA,qBAAoC,EAAE,yBACtC,CAAG,CACH,kBACA,qCACA,2CACA,mBAEA,CACA,EAuGA,CAAmC,SAAW,gEC5H9C,MAA6B,eAAmB,GAAG,EA6BnD,kBAAoB,0FAA8J,EAClL,UACA,MAAgC,YAAgB,IAChD,GAAgC,MAGhC,iCACA,YACA,YAIA,OACA,KACA,KACA,QACA,EAEA,GACA,KACA,YA5CA,WAAuC,qGAFvC,EAEuC,6BAA2J,EAClM,SAqBA,MApBA,WACA,uCACA,oBACA,8BAA2C,EAAS,IACpD,GACA,uCACA,0CACA,YACA,0CACA,aACA,0CACA,mBACA,GACA,uBACA,YACA,sBACA,YACA,2BACA,oBACA,uCACA,CACA,EAqBA,IAEA,2BACA,GACA,QAAyB,EAAgB,GACzC,yCACA,KACA,eACA,YAAoB,IAAe,KACnC,QACA,iBAOA,8CACA,CAD0F,CAC1F,IACA,qBACA,IACA,QAA0B,GAAO,IAAI,EAAe,GACpD,GAA0B,aAC1B,CACA,MAA8B,eAAmB,SAAW,0BAAgD,MAC5G,EACA,UAKA,OAA0B,eAAmB,CAAC,UAAc,EAAI,MAAQ,CACxE,EACgB,eAAmB,aAEnC,CACA,OAAY,eAAmB,SAAW,yGAAgM,GAC1O,aAAkC,eAAmB,IAAY,MAAQ,KACzE,EACA,6EC9EA,oBAIA,MAHA,0BACA,EAAS,eAAgB,+BAAsC,cAAkB,EACjF,cAAwB,wEACxB,IACA,EAEO,gBACP,kCACA,kFAEA,aAAkB,mBADlB,OAEA,qEACA,CAEO,iBAQP,MAPA,8BACA,iCAA+C,IAAO,IAEtD,aADA,eACA,uDAEA,QACA,GACA,qBACA,EAEO,gBACP,SACA,0EACA,YACA,4DACA,8CAA2D,WAAc,IACzE,uEACA,kBAEA,QACA,CAiKO,kBACP,mDAA2E,IAAO,KAClF,YACA,yCACA,WAGA,iDACA,CArEO,cA2GP,cA2DA","sources":["webpack://_N_E/./node_modules/@formatjs/fast-memoize/lib/index.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://_N_E/./node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://_N_E/./node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://_N_E/./node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/manipulator.js","webpack://_N_E/./node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/error.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/utils.js","webpack://_N_E/./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://_N_E/./public/icons/loader-logo.svg","webpack://_N_E/./public/icons/lock-icon-gray.svg","webpack://_N_E/./src/assets/icons/amex.svg","webpack://_N_E/./src/assets/icons/chevron-left.svg","webpack://_N_E/./src/assets/icons/clock.svg","webpack://_N_E/./src/assets/icons/mastercard.svg","webpack://_N_E/./src/assets/icons/paypal.svg","webpack://_N_E/./src/assets/icons/star.svg","webpack://_N_E/./src/assets/icons/unionpay.svg","webpack://_N_E/./src/assets/icons/visa.svg","webpack://_N_E/./src/assets/images/payment/apple-pay-logo.svg","webpack://_N_E/./src/assets/images/payment/check-icon.svg","webpack://_N_E/./src/assets/images/payment/copy-icon.svg","webpack://_N_E/./src/assets/images/payment/info-icon.svg","webpack://_N_E/./src/assets/images/payment/payment-loader.svg","webpack://_N_E/./src/assets/images/payment/payment-succeed.svg","webpack://_N_E/./src/assets/images/payment/paypal-logo.svg","webpack://_N_E/./node_modules/braintree-web-drop-in/dist/browser/dropin.js","webpack://_N_E/./node_modules/braintree-web/dist/browser/index.js","webpack://_N_E/./node_modules/deepmerge/dist/es.js","webpack://_N_E/./node_modules/lodash-es/_freeGlobal.js","webpack://_N_E/./node_modules/lodash-es/_root.js","webpack://_N_E/./node_modules/lodash-es/_Symbol.js","webpack://_N_E/./node_modules/lodash-es/_getRawTag.js","webpack://_N_E/./node_modules/lodash-es/_objectToString.js","webpack://_N_E/./node_modules/lodash-es/_baseGetTag.js","webpack://_N_E/./node_modules/lodash-es/_overArg.js","webpack://_N_E/./node_modules/lodash-es/_getPrototype.js","webpack://_N_E/./node_modules/lodash-es/isObjectLike.js","webpack://_N_E/./node_modules/lodash-es/isPlainObject.js","webpack://_N_E/./node_modules/lodash-es/_listCacheClear.js","webpack://_N_E/./node_modules/lodash-es/eq.js","webpack://_N_E/./node_modules/lodash-es/_assocIndexOf.js","webpack://_N_E/./node_modules/lodash-es/_listCacheDelete.js","webpack://_N_E/./node_modules/lodash-es/_listCacheGet.js","webpack://_N_E/./node_modules/lodash-es/_listCacheHas.js","webpack://_N_E/./node_modules/lodash-es/_listCacheSet.js","webpack://_N_E/./node_modules/lodash-es/_ListCache.js","webpack://_N_E/./node_modules/lodash-es/_stackClear.js","webpack://_N_E/./node_modules/lodash-es/_stackDelete.js","webpack://_N_E/./node_modules/lodash-es/_stackGet.js","webpack://_N_E/./node_modules/lodash-es/_stackHas.js","webpack://_N_E/./node_modules/lodash-es/isObject.js","webpack://_N_E/./node_modules/lodash-es/isFunction.js","webpack://_N_E/./node_modules/lodash-es/_coreJsData.js","webpack://_N_E/./node_modules/lodash-es/_isMasked.js","webpack://_N_E/./node_modules/lodash-es/_toSource.js","webpack://_N_E/./node_modules/lodash-es/_baseIsNative.js","webpack://_N_E/./node_modules/lodash-es/_getValue.js","webpack://_N_E/./node_modules/lodash-es/_getNative.js","webpack://_N_E/./node_modules/lodash-es/_Map.js","webpack://_N_E/./node_modules/lodash-es/_nativeCreate.js","webpack://_N_E/./node_modules/lodash-es/_hashClear.js","webpack://_N_E/./node_modules/lodash-es/_hashDelete.js","webpack://_N_E/./node_modules/lodash-es/_hashGet.js","webpack://_N_E/./node_modules/lodash-es/_hashHas.js","webpack://_N_E/./node_modules/lodash-es/_hashSet.js","webpack://_N_E/./node_modules/lodash-es/_Hash.js","webpack://_N_E/./node_modules/lodash-es/_mapCacheClear.js","webpack://_N_E/./node_modules/lodash-es/_isKeyable.js","webpack://_N_E/./node_modules/lodash-es/_getMapData.js","webpack://_N_E/./node_modules/lodash-es/_mapCacheDelete.js","webpack://_N_E/./node_modules/lodash-es/_mapCacheGet.js","webpack://_N_E/./node_modules/lodash-es/_mapCacheHas.js","webpack://_N_E/./node_modules/lodash-es/_mapCacheSet.js","webpack://_N_E/./node_modules/lodash-es/_MapCache.js","webpack://_N_E/./node_modules/lodash-es/_stackSet.js","webpack://_N_E/./node_modules/lodash-es/_Stack.js","webpack://_N_E/./node_modules/lodash-es/_arrayEach.js","webpack://_N_E/./node_modules/lodash-es/_defineProperty.js","webpack://_N_E/./node_modules/lodash-es/_baseAssignValue.js","webpack://_N_E/./node_modules/lodash-es/_assignValue.js","webpack://_N_E/./node_modules/lodash-es/_copyObject.js","webpack://_N_E/./node_modules/lodash-es/_baseTimes.js","webpack://_N_E/./node_modules/lodash-es/_baseIsArguments.js","webpack://_N_E/./node_modules/lodash-es/isArguments.js","webpack://_N_E/./node_modules/lodash-es/isArray.js","webpack://_N_E/./node_modules/lodash-es/stubFalse.js","webpack://_N_E/./node_modules/lodash-es/isBuffer.js","webpack://_N_E/./node_modules/lodash-es/_isIndex.js","webpack://_N_E/./node_modules/lodash-es/isLength.js","webpack://_N_E/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://_N_E/./node_modules/lodash-es/_baseUnary.js","webpack://_N_E/./node_modules/lodash-es/_nodeUtil.js","webpack://_N_E/./node_modules/lodash-es/isTypedArray.js","webpack://_N_E/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://_N_E/./node_modules/lodash-es/_isPrototype.js","webpack://_N_E/./node_modules/lodash-es/_nativeKeys.js","webpack://_N_E/./node_modules/lodash-es/_baseKeys.js","webpack://_N_E/./node_modules/lodash-es/isArrayLike.js","webpack://_N_E/./node_modules/lodash-es/keys.js","webpack://_N_E/./node_modules/lodash-es/_baseAssign.js","webpack://_N_E/./node_modules/lodash-es/_nativeKeysIn.js","webpack://_N_E/./node_modules/lodash-es/_baseKeysIn.js","webpack://_N_E/./node_modules/lodash-es/keysIn.js","webpack://_N_E/./node_modules/lodash-es/_baseAssignIn.js","webpack://_N_E/./node_modules/lodash-es/_cloneBuffer.js","webpack://_N_E/./node_modules/lodash-es/_copyArray.js","webpack://_N_E/./node_modules/lodash-es/_arrayFilter.js","webpack://_N_E/./node_modules/lodash-es/stubArray.js","webpack://_N_E/./node_modules/lodash-es/_getSymbols.js","webpack://_N_E/./node_modules/lodash-es/_copySymbols.js","webpack://_N_E/./node_modules/lodash-es/_arrayPush.js","webpack://_N_E/./node_modules/lodash-es/_getSymbolsIn.js","webpack://_N_E/./node_modules/lodash-es/_copySymbolsIn.js","webpack://_N_E/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://_N_E/./node_modules/lodash-es/_getAllKeys.js","webpack://_N_E/./node_modules/lodash-es/_getAllKeysIn.js","webpack://_N_E/./node_modules/lodash-es/_DataView.js","webpack://_N_E/./node_modules/lodash-es/_Promise.js","webpack://_N_E/./node_modules/lodash-es/_Set.js","webpack://_N_E/./node_modules/lodash-es/_WeakMap.js","webpack://_N_E/./node_modules/lodash-es/_getTag.js","webpack://_N_E/./node_modules/lodash-es/_initCloneArray.js","webpack://_N_E/./node_modules/lodash-es/_Uint8Array.js","webpack://_N_E/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://_N_E/./node_modules/lodash-es/_cloneDataView.js","webpack://_N_E/./node_modules/lodash-es/_cloneRegExp.js","webpack://_N_E/./node_modules/lodash-es/_cloneSymbol.js","webpack://_N_E/./node_modules/lodash-es/_cloneTypedArray.js","webpack://_N_E/./node_modules/lodash-es/_initCloneByTag.js","webpack://_N_E/./node_modules/lodash-es/_baseCreate.js","webpack://_N_E/./node_modules/lodash-es/_initCloneObject.js","webpack://_N_E/./node_modules/lodash-es/_baseIsMap.js","webpack://_N_E/./node_modules/lodash-es/isMap.js","webpack://_N_E/./node_modules/lodash-es/_baseIsSet.js","webpack://_N_E/./node_modules/lodash-es/isSet.js","webpack://_N_E/./node_modules/lodash-es/_baseClone.js","webpack://_N_E/./node_modules/lodash-es/cloneDeep.js","webpack://_N_E/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://_N_E/./node_modules/lodash-es/clone.js","webpack://_N_E/./node_modules/lodash-es/_arrayMap.js","webpack://_N_E/./node_modules/lodash-es/isSymbol.js","webpack://_N_E/./node_modules/lodash-es/memoize.js","webpack://_N_E/./node_modules/lodash-es/_memoizeCapped.js","webpack://_N_E/./node_modules/lodash-es/_stringToPath.js","webpack://_N_E/./node_modules/lodash-es/_toKey.js","webpack://_N_E/./node_modules/lodash-es/_baseToString.js","webpack://_N_E/./node_modules/lodash-es/toString.js","webpack://_N_E/./node_modules/lodash-es/toPath.js","webpack://_N_E/./node_modules/formik/dist/formik.esm.js","webpack://_N_E/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/./node_modules/intl-messageformat/lib/src/core.js","webpack://_N_E/./node_modules/intl-messageformat/lib/src/error.js","webpack://_N_E/./node_modules/intl-messageformat/lib/src/formatters.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/assertEnvironment.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/reactBatchedUpdates.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/observerBatching.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/printDebugValue.js","webpack://_N_E/./node_modules/mobx-react-lite/es/staticRendering.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/UniversalFinalizationRegistry.js","webpack://_N_E/./node_modules/mobx-react-lite/es/utils/observerFinalizationRegistry.js","webpack://_N_E/./node_modules/mobx-react-lite/es/useObserver.js","webpack://_N_E/./node_modules/mobx-react-lite/es/observer.js","webpack://_N_E/./node_modules/mobx-react-lite/es/ObserverComponent.js","webpack://_N_E/./node_modules/mobx-react-lite/es/useLocalObservable.js","webpack://_N_E/./node_modules/mobx-react-lite/es/useAsObservableSource.js","webpack://_N_E/./node_modules/mobx-react-lite/es/useLocalStore.js","webpack://_N_E/./node_modules/mobx-react-lite/es/index.js","webpack://_N_E/./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js","webpack://_N_E/./node_modules/mobx/dist/mobx.esm.js","webpack://_N_E/?adc8","webpack://_N_E/./node_modules/@sentry/react/build/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/common/getVercelEnv.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/logSpans.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/sampling.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/measurement.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/utils.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/trace.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/buildPolyfills/_optionalChain.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/idleSpan.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/errors.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/tracing/backgroundtab.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/tracing/request.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/buildPolyfills/_nullishCoalesce.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/routing/appRouterRoutingInstrumentation.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/routing/pagesRouterRoutingInstrumentation.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/routing/nextRoutingInstrumentation.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/browserTracingIntegration.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/path.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/integrations/rewriteframes.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/clientNormalizationIntegration.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/tunnelRoute.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/client/index.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/isSentryRequestUrl.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/node.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/isBrowser.js","webpack://_N_E/./node_modules/@sentry-internal/replay/build/npm/esm/index.js","webpack://_N_E/./sentry.client.config.ts","webpack://_N_E/../../../src/client/legacy/image.tsx","webpack://_N_E/../client/use-intersection.tsx","webpack://_N_E/../../../src/shared/lib/dynamic.tsx","webpack://_N_E/../../../src/shared/lib/loadable-context.shared-runtime.ts","webpack://_N_E/../../../src/shared/lib/loadable.shared-runtime.tsx","webpack://_N_E/./node_modules/styled-jsx/dist/index/index.js","webpack://_N_E/./node_modules/styled-jsx/style.js","webpack://_N_E/./src/components/common/Image/index.tsx","webpack://_N_E/./src/components/common/SimpleImage/index.tsx","webpack://_N_E/./src/components/common/circle-button/circle-button.tsx","webpack://_N_E/./src/assets/icons/times.svg","webpack://_N_E/./src/components/common/close-button/close-button.tsx","webpack://_N_E/./src/components/common/contact-us-link/contact-us-link.tsx","webpack://_N_E/./src/components/common/loading-indicator/loading-indicator.tsx","webpack://_N_E/./src/components/common/modal/alert-with-close-button/alert-with-close-button.tsx","webpack://_N_E/./src/components/common/modal/alert/alert.tsx","webpack://_N_E/./src/components/common/ui-kit-modal/index.tsx","webpack://_N_E/./src/components/common/modal/modal-container/modal-container.tsx","webpack://_N_E/./src/components/common/modal/modal/modal.tsx","webpack://_N_E/./public/images/applepayBadge.svg","webpack://_N_E/./src/components/common/money-back/money-back.tsx","webpack://_N_E/./src/components/common/page-loading/page-loading.tsx","webpack://_N_E/./src/components/common/reviews/reviews.tsx","webpack://_N_E/./src/models/ab-test/ab-test.ts","webpack://_N_E/./src/models/analytics-store/analytics-store.ts","webpack://_N_E/./src/models/user/user.ts","webpack://_N_E/./src/models/auth-store/auth-store.ts","webpack://_N_E/./src/models/quiz-store/quiz-store.ts","webpack://_N_E/./src/models/root-store/root-store.ts","webpack://_N_E/./src/components/common/root-store-provider/root-store-provider.tsx","webpack://_N_E/./src/components/common/ui-kit-button/index.tsx","webpack://_N_E/./src/components/common/ui-kit-checkbox/index.tsx","webpack://_N_E/./src/components/common/ui-kit-input/index.tsx","webpack://_N_E/./src/components/common/ui-kit-loading-button/index.tsx","webpack://_N_E/./src/components/pages/page/page.tsx","webpack://_N_E/./src/features/Analytics/api/facebook.ts","webpack://_N_E/./src/features/Analytics/hooks/mutation/useFacebookEvent.ts","webpack://_N_E/./src/features/Analytics/api/pinterest.ts","webpack://_N_E/./src/features/Analytics/hooks/mutation/usePinterestEvent.ts","webpack://_N_E/./src/features/Analytics/hooks/useGoogleEvent.ts","webpack://_N_E/./src/features/Analytics/hooks/useBingEvent.ts","webpack://_N_E/./src/features/Analytics/hooks/useAnalytics.tsx","webpack://_N_E/./src/features/Payments/components/apple-pay-payment-button/apple-pay-payment-button.tsx","webpack://_N_E/./src/features/Payments/components/payment-button/payment-button.tsx","webpack://_N_E/./src/assets/images/payment/browser-menu-arrow.svg","webpack://_N_E/./src/assets/icons/credit-card.svg","webpack://_N_E/./src/features/Payments/components/card-payment-button/card-payment-button.tsx","webpack://_N_E/./public/images/gpay-logo.svg","webpack://_N_E/./src/features/Payments/components/google-pay-payment-button/google-pay-payment-button.tsx","webpack://_N_E/./src/features/Payments/components/paypal-payment-button/paypal-payment-button.tsx","webpack://_N_E/./src/features/Payments/components/payment-modal/index.tsx","webpack://_N_E/./src/features/Paywall/components/banner/banner.tsx","webpack://_N_E/./src/features/Paywall/components/contact-block/index.tsx","webpack://_N_E/./src/components/common/modal/form-modal/form-modal.tsx","webpack://_N_E/./src/features/Paywall/components/contact-form-modal/index.tsx","webpack://_N_E/./src/features/Paywall/components/graph/index.tsx","webpack://_N_E/./src/features/Paywall/components/guarantees/index.tsx","webpack://_N_E/./src/features/Paywall/components/press-section/index.tsx","webpack://_N_E/./src/components/common/review-card/review-card.tsx","webpack://_N_E/./src/features/Paywall/components/reviews/index.tsx","webpack://_N_E/./src/features/Paywall/components/start-block-transaktion-declined/index.tsx","webpack://_N_E/./src/features/Paywall/components/start-block/start-block.tsx","webpack://_N_E/./src/features/Paywall/hocs/paywall-with-scroll/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/subscription-plan-card/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/index.ts","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/trials-disclaimer/trials-disclaimer.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-simple/components/Users/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-simple/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-master/index.tsx","webpack://_N_E/./src/features/Paywall/components/skeleton/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/empty-subscription-plan-list/index.tsx","webpack://_N_E/./public/images/money-hand.svg","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/guarantee-block/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/privacy-agreement/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/billing-period/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/current-price/useCurrentPrice.ts","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/current-price/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/discount-percentage/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/full-price/index.tsx","webpack://_N_E/./src/features/Payments/components/paddle-inline-checkout/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/master/index.tsx","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/price-unit-full/index.tsx","webpack://_N_E/./src/features/Stripe/components/LearnMoreList/index.tsx","webpack://_N_E/./src/features/Stripe/utils/validate-cardholder-name.ts","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/debit-credit-block/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/card-payment-block/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/payment-request-button/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/paypal-button-braintree/index.tsx","webpack://_N_E/./src/assets/images/payment/mastercard-logo.svg","webpack://_N_E/./src/assets/images/payment/unionpay-logo.svg","webpack://_N_E/./src/assets/images/payment/visa-logo.svg","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/widgets/payment-option-tab/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/widgets/compact-selector/index.tsx","webpack://_N_E/./public/images/gpay-logo-white-theme.svg","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/payment-declined-modal/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/payment-processing-alert/payment-processing-alert.tsx","webpack://_N_E/./src/features/Stripe/widgets/second-payment-failed-modal/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/subscription-plan-card-stripe-with-payment-methods/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/upsell-fallback-modal/index.tsx","webpack://_N_E/./src/features/Stripe/reducers/modal.ts","webpack://_N_E/./node_modules/canvas-confetti/dist/confetti.module.mjs","webpack://_N_E/./src/features/Stripe/widgets/modal-succeeded/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/upsell-modal-renderer/index.tsx","webpack://_N_E/./src/features/Upsell/components/upsell-loader/index.tsx","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/freeze.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/element.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/global.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/process.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/exports/resize-observer.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/hydration.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","webpack://_N_E/./src/features/Theme/provider.tsx","webpack://_N_E/./src/features/Theme/useTheme.ts","webpack://_N_E/./src/features/Theme/index.ts","webpack://_N_E/./node_modules/next-seo/lib/next-seo.module.js","webpack://_N_E/./src/components/common/Seo/index.tsx","webpack://_N_E/./node_modules/@sentry/react/build/esm/debug-build.js","webpack://_N_E/./node_modules/@sentry/react/build/esm/error.js","webpack://_N_E/./node_modules/@sentry/react/build/esm/errorboundary.js","webpack://_N_E/./src/components/common/error-boundary/error-boundary.tsx","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/query.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/queryCache.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/mutationCache.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/queryClient.js","webpack://_N_E/./node_modules/@tanstack/react-query-devtools/build/modern/index.js","webpack://_N_E/./src/components/common/QueryClient/index.tsx","webpack://_N_E/./src/pages/_app.tsx","webpack://_N_E/./src/widgets/policy/components/PolicyLink/index.tsx","webpack://_N_E/./src/widgets/policy/components/RefundLink/index.tsx","webpack://_N_E/./src/widgets/policy/components/TermsLink/index.tsx","webpack://_N_E/./src/widgets/policy/policy.tsx","webpack://_N_E/./src/widgets/policy/index.tsx","webpack://_N_E/./src/api/api.ts","webpack://_N_E/./src/api/auth.ts","webpack://_N_E/./src/api/axios.ts","webpack://_N_E/./src/api/common.ts","webpack://_N_E/./src/constants/analytics.ts","webpack://_N_E/./src/constants/api.ts","webpack://_N_E/./src/constants/features.ts","webpack://_N_E/./src/constants/navigation.ts","webpack://_N_E/./src/constants/quiz.ts","webpack://_N_E/./src/constants/variants.ts","webpack://_N_E/./src/features/Analytics/utils.ts","webpack://_N_E/./src/features/Analytics/api/analytics.ts","webpack://_N_E/./src/features/Analytics/constants.ts","webpack://_N_E/./src/features/Analytics/hooks/useShouldInit.ts","webpack://_N_E/./src/features/Analytics/components/DebugUi/index.tsx","webpack://_N_E/./src/features/Analytics/hooks/index.ts","webpack://_N_E/./src/features/Analytics/components/GoogleAnalytics/index.tsx","webpack://_N_E/./src/features/Analytics/hooks/useExernalId.ts","webpack://_N_E/./src/features/Analytics/components/FacebookPixel/index.tsx","webpack://_N_E/./src/features/Analytics/components/BingPixel/index.tsx","webpack://_N_E/./src/features/Analytics/components/AnalyticsInject/index.tsx","webpack://_N_E/./src/features/Analytics/components/Clarity/index.tsx","webpack://_N_E/./src/features/Analytics/components/PinterestPixel/index.tsx","webpack://_N_E/./src/features/Analytics/components/TikTokPixel/index.tsx","webpack://_N_E/./src/features/Analytics/components/TwitterPixel/index.tsx","webpack://_N_E/./src/features/Analytics/services/fb-analytics.ts","webpack://_N_E/./src/features/Analytics/services/gtag.ts","webpack://_N_E/./src/features/Analytics/services/tik-tok-pixel.ts","webpack://_N_E/./src/features/Analytics/index.ts","webpack://_N_E/./src/features/Analytics/services/bing.ts","webpack://_N_E/./src/features/Analytics/services/twitter-pixel.ts","webpack://_N_E/./src/features/FeatureToggle/FlaggedUtil.tsx","webpack://_N_E/./src/features/FeatureToggle/FeatureFlagProvider.tsx","webpack://_N_E/./src/features/FeatureToggle/index.ts","webpack://_N_E/./src/features/Payments/atoms/index.ts","webpack://_N_E/./src/features/Payments/api/payments-api.ts","webpack://_N_E/./src/features/Payments/api/generateBraintreeClientToken.ts","webpack://_N_E/./src/features/Payments/hooks/mutation/use-generate-braintree-client-token.ts","webpack://_N_E/./src/features/Payments/widgets/payment-status-alerts/payment-failed-alert/components/intro-offer-disclaimer.tsx","webpack://_N_E/./src/features/Payments/utils/payment-analytics.ts","webpack://_N_E/./src/features/Payments/utils/currency-replacer.ts","webpack://_N_E/./src/features/Payments/utils/payment-completion-status.ts","webpack://_N_E/./src/assets/icons/lock.svg","webpack://_N_E/./src/features/Payments/components/braintree-modal/braintree-modal.tsx","webpack://_N_E/./src/features/Payments/utils/use-payment-system.tsx","webpack://_N_E/./src/features/Payments/utils/index.ts","webpack://_N_E/./src/features/Payments/index.ts","webpack://_N_E/./src/features/Paywall/constants.ts","webpack://_N_E/./src/features/Paywall/components/answers/index.tsx","webpack://_N_E/./src/features/Paywall/components/community/index.tsx","webpack://_N_E/./src/features/Paywall/components/compare/index.tsx","webpack://_N_E/./src/components/common/ui-kit-accordion/index.tsx","webpack://_N_E/./src/assets/icons/chevron-bottom.svg","webpack://_N_E/./src/features/Paywall/components/faq/index.tsx","webpack://_N_E/./src/components/common/circular-video-player/hooks/use-progress.tsx","webpack://_N_E/./src/components/common/circular-video-player/atoms/index.ts","webpack://_N_E/./src/components/common/circular-video-player/hooks/use-video-control.tsx","webpack://_N_E/./src/components/common/circular-video-player/icons/mute-icon.svg","webpack://_N_E/./src/components/common/circular-video-player/icons/play-icon.svg","webpack://_N_E/./src/components/common/circular-video-player/icons/volume-up-icon.svg","webpack://_N_E/./src/components/common/circular-video-player/index.tsx","webpack://_N_E/./src/components/common/simple-slider/index.tsx","webpack://_N_E/./src/features/Paywall/components/feel-younger/index.tsx","webpack://_N_E/./src/features/Paywall/layouts/long-paywall/index.tsx","webpack://_N_E/./src/features/Paywall/index.ts","webpack://_N_E/./src/features/Stripe/api/getStripeSubscriptions.ts","webpack://_N_E/./src/features/Stripe/api/getStripeProductId.ts","webpack://_N_E/./src/features/Stripe/api/getUpgradeData.ts","webpack://_N_E/./src/features/Stripe/api/buySecondSubscription.ts","webpack://_N_E/./src/features/Stripe/api/createSubscription.ts","webpack://_N_E/./src/features/Stripe/api/createInvoice.ts","webpack://_N_E/./src/features/Stripe/api/modifySubscription.ts","webpack://_N_E/./src/features/Stripe/api/index.ts","webpack://_N_E/./src/features/Stripe/atoms/index.ts","webpack://_N_E/./src/features/Stripe/components/LearnMoreList/additionalInfo.ts","webpack://_N_E/./src/features/Stripe/constants/index.ts","webpack://_N_E/./src/features/Stripe/hooks/query/use-get-stripe-subscriptions.ts","webpack://_N_E/./src/features/Stripe/hooks/query/use-create-subscription.ts","webpack://_N_E/./src/features/Stripe/hooks/query/use-get-upgrade-data.ts","webpack://_N_E/./src/features/Stripe/hooks/custom-hooks/use-payment-request.tsx","webpack://_N_E/./node_modules/@stripe/stripe-js/dist/index.mjs","webpack://_N_E/./node_modules/@stripe/stripe-js/lib/index.mjs","webpack://_N_E/./src/features/Stripe/hooks/custom-hooks/use-get-stripe-promise.ts","webpack://_N_E/./src/features/Stripe/hooks/index.ts","webpack://_N_E/./src/features/Stripe/hooks/mutation/use-modify-subscription.ts","webpack://_N_E/./src/features/Stripe/hooks/query/use-get-stripe-product-id.ts","webpack://_N_E/./src/features/Stripe/api/getStripeUnsubscriptions.ts","webpack://_N_E/./src/features/Stripe/hooks/query/use-get-unsubscribe-plans.ts","webpack://_N_E/./public/icons/chevron-down.svg","webpack://_N_E/./src/features/Stripe/widgets/subscription-plan-card-stripe/index.tsx","webpack://_N_E/./src/features/Stripe/components/AutoRenew/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/checkout-policy/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/modal/components/check-details/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/modal/index.tsx","webpack://_N_E/./src/features/Paywall/components/contact-block-email3/index.tsx","webpack://_N_E/./src/features/Stripe/widgets/payment-plans-stripe/index.tsx","webpack://_N_E/./src/features/Stripe/index.ts","webpack://_N_E/./src/features/intl/contants.ts","webpack://_N_E/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://_N_E/./src/features/intl/languageDetector.ts","webpack://_N_E/./src/features/intl/service.ts","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/message.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/displayName.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/list.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/number.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/plural.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://_N_E/./node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://_N_E/./node_modules/react-intl/lib/src/components/createIntl.js","webpack://_N_E/./node_modules/react-intl/lib/src/components/provider.js","webpack://_N_E/./src/features/intl/provider.tsx","webpack://_N_E/./src/features/intl/useFormatMessage.tsx","webpack://_N_E/./node_modules/react-intl/lib/src/components/message.js","webpack://_N_E/./src/features/intl/components/FormattedMessage/index.tsx","webpack://_N_E/./src/features/intl/index.ts","webpack://_N_E/./src/models/subscription-plan/subscription-plan.ts","webpack://_N_E/./src/models/payments-store/payments-store.ts","webpack://_N_E/./src/utils/constants.ts","webpack://_N_E/./src/utils/get-locale-image.ts","webpack://_N_E/./src/utils/get-mobile-operating-system.ts","webpack://_N_E/./src/utils/hooks/use-timer.ts","webpack://_N_E/./src/utils/hooks/use-countdown.ts","webpack://_N_E/./src/utils/hooks/use-reducer-with-storage.ts","webpack://_N_E/./src/utils/hooks/useGetAppName.ts","webpack://_N_E/./src/utils/hooks/index.ts","webpack://_N_E/./src/utils/hooks/use-abortable.ts","webpack://_N_E/./src/utils/hooks/use-is-in-viewport.ts","webpack://_N_E/./src/utils/hooks/use-previous.ts","webpack://_N_E/./src/utils/get-random-email.ts","webpack://_N_E/./src/utils/environment-checking.ts","webpack://_N_E/./src/utils/retry.ts","webpack://_N_E/./src/utils/noop.ts","webpack://_N_E/./src/utils/groupBy.ts","webpack://_N_E/./src/utils/get-data-from-session-storage.ts","webpack://_N_E/./src/utils/hooks/useProgressSteps.ts","webpack://_N_E/./src/utils/index.ts","webpack://_N_E/./node_modules/next/dist/compiled/buffer/index.js","webpack://_N_E/./node_modules/next/dist/compiled/client-only/index.js","webpack://_N_E/./node_modules/@mentalgrowth/ui-kit-web/dist/cjs/styles.css","webpack://_N_E/./node_modules/react-loading-skeleton/dist/skeleton.css","webpack://_N_E/./node_modules/slick-carousel/slick/slick-theme.css","webpack://_N_E/./node_modules/slick-carousel/slick/slick.css","webpack://_N_E/./src/styles/themes-tokens.css","webpack://_N_E/./src/components/common/page-progress/page-progress.scss","webpack://_N_E/./src/styles/index.scss","webpack://_N_E/./node_modules/next/font/google/target.css","webpack://_N_E/./node_modules/next/font/google/target.css?e8d3","webpack://_N_E/./node_modules/next/font/google/target.css?1812","webpack://_N_E/./src/components/common/Image/Image.module.scss","webpack://_N_E/./src/components/common/circle-button/circle-button.module.scss","webpack://_N_E/./src/components/common/circular-video-player/circular-video-player.module.scss","webpack://_N_E/./src/components/common/contact-us-link/contact-us-link.module.scss","webpack://_N_E/./src/components/common/loading-indicator/loading-indicator.module.scss","webpack://_N_E/./src/components/common/modal/alert-with-close-button/alert-with-close-button.module.scss","webpack://_N_E/./src/components/common/modal/alert/alert.module.scss","webpack://_N_E/./src/components/common/modal/form-modal/form-modal.module.scss","webpack://_N_E/./src/components/common/modal/modal/modal.module.scss","webpack://_N_E/./src/components/common/money-back/money-back.module.scss","webpack://_N_E/./src/components/common/review-card/review-card.module.scss","webpack://_N_E/./src/components/common/simple-slider/simple-slider.module.scss","webpack://_N_E/./src/features/Analytics/components/DebugUi/debug-ui.module.scss","webpack://_N_E/./src/features/Payments/components/braintree-modal/braintree-modal.module.scss","webpack://_N_E/./src/features/Payments/components/paddle-inline-checkout/paddle-inline-checkout.module.scss","webpack://_N_E/./src/features/Payments/components/payment-button/payment-button.module.scss","webpack://_N_E/./src/features/Payments/components/payment-modal/payment-modal.module.scss","webpack://_N_E/./src/features/Payments/components/paypal-payment-button/paypal-payment-button.module.scss","webpack://_N_E/./src/features/Payments/widgets/payment-status-alerts/payment-failed-alert/components/intro-offer-disclaimer.module.scss","webpack://_N_E/./src/features/Paywall/components/answers/answers.module.scss","webpack://_N_E/./src/features/Paywall/components/banner/banner.module.scss","webpack://_N_E/./src/features/Paywall/components/community/community.module.scss","webpack://_N_E/./src/features/Paywall/components/compare/compare.module.scss","webpack://_N_E/./src/features/Paywall/components/contact-block-email3/contact-block-email3.module.scss","webpack://_N_E/./src/features/Paywall/components/contact-block/contact-block.module.scss","webpack://_N_E/./src/features/Paywall/components/contact-form-modal/contact-form-modal.module.scss","webpack://_N_E/./src/features/Paywall/components/faq/faq.module.scss","webpack://_N_E/./src/features/Paywall/components/feel-younger/feel-younger.module.scss","webpack://_N_E/./src/features/Paywall/components/graph/graph.module.scss","webpack://_N_E/./src/features/Paywall/components/guarantees/guarantees.module.scss","webpack://_N_E/./src/features/Paywall/components/press-section/press-section.module.scss","webpack://_N_E/./src/features/Paywall/components/reviews/reviews.module.scss","webpack://_N_E/./src/features/Paywall/components/skeleton/skeleton.module.scss","webpack://_N_E/./src/features/Paywall/components/start-block-transaktion-declined/start-block-transaktion-declined.module.scss","webpack://_N_E/./src/features/Paywall/components/start-block/start-block.module.scss","webpack://_N_E/./src/features/Paywall/hocs/paywall-with-scroll/paywall-with-scroll.module.scss","webpack://_N_E/./src/features/Paywall/layouts/long-paywall/long-paywall.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-master/PaymentPlansMaster.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-simple/components/Users/Users.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans-simple/payment-plans-stripe.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/guarantee-block/guarantee-block.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/privacy-agreement/privacy-agreement.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/components/trials-disclaimer/trials-disclaimer.module.scss","webpack://_N_E/./src/features/Paywall/widgets/payment-plans/payment-plans.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/billing-period/billing-period.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/current-price/current-price.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/discount-percentage/discount-percentage.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/full-price/full-price.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/master/master.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/price-unit-full/price-unit-full.module.scss","webpack://_N_E/./src/features/Paywall/widgets/subscription-card/subscription-plan-card/subscription-plan-card.module.scss","webpack://_N_E/./src/features/Stripe/components/AutoRenew/AutoRenew.module.scss","webpack://_N_E/./src/features/Stripe/components/LearnMoreList/LearnMoreList.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/checkout-form.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/card-payment-block/card-payment-block.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/checkout-policy/checkout-policy.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/debit-credit-block/debit-credit-block.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-form/widgets/paypal-button-braintree/paypal-button-braintree.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/checkout-selector.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/widgets/compact-selector/compact-selector.module.scss","webpack://_N_E/./src/features/Stripe/widgets/checkout-selector/widgets/payment-option-tab/payment-option-tab.module.scss","webpack://_N_E/./src/features/Stripe/widgets/modal-succeeded/modal.succeeded.module.scss","webpack://_N_E/./src/features/Stripe/widgets/modal/components/check-details/check-details.module.scss","webpack://_N_E/./src/features/Stripe/widgets/modal/stripe-modal.module.scss","webpack://_N_E/./src/features/Stripe/widgets/payment-declined-modal/payment-declined-modal.module.scss","webpack://_N_E/./src/features/Stripe/widgets/payment-plans-stripe/payment-plans-stripe.module.scss","webpack://_N_E/./src/features/Stripe/widgets/payment-processing-alert/payment-processing-alert.module.scss","webpack://_N_E/./src/features/Stripe/widgets/second-payment-failed-modal/second-payment-failed-modal.module.scss","webpack://_N_E/./src/features/Stripe/widgets/subscription-plan-card-stripe-with-payment-methods/subscription-plan-card-with-payment-methods.module.scss","webpack://_N_E/./src/features/Stripe/widgets/subscription-plan-card-stripe/subscription-plan-card.module.scss","webpack://_N_E/./src/features/Stripe/widgets/upsell-fallback-modal/upsell-fallback-modal.module.scss","webpack://_N_E/./src/features/Upsell/components/upsell-loader/upsell-loader.module.scss","webpack://_N_E/./src/widgets/policy/components/links.module.scss","webpack://_N_E/./src/widgets/policy/policy.module.scss","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/legacy/image.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/next/script.js","webpack://_N_E/./node_modules/property-expr/index.js","webpack://_N_E/./node_modules/react-fast-compare/index.js","webpack://_N_E/./node_modules/react-intl/lib/src/components/injectIntl.js","webpack://_N_E/./node_modules/react-intl/lib/src/components/useIntl.js","webpack://_N_E/./node_modules/react-intl/lib/src/utils.js","webpack://_N_E/./node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-is/index.js","webpack://_N_E/./node_modules/react-microsoft-clarity/index.js","webpack://_N_E/./node_modules/react-microsoft-clarity/src/react-clarity.js","webpack://_N_E/./node_modules/react-use-cookie/dist/index.js","webpack://_N_E/./node_modules/tiny-case/index.js","webpack://_N_E/./node_modules/toposort/index.js","webpack://_N_E/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://_N_E/./node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/./node_modules/yup/index.esm.js","webpack://_N_E/./src/features/intl/locales/ lazy ^\\.\\/.*\\.json$ namespace object","webpack://_N_E/./node_modules/classnames/index.js","webpack://_N_E/./node_modules/@mentalgrowth/ui-kit-web/dist/cjs/index.js","webpack://_N_E/./node_modules/@mentalgrowth/web_utils/dist/index.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","webpack://_N_E/./node_modules/@sentry-internal/browser-utils/build/esm/types.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/debug-build.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/integrations/dedupe.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/api.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/clientreport.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/userfeedback.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/client.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/instrument/console.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/aggregate-errors.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/build/npm/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/defaultScopes.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/asyncContext/index.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/carrier.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/constants.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/currentScopes.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/debug-build.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/exports.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/integration.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/metrics/metric-summary.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/scope.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/session.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/tracing/spanstatus.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/eventProcessors.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/prepareEvent.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/spanOnScope.js","webpack://_N_E/./node_modules/@sentry/core/build/esm/utils/spanUtils.js","webpack://_N_E/./node_modules/@sentry/nextjs/build/esm/common/debug-build.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/baggage.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/debug-build.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/env.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/instrument/fetch.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/instrument/globalError.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/instrument/handlers.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/is.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/logger.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/memo.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/normalize.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/object.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/propagationContext.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/ratelimit.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/severity.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/stacktrace.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/time.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/tracing.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/url.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/version.js","webpack://_N_E/./node_modules/@sentry/utils/build/esm/worldwide.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/focusManager.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/mutation.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/notifyManager.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/onlineManager.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/removable.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/retryer.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/subscribable.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/utils.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/mutationObserver.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/useMutation.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/modern/queryObserver.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/isRestoring.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/suspense.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/useQuery.js","webpack://_N_E/./node_modules/@tanstack/react-query/build/modern/utils.js","webpack://_N_E/./node_modules/axios/lib/helpers/bind.js","webpack://_N_E/./node_modules/axios/lib/utils.js","webpack://_N_E/./node_modules/axios/lib/core/AxiosError.js","webpack://_N_E/./node_modules/axios/lib/helpers/null.js","webpack://_N_E/./node_modules/axios/lib/helpers/toFormData.js","webpack://_N_E/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://_N_E/./node_modules/axios/lib/helpers/buildURL.js","webpack://_N_E/./node_modules/axios/lib/core/InterceptorManager.js","webpack://_N_E/./node_modules/axios/lib/defaults/transitional.js","webpack://_N_E/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://_N_E/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://_N_E/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://_N_E/./node_modules/axios/lib/platform/browser/index.js","webpack://_N_E/./node_modules/axios/lib/platform/common/utils.js","webpack://_N_E/./node_modules/axios/lib/platform/index.js","webpack://_N_E/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://_N_E/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://_N_E/./node_modules/axios/lib/defaults/index.js","webpack://_N_E/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://_N_E/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://_N_E/./node_modules/axios/lib/core/transformData.js","webpack://_N_E/./node_modules/axios/lib/cancel/isCancel.js","webpack://_N_E/./node_modules/axios/lib/cancel/CanceledError.js","webpack://_N_E/./node_modules/axios/lib/core/settle.js","webpack://_N_E/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://_N_E/./node_modules/axios/lib/helpers/speedometer.js","webpack://_N_E/./node_modules/axios/lib/helpers/throttle.js","webpack://_N_E/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://_N_E/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://_N_E/./node_modules/axios/lib/helpers/cookies.js","webpack://_N_E/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://_N_E/./node_modules/axios/lib/helpers/combineURLs.js","webpack://_N_E/./node_modules/axios/lib/core/buildFullPath.js","webpack://_N_E/./node_modules/axios/lib/core/mergeConfig.js","webpack://_N_E/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://_N_E/./node_modules/axios/lib/adapters/xhr.js","webpack://_N_E/./node_modules/axios/lib/helpers/composeSignals.js","webpack://_N_E/./node_modules/axios/lib/helpers/trackStream.js","webpack://_N_E/./node_modules/axios/lib/adapters/fetch.js","webpack://_N_E/./node_modules/axios/lib/adapters/adapters.js","webpack://_N_E/./node_modules/axios/lib/core/dispatchRequest.js","webpack://_N_E/./node_modules/axios/lib/env/data.js","webpack://_N_E/./node_modules/axios/lib/helpers/validator.js","webpack://_N_E/./node_modules/axios/lib/core/Axios.js","webpack://_N_E/./node_modules/axios/lib/cancel/CancelToken.js","webpack://_N_E/./node_modules/axios/lib/helpers/spread.js","webpack://_N_E/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://_N_E/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://_N_E/./node_modules/axios/lib/axios.js","webpack://_N_E/./node_modules/jotai/esm/react.mjs","webpack://_N_E/./node_modules/jotai/esm/vanilla/internals.mjs","webpack://_N_E/./node_modules/jotai/esm/vanilla.mjs","webpack://_N_E/./node_modules/jotai/esm/vanilla/utils.mjs","webpack://_N_E/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://_N_E/./node_modules/react-loading-skeleton/dist/index.js","webpack://_N_E/./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nvar ObjectWithoutPrototypeCache = /** @class */ (function () {\n function ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n }\n ObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n };\n ObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n return ObjectWithoutPrototypeCache;\n}());\nvar cacheDefault = {\n create: function create() {\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __spreadArray } from \"tslib\";\nimport { isArgumentElement, isDateElement, isNumberElement, isPluralElement, isSelectElement, isTagElement, isTimeElement, TYPE, } from './types';\nfunction cloneDeep(obj) {\n if (Array.isArray(obj)) {\n // @ts-expect-error meh\n return __spreadArray([], obj.map(cloneDeep), true);\n }\n if (obj !== null && typeof obj === 'object') {\n // @ts-expect-error meh\n return Object.keys(obj).reduce(function (cloned, k) {\n // @ts-expect-error meh\n cloned[k] = cloneDeep(obj[k]);\n return cloned;\n }, {});\n }\n return obj;\n}\nfunction hoistPluralOrSelectElement(ast, el, positionToInject) {\n // pull this out of the ast and move it to the top\n var cloned = cloneDeep(el);\n var options = cloned.options;\n cloned.options = Object.keys(options).reduce(function (all, k) {\n var newValue = hoistSelectors(__spreadArray(__spreadArray(__spreadArray([], ast.slice(0, positionToInject), true), options[k].value, true), ast.slice(positionToInject + 1), true));\n all[k] = {\n value: newValue,\n };\n return all;\n }, {});\n return cloned;\n}\nfunction isPluralOrSelectElement(el) {\n return isPluralElement(el) || isSelectElement(el);\n}\nfunction findPluralOrSelectElement(ast) {\n return !!ast.find(function (el) {\n if (isPluralOrSelectElement(el)) {\n return true;\n }\n if (isTagElement(el)) {\n return findPluralOrSelectElement(el.children);\n }\n return false;\n });\n}\n/**\n * Hoist all selectors to the beginning of the AST & flatten the\n * resulting options. E.g:\n * \"I have {count, plural, one{a dog} other{many dogs}}\"\n * becomes \"{count, plural, one{I have a dog} other{I have many dogs}}\".\n * If there are multiple selectors, the order of which one is hoisted 1st\n * is non-deterministic.\n * The goal is to provide as many full sentences as possible since fragmented\n * sentences are not translator-friendly\n * @param ast AST\n */\nexport function hoistSelectors(ast) {\n for (var i = 0; i < ast.length; i++) {\n var el = ast[i];\n if (isPluralOrSelectElement(el)) {\n return [hoistPluralOrSelectElement(ast, el, i)];\n }\n if (isTagElement(el) && findPluralOrSelectElement([el])) {\n throw new Error('Cannot hoist plural/select within a tag element. Please put the tag element inside each plural/select option');\n }\n }\n return ast;\n}\n/**\n * Collect all variables in an AST to Record\n * @param ast AST to collect variables from\n * @param vars Record of variable name to variable type\n */\nfunction collectVariables(ast, vars) {\n if (vars === void 0) { vars = new Map(); }\n ast.forEach(function (el) {\n if (isArgumentElement(el) ||\n isDateElement(el) ||\n isTimeElement(el) ||\n isNumberElement(el)) {\n if (el.value in vars && vars.get(el.value) !== el.type) {\n throw new Error(\"Variable \".concat(el.value, \" has conflicting types\"));\n }\n vars.set(el.value, el.type);\n }\n if (isPluralElement(el) || isSelectElement(el)) {\n vars.set(el.value, el.type);\n Object.keys(el.options).forEach(function (k) {\n collectVariables(el.options[k].value, vars);\n });\n }\n if (isTagElement(el)) {\n vars.set(el.value, el.type);\n collectVariables(el.children, vars);\n }\n });\n}\n/**\n * Check if 2 ASTs are structurally the same. This primarily means that\n * they have the same variables with the same type\n * @param a\n * @param b\n * @returns\n */\nexport function isStructurallySame(a, b) {\n var aVars = new Map();\n var bVars = new Map();\n collectVariables(a, aVars);\n collectVariables(b, bVars);\n if (aVars.size !== bVars.size) {\n return {\n success: false,\n error: new Error(\"Different number of variables: [\".concat(Array.from(aVars.keys()).join(', '), \"] vs [\").concat(Array.from(bVars.keys()).join(', '), \"]\")),\n };\n }\n return Array.from(aVars.entries()).reduce(function (result, _a) {\n var key = _a[0], type = _a[1];\n if (!result.success) {\n return result;\n }\n var bType = bVars.get(key);\n if (bType == null) {\n return {\n success: false,\n error: new Error(\"Missing variable \".concat(key, \" in message\")),\n };\n }\n if (bType !== type) {\n return {\n success: false,\n error: new Error(\"Variable \".concat(key, \" has conflicting types: \").concat(TYPE[type], \" vs \").concat(TYPE[bType])),\n };\n }\n return result;\n }, { success: true });\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\nexport { isStructurallySame } from './manipulator';\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { UnsupportedFormatterError } from './error';\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"2.7.3\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"2.7.3\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded = [\"on\", \"session\"];\n var CustomCheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutSdkContext.displayName = 'CustomCheckoutSdkContext';\n var parseCustomCheckoutSdkContext = function parseCustomCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CustomCheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n var CustomCheckoutContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutContext.displayName = 'CustomCheckoutContext';\n var extractCustomCheckoutContextValue = function extractCustomCheckoutContextValue(customCheckoutSdk, sessionState) {\n if (!customCheckoutSdk) {\n return null;\n }\n\n customCheckoutSdk.on;\n customCheckoutSdk.session;\n var actions = _objectWithoutProperties(customCheckoutSdk, _excluded);\n\n if (!sessionState) {\n return _objectSpread2(_objectSpread2({}, actions), customCheckoutSdk.session());\n }\n\n return _objectSpread2(_objectSpread2({}, actions), sessionState);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CustomCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CustomCheckoutProvider = function CustomCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n customCheckoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, customCheckoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.customCheckoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n customCheckoutSdk: customCheckoutSdk\n };\n });\n }; // Ref used to avoid calling initCustomCheckout multiple times when options changes\n\n\n var initCustomCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCustomCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCustomCheckoutCalledRef.current = true;\n stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCustomCheckoutCalledRef.current) {\n initCustomCheckoutCalledRef.current = true;\n parsed.stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(parsed.stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CustomCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n if (!ctx.customCheckoutSdk) {\n return;\n }\n\n if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n console.warn('Unsupported prop change: options.client_secret is not a mutable property.');\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n ctx.customCheckoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.customCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var customCheckoutContextValue = React.useMemo(function () {\n return extractCustomCheckoutContextValue(ctx.customCheckoutSdk, session);\n }, [ctx.customCheckoutSdk, session]);\n\n if (!ctx.customCheckoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CustomCheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CustomCheckoutContext.Provider, {\n value: customCheckoutContextValue\n }, children));\n };\n CustomCheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.string.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCustomCheckoutSdkContextWithUseCase = function useCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CustomCheckoutSdkContext);\n return parseCustomCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCustomCheckoutSdkContextWithUseCase = function useElementsOrCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var customCheckoutSdkContext = React.useContext(CustomCheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (customCheckoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both and providers.\"));\n }\n\n if (customCheckoutSdkContext) {\n return parseCustomCheckoutSdkContext(customCheckoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCustomCheckout = function useCustomCheckout() {\n // ensure it's in CustomCheckoutProvider\n useCustomCheckoutSdkContextWithUseCase('calls useCustomCheckout()');\n var ctx = React.useContext(CustomCheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find CustomCheckout Context; You need to wrap the part of your app that calls useCustomCheckout() in an provider.');\n }\n\n return ctx;\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var customCheckoutSdk = 'customCheckoutSdk' in ctx ? ctx.customCheckoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || customCheckoutSdk)) {\n var newElement = null;\n\n if (customCheckoutSdk) {\n newElement = customCheckoutSdk.createElement(type, options);\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, customCheckoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error(' must be used within ');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCustomC = useElementsOrCustomCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCustomC.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CustomCheckoutProvider = CustomCheckoutProvider;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCustomCheckout = useCustomCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgLoaderLogo = function SvgLoaderLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 104,\n viewBox: \"0 0 104 104\",\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.0348 100.233C125.415 58.8397 92.1363 17.1601 68.3936 0.36099C67.566 -0.224576 66.4182 -0.030086 65.7693 0.748837C20.8205 54.704 55.125 88.0887 77.7865 100.531C78.5133 100.93 79.4222 100.791 80.0348 100.233Z\",\n fill: \"#FDEDEE\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.1387 99.9564C84.5933 38.7768 31.8937 30.5632 3.04157 34.2358C2.03587 34.3638 1.32163 35.2831 1.37009 36.2957C4.72646 106.44 52.5739 107.848 77.6836 101.696C78.4889 101.499 79.0651 100.782 79.1387 99.9564Z\",\n fill: \"#F47A87\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.9056 100.741C79.0327 100.504 79.1137 100.24 79.1383 99.9633C82.3419 64.0316 65.4858 46.37 45.1826 38.6561C37.8748 70.6451 61.018 91.3182 77.7864 100.525C78.1351 100.716 78.5258 100.784 78.9056 100.741Z\",\n fill: \"#ECC7CB\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgLoaderLogo);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgLockIconGray = function SvgLockIconGray(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2371 6.69644H11.8343L11.8327 4.78156C11.831 2.69556 10.0519 0.998446 7.86504 1C5.6782 1.00156 3.89905 2.69867 3.90068 4.78467L3.90395 6.69956H3.76044C3.00866 6.70111 2.39876 7.28289 2.40039 8V13.7011C2.40039 14.4182 3.01193 15 3.7637 15L12.2403 14.9953C12.9921 14.9953 13.602 14.4136 13.6004 13.6964V7.99378C13.6004 7.27667 12.9889 6.69644 12.2371 6.69644ZM5.3651 6.69956L5.36184 4.78467C5.36184 3.46711 6.48379 2.39533 7.86504 2.39378C9.24628 2.39378 10.3699 3.46556 10.3699 4.78156L10.3731 6.69644L5.3651 6.69956Z\",\n fill: \"#817B6F\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgLockIconGray);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgAmex = function SvgAmex(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 29,\n height: 20,\n fill: \"none\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 27,\n height: 19,\n x: 0.728,\n y: 0.5,\n fill: \"#006FCF\",\n stroke: \"#F3F3F3\",\n rx: 3.5\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M5.955 14.447V10.33h4.502l.482.61.5-.61h16.337v3.833s-.427.28-.921.284h-9.047l-.544-.65v.65H15.48v-1.108s-.244.155-.771.155h-.607v.953H11.4l-.482-.623-.49.623zM.711 7.227l1.013-2.292h1.751l.575 1.283V4.935h2.177l.342.927.332-.927h9.773V5.4s.514-.466 1.358-.466l3.171.01.565 1.267V4.935h1.822l.501.727v-.727h1.839v4.117h-1.84l-.48-.73v.73h-2.677l-.27-.65h-.719l-.265.65h-1.815a1.82 1.82 0 0 1-1.191-.457v.457h-2.737l-.543-.65v.65H3.216l-.27-.65H2.23l-.267.65H.712V7.226Zm.005 1.298 1.366-3.083h1.036l1.364 3.083h-.908l-.251-.617H1.858l-.252.617zm2.318-1.287L2.588 6.16 2.14 7.238zm1.542 1.286V5.442l1.264.004.735 1.988.718-1.992h1.253v3.082h-.794V6.253l-.841 2.271h-.697L5.37 6.253v2.271zm4.514 0V5.442h2.59v.69H9.892v.527h1.747v.649H9.892v.547h1.788v.67H9.09Zm3.05.001V5.442h1.767c.585 0 1.11.351 1.11 1a.95.95 0 0 1-.871.947l1.044 1.136h-.97l-.952-1.095h-.334v1.095zm1.701-2.393h-.907v.649h.92c.158 0 .364-.12.364-.325 0-.159-.159-.324-.377-.324m2.31 2.392h-.81V5.442h.81zm1.923 0h-.175c-.847 0-1.36-.647-1.36-1.528 0-.903.507-1.554 1.576-1.554h.878v.73h-.91c-.434 0-.74.329-.74.831 0 .597.35.848.856.848h.209zm.361.001 1.367-3.083h1.035l1.365 3.083h-.91l-.25-.617h-1.465l-.252.617zm2.319-1.287-.447-1.078-.448 1.078h.894Zm1.54 1.286V5.442h1.01l1.289 1.937V5.442h.794v3.082h-.977l-1.322-1.987v1.987zM6.5 13.92v-3.083h2.59v.69H7.301v.527h1.747v.649H7.3v.547h1.788v.67zm12.695 0v-3.083h2.59v.69h-1.788v.527h1.738v.649h-1.738v.547h1.789v.67zm-10.004 0 1.261-1.523-1.291-1.56h1l.77.964.771-.964h.961l-1.274 1.541 1.264 1.541h-1l-.747-.949-.73.95H9.19Zm3.556 0v-3.083H14.5c.72 0 1.14.45 1.14 1.037 0 .708-.536 1.072-1.244 1.072h-.835v.974zm1.695-2.386h-.88v.71h.877c.232 0 .395-.149.395-.355 0-.219-.164-.355-.392-.355m1.543 2.385v-3.082h1.767c.586 0 1.11.351 1.11 1a.95.95 0 0 1-.87.947l1.044 1.135h-.97l-.952-1.095h-.335v1.095zm1.702-2.393h-.907v.65h.919c.159 0 .364-.12.364-.325 0-.16-.158-.325-.376-.325m4.466 2.393v-.669h1.59c.234 0 .336-.123.336-.258 0-.13-.101-.261-.337-.261h-.718c-.624 0-.972-.37-.972-.923 0-.495.319-.971 1.246-.971h1.546l-.334.693h-1.337c-.256 0-.335.13-.335.255 0 .128.098.269.293.269h.752c.696 0 .998.383.998.884 0 .54-.337.981-1.036.981zm2.798 0v-.669h1.589c.235 0 .337-.123.337-.258 0-.13-.102-.261-.337-.261h-.718c-.624 0-.972-.37-.972-.923 0-.495.318-.971 1.246-.971h1.546l-.334.693H25.97c-.256 0-.335.13-.335.255 0 .128.098.269.293.269h.752c.696 0 .998.383.998.884 0 .54-.337.981-1.036.981H24.95Z\",\n clipRule: \"evenodd\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgAmex);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgChevronLeft = function SvgChevronLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8.293 12.707a1 1 0 0 0 1.414-1.414zM5 8l-.707-.707a1 1 0 0 0 0 1.414zm4.707-3.293a1 1 0 0 0-1.414-1.414zm0 6.586-4-4-1.414 1.414 4 4zm-4-2.586 4-4-1.414-1.414-4 4z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgChevronLeft);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgClock = function SvgClock(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n fill: \"none\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"currentColor\",\n clipPath: \"url(#a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 0a10 10 0 1 0 10 10A10.01 10.01 0 0 0 10 0m0 17.5a7.5 7.5 0 1 1 7.5-7.5 7.51 7.51 0 0 1-7.5 7.5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m8.75 9.213-2 1.25a1.252 1.252 0 0 0 .384 2.278 1.25 1.25 0 0 0 .944-.16l2.39-1.5a1.67 1.67 0 0 0 .782-1.416V6.477a1.25 1.25 0 0 0-2.5 0z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 0h20v20H0z\"\n })))));\n};\nvar Memo = /*#__PURE__*/memo(SvgClock);\nexport default Memo;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgMastercard = function SvgMastercard(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 27,\n height: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n fillRule: \"evenodd\",\n d: \"M7.573 17.83v2.117h-.464v-.257c-.147.19-.37.31-.674.31-.598 0-1.067-.465-1.067-1.111s.47-1.111 1.067-1.111c.304 0 .527.12.674.31v-.257zm-1.08.381c-.402 0-.647.306-.647.678s.245.677.647.677c.384 0 .643-.292.643-.677s-.26-.678-.643-.678m16.755.678c0-.372.246-.678.647-.678.384 0 .643.293.643.678s-.259.677-.643.677c-.401 0-.647-.305-.647-.677m1.728-1.908v2.966h-.465v-.257c-.147.19-.37.31-.673.31-.599 0-1.068-.465-1.068-1.111s.47-1.111 1.068-1.111c.303 0 .526.12.673.31V16.98h.465ZM13.33 18.19c.299 0 .49.185.54.513h-1.107c.05-.306.236-.513.567-.513m-1.054.699c0-.66.438-1.111 1.063-1.111.598 0 1.008.451 1.013 1.11q-.001.093-.01.178H12.76c.067.38.339.518.638.518.214 0 .442-.08.62-.221l.228.34c-.26.217-.553.297-.875.297-.638 0-1.094-.438-1.094-1.111Zm6.664 0c0-.372.246-.678.647-.678.384 0 .643.293.643.678s-.259.677-.643.677c-.401 0-.647-.305-.647-.677m1.727-1.058v2.116h-.464v-.257c-.147.19-.37.31-.673.31-.599 0-1.068-.465-1.068-1.111s.47-1.111 1.068-1.111c.303 0 .526.12.673.31v-.257zm-4.347 1.058c0 .642.45 1.111 1.138 1.111.322 0 .536-.07.768-.252l-.223-.372a.94.94 0 0 1-.558.19c-.37-.004-.643-.27-.643-.677s.272-.673.643-.678c.201 0 .384.067.558.19l.223-.371c-.232-.181-.446-.252-.768-.252-.687 0-1.138.469-1.138 1.11Zm5.418-.801a.63.63 0 0 1 .563-.31c.094 0 .228.017.33.057l-.143.434a.8.8 0 0 0-.29-.053c-.303 0-.455.194-.455.545v1.186h-.464V17.83h.46v.257Zm-11.872-.089c-.223-.146-.53-.221-.87-.221-.54 0-.888.257-.888.677 0 .345.259.558.736.624l.22.031c.254.036.374.102.374.222 0 .163-.17.257-.487.257-.321 0-.553-.102-.71-.222l-.218.358c.254.186.576.275.924.275.616 0 .973-.288.973-.69 0-.372-.281-.567-.746-.633l-.218-.032c-.2-.026-.362-.066-.362-.208 0-.155.152-.247.406-.247.273 0 .536.101.665.181zm5.423.089a.63.63 0 0 1 .562-.31c.094 0 .228.017.33.057l-.142.434a.8.8 0 0 0-.29-.053c-.304 0-.456.194-.456.545v1.186h-.463V17.83h.46v.257Zm-3.396-.257h-.759v-.642h-.469v.642h-.433v.42h.433v.966c0 .49.192.783.74.783.202 0 .434-.062.581-.164l-.134-.394a.86.86 0 0 1-.41.12c-.232 0-.308-.142-.308-.355v-.956h.759zm-6.936.788v1.328h-.47v-1.178c0-.358-.15-.558-.468-.558-.308 0-.522.195-.522.563v1.173H3.03v-1.178c0-.358-.155-.558-.463-.558-.318 0-.523.195-.523.563v1.173h-.469V17.83h.465v.26a.71.71 0 0 1 .625-.313c.326 0 .557.142.705.376.196-.297.477-.38.75-.376.518.004.839.34.839.84Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF5F00\",\n d: \"M16.744 14.235h-7.03V1.704h7.03z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EB001B\",\n d: \"M10.16 7.97c0-2.542 1.2-4.807 3.068-6.266A8.04 8.04 0 0 0 8.263 0C3.825 0 .228 3.568.228 7.97s3.597 7.97 8.035 7.97a8.04 8.04 0 0 0 4.965-1.704A7.93 7.93 0 0 1 10.16 7.97\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F79E1B\",\n d: \"M26.228 7.97c0 4.401-3.597 7.97-8.034 7.97a8.04 8.04 0 0 1-4.966-1.704 7.93 7.93 0 0 0 3.07-6.266 7.93 7.93 0 0 0-3.07-6.266A8.04 8.04 0 0 1 18.194 0c4.438 0 8.034 3.568 8.034 7.97\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgMastercard);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgPaypal = function SvgPaypal(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 25,\n height: 24,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#253B80\",\n d: \"m9.801 15.448.277-1.76-.617-.014H6.513L8.562.684a.167.167 0 0 1 .166-.142h4.97c1.65 0 2.79.344 3.384 1.022.278.318.456.65.542 1.016.09.383.091.842.004 1.4l-.007.041v.359l.279.157q.351.187.564.43.36.411.458 1.028c.067.42.045.922-.065 1.49-.127.653-.333 1.221-.61 1.686a3.5 3.5 0 0 1-.968 1.06c-.368.262-.807.46-1.302.588a6.5 6.5 0 0 1-1.628.188h-.387c-.276 0-.545.1-.756.278a1.17 1.17 0 0 0-.394.704l-.03.158-.489 3.103-.022.114c-.006.036-.016.054-.03.066a.1.1 0 0 1-.052.018z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#179BD7\",\n d: \"M18.166 4.063a9 9 0 0 1-.051.291c-.656 3.366-2.898 4.528-5.762 4.528h-1.459a.71.71 0 0 0-.7.6l-.746 4.735-.212 1.342a.373.373 0 0 0 .369.432h2.586a.62.62 0 0 0 .615-.525l.025-.131.487-3.09.031-.17a.62.62 0 0 1 .615-.526h.387c2.506 0 4.467-1.017 5.04-3.961.24-1.23.116-2.257-.517-2.98a2.5 2.5 0 0 0-.708-.545\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#222D65\",\n d: \"M17.48 3.79a5 5 0 0 0-.638-.142 8 8 0 0 0-1.286-.094H11.66a.62.62 0 0 0-.614.526l-.828 5.249-.024.153c.054-.346.35-.6.7-.6h1.458c2.864 0 5.106-1.163 5.762-4.528q.03-.15.05-.291a3.5 3.5 0 0 0-.685-.274\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#253B80\",\n d: \"M11.046 4.08a.62.62 0 0 1 .614-.526h3.896q.695-.001 1.286.094.168.027.328.062a5 5 0 0 1 .456.125q.29.096.54.228c.194-1.244-.002-2.09-.675-2.857C16.75.36 15.412 0 13.7 0H8.73a.71.71 0 0 0-.703.6l-2.07 13.123c-.04.26.16.494.421.494h3.069l.77-4.888zM3.36 17.744H1.534a.254.254 0 0 0-.25.214l-.74 4.683a.152.152 0 0 0 .151.176h.872c.125 0 .231-.091.251-.215l.2-1.263a.25.25 0 0 1 .25-.214h.578c1.203 0 1.897-.582 2.079-1.736.081-.505.003-.901-.233-1.18-.26-.304-.72-.465-1.332-.465m.211 1.71c-.1.655-.6.655-1.085.655h-.275l.193-1.224a.15.15 0 0 1 .15-.128h.127c.33 0 .64 0 .802.188q.143.166.088.509M8.819 19.433h-.875a.15.15 0 0 0-.15.128l-.039.245-.061-.089c-.19-.275-.612-.366-1.033-.366-.966 0-1.792.732-1.953 1.758-.083.512.036 1.002.326 1.344.267.314.648.445 1.102.445.778 0 1.21-.5 1.21-.5l-.039.242a.152.152 0 0 0 .15.176h.788c.125 0 .231-.09.25-.214l.474-2.994a.152.152 0 0 0-.15-.175m-1.22 1.702a.975.975 0 0 1-.986.835c-.254 0-.457-.081-.587-.236-.13-.153-.179-.371-.138-.614a.98.98 0 0 1 .98-.842c.249 0 .45.082.584.238.133.158.186.377.148.619M13.477 19.433h-.879a.26.26 0 0 0-.21.11l-1.212 1.786-.514-1.715a.255.255 0 0 0-.244-.181h-.863a.152.152 0 0 0-.145.2l.968 2.842-.91 1.285c-.071.1 0 .24.124.24h.878c.083 0 .162-.04.209-.109l2.923-4.22a.152.152 0 0 0-.125-.238\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#179BD7\",\n d: \"M16.387 17.744H14.56a.254.254 0 0 0-.25.214l-.74 4.683a.152.152 0 0 0 .15.176h.938a.18.18 0 0 0 .175-.15l.21-1.328a.25.25 0 0 1 .25-.214h.578c1.204 0 1.898-.582 2.08-1.736.081-.505.003-.901-.234-1.18-.259-.304-.72-.465-1.33-.465m.21 1.71c-.1.655-.6.655-1.085.655h-.275l.194-1.224a.15.15 0 0 1 .15-.128h.126c.33 0 .641 0 .802.188q.144.166.088.509M21.847 19.433h-.874a.15.15 0 0 0-.15.128l-.039.245-.061-.089c-.19-.275-.611-.366-1.033-.366-.966 0-1.791.732-1.952 1.758-.084.512.035 1.002.325 1.344.267.314.648.445 1.102.445.779 0 1.21-.5 1.21-.5l-.038.242a.152.152 0 0 0 .15.176h.788c.124 0 .23-.09.25-.214l.473-2.994a.152.152 0 0 0-.15-.175m-1.219 1.702a.974.974 0 0 1-.987.835c-.253 0-.456-.081-.587-.236-.13-.153-.178-.371-.137-.614a.98.98 0 0 1 .98-.842c.248 0 .45.082.583.238.134.158.187.377.148.619M22.877 17.872l-.75 4.769a.152.152 0 0 0 .15.176h.754c.125 0 .232-.091.25-.215l.74-4.683a.152.152 0 0 0-.15-.176h-.844a.15.15 0 0 0-.15.129\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgPaypal);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgStar = function SvgStar(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB800\",\n d: \"M15.958 6.046a.86.86 0 0 0-.732-.61l-4.618-.438L8.782.538A.85.85 0 0 0 8 0a.85.85 0 0 0-.782.54L5.392 4.997l-4.619.438a.86.86 0 0 0-.731.61.91.91 0 0 0 .249.943l3.49 3.194-1.03 4.732a.91.91 0 0 0 .332.916.82.82 0 0 0 .934.043L8 13.388l3.982 2.484a.82.82 0 0 0 .935-.042.91.91 0 0 0 .33-.916l-1.029-4.732 3.49-3.194a.91.91 0 0 0 .25-.943\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgStar);\nexport default Memo;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgUnionpay = function SvgUnionpay(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E21836\",\n d: \"M6.3.001h7.737c1.08 0 1.752.908 1.5 2.026l-3.603 15.95C11.68 19.092 10.6 20 9.518 20H1.781c-1.078 0-1.752-.909-1.5-2.022L3.885 2.027C4.137.909 5.218 0 6.3 0Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00447C\",\n d: \"M13.393 0h8.898c1.08 0 .593.908.338 2.026l-3.601 15.95C18.775 19.09 18.854 20 17.772 20H8.874c-1.083 0-1.752-.909-1.498-2.023l3.602-15.95C11.233.908 12.312 0 13.393 0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007B84\",\n d: \"M21.938 0h7.737c1.082 0 1.754.908 1.5 2.026l-3.602 15.95C27.319 19.09 26.236 20 25.155 20h-7.734c-1.082 0-1.753-.909-1.5-2.023l3.603-15.95C19.776.908 20.856 0 21.938 0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FEFEFE\",\n d: \"M8.32 5.112c-.796.008-1.031 0-1.106-.019l-.567 2.698c-.116.517-.2.886-.486 1.123a.85.85 0 0 1-.57.205c-.354 0-.56-.18-.594-.523l-.006-.118.107-.696s.564-2.328.664-2.635l.009-.035c-1.097.01-1.292 0-1.305-.019-.007.026-.035.17-.035.17l-.575 2.624-.05.222-.095.728c0 .216.041.392.123.541.262.472 1.01.543 1.433.543.545 0 1.056-.12 1.402-.337.6-.366.756-.937.896-1.445l.065-.26s.58-2.418.68-2.732a.1.1 0 0 1 .01-.035m1.975 1.95c-.14 0-.396.035-.626.151q-.122.068-.245.146l.075-.28-.041-.046c-.487.101-.596.115-1.046.18l-.038.026c-.052.447-.099.783-.292 1.661q-.111.487-.227.973l.02.041c.462-.025.602-.025 1.002-.018l.033-.036c.05-.27.057-.332.17-.877.053-.258.164-.826.218-1.028.1-.048.199-.095.293-.095.225 0 .198.202.189.283-.01.135-.092.576-.175.955l-.056.245c-.04.18-.082.356-.121.536l.017.035c.454-.025.593-.025.98-.018l.046-.036c.07-.42.091-.533.216-1.145l.062-.28c.122-.55.183-.83.091-1.057-.097-.254-.33-.316-.545-.316m2.206.576c-.241.048-.396.08-.549.1-.151.025-.3.048-.533.082l-.018.017-.017.014c-.025.18-.042.334-.074.516-.027.189-.07.403-.138.71a3 3 0 0 1-.11.401c-.03.083-.062.164-.122.395l.014.022.012.02c.218-.011.36-.019.508-.02.146-.006.298 0 .533.001l.02-.017.023-.02c.034-.208.039-.264.06-.366.02-.11.055-.261.142-.665q.064-.284.13-.573.067-.289.135-.573l-.007-.023zm.005-.777c-.22-.133-.604-.09-.864.094-.258.18-.288.437-.069.573.216.13.603.091.86-.095.258-.185.29-.44.073-.572m1.328 3.095c.444 0 .9-.126 1.242-.5.264-.305.385-.757.426-.943.137-.617.03-.905-.103-1.08-.202-.268-.56-.353-.931-.353-.224 0-.756.022-1.171.417-.299.285-.436.672-.52 1.043-.083.377-.18 1.057.426 1.31.187.083.457.106.631.106m-.035-1.388c.103-.467.224-.86.532-.86.242 0 .26.292.152.761-.02.104-.107.491-.227.656-.083.121-.182.195-.29.195-.033 0-.226 0-.23-.295a2 2 0 0 1 .063-.457m2.814 1.328.035-.036c.049-.27.057-.333.166-.877.054-.258.167-.826.22-1.028.1-.048.198-.095.295-.095.223 0 .196.202.187.282-.008.136-.09.577-.175.956l-.053.245c-.041.18-.085.356-.124.536l.017.035c.456-.025.59-.025.98-.018l.047-.036c.068-.42.087-.533.215-1.145l.061-.28c.122-.55.184-.83.094-1.057-.1-.254-.336-.316-.547-.316-.14 0-.397.035-.626.151a4 4 0 0 0-.243.146l.07-.28-.038-.047c-.487.102-.598.116-1.048.181l-.034.026c-.055.447-.099.783-.293 1.661q-.11.487-.227.973l.021.041c.462-.025.6-.025 1-.018m3.35.018.2-1s.146-.627.155-.65c0 0 .045-.065.09-.091h.068c.634 0 1.349 0 1.91-.426.381-.291.642-.722.758-1.246.03-.128.053-.28.053-.433 0-.201-.04-.4-.152-.554-.286-.413-.855-.42-1.513-.424l-.324.003c-.84.011-1.178.008-1.317-.01l-.034.176-.301 1.443-.755 3.207c.734-.01 1.036-.01 1.162.005m.559-2.559.319-1.432.01-.073.005-.057.128.014.676.06c.26.104.368.372.293.722-.068.32-.27.59-.528.72-.213.11-.474.119-.743.119h-.173zm1.995 1.24c-.085.372-.182 1.052.421 1.294.193.085.365.11.54.1.185-.01.356-.105.515-.243l-.043.17.028.036c.434-.019.568-.019 1.038-.015l.043-.033c.069-.417.133-.82.312-1.617q.13-.572.263-1.14l-.014-.04c-.486.092-.616.112-1.082.18l-.036.03-.014.113a.67.67 0 0 0-.34-.289c-.208-.084-.696.024-1.115.418-.294.281-.436.666-.516 1.036m1.02.022c.103-.458.223-.847.532-.847.196 0 .299.186.277.504l-.055.257q-.048.204-.097.407a1 1 0 0 1-.115.238c-.08.116-.269.188-.378.188-.03 0-.221 0-.228-.29a2 2 0 0 1 .063-.457Zm5.323-1.515-.037-.044c-.48.1-.567.117-1.009.178l-.032.033-.005.022-.002-.008c-.328.782-.319.613-.586 1.229l-.003-.076-.067-1.334-.042-.044c-.503.1-.515.117-.98.178l-.036.033c-.005.016-.005.034-.008.053l.003.007c.058.306.044.238.102.72.027.238.064.476.09.71.047.392.072.585.128 1.183-.314.535-.388.737-.69 1.205l.002.005-.213.347c-.024.037-.046.062-.077.072a.3.3 0 0 1-.14.02h-.117l-.175.602.6.01c.354-.001.575-.171.695-.4l.378-.668h-.006l.04-.047c.254-.564 2.188-3.986 2.188-3.986Zm-6.343 7.894h-.255l.944-3.22h.313l.099-.331.01.369c-.012.228.162.43.619.396h.528l.182-.62h-.2q-.17 0-.16-.093l-.01-.375h-.978v.002c-.316.006-1.26.03-1.452.083a1.7 1.7 0 0 0-.475.243l.096-.332h-.915l-.19.659-.957 3.268h-.186l-.182.615h1.823l-.061.206h.898l.06-.206h.251zm-.748-2.565c-.147.042-.42.168-.42.168l.243-.822h.727l-.175.599s-.225.014-.375.055m.014 1.175s-.229.03-.379.065c-.148.046-.425.192-.425.192l.25-.856h.73zm-.407 1.397h-.73l.212-.722h.727l-.21.722Zm1.756-1.996h1.051l-.151.504h-1.065l-.16.552h.932l-.706 1.025a.3.3 0 0 1-.143.123.4.4 0 0 1-.19.056h-.258l-.177.604h.676c.352 0 .56-.165.713-.381l.483-.684.104.694a.33.33 0 0 0 .174.236c.068.035.138.095.237.104q.158.007.233.008h.333l.2-.676h-.132c-.075 0-.205-.013-.227-.037-.022-.03-.022-.075-.034-.145l-.105-.695h-.432l.19-.232h1.063l.163-.552h-.984l.153-.504h.981l.182-.623h-2.925l-.18.623Zm-8.879 2.137.245-.842h1.009l.184-.626h-1.01l.155-.518h.986l.183-.606h-2.468l-.179.606h.56l-.149.518h-.562l-.186.637h.56l-.327 1.114c-.044.147.02.203.062.272a.27.27 0 0 0 .18.136c.1.022.167.036.259.036h1.137l.202-.694-.503.072c-.098 0-.367-.012-.338-.105m.116-4.03-.256.476a.55.55 0 0 1-.148.199q-.06.036-.228.035h-.134l-.178.61h.443a1 1 0 0 0 .454-.121c.084-.046.106-.02.171-.085l.15-.133h1.383l.183-.635h-1.012l.177-.346zm2.041 4.042c-.023-.035-.006-.097.03-.225l.378-1.29h1.344q.293-.003.43-.012a.9.9 0 0 0 .323-.113.6.6 0 0 0 .235-.223c.058-.083.152-.264.232-.542l.475-1.633-1.395.008s-.43.066-.619.138c-.19.08-.463.305-.463.305l.126-.448h-.862l-1.207 4.128q-.066.24-.078.346c-.002.075.092.15.153.206.072.056.18.047.281.056.108.009.261.014.473.014h.662l.203-.708-.593.058a.15.15 0 0 1-.128-.065m.651-2.386h1.413l-.09.29c-.013.006-.043-.015-.187.003h-1.223zm.283-.974h1.424l-.102.35s-.671-.007-.779.013a1.57 1.57 0 0 0-.749.345zm1.072 2.236a.16.16 0 0 1-.056.09q-.043.026-.145.025h-.201l.012-.353h-.837l-.034 1.727c-.001.125.01.197.099.255.088.072.36.081.727.081h.525l.19-.646-.457.025-.152.01c-.02-.01-.04-.018-.063-.04-.019-.02-.051-.008-.046-.133l.003-.443.48-.02a.6.6 0 0 0 .463-.17c.09-.079.12-.17.153-.293l.08-.392H18.5l-.083.276Z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgUnionpay);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgVisa = function SvgVisa(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 50,\n height: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#172B85\",\n fillRule: \"evenodd\",\n d: \"M12.479 15.875h-4.24L5.058 3.463c-.152-.57-.472-1.076-.944-1.314C2.94 1.552 1.643 1.076.228.836V.358H7.06c.943 0 1.65.718 1.768 1.551l1.65 8.954L14.715.358h4.123zm8.717 0H17.19L20.489.358h4.005zm8.48-11.218c.117-.836.824-1.314 1.65-1.314 1.295-.12 2.708.12 3.886.716L35.92.718A9.9 9.9 0 0 0 32.268 0c-3.887 0-6.716 2.15-6.716 5.133 0 2.269 2.004 3.46 3.418 4.178 1.53.716 2.12 1.194 2.002 1.91 0 1.073-1.179 1.551-2.356 1.551-1.414 0-2.828-.358-4.122-.955l-.707 3.343c1.414.595 2.944.835 4.358.835 4.359.118 7.067-2.029 7.067-5.252 0-4.059-5.537-4.297-5.537-6.086m19.552 11.218L46.048.358h-3.415c-.707 0-1.415.478-1.65 1.194l-5.889 14.323h4.123l.823-2.267h5.066l.471 2.267zM43.222 4.537l1.176 5.848h-3.297z\",\n clipRule: \"evenodd\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgVisa);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgApplePayLogo = function SvgApplePayLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 47,\n height: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M9.369 2.848c.535-.67.898-1.568.802-2.486-.783.039-1.739.517-2.292 1.186-.497.574-.937 1.51-.822 2.39.879.076 1.757-.44 2.312-1.09M10.161 4.11c-1.277-.077-2.362.724-2.972.724s-1.543-.686-2.553-.668c-1.315.02-2.534.763-3.201 1.944-1.372 2.365-.362 5.872.972 7.798.648.953 1.428 2.002 2.457 1.964.972-.038 1.353-.63 2.535-.63 1.18 0 1.524.63 2.552.61 1.067-.018 1.734-.952 2.382-1.906.743-1.086 1.048-2.135 1.067-2.192-.02-.02-2.058-.801-2.077-3.146-.019-1.963 1.6-2.897 1.677-2.955-.915-1.353-2.344-1.505-2.839-1.544M21.276 1.452c2.775 0 4.707 1.913 4.707 4.698 0 2.794-1.972 4.717-4.776 4.717h-3.073v4.886h-2.22v-14.3zm-3.142 7.552h2.547c1.933 0 3.033-1.04 3.033-2.844s-1.1-2.835-3.023-2.835h-2.557zM26.563 12.79c0-1.824 1.398-2.944 3.875-3.083l2.854-.168v-.803c0-1.16-.783-1.853-2.09-1.853-1.24 0-2.013.594-2.2 1.526H26.98c.118-1.883 1.724-3.27 4.3-3.27 2.528 0 4.143 1.337 4.143 3.429v7.185H33.37v-1.715h-.049c-.604 1.16-1.923 1.893-3.29 1.893-2.042 0-3.469-1.269-3.469-3.141m6.73-.942v-.823l-2.568.159c-1.278.09-2.001.654-2.001 1.546 0 .912.753 1.506 1.902 1.506 1.497 0 2.666-1.03 2.666-2.388M37.36 19.588v-1.734c.158.04.514.04.693.04.991 0 1.526-.417 1.853-1.487 0-.02.189-.634.189-.644L36.329 5.327h2.319l2.636 8.484h.04l2.636-8.484h2.26l-3.906 10.971c-.891 2.527-1.922 3.34-4.083 3.34-.178 0-.713-.02-.872-.05\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgApplePayLogo);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgCheckIcon = function SvgCheckIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeWidth: 2.667,\n d: \"M5.333 11.333 10 16l8-8\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgCheckIcon);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgCopyIcon = function SvgCopyIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#C8C4BB\",\n strokeWidth: 1.5,\n d: \"M14.25 9.75v-3.5a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h3.5m8-4.5h-7a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1Z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgCopyIcon);\nexport default Memo;","var _path, _rect;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgInfoIcon = function SvgInfoIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#817B6F\",\n d: \"M7.164 12V6h1.664v6zM8 5.227a.9.9 0 0 1-.637-.247.8.8 0 0 1-.261-.597q0-.344.261-.59A.9.9 0 0 1 8 3.543q.37 0 .633.25.265.246.265.59a.8.8 0 0 1-.265.597.9.9 0 0 1-.633.247\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 15,\n x: 0.5,\n y: 0.5,\n stroke: \"#817B6F\",\n rx: 7.5\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgInfoIcon);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgPaymentLoader = function SvgPaymentLoader(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 45,\n height: 44,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#356B61\",\n strokeLinecap: \"round\",\n strokeWidth: 6,\n d: \"M39 21.5C39 12.387 31.613 5 22.5 5S6 12.387 6 21.5 13.057 38 22.17 38\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgPaymentLoader);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgPaymentSucceed = function SvgPaymentSucceed(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 102,\n height: 100,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeWidth: 0.957,\n d: \"M74.582 90.728c-5.168.383-4.067-6.938-4.067-11.244H21.712m52.87 11.244h-52.87c-1.914-.16-5.407-1.866-4.067-11.244h4.067m52.87 11.244c1.196.558 3.54-.91 3.349-11.244-.192-10.335-.08-37.24 0-50.717-.16-.877-.055-5.024-3.887-5.024-8.433 0-34.869.08-49.222 0-1.117.08-3.398 1.196-3.589 5.024s.24 35.406.479 50.717\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeWidth: 9.569,\n d: \"m63.026 50.522 12.708 10.893a.957.957 0 0 0 1.316-.066l19.469-20.396\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#356B61\",\n strokeLinecap: \"round\",\n strokeWidth: 7.655,\n d: \"m63.026 50.522 12.708 10.893a.957.957 0 0 0 1.316-.066l19.469-20.396\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeWidth: 0.957,\n d: \"m93.169 55.505-9.849 9.85M39.834 31.1h18.66M39.834 36.647h18.66M37.441 33.776h23.445\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#356B61\",\n stroke: \"#000\",\n strokeWidth: 0.478,\n d: \"M17.22 6.623a.718.718 0 0 1 1.164.653l-.655 4.872c-.044.326.049.656.256.912l3.095 3.819a.718.718 0 0 1-.653 1.163l-4.872-.655a1.2 1.2 0 0 0-.912.256l-3.819 3.095a.718.718 0 0 1-1.163-.653l.655-4.872a1.2 1.2 0 0 0-.257-.912l-3.095-3.819a.718.718 0 0 1 .654-1.163l4.871.655c.327.044.657-.049.913-.256z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#000\",\n strokeWidth: 0.831,\n d: \"M93.22 78.43a.542.542 0 0 1 1.005.148l.691 3.256.407-.086-.407.086c.083.392.334.728.685.92l2.922 1.595c.441.24.345.9-.147 1.005l-3.257.69a1.37 1.37 0 0 0-.92.686l-1.594 2.922a.542.542 0 0 1-1.005-.147l-.691-3.257a1.37 1.37 0 0 0-.685-.92l-.2.365.2-.364-2.922-1.596a.541.541 0 0 1 .147-1.005l3.256-.69c.392-.084.728-.334.92-.685z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgPaymentSucceed);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgPaypalLogo = function SvgPaypalLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 87,\n height: 22,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#253B80\",\n d: \"m5.827 20.358.351-2.234-.783-.018H1.653l2.6-16.487a.21.21 0 0 1 .211-.18h6.31c2.094 0 3.54.436 4.294 1.296.354.403.579.825.688 1.29.114.486.116 1.068.005 1.777l-.008.052v.455l.353.2q.445.237.717.547c.302.345.498.783.58 1.303.086.535.058 1.17-.082 1.891-.161.829-.422 1.55-.775 2.141a4.4 4.4 0 0 1-1.227 1.345 5 5 0 0 1-1.653.746 8.2 8.2 0 0 1-2.067.239h-.49c-.352 0-.693.126-.96.353a1.5 1.5 0 0 0-.5.893l-.038.201-.621 3.938-.028.145c-.008.046-.02.068-.04.084a.1.1 0 0 1-.064.023z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#179BD7\",\n d: \"M16.444 5.907q-.029.18-.065.37c-.832 4.271-3.678 5.747-7.314 5.747h-1.85a.9.9 0 0 0-.89.761l-.947 6.01L5.11 20.5a.474.474 0 0 0 .467.548H8.86a.79.79 0 0 0 .78-.666l.033-.167.618-3.922.04-.216a.79.79 0 0 1 .78-.667h.49c3.181 0 5.671-1.291 6.399-5.028.304-1.561.146-2.865-.658-3.781a3.1 3.1 0 0 0-.898-.693Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#222D65\",\n d: \"M15.572 5.56a7 7 0 0 0-.809-.18 10 10 0 0 0-1.631-.12H8.187a.785.785 0 0 0-.78.668l-1.052 6.663-.03.194a.9.9 0 0 1 .888-.761h1.851c3.636 0 6.482-1.477 7.314-5.747q.037-.19.065-.37a4.4 4.4 0 0 0-.87-.347Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#253B80\",\n d: \"M7.407 5.928a.786.786 0 0 1 .78-.666h4.944c.586 0 1.133.038 1.632.119a6.5 6.5 0 0 1 .996.237 4.5 4.5 0 0 1 .684.289c.248-1.579-.002-2.654-.855-3.627-.941-1.071-2.64-1.53-4.813-1.53H4.467a.9.9 0 0 0-.892.762L.948 18.169a.542.542 0 0 0 .534.626h3.895l.978-6.204zm25.999-.621H28.75a.65.65 0 0 0-.639.545L26.23 17.787a.387.387 0 0 0 .384.448h2.222c.318 0 .59-.232.639-.547l.508-3.219a.646.646 0 0 1 .638-.546h1.473c3.066 0 4.835-1.484 5.297-4.424.209-1.286.01-2.296-.593-3.004-.662-.777-1.835-1.188-3.392-1.188m.536 4.358c-.254 1.67-1.53 1.67-2.764 1.67h-.702l.493-3.118a.39.39 0 0 1 .383-.328h.322c.84 0 1.633 0 2.043.48.244.285.319.71.225 1.296m13.373-.053h-2.23a.39.39 0 0 0-.382.327l-.099.623-.156-.226c-.482-.7-1.558-.934-2.632-.934-2.463 0-4.566 1.865-4.976 4.482-.213 1.305.09 2.553.83 3.424.68.8 1.651 1.133 2.807 1.133 1.985 0 3.085-1.276 3.085-1.276l-.1.62a.388.388 0 0 0 .383.449h2.008a.65.65 0 0 0 .639-.547l1.204-7.628a.386.386 0 0 0-.381-.447m-3.107 4.337c-.215 1.273-1.226 2.128-2.514 2.128-.648 0-1.165-.207-1.497-.6-.33-.391-.455-.947-.35-1.567.201-1.262 1.228-2.145 2.498-2.145.633 0 1.147.21 1.486.607.34.401.474.96.377 1.577m14.977-4.338h-2.24a.65.65 0 0 0-.535.284l-3.09 4.55-1.308-4.373a.65.65 0 0 0-.621-.46h-2.2a.388.388 0 0 0-.369.512l2.467 7.24-2.32 3.273a.388.388 0 0 0 .317.613h2.237a.65.65 0 0 0 .531-.278l7.45-10.752a.388.388 0 0 0-.319-.609\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#179BD7\",\n d: \"M66.6 5.307h-4.655a.646.646 0 0 0-.639.545l-1.882 11.935a.387.387 0 0 0 .382.448h2.389a.45.45 0 0 0 .447-.383l.534-3.383a.646.646 0 0 1 .638-.546h1.473c3.066 0 4.835-1.484 5.297-4.424.21-1.286.009-2.296-.594-3.004-.66-.777-1.833-1.188-3.39-1.188m.536 4.358c-.254 1.67-1.53 1.67-2.764 1.67h-.702l.494-3.118a.386.386 0 0 1 .382-.328h.322c.84 0 1.633 0 2.043.48.244.285.319.71.225 1.296m13.378-.053h-2.227a.386.386 0 0 0-.382.327l-.099.623-.156-.226c-.483-.7-1.558-.934-2.632-.934-2.463 0-4.566 1.865-4.975 4.482-.213 1.305.089 2.553.83 3.424.68.8 1.65 1.133 2.806 1.133 1.985 0 3.085-1.276 3.085-1.276l-.1.62a.388.388 0 0 0 .385.449h2.006a.646.646 0 0 0 .639-.547l1.205-7.628a.39.39 0 0 0-.385-.447m-3.106 4.337c-.214 1.273-1.226 2.128-2.514 2.128-.646 0-1.165-.207-1.497-.6-.33-.391-.453-.947-.35-1.567.202-1.262 1.228-2.145 2.498-2.145.633 0 1.147.21 1.486.607.34.401.476.96.377 1.577m5.731-8.315-1.91 12.152a.387.387 0 0 0 .382.448h1.92c.32 0 .59-.231.64-.546l1.883-11.934a.388.388 0 0 0-.382-.448h-2.15c-.19 0-.354.14-.383.328\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgPaypalLogo);\nexport default Memo;","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}(g.braintree || (g.braintree = {})).dropin = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i -1;\n}\nfunction isFacebook(ua) {\n return ua.indexOf(\"FBAN\") > -1;\n}\nmodule.exports = function isIosSafari(ua) {\n ua = ua || window.navigator.userAgent;\n return (isIos(ua) &&\n isWebkit(ua) &&\n !isIosChrome(ua) &&\n !isIosFirefox(ua) &&\n !isFacebook(ua));\n};\n\n},{\"./is-ios\":18,\"./is-ios-firefox\":13}],16:[function(require,module,exports){\n\"use strict\";\nvar isIos = require(\"./is-ios\");\nvar isIosGoogleSearchApp = require(\"./is-ios-google-search-app\");\nmodule.exports = function isIosWebview(ua) {\n ua = ua || window.navigator.userAgent;\n if (isIos(ua)) {\n // The Google Search iOS app is technically a webview and doesn't support popups.\n if (isIosGoogleSearchApp(ua)) {\n return true;\n }\n // Historically, a webview could be identified by the presence of AppleWebKit and _no_ presence of Safari after.\n return /.+AppleWebKit(?!.*Safari)/i.test(ua);\n }\n return false;\n};\n\n},{\"./is-ios\":18,\"./is-ios-google-search-app\":14}],17:[function(require,module,exports){\n\"use strict\";\nvar isIosWebview = require(\"./is-ios-webview\");\nmodule.exports = function isIosWKWebview(ua, statusBarVisible) {\n statusBarVisible =\n typeof statusBarVisible !== \"undefined\"\n ? statusBarVisible\n : window.statusbar.visible;\n return isIosWebview(ua) && statusBarVisible;\n};\n\n},{\"./is-ios-webview\":16}],18:[function(require,module,exports){\n\"use strict\";\nvar isIpadOS = require(\"./is-ipados\");\nmodule.exports = function isIos(ua, checkIpadOS, document) {\n if (checkIpadOS === void 0) { checkIpadOS = true; }\n ua = ua || window.navigator.userAgent;\n var iOsTest = /iPhone|iPod|iPad/i.test(ua);\n return checkIpadOS ? iOsTest || isIpadOS(ua, document) : iOsTest;\n};\n\n},{\"./is-ipados\":19}],19:[function(require,module,exports){\n\"use strict\";\nmodule.exports = function isIpadOS(ua, document) {\n ua = ua || window.navigator.userAgent;\n document = document || window.document;\n // \"ontouchend\" is used to determine if a browser is on an iPad, otherwise\n // user-agents for iPadOS behave/identify as a desktop browser\n return /Mac|iPad/i.test(ua) && \"ontouchend\" in document;\n};\n\n},{}],20:[function(require,module,exports){\n\"use strict\";\nmodule.exports = function isOpera(ua) {\n ua = ua || window.navigator.userAgent;\n return (ua.indexOf(\"OPR/\") !== -1 ||\n ua.indexOf(\"Opera/\") !== -1 ||\n ua.indexOf(\"OPT/\") !== -1);\n};\n\n},{}],21:[function(require,module,exports){\n\"use strict\";\nmodule.exports = function isSamsungBrowser(ua) {\n ua = ua || window.navigator.userAgent;\n return /SamsungBrowser/i.test(ua);\n};\n\n},{}],22:[function(require,module,exports){\n\"use strict\";\nmodule.exports = function isSilk(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Silk/\") !== -1;\n};\n\n},{}],23:[function(require,module,exports){\n\"use strict\";\nvar MINIMUM_SUPPORTED_CHROME_IOS_VERSION = 48;\nvar isAndroid = require(\"./is-android\");\nvar isIosFirefox = require(\"./is-ios-firefox\");\nvar isIosWebview = require(\"./is-ios-webview\");\nvar isChrome = require(\"./is-chrome\");\nvar isSamsungBrowser = require(\"./is-samsung\");\nvar isDuckDuckGo = require(\"./is-duckduckgo\");\nfunction isUnsupportedIosChrome(ua) {\n ua = ua || window.navigator.userAgent;\n var match = ua.match(/CriOS\\/(\\d+)\\./);\n if (!match) {\n return false;\n }\n var version = parseInt(match[1], 10);\n return version < MINIMUM_SUPPORTED_CHROME_IOS_VERSION;\n}\nfunction isOperaMini(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Opera Mini\") > -1;\n}\nfunction isAndroidWebview(ua) {\n var androidWebviewRegExp = /Version\\/[\\d.]+/i;\n ua = ua || window.navigator.userAgent;\n if (isAndroid(ua)) {\n return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !isDuckDuckGo(ua));\n }\n return false;\n}\nfunction isOldSamsungBrowserOrSamsungWebview(ua) {\n return !isChrome(ua) && !isSamsungBrowser(ua) && /samsung/i.test(ua);\n}\nmodule.exports = function supportsPopups(ua) {\n ua = ua || window.navigator.userAgent;\n return !(isIosWebview(ua) ||\n isIosFirefox(ua) ||\n isAndroidWebview(ua) ||\n isOperaMini(ua) ||\n isUnsupportedIosChrome(ua) ||\n isOldSamsungBrowserOrSamsungWebview(ua));\n};\n\n},{\"./is-android\":5,\"./is-chrome\":7,\"./is-duckduckgo\":8,\"./is-ios-firefox\":13,\"./is-ios-webview\":16,\"./is-samsung\":21}],24:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-android\");\n\n},{\"./dist/is-android\":5}],25:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-chrome-os\");\n\n},{\"./dist/is-chrome-os\":6}],26:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-chrome\");\n\n},{\"./dist/is-chrome\":7}],27:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-firefox\");\n\n},{\"./dist/is-firefox\":10}],28:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ie10\");\n\n},{\"./dist/is-ie10\":11}],29:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ie9\");\n\n},{\"./dist/is-ie9\":12}],30:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ios-safari\");\n\n},{\"./dist/is-ios-safari\":15}],31:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ios-webview\");\n\n},{\"./dist/is-ios-webview\":16}],32:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ios-wkwebview\");\n\n},{\"./dist/is-ios-wkwebview\":17}],33:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-ios\");\n\n},{\"./dist/is-ios\":18}],34:[function(require,module,exports){\nmodule.exports = require(\"./dist/is-samsung\");\n\n},{\"./dist/is-samsung\":21}],35:[function(require,module,exports){\nmodule.exports = require(\"./dist/supports-popups\");\n\n},{\"./dist/supports-popups\":23}],36:[function(require,module,exports){\n\"use strict\";\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n this._events = {};\n }\n EventEmitter.prototype.on = function (event, callback) {\n if (this._events[event]) {\n this._events[event].push(callback);\n }\n else {\n this._events[event] = [callback];\n }\n };\n EventEmitter.prototype.off = function (event, callback) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n var indexOfCallback = eventCallbacks.indexOf(callback);\n eventCallbacks.splice(indexOfCallback, 1);\n };\n EventEmitter.prototype._emit = function (event) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n eventCallbacks.forEach(function (callback) {\n callback.apply(void 0, args);\n });\n };\n EventEmitter.prototype.hasListener = function (event) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return false;\n }\n return eventCallbacks.length > 0;\n };\n EventEmitter.createChild = function (ChildObject) {\n ChildObject.prototype = Object.create(EventEmitter.prototype, {\n constructor: ChildObject,\n });\n };\n return EventEmitter;\n}());\nmodule.exports = EventEmitter;\n\n},{}],37:[function(require,module,exports){\n\"use strict\";\nvar GlobalPromise = (typeof Promise !== \"undefined\"\n ? Promise // eslint-disable-line no-undef\n : null);\nvar ExtendedPromise = /** @class */ (function () {\n function ExtendedPromise(options) {\n var _this = this;\n if (typeof options === \"function\") {\n this._promise = new ExtendedPromise.Promise(options);\n return;\n }\n this._promise = new ExtendedPromise.Promise(function (resolve, reject) {\n _this._resolveFunction = resolve;\n _this._rejectFunction = reject;\n });\n options = options || {};\n this._onResolve = options.onResolve || ExtendedPromise.defaultOnResolve;\n this._onReject = options.onReject || ExtendedPromise.defaultOnReject;\n if (ExtendedPromise.shouldCatchExceptions(options)) {\n this._promise.catch(function () {\n // prevents unhandled promise rejection warning\n // in the console for extended promises that\n // that catch the error in an asynchronous manner\n });\n }\n this._resetState();\n }\n ExtendedPromise.defaultOnResolve = function (result) {\n return ExtendedPromise.Promise.resolve(result);\n };\n ExtendedPromise.defaultOnReject = function (err) {\n return ExtendedPromise.Promise.reject(err);\n };\n ExtendedPromise.setPromise = function (PromiseClass) {\n ExtendedPromise.Promise = PromiseClass;\n };\n ExtendedPromise.shouldCatchExceptions = function (options) {\n if (options.hasOwnProperty(\"suppressUnhandledPromiseMessage\")) {\n return Boolean(options.suppressUnhandledPromiseMessage);\n }\n return Boolean(ExtendedPromise.suppressUnhandledPromiseMessage);\n };\n // start Promise methods documented in:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Methods\n ExtendedPromise.all = function (args) {\n return ExtendedPromise.Promise.all(args);\n };\n ExtendedPromise.allSettled = function (args) {\n return ExtendedPromise.Promise.allSettled(args);\n };\n ExtendedPromise.race = function (args) {\n return ExtendedPromise.Promise.race(args);\n };\n ExtendedPromise.reject = function (arg) {\n return ExtendedPromise.Promise.reject(arg);\n };\n ExtendedPromise.resolve = function (arg) {\n return ExtendedPromise.Promise.resolve(arg);\n };\n ExtendedPromise.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n ExtendedPromise.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n ExtendedPromise.prototype.resolve = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setResolved();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onResolve(arg);\n })\n .then(function (argForResolveFunction) {\n _this._resolveFunction(argForResolveFunction);\n })\n .catch(function (err) {\n _this._resetState();\n _this.reject(err);\n });\n return this;\n };\n ExtendedPromise.prototype.reject = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setRejected();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onReject(arg);\n })\n .then(function (result) {\n _this._setResolved();\n _this._resolveFunction(result);\n })\n .catch(function (err) {\n return _this._rejectFunction(err);\n });\n return this;\n };\n ExtendedPromise.prototype._resetState = function () {\n this.isFulfilled = false;\n this.isResolved = false;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setResolved = function () {\n this.isFulfilled = true;\n this.isResolved = true;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setRejected = function () {\n this.isFulfilled = true;\n this.isResolved = false;\n this.isRejected = true;\n };\n ExtendedPromise.Promise = GlobalPromise;\n return ExtendedPromise;\n}());\nmodule.exports = ExtendedPromise;\n\n},{}],38:[function(require,module,exports){\n\"use strict\";\nvar set_attributes_1 = require(\"./lib/set-attributes\");\nvar default_attributes_1 = require(\"./lib/default-attributes\");\nvar assign_1 = require(\"./lib/assign\");\nmodule.exports = function createFrame(options) {\n if (options === void 0) { options = {}; }\n var iframe = document.createElement(\"iframe\");\n var config = (0, assign_1.assign)({}, default_attributes_1.defaultAttributes, options);\n if (config.style && typeof config.style !== \"string\") {\n (0, assign_1.assign)(iframe.style, config.style);\n delete config.style;\n }\n (0, set_attributes_1.setAttributes)(iframe, config);\n if (!iframe.getAttribute(\"id\")) {\n iframe.id = iframe.name;\n }\n return iframe;\n};\n\n},{\"./lib/assign\":39,\"./lib/default-attributes\":40,\"./lib/set-attributes\":41}],39:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assign = void 0;\nfunction assign(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntarget) {\n var objs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objs[_i - 1] = arguments[_i];\n }\n objs.forEach(function (obj) {\n if (typeof obj !== \"object\") {\n return;\n }\n Object.keys(obj).forEach(function (key) {\n target[key] = obj[key];\n });\n });\n return target;\n}\nexports.assign = assign;\n\n},{}],40:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultAttributes = void 0;\nexports.defaultAttributes = {\n src: \"about:blank\",\n frameBorder: 0,\n allowtransparency: true,\n scrolling: \"no\",\n};\n\n},{}],41:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setAttributes = void 0;\nfunction setAttributes(element, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nattributes) {\n for (var key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n var value = attributes[key];\n if (value == null) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n }\n }\n}\nexports.setAttributes = setAttributes;\n\n},{}],42:[function(require,module,exports){\n\"use strict\";\n\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0;\n var v = c === \"x\" ? r : (r & 0x3) | 0x8;\n\n return v.toString(16);\n });\n}\n\nmodule.exports = uuid;\n\n},{}],43:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction deferred(fn) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n setTimeout(function () {\n try {\n fn.apply(void 0, args);\n }\n catch (err) {\n /* eslint-disable no-console */\n console.log(\"Error in callback function\");\n console.log(err);\n /* eslint-enable no-console */\n }\n }, 1);\n };\n}\nexports.deferred = deferred;\n\n},{}],44:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction once(fn) {\n var called = false;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n fn.apply(void 0, args);\n }\n };\n}\nexports.once = once;\n\n},{}],45:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable consistent-return */\nfunction promiseOrCallback(promise, callback) {\n if (!callback) {\n return promise;\n }\n promise.then(function (data) { return callback(null, data); }).catch(function (err) { return callback(err); });\n}\nexports.promiseOrCallback = promiseOrCallback;\n\n},{}],46:[function(require,module,exports){\n\"use strict\";\nvar deferred_1 = require(\"./lib/deferred\");\nvar once_1 = require(\"./lib/once\");\nvar promise_or_callback_1 = require(\"./lib/promise-or-callback\");\nfunction wrapPromise(fn) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback;\n var lastArg = args[args.length - 1];\n if (typeof lastArg === \"function\") {\n callback = args.pop();\n callback = once_1.once(deferred_1.deferred(callback));\n }\n // I know, I know, this looks bad. But it's a quirk of the library that\n // we need to allow passing the this context to the original function\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore: this has an implicit any\n return promise_or_callback_1.promiseOrCallback(fn.apply(this, args), callback); // eslint-disable-line no-invalid-this\n };\n}\nwrapPromise.wrapPrototype = function (target, options) {\n if (options === void 0) { options = {}; }\n var ignoreMethods = options.ignoreMethods || [];\n var includePrivateMethods = options.transformPrivateMethods === true;\n var methods = Object.getOwnPropertyNames(target.prototype).filter(function (method) {\n var isNotPrivateMethod;\n var isNonConstructorFunction = method !== \"constructor\" &&\n typeof target.prototype[method] === \"function\";\n var isNotAnIgnoredMethod = ignoreMethods.indexOf(method) === -1;\n if (includePrivateMethods) {\n isNotPrivateMethod = true;\n }\n else {\n isNotPrivateMethod = method.charAt(0) !== \"_\";\n }\n return (isNonConstructorFunction && isNotPrivateMethod && isNotAnIgnoredMethod);\n });\n methods.forEach(function (method) {\n var original = target.prototype[method];\n target.prototype[method] = wrapPromise(original);\n });\n return target;\n};\nmodule.exports = wrapPromise;\n\n},{\"./lib/deferred\":43,\"./lib/once\":44,\"./lib/promise-or-callback\":45}],47:[function(require,module,exports){\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.loadAxo = {}));\n})(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var dist = {};\n\n var scriptPromiseCache = {};\n function loadScript$1(options) {\n var scriptLoadPromise;\n var stringifiedOptions = JSON.stringify(options);\n if (!options.forceScriptReload) {\n scriptLoadPromise = scriptPromiseCache[stringifiedOptions];\n if (scriptLoadPromise) {\n return scriptLoadPromise;\n }\n }\n var script = document.createElement(\"script\");\n var attrs = options.dataAttributes || {};\n var container = options.container || document.head;\n script.src = options.src;\n script.id = options.id || \"\";\n script.async = true;\n if (options.type) {\n script.setAttribute(\"type\", \"\".concat(options.type));\n }\n if (options.crossorigin) {\n script.setAttribute(\"crossorigin\", \"\".concat(options.crossorigin));\n }\n Object.keys(attrs).forEach(function (key) {\n script.setAttribute(\"data-\".concat(key), \"\".concat(attrs[key]));\n });\n scriptLoadPromise = new Promise(function (resolve, reject) {\n script.addEventListener(\"load\", function () {\n resolve(script);\n });\n script.addEventListener(\"error\", function () {\n reject(new Error(\"\".concat(options.src, \" failed to load.\")));\n });\n script.addEventListener(\"abort\", function () {\n reject(new Error(\"\".concat(options.src, \" has aborted.\")));\n });\n container.appendChild(script);\n });\n scriptPromiseCache[stringifiedOptions] = scriptLoadPromise;\n return scriptLoadPromise;\n }\n loadScript$1.clearCache = function () {\n scriptPromiseCache = {};\n };\n var loadScript_1$1 = loadScript$1;\n\n var loadStylesheet$1 = function loadStylesheet(options) {\n var stylesheet = document.querySelector(\"link[href=\\\"\".concat(options.href, \"\\\"]\"));\n if (stylesheet) {\n return Promise.resolve(stylesheet);\n }\n stylesheet = document.createElement(\"link\");\n var container = options.container || document.head;\n stylesheet.setAttribute(\"rel\", \"stylesheet\");\n stylesheet.setAttribute(\"type\", \"text/css\");\n stylesheet.setAttribute(\"href\", options.href);\n stylesheet.setAttribute(\"id\", options.id);\n if (container.firstChild) {\n container.insertBefore(stylesheet, container.firstChild);\n }\n else {\n container.appendChild(stylesheet);\n }\n return Promise.resolve(stylesheet);\n };\n\n Object.defineProperty(dist, \"__esModule\", { value: true });\n dist.loadStylesheet = loadScript_1 = dist.loadScript = void 0;\n var loadScript = loadScript_1$1;\n var loadScript_1 = dist.loadScript = loadScript;\n var loadStylesheet = loadStylesheet$1;\n dist.loadStylesheet = loadStylesheet;\n\n var CDNX_PROD = \"https://www.paypalobjects.com\";\n var ASSET_NAME = {\n minified: \"axo.min\",\n unminified: \"axo\",\n };\n var FL_NAMESPACE = \"fastlane\";\n var ASSET_PATH = \"connect-boba\";\n var LOCALE_PATH = \"\".concat(ASSET_PATH, \"/locales/\");\n var constants = {\n AXO_ASSET_NAME: ASSET_NAME,\n AXO_ASSET_PATH: ASSET_PATH,\n LOCALE_PATH: LOCALE_PATH,\n CDNX_PROD: CDNX_PROD,\n };\n\n var AxoSupportedPlatforms = {\n BT: \"BT\",\n PPCP: \"PPCP\",\n };\n\n /**\n * Checks if the current environment is an AMD environment.\n *\n * @returns {boolean} True if the environment is AMD, false otherwise.\n */\n function isAmdEnv() {\n return typeof window.define === \"function\" && !!window.define.amd;\n }\n /**\n * Checks if the current environment is a RequireJS environment.\n *\n * @returns {boolean} True if the environment is RequireJS, false otherwise.\n */\n function isRequireJsEnv() {\n return (isAmdEnv() &&\n typeof window.requirejs === \"function\" &&\n typeof window.requirejs.config === \"function\");\n }\n\n /**\n * Safely loads BT modules by checking if the module already exists and verifying if versions mismatch\n *\n * @param loadConfig Configuration of BT Module to load\n * @param version version that should be passed from the client getVersion\n * @returns Promise\n * @returns Promise when BT module with same version already exists\n * @returns Promise.reject(err) when BT module already exists but versions mismatch or empty version passed in\n */\n function safeLoadBtModule(loadConfig, version, minified) {\n var _a, _b;\n if (minified === void 0) { minified = true; }\n return __awaiter(this, void 0, void 0, function () {\n var bt, existingVersion;\n return __generator(this, function (_c) {\n bt = getBraintree();\n if (bt && bt[loadConfig.module]) {\n if (version && ((_a = bt[loadConfig.module]) === null || _a === void 0 ? void 0 : _a.VERSION) !== version) {\n existingVersion = (_b = bt[loadConfig.module]) === null || _b === void 0 ? void 0 : _b.VERSION;\n throw new Error(\"\".concat(loadConfig.module, \" already loaded with version \").concat(existingVersion, \" cannot load version \").concat(version));\n }\n else {\n return [2 /*return*/, true];\n }\n }\n if (!version) {\n throw new Error(\"Attempted to load \".concat(loadConfig.module, \" without specifying version\"));\n }\n return [2 /*return*/, loadBtModule(loadConfig, version, minified)];\n });\n });\n }\n /**\n * Reads the version and to load the correct version of Bt module\n *\n * @param loadConfig Configuration of BT Module to load\n * @param version Bt module version\n * @returns Promise or\n */\n function loadBtModule(loadConfig, version, minified) {\n if (minified === void 0) { minified = true; }\n if (isAmdEnv()) {\n var module_1 = minified\n ? loadConfig.amdModule.minified\n : loadConfig.amdModule.unminified;\n return new Promise(function (resolve, reject) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.require([module_1], resolve, reject);\n });\n }\n var script = minified\n ? loadConfig.script.minified\n : loadConfig.script.unminified;\n return loadScript_1({\n id: \"\".concat(loadConfig.id, \"-\").concat(version),\n src: \"https://js.braintreegateway.com/web/\".concat(version, \"/js/\").concat(script),\n });\n }\n /**\n * Looks for the Braintree web sdk on the window object\n *\n * @returns Braintree web sdk\n */\n function getBraintree() {\n return window === null || window === void 0 ? void 0 : window.braintree;\n }\n\n var _a, _b;\n /**\n * Maps to the BT module namespace created on the window.braintree object\n */\n var BtModule = {\n Client: \"client\",\n HostedCardFields: \"hostedFields\",\n };\n var BT_NAMESPACE = \"braintree\";\n var BT_ASSET_NAME = (_a = {},\n _a[BtModule.Client] = \"client\",\n _a[BtModule.HostedCardFields] = \"hosted-fields\",\n _a);\n var btModulesLoadConfig = (_b = {},\n _b[BtModule.Client] = {\n id: \"client\",\n module: BtModule.Client,\n amdModule: {\n unminified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.Client]),\n minified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.Client], \".min\"),\n },\n script: {\n unminified: \"\".concat(BT_ASSET_NAME[BtModule.Client], \".js\"),\n minified: \"\".concat(BT_ASSET_NAME[BtModule.Client], \".min.js\"),\n },\n },\n _b[BtModule.HostedCardFields] = {\n id: \"hcf\",\n module: BtModule.HostedCardFields,\n amdModule: {\n unminified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.HostedCardFields]),\n minified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".min\"),\n },\n script: {\n unminified: \"\".concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".js\"),\n minified: \"\".concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".min.js\"),\n },\n },\n _b);\n\n /**\n * Loads accelerated checkout components.\n * @param options object with a minified parameter to determine if the script that is loaded should be minified or not (defaults to true if)\n * @returns an object with metadata with a localeUrl parameter to be read by AXO SDK\n */\n function loadAxo(options) {\n return __awaiter(this, void 0, void 0, function () {\n var btSdkVersion, minified, assetUrl, localeUrl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n performance.mark(\"pp_axo_sdk_init_invoked\");\n btSdkVersion = options.btSdkVersion, minified = options.minified;\n assetUrl = getAssetsUrl(options);\n localeUrl = getLocaleUrl(options);\n if (!(options.platform === AxoSupportedPlatforms.BT)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all([\n safeLoadBtModule(btModulesLoadConfig.hostedFields, btSdkVersion, minified),\n loadAXOScript(assetUrl, minified),\n ])];\n case 1:\n _a.sent();\n return [3 /*break*/, 5];\n case 2:\n if (!(options.platform === AxoSupportedPlatforms.PPCP)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all([\n safeLoadBtModule(btModulesLoadConfig.client, btSdkVersion, minified),\n safeLoadBtModule(btModulesLoadConfig.hostedFields, btSdkVersion, minified),\n loadAXOScript(assetUrl, minified),\n ])];\n case 3:\n _a.sent();\n return [3 /*break*/, 5];\n case 4: throw new Error(\"unsupported axo platform\");\n case 5: return [2 /*return*/, { metadata: { localeUrl: localeUrl } }];\n }\n });\n });\n }\n /**\n * Reads the url and to load the axo bundle script\n * @param url (Required) string url for the correct axo asset\n * @returns Promise\n */\n function loadAXOScript(url, minified) {\n var _a;\n if (minified === void 0) { minified = true; }\n if (isAmdEnv()) {\n // AMD environment\n if (isRequireJsEnv()) {\n // Let's configure RequireJS\n requirejs.config({\n paths: (_a = {},\n _a[FL_NAMESPACE] = url,\n _a),\n });\n }\n var moduleName_1 = \"\".concat(FL_NAMESPACE, \"/\").concat(minified\n ? constants.AXO_ASSET_NAME.minified\n : constants.AXO_ASSET_NAME.unminified);\n return new Promise(function (resolve, reject) {\n window.require([moduleName_1], resolve, reject);\n });\n }\n // Not an AMD environment\n return loadScript_1({\n id: \"axo-id\",\n src: url,\n forceScriptReload: true,\n });\n }\n /**\n * Prepends the domain to the asset url\n * @param options object with assetUrl and bundleid parameters to determine which URL to return\n * @returns full domain and assets URL as string\n */\n function generateAssetUrl(_a) {\n var assetUrl = _a.assetUrl, bundleId = _a.bundleId;\n return bundleId\n ? \"https://cdn-\".concat(bundleId, \".static.engineering.dev.paypalinc.com/\").concat(assetUrl)\n : \"\".concat(constants.CDNX_PROD, \"/\").concat(assetUrl);\n }\n /**\n * Retrieves either the minified or unminified assets URL as specified\n * @param options (Optional) object with a minified and metadata with bundleIdOverride parameters to determine which URL to return\n * @returns assets URL as string\n */\n function getAssetsUrl(options) {\n var _a;\n var assetName = (options === null || options === void 0 ? void 0 : options.minified) !== false\n ? constants.AXO_ASSET_NAME.minified\n : constants.AXO_ASSET_NAME.unminified;\n var assetUrl = isAmdEnv()\n ? constants.AXO_ASSET_PATH\n : \"\".concat(constants.AXO_ASSET_PATH, \"/\").concat(assetName, \".js\");\n return generateAssetUrl({\n assetUrl: assetUrl,\n bundleId: (_a = options === null || options === void 0 ? void 0 : options.metadata) === null || _a === void 0 ? void 0 : _a.bundleIdOverride,\n });\n }\n /**\n * Retrieves the Locales URL, the path to our language files\n * @param options (Optional) object with a minified and metadata with bundleIdOverride parameters to determine which URL to return\n * @returns locale URL as string\n */\n function getLocaleUrl(options) {\n var _a;\n return generateAssetUrl({\n assetUrl: constants.LOCALE_PATH,\n bundleId: (_a = options === null || options === void 0 ? void 0 : options.metadata) === null || _a === void 0 ? void 0 : _a.bundleIdOverride,\n });\n }\n\n exports.constants = constants;\n exports.loadAxo = loadAxo;\n\n}));\n\n},{}],48:[function(require,module,exports){\n\"use strict\";\n\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar analytics = require(\"../lib/analytics\");\nvar errors = require(\"./errors\");\nvar methods = require(\"../lib/methods\");\nvar convertMethodsToError = require(\"../lib/convert-methods-to-error\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\n\n/**\n * @typedef {object} ApplePay~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.cardHolderName The name of the card holder.\n * @property {string} details.dpanLastTwo Last two digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `ApplePayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * An Apple Pay Payment Authorization Event object.\n * @typedef {object} ApplePayPaymentAuthorizedEvent\n * @external ApplePayPaymentAuthorizedEvent\n * @see {@link https://developer.apple.com/reference/applepayjs/applepaypaymentauthorizedevent ApplePayPaymentAuthorizedEvent}\n */\n\n/**\n * An Apple Pay Payment Request object.\n * @typedef {object} ApplePayPaymentRequest\n * @external ApplePayPaymentRequest\n * @see {@link https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest PaymentRequest}\n */\n\n/**\n * @class\n * @param {object} options Options\n * @description You cannot use this constructor directly. Use {@link module:braintree-web/apple-pay.create|braintree.applePay.create} instead.\n * @classdesc This class represents an Apple Pay component. Instances of this class have methods for validating the merchant server and tokenizing payments.\n */\nfunction ApplePay(options) {\n this._instantiatedWithClient = Boolean(!options.useDeferredClient);\n this._client = options.client;\n this._createPromise = options.createPromise;\n\n if (this._client) {\n this._setMerchantIdentifier();\n }\n}\n\nApplePay.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n\n this._setMerchantIdentifier();\n }.bind(this)\n );\n};\n\nApplePay.prototype._setMerchantIdentifier = function () {\n var applePayConfig =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n\n if (!applePayConfig) {\n return;\n }\n /**\n * @name ApplePay#merchantIdentifier\n * @description A special merchant ID which represents the merchant association with Braintree. Required when using `ApplePaySession.canMakePaymentsWithActiveCard`.\n * @example\n * var promise = ApplePaySession.canMakePaymentsWithActiveCard(applePayInstance.merchantIdentifier);\n * promise.then(function (canMakePaymentsWithActiveCard) {\n * if (canMakePaymentsWithActiveCard) {\n * // Set up Apple Pay buttons\n * }\n * });\n */\n Object.defineProperty(this, \"merchantIdentifier\", {\n value: applePayConfig.merchantIdentifier,\n configurable: false,\n writable: false,\n });\n};\n\n/**\n * Merges a payment request with Braintree defaults to return an {external:ApplePayPaymentRequest}.\n *\n * The following properties are assigned to `paymentRequest` if not already defined. Their default values come from the Braintree gateway.\n * - `countryCode`\n * - `currencyCode`\n * - `merchantCapabilities`\n * - `supportedNetworks`\n * @public\n * @param {external:ApplePayPaymentRequest} paymentRequest The payment request details to apply on top of those from Braintree.\n * @returns {external:ApplePayPaymentRequest|Promise} The decorated `paymentRequest` object. If `useDeferredClient` is used along with an `authorization`, this method will return a promise that resolves with the `paymentRequest` object.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n *\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * @example With deferred client\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({\n * authorization: 'client-token-or-tokenization-key',\n * useDeferredClient: true\n * }, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * }).then(function (paymentRequest) {\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * });\n */\nApplePay.prototype.createPaymentRequest = function (paymentRequest) {\n if (this._instantiatedWithClient) {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }.bind(this)\n );\n};\n\nApplePay.prototype._createPaymentRequestSynchronously = function (\n paymentRequest\n) {\n var applePay =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n var defaults = {\n countryCode: applePay.countryCode,\n currencyCode: applePay.currencyCode,\n merchantCapabilities: applePay.merchantCapabilities || [\"supports3DS\"],\n supportedNetworks: applePay.supportedNetworks.map(function (network) {\n return network === \"mastercard\" ? \"masterCard\" : network;\n }),\n };\n\n return Object.assign({}, defaults, paymentRequest);\n};\n\n/**\n * Validates your merchant website, as required by `ApplePaySession` before payment can be authorized.\n * @public\n * @param {object} options Options\n * @param {string} options.validationURL The validationURL from an `ApplePayValidateMerchantEvent`.\n * @param {string} options.displayName The canonical name for your store. Use a non-localized name. This parameter should be a UTF-8 string that is a maximum of 64 characters. The system may display this name to the user.\n * @param {callback} [callback] The second argument, data, is the Apple Pay merchant session object. If no callback is provided, `performValidation` returns a promise.\n * Pass the merchant session to your Apple Pay session's `completeMerchantValidation` method.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onvalidatemerchant = function (event) {\n * applePayInstance.performValidation({\n * validationURL: event.validationURL,\n * displayName: 'My Great Store'\n * }, function (validationErr, validationData) {\n * if (validationErr) {\n * console.error(validationErr);\n * session.abort();\n * return;\n * }\n *\n * session.completeMerchantValidation(validationData);\n * });\n * };\n * });\n */\nApplePay.prototype.performValidation = function (options) {\n var self = this;\n\n if (!options || !options.validationURL) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_VALIDATION_URL_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n var applePayWebSession = {\n validationUrl: options.validationURL,\n domainName: options.domainName || window.location.hostname,\n merchantIdentifier:\n options.merchantIdentifier || self.merchantIdentifier,\n };\n\n if (options.displayName != null) {\n applePayWebSession.displayName = options.displayName;\n }\n\n return self._client.request({\n method: \"post\",\n endpoint: \"apple_pay_web/sessions\",\n data: {\n _meta: { source: \"apple-pay\" },\n applePayWebSession: applePayWebSession,\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.performValidation.succeeded\");\n\n return Promise.resolve(response);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.performValidation.failed\");\n\n if (err.code === \"CLIENT_REQUEST_ERROR\") {\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.message,\n details: {\n originalError: err.details.originalError,\n },\n })\n );\n }\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Tokenizes an Apple Pay payment. This will likely be called in your `ApplePaySession`'s `onpaymentauthorized` callback.\n * @public\n * @param {object} options Options\n * @param {object} options.token The `payment.token` property of an {@link external:ApplePayPaymentAuthorizedEvent}.\n * @param {callback} [callback] The second argument, data, is a {@link ApplePay~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a promise that resolves with a {@link ApplePay~tokenizePayload|tokenizePayload}.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onpaymentauthorized = function (event) {\n * applePayInstance.tokenize({\n * token: event.payment.token\n * }, function (tokenizeErr, tokenizedPayload) {\n * if (tokenizeErr) {\n * session.completePayment(ApplePaySession.STATUS_FAILURE);\n * return;\n * }\n * // Send the tokenizedPayload to your server here!\n *\n * // Once the transaction is complete, call completePayment\n * // to close the Apple Pay sheet\n * session.completePayment(ApplePaySession.STATUS_SUCCESS);\n * });\n * };\n *\n * // ...\n * });\n */\nApplePay.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options.token) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_PAYMENT_TOKEN_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n return self._client.request({\n method: \"post\",\n endpoint: \"payment_methods/apple_payment_tokens\",\n data: {\n _meta: {\n source: \"apple-pay\",\n },\n applePaymentToken: Object.assign({}, options.token, {\n // The gateway requires this key to be base64-encoded.\n paymentData: btoa(JSON.stringify(options.token.paymentData)),\n }),\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.tokenize.succeeded\");\n\n return Promise.resolve(response.applePayCards[0]);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.tokenize.failed\");\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_TOKENIZATION.type,\n code: errors.APPLE_PAY_TOKENIZATION.code,\n message: errors.APPLE_PAY_TOKENIZATION.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/apple-pay.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * applePayInstance.teardown();\n * @example With callback\n * applePayInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nApplePay.prototype.teardown = function () {\n convertMethodsToError(this, methods(ApplePay.prototype));\n\n return Promise.resolve();\n};\n\nmodule.exports = wrapPromise.wrapPrototype(ApplePay);\n\n},{\"../lib/analytics\":88,\"../lib/braintree-error\":93,\"../lib/convert-methods-to-error\":96,\"../lib/methods\":125,\"./errors\":49,\"@braintree/wrap-promise\":46}],49:[function(require,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Apple Pay - Creation Error Codes\n * @description Errors that occur when [creating the Apple Pay component](./module-braintree-web_apple-pay.html#.create).\n * @property {MERCHANT} APPLE_PAY_NOT_ENABLED Occurs when the authorization used is not authorized to process Apple Pay.\n */\n\n/**\n * @name BraintreeError.Apple Pay - performValidation Error Codes\n * @description Errors that occur when [validating](./ApplePay.html#performValidation).\n * @property {MERCHANT} APPLE_PAY_VALIDATION_URL_REQUIRED Occurs when the `validationURL` option is not passed in.\n * @property {MERCHANT} APPLE_PAY_MERCHANT_VALIDATION_FAILED Occurs when the website domain has not been registered in the Braintree control panel.\n * @property {NETWORK} APPLE_PAY_MERCHANT_VALIDATION_NETWORK Occurs when an unknown network error occurs.\n */\n\n/**\n * @name BraintreeError.Apple Pay - tokenize Error Codes\n * @description Errors that occur when [tokenizing](./ApplePay.html#tokenize).\n * @property {MERCHANT} APPLE_PAY_PAYMENT_TOKEN_REQUIRED Occurs when the `token` option is not passed in.\n * @property {NETWORK} APPLE_PAY_TOKENIZATION Occurs when an unknown network error occurs.\n */\n\nvar BraintreeError = require(\"../lib/braintree-error\");\n\nmodule.exports = {\n APPLE_PAY_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_NOT_ENABLED\",\n message: \"Apple Pay is not enabled for this merchant.\",\n },\n APPLE_PAY_VALIDATION_URL_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_VALIDATION_URL_REQUIRED\",\n message: \"performValidation must be called with a validationURL.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_NETWORK\",\n message: \"A network error occurred when validating the Apple Pay merchant.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_FAILED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_FAILED\",\n message:\n \"Make sure you have registered your domain name in the Braintree Control Panel.\",\n },\n APPLE_PAY_PAYMENT_TOKEN_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_PAYMENT_TOKEN_REQUIRED\",\n message: \"tokenize must be called with a payment token.\",\n },\n APPLE_PAY_TOKENIZATION: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_TOKENIZATION\",\n message: \"A network error occurred when processing the Apple Pay payment.\",\n },\n};\n\n},{\"../lib/braintree-error\":93}],50:[function(require,module,exports){\n\"use strict\";\n\n/**\n * @module braintree-web/apple-pay\n * @description Accept Apple Pay on the Web. *This component is currently in beta and is subject to change.*\n */\n\nvar ApplePay = require(\"./apple-pay\");\nvar analytics = require(\"../lib/analytics\");\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar basicComponentVerification = require(\"../lib/basic-component-verification\");\nvar createAssetsUrl = require(\"../lib/create-assets-url\");\nvar createDeferredClient = require(\"../lib/create-deferred-client\");\nvar errors = require(\"./errors\");\nvar VERSION = \"3.115.1\";\nvar wrapPromise = require(\"@braintree/wrap-promise\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Apple Pay instance to be available right away by fetching the client configuration in the background. When this option is used, {@link ApplePay#createPaymentRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {callback} [callback] The second argument, `data`, is the {@link ApplePay} instance. If no callback is provided, `create` returns a promise that resolves with the {@link ApplePay} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Apple Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var applePayInstance;\n var createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n if (!client.getConfiguration().gatewayConfiguration.applePayWeb) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_NOT_ENABLED)\n );\n }\n\n analytics.sendEvent(client, \"applepay.initialized\");\n\n return client;\n });\n\n options.createPromise = createPromise;\n applePayInstance = new ApplePay(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n applePayInstance._client = client;\n\n return applePayInstance;\n });\n }\n\n return applePayInstance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `1.44.1`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/analytics\":88,\"../lib/basic-component-verification\":91,\"../lib/braintree-error\":93,\"../lib/create-assets-url\":98,\"../lib/create-deferred-client\":100,\"./apple-pay\":48,\"./errors\":49,\"@braintree/wrap-promise\":46}],51:[function(require,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = require(\"./constants\").BRAINTREE_VERSION;\n\nvar GraphQL = require(\"./request/graphql\");\nvar request = require(\"./request\");\nvar isVerifiedDomain = require(\"../lib/is-verified-domain\");\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar convertToBraintreeError = require(\"../lib/convert-to-braintree-error\");\nvar getGatewayConfiguration = require(\"./get-configuration\").getConfiguration;\nvar createAuthorizationData = require(\"../lib/create-authorization-data\");\nvar metadata = require(\"../lib/add-metadata\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar once = require(\"../lib/once\");\nvar deferred = require(\"../lib/deferred\");\nvar assign = require(\"../lib/assign\").assign;\nvar analytics = require(\"../lib/analytics\");\nvar errors = require(\"./errors\");\nvar VERSION = require(\"../lib/constants\").VERSION;\nvar GRAPHQL_URLS = require(\"../lib/constants\").GRAPHQL_URLS;\nvar methods = require(\"../lib/methods\");\nvar convertMethodsToError = require(\"../lib/convert-methods-to-error\");\nvar assets = require(\"../lib/assets\");\nvar FRAUDNET_FNCLS = require(\"../lib/constants\").FRAUDNET_FNCLS;\nvar FRAUDNET_SOURCE = require(\"../lib/constants\").FRAUDNET_SOURCE;\nvar FRAUDNET_URL = require(\"../lib/constants\").FRAUDNET_URL;\n\nvar cachedClients = {};\n\n/**\n * This object is returned by {@link Client#getConfiguration|getConfiguration}. This information is used extensively by other Braintree modules to properly configure themselves.\n * @typedef {object} Client~configuration\n * @property {object} client The braintree-web/client parameters.\n * @property {string} client.authorization A tokenizationKey or clientToken.\n * @property {object} gatewayConfiguration Gateway-supplied configuration.\n * @property {object} analyticsMetadata Analytics-specific data.\n * @property {string} analyticsMetadata.sessionId Uniquely identifies a browsing session.\n * @property {string} analyticsMetadata.sdkVersion The braintree.js version.\n * @property {string} analyticsMetadata.merchantAppId Identifies the merchant's web app.\n */\n\n/**\n * @class\n * @param {Client~configuration} configuration Options\n * @description Do not use this constructor directly. Use {@link module:braintree-web/client.create|braintree.client.create} instead.\n * @classdesc This class is required by many other Braintree components. It serves as the base API layer that communicates with our servers. It is also capable of being used to formulate direct calls to our servers, such as direct credit card tokenization. See {@link Client#request}.\n */\nfunction Client(configuration) {\n var configurationJSON, gatewayConfiguration;\n\n configuration = configuration || {};\n\n configurationJSON = JSON.stringify(configuration);\n gatewayConfiguration = configuration.gatewayConfiguration;\n\n if (!gatewayConfiguration) {\n throw new BraintreeError(errors.CLIENT_MISSING_GATEWAY_CONFIGURATION);\n }\n\n [\"assetsUrl\", \"clientApiUrl\", \"configUrl\"].forEach(function (property) {\n if (\n property in gatewayConfiguration &&\n !isVerifiedDomain(gatewayConfiguration[property])\n ) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: property + \" property is on an invalid domain.\",\n });\n }\n });\n\n /**\n * Returns a copy of the configuration values.\n * @public\n * @returns {Client~configuration} configuration\n */\n this.getConfiguration = function () {\n return JSON.parse(configurationJSON);\n };\n\n this._request = request;\n this._configuration = this.getConfiguration();\n\n this._clientApiBaseUrl = gatewayConfiguration.clientApiUrl + \"/v1/\";\n\n if (gatewayConfiguration.graphQL) {\n if (!isVerifiedDomain(gatewayConfiguration.graphQL.url)) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: \"graphQL.url property is on an invalid domain.\",\n });\n }\n\n this._graphQL = new GraphQL({\n graphQL: gatewayConfiguration.graphQL,\n });\n }\n}\n\nClient.initialize = function (options) {\n var clientInstance, authData;\n var promise = cachedClients[options.authorization];\n\n if (promise) {\n analytics.sendEvent(promise, \"custom.client.load.cached\");\n\n return promise;\n }\n\n try {\n authData = createAuthorizationData(options.authorization);\n } catch (err) {\n return Promise.reject(\n new BraintreeError(errors.CLIENT_INVALID_AUTHORIZATION)\n );\n }\n\n promise = getGatewayConfiguration(authData, options.sessionId).then(function (\n configuration\n ) {\n if (options.debug) {\n configuration.isDebug = true;\n }\n\n configuration.authorization = options.authorization;\n\n clientInstance = new Client(configuration);\n\n return clientInstance;\n });\n\n cachedClients[options.authorization] = promise;\n\n analytics.sendEvent(promise, \"custom.client.load.initialized\");\n\n return promise\n .then(function (client) {\n analytics.sendEvent(clientInstance, \"custom.client.load.succeeded\");\n\n return client;\n })\n .catch(function (err) {\n delete cachedClients[options.authorization];\n\n return Promise.reject(err);\n });\n};\n\n// Primarily used for testing the client initalization call\nClient.clearCache = function () {\n cachedClients = {};\n};\n\nClient.prototype._findOrCreateFraudnetJSON = function (clientMetadataId) {\n var el = document.querySelector('script[fncls=\"' + FRAUDNET_FNCLS + '\"]');\n var config, additionalData, authorizationFingerprint, parameters;\n\n if (!el) {\n el = document.body.appendChild(document.createElement(\"script\"));\n el.type = \"application/json\";\n el.setAttribute(\"fncls\", FRAUDNET_FNCLS);\n }\n\n config = this.getConfiguration();\n additionalData = {\n rda_tenant: \"bt_card\", // eslint-disable-line camelcase\n mid: config.gatewayConfiguration.merchantId,\n };\n authorizationFingerprint = config.authorizationFingerprint;\n\n if (authorizationFingerprint) {\n authorizationFingerprint.split(\"&\").forEach(function (pieces) {\n var component = pieces.split(\"=\");\n\n if (component[0] === \"customer_id\" && component.length > 1) {\n additionalData.cid = component[1];\n }\n });\n }\n\n parameters = {\n f: clientMetadataId.substr(0, 32),\n fp: additionalData,\n bu: false,\n s: FRAUDNET_SOURCE,\n };\n el.text = JSON.stringify(parameters);\n};\n\n/**\n * Used by other modules to formulate all network requests to the Braintree gateway. It is also capable of being used directly from your own form to tokenize credit card information. However, be sure to satisfy PCI compliance if you use direct card tokenization.\n * @public\n * @param {object} options Request options:\n * @param {string} options.method HTTP method, e.g. \"get\" or \"post\".\n * @param {string} options.endpoint Endpoint path, e.g. \"payment_methods\".\n * @param {object} options.data Data to send with the request.\n * @param {number} [options.timeout=60000] Set a timeout (in milliseconds) for the request.\n * @param {callback} [callback] The second argument, data, is the returned server data.\n * @example\n * Direct Credit Card Tokenization\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-expiration-date'].value,\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @example\n * Tokenizing Fields for AVS Checks\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-date'].value,\n * // The billing address can be checked with AVS rules.\n * // See: https://articles.braintreepayments.com/support/guides/fraud-tools/basic/avs-cvv-rules\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value,\n * streetAddress: form['cc-street-address'].value,\n * countryName: form['cc-country-name'].value,\n * countryCodeAlpha2: form['cc-country-alpha2'].value,\n * countryCodeAlpha3: form['cc-country-alpha3'].value,\n * countryCodeNumeric: form['cc-country-numeric'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.request = function (options, callback) {\n var self = this; // eslint-disable-line no-invalid-this\n var requestPromise = new Promise(function (resolve, reject) {\n var optionName, api, baseUrl, requestOptions;\n var shouldCollectData = Boolean(\n options.endpoint === \"payment_methods/credit_cards\" &&\n self.getConfiguration().gatewayConfiguration.creditCards\n .collectDeviceData\n );\n\n if (options.api !== \"graphQLApi\") {\n if (!options.method) {\n optionName = \"options.method\";\n } else if (!options.endpoint) {\n optionName = \"options.endpoint\";\n }\n }\n\n if (optionName) {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_REQUIRED.type,\n code: errors.CLIENT_OPTION_REQUIRED.code,\n message: optionName + \" is required when making a request.\",\n });\n }\n\n if (\"api\" in options) {\n api = options.api;\n } else {\n api = \"clientApi\";\n }\n\n requestOptions = {\n method: options.method,\n graphQL: self._graphQL,\n timeout: options.timeout,\n metadata: self._configuration.analyticsMetadata,\n };\n\n if (api === \"clientApi\") {\n baseUrl = self._clientApiBaseUrl;\n\n requestOptions.data = metadata.addMetadata(\n self._configuration,\n options.data\n );\n } else if (api === \"graphQLApi\") {\n baseUrl =\n GRAPHQL_URLS[self._configuration.gatewayConfiguration.environment];\n options.endpoint = \"\";\n requestOptions.method = \"post\";\n requestOptions.data = assign(\n {\n clientSdkMetadata: {\n platform: self._configuration.analyticsMetadata.platform,\n source: self._configuration.analyticsMetadata.source,\n integration: self._configuration.analyticsMetadata.integration,\n sessionId: self._configuration.analyticsMetadata.sessionId,\n version: VERSION,\n },\n },\n options.data\n );\n\n requestOptions.headers = getAuthorizationHeadersForGraphQL(\n self._configuration\n );\n } else {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_INVALID.type,\n code: errors.CLIENT_OPTION_INVALID.code,\n message: \"options.api is invalid.\",\n });\n }\n\n requestOptions.url = baseUrl + options.endpoint;\n requestOptions.sendAnalyticsEvent = function (kind) {\n analytics.sendEvent(self, kind);\n };\n\n self._request(requestOptions, function (err, data, status) {\n var resolvedData, requestError;\n\n requestError = formatRequestError(status, err);\n\n if (requestError) {\n reject(requestError);\n\n return;\n }\n\n if (api === \"graphQLApi\" && data.errors) {\n reject(\n convertToBraintreeError(data.errors, {\n type: errors.CLIENT_GRAPHQL_REQUEST_ERROR.type,\n code: errors.CLIENT_GRAPHQL_REQUEST_ERROR.code,\n message: errors.CLIENT_GRAPHQL_REQUEST_ERROR.message,\n })\n );\n\n return;\n }\n\n resolvedData = assign({ _httpStatus: status }, data);\n\n if (\n shouldCollectData &&\n resolvedData.creditCards &&\n resolvedData.creditCards.length > 0\n ) {\n self._findOrCreateFraudnetJSON(resolvedData.creditCards[0].nonce);\n\n assets.loadScript({\n src: FRAUDNET_URL,\n forceScriptReload: true,\n });\n }\n resolve(resolvedData);\n });\n });\n\n if (typeof callback === \"function\") {\n callback = once(deferred(callback));\n\n requestPromise\n .then(function (response) {\n callback(null, response, response._httpStatus);\n })\n .catch(function (err) {\n var status = err && err.details && err.details.httpStatus;\n\n callback(err, null, status);\n });\n\n return;\n }\n\n return requestPromise; // eslint-disable-line consistent-return\n};\n\n// eslint-disable-next-line consistent-return\nfunction formatRequestError(status, err) {\n var requestError;\n\n if (status === -1) {\n requestError = new BraintreeError(errors.CLIENT_REQUEST_TIMEOUT);\n } else if (status === 401) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INVALID);\n } else if (status === 403) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INSUFFICIENT);\n } else if (status === 429) {\n requestError = new BraintreeError(errors.CLIENT_RATE_LIMITED);\n } else if (status >= 500) {\n requestError = new BraintreeError(errors.CLIENT_GATEWAY_NETWORK);\n } else if (status < 200 || status >= 400) {\n requestError = convertToBraintreeError(err, {\n type: errors.CLIENT_REQUEST_ERROR.type,\n code: errors.CLIENT_REQUEST_ERROR.code,\n message: errors.CLIENT_REQUEST_ERROR.message,\n });\n }\n\n if (requestError) {\n requestError.details = requestError.details || {};\n requestError.details.httpStatus = status;\n\n return requestError;\n }\n}\n\nClient.prototype.toJSON = function () {\n return this.getConfiguration();\n};\n\n/**\n * Returns the Client version.\n * @public\n * @returns {String} The created client's version.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * console.log(clientInstance.getVersion()); // Ex: 1.0.0\n * });\n * @returns {void}\n */\nClient.prototype.getVersion = function () {\n return VERSION;\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/client.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * clientInstance.teardown();\n * @example With callback\n * clientInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.teardown = wrapPromise(function () {\n var self = this; // eslint-disable-line no-invalid-this\n\n delete cachedClients[self.getConfiguration().authorization];\n convertMethodsToError(self, methods(Client.prototype));\n\n return Promise.resolve();\n});\n\nfunction getAuthorizationHeadersForGraphQL(configuration) {\n var token =\n configuration.authorizationFingerprint || configuration.authorization;\n\n return {\n Authorization: \"Bearer \" + token,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n}\n\nmodule.exports = Client;\n\n},{\"../lib/add-metadata\":87,\"../lib/analytics\":88,\"../lib/assets\":89,\"../lib/assign\":90,\"../lib/braintree-error\":93,\"../lib/constants\":95,\"../lib/convert-methods-to-error\":96,\"../lib/convert-to-braintree-error\":97,\"../lib/create-authorization-data\":99,\"../lib/deferred\":101,\"../lib/is-verified-domain\":123,\"../lib/methods\":125,\"../lib/once\":126,\"./constants\":52,\"./errors\":53,\"./get-configuration\":54,\"./request\":67,\"./request/graphql\":65,\"@braintree/wrap-promise\":46}],52:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = {\n BRAINTREE_VERSION: \"2018-05-10\",\n};\n\n},{}],53:[function(require,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Client - Internal Error Codes\n * @ignore\n * @description These codes should never be experienced by the merchant directly.\n * @property {MERCHANT} CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN An error to prevent client creation for domains that are not allowed in the JS.\n * @property {INTERNAL} CLIENT_MISSING_GATEWAY_CONFIGURATION Occurs when the client is created without a gateway configuration. Should never happen.\n */\n\n/**\n * @name BraintreeError.Client - Create Error Codes\n * @description Errors that may occur when [creating the client](./module-braintree-web_client.html#.create)\n * @property {MERCHANT} CLIENT_INVALID_AUTHORIZATION Occurs when client token cannot be parsed.\n */\n\n/**\n * @name BraintreeError.Client - Request Error Codes\n * @description Errors that may occur when [using the request method](./Client.html#request)\n * @property {MERCHANT} CLIENT_OPTION_REQUIRED An option required in the request method was not provided. Usually `options.method` or `options.endpoint`\n * @property {MERCHANT} CLIENT_OPTION_INVALID The request option provided is invalid.\n * @property {MERCHANT} CLIENT_GATEWAY_NETWORK The Braintree gateway could not be contacted.\n * @property {NETWORK} CLIENT_REQUEST_TIMEOUT The request took too long to complete and timed out.\n * @property {NETWORK} CLIENT_REQUEST_ERROR The response from a request had status 400 or greater.\n * @property {NETWORK} CLIENT_GRAPHQL_REQUEST_ERROR The response from a request to GraphQL contained an error.\n * @property {MERCHANT} CLIENT_RATE_LIMITED The response from a request had a status of 429, indicating rate limiting.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INSUFFICIENT The user associated with the client token or tokenization key does not have permissions to make the request.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INVALID The provided authorization could not be found. Either the client token has expired and a new client token must be generated or the tokenization key used is set to be inactive or has been deleted.\n */\n\nvar BraintreeError = require(\"../lib/braintree-error\");\n\nmodule.exports = {\n CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN\",\n },\n CLIENT_OPTION_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_REQUIRED\",\n },\n CLIENT_OPTION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_INVALID\",\n },\n CLIENT_MISSING_GATEWAY_CONFIGURATION: {\n type: BraintreeError.types.INTERNAL,\n code: \"CLIENT_MISSING_GATEWAY_CONFIGURATION\",\n message: \"Missing gatewayConfiguration.\",\n },\n CLIENT_INVALID_AUTHORIZATION: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_INVALID_AUTHORIZATION\",\n message:\n \"Authorization is invalid. Make sure your client token or tokenization key is valid.\",\n },\n CLIENT_GATEWAY_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GATEWAY_NETWORK\",\n message: \"Cannot contact the gateway at this time.\",\n },\n CLIENT_REQUEST_TIMEOUT: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_TIMEOUT\",\n message: \"Request timed out waiting for a reply.\",\n },\n CLIENT_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_GRAPHQL_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GRAPHQL_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_RATE_LIMITED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_RATE_LIMITED\",\n message: \"You are being rate-limited; please try again in a few minutes.\",\n },\n CLIENT_AUTHORIZATION_INSUFFICIENT: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INSUFFICIENT\",\n message: \"The authorization used has insufficient privileges.\",\n },\n CLIENT_AUTHORIZATION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INVALID\",\n message:\n \"Either the client token has expired and a new one should be generated or the tokenization key has been deactivated or deleted.\",\n },\n};\n\n},{\"../lib/braintree-error\":93}],54:[function(require,module,exports){\n\"use strict\";\n\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar request = require(\"./request\");\nvar uuid = require(\"@braintree/uuid\");\nvar constants = require(\"../lib/constants\");\nvar errors = require(\"./errors\");\nvar GraphQL = require(\"./request/graphql\");\nvar GRAPHQL_URLS = require(\"../lib/constants\").GRAPHQL_URLS;\nvar isDateStringBeforeOrOn = require(\"../lib/is-date-string-before-or-on\");\n\nvar BRAINTREE_VERSION = require(\"./constants\").BRAINTREE_VERSION;\n\nfunction getConfiguration(authData, inputSessionId) {\n return new Promise(function (resolve, reject) {\n var configuration, attrs, configUrl, reqOptions;\n var sessionId = inputSessionId || uuid();\n var analyticsMetadata = {\n merchantAppId: window.location.host,\n platform: constants.PLATFORM,\n sdkVersion: constants.VERSION,\n source: constants.SOURCE,\n // NEXT_MAJOR_VERSION remove one of these to not duplicate data. Target parity with mobile platforms approach.\n integration: constants.INTEGRATION,\n integrationType: constants.INTEGRATION,\n sessionId: sessionId,\n };\n\n attrs = authData.attrs;\n configUrl = authData.configUrl;\n\n attrs._meta = analyticsMetadata;\n attrs.braintreeLibraryVersion = constants.BRAINTREE_LIBRARY_VERSION;\n attrs.configVersion = \"3\";\n\n reqOptions = {\n url: configUrl,\n method: \"GET\",\n data: attrs,\n };\n\n if (attrs.authorizationFingerprint && authData.graphQL) {\n if (isDateStringBeforeOrOn(authData.graphQL.date, BRAINTREE_VERSION)) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: authData.graphQL.url,\n features: [\"configuration\"],\n },\n });\n }\n\n reqOptions.metadata = analyticsMetadata;\n } else if (attrs.tokenizationKey) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: GRAPHQL_URLS[authData.environment],\n features: [\"configuration\"],\n },\n });\n\n reqOptions.metadata = analyticsMetadata;\n }\n\n // NEXT_MAJOR_VERSION\n // there are various issues with the config endpoint where the values returned\n // do not match the values from the merchant account id passed into a client token\n // we need to update the configuration request endpoint to be able to pass the\n // correct values. The following ones are incorrect\n // * applePayWeb - definitely supportedNetworks, which compiles all the card\n // networks from all the merchant accounts instead of providing just the\n // ones from the specified one. The same is probably true for ios apple pay\n // Also the merchantidentifier\n // NEXT_MAJOR_VERSION Allow passing in merchant account id when creating the component\n // to fetch the config for that merchant account id (particularly helpful when using\n // a tokenization key for authorization)\n request(reqOptions, function (err, response, status) {\n var errorTemplate;\n\n if (err) {\n if (status === 403) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INSUFFICIENT;\n } else if (status === 401) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INVALID;\n } else {\n errorTemplate = errors.CLIENT_GATEWAY_NETWORK;\n }\n\n reject(\n new BraintreeError({\n type: errorTemplate.type,\n code: errorTemplate.code,\n message: errorTemplate.message,\n details: {\n originalError: err,\n },\n })\n );\n\n return;\n }\n\n configuration = {\n authorizationType: attrs.tokenizationKey\n ? \"TOKENIZATION_KEY\"\n : \"CLIENT_TOKEN\",\n authorizationFingerprint: attrs.authorizationFingerprint,\n analyticsMetadata: analyticsMetadata,\n gatewayConfiguration: response,\n };\n\n resolve(configuration);\n });\n });\n}\n\nmodule.exports = {\n getConfiguration: wrapPromise(getConfiguration),\n};\n\n},{\"../lib/braintree-error\":93,\"../lib/constants\":95,\"../lib/is-date-string-before-or-on\":120,\"./constants\":52,\"./errors\":53,\"./request\":67,\"./request/graphql\":65,\"@braintree/uuid\":42,\"@braintree/wrap-promise\":46}],55:[function(require,module,exports){\n\"use strict\";\n\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar Client = require(\"./client\");\nvar VERSION = \"3.115.1\";\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar sharedErrors = require(\"../lib/errors\");\n\n/** @module braintree-web/client */\n\n/**\n * @function create\n * @description This function is the entry point for the braintree.client module. It is used for creating {@link Client} instances that service communication to Braintree servers.\n * @param {object} options Object containing all {@link Client} options:\n * @param {string} options.authorization A tokenizationKey or clientToken.\n * @param {callback} [callback] The second argument, data, is the {@link Client} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * if (createErr) {\n * if (createErr.code === 'CLIENT_AUTHORIZATION_INVALID') {\n * // either the client token has expired, and a new one should be generated\n * // or the tokenization key was deactivated or deleted\n * } else {\n * console.log('something went wrong creating the client instance', createErr);\n * }\n * return;\n * }\n *\n * // set up other components\n * });\n * @static\n */\nfunction create(options) {\n if (!options.authorization) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message:\n \"options.authorization is required when instantiating a client.\",\n })\n );\n }\n\n return Client.initialize(options);\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `1.44.1`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/braintree-error\":93,\"../lib/errors\":104,\"./client\":51,\"@braintree/wrap-promise\":46}],56:[function(require,module,exports){\n\"use strict\";\n\nvar querystring = require(\"../../lib/querystring\");\nvar assign = require(\"../../lib/assign\").assign;\nvar prepBody = require(\"./prep-body\");\nvar parseBody = require(\"./parse-body\");\nvar xhr = require(\"./xhr\");\nvar isXHRAvailable = xhr.isAvailable;\nvar GraphQLRequest = require(\"./graphql/request\");\nvar DefaultRequest = require(\"./default-request\");\n\nvar MAX_TCP_RETRYCOUNT = 1;\nvar TCP_PRECONNECT_BUG_STATUS_CODE = 408;\n\nfunction requestShouldRetry(status) {\n return !status || status === TCP_PRECONNECT_BUG_STATUS_CODE;\n}\n\nfunction graphQLRequestShouldRetryWithClientApi(body) {\n var errorClass =\n !body.data &&\n body.errors &&\n body.errors[0] &&\n body.errors[0].extensions &&\n body.errors[0].extensions.errorClass;\n\n return errorClass === \"UNKNOWN\" || errorClass === \"INTERNAL\";\n}\n\nfunction _requestWithRetry(options, tcpRetryCount, cb) {\n var status, resBody, ajaxRequest, body, method, headers, parsedBody;\n var url = options.url;\n var graphQL = options.graphQL;\n var timeout = options.timeout;\n var req = xhr.getRequestObject();\n var callback = cb;\n var isGraphQLRequest = Boolean(\n graphQL && graphQL.isGraphQLRequest(url, options.data)\n );\n\n options.headers = assign(\n { \"Content-Type\": \"application/json\" },\n options.headers\n );\n\n if (isGraphQLRequest) {\n ajaxRequest = new GraphQLRequest(options);\n } else {\n ajaxRequest = new DefaultRequest(options);\n }\n\n url = ajaxRequest.getUrl();\n body = ajaxRequest.getBody();\n method = ajaxRequest.getMethod();\n headers = ajaxRequest.getHeaders();\n\n if (method === \"GET\") {\n url = querystring.queryify(url, body);\n body = null;\n }\n\n if (isXHRAvailable) {\n req.onreadystatechange = function () {\n if (req.readyState !== 4) {\n return;\n }\n\n if (req.status === 0 && isGraphQLRequest) {\n // If a merchant experiences a connection\n // issue to the GraphQL endpoint (possibly\n // due to a Content Security Policy), retry\n // the request against the old client API.\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n parsedBody = parseBody(req.responseText);\n resBody = ajaxRequest.adaptResponseBody(parsedBody);\n status = ajaxRequest.determineStatus(req.status, parsedBody);\n\n if (status >= 400 || status < 200) {\n if (\n isGraphQLRequest &&\n graphQLRequestShouldRetryWithClientApi(parsedBody)\n ) {\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n if (tcpRetryCount < MAX_TCP_RETRYCOUNT && requestShouldRetry(status)) {\n tcpRetryCount++;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n callback(resBody || \"error\", null, status || 500);\n } else {\n callback(null, resBody, status);\n }\n };\n } else {\n if (options.headers) {\n url = querystring.queryify(url, headers);\n }\n\n req.onload = function () {\n callback(null, parseBody(req.responseText), req.status);\n };\n\n req.onerror = function () {\n // XDomainRequest does not report a body or status for errors, so\n // hardcode to 'error' and 500, respectively\n callback(\"error\", null, 500);\n };\n\n // This must remain for IE9 to work\n req.onprogress = function () {};\n\n req.ontimeout = function () {\n callback(\"timeout\", null, -1);\n };\n }\n\n try {\n req.open(method, url, true);\n } catch (requestOpenError) {\n // If a merchant has a Content Security Policy and they have\n // not allowed our endpoints, some browsers may\n // synchronously throw an error. If it is not a GraphQL\n // request, we throw the error. If it is a GraphQL request\n // we remove the GraphQL option and try the request against\n // the old client API.\n if (!isGraphQLRequest) {\n throw requestOpenError;\n }\n\n delete options.graphQL;\n\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n req.timeout = timeout;\n\n if (isXHRAvailable) {\n Object.keys(headers).forEach(function (headerKey) {\n req.setRequestHeader(headerKey, headers[headerKey]);\n });\n }\n\n try {\n req.send(prepBody(method, body));\n } catch (e) {\n /* ignored */\n }\n}\n\nfunction request(options, cb) {\n _requestWithRetry(options, 0, cb);\n}\n\nmodule.exports = {\n request: request,\n};\n\n},{\"../../lib/assign\":90,\"../../lib/querystring\":127,\"./default-request\":57,\"./graphql/request\":66,\"./parse-body\":68,\"./prep-body\":69,\"./xhr\":70}],57:[function(require,module,exports){\n\"use strict\";\n\nfunction DefaultRequest(options) {\n this._url = options.url;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n}\n\nDefaultRequest.prototype.getUrl = function () {\n return this._url;\n};\n\nDefaultRequest.prototype.getBody = function () {\n return this._data;\n};\n\nDefaultRequest.prototype.getMethod = function () {\n return this._method;\n};\n\nDefaultRequest.prototype.getHeaders = function () {\n return this._headers;\n};\n\nDefaultRequest.prototype.adaptResponseBody = function (parsedBody) {\n return parsedBody;\n};\n\nDefaultRequest.prototype.determineStatus = function (status) {\n return status;\n};\n\nmodule.exports = DefaultRequest;\n\n},{}],58:[function(require,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = require(\"./error\");\nvar assign = require(\"../../../../lib/assign\").assign;\n\n/* eslint-disable camelcase */\nvar cardTypeTransforms = {\n creditCard: {\n AMERICAN_EXPRESS: \"American Express\",\n DISCOVER: \"Discover\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n SOLO: \"Solo\",\n UK_MAESTRO: \"UK Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n },\n applePayWeb: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n visaCheckout: {\n VISA: \"Visa\",\n MASTERCARD: \"MasterCard\",\n DISCOVER: \"Discover\",\n AMERICAN_EXPRESS: \"American Express\",\n },\n googlePay: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n masterpass: {\n VISA: \"visa\",\n MASTERCARD: \"master\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n DINERS: \"diners\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n JCB: \"jcb\",\n },\n};\n/* eslint-enable camelcase */\n\nfunction configurationResponseAdapter(responseBody, ctx) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptConfigurationResponseBody(responseBody, ctx);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptConfigurationResponseBody(body, ctx) {\n var configuration = body.data.clientConfiguration;\n var response;\n\n response = {\n environment: configuration.environment.toLowerCase(),\n clientApiUrl: configuration.clientApiUrl,\n assetsUrl: configuration.assetsUrl,\n analytics: {\n url: configuration.analyticsUrl,\n },\n merchantId: configuration.merchantId,\n venmo: \"off\",\n };\n\n if (configuration.supportedFeatures) {\n response.graphQL = {\n url: ctx._graphQL._config.url,\n features: configuration.supportedFeatures.map(function (feature) {\n return feature.toLowerCase();\n }),\n };\n }\n\n if (configuration.braintreeApi) {\n response.braintreeApi = configuration.braintreeApi;\n }\n\n if (configuration.applePayWeb) {\n response.applePayWeb = configuration.applePayWeb;\n response.applePayWeb.supportedNetworks = mapCardTypes(\n configuration.applePayWeb.supportedCardBrands,\n cardTypeTransforms.applePayWeb\n );\n\n delete response.applePayWeb.supportedCardBrands;\n }\n\n if (configuration.fastlane) {\n response.fastlane = configuration.fastlane;\n }\n\n if (configuration.ideal) {\n response.ideal = configuration.ideal;\n }\n\n if (configuration.creditCard) {\n response.challenges = configuration.creditCard.challenges.map(function (\n challenge\n ) {\n return challenge.toLowerCase();\n });\n\n response.creditCards = {\n supportedCardTypes: mapCardTypes(\n configuration.creditCard.supportedCardBrands,\n cardTypeTransforms.creditCard\n ),\n };\n response.threeDSecureEnabled = configuration.creditCard.threeDSecureEnabled;\n response.threeDSecure = configuration.creditCard.threeDSecure;\n } else {\n response.challenges = [];\n response.creditCards = {\n supportedCardTypes: [],\n };\n response.threeDSecureEnabled = false;\n }\n\n if (configuration.googlePay) {\n response.androidPay = {\n displayName: configuration.googlePay.displayName,\n enabled: true,\n environment: configuration.googlePay.environment.toLowerCase(),\n googleAuthorizationFingerprint:\n configuration.googlePay.googleAuthorization,\n paypalClientId: configuration.googlePay.paypalClientId,\n supportedNetworks: mapCardTypes(\n configuration.googlePay.supportedCardBrands,\n cardTypeTransforms.googlePay\n ),\n };\n }\n\n if (configuration.venmo) {\n response.payWithVenmo = {\n merchantId: configuration.venmo.merchantId,\n accessToken: configuration.venmo.accessToken,\n environment: configuration.venmo.environment.toLowerCase(),\n enrichedCustomerDataEnabled:\n configuration.venmo.enrichedCustomerDataEnabled,\n };\n }\n\n if (configuration.paypal) {\n response.paypalEnabled = true;\n response.paypal = assign({}, configuration.paypal);\n response.paypal.currencyIsoCode = response.paypal.currencyCode;\n response.paypal.environment = response.paypal.environment.toLowerCase();\n\n delete response.paypal.currencyCode;\n } else {\n response.paypalEnabled = false;\n }\n\n if (configuration.unionPay) {\n response.unionPay = {\n enabled: true,\n merchantAccountId: configuration.unionPay.merchantAccountId,\n };\n }\n\n if (configuration.visaCheckout) {\n response.visaCheckout = {\n apikey: configuration.visaCheckout.apiKey,\n encryptionKey: configuration.visaCheckout.encryptionKey,\n externalClientId: configuration.visaCheckout.externalClientId,\n supportedCardTypes: mapCardTypes(\n configuration.visaCheckout.supportedCardBrands,\n cardTypeTransforms.visaCheckout\n ),\n };\n }\n\n if (configuration.masterpass) {\n response.masterpass = {\n merchantCheckoutId: configuration.masterpass.merchantCheckoutId,\n supportedNetworks: mapCardTypes(\n configuration.masterpass.supportedCardBrands,\n cardTypeTransforms.masterpass\n ),\n };\n }\n\n if (configuration.usBankAccount) {\n response.usBankAccount = {\n routeId: configuration.usBankAccount.routeId,\n plaid: {\n publicKey: configuration.usBankAccount.plaidPublicKey,\n },\n };\n }\n\n return response;\n}\n\nfunction mapCardTypes(cardTypes, cardTypeTransformMap) {\n return cardTypes.reduce(function (acc, type) {\n if (cardTypeTransformMap.hasOwnProperty(type)) {\n return acc.concat(cardTypeTransformMap[type]);\n }\n\n return acc;\n }, []);\n}\n\nmodule.exports = configurationResponseAdapter;\n\n},{\"../../../../lib/assign\":90,\"./error\":61}],59:[function(require,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = require(\"./error\");\n\nvar CARD_BRAND_MAP = {\n /* eslint-disable camelcase */\n AMERICAN_EXPRESS: \"American Express\",\n DINERS: \"Discover\",\n DISCOVER: \"Discover\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n UK_MAESTRO: \"Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n /* eslint-enable camelcase */\n};\n\nvar BIN_DATA_MAP = {\n YES: \"Yes\",\n NO: \"No\",\n UNKNOWN: \"Unknown\",\n};\n\nvar AUTHENTICATION_INSIGHT_MAP = {\n PSDTWO: \"psd2\",\n};\n\nfunction creditCardTokenizationFastlaneResponseAdapter(responseBody) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse =\n adaptTokenizeCreditCardForFastlaneResponseBody(responseBody);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptTokenizeCreditCardForFastlaneResponseBody(body) {\n var data = body.data.tokenizeCreditCardForPayPalConnect;\n var creditCard = data.paymentMethod.details;\n var lastTwo = creditCard.last4 ? creditCard.last4.substr(2, 4) : \"\";\n var binData = creditCard.binData;\n var response, regulationEnvironment;\n\n if (binData) {\n [\n \"commercial\",\n \"debit\",\n \"durbinRegulated\",\n \"healthcare\",\n \"payroll\",\n \"prepaid\",\n ].forEach(function (key) {\n if (binData[key]) {\n binData[key] = BIN_DATA_MAP[binData[key]];\n } else {\n binData[key] = \"Unknown\";\n }\n });\n\n [\"issuingBank\", \"countryOfIssuance\", \"productId\"].forEach(function (key) {\n if (!binData[key]) {\n binData[key] = \"Unknown\";\n }\n });\n }\n\n response = {\n creditCards: [\n {\n binData: binData,\n consumed: false,\n description: lastTwo ? \"ending in \" + lastTwo : \"\",\n nonce: data.paymentMethod.id,\n details: {\n cardholderName: creditCard.cardholderName,\n expirationMonth: creditCard.expirationMonth,\n expirationYear: creditCard.expirationYear,\n bin: creditCard.bin || \"\",\n cardType: CARD_BRAND_MAP[creditCard.brandCode] || \"Unknown\",\n lastFour: creditCard.last4 || \"\",\n lastTwo: lastTwo,\n },\n type: \"CreditCard\",\n threeDSecureInfo: null,\n },\n ],\n };\n\n if (data.authenticationInsight) {\n regulationEnvironment =\n data.authenticationInsight.customerAuthenticationRegulationEnvironment;\n response.creditCards[0].authenticationInsight = {\n regulationEnvironment:\n AUTHENTICATION_INSIGHT_MAP[regulationEnvironment] ||\n regulationEnvironment.toLowerCase(),\n };\n }\n\n return response;\n}\n\nmodule.exports = creditCardTokenizationFastlaneResponseAdapter;\n\n},{\"./error\":61}],60:[function(require,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = require(\"./error\");\n\nvar CARD_BRAND_MAP = {\n /* eslint-disable camelcase */\n AMERICAN_EXPRESS: \"American Express\",\n DINERS: \"Discover\",\n DISCOVER: \"Discover\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n UK_MAESTRO: \"Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n /* eslint-enable camelcase */\n};\n\nvar BIN_DATA_MAP = {\n YES: \"Yes\",\n NO: \"No\",\n UNKNOWN: \"Unknown\",\n};\n\nvar AUTHENTICATION_INSIGHT_MAP = {\n PSDTWO: \"psd2\",\n};\n\nfunction creditCardTokenizationResponseAdapter(responseBody) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptTokenizeCreditCardResponseBody(responseBody);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptTokenizeCreditCardResponseBody(body) {\n var data = body.data.tokenizeCreditCard;\n var creditCard = data.creditCard;\n var lastTwo = creditCard.last4 ? creditCard.last4.substr(2, 4) : \"\";\n var binData = creditCard.binData;\n var response, regulationEnvironment;\n\n if (binData) {\n [\n \"commercial\",\n \"debit\",\n \"durbinRegulated\",\n \"healthcare\",\n \"payroll\",\n \"prepaid\",\n ].forEach(function (key) {\n if (binData[key]) {\n binData[key] = BIN_DATA_MAP[binData[key]];\n } else {\n binData[key] = \"Unknown\";\n }\n });\n\n [\"issuingBank\", \"countryOfIssuance\", \"productId\"].forEach(function (key) {\n if (!binData[key]) {\n binData[key] = \"Unknown\";\n }\n });\n }\n\n response = {\n creditCards: [\n {\n binData: binData,\n consumed: false,\n description: lastTwo ? \"ending in \" + lastTwo : \"\",\n nonce: data.token,\n details: {\n cardholderName: creditCard.cardholderName,\n expirationMonth: creditCard.expirationMonth,\n expirationYear: creditCard.expirationYear,\n bin: creditCard.bin || \"\",\n cardType: CARD_BRAND_MAP[creditCard.brandCode] || \"Unknown\",\n lastFour: creditCard.last4 || \"\",\n lastTwo: lastTwo,\n },\n type: \"CreditCard\",\n threeDSecureInfo: null,\n },\n ],\n };\n\n if (data.authenticationInsight) {\n regulationEnvironment =\n data.authenticationInsight.customerAuthenticationRegulationEnvironment;\n response.creditCards[0].authenticationInsight = {\n regulationEnvironment:\n AUTHENTICATION_INSIGHT_MAP[regulationEnvironment] ||\n regulationEnvironment.toLowerCase(),\n };\n }\n\n return response;\n}\n\nmodule.exports = creditCardTokenizationResponseAdapter;\n\n},{\"./error\":61}],61:[function(require,module,exports){\n\"use strict\";\n\nfunction errorResponseAdapter(responseBody) {\n var response;\n var errorClass =\n responseBody.errors &&\n responseBody.errors[0] &&\n responseBody.errors[0].extensions &&\n responseBody.errors[0].extensions.errorClass;\n\n if (errorClass === \"VALIDATION\") {\n response = userErrorResponseAdapter(responseBody);\n } else if (errorClass) {\n response = errorWithClassResponseAdapter(responseBody);\n } else {\n response = {\n error: { message: \"There was a problem serving your request\" },\n fieldErrors: [],\n };\n }\n\n return response;\n}\n\nfunction errorWithClassResponseAdapter(responseBody) {\n return {\n error: { message: responseBody.errors[0].message },\n fieldErrors: [],\n };\n}\n\nfunction userErrorResponseAdapter(responseBody) {\n var fieldErrors = buildFieldErrors(responseBody.errors);\n\n if (fieldErrors.length === 0) {\n return { error: { message: responseBody.errors[0].message } };\n }\n\n return {\n error: { message: getLegacyMessage(fieldErrors) },\n fieldErrors: fieldErrors,\n };\n}\n\nfunction buildFieldErrors(errors) {\n var fieldErrors = [];\n\n errors.forEach(function (error) {\n if (!(error.extensions && error.extensions.inputPath)) {\n return;\n }\n addFieldError(error.extensions.inputPath.slice(1), error, fieldErrors);\n });\n\n return fieldErrors;\n}\n\nfunction addFieldError(inputPath, errorDetail, fieldErrors) {\n var fieldError;\n var legacyCode = errorDetail.extensions.legacyCode;\n var inputField = inputPath[0];\n\n if (inputPath.length === 1) {\n fieldErrors.push({\n code: legacyCode,\n field: inputField,\n message: errorDetail.message,\n });\n\n return;\n }\n\n fieldErrors.forEach(function (candidate) {\n if (candidate.field === inputField) {\n fieldError = candidate;\n }\n });\n\n if (!fieldError) {\n fieldError = { field: inputField, fieldErrors: [] };\n fieldErrors.push(fieldError);\n }\n\n addFieldError(inputPath.slice(1), errorDetail, fieldError.fieldErrors);\n}\n\nfunction getLegacyMessage(errors) {\n var legacyMessages = {\n creditCard: \"Credit card is invalid\",\n };\n\n var field = errors[0].field;\n\n return legacyMessages[field];\n}\n\nmodule.exports = errorResponseAdapter;\n\n},{}],62:[function(require,module,exports){\n\"use strict\";\n\nvar CONFIGURATION_QUERY =\n \"query ClientConfiguration { \" +\n \" clientConfiguration { \" +\n \" analyticsUrl \" +\n \" environment \" +\n \" merchantId \" +\n \" assetsUrl \" +\n \" clientApiUrl \" +\n \" creditCard { \" +\n \" supportedCardBrands \" +\n \" challenges \" +\n \" threeDSecureEnabled \" +\n \" threeDSecure { \" +\n \" cardinalAuthenticationJWT \" +\n \" } \" +\n \" } \" +\n \" applePayWeb { \" +\n \" countryCode \" +\n \" currencyCode \" +\n \" merchantIdentifier \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" fastlane { \" +\n \" enabled \" +\n \" } \" +\n \" googlePay { \" +\n \" displayName \" +\n \" supportedCardBrands \" +\n \" environment \" +\n \" googleAuthorization \" +\n \" paypalClientId \" +\n \" } \" +\n \" ideal { \" +\n \" routeId \" +\n \" assetsUrl \" +\n \" } \" +\n \" masterpass { \" +\n \" merchantCheckoutId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" paypal { \" +\n \" displayName \" +\n \" clientId \" +\n \" assetsUrl \" +\n \" environment \" +\n \" environmentNoNetwork \" +\n \" unvettedMerchant \" +\n \" braintreeClientId \" +\n \" billingAgreementsEnabled \" +\n \" merchantAccountId \" +\n \" currencyCode \" +\n \" payeeEmail \" +\n \" } \" +\n \" unionPay { \" +\n \" merchantAccountId \" +\n \" } \" +\n \" usBankAccount { \" +\n \" routeId \" +\n \" plaidPublicKey \" +\n \" } \" +\n \" venmo { \" +\n \" merchantId \" +\n \" accessToken \" +\n \" environment \" +\n \" enrichedCustomerDataEnabled\" +\n \" } \" +\n \" visaCheckout { \" +\n \" apiKey \" +\n \" externalClientId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" braintreeApi { \" +\n \" accessToken \" +\n \" url \" +\n \" } \" +\n \" supportedFeatures \" +\n \" } \" +\n \"}\";\n\nfunction configuration() {\n return {\n query: CONFIGURATION_QUERY,\n operationName: \"ClientConfiguration\",\n };\n}\n\nmodule.exports = configuration;\n\n},{}],63:[function(require,module,exports){\n\"use strict\";\n\nvar assign = require(\"../../../../lib/assign\").assign;\n\nfunction createMutation(config) {\n var hasAuthenticationInsight = config.hasAuthenticationInsight;\n var mutation =\n \"mutation TokenizeCreditCardForPayPalConnect($input: TokenizeCreditCardForPayPalConnectInput!\";\n\n if (hasAuthenticationInsight) {\n mutation += \", $authenticationInsightInput: AuthenticationInsightInput!\";\n }\n\n mutation +=\n \") { \" +\n \" tokenizeCreditCardForPayPalConnect(input: $input) { \" +\n \" clientMutationId \" +\n \" paymentMethod { \" +\n \" id \" +\n \" details { \" +\n \" ... on CreditCardDetails { \" +\n \" bin \" +\n \" brandCode \" +\n \" last4 \" +\n \" cardholderName \" +\n \" expirationMonth\" +\n \" expirationYear\" +\n \" binData { \" +\n \" prepaid \" +\n \" healthcare \" +\n \" debit \" +\n \" durbinRegulated \" +\n \" commercial \" +\n \" payroll \" +\n \" issuingBank \" +\n \" countryOfIssuance \" +\n \" productId \" +\n \" } \" +\n \" } \" +\n \" } \" +\n \" }\";\n\n if (hasAuthenticationInsight) {\n mutation +=\n \" authenticationInsight(input: $authenticationInsightInput) {\" +\n \" customerAuthenticationRegulationEnvironment\" +\n \" }\";\n }\n\n mutation += \" } }\";\n\n return mutation;\n}\n\nfunction createCreditCardForFastlaneTokenizationBody(body, options) {\n var creditCard = body.creditCard;\n var fastlane = creditCard.fastlane || {};\n var termsAndConditionsVersion =\n \"fastlane\" in creditCard &&\n \"termsAndConditionsVersion\" in creditCard.fastlane &&\n creditCard.fastlane.termsAndConditionsVersion;\n var email = creditCard.email;\n var optIn = \"hasBuyerConsent\" in fastlane && fastlane.hasBuyerConsent;\n var shippingAddress = creditCard.shippingAddress;\n var variables = createCreditCardTokenizationBody(body, options);\n\n var ccpcVariables = assign({}, variables.input, {\n email: email,\n optIn: optIn,\n phone: creditCard.phone,\n termsAndConditionsVersion: termsAndConditionsVersion,\n });\n\n if (\"authAssertion\" in fastlane) {\n ccpcVariables.authAssertion = fastlane.authAssertion;\n }\n\n if (shippingAddress) {\n ccpcVariables.shippingAddress = shippingAddress;\n }\n\n return { input: ccpcVariables };\n}\n\nfunction createCreditCardTokenizationBody(body, options) {\n var cc = body.creditCard;\n var billingAddress = cc && cc.billingAddress;\n var expDate = cc && cc.expirationDate;\n var expirationMonth =\n cc && (cc.expirationMonth || (expDate && expDate.split(\"/\")[0].trim()));\n var expirationYear =\n cc && (cc.expirationYear || (expDate && expDate.split(\"/\")[1].trim()));\n var variables = {\n input: {\n creditCard: {\n number: cc && cc.number,\n expirationMonth: expirationMonth,\n expirationYear: expirationYear,\n cvv: cc && cc.cvv,\n cardholderName: cc && cc.cardholderName,\n },\n\n options: {},\n },\n };\n\n if (options.hasAuthenticationInsight) {\n variables.authenticationInsightInput = {\n merchantAccountId: body.merchantAccountId,\n };\n }\n\n if (billingAddress) {\n variables.input.creditCard.billingAddress = billingAddress;\n }\n\n variables.input = addValidationRule(body, variables.input);\n\n return variables;\n}\n\nfunction addValidationRule(body, input) {\n var validate;\n\n if (\n body.creditCard &&\n body.creditCard.options &&\n typeof body.creditCard.options.validate === \"boolean\"\n ) {\n validate = body.creditCard.options.validate;\n } else if (\n (body.authorizationFingerprint && body.tokenizationKey) ||\n body.authorizationFingerprint\n ) {\n validate = true;\n } else if (body.tokenizationKey) {\n validate = false;\n }\n\n if (typeof validate === \"boolean\") {\n input.options = assign(\n {\n validate: validate,\n },\n input.options\n );\n }\n\n return input;\n}\n\nfunction creditCardForFastlaneTokenization(body) {\n var options = {\n hasAuthenticationInsight: Boolean(\n body.authenticationInsight && body.merchantAccountId\n ),\n };\n\n return {\n query: createMutation(options),\n variables: createCreditCardForFastlaneTokenizationBody(body, options),\n operationName: \"TokenizeCreditCardForPayPalConnect\",\n };\n}\n\nmodule.exports = creditCardForFastlaneTokenization;\n\n},{\"../../../../lib/assign\":90}],64:[function(require,module,exports){\n\"use strict\";\n\nvar assign = require(\"../../../../lib/assign\").assign;\n\nfunction createMutation(config) {\n var hasAuthenticationInsight = config.hasAuthenticationInsight;\n var mutation = \"mutation TokenizeCreditCard($input: TokenizeCreditCardInput!\";\n\n if (hasAuthenticationInsight) {\n mutation += \", $authenticationInsightInput: AuthenticationInsightInput!\";\n }\n\n mutation +=\n \") { \" +\n \" tokenizeCreditCard(input: $input) { \" +\n \" token \" +\n \" creditCard { \" +\n \" bin \" +\n \" brandCode \" +\n \" last4 \" +\n \" cardholderName \" +\n \" expirationMonth\" +\n \" expirationYear\" +\n \" binData { \" +\n \" prepaid \" +\n \" healthcare \" +\n \" debit \" +\n \" durbinRegulated \" +\n \" commercial \" +\n \" payroll \" +\n \" issuingBank \" +\n \" countryOfIssuance \" +\n \" productId \" +\n \" } \" +\n \" } \";\n\n if (hasAuthenticationInsight) {\n mutation +=\n \" authenticationInsight(input: $authenticationInsightInput) {\" +\n \" customerAuthenticationRegulationEnvironment\" +\n \" }\";\n }\n\n mutation += \" } }\";\n\n return mutation;\n}\n\nfunction createCreditCardTokenizationBody(body, options) {\n var cc = body.creditCard;\n var billingAddress = cc && cc.billingAddress;\n var expDate = cc && cc.expirationDate;\n var expirationMonth =\n cc && (cc.expirationMonth || (expDate && expDate.split(\"/\")[0].trim()));\n var expirationYear =\n cc && (cc.expirationYear || (expDate && expDate.split(\"/\")[1].trim()));\n var variables = {\n input: {\n creditCard: {\n number: cc && cc.number,\n expirationMonth: expirationMonth,\n expirationYear: expirationYear,\n cvv: cc && cc.cvv,\n cardholderName: cc && cc.cardholderName,\n },\n options: {},\n },\n };\n\n if (options.hasAuthenticationInsight) {\n variables.authenticationInsightInput = {\n merchantAccountId: body.merchantAccountId,\n };\n }\n\n if (billingAddress) {\n variables.input.creditCard.billingAddress = billingAddress;\n }\n\n variables.input = addValidationRule(body, variables.input);\n\n return variables;\n}\n\nfunction addValidationRule(body, input) {\n var validate;\n\n if (\n body.creditCard &&\n body.creditCard.options &&\n typeof body.creditCard.options.validate === \"boolean\"\n ) {\n validate = body.creditCard.options.validate;\n } else if (\n (body.authorizationFingerprint && body.tokenizationKey) ||\n body.authorizationFingerprint\n ) {\n validate = true;\n } else if (body.tokenizationKey) {\n validate = false;\n }\n\n if (typeof validate === \"boolean\") {\n input.options = assign(\n {\n validate: validate,\n },\n input.options\n );\n }\n\n return input;\n}\n\nfunction creditCardTokenization(body) {\n var options = {\n hasAuthenticationInsight: Boolean(\n body.authenticationInsight && body.merchantAccountId\n ),\n };\n\n return {\n query: createMutation(options),\n variables: createCreditCardTokenizationBody(body, options),\n operationName: \"TokenizeCreditCard\",\n };\n}\n\nmodule.exports = creditCardTokenization;\n\n},{\"../../../../lib/assign\":90}],65:[function(require,module,exports){\n\"use strict\";\n\nvar features = {\n tokenize_credit_cards: \"payment_methods/credit_cards\", // eslint-disable-line camelcase\n configuration: \"configuration\",\n};\n\nvar disallowedInputPaths = [\"creditCard.options.unionPayEnrollment\"];\n\nfunction GraphQL(config) {\n this._config = config.graphQL;\n}\n\nGraphQL.prototype.getGraphQLEndpoint = function () {\n return this._config.url;\n};\n\nGraphQL.prototype.isGraphQLRequest = function (url, body) {\n var featureEnabled;\n var path = this.getClientApiPath(url);\n\n if (!this._isGraphQLEnabled() || !path) {\n return false;\n }\n\n featureEnabled = this._config.features.some(function (feature) {\n return features[feature] === path;\n });\n\n if (containsDisallowedlistedKeys(body)) {\n return false;\n }\n\n return featureEnabled;\n};\n\nGraphQL.prototype.getClientApiPath = function (url) {\n var path;\n var clientApiPrefix = \"/client_api/v1/\";\n var pathParts = url.split(clientApiPrefix);\n\n if (pathParts.length > 1) {\n path = pathParts[1].split(\"?\")[0];\n }\n\n return path;\n};\n\nGraphQL.prototype._isGraphQLEnabled = function () {\n return Boolean(this._config);\n};\n\nfunction containsDisallowedlistedKeys(body) {\n return disallowedInputPaths.some(function (keys) {\n var value = keys.split(\".\").reduce(function (accumulator, key) {\n return accumulator && accumulator[key];\n }, body);\n\n return value !== undefined; // eslint-disable-line no-undefined\n });\n}\n\nmodule.exports = GraphQL;\n\n},{}],66:[function(require,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = require(\"../../constants\").BRAINTREE_VERSION;\n\nvar assign = require(\"../../../lib/assign\").assign;\nvar snakeCaseToCamelCase = require(\"../../../lib/snake-case-to-camel-case\");\nvar isFastlaneCheckout = require(\"../../../lib/is-fastlane-checkout\");\n\nvar creditCardTokenizationBodyGenerator = require(\"./generators/credit-card-tokenization\");\nvar creditCardTokenizationResponseAdapter = require(\"./adapters/credit-card-tokenization\");\nvar creditCardTokenizationFastlaneResponseAdapter = require(\"./adapters/credit-card-tokenization-fastlane\");\nvar creditCardForFastlaneTokenizationBodyGenerator = require(\"./generators/credit-card-for-fastlane-tokenization\");\n\nvar configurationBodyGenerator = require(\"./generators/configuration\");\nvar configurationResponseAdapter = require(\"./adapters/configuration\");\n\nvar generators = {\n \"payment_methods/credit_cards\": function (data, isFastlane) {\n if (isFastlane) {\n // Only want to use this generator when using the Fastlane flow\n return creditCardForFastlaneTokenizationBodyGenerator(data);\n }\n\n return creditCardTokenizationBodyGenerator(data);\n },\n configuration: configurationBodyGenerator,\n};\n\nvar adapters = {\n \"payment_methods/credit_cards\": function (parsedBody, context, isFastlane) {\n if (isFastlane) {\n // Only want to use this adapter when using the Fastlane flow\n return creditCardTokenizationFastlaneResponseAdapter(parsedBody, context);\n }\n\n return creditCardTokenizationResponseAdapter(parsedBody, context);\n },\n configuration: configurationResponseAdapter,\n};\n\nfunction GraphQLRequest(options) {\n var clientApiPath = options.graphQL.getClientApiPath(options.url);\n\n this._graphQL = options.graphQL;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n this._clientSdkMetadata = {\n source: options.metadata.source,\n integration: options.metadata.integration,\n sessionId: options.metadata.sessionId,\n };\n this._sendAnalyticsEvent = options.sendAnalyticsEvent || Function.prototype;\n\n this._generator = generators[clientApiPath];\n this._adapter = adapters[clientApiPath];\n\n this._sendAnalyticsEvent(\"graphql.init\");\n}\n\nGraphQLRequest.prototype.getUrl = function () {\n return this._graphQL.getGraphQLEndpoint();\n};\n\nGraphQLRequest.prototype.getBody = function () {\n var formattedBody = formatBodyKeys(this._data);\n var generatedBody = this._generator(\n formattedBody,\n // Since this is used for all GQL requests, we only want this if it's a Fastlane Tokenization request\n isFastlaneCheckout(this._data.creditCard)\n );\n var body = assign(\n { clientSdkMetadata: this._clientSdkMetadata },\n generatedBody\n );\n\n return JSON.stringify(body);\n};\n\nGraphQLRequest.prototype.getMethod = function () {\n return \"POST\";\n};\n\nGraphQLRequest.prototype.getHeaders = function () {\n var authorization, headers;\n\n if (this._data.authorizationFingerprint) {\n this._sendAnalyticsEvent(\"graphql.authorization-fingerprint\");\n authorization = this._data.authorizationFingerprint;\n } else {\n this._sendAnalyticsEvent(\"graphql.tokenization-key\");\n authorization = this._data.tokenizationKey;\n }\n\n headers = {\n Authorization: \"Bearer \" + authorization,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n\n return assign({}, this._headers, headers);\n};\n\nGraphQLRequest.prototype.adaptResponseBody = function (parsedBody) {\n return this._adapter(\n parsedBody,\n this,\n // Since this is used for all GQL requests, we only want this if it's a Fastlane Checkout Tokenization request\n \"creditCard\" in this._data && isFastlaneCheckout(this._data.creditCard)\n );\n};\n\nGraphQLRequest.prototype.determineStatus = function (\n httpStatus,\n parsedResponse\n) {\n var status, errorClass;\n\n if (httpStatus === 200) {\n errorClass =\n parsedResponse.errors &&\n parsedResponse.errors[0] &&\n parsedResponse.errors[0].extensions &&\n parsedResponse.errors[0].extensions.errorClass;\n\n if (parsedResponse.data && !parsedResponse.errors) {\n status = 200;\n } else if (errorClass === \"VALIDATION\") {\n status = 422;\n } else if (errorClass === \"AUTHORIZATION\") {\n status = 403;\n } else if (errorClass === \"AUTHENTICATION\") {\n status = 401;\n } else if (isGraphQLError(errorClass, parsedResponse)) {\n status = 403;\n } else {\n status = 500;\n }\n } else if (!httpStatus) {\n status = 500;\n } else {\n status = httpStatus;\n }\n\n this._sendAnalyticsEvent(\"graphql.status.\" + httpStatus);\n this._sendAnalyticsEvent(\"graphql.determinedStatus.\" + status);\n\n return status;\n};\n\nfunction isGraphQLError(errorClass, parsedResponse) {\n return !errorClass && parsedResponse.errors[0].message;\n}\n\n/**\n * @ignore\n * This function formats the body consistently so _everything_ is camelCase.\n * @param {object} originalBody the body to format\n * @returns {object} The formatted object\n */\nfunction formatBodyKeys(originalBody) {\n var body = {};\n\n Object.keys(originalBody).forEach(function (key) {\n var camelCaseKey = snakeCaseToCamelCase(key);\n\n if (typeof originalBody[key] === \"object\") {\n body[camelCaseKey] = formatBodyKeys(originalBody[key]);\n } else if (typeof originalBody[key] === \"number\") {\n body[camelCaseKey] = String(originalBody[key]);\n } else {\n body[camelCaseKey] = originalBody[key];\n }\n });\n\n return body;\n}\n\nmodule.exports = GraphQLRequest;\n\n},{\"../../../lib/assign\":90,\"../../../lib/is-fastlane-checkout\":121,\"../../../lib/snake-case-to-camel-case\":129,\"../../constants\":52,\"./adapters/configuration\":58,\"./adapters/credit-card-tokenization\":60,\"./adapters/credit-card-tokenization-fastlane\":59,\"./generators/configuration\":62,\"./generators/credit-card-for-fastlane-tokenization\":63,\"./generators/credit-card-tokenization\":64}],67:[function(require,module,exports){\n\"use strict\";\n\nvar once = require(\"../../lib/once\");\nvar AJAXDriver = require(\"./ajax-driver\");\n\nmodule.exports = function (options, cb) {\n cb = once(cb || Function.prototype);\n options.method = (options.method || \"GET\").toUpperCase();\n options.timeout = options.timeout == null ? 60000 : options.timeout;\n options.data = options.data || {};\n\n AJAXDriver.request(options, cb);\n};\n\n},{\"../../lib/once\":126,\"./ajax-driver\":56}],68:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (body) {\n try {\n body = JSON.parse(body);\n } catch (e) {\n /* ignored */\n }\n\n return body;\n};\n\n},{}],69:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (method, body) {\n if (typeof method !== \"string\") {\n throw new Error(\"Method must be a string\");\n }\n\n if (method.toLowerCase() !== \"get\" && body != null) {\n body = typeof body === \"string\" ? body : JSON.stringify(body);\n }\n\n return body;\n};\n\n},{}],70:[function(require,module,exports){\n\"use strict\";\n\nvar isXHRAvailable =\n typeof window !== \"undefined\" &&\n window.XMLHttpRequest &&\n \"withCredentials\" in new window.XMLHttpRequest();\n\nfunction getRequestObject() {\n return isXHRAvailable\n ? new window.XMLHttpRequest()\n : new window.XDomainRequest();\n}\n\nmodule.exports = {\n isAvailable: isXHRAvailable,\n getRequestObject: getRequestObject,\n};\n\n},{}],71:[function(require,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Google Payment - Creation Error Codes\n * @description Errors that occur when [creating the Google Payment component](./module-braintree-web_google-payment.html#.create).\n * @property {MERCHANT} GOOGLE_PAYMENT_NOT_ENABLED Occurs when Google Pay is not enabled on the Braintree control panel.\n * @property {MERCHANT} GOOGLE_PAYMENT_UNSUPPORTED_VERSION Occurs when a Google Pay version is used that is not supported by the Braintree SDK.\n */\n\n/**\n * @name BraintreeError.Google Payment - parseResponse Error Codes\n * @description Errors that occur when [parsing the response from Google](./GooglePayment.html#parseResponse).\n * @property {UNKNOWN} GOOGLE_PAYMENT_GATEWAY_ERROR Occurs when Google Pay could not be tokenized.\n */\n\nvar BraintreeError = require(\"../lib/braintree-error\");\n\nmodule.exports = {\n GOOGLE_PAYMENT_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"GOOGLE_PAYMENT_NOT_ENABLED\",\n message: \"Google Pay is not enabled for this merchant.\",\n },\n GOOGLE_PAYMENT_GATEWAY_ERROR: {\n code: \"GOOGLE_PAYMENT_GATEWAY_ERROR\",\n message:\n \"There was an error when tokenizing the Google Pay payment method.\",\n type: BraintreeError.types.UNKNOWN,\n },\n GOOGLE_PAYMENT_UNSUPPORTED_VERSION: {\n code: \"GOOGLE_PAYMENT_UNSUPPORTED_VERSION\",\n type: BraintreeError.types.MERCHANT,\n },\n};\n\n},{\"../lib/braintree-error\":93}],72:[function(require,module,exports){\n\"use strict\";\n\nvar analytics = require(\"../lib/analytics\");\nvar assign = require(\"../lib/assign\").assign;\nvar convertMethodsToError = require(\"../lib/convert-methods-to-error\");\nvar find = require(\"../lib/find\");\nvar generateGooglePayConfiguration = require(\"../lib/generate-google-pay-configuration\");\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar errors = require(\"./errors\");\nvar methods = require(\"../lib/methods\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\n\nvar CREATE_PAYMENT_DATA_REQUEST_METHODS = {\n 1: \"_createV1PaymentDataRequest\",\n 2: \"_createV2PaymentDataRequest\",\n};\n\n/**\n * @typedef {object} GooglePayment~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional account details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {boolean} details.isNetworkTokenized True if the card is network tokenized.\n * @property {string} details.bin First six digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, `CreditCard` or `AndroidPayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @class GooglePayment\n * @param {object} options Google Payment {@link module:braintree-web/google-payment.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/google-payment.create|braintree-web.google-payment.create} instead.\n * @classdesc This class represents a Google Payment component produced by {@link module:braintree-web/google-payment.create|braintree-web/google-payment.create}. Instances of this class have methods for initializing the Google Pay flow.\n */\nfunction GooglePayment(options) {\n this._createPromise = options.createPromise;\n this._client = options.client;\n this._useDeferredClient = options.useDeferredClient;\n // NEXT_MAJOR_VERSION this should be updated to 2 (or whatever the current latest version is)\n this._googlePayVersion = options.googlePayVersion || 1;\n this._googleMerchantId = options.googleMerchantId;\n\n if (this._isUnsupportedGooglePayAPIVersion()) {\n throw new BraintreeError({\n code: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.code,\n message:\n \"The Braintree SDK does not support Google Pay version \" +\n this._googlePayVersion +\n \". Please upgrade the version of your Braintree SDK and contact support if this error persists.\",\n type: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.type,\n });\n }\n}\n\nGooglePayment.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._isUnsupportedGooglePayAPIVersion = function () {\n // if we don't have createPaymentDatqRequest method for the specific\n // API version, then the version is not supported\n return !(this._googlePayVersion in CREATE_PAYMENT_DATA_REQUEST_METHODS);\n};\n\nGooglePayment.prototype._getDefaultConfig = function () {\n if (!this._defaultConfig) {\n this._defaultConfig = generateGooglePayConfiguration(\n this._client.getConfiguration(),\n this._googlePayVersion,\n this._googleMerchantId\n );\n }\n\n return this._defaultConfig;\n};\n\nGooglePayment.prototype._createV1PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n var overrideCardNetworks =\n paymentDataRequest.cardRequirements &&\n paymentDataRequest.cardRequirements.allowedCardNetworks;\n var defaultConfigCardNetworks =\n defaultConfig.cardRequirements.allowedCardNetworks;\n var allowedCardNetworks = overrideCardNetworks || defaultConfigCardNetworks;\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n // this way we can preserve allowedCardNetworks from default integration\n // if merchant did not pass any in `cardRequirements`\n paymentDataRequest.cardRequirements.allowedCardNetworks = allowedCardNetworks;\n\n return paymentDataRequest;\n};\n\nGooglePayment.prototype._createV2PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n\n if (paymentDataRequest.allowedPaymentMethods) {\n paymentDataRequest.allowedPaymentMethods.forEach(function (paymentMethod) {\n var defaultPaymentMethod = find(\n defaultConfig.allowedPaymentMethods,\n \"type\",\n paymentMethod.type\n );\n\n if (defaultPaymentMethod) {\n applyDefaultsToPaymentMethodConfiguration(\n paymentMethod,\n defaultPaymentMethod\n );\n }\n });\n }\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n return paymentDataRequest;\n};\n\n/**\n * Create a configuration object for use in the `loadPaymentData` method.\n *\n * **Note**: Version 1 of the Google Pay Api is deprecated and will become unsupported in a future version. Until then, version 1 will continue to be used by default, and version 1 schema parameters and overrides will remain functional on existing integrations. However, new integrations and all following examples will be presented in the GooglePay version 2 schema. See [Google Pay's upgrade guide](https://developers.google.com/pay/api/web/guides/resources/update-to-latest-version) to see how to update your integration.\n *\n * If `options.googlePayVersion === 2` was set during the initial {@link module:braintree-web/google-payment.create|create} call, overrides must match the Google Pay v2 schema to be valid.\n *\n * @public\n * @param {object} overrides The supplied parameters for creating the PaymentDataRequest object. Required parameters are:\n * @param {object} overrides.transactionInfo Object according to the [Google Pay Transaction Info](https://developers.google.com/pay/api/web/reference/object#TransactionInfo) spec.\n * Optionally, any of the parameters in the [PaymentDataRequest](https://developers.google.com/pay/api/web/reference/object#PaymentDataRequest) parameters can be overridden, but note that it is recommended only to override top level parameters to avoid squashing deeply nested configuration objects. An example can be found below showing how to safely edit these deeply nested objects.\n * @example\n * var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @example With deferred client\n * googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * }).then(function (paymentDataRequest) {\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * return paymentsClient.loadPaymentData(paymentDataRequest);\n * }).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @returns {object|Promise} Returns a configuration object for Google PaymentDataRequest. If instantiated with `useDeferredClient` and an `authorization` it will return a promise that resolves with the configuration.\n */\nGooglePayment.prototype.createPaymentDataRequest = function (overrides) {\n if (!this._useDeferredClient) {\n return this._createPaymentDataRequestSyncronously(overrides);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentDataRequestSyncronously(overrides);\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._createPaymentDataRequestSyncronously = function (\n overrides\n) {\n var paymentDataRequest = assign({}, overrides);\n var version = this._googlePayVersion;\n var createPaymentDataRequestMethod =\n CREATE_PAYMENT_DATA_REQUEST_METHODS[version];\n\n if (\n paymentDataRequest.transactionInfo &&\n paymentDataRequest.transactionInfo.totalPrice\n ) {\n paymentDataRequest.transactionInfo.totalPrice =\n paymentDataRequest.transactionInfo.totalPrice.toString();\n }\n\n analytics.sendEvent(\n this._createPromise,\n \"google-payment.v\" + version + \".createPaymentDataRequest\"\n );\n\n return this[createPaymentDataRequestMethod](paymentDataRequest);\n};\n\n/**\n * Parse the response from the tokenization.\n * @public\n * @param {object} response The response back from the Google Pay tokenization.\n * @param {callback} [callback] The second argument, data, is a {@link GooglePay~tokenizePayload|tokenizePayload}. If no callback is provided, `parseResponse` returns a promise that resolves with a {@link GooglePayment~tokenizePayload|tokenizePayload}.\n * @example with callback\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * googlePaymentInstance.parseResponse(response, function (err, data) {\n * if (err) {\n * // handle errors\n * }\n * // send parsedResponse.nonce to your server\n * });\n * });\n * @example with promise\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * return googlePaymentInstance.parseResponse(response);\n * }).then(function (parsedResponse) {\n * // send parsedResponse.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * @returns {(Promise|void)} Returns a promise that resolves the parsed response if no callback is provided.\n */\nGooglePayment.prototype.parseResponse = function (response) {\n var self = this;\n\n return Promise.resolve()\n .then(function () {\n var payload;\n var rawResponse =\n response.apiVersion === 2\n ? response.paymentMethodData.tokenizationData.token\n : response.paymentMethodToken.token;\n var parsedResponse = JSON.parse(rawResponse);\n var error = parsedResponse.error;\n\n if (error) {\n return Promise.reject(error);\n }\n\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded\"\n );\n\n if (parsedResponse.paypalAccounts) {\n payload = parsedResponse.paypalAccounts[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.paypal\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n });\n }\n payload = parsedResponse.androidPayCards[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.google-payment\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n details: {\n cardType: payload.details.cardType,\n lastFour: payload.details.lastFour,\n lastTwo: payload.details.lastTwo,\n isNetworkTokenized: payload.details.isNetworkTokenized,\n bin: payload.details.bin,\n },\n binData: payload.binData,\n });\n })\n .catch(function (error) {\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.failed\"\n );\n\n return Promise.reject(\n new BraintreeError({\n code: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.code,\n message: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.message,\n type: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.type,\n details: {\n originalError: error,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/google-payment.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * googlePaymentInstance.teardown();\n * @example With callback\n * googlePaymentInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nGooglePayment.prototype.teardown = function () {\n convertMethodsToError(this, methods(GooglePayment.prototype));\n\n return Promise.resolve();\n};\n\nfunction applyDefaultsToPaymentMethodConfiguration(\n merchantSubmittedPaymentMethod,\n defaultPaymentMethod\n) {\n Object.keys(defaultPaymentMethod).forEach(function (parameter) {\n if (typeof defaultPaymentMethod[parameter] === \"object\") {\n merchantSubmittedPaymentMethod[parameter] = assign(\n {},\n defaultPaymentMethod[parameter],\n merchantSubmittedPaymentMethod[parameter]\n );\n } else {\n merchantSubmittedPaymentMethod[parameter] =\n merchantSubmittedPaymentMethod[parameter] ||\n defaultPaymentMethod[parameter];\n }\n });\n}\n\nmodule.exports = wrapPromise.wrapPrototype(GooglePayment);\n\n},{\"../lib/analytics\":88,\"../lib/assign\":90,\"../lib/braintree-error\":93,\"../lib/convert-methods-to-error\":96,\"../lib/find\":106,\"../lib/generate-google-pay-configuration\":118,\"../lib/methods\":125,\"./errors\":71,\"@braintree/wrap-promise\":46}],73:[function(require,module,exports){\n\"use strict\";\n/**\n * @module braintree-web/google-payment\n * @description A component to integrate with Google Pay. The majority of the integration uses [Google's pay.js JavaScript file](https://pay.google.com/gp/p/js/pay.js). The Braintree component generates the configuration object necessary for Google Pay to initiate the Payment Request and parse the returned data to retrieve the payment method nonce which is used to process the transaction on the server.\n */\n\nvar GooglePayment = require(\"./google-payment\");\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar createAssetsUrl = require(\"../lib/create-assets-url\");\nvar createDeferredClient = require(\"../lib/create-deferred-client\");\nvar basicComponentVerification = require(\"../lib/basic-component-verification\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar VERSION = \"3.115.1\";\nvar errors = require(\"./errors\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Google Payment instance to be available right away by fetching the client configuration in the background. When this option is used, {@link GooglePayment#createPaymentDataRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {number} [options.googlePayVersion] The version of the Google Pay API to use. Value of 2 is required to accept parameters documented [by Google](https://developers.google.com/pay/api/web/reference/object). Omit this parameter to use the deprecated Google Pay Version 1.\n * @param {string} [options.googleMerchantId] A Google merchant identifier issued after your website is approved by Google. Required when PaymentsClient is initialized with an environment property of PRODUCTION, but may be omitted in TEST environment.\n * @param {callback} [callback] The second argument, `data`, is the {@link GooglePayment} instance. If no callback is provided, `create` returns a promise that resolves with the {@link GooglePayment} instance.\n * @example Simple Example\n * // include https://pay.google.com/gp/p/js/pay.js in a script tag\n * // on your page to load the `google.payments.api.PaymentsClient` global object.\n *\n * var paymentButton = document.querySelector('#google-pay-button');\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n * paymentButton.addEventListener('click', function (event) {\n * var paymentDataRequest;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle err\n * });\n * });\n * });\n * @example Check Browser and Customer Compatibility\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * function setupGooglePayButton(googlePaymentInstance) {\n * var button = document.createElement('button');\n *\n * button.id = 'google-pay';\n * button.appendChild(document.createTextNode('Google Pay'));\n * button.addEventListener('click', function (event) {\n * var paymentRequestData;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00' // your amount\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * });\n *\n * document.getElementById('container').appendChild(button);\n * }\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n *\n * return paymentsClient.isReadyToPay({\n * // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\n * apiVersion: 2,\n * apiVersionMinor: 0,\n * allowedPaymentMethods: googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods,\n * existingPaymentMethodRequired: true\n * });\n * }).then(function (response) {\n * if (response.result) {\n * setupGooglePayButton(googlePaymentInstance);\n * }\n * }).catch(function (err) {\n * // handle setup errors\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Google Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var createPromise, instance;\n\n createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n var configuration = client.getConfiguration();\n\n options.client = client;\n if (!configuration.gatewayConfiguration.androidPay) {\n return Promise.reject(\n new BraintreeError(errors.GOOGLE_PAYMENT_NOT_ENABLED)\n );\n }\n\n return client;\n });\n\n options.createPromise = createPromise;\n instance = new GooglePayment(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n instance._client = client;\n\n return instance;\n });\n }\n\n return instance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `1.44.1`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":91,\"../lib/braintree-error\":93,\"../lib/create-assets-url\":98,\"../lib/create-deferred-client\":100,\"./errors\":71,\"./google-payment\":72,\"@braintree/wrap-promise\":46}],74:[function(require,module,exports){\n\"use strict\";\n\nvar BraintreeError = require(\"../../lib/braintree-error\");\nvar errors = require(\"../shared/errors\");\nvar allowedAttributes = require(\"../shared/constants\").allowedAttributes;\n\nfunction attributeValidationError(attribute, value) {\n var err;\n\n if (!allowedAttributes.hasOwnProperty(attribute)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.code,\n message:\n 'The \"' + attribute + '\" attribute is not supported in Hosted Fields.',\n });\n } else if (value != null && !_isValid(attribute, value)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.code,\n message:\n 'Value \"' +\n value +\n '\" is not allowed for \"' +\n attribute +\n '\" attribute.',\n });\n }\n\n return err;\n}\n\nfunction _isValid(attribute, value) {\n if (allowedAttributes[attribute] === \"string\") {\n return typeof value === \"string\" || typeof value === \"number\";\n } else if (allowedAttributes[attribute] === \"boolean\") {\n return String(value) === \"true\" || String(value) === \"false\";\n }\n\n return false;\n}\n\nmodule.exports = attributeValidationError;\n\n},{\"../../lib/braintree-error\":93,\"../shared/constants\":82,\"../shared/errors\":83}],75:[function(require,module,exports){\n\"use strict\";\n\nvar constants = require(\"../shared/constants\");\nvar useMin = require(\"../../lib/use-min\");\n\nmodule.exports = function composeUrl(assetsUrl, componentId, isDebug) {\n return (\n assetsUrl +\n \"/web/\" +\n constants.VERSION +\n \"/html/hosted-fields-frame\" +\n useMin(isDebug) +\n \".html#\" +\n componentId\n );\n};\n\n},{\"../../lib/use-min\":131,\"../shared/constants\":82}],76:[function(require,module,exports){\n\"use strict\";\n\nvar directions = require(\"../shared/constants\").navigationDirections;\nvar browserDetection = require(\"../shared/browser-detection\");\nvar focusIntercept = require(\"../shared/focus-intercept\");\nvar findParentTags = require(\"../shared/find-parent-tags\");\nvar userFocusableTagNames = [\"INPUT\", \"SELECT\", \"TEXTAREA\"];\n// Devices with software keyboards do not or cannot focus on input types\n// that do not require keyboard-based interaction.\nvar unfocusedInputTypes = [\n \"hidden\",\n \"button\",\n \"reset\",\n \"submit\",\n \"checkbox\",\n \"radio\",\n \"file\",\n];\n\nfunction _isUserFocusableElement(element) {\n if (!browserDetection.hasSoftwareKeyboard()) {\n // on desktop browsers, the only input type that isn't focusable\n // is the hidden input\n return element.type !== \"hidden\";\n }\n\n return (\n userFocusableTagNames.indexOf(element.tagName) > -1 &&\n unfocusedInputTypes.indexOf(element.type) < 0\n );\n}\n\nfunction _createNavigationHelper(direction, numberOfElementsInForm) {\n switch (direction) {\n case directions.BACK:\n return {\n checkIndexBounds: function (index) {\n return index < 0;\n },\n indexChange: -1,\n };\n case directions.FORWARD:\n return {\n checkIndexBounds: function (index) {\n return index > numberOfElementsInForm - 1;\n },\n indexChange: 1,\n };\n default:\n }\n\n return {};\n}\n\nfunction _findFirstFocusableElement(elementsInForm) {\n var elementsIndex, element;\n\n for (\n elementsIndex = 0;\n elementsIndex < elementsInForm.length;\n elementsIndex++\n ) {\n element = elementsInForm[elementsIndex];\n\n if (_isUserFocusableElement(element)) {\n return element;\n }\n }\n\n return null;\n}\n\nmodule.exports = {\n removeExtraFocusElements: function (checkoutForm, onRemoveFocusIntercepts) {\n var elements = Array.prototype.slice.call(checkoutForm.elements);\n var firstFocusableInput = _findFirstFocusableElement(elements);\n var lastFocusableInput = _findFirstFocusableElement(elements.reverse());\n\n // these should never be identical, because there will at least be the\n // before and the after input\n [firstFocusableInput, lastFocusableInput].forEach(function (input) {\n if (!input) {\n return;\n }\n\n if (focusIntercept.matchFocusElement(input.getAttribute(\"id\"))) {\n onRemoveFocusIntercepts(input.getAttribute(\"id\"));\n }\n });\n },\n\n createFocusChangeHandler: function (hostedFieldsId, callbacks) {\n return function (data) {\n var currentIndex, targetElement, checkoutForm, navHelper;\n var sourceElement = document.getElementById(\n \"bt-\" + data.field + \"-\" + data.direction + \"-\" + hostedFieldsId\n );\n\n if (!sourceElement) {\n return;\n }\n\n checkoutForm = findParentTags(sourceElement, \"form\")[0];\n\n if (document.forms.length < 1 || !checkoutForm) {\n callbacks.onRemoveFocusIntercepts();\n\n return;\n }\n\n checkoutForm = [].slice.call(checkoutForm.elements);\n currentIndex = checkoutForm.indexOf(sourceElement);\n navHelper = _createNavigationHelper(data.direction, checkoutForm.length);\n\n do {\n currentIndex += navHelper.indexChange;\n if (navHelper.checkIndexBounds(currentIndex)) {\n return;\n }\n targetElement = checkoutForm[currentIndex];\n } while (!_isUserFocusableElement(targetElement));\n\n if (focusIntercept.matchFocusElement(targetElement.getAttribute(\"id\"))) {\n callbacks.onTriggerInputFocus(\n targetElement.getAttribute(\"data-braintree-type\")\n );\n } else {\n targetElement.focus();\n }\n };\n },\n};\n\n},{\"../shared/browser-detection\":81,\"../shared/constants\":82,\"../shared/find-parent-tags\":84,\"../shared/focus-intercept\":85}],77:[function(require,module,exports){\n\"use strict\";\n\nvar allowedStyles = require(\"../shared/constants\").allowedStyles;\n\nmodule.exports = function getStylesFromClass(cssClass) {\n var element = document.createElement(\"input\");\n var styles = {};\n var computedStyles;\n\n if (cssClass[0] === \".\") {\n cssClass = cssClass.substring(1);\n }\n\n element.className = cssClass;\n element.style.display = \"none !important\";\n element.style.position = \"fixed !important\";\n element.style.left = \"-99999px !important\";\n element.style.top = \"-99999px !important\";\n document.body.appendChild(element);\n\n computedStyles = window.getComputedStyle(element);\n\n allowedStyles.forEach(function (style) {\n var value = computedStyles[style];\n\n if (value) {\n styles[style] = value;\n }\n });\n\n document.body.removeChild(element);\n\n return styles;\n};\n\n},{\"../shared/constants\":82}],78:[function(require,module,exports){\n\"use strict\";\n\nvar assign = require(\"../../lib/assign\").assign;\nvar createAssetsUrl = require(\"../../lib/create-assets-url\");\nvar isVerifiedDomain = require(\"../../lib/is-verified-domain\");\nvar Destructor = require(\"../../lib/destructor\");\nvar iFramer = require(\"@braintree/iframer\");\nvar Bus = require(\"framebus\");\nvar createDeferredClient = require(\"../../lib/create-deferred-client\");\nvar BraintreeError = require(\"../../lib/braintree-error\");\nvar composeUrl = require(\"./compose-url\");\nvar getStylesFromClass = require(\"./get-styles-from-class\");\nvar constants = require(\"../shared/constants\");\nvar errors = require(\"../shared/errors\");\nvar INTEGRATION_TIMEOUT_MS =\n require(\"../../lib/constants\").INTEGRATION_TIMEOUT_MS;\nvar uuid = require(\"@braintree/uuid\");\nvar findParentTags = require(\"../shared/find-parent-tags\");\nvar browserDetection = require(\"../shared/browser-detection\");\nvar events = constants.events;\nvar EventEmitter = require(\"@braintree/event-emitter\");\nvar injectFrame = require(\"./inject-frame\");\nvar analytics = require(\"../../lib/analytics\");\nvar allowedFields = constants.allowedFields;\nvar methods = require(\"../../lib/methods\");\nvar shadow = require(\"../../lib/shadow\");\nvar findRootNode = require(\"../../lib/find-root-node\");\nvar convertMethodsToError = require(\"../../lib/convert-methods-to-error\");\nvar sharedErrors = require(\"../../lib/errors\");\nvar getCardTypes = require(\"../shared/get-card-types\");\nvar attributeValidationError = require(\"./attribute-validation-error\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar focusChange = require(\"./focus-change\");\nvar destroyFocusIntercept = require(\"../shared/focus-intercept\").destroy;\n\nvar SAFARI_FOCUS_TIMEOUT = 5;\n\n/**\n * @typedef {object} HostedFields~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} authenticationInsight Info about the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card. Only available if `authenticationInsight.merchantAccountId` is passed in the `tokenize` method options.\n * @property {string} authenticationInsight.regulationEnvironment The [regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) for the tokenized card.\n * @property {object} details Additional account details.\n * @property {string} details.bin The BIN number of the card.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.expirationMonth The expiration month of the card.\n * @property {string} details.expirationYear The expiration year of the card.\n * @property {string} details.cardholderName The cardholder name tokenized with the card.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `CreditCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @typedef {object} HostedFields~stateObject\n * @description The event payload sent from {@link HostedFields#on|on} or {@link HostedFields#getState|getState}.\n * @property {HostedFields~hostedFieldsCard[]} cards\n * This will return an array of potential {@link HostedFields~hostedFieldsCard|cards}. If the card type has been determined, the array will contain only one card.\n * Internally, Hosted Fields uses credit-card-type,\n * an open-source card detection library.\n * @property {string} emittedBy\n * The name of the field associated with an event. This will not be included if returned by {@link HostedFields#getState|getState}. It will be one of the following strings:
\n * - `\"number\"`\n * - `\"cvv\"`\n * - `\"expirationDate\"`\n * - `\"expirationMonth\"`\n * - `\"expirationYear\"`\n * - `\"postalCode\"`\n * - `\"cardholderName\"`\n * @property {object} fields\n * @property {?HostedFields~hostedFieldsFieldData} fields.number {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the number field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cvv {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the CVV field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationDate {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration date field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationMonth {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration month field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationYear {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration year field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.postalCode {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the postal code field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cardholderName {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the cardholder name field, if it is present.\n */\n\n/**\n * @typedef {object} HostedFields~binPayload\n * @description The event payload sent from {@link HostedFields#on|on} when the {@link HostedFields#event:binAvailable|binAvailable} event is emitted.\n * @property {string} bin The first 6 digits of the card number.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsFieldData\n * @description Data about Hosted Fields fields, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {HTMLElement} container Reference to the container DOM element on your page associated with the current event.\n * @property {boolean} isFocused Whether or not the input is currently focused.\n * @property {boolean} isEmpty Whether or not the user has entered a value in the input.\n * @property {boolean} isPotentiallyValid\n * A determination based on the future validity of the input value.\n * This is helpful when a user is entering a card number and types \"41\".\n * While that value is not valid for submission, it is still possible for\n * it to become a fully qualified entry. However, if the user enters \"4x\"\n * it is clear that the card number can never become valid and isPotentiallyValid will\n * return false.\n * @property {boolean} isValid Whether or not the value of the associated input is fully qualified for submission.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsCard\n * @description Information about the card type, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {string} type The code-friendly representation of the card type. It will be one of the following strings:\n * - `american-express`\n * - `diners-club`\n * - `discover`\n * - `jcb`\n * - `maestro`\n * - `master-card`\n * - `unionpay`\n * - `visa`\n * @property {string} niceType The pretty-printed card type. It will be one of the following strings:\n * - `American Express`\n * - `Diners Club`\n * - `Discover`\n * - `JCB`\n * - `Maestro`\n * - `MasterCard`\n * - `UnionPay`\n * - `Visa`\n * @property {object} code\n * This object contains data relevant to the security code requirements of the card brand.\n * For example, on a Visa card there will be a CVV of 3 digits, whereas an\n * American Express card requires a 4-digit CID.\n * @property {string} code.name \"CVV\" \"CID\" \"CVC\"\n * @property {number} code.size The expected length of the security code. Typically, this is 3 or 4.\n */\n\n/**\n * @name HostedFields#on\n * @function\n * @param {string} event The name of the event to which you are subscribing.\n * @param {function} handler A callback to handle the event.\n * @description Subscribes a handler function to a named event.\n *\n * **Events that emit a {@link HostedFields~stateObject|stateObject}.**\n * * {@link HostedFields#event:blur|blur}\n * * {@link HostedFields#event:focus|focus}\n * * {@link HostedFields#event:empty|empty}\n * * {@link HostedFields#event:notEmpty|notEmpty}\n * * {@link HostedFields#event:cardTypeChange|cardTypeChange}\n * * {@link HostedFields#event:validityChange|validityChange}\n * * {@link HostedFields#event:inputSubmitRequest|inputSubmitRequest}\n *\n * **Other Events**\n * * {@link HostedFields#event:binAvailable|binAvailable} - emits a {@link HostedFields~binPayload|bin payload}. Note: If you are using a [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) header that prevents the origin from being sent, this event will not fire.\n * @example\n * Listening to a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * });\n * });\n * @returns {void}\n */\n\n/**\n * @name HostedFields#off\n * @function\n * @param {string} event The name of the event to which you are unsubscribing.\n * @param {function} handler The callback for the event you are unsubscribing from.\n * @description Unsubscribes the handler function to a named event.\n * @example\n * Subscribing and then unsubscribing from a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * var callback = function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * };\n * hostedFieldsInstance.on('focus', callback);\n *\n * // later on\n * hostedFieldsInstance.off('focus', callback);\n * });\n * @returns {void}\n */\n\n/**\n * This event is emitted when the user requests submission of an input field, such as by pressing the Enter or Return key on their keyboard, or mobile equivalent.\n * @event HostedFields#inputSubmitRequest\n * @type {HostedFields~stateObject}\n * @example\n * Clicking a submit button upon hitting Enter (or equivalent) within a Hosted Field\n * var hostedFields = require('braintree-web/hosted-fields');\n * var submitButton = document.querySelector('input[type=\"submit\"]');\n *\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('inputSubmitRequest', function () {\n * // User requested submission, e.g. by pressing Enter or equivalent\n * submitButton.click();\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from having data to being empty.\n * @event HostedFields#empty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an empty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('empty', function (event) {\n * console.log(event.emittedBy, 'is now empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from being empty to having data.\n * @event HostedFields#notEmpty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an notEmpty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('notEmpty', function (event) {\n * console.log(event.emittedBy, 'is now not empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field loses focus.\n * @event HostedFields#blur\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a blur event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('blur', function (event) {\n * console.log(event.emittedBy, 'lost focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field gains focus.\n * @event HostedFields#focus\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a focus event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'gained focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when activity within the number field has changed such that the possible card type has changed.\n * @event HostedFields#cardTypeChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a cardTypeChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('cardTypeChange', function (event) {\n * if (event.cards.length === 1) {\n * console.log(event.cards[0].type);\n * } else {\n * console.log('Type of card not yet known');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the validity of a field has changed. Validity is represented in the {@link HostedFields~stateObject|stateObject} as two booleans: `isValid` and `isPotentiallyValid`.\n * @event HostedFields#validityChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a validityChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('validityChange', function (event) {\n * var field = event.fields[event.emittedBy];\n *\n * if (field.isValid) {\n * console.log(event.emittedBy, 'is fully valid');\n * } else if (field.isPotentiallyValid) {\n * console.log(event.emittedBy, 'is potentially valid');\n * } else {\n * console.log(event.emittedBy, 'is not valid');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the first 6 digits of the card number have been entered by the customer.\n * @event HostedFields#binAvailable\n * @type {string}\n * @example\n * Listening to a `binAvailable` event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('binAvailable', function (event) {\n * event.bin // send bin to 3rd party bin service\n * });\n * });\n */\n\nfunction createInputEventHandler(fields) {\n return function (eventData) {\n var field;\n var merchantPayload = eventData.merchantPayload;\n var emittedBy = merchantPayload.emittedBy;\n var container = fields[emittedBy].containerElement;\n\n Object.keys(merchantPayload.fields).forEach(function (key) {\n merchantPayload.fields[key].container = fields[key].containerElement;\n });\n\n field = merchantPayload.fields[emittedBy];\n\n container.classList.toggle(\n constants.externalClasses.FOCUSED,\n field.isFocused\n );\n container.classList.toggle(constants.externalClasses.VALID, field.isValid);\n\n container.classList.toggle(\n constants.externalClasses.INVALID,\n !field.isPotentiallyValid\n );\n\n // eslint-disable-next-line no-invalid-this\n this._state = {\n cards: merchantPayload.cards,\n fields: merchantPayload.fields,\n };\n\n this._emit(eventData.type, merchantPayload); // eslint-disable-line no-invalid-this\n };\n}\n\nfunction isVisibleEnough(node) {\n var boundingBox = node.getBoundingClientRect();\n var verticalMidpoint = Math.floor(boundingBox.height / 2);\n var horizontalMidpoint = Math.floor(boundingBox.width / 2);\n\n return (\n boundingBox.top <\n (window.innerHeight - verticalMidpoint ||\n document.documentElement.clientHeight - verticalMidpoint) &&\n boundingBox.right > horizontalMidpoint &&\n boundingBox.bottom > verticalMidpoint &&\n boundingBox.left <\n (window.innerWidth - horizontalMidpoint ||\n document.documentElement.clientWidth - horizontalMidpoint)\n );\n}\n\n/**\n * @class HostedFields\n * @param {object} options The Hosted Fields {@link module:braintree-web/hosted-fields.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/hosted-fields.create|braintree-web.hosted-fields.create} instead.\n * @classdesc This class represents a Hosted Fields component produced by {@link module:braintree-web/hosted-fields.create|braintree-web/hosted-fields.create}. Instances of this class have methods for interacting with the input fields within Hosted Fields' iframes.\n */\nfunction HostedFields(options) {\n var failureTimeout, clientConfig, assetsUrl, isDebug, hostedFieldsUrl;\n var self = this;\n var fields = {};\n var frameReadyPromiseResolveFunctions = {};\n var frameReadyPromises = [];\n var componentId = uuid();\n var sessionId = options.sessionId;\n\n this._merchantConfigurationOptions = assign({}, options);\n\n if (options.client) {\n clientConfig = options.client.getConfiguration(undefined, sessionId); // eslint-disable-line no-undefined\n assetsUrl = clientConfig.gatewayConfiguration.assetsUrl;\n isDebug = clientConfig.isDebug;\n } else {\n assetsUrl = createAssetsUrl.create(options.authorization);\n isDebug = Boolean(options.isDebug);\n }\n\n this._clientPromise = createDeferredClient.create({\n client: options.client,\n authorization: options.authorization,\n debug: isDebug,\n assetsUrl: assetsUrl,\n name: \"Hosted Fields\",\n sessionId: sessionId,\n });\n\n hostedFieldsUrl = composeUrl(assetsUrl, componentId, isDebug);\n\n if (!options.fields || Object.keys(options.fields).length === 0) {\n throw new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message: \"options.fields is required when instantiating Hosted Fields.\",\n });\n }\n\n EventEmitter.call(this);\n\n this._injectedNodes = [];\n this._destructor = new Destructor();\n this._fields = fields;\n this._state = {\n fields: {},\n cards: getCardTypes(\"\"),\n };\n\n this._bus = new Bus({\n channel: componentId,\n verifyDomain: isVerifiedDomain,\n targetFrames: [window],\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n self._bus.teardown();\n });\n\n // NEXT_MAJOR_VERSION analytics events should have present tense verbs\n if (!options.client) {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized.deferred-client\"\n );\n } else {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized\"\n );\n }\n\n Object.keys(options.fields).forEach(\n function (key) {\n var field, externalContainer, internalContainer, frame, frameReadyPromise;\n\n if (!constants.allowedFields.hasOwnProperty(key)) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.code,\n message: '\"' + key + '\" is not a valid field.',\n });\n }\n\n field = options.fields[key];\n // NEXT_MAJOR_VERSION remove selector as an option\n // and simply make the API take a container\n externalContainer = field.container || field.selector;\n\n if (typeof externalContainer === \"string\") {\n externalContainer = document.querySelector(externalContainer);\n }\n\n if (!externalContainer || externalContainer.nodeType !== 1) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.code,\n message: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n } else if (\n externalContainer.querySelector('iframe[name^=\"braintree-\"]')\n ) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.type,\n code: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.code,\n message: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n }\n\n internalContainer = externalContainer;\n\n if (shadow.isShadowElement(internalContainer)) {\n internalContainer = shadow.transformToSlot(\n internalContainer,\n \"height: 100%\"\n );\n }\n\n if (field.maxlength && typeof field.maxlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for maxlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n if (field.minlength && typeof field.minlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for minlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n frame = iFramer({\n type: key,\n name: \"braintree-hosted-field-\" + key,\n style: constants.defaultIFrameStyle,\n title:\n field.iframeTitle ||\n \"Secure Credit Card Frame - \" + constants.allowedFields[key].label,\n });\n this._bus.addTargetFrame(frame);\n\n this._injectedNodes.push.apply(\n this._injectedNodes,\n injectFrame(componentId, frame, internalContainer, function () {\n self.focus(key);\n })\n );\n\n this._setupLabelFocus(key, externalContainer);\n fields[key] = {\n frameElement: frame,\n containerElement: externalContainer,\n };\n frameReadyPromise = new Promise(function (resolve) {\n frameReadyPromiseResolveFunctions[key] = resolve;\n });\n frameReadyPromises.push(frameReadyPromise);\n\n this._state.fields[key] = {\n isEmpty: true,\n isValid: false,\n isPotentiallyValid: true,\n isFocused: false,\n container: externalContainer,\n };\n\n // prevents loading the iframe from blocking the code\n setTimeout(function () {\n frame.src = hostedFieldsUrl;\n }, 0);\n }.bind(this)\n );\n\n if (this._merchantConfigurationOptions.styles) {\n Object.keys(this._merchantConfigurationOptions.styles).forEach(function (\n selector\n ) {\n var className = self._merchantConfigurationOptions.styles[selector];\n\n if (typeof className === \"string\") {\n self._merchantConfigurationOptions.styles[selector] =\n getStylesFromClass(className);\n }\n });\n }\n\n this._bus.on(events.REMOVE_FOCUS_INTERCEPTS, function (data) {\n destroyFocusIntercept(data && data.id);\n });\n\n this._bus.on(\n events.TRIGGER_FOCUS_CHANGE,\n focusChange.createFocusChangeHandler(componentId, {\n onRemoveFocusIntercepts: function (element) {\n self._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: element,\n });\n },\n onTriggerInputFocus: function (targetType) {\n self.focus(targetType);\n },\n })\n );\n\n this._bus.on(events.READY_FOR_CLIENT, function (reply) {\n self._clientPromise.then(function (client) {\n reply(client);\n });\n });\n\n this._bus.on(events.CARD_FORM_ENTRY_HAS_BEGUN, function () {\n analytics.sendEvent(self._clientPromise, \"hosted-fields.input.started\");\n });\n\n this._bus.on(events.BIN_AVAILABLE, function (bin) {\n self._emit(\"binAvailable\", {\n bin: bin,\n });\n });\n\n failureTimeout = setTimeout(function () {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.load.timed-out\"\n );\n self._emit(\"timeout\");\n }, INTEGRATION_TIMEOUT_MS);\n\n Promise.all(frameReadyPromises).then(function (results) {\n var reply = results[0];\n\n clearTimeout(failureTimeout);\n reply(\n formatMerchantConfigurationForIframes(self._merchantConfigurationOptions)\n );\n\n self._cleanUpFocusIntercepts();\n\n self._emit(\"ready\");\n });\n\n this._bus.on(events.FRAME_READY, function (data, reply) {\n frameReadyPromiseResolveFunctions[data.field](reply);\n });\n\n this._bus.on(events.INPUT_EVENT, createInputEventHandler(fields).bind(this));\n\n this._destructor.registerFunctionForTeardown(function () {\n var j, node, parent;\n\n for (j = 0; j < self._injectedNodes.length; j++) {\n node = self._injectedNodes[j];\n parent = node.parentNode;\n\n parent.removeChild(node);\n\n parent.classList.remove(\n constants.externalClasses.FOCUSED,\n constants.externalClasses.INVALID,\n constants.externalClasses.VALID\n );\n }\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n destroyFocusIntercept();\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n var methodNames = methods(HostedFields.prototype).concat(\n methods(EventEmitter.prototype)\n );\n\n convertMethodsToError(self, methodNames);\n });\n}\n\nEventEmitter.createChild(HostedFields);\n\nHostedFields.prototype._setupLabelFocus = function (type, container) {\n var labels, i;\n var self = this;\n var rootNode = findRootNode(container);\n\n if (container.id == null) {\n return;\n }\n\n function triggerFocus() {\n self.focus(type);\n }\n\n // find any labels in the normal DOM\n labels = Array.prototype.slice.call(\n document.querySelectorAll('label[for=\"' + container.id + '\"]')\n );\n if (rootNode !== document) {\n // find any labels within the shadow dom\n labels = labels.concat(\n Array.prototype.slice.call(\n rootNode.querySelectorAll('label[for=\"' + container.id + '\"]')\n )\n );\n }\n // find any labels surrounding the container that don't also have the `for` attribute\n labels = labels.concat(findParentTags(container, \"label\"));\n // filter out any accidental duplicates\n labels = labels.filter(function (label, index, arr) {\n return arr.indexOf(label) === index;\n });\n\n for (i = 0; i < labels.length; i++) {\n labels[i].addEventListener(\"click\", triggerFocus, false);\n }\n\n this._destructor.registerFunctionForTeardown(function () {\n for (i = 0; i < labels.length; i++) {\n labels[i].removeEventListener(\"click\", triggerFocus, false);\n }\n });\n};\n\nHostedFields.prototype._getAnyFieldContainer = function () {\n var self = this;\n\n return Object.keys(this._fields).reduce(function (found, field) {\n return found || self._fields[field].containerElement;\n }, null);\n};\n\nHostedFields.prototype._cleanUpFocusIntercepts = function () {\n var iframeContainer, checkoutForm;\n\n if (document.forms.length < 1) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n } else {\n iframeContainer = this._getAnyFieldContainer();\n checkoutForm = findParentTags(iframeContainer, \"form\")[0];\n\n if (checkoutForm) {\n focusChange.removeExtraFocusElements(\n checkoutForm,\n function (id) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: id,\n });\n }.bind(this)\n );\n } else {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n }\n }\n};\n\nHostedFields.prototype._attachInvalidFieldContainersToError = function (err) {\n if (\n !(\n err.details &&\n err.details.invalidFieldKeys &&\n err.details.invalidFieldKeys.length > 0\n )\n ) {\n return;\n }\n err.details.invalidFields = {};\n err.details.invalidFieldKeys.forEach(\n function (field) {\n err.details.invalidFields[field] = this._fields[field].containerElement;\n }.bind(this)\n );\n};\n\n/**\n * Get card verification challenges, such as requirements for cvv and postal code.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getChallenges` returns a promise.\n * @example\n * hostedFieldsInstance.getChallenges().then(function (challenges) {\n * challenges // ['cvv', 'postal_code']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getChallenges = function () {\n return this._clientPromise.then(function (client) {\n return client.getConfiguration().gatewayConfiguration.challenges;\n });\n};\n\n/**\n * Get supported card types configured in the Braintree Control Panel\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getSupportedCardTypes` returns a promise.\n * @example\n * hostedFieldsInstance.getSupportedCardTypes().then(function (cardTypes) {\n * cardTypes // ['Visa', 'American Express', 'Mastercard']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getSupportedCardTypes = function () {\n return this._clientPromise.then(function (client) {\n var cards = client\n .getConfiguration()\n .gatewayConfiguration.creditCards.supportedCardTypes.map(function (\n cardType\n ) {\n if (cardType === \"MasterCard\") {\n // Mastercard changed their branding. We can't update our\n // config without creating a breaking change, so we just\n // hard code the change here\n return \"Mastercard\";\n }\n\n return cardType;\n });\n\n return cards;\n });\n};\n\n/**\n * Cleanly remove anything set up by {@link module:braintree-web/hosted-fields.create|create}.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. No data is returned if teardown completes successfully. If no callback is provided, `teardown` returns a promise.\n * @example\n * hostedFieldsInstance.teardown(function (teardownErr) {\n * if (teardownErr) {\n * console.error('Could not tear down Hosted Fields!');\n * } else {\n * console.info('Hosted Fields has been torn down!');\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.teardown = function () {\n var self = this;\n\n return new Promise(function (resolve, reject) {\n self._destructor.teardown(function (err) {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.teardown-completed\"\n );\n\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n};\n\n/**\n * Tokenizes fields and returns a nonce payload.\n * @public\n * @param {object} [options] All tokenization options for the Hosted Fields component.\n * @param {boolean} [options.vault=false] When true, will vault the tokenized card. Cards will only be vaulted when using a client created with a client token that includes a customer ID. Note: merchants using Advanced Fraud Tools should not use this option, as device data will not be included.\n * @param {object} [options.authenticationInsight] Options for checking authentication insight - the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card.\n * @param {string} options.authenticationInsight.merchantAccountId The Braintree merchant account id to use to look up the authentication insight information.\n * @param {array} [options.fieldsToTokenize] By default, all fields will be tokenized. You may specify which fields specifically you wish to tokenize with this property. Valid options are `'number'`, `'cvv'`, `'expirationDate'`, `'expirationMonth'`, `'expirationYear'`, `'postalCode'`, `'cardholderName'`.\n * @param {string} [options.cardholderName] When supplied, the cardholder name to be tokenized with the contents of the fields.\n * @param {string} [options.billingAddress.postalCode] When supplied, this postal code will be tokenized along with the contents of the fields. If a postal code is provided as part of the Hosted Fields configuration, the value of the field will be tokenized and this value will be ignored.\n * @param {string} [options.billingAddress.firstName] When supplied, this customer first name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.lastName] When supplied, this customer last name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.company] When supplied, this company name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.streetAddress] When supplied, this street address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.extendedAddress] When supplied, this extended address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.locality] When supplied, this locality (the city) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.region] When supplied, this region (the state) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeNumeric] When supplied, this numeric country code will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha2] When supplied, this alpha 2 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha3] When supplied, this alpha 3 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryName] When supplied, this country name will be tokenized along with the contents of the fields.\n *\n * @param {callback} [callback] May be used as the only parameter of the function if no options are passed in. The second argument, data, is a {@link HostedFields~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a function that resolves with a {@link HostedFields~tokenizePayload|tokenizePayload}.\n * @example Tokenize a card\n * hostedFieldsInstance.tokenize(function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * switch (tokenizeErr.code) {\n * case 'HOSTED_FIELDS_FIELDS_EMPTY':\n * // occurs when none of the fields are filled in\n * console.error('All fields are empty! Please fill out the form.');\n * break;\n * case 'HOSTED_FIELDS_FIELDS_INVALID':\n * // occurs when certain fields do not pass client side validation\n * console.error('Some fields are invalid:', tokenizeErr.details.invalidFieldKeys);\n *\n * // you can also programmatically access the field containers for the invalid fields\n * tokenizeErr.details.invalidFields.forEach(function (fieldContainer) {\n * fieldContainer.className = 'invalid';\n * });\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_FAIL_ON_DUPLICATE':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the fail on duplicate payment method\n * // option is set to true\n * // * the card being tokenized has previously been vaulted (with any customer)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.fail_on_duplicate_payment_method\n * console.error('This payment method already exists in your vault.');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_CVV_VERIFICATION_FAILED':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the verify card option is set to true\n * // and you have credit card verification turned on in the Braintree\n * // control panel\n * // * the cvv does not pass verification (https://developer.paypal.com/braintree/docs/reference/general/testing#avs-and-cvv/cid-responses)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.verify_card\n * console.error('CVV did not pass verification');\n * break;\n * case 'HOSTED_FIELDS_FAILED_TOKENIZATION':\n * // occurs for any other tokenization error on the server\n * console.error('Tokenization failed server side. Is the card valid?');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_NETWORK_ERROR':\n * // occurs when the Braintree gateway cannot be contacted\n * console.error('Network error occurred when tokenizing.');\n * break;\n * default:\n * console.error('Something bad happened!', tokenizeErr);\n * }\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize and vault a card\n * hostedFieldsInstance.tokenize({\n * vault: true\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields cardholder name\n * hostedFieldsInstance.tokenize({\n * cardholderName: 'First Last'\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields postal code option\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * postalCode: '11111'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with additional billing address options\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * firstName: 'First',\n * lastName: 'Last',\n * company: 'Company',\n * streetAddress: '123 Street',\n * extendedAddress: 'Unit 1',\n * // passing just one of the country options is sufficient to\n * // associate the card details with a particular country\n * // valid country names and codes can be found here:\n * // https://developer.paypal.com/braintree/docs/reference/general/countries/ruby#list-of-countries\n * countryName: 'United States',\n * countryCodeAlpha2: 'US',\n * countryCodeAlpha3: 'USA',\n * countryCodeNumeric: '840'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Allow tokenization with empty cardholder name field\n * var state = hostedFieldsInstance.getState();\n * var fields = Object.keys(state.fields);\n *\n * // normally, if you tried to tokenize an empty cardholder name field\n * // you would get an error, to allow making this field optional,\n * // tokenize all the fields except for the cardholder name field\n * // when the cardholder name field is empty. Otherwise, tokenize\n * // all the fields\n * if (state.fields.cardholderName.isEmpty) {\n * fields = fields.filter(function (field) {\n * return field !== 'cardholderName';\n * });\n * }\n *\n * hostedFieldsInstance.tokenize({\n * fieldsToTokenize: fields\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n self._bus.emit(events.TOKENIZATION_REQUEST, options, function (response) {\n var err = response[0];\n var payload = response[1];\n\n if (err) {\n self._attachInvalidFieldContainersToError(err);\n reject(new BraintreeError(err));\n } else {\n resolve(payload);\n }\n });\n });\n};\n\n/**\n * Add a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to add a class to. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be added.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is added successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.addClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when adding a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot add class to \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.ADD_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Removes a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to remove a class from. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be removed.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is removed successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * return;\n * }\n *\n * // some time later...\n * hostedFieldsInstance.removeClass('number', 'custom-class');\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when removing a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove class from \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.REMOVE_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets an attribute of a {@link module:braintree-web/hosted-fields~field field}.\n * Supported attributes are `aria-invalid`, `aria-required`, `disabled`, and `placeholder`.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to add to the field.\n * @param {string} options.value The value for the attribute.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is set successfully.\n *\n * @example Set the placeholder attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'placeholder',\n * value: '1111 1111 1111 1111'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @example Set the aria-required attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'aria-required',\n * value: true\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when setting an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot set attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute, options.value);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.SET_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n value: options.value,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets the month options for the expiration month field when presented as a select element.\n *\n * @public\n * @param {array} options An array of 12 entries corresponding to the 12 months.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the options are updated successfully. Errors if expirationMonth is not configured on the Hosted Fields instance or if the expirationMonth field is not configured to be a select input.\n *\n * @example Update the month options to spanish\n * hostedFieldsInstance.setMonthOptions([\n * '01 - enero',\n * '02 - febrero',\n * '03 - marzo',\n * '04 - abril',\n * '05 - mayo',\n * '06 - junio',\n * '07 - julio',\n * '08 - agosto',\n * '09 - septiembre',\n * '10 - octubre',\n * '11 - noviembre',\n * '12 - diciembre'\n * ]);\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setMonthOptions = function (options) {\n var self = this;\n var merchantOptions = this._merchantConfigurationOptions.fields;\n var errorMessage;\n\n if (!merchantOptions.expirationMonth) {\n errorMessage = \"Expiration month field must exist to use setMonthOptions.\";\n } else if (!merchantOptions.expirationMonth.select) {\n errorMessage = \"Expiration month field must be a select element.\";\n }\n\n if (errorMessage) {\n return Promise.reject(\n new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: errorMessage,\n })\n );\n }\n\n return new Promise(function (resolve) {\n self._bus.emit(events.SET_MONTH_OPTIONS, options, resolve);\n });\n};\n\n/**\n * Sets a visually hidden message (for screen readers) on a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~field field}.\n * @param {string} options.message The message to set.\n *\n * @example Set an error message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: 'Invalid card number'\n * });\n *\n * @example Remove the message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: ''\n * });\n *\n * @returns {void}\n */\nHostedFields.prototype.setMessage = function (options) {\n this._bus.emit(events.SET_MESSAGE, {\n field: options.field,\n message: options.message,\n });\n};\n\n/**\n * Removes a supported attribute from a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to remove.\n * @param {string} options.field The field from which you wish to remove an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to remove from the field.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is removed successfully.\n *\n * @example Remove the placeholder attribute of a field\n * hostedFieldsInstance.removeAttribute({\n * field: 'number',\n * attribute: 'placeholder'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when removing an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.REMOVE_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * @deprecated since version 3.8.0. Use {@link HostedFields#setAttribute|setAttribute} instead.\n *\n * @public\n * @param {string} field The field whose placeholder you wish to change. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} placeholder Will be used as the `placeholder` attribute of the input.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the placeholder updated successfully.\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setPlaceholder = function (field, placeholder) {\n return this.setAttribute({\n field: field,\n attribute: \"placeholder\",\n value: placeholder,\n });\n};\n\n/**\n * Clear the value of a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you wish to clear. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field cleared successfully.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * hostedFieldsInstance.clear('number', function (clearErr) {\n * if (clearErr) {\n * console.error(clearErr);\n * }\n * });\n *\n * @example Clear several fields\n * hostedFieldsInstance.clear('number');\n * hostedFieldsInstance.clear('cvv');\n * hostedFieldsInstance.clear('expirationDate');\n */\nHostedFields.prototype.clear = function (field) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when clearing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot clear \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.CLEAR_FIELD, {\n field: field,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Programmatically focus a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you want to focus. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field focused successfully.\n * @returns {void}\n * @example\n * hostedFieldsInstance.focus('number', function (focusErr) {\n * if (focusErr) {\n * console.error(focusErr);\n * }\n * });\n * @example Using an event listener\n * myElement.addEventListener('click', function (e) {\n * // In Firefox, the focus method can be suppressed\n * // if the element has a tabindex property or the element\n * // is an anchor link with an href property.\n * e.preventDefault();\n * hostedFieldsInstance.focus('number');\n * });\n */\nHostedFields.prototype.focus = function (field) {\n var err;\n var fieldConfig = this._fields[field];\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when focusing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot focus \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n fieldConfig.frameElement.focus();\n\n this._bus.emit(events.TRIGGER_INPUT_FOCUS, {\n field: field,\n });\n\n if (browserDetection.isIos()) {\n // Inputs outside of the viewport don't always scroll into view on\n // focus in iOS Safari. 5ms timeout gives the browser a chance to\n // do the right thing and prevents stuttering.\n setTimeout(function () {\n if (!isVisibleEnough(fieldConfig.containerElement)) {\n fieldConfig.containerElement.scrollIntoView();\n }\n }, SAFARI_FOCUS_TIMEOUT);\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Returns an {@link HostedFields~stateObject|object} that includes the state of all fields and possible card types.\n * @public\n * @returns {object} {@link HostedFields~stateObject|stateObject}\n * @example Check if all fields are valid\n * var state = hostedFieldsInstance.getState();\n *\n * var formValid = Object.keys(state.fields).every(function (key) {\n * return state.fields[key].isValid;\n * });\n */\nHostedFields.prototype.getState = function () {\n return this._state;\n};\n\n// React adds decorations to DOM nodes that cause\n// circular dependencies, so we remove them from the\n// config before sending it to the iframes. However,\n// we don't want to mutate the original object that\n// was passed in, so we create fresh objects via assign\nfunction formatMerchantConfigurationForIframes(config) {\n var formattedConfig = assign({}, config);\n\n formattedConfig.fields = assign({}, formattedConfig.fields);\n Object.keys(formattedConfig.fields).forEach(function (field) {\n formattedConfig.fields[field] = assign({}, formattedConfig.fields[field]);\n delete formattedConfig.fields[field].container;\n });\n\n return formattedConfig;\n}\n\nmodule.exports = wrapPromise.wrapPrototype(HostedFields);\n\n},{\"../../lib/analytics\":88,\"../../lib/assign\":90,\"../../lib/braintree-error\":93,\"../../lib/constants\":95,\"../../lib/convert-methods-to-error\":96,\"../../lib/create-assets-url\":98,\"../../lib/create-deferred-client\":100,\"../../lib/destructor\":102,\"../../lib/errors\":104,\"../../lib/find-root-node\":105,\"../../lib/is-verified-domain\":123,\"../../lib/methods\":125,\"../../lib/shadow\":128,\"../shared/browser-detection\":81,\"../shared/constants\":82,\"../shared/errors\":83,\"../shared/find-parent-tags\":84,\"../shared/focus-intercept\":85,\"../shared/get-card-types\":86,\"./attribute-validation-error\":74,\"./compose-url\":75,\"./focus-change\":76,\"./get-styles-from-class\":77,\"./inject-frame\":79,\"@braintree/event-emitter\":36,\"@braintree/iframer\":38,\"@braintree/uuid\":42,\"@braintree/wrap-promise\":46,\"framebus\":172}],79:[function(require,module,exports){\n\"use strict\";\n\nvar focusIntercept = require(\"../shared/focus-intercept\");\nvar directions = require(\"../shared/constants\").navigationDirections;\n\nmodule.exports = function injectFrame(id, frame, container, focusHandler) {\n var frameType = frame.getAttribute(\"type\");\n var clearboth = document.createElement(\"div\");\n var fragment = document.createDocumentFragment();\n var focusInterceptBefore = focusIntercept.generate(\n id,\n frameType,\n directions.BACK,\n focusHandler\n );\n var focusInterceptAfter = focusIntercept.generate(\n id,\n frameType,\n directions.FORWARD,\n focusHandler\n );\n\n clearboth.style.clear = \"both\";\n\n fragment.appendChild(focusInterceptBefore);\n fragment.appendChild(frame);\n fragment.appendChild(focusInterceptAfter);\n fragment.appendChild(clearboth);\n\n container.appendChild(fragment);\n\n return [frame, clearboth];\n};\n\n},{\"../shared/constants\":82,\"../shared/focus-intercept\":85}],80:[function(require,module,exports){\n\"use strict\";\n/** @module braintree-web/hosted-fields */\n\nvar HostedFields = require(\"./external/hosted-fields\");\nvar basicComponentVerification = require(\"../lib/basic-component-verification\");\nvar errors = require(\"./shared/errors\");\nvar supportsInputFormatting = require(\"restricted-input/supports-input-formatting\");\nvar wrapPromise = require(\"@braintree/wrap-promise\");\nvar BraintreeError = require(\"../lib/braintree-error\");\nvar VERSION = \"3.115.1\";\n\n/**\n * Fields used in {@link module:braintree-web/hosted-fields~fieldOptions fields options}\n * @typedef {object} field\n * @property {string} selector Deprecated: Now an alias for `options.container`.\n * @property {(string|HTMLElement)} container A DOM node or CSS selector to find the container where the hosted field will be inserted.\n * @property {string} [placeholder] Will be used as the `placeholder` attribute of the input. If `placeholder` is not natively supported by the browser, it will be polyfilled.\n * @property {string} [type] Will be used as the `type` attribute of the input. To mask `cvv` input, for instance, `type: \"password\"` can be used.\n * @property {string} [iframeTitle] The title used for the iframe containing the credit card input. By default, this will be `Secure Credit Card Frame - `.\n * @property {string} [internalLabel] Each Hosted Field iframe has a hidden label that is used by screen readers to identify the input. The `internalLabel` property can be used to customize the field for localization purposes. The default values are:\n * * number: Credit Card Number\n * * cvv: CVV\n * * expirationDate: Expiration Date\n * * expirationMonth: Expiration Month\n * * expirationYear: Expiration Year\n * * postalCode: Postal Code\n * * cardholderName: Cardholder Name\n * @property {boolean} [formatInput=true] Enable or disable automatic formatting on this field.\n * @property {(object|boolean)} [maskInput=false] Enable or disable input masking when input is not focused. If set to `true` instead of an object, the defaults for the `maskInput` parameters will be used.\n * @property {string} [maskInput.character=•] The character to use when masking the input. The default character ('•') uses a unicode symbol, so the webpage must support UTF-8 characters when using the default.\n * @property {Boolean} [maskInput.showLastFour=false] Only applicable for the credit card field. Whether or not to show the last 4 digits of the card when masking.\n * @property {(object|boolean)} [select] If truthy, this field becomes a `\\n \\n
{{saveCardLabel}}
\\n \\n \\n \\n \\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n\\n
\\n
{{otherWaysToPay}}
\\n
\\n\\n
\\n {{chooseAnotherWayToPay}}\\n
\\n\\n
\\n\";\nvar svgHTML = \"\\n \\n \\n Visa\\n \\n \\n\\n \\n MasterCard\\n \\n \\n \\n \\n \\n \\n\\n \\n Union Pay\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n American Express\\n \\n \\n \\n \\n\\n \\n JCB\\n \\n \\n \\n \\n \\n\\n \\n Discover\\n \\n \\n \\n \\n \\n\\n \\n Diners Club\\n \\n \\n \\n \\n \\n\\n \\n Maestro\\n \\n \\n \\n \\n \\n \\n\\n \\n Elo\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n Hiper\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n Hipercard\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n PayPal Logo\\n \\n \\n \\n \\n \\n \\n\\n \\n PayPal Credit Logo\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n Generic Card\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n CVV Back\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n CVV Front\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n Check\\n \\n \\n\\n \\n X\\n \\n \\n\\n \\n Lock Loader\\n \\n \\n\\n \\n \\n \\n \\n\\n \\n Apple Pay Logo\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Google Pay Mark\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n Venmo\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n\";\n\nvar PASS_THROUGH_EVENTS = [\n 'changeActiveView',\n 'paymentMethodRequestable',\n 'noPaymentMethodRequestable',\n 'paymentOptionSelected',\n\n // Card View Events\n 'card:binAvailable',\n 'card:blur',\n 'card:cardTypeChange',\n 'card:empty',\n 'card:focus',\n 'card:inputSubmitRequest',\n 'card:notEmpty',\n 'card:validityChange',\n\n // 3DS Events\n '3ds:customer-canceled',\n '3ds:authentication-modal-render',\n '3ds:authentication-modal-close'\n];\nvar UPDATABLE_CONFIGURATION_OPTIONS = [\n paymentOptionIDs.paypal,\n paymentOptionIDs.paypalCredit,\n paymentOptionIDs.applePay,\n paymentOptionIDs.googlePay,\n 'threeDSecure'\n];\nvar UPDATABLE_CONFIGURATION_OPTIONS_THAT_REQUIRE_UNVAULTED_PAYMENT_METHODS_TO_BE_REMOVED = [\n paymentOptionIDs.paypal,\n paymentOptionIDs.paypalCredit,\n paymentOptionIDs.applePay,\n paymentOptionIDs.googlePay\n];\nvar HAS_RAW_PAYMENT_DATA = {};\nvar VERSION = '1.44.1';\n\nHAS_RAW_PAYMENT_DATA[constants.paymentMethodTypes.googlePay] = true;\nHAS_RAW_PAYMENT_DATA[constants.paymentMethodTypes.applePay] = true;\n\n/**\n * @typedef {object} Dropin~cardPaymentMethodPayload\n * @property {string} nonce The payment method nonce, used by your server to charge the card.\n * @property {object} details Additional account details. See a full list of details in the [Hosted Fields client reference](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#~tokenizePayload).\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `CreditCard` when the method requested is a card.\n * @property {object} binData Information about the card based on the bin. Documented {@link Dropin~binData|here}.\n * @property {?boolean} vaulted If present and true, indicates that the payment method refers to a vaulted payment method.\n * @property {?string} deviceData If data collector is configured, the device data property to be used when making a transaction.\n * @property {?boolean} liabilityShifted If 3D Secure is configured, whether or not liability did shift.\n * @property {?boolean} liabilityShiftPossible If 3D Secure is configured, whether or not liability shift is possible.\n * @property {?object} threeDSecureInfo If 3D Secure is configured, the `threeDSecureInfo` documented in the [Three D Secure client reference](http://braintree.github.io/braintree-web/3.115.1/ThreeDSecure.html#~verifyPayload)\n */\n\n/**\n * @typedef {object} Dropin~paypalPaymentMethodPayload\n * @property {string} nonce The payment method nonce, used by your server to charge the PayPal account.\n * @property {?boolean} vaulted If present and true, indicates that the payment method refers to a vaulted payment method.\n * @property {object} details Additional PayPal account details. See a full list of details in the [PayPal client reference](http://braintree.github.io/braintree-web/3.115.1/PayPalCheckout.html#~tokenizePayload).\n * @property {string} type The payment method type, always `PayPalAccount` when the method requested is a PayPal account.\n * @property {?string} deviceData If data collector is configured, the device data property to be used when making a transaction.\n */\n\n/**\n * @typedef {object} Dropin~applePayPaymentMethodPayload\n * @property {string} nonce The payment method nonce, used by your server to charge the Apple Pay provided card.\n * @property {?boolean} vaulted If present and true, indicates that the payment method refers to a vaulted payment method.\n * @property {string} details.cardType Type of card, ex: Visa, Mastercard.\n * @property {string} details.cardHolderName The name of the card holder.\n * @property {string} details.dpanLastTwo Last two digits of card number.\n * @property {external:ApplePayPayment} details.rawPaymentData The raw response back from the Apple Pay flow, which includes billing/shipping address, phone and email if passed in as required parameters.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `ApplePayCard` when the method requested is an Apple Pay provided card.\n * @property {object} binData Information about the card based on the bin. Documented {@link Dropin~binData|here}.\n * @property {?string} deviceData If data collector is configured, the device data property to be used when making a transaction.\n */\n\n/**\n * @typedef {object} ApplePayPayment An [Apple Pay Payment object](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment).\n * @external ApplePayPayment\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment ApplePayPayment}\n */\n\n/**\n * @typedef {object} Dropin~venmoPaymentMethodPayload\n * @property {string} nonce The payment method nonce, used by your server to charge the Venmo account.\n * @property {?boolean} vaulted If present and true, indicates that the payment method refers to a vaulted payment method.\n * @property {string} details.username The Venmo username.\n * @property {string} type The payment method type, always `VenmoAccount` when the method requested is a Venmo account.\n * @property {?string} deviceData If data collector is configured, the device data property to be used when making a transaction.\n */\n\n/**\n * @typedef {object} Dropin~googlePayPaymentMethodPayload\n * @property {string} nonce The payment method nonce, used by your server to charge the Google Pay card.\n * @property {?boolean} vaulted If present and true, indicates that the payment method refers to a vaulted payment method.\n * @property {string} details.cardType Type of card, ex: Visa, Mastercard.\n * @property {string} details.lastFour The last 4 digits of the card.\n * @property {string} details.lastTwo The last 2 digits of the card.\n * @property {boolean} details.isNetworkTokenized True if the card is network tokenized. A network tokenized card is a generated virtual card with a device-specific account number (DPAN) that is used in place of the underlying source card.\n * @property {string} details.bin First six digits of card number.\n * @property {external:GooglePayPaymentData} details.rawPaymentData The raw response back from the Google Pay flow, which includes shipping address, phone and email if passed in as required parameters.\n * @property {string} type The payment method type, always `AndroidPayCard` when the method requested is a Google Pay Card.\n * @property {object} binData Information about the card based on the bin. Documented {@link Dropin~binData|here}.\n * @property {?string} deviceData If data collector is configured, the device data property to be used when making a transaction.\n */\n\n/**\n * @typedef {object} GooglePayPaymentData A [Google Pay Payment Data object](https://developers.google.com/pay/api/web/object-reference#PaymentData).\n * @external GooglePayPaymentData\n * @see {@link https://developers.google.com/pay/api/web/object-reference#PaymentData PaymentData}\n */\n\n/**\n * @typedef {object} Dropin~binData Information about the card based on the bin.\n * @property {string} commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} countryOfIssuance The country of issuance.\n * @property {string} debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} issuingBank The issuing bank.\n * @property {string} payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} productId The product id.\n */\n\n/**\n * @name Dropin#on\n * @function\n * @param {string} event The name of the event to which you are subscribing.\n * @param {function} handler A callback to handle the event.\n * @description Subscribes a handler function to a named event. `event` should be one of the following:\n *\n * * [`changeActiveView`](#event:changeActiveView)\n * * [`paymentMethodRequestable`](#event:paymentMethodRequestable)\n * * [`noPaymentMethodRequestable`](#event:noPaymentMethodRequestable)\n * * [`paymentOptionSelected`](#event:paymentOptionSelected)\n *\n * _Card View Specific Events_\n * * [`card:binAvailable`](#event:card:binAvailable)\n * * [`card:blur`](#event:card:blur)\n * * [`card:cardTypeChange`](#event:card:cardTypeChange)\n * * [`card:empty`](#event:card:empty)\n * * [`card:focus`](#event:card:focus)\n * * [`card:inputSubmitRequest`](#event:card:inputSubmitRequest)\n * * [`card:notEmpty`](#event:card:notEmpty)\n * * [`card:validityChange`](#event:card:validityChange)\n *\n * _3DS Specific Events_\n * * [`3ds:customer-canceled`](#event:3ds:customer-canceled)\n * * [`3ds:authentication-modal-render`](#event:3ds:authentication-modal-render)\n * * [`3ds:authentication-modal-close`](#event:3ds:authentication-modal-close)\n * @returns {void}\n * @example\n * Dynamically enable or disable your submit button based on whether or not the payment method is requestable\n * var submitButton = document.querySelector('#submit-button');\n *\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container'\n * }, function (err, dropinInstance) {\n * submitButton.addEventListener('click', function () {\n * dropinInstance.requestPaymentMethod(function (err, payload) {\n * // Send payload.nonce to your server.\n * });\n * });\n *\n * if (dropinInstance.isPaymentMethodRequestable()) {\n * // This will be true if you generated the client token\n * // with a customer ID and there is a saved payment method\n * // available to tokenize with that customer.\n * submitButton.removeAttribute('disabled');\n * }\n *\n * dropinInstance.on('paymentMethodRequestable', function (event) {\n * console.log(event.type); // The type of Payment Method, e.g 'CreditCard', 'PayPalAccount'.\n * console.log(event.paymentMethodIsSelected); // true if a customer has selected a payment method when paymentMethodRequestable fires\n *\n * submitButton.removeAttribute('disabled');\n * });\n *\n * dropinInstance.on('noPaymentMethodRequestable', function () {\n * submitButton.setAttribute('disabled', true);\n * });\n * });\n *\n * @example\n * Automatically submit nonce to server as soon as it becomes available\n * var submitButton = document.querySelector('#submit-button');\n *\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container'\n * }, function (err, dropinInstance) {\n * function sendNonceToServer() {\n * dropinInstance.requestPaymentMethod(function (err, payload) {\n * if (err) {\n * // handle errors\n * }\n *\n * // send payload.nonce to your server\n * });\n * }\n *\n * // allows us to still request the payment method manually, such as\n * // when filling out a credit card form\n * submitButton.addEventListener('click', sendNonceToServer);\n *\n * dropinInstance.on('paymentMethodRequestable', function (event) {\n * // if the nonce is already available (via PayPal authentication\n * // or by using a stored payment method), we can request the\n * // nonce right away. Otherwise, we wait for the customer to\n * // request the nonce by pressing the submit button once they\n * // are finished entering their credit card details. This is\n * // particularly important if your credit card form includes a\n * // postal code input. The `paymentMethodRequestable` event\n * // could fire before the customer has finished entering their\n * // postal code. (International postal codes can be as few as 3\n * // characters in length)\n * if (event.paymentMethodIsSelected) {\n * sendNonceToServer();\n * }\n * });\n * });\n * @example\n * Listen for when the customer navigates to different views in Drop-in\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container'\n * }, function (err, dropinInstance) {\n * dropinInstance.on('changeActiveView', function (event) {\n * // fires when the view changes, such as going from the\n * // credit card view to the saved payment methods view\n * event.oldActivePaymentViewId; // card\n * event.newActivePaymentViewId; // methods\n * });\n * });\n * @example\n * Listen on various events from the card view\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container'\n * }, function (err, dropinInstance) {\n * dropinInstance.on('card:focus', function (event) {\n * // a card field was focussed\n * });\n * dropinInstance.on('card:blur', function (event) {\n * // a card field was blurred\n * });\n * dropinInstance.on('card:validityChange', function (event) {\n * // the card form went from invalid to valid or valid to invalid\n * });\n * });\n */\n\n/**\n * @name Dropin#off\n * @function\n * @param {string} event The name of the event to which you are unsubscribing.\n * @param {function} handler A callback to unsubscribe from the event.\n * @description Unsubscribes a handler function to a named event.\n * @returns {void}\n * @example\n * Subscribe and then unsubscribe from event\n * var callback = function (event) {\n * // do something\n * };\n * dropinInstance.on('paymentMethodRequestable', callback);\n *\n * // later on\n * dropinInstance.off('paymentMethodRequestable', callback);\n */\n\n/**\n * This event is emitted when the payment method available in Drop-in changes. This includes when the state of Drop-in transitions from having no payment method available to having a payment method available and when the kind of payment method available changes. This event is not fired if there is no payment method available on initialization. To check if there is a payment method requestable on initialization, use {@link Dropin#isPaymentMethodRequestable|`isPaymentMethodRequestable`}.\n * @event Dropin#paymentMethodRequestable\n * @type {Dropin~paymentMethodRequestablePayload}\n */\n\n/**\n * @typedef {object} Dropin~paymentMethodRequestablePayload\n * @description The event payload sent from {@link Dropin#on|`on`} with the {@link Dropin#event:paymentMethodRequestable|`paymentMethodRequestable`} event.\n * @property {string} type The type of payment method that is requestable. Either `CreditCard` or `PayPalAccount`.\n * @property {boolean} paymentMethodIsSelected A property to determine if a payment method is currently selected when the payment method becomes requestable.\n *\n * This will be `true` any time a payment method is visibly selected in the Drop-in UI, such as when PayPal authentication completes or a stored payment method is selected.\n *\n * This will be `false` when {@link Dropin#requestPaymentMethod|`requestPaymentMethod`} can be called, but a payment method is not currently selected. For instance, when a card form has been filled in with valid values, but has not been submitted to be converted into a payment method nonce.\n */\n\n/**\n * This event is emitted when there is no payment method available in Drop-in. This event is not fired if there is no payment method available on initialization. To check if there is a payment method requestable on initialization, use {@link Dropin#isPaymentMethodRequestable|`isPaymentMethodRequestable`}. No payload is available in the callback for this event.\n * @event Dropin#noPaymentMethodRequestable\n */\n\n/**\n * This event is emitted when the customer selects a new payment option type (e.g. PayPal, PayPal Credit, credit card). This event is not emitted when the user changes between existing saved payment methods. Only relevant when accepting multiple payment options.\n * @event Dropin#paymentOptionSelected\n * @type {Dropin~paymentOptionSelectedPayload}\n */\n\n/**\n * This event is emitted when the Drop-in view changes what is presented as the active view.\n * @event Dropin#changeActiveView\n * @type {Dropin~changeActiveView}\n */\n\n/**\n * @typedef {object} Dropin~changeActiveView\n * @description The event payload sent from {@link Dropin#on|`on`} with the {@link Dropin#event:changeActiveView|`changeActiveView`} event.\n * @property {string} previousViewId The id for the previously active view. Possible values are:\n * * `card` - The credit card form view\n * * `paypal` - The PayPal view\n * * `payapCredit` - The PayPal Credit view\n * * `venmo` - The Venmo View\n * * `googlePay` - The Google Pay view\n * * `applePay` - The Apple Pay view\n * * `methods` - The view presenting the available payment methods (already vaulted or tokenized payment methods)\n * * `options` - The view presenting the available payment options (where the customer chooses what payment method option to use). Note, if both the methods view and the options view are presented at the same time, `methods` will be shown as the view id.\n * * `delete-confirmation` - The view where the customer confirms they would like to delete their saved payment method.\n * @property {string} newViewId The id for the new active view. The possible values are the same as `previousViewId`.\n */\n\n/**\n * The underlying [hosted fields `binAvailable` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:binAvailable).\n * @event Dropin#card:binAvailable\n * @type {Dropin~card:binAvailable}\n */\n\n/**\n * The underlying [hosted fields `blur` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:blur).\n * @event Dropin#card:blur\n * @type {Dropin~card:blur}\n */\n\n/**\n * The underlying [hosted fields `cardTypeChange` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:cardTypeChange).\n * @event Dropin#card:cardTypeChange\n * @type {Dropin~card:cardTypeChange}\n */\n\n/**\n * The underlying [hosted fields `empty` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:empty).\n * @event Dropin#card:empty\n * @type {Dropin~card:empty}\n */\n\n/**\n * The underlying [hosted fields `focus` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:focus).\n * @event Dropin#card:focus\n * @type {Dropin~card:focus}\n */\n\n/**\n * The underlying [hosted fields `inputSubmitRequest` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:inputSubmitRequest).\n * @event Dropin#card:inputSubmitRequest\n * @type {Dropin~card:inputSubmitRequest}\n */\n\n/**\n * The underlying [hosted fields `notEmpty` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:notEmpty).\n * @event Dropin#card:notEmpty\n * @type {Dropin~card:notEmpty}\n */\n\n/**\n * The underlying [hosted fields `validityChange` event](http://braintree.github.io/braintree-web/3.115.1/HostedFields.html#event:validityChange).\n * @event Dropin#card:validityChange\n * @type {Dropin~card:validityChange}\n */\n\n/**\n * The underlying [3D Secure `customer-canceled` event](http://braintree.github.io/braintree-web/3.115.1/ThreeDSecure.html#event:customer-canceled).\n * @event Dropin#3ds:customer-canceled\n * @type {Dropin~3ds:customer-canceled}\n */\n\n/**\n * The underlying [3D Secure `authentication-modal-render` event](http://braintree.github.io/braintree-web/3.115.1/ThreeDSecure.html#event:authentication-modal-render).\n * @event Dropin#3ds:authentication-modal-render\n * @type {Dropin~3ds:authentication-modal-render}\n */\n\n/**\n * The underlying [3D Secure `authentication-modal-close` event](http://braintree.github.io/braintree-web/3.115.1/ThreeDSecure.html#event:authentication-modal-close).\n * @event Dropin#3ds:authentication-modal-close\n * @type {Dropin~3ds:authentication-modal-close}\n */\n\n/**\n * @typedef {object} Dropin~paymentOptionSelectedPayload\n * @description The event payload sent from {@link Dropin#on|`on`} with the {@link Dropin#event:paymentOptionSelected|`paymentOptionSelected`} event.\n * @property {string} paymentOption The payment option view selected. Either `card`, `paypal`, or `paypalCredit`.\n */\n\n/**\n * @class\n * @param {object} options For create options, see {@link module:braintree-web-drop-in|dropin.create}.\n * @description Do not use this constructor directly. Use {@link module:braintree-web-drop-in|dropin.create} instead.\n * @classdesc This class represents a Drop-in component, that will create a pre-made UI for accepting cards and PayPal on your page. Instances of this class have methods for requesting a payment method and subscribing to events. For more information, see the [Drop-in guide](https://developer.paypal.com/braintree/docs/guides/drop-in/overview/javascript/v3) in the Braintree Developer Docs. To be used in conjunction with the [Braintree Server SDKs](https://developer.paypal.com/braintree/docs/start/hello-server).\n */\nfunction Dropin(options) {\n this._client = options.client;\n this._componentID = uuid();\n this._dropinWrapper = document.createElement('div');\n this._dropinWrapper.id = 'braintree--dropin__' + this._componentID;\n this._dropinWrapper.setAttribute('data-braintree-id', 'wrapper');\n this._dropinWrapper.style.display = 'none';\n this._dropinWrapper.className = 'braintree-loading';\n this._merchantConfiguration = options.merchantConfiguration;\n\n EventEmitter.call(this);\n}\n\nEventEmitter.createChild(Dropin);\n\nDropin.prototype._initialize = function (callback) {\n var localizedStrings, localizedHTML;\n var self = this;\n var container = self._merchantConfiguration.container || self._merchantConfiguration.selector;\n\n if (!container) {\n analytics.sendEvent(self._client, 'configuration-error');\n callback(new DropinError('options.container is required.'));\n\n return;\n } else if (self._merchantConfiguration.container && self._merchantConfiguration.selector) {\n analytics.sendEvent(self._client, 'configuration-error');\n callback(new DropinError('Must only have one options.selector or options.container.'));\n\n return;\n }\n\n if (typeof container === 'string') {\n container = document.querySelector(container);\n }\n\n if (!container || container.nodeType !== 1) {\n analytics.sendEvent(self._client, 'configuration-error');\n callback(new DropinError('options.selector or options.container must reference a valid DOM node.'));\n\n return;\n }\n\n if (container.innerHTML.trim()) {\n analytics.sendEvent(self._client, 'configuration-error');\n callback(new DropinError('options.selector or options.container must reference an empty DOM node.'));\n\n return;\n }\n\n // Backfill with `en`\n self._strings = assign({}, translations.en);\n if (self._merchantConfiguration.locale) {\n localizedStrings = translations[self._merchantConfiguration.locale] || translations[self._merchantConfiguration.locale.split('_')[0]];\n // Fill `strings` with `localizedStrings` that may exist\n self._strings = assign(self._strings, localizedStrings);\n }\n\n if (!isUtf8()) {\n // non-utf-8 encodings often don't support the bullet character\n self._strings.endingIn = self._strings.endingIn.replace(/•/g, '*');\n }\n\n if (self._merchantConfiguration.translations) {\n Object.keys(self._merchantConfiguration.translations).forEach(function (key) {\n self._strings[key] = sanitizeHtml(self._merchantConfiguration.translations[key]);\n });\n }\n\n localizedHTML = Object.keys(self._strings).reduce(function (result, stringKey) {\n var stringValue = self._strings[stringKey];\n\n return result.replace(RegExp('{{' + stringKey + '}}', 'g'), stringValue);\n }, mainHTML);\n\n self._dropinWrapper.innerHTML = svgHTML + localizedHTML;\n container.appendChild(self._dropinWrapper);\n\n self._model = new DropinModel({\n client: self._client,\n container: container,\n componentID: self._componentID,\n merchantConfiguration: self._merchantConfiguration\n });\n\n self._injectStylesheet();\n\n self._model.initialize().then(function () {\n self._model.on('cancelInitialization', function (err) {\n self._dropinWrapper.innerHTML = '';\n analytics.sendEvent(self._client, 'load-error');\n callback(err);\n });\n\n self._model.on('asyncDependenciesReady', function () {\n if (self._model.hasAtLeastOneAvailablePaymentOption()) {\n analytics.sendEvent(self._client, 'appeared');\n self._disableErroredPaymentMethods();\n\n self._handleAppSwitch();\n\n self._model.confirmDropinReady();\n\n callback(null, self);\n } else {\n self._model.cancelInitialization(new DropinError('All payment options failed to load.'));\n }\n });\n\n PASS_THROUGH_EVENTS.forEach(function (eventName) {\n self._model.on(eventName, function (event) {\n self._emit(eventName, event);\n });\n });\n\n return self._setUpDependenciesAndViews();\n }).catch(function (err) {\n self.teardown().then(function () {\n callback(err);\n });\n });\n};\n\n/**\n * Modify your configuration initially set in {@link module:braintree-web-drop-in|`dropin.create`}.\n *\n * If `updateConfiguration` is called after a user completes the PayPal authorization flow, any PayPal accounts not stored in the Vault record will be removed.\n * @public\n * @param {string} property The top-level property to update. Either `paypal`, `paypalCredit`, `applePay`, or `googlePay`.\n * @param {string} key The key of the property to update, such as `amount` or `currency`.\n * @param {any} value The value of the property to update. Must be the type of the property specified in {@link module:braintree-web-drop-in|`dropin.create`}.\n * @returns {void}\n * @example\n * dropinInstance.updateConfiguration('paypal', 'amount', '10.00');\n */\nDropin.prototype.updateConfiguration = function (property, key, value) {\n var view;\n\n if (UPDATABLE_CONFIGURATION_OPTIONS.indexOf(property) === -1) {\n return;\n }\n\n if (property === 'threeDSecure') {\n if (this._threeDSecure) {\n this._threeDSecure.updateConfiguration(key, value);\n }\n\n return;\n }\n\n view = this._mainView.getView(property);\n\n if (!view) {\n return;\n }\n\n view.updateConfiguration(key, value);\n\n if (UPDATABLE_CONFIGURATION_OPTIONS_THAT_REQUIRE_UNVAULTED_PAYMENT_METHODS_TO_BE_REMOVED.indexOf(property) === -1) {\n return;\n }\n\n this._removeUnvaultedPaymentMethods(function (paymentMethod) {\n return paymentMethod.type === constants.paymentMethodTypes[property];\n });\n this._navigateToInitialView();\n};\n\n/**\n * Get a list of the available payment methods presented to the user. This is useful for knowing if a paricular payment option was presented to a customer that is browser dependant such as Apple Pay, Google Pay and Venmo. Returns an array of strings. Possible values:\n * * `applePay`\n * * `card`\n * * `googlePay`\n * * `paypalCredit`\n * * `paypal`\n * * `venmo`\n *\n * @public\n * @returns {string[]} An array of possible payment options.\n * @example\n * var paymentOptions = dropinInstance.getAvailablePaymentOptions(); // ['card', 'venmo', 'paypal']\n *\n * if (paymentOptions.includes('venmo')) {\n * // special logic for when venmo is displayed\n * }\n */\nDropin.prototype.getAvailablePaymentOptions = function () {\n return this._model.supportedPaymentOptions;\n};\n\n/**\n * Removes the currently selected payment method and returns the customer to the payment options view. Does not remove vaulted payment methods.\n * @public\n * @returns {void}\n * @example\n * dropinInstance.requestPaymentMethod(function (requestPaymentMethodError, payload) {\n * if (requestPaymentMethodError) {\n * // handle errors\n * return;\n * }\n *\n * functionToSendNonceToServer(payload.nonce, function (transactionError, response) {\n * if (transactionError) {\n * // transaction sale with selected payment method failed\n * // clear the selected payment method and add a message\n * // to the checkout page about the failure\n * dropinInstance.clearSelectedPaymentMethod();\n * divForErrorMessages.textContent = 'my error message about entering a different payment method.';\n * } else {\n * // redirect to success page\n * }\n * });\n * });\n */\nDropin.prototype.clearSelectedPaymentMethod = function () {\n this._removeUnvaultedPaymentMethods();\n this._model.removeActivePaymentMethod();\n\n if (this._model.getPaymentMethods().length === 0) {\n this._navigateToInitialView();\n\n return;\n }\n\n this._mainView.showLoadingIndicator();\n\n this._model.refreshPaymentMethods().then(function () {\n this._navigateToInitialView();\n this._mainView.hideLoadingIndicator();\n }.bind(this));\n};\n\nDropin.prototype._setUpDataCollector = function () {\n var self = this;\n var config = assign({}, self._merchantConfiguration.dataCollector, {client: self._client});\n\n this._dataCollector = new DataCollector(config);\n\n this._dataCollector.initialize().then(function () {\n self._model.asyncDependencyReady('dataCollector');\n }).catch(function (err) {\n self._model.cancelInitialization(new DropinError({\n message: 'Data Collector failed to set up.',\n braintreeWebError: err\n }));\n });\n};\n\nDropin.prototype._setUpThreeDSecure = function () {\n var self = this;\n\n this._threeDSecure = new ThreeDSecure(this._client, this._model);\n\n this._threeDSecure.initialize().then(function () {\n self._model.asyncDependencyReady('threeDSecure');\n }).catch(function (err) {\n self._model.cancelInitialization(new DropinError({\n message: '3D Secure failed to set up.',\n braintreeWebError: err\n }));\n });\n};\n\nDropin.prototype._setUpDependenciesAndViews = function () {\n if (this._merchantConfiguration.dataCollector) {\n this._setUpDataCollector();\n }\n\n if (this._merchantConfiguration.threeDSecure) {\n this._setUpThreeDSecure();\n }\n\n this._mainView = new MainView({\n client: this._client,\n element: this._dropinWrapper,\n model: this._model,\n strings: this._strings\n });\n};\n\nDropin.prototype._removeUnvaultedPaymentMethods = function (filter) {\n filter = filter || function () { return true; };\n\n this._model.getPaymentMethods().forEach(function (paymentMethod) {\n if (filter(paymentMethod) && !paymentMethod.vaulted) {\n this._model.removePaymentMethod(paymentMethod);\n }\n }.bind(this));\n};\n\nDropin.prototype._navigateToInitialView = function () {\n var initViewId = this._model.getInitialViewId();\n var isOnInitView = this._mainView.primaryView.ID === initViewId;\n\n if (isOnInitView) {\n return;\n }\n\n if (this._model.hasPaymentMethods()) {\n return;\n }\n\n this._mainView.setPrimaryView(initViewId);\n};\n\nDropin.prototype._supportsPaymentOption = function (paymentOption) {\n return this._model.supportedPaymentOptions.indexOf(paymentOption) !== -1;\n};\n\nDropin.prototype._disableErroredPaymentMethods = function () {\n var paymentMethodOptionsElements;\n var failedDependencies = Object.keys(this._model.failedDependencies);\n\n if (failedDependencies.length === 0) {\n return;\n }\n\n paymentMethodOptionsElements = this._mainView.getOptionsElements();\n\n failedDependencies.forEach(function (paymentMethodId) {\n var element = paymentMethodOptionsElements[paymentMethodId];\n var div = element.div;\n var clickHandler = element.clickHandler;\n var error = this._model.failedDependencies[paymentMethodId];\n var errorMessageDiv = div.querySelector('.braintree-option__disabled-message');\n\n div.classList.add('braintree-disabled');\n div.removeEventListener('click', clickHandler);\n errorMessageDiv.innerHTML = constants.errors.DEVELOPER_MISCONFIGURATION_MESSAGE;\n console.error(error); // eslint-disable-line no-console\n }.bind(this));\n};\n\nDropin.prototype._sendVaultedPaymentMethodAppearAnalyticsEvents = function () {\n var i, type;\n var typesThatSentAnEvent = {};\n var paymentMethods = this._model._paymentMethods;\n\n for (i = 0; i < paymentMethods.length; i++) {\n type = paymentMethods[i].type;\n\n if (type in typesThatSentAnEvent) {\n // prevents us from sending the analytic multiple times\n // for the same payment method type\n continue;\n }\n\n typesThatSentAnEvent[type] = true;\n\n analytics.sendEvent(this._client, 'vaulted-' + constants.analyticsKinds[type] + '.appear');\n }\n};\n\nDropin.prototype._handleAppSwitch = function () {\n if (this._model.appSwitchError) {\n this._mainView.setPrimaryView(this._model.appSwitchError.id);\n this._model.reportError(this._model.appSwitchError.error);\n } else if (this._model.appSwitchPayload) {\n this._model.addPaymentMethod(this._model.appSwitchPayload);\n } else {\n this._sendVaultedPaymentMethodAppearAnalyticsEvents();\n }\n};\n\n/**\n * Requests a payment method object which includes the payment method nonce used by by the [Braintree Server SDKs](https://developer.paypal.com/braintree/docs/start/hello-server).\n *\n * If a payment method is not available, an error will appear in the UI. When a callback is used, an error will be passed to it. If no callback is used, the returned Promise will be rejected with an error.\n * @public\n * @param {object} [options] All options for requesting a payment method.\n * @param {object} [options.threeDSecure] Any of the options in the [Braintree 3D Secure client reference](https://braintree.github.io/braintree-web/3.115.1/ThreeDSecure.html#verifyCard) except for `nonce`, `bin`, and `onLookupComplete`. If `amount` is provided, it will override the value of `amount` in the [3D Secure create options](module-braintree-web-drop-in.html#~threeDSecureOptions). The more options provided, the more likely the customer will not need to answer a 3DS challenge. When 3DS is enabled, both credit cards and non-network tokenized Google Pay cards will perform verfication. The recommended fields for achieving a 3DS v2 verification are:\n * * `email`\n * * `mobilePhoneNumber`\n * * `billingAddress`\n *\n * For an example of verifying 3D Secure within Drop-in, [check out this codepen](https://codepen.io/braintree/pen/KjWqGx).\n * @param {callback} [callback] May be used as the only parameter in requestPaymentMethod if no `options` are provided. The first argument will be an error if no payment method is available and will otherwise be null. The second argument will be an object containing a payment method nonce; either a {@link Dropin~cardPaymentMethodPayload|cardPaymentMethodPayload}, a {@link Dropin~paypalPaymentMethodPayload|paypalPaymentMethodPayload}, a {@link Dropin~venmoPaymentMethodPayload|venmoPaymentMethodPayload}, a {@link Dropin~googlePayPaymentMethodPayload|googlePayPaymentMethodPayload} or an {@link Dropin~applePayPaymentMethodPayload|applePayPaymentMethodPayload}. If no callback is provided, `requestPaymentMethod` will return a promise.\n * @returns {(void|Promise)} Returns a promise if no callback is provided.\n * @example Requesting a payment method\n * var form = document.querySelector('#my-form');\n * var hiddenNonceInput = document.querySelector('#my-nonce-input');\n *\n * form.addEventListener('submit', function (event) {\n * event.preventDefault();\n *\n * dropinInstance.requestPaymentMethod(function (err, payload) {\n * if (err) {\n * // handle error\n * return;\n * }\n * hiddenNonceInput.value = payload.nonce;\n * form.submit();\n * });\n * });\n * @example Requesting a payment method with data collector\n * var form = document.querySelector('#my-form');\n * var hiddenNonceInput = document.querySelector('#my-nonce-input');\n * var hiddenDeviceDataInput = document.querySelector('#my-device-data-input');\n *\n * form.addEventListener('submit', function (event) {\n * event.preventDefault();\n *\n * dropinInstance.requestPaymentMethod(function (err, payload) {\n * if (err) {\n * // handle error\n * return;\n * }\n * hiddenNonceInput.value = payload.nonce;\n * hiddenDeviceDataInput.value = payload.deviceData;\n * form.submit();\n * });\n * });\n *\n * @example Requesting a payment method with 3D Secure\n * var form = document.querySelector('#my-form');\n * var hiddenNonceInput = document.querySelector('#my-nonce-input');\n *\n * form.addEventListener('submit', function (event) {\n * event.preventDefault();\n *\n * dropinInstance.requestPaymentMethod(function (err, payload) {\n * if (err) {\n * // Handle error\n * return;\n * }\n *\n * if (payload.liabilityShifted || (payload.type !== 'CreditCard' && payload.type !== 'AndroidPayCard')) {\n * hiddenNonceInput.value = payload.nonce;\n * form.submit();\n * } else {\n * // Decide if you will force the user to enter a different payment method\n * // if liability was not shifted\n * dropinInstance.clearSelectedPaymentMethod();\n * }\n * });\n * });\n */\nDropin.prototype.requestPaymentMethod = function (options) {\n // NEXT_MAJOR_VERSION\n // what should happen when this method is called while a payment\n // method is already being requested? Should it error? Should\n // they both resolve with the payload from the original request?\n // this is only important because when doing 3ds, multiple\n // requests in quick succession can get you into a state\n // where it errors because the 3ds verification is called twice\n var self = this;\n\n options = options || {};\n\n return this._mainView.requestPaymentMethod().then(function (payload) {\n if (self._shouldPerformThreeDSecureVerification(payload)) {\n self._mainView.showLoadingIndicator();\n\n return self._threeDSecure.verify(payload, options.threeDSecure).then(function (newPayload) {\n self._model.shouldWaitForVerifyCard = false;\n payload.nonce = newPayload.nonce;\n payload.liabilityShifted = newPayload.liabilityShifted;\n payload.liabilityShiftPossible = newPayload.liabilityShiftPossible;\n payload.threeDSecureInfo = newPayload.threeDSecureInfo;\n self._model.setPaymentMethodRequestable({\n isRequestable: Boolean(newPayload),\n type: newPayload.type,\n selectedPaymentMethod: payload\n });\n\n self._mainView.hideLoadingIndicator();\n\n return payload;\n }).catch(function (err) {\n self.clearSelectedPaymentMethod();\n\n return self._model.refreshPaymentMethods().then(function () {\n self._mainView.hideLoadingIndicator();\n\n return Promise.reject(new DropinError({\n message: 'Something went wrong during 3D Secure authentication. Please try again.',\n braintreeWebError: err\n }));\n });\n });\n }\n\n return payload;\n }).then(function (payload) {\n if (self._dataCollector) {\n payload.deviceData = self._dataCollector.getDeviceData();\n }\n\n return payload;\n }).then(function (payload) {\n return formatPaymentMethodPayload(payload);\n });\n};\n\nDropin.prototype._shouldPerformThreeDSecureVerification = function (payload) {\n if (!this._threeDSecure) {\n return false;\n }\n\n if (payload.liabilityShifted != null) {\n return false;\n }\n\n if (payload.type === constants.paymentMethodTypes.card) {\n return true;\n }\n\n if (payload.type === constants.paymentMethodTypes.googlePay && payload.details.isNetworkTokenized === false) {\n return true;\n }\n\n return false;\n};\n\nDropin.prototype._removeStylesheet = function () {\n var stylesheet = document.getElementById(constants.STYLESHEET_ID);\n\n if (stylesheet) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n};\n\nDropin.prototype._injectStylesheet = function () {\n var assetsUrl;\n var loadStylesheetOptions = {\n id: constants.STYLESHEET_ID\n };\n\n if (document.getElementById(constants.STYLESHEET_ID)) { return; }\n\n assetsUrl = this._client.getConfiguration().gatewayConfiguration.assetsUrl;\n loadStylesheetOptions.href = assetsUrl + '/web/dropin/' + VERSION + '/css/dropin.css';\n\n if (this._model.isInShadowDom) {\n // if Drop-in is in the shadow DOM, put the\n // style sheet in the shadow DOM node instead of\n // in the head of the document\n loadStylesheetOptions.container = this._model.rootNode;\n }\n\n assets.loadStylesheet(loadStylesheetOptions);\n};\n\n/**\n * Cleanly remove anything set up by {@link module:braintree-web-drop-in|dropin.create}. This may be be useful in a single-page app.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. No data is returned if teardown completes successfully. If no callback is provided, `teardown` will return a promise.\n * @returns {(void|Promise)} Returns a promise if no callback is provided.\n */\nDropin.prototype.teardown = function () {\n var teardownError;\n var promise = Promise.resolve();\n var self = this;\n\n this._removeStylesheet();\n\n if (this._mainView) {\n promise.then(function () {\n return self._mainView.teardown().catch(function (err) {\n teardownError = err;\n });\n });\n }\n\n if (this._dataCollector) {\n promise.then(function () {\n return this._dataCollector.teardown().catch(function (error) {\n teardownError = new DropinError({\n message: 'Drop-in errored tearing down Data Collector.',\n braintreeWebError: error\n });\n });\n }.bind(this));\n }\n\n if (this._threeDSecure) {\n promise.then(function () {\n return this._threeDSecure.teardown().catch(function (error) {\n teardownError = new DropinError({\n message: 'Drop-in errored tearing down 3D Secure.',\n braintreeWebError: error\n });\n });\n }.bind(this));\n }\n\n return promise.then(function () {\n return self._removeDropinWrapper();\n }).then(function () {\n if (teardownError) {\n return Promise.reject(teardownError);\n }\n\n return Promise.resolve();\n });\n};\n\n/**\n * Returns a boolean indicating if a payment method is available through {@link Dropin#requestPaymentMethod|requestPaymentMethod}. Particularly useful for detecting if using a client token with a customer ID to show vaulted payment methods.\n * @public\n * @returns {Boolean} True if a payment method is available, otherwise false.\n */\nDropin.prototype.isPaymentMethodRequestable = function () {\n return this._model.isPaymentMethodRequestable();\n};\n\nDropin.prototype._removeDropinWrapper = function () {\n this._dropinWrapper.parentNode.removeChild(this._dropinWrapper);\n\n return Promise.resolve();\n};\n\nfunction formatPaymentMethodPayload(paymentMethod) {\n var formattedPaymentMethod = {\n nonce: paymentMethod.nonce,\n details: paymentMethod.details,\n type: paymentMethod.type\n };\n\n if (paymentMethod.vaulted != null) {\n formattedPaymentMethod.vaulted = paymentMethod.vaulted;\n }\n\n if (paymentMethod.type === constants.paymentMethodTypes.card) {\n formattedPaymentMethod.description = paymentMethod.description;\n }\n\n if (paymentMethod.type in HAS_RAW_PAYMENT_DATA) {\n formattedPaymentMethod.details.rawPaymentData = paymentMethod.rawPaymentData;\n }\n\n if (typeof paymentMethod.liabilityShiftPossible === 'boolean') {\n formattedPaymentMethod.liabilityShifted = paymentMethod.liabilityShifted;\n formattedPaymentMethod.liabilityShiftPossible = paymentMethod.liabilityShiftPossible;\n }\n\n if (paymentMethod.threeDSecureInfo) {\n formattedPaymentMethod.threeDSecureInfo = paymentMethod.threeDSecureInfo;\n }\n\n if (paymentMethod.deviceData) {\n formattedPaymentMethod.deviceData = paymentMethod.deviceData;\n }\n\n if (paymentMethod.binData) {\n formattedPaymentMethod.binData = paymentMethod.binData;\n }\n\n return formattedPaymentMethod;\n}\n\nmodule.exports = wrapPrototype(Dropin);\n\n},{\"./constants\":207,\"./dropin-model\":208,\"./lib/analytics\":212,\"./lib/assign\":213,\"./lib/data-collector\":216,\"./lib/dropin-error\":217,\"./lib/is-utf-8\":221,\"./lib/sanitize-html\":224,\"./lib/three-d-secure\":226,\"./translations\":247,\"./views/main-view\":266,\"@braintree/asset-loader\":1,\"@braintree/event-emitter\":36,\"@braintree/uuid\":42,\"@braintree/wrap-promise\":46}],210:[function(require,module,exports){\n'use strict';\n/**\n * @module braintree-web-drop-in\n * @description There are two ways to integrate Drop-in into your page: a script tag integration and a JavaScript integration using [`dropin.create`](#.create).\n *\n * The script tag integration is the fastest way to integrate. All you need to do is add the Drop-in script inside your form element where you want Drop-in to appear and include a `data-braintree-dropin-authorization` property with your [tokenization key](https://developer.paypal.com/braintree/docs/guides/authorization/tokenization-key/javascript/v3) or [client token](https://developer.paypal.com/braintree/docs/guides/authorization/client-token).\n *\n * When your form is submitted, Drop-in will intercept the form submission and attempt to tokenize the payment method. If the tokenization is successful, it will insert the payment method nonce into a hidden input with the name `payment_method_nonce` and then submit your form. If the tokenization is unsuccessful, a relevant error will be shown in the UI.\n *\n * If you have data collector enabled, the device data will be injected into a hidden input with the name `device_data` before form submission.\n *\n * Specify creation options as data attributes in your script tag, as shown in the examples below. The following configuration properties may be set:\n *\n * * `data-locale`\n * * `data-card.cardholder-name.required`\n * * `data-payment-option-priority`\n * * `data-data-collector.kount`\n * * `data-data-collector.paypal`\n * * `data-paypal.amount`\n * * `data-paypal.currency`\n * * `data-paypal.flow`\n * * `data-paypal-credit.amount`\n * * `data-paypal-credit.currency`\n * * `data-paypal-credit.flow`\n *\n * For more control and customization, use [`dropin.create` instead](#.create).\n *\n * See our [demo app](../../script-tag-integration.html) for an example of using our script tag integration.\n *\n * @example\n * A full example accepting only cards\n * \n * \n * \n * \n * Checkout\n * \n * \n *
\n * \n * \n *
\n * \n * \n *\n * @example\n * A full example accepting cards, PayPal, and PayPal credit\n * \n * \n * \n * \n * Checkout\n * \n * \n *
\n * \n * \n *
\n * \n * \n *\n * @example\n * Specifying a locale and payment option priority\n *
\n * \n * \n *
\n *\n * @example\n * Including an optional cardholder name field in card form\n *
\n * \n * \n *
\n *\n * @example\n * Including a required cardholder name field in card form\n *
\n * \n * \n *
\n */\n\nvar Dropin = require('./dropin');\nvar client = require('braintree-web/client');\nvar createFromScriptTag = require('./lib/create-from-script-tag');\nvar constants = require('./constants');\nvar analytics = require('./lib/analytics');\nvar DropinError = require('./lib/dropin-error');\nvar wrapPromise = require('@braintree/wrap-promise');\n\nvar VERSION = '1.44.1';\n\n/**\n * @typedef {object} cardCreateOptions The configuration options for cards. Internally, Drop-in uses [Hosted Fields](http://braintree.github.io/braintree-web/3.115.1/module-braintree-web_hosted-fields.html) to render the card form. The `overrides.fields` and `overrides.styles` allow the Hosted Fields to be customized.\n *\n * @param {(boolean|object)} [cardholderName] Will enable a cardholder name field above the card number field. If set to an object, you can specify whether or not the field is required. If set to a `true`, it will default the field to being present, but not required.\n * @param {boolean} [cardholderName.required=false] When true, the cardholder name field will be required to request the payment method nonce.\n * @param {object} [overrides.fields] The Hosted Fields [`fields` options](http://braintree.github.io/braintree-web/3.115.1/module-braintree-web_hosted-fields.html#~fieldOptions). Only `number`, `cvv`, `expirationDate` and `postalCode` can be configured. Each is a [Hosted Fields `field` object](http://braintree.github.io/braintree-web/3.115.1/module-braintree-web_hosted-fields.html#~field). `selector` cannot be modified.\n * @param {object} [overrides.styles] The Hosted Fields [`styles` options](http://braintree.github.io/braintree-web/3.115.1/module-braintree-web_hosted-fields.html#~styleOptions). These can be used to add custom styles to the Hosted Fields iframes. To style the rest of Drop-in, [review the documentation for customizing Drop-in](https://developer.paypal.com/braintree/docs/guides/drop-in/customization/javascript/v3#customize-your-ui).\n * @param {boolean} [clearFieldsAfterTokenization=true] When false, the card form will not clear the card data when the customer returns to the card view after a successful tokenization.\n * @param {object} [vault] Configuration for vaulting credit cards. Only applies when using a [client token with a customer id](https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#customer_id).\n * @param {boolean} [vault.allowVaultCardOverride=false] When true, the card form will include an option to let the customer decide not to vault the credit card they enter.\n * @param {boolean} [vault.vaultCard=true] Whether or not to vault the card upon tokenization. When set to `false` with `allowVaultCardOverride` set to `false`, then cards will not be vaulted.\n */\n\n/**\n * @typedef {object} dataCollectorOptions The configuration options for Data Collector. Requires [advanced fraud protection](https://developer.paypal.com/braintree/docs/guides/premium-fraud-management-tools/client-side/javascript/v3) to be enabled in the Braintree gateway. If using Kount, contact our [support team](https://developer.paypal.com/braintree/help) to configure your Kount ID. The device data will be included on the {@link Dropin#requestPaymentMethod|requestPaymentMethod payload}.\n *\n * @param {boolean} [kount] If true, Kount fraud data collection is enabled.\n */\n\n/**\n * @typedef {object} threeDSecureOptions Configuration options to pass when creating the 3D Secure module used in Drop-in. `amount` for 3D Secure verification can be passed here, but it's recomended that it and all other 3D Secure verification options be passed to the {@link Dropin#requestPaymentMethod|requestPaymentMethod options} instead. Any `cardinalSDKConfig` options must be passed here when creating Drop-in.\n *\n * @param {options} cardinalSDKConfig A configuration object to adjust the configuration for the underlying Cardinal SDK (Braintree's 3D Secure provider). See [`cardinalSDKConfig` options](http://braintree.github.io/braintree-web/3.115.1/module-braintree-web_three-d-secure.html#.create) for all options.\n * @param {string} amount __Deprecated__ The amount to verify with 3D Secure. Set amount in the {@link Dropin#requestPaymentMethod|requestPaymentMethod options} instead.\n */\n\n/** @typedef {object} paypalCreateOptions The configuration options for PayPal and PayPalCredit. For a full list of options see the [PayPal Checkout client reference options](http://braintree.github.io/braintree-web/3.115.1/PayPalCheckout.html#createPayment).\n *\n * @param {string} flow Either `checkout` for a one-time [Checkout with PayPal](https://developer.paypal.com/braintree/docs/guides/paypal/checkout-with-paypal/javascript/v3) flow or `vault` for a [Vault flow](https://developer.paypal.com/braintree/docs/guides/paypal/vault/javascript/v3). Required when using PayPal or PayPal Credit.\n * @param {(string|number)} [amount] The amount of the transaction. Required when using the Checkout flow.\n * @param {string} [currency] The currency code of the amount, such as `USD`. Required when using the Checkout flow.\n * @param {object} [buttonStyle] The style object to apply to the PayPal button. Button customization includes color, shape, size, and label. The options [found here](https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/customize-button/#button-styles) are available.\n * @param {boolean} [commit] The user action to show on the PayPal review page. If true, a `Pay Now` button will be shown. If false, a `Continue` button will be shown.\n * @param {object} [vault] Configuration for vaulting PayPal accounts. Only applies when using a [client token with a customer id](https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#customer_id).\n * @param {boolean} [vault.vaultPayPal=true] Whether or not to vault the PayPal account upon tokenization.\n */\n\n/** @typedef {object} applePayCreateOptions The configuration options for Apple Pay.\n *\n * @param {string} [buttonStyle=black] Configures the Apple Pay button style. Valid values are `black`, `white`, `white-outline`.\n * @param {string} displayName The canonical name for your store. Use a non-localized name. This parameter should be a utf-8 string that is a maximum of 128 characters. The system may display this name to the user.\n * @param {number} [applePaySessionVersion=2] The [version of the `ApplePaySession`](https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_on_the_web_version_history) to use. It's recommended to use the lowest version that contains all the features you need for your checkout to maximize compatibility.\n * @param {external:ApplePayPaymentRequest} paymentRequest The payment request details to apply on top of those from Braintree.\n */\n\n/** @typedef {object} googlePayCreateOptions The configuration options for Google Pay. Additional options from the few listed here are available, many have default values applied based on the settings found in the Braintree Gateway. For more information, see [Google's Documentation](https://developers.google.com/pay/api/web/object-reference#request-objects).\n *\n * @param {string} merchantId The ID provided by Google for processing transactions in production. Not necessary for testing in sandbox.\n * @param {string} [googlePayVersion=1] The version of the Google Pay API to use. Defaults to 1, but 2 can be passed in.\n * @param {external:GooglePayTransactionInfo} transactionInfo The transaction details necessary for processing the payment.\n * @param {external:GooglePayButtonOptions} [button] The button options for configuring the look of the Google Pay button. The `onClick` property cannot be overwritten.\n */\n\n/**\n * @typedef {object} ApplePayPaymentRequest An [Apple Pay Payment Request object](https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest).\n * @external ApplePayPaymentRequest\n * @see {@link https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest PaymentRequest}\n */\n\n/**\n * @typedef {object} GooglePayTransactionInfo A [Google Pay TransactionInfo object](https://developers.google.com/pay/api/web/object-reference#TransactionInfo).\n * @external GooglePayTransactionInfo\n * @see {@link https://developers.google.com/pay/api/web/object-reference#TransactionInfo TransactionInfo}\n */\n\n/**\n * @typedef {object} GooglePayButtonOptions A [Google Pay ButtonOptions object](https://developers.google.com/pay/api/web/reference/object#ButtonOptions).\n * @external GooglePayButtonOptions\n * @see {@link https://developers.google.com/pay/api/web/reference/object#ButtonOptions ButtonOptions}\n */\n\n/** @typedef {(object|boolean)} venmoCreateOptions The configuration options for Venmo. If `true` is passed instead of a configuration object, the default settings listed will be used.\n *\n * @param {boolean} [allowNewBrowserTab=true] If false, it restricts supported browsers to those that can app switch to the Venmo app without opening a new tab.\n */\n\n/**\n * @static\n * @function create\n * @description This function is the entry point for `braintree.dropin`. It is used for creating {@link Dropin} instances.\n * @param {object} options Object containing all {@link Dropin} options:\n * @param {string} options.authorization A [tokenization key](https://developer.paypal.com/braintree/docs/guides/authorization/tokenization-key/javascript/v3) or a [client token](https://developer.paypal.com/braintree/docs/guides/authorization/client-token). If authorization is a client token created with a [customer ID](https://developer.paypal.com/braintree/docs/guides/drop-in/customization/javascript/v3#display-a-saved-payment-method), Drop-in will render saved payment methods and automatically store any newly-added payment methods in their Vault record.\n * @param {(string|HTMLElement)} options.container A reference to an empty element, such as a `
`, where Drop-in will be included on your page or the selector for the empty element. e.g. `#dropin-container`.\n * @param {string} options.selector Deprecated: Now an alias for `options.container`.\n * @param {string} [options.locale=`en_US`] Use this option to change the language, links, and terminology used throughout Drop-in. Supported locales include:\n * `ar_EG`,\n * `cs_CZ`,\n * `da_DK`,\n * `de_DE`,\n * `el_GR`,\n * `en_AU`,\n * `en_GB`,\n * `en_IN`,\n * `en_US`,\n * `es_ES`,\n * `es_XC`,\n * `fi_FI`,\n * `fr_CA`,\n * `fr_FR`,\n * `fr_XC`,\n * `he_IL`,\n * `hu_HU`,\n * `id_ID`,\n * `it_IT`,\n * `ja_JP`,\n * `ko_KR`,\n * `nl_NL`,\n * `no_NO`,\n * `pl_PL`,\n * `pt_BR`,\n * `pt_PT`,\n * `ru_RU`,\n * `sk_SK`,\n * `sv_SE`,\n * `th_TH`,\n * `zh_CN`,\n * `zh_HK`,\n * `zh_TW`,\n * `zh_XC`.\n *\n * @param {object} [options.translations] To use your own translations, pass an object with the strings you wish to replace. This object must use the same structure as the object used internally for supported translations, which can be found [here](https://github.com/braintree/braintree-web-drop-in/blob/main/src/translations/en_US.js). Any strings that are not included will be those from the provided `locale` or `en_US` if no `locale` is provided. See below for an example of creating Drop-in with custom translations.\n * @param {string[]} [options.paymentOptionPriority] Use this option to indicate the order in which enabled payment options should appear when multiple payment options are enabled. By default, payment options will appear in this order: `['card', 'paypal', 'paypalCredit', 'venmo', 'applePay', 'googlePay']`. Payment options omitted from this array will not be offered to the customer.\n * @param {string[]} [options.hiddenVaultedPaymentMethodTypes] Use this option to hide certain types of vaulted payment methods from being displayed to the customer. Apple Pay, Google Pay and Venmo are always hidden (as those payment methods are only availabe as vaulted payment methods for existing subscriptions, new transactions or subscriptions must be newly authorized). Available options:\n * * `'card'`\n * * `'paypal'`\n * * `'paypalCredit'` (same as PayPal)\n *\n * @param {(boolean|object)} [options.card] The configuration options for cards. See [`cardCreateOptions`](#~cardCreateOptions) for all `card` options. If this option is omitted, cards will still appear as a payment option. To remove cards, pass `false` for the value.\n * @param {object} [options.paypal] The configuration options for PayPal. To include a PayPal option in your Drop-in integration, include the `paypal` parameter and [enable PayPal in the Braintree Control Panel](https://developer.paypal.com/braintree/docs/guides/paypal/testing-go-live#go-live). To test in Sandbox, you will need to [link a PayPal sandbox test account to your Braintree sandbox account](https://developer.paypal.com/braintree/docs/guides/paypal/testing-go-live#linked-paypal-testing).\n *\n * Some of the PayPal configuration options are listed [here](#~paypalCreateOptions), but for a full list see the [PayPal Checkout client reference options](http://braintree.github.io/braintree-web/3.115.1/PayPalCheckout.html#createPayment).\n *\n * @param {object} [options.paypalCredit] The configuration options for PayPal Credit. To include a PayPal Credit option in your Drop-in integration, include the `paypalCredit` parameter and [enable PayPal in the Braintree Control Panel](https://developer.paypal.com/braintree/docs/guides/paypal/testing-go-live#go-live).\n *\n * Some of the PayPal Credit configuration options are listed [here](#~paypalCreateOptions), but for a full list see the [PayPal Checkout client reference options](http://braintree.github.io/braintree-web/3.115.1/PayPalCheckout.html#createPayment). For more information on PayPal Credit, see the [Braintree Developer Docs](https://developer.paypal.com/braintree/docs/guides/paypal/paypal-credit/javascript/v3).\n *\n * @param {(object|boolean)} [options.venmo] The configuration options for Pay with Venmo. To include a Venmo option in your Drop-in integration, include the `venmo` parameter and [follow the documentation for setting up Venmo in the Braintree control panel](https://articles.braintreepayments.com/guides/payment-methods/venmo#setup). If a user's browser does not support Venmo, the Venmo option will not be rendered.\n *\n * See [`venmoCreateOptions`](#~venmoCreateOptions) for `venmo` options.\n *\n * @param {object} [options.applePay] The configuration options for Apple Pay. To include an Apple Pay option in your Drop-in integration, include the `applePay` parameter and [enable Apple Pay in the Braintree Control Panel](https://developer.paypal.com/braintree/docs/guides/apple-pay/configuration/javascript/v3). If a user's browser does not support Apple Pay, the Apple Pay option will not be rendered. See [Apple's documentation](https://support.apple.com/en-us/HT201469) for browser and device support.\n *\n * See [`applePayCreateOptions`](#~applePayCreateOptions) for `applePay` options.\n *\n * @param {object} [options.googlePay] The configuration options for Google Pay. To include a Google Pay option in your Drop-in integration, include the `googlePay` parameter and [enable Google Pay in the Braintree Control Panel](https://developer.paypal.com/braintree/docs/guides/google-pay/configuration/javascript/v3). If a user's browser does not support Google Pay, the Google Pay option will not be rendered. See [Google's documentation](https://developers.google.com/pay/api/web/test-and-deploy) for browser and device support.\n *\n * See [`googlePayCreateOptions`](#~googlePayCreateOptions) for `googlePay` options.\n *\n * @param {object|boolean} [options.dataCollector] If `true` is passed, Drop-in will be configured to collect data for use with Advanced Fraud Protection. If collecting data via Kount, pass a [`dataCollectorOptions` object](#~dataCollectorOptions) with `kount: true` instead. If Data Collector is configured and fails to load, Drop-in creation will fail.\n *\n * @param {(boolean|object)} [options.threeDSecure] When `true` is passed, the 3D Secure module will be created with a default configuration. See [`threeDSecureOptions`](#~threeDSecureOptions) for additional create options. If 3D Secure is configured and fails to load, Drop-in creation will fail.\n *\n * @param {boolean} [options.vaultManager=false] Whether or not to allow a customer to delete saved payment methods when used with a [client token with a customer id](https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#customer_id). *Note:* Deleting a payment method from Drop-in will permanently delete the payment method, so this option is not recommended for merchants using Braintree's recurring billing system.\n *\n * @param {boolean} [options.preselectVaultedPaymentMethod=true] Whether or not to initialize Drop-in with a vaulted payment method pre-selected. Only applicable when using a [client token with a customer id](https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#customer_id) and a customer with saved payment methods.\n *\n * @param {boolean} [options.showDefaultPaymentMethodFirst=true] When `true` or left out, the customer's default payment method will be displayed first in the list of vaulted payment methods. When `false`, the order of the displayed payment methods is not guaranteed. Only applicable when using a [client token with a customer id](https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#customer_id) and a customer with saved payment methods.\n *\n * @param {function} [callback] The second argument, `data`, is the {@link Dropin} instance. Returns a promise if no callback is provided.\n * @returns {(void|Promise)} Returns a promise if no callback is provided.\n * @example\n * A full example of accepting credit cards with callback API\n * \n * \n * \n * \n * Checkout\n * \n * \n *
\n * \n *\n * \n *\n * \n * \n * \n * @example\n * A full example of accepting credit cards with promise API\n * \n * \n * \n * \n * Checkout\n * \n * \n *
\n * \n *\n * \n *\n * \n * \n * \n * @example\n * Setting up a Drop-in instance to accept credit cards, PayPal, PayPal Credit, Venmo, and Apple Pay\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * applePay: {\n * displayName: 'Merchant Name',\n * paymentRequest: {\n * total: {\n * label: 'Localized Name',\n * amount: '10.00'\n * }\n * }\n * },\n * paypal: {\n * flow: 'checkout',\n * amount: '10.00',\n * currency: 'USD'\n * },\n * paypalCredit: {\n * flow: 'checkout',\n * amount: '10.00',\n * currency: 'USD'\n * },\n * venmo: true\n * }, function (err, dropinInstance) {\n * // Set up a handler to request a payment method and\n * // submit the payment method nonce to your server\n * });\n * @example\n * Setting up a Drop-in instance to accept Venmo with restricted browser support\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * venmo: {\n * allowNewBrowserTab: false\n * }\n * }, function (err, dropinInstance) {\n * // Set up a handler to request a payment method and\n * // submit the payment method nonce to your server\n * });\n *\n * @example\n * Submitting the payment method nonce to the server using a form\n * \n * \n * \n * \n * Checkout\n * \n * \n *
\n *
\n * \n * \n *
\n *\n * \n *\n * \n * \n * \n *\n * @example\n * Use your own translations\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * translations: {\n * payingWith: 'You are paying with {{paymentSource}}',\n * chooseAnotherWayToPay: 'My custom chooseAnotherWayToPay string',\n * // Any other custom translation strings\n * }\n * }, callback);\n *\n * @example\n * Customizing Drop-in with card form overrides\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * card: {\n * overrides: {\n * fields: {\n * number: {\n * placeholder: '1111 1111 1111 1111' // Update the number field placeholder\n * },\n * postalCode: {\n * minlength: 5 // Set the minimum length of the postal code field\n * },\n * cvv: null // Remove the CVV field from your form\n * },\n * styles: {\n * input: {\n * 'font-size': '18px' // Change the font size for all inputs\n * },\n * ':focus': {\n * color: 'red' // Change the focus color to red for all inputs\n * }\n * }\n * }\n * }\n * }, callback);\n *\n * @example\n * Mask Card Inputs\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * card: {\n * overrides: {\n * fields: {\n * number: {\n * maskInput: {\n * showLastFour: true\n * }\n * },\n * cvv: {\n * maskInput: true\n * }\n * }\n * }\n * }\n * }, callback);\n *\n * @example\n * Including a cardholder name field\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * card: {\n * cardholderName: true\n * }\n * }, callback);\n *\n * @example\n * Including a required cardholder name field\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * card: {\n * cardholderName: {\n * required: true\n * }\n * }\n * }, callback);\n *\n * @example\n * Enabling 3D Secure\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * threeDSecure: true\n * }, function (err, dropinInstance) {\n * // setup payment button\n * btn.addEventListener('click', function (e) {\n * e.preventDefault();\n *\n * dropinInstance.requestPaymentMethod(|\n * threeDSecure: {\n * amount: '100.00',\n * billingAddress: {\n * givenName: 'Jill', // ASCII-printable characters required, else will throw a validation error\n * surname: 'Doe', // ASCII-printable characters required, else will throw a validation error\n * phoneNumber: '8101234567',\n * streetAddress: '555 Smith St.',\n * extendedAddress: '#5',\n * locality: 'Oakland',\n * region: 'CA',\n * postalCode: '12345',\n * countryCodeAlpha2: 'US'\n * },\n * // additional 3ds params\n * }\n * }, function (err, payload) {\n * // inspect payload.liablityShifted\n * // send payload.nonce to server\n * });\n * });\n * });\n *\n * @example\n * Enabled Vault Manager\n * braintree.dropin.create({\n * authorization: 'CLIENT_AUTHORIZATION',\n * container: '#dropin-container',\n * vaultManager: true\n * }, callback);\n */\n\nfunction create(options) {\n if (!options.authorization) {\n return Promise.reject(new DropinError('options.authorization is required.'));\n }\n\n return client.create({\n authorization: options.authorization\n }).catch(function (err) {\n return Promise.reject(new DropinError({\n message: 'There was an error creating Drop-in.',\n braintreeWebError: err\n }));\n }).then(function (clientInstance) {\n clientInstance = setAnalyticsIntegration(clientInstance);\n\n if (clientInstance.getConfiguration().authorizationType === 'TOKENIZATION_KEY') {\n analytics.sendEvent(clientInstance, 'started.tokenization-key');\n } else {\n analytics.sendEvent(clientInstance, 'started.client-token');\n }\n\n return new Promise(function (resolve, reject) {\n new Dropin({\n merchantConfiguration: options,\n client: clientInstance\n })._initialize(function (err, instance) {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(instance);\n });\n });\n });\n}\n\nfunction setAnalyticsIntegration(clientInstance) {\n var configuration = clientInstance.getConfiguration();\n\n configuration.analyticsMetadata.integration = constants.INTEGRATION;\n configuration.analyticsMetadata.integrationType = constants.INTEGRATION;\n configuration.analyticsMetadata.dropinVersion = VERSION;\n\n clientInstance.getConfiguration = function () {\n return configuration;\n };\n\n return clientInstance;\n}\n\n// we check for document's existence to support server side rendering\ncreateFromScriptTag(create, typeof document !== 'undefined' && document.querySelector('script[data-braintree-dropin-authorization]'));\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of Drop-in, i.e. `1.44.1`.\n * @type {string}\n */\n VERSION: VERSION\n};\n\n},{\"./constants\":207,\"./dropin\":209,\"./lib/analytics\":212,\"./lib/create-from-script-tag\":215,\"./lib/dropin-error\":217,\"@braintree/wrap-promise\":46,\"braintree-web/client\":55}],211:[function(require,module,exports){\n'use strict';\n\nfunction addSelectionEventHandler(element, func) {\n element.addEventListener('click', func);\n element.addEventListener('keyup', function (event) {\n if (event.keyCode === 13) {\n func();\n }\n });\n}\n\nmodule.exports = addSelectionEventHandler;\n\n},{}],212:[function(require,module,exports){\n'use strict';\n\nvar atob = require('./polyfill').atob;\nvar constants = require('../constants');\nvar braintreeClientVersion = require('braintree-web/client').VERSION;\n\nfunction _millisToSeconds(millis) {\n return Math.floor(millis / 1000);\n}\n\nfunction sendAnalyticsEvent(client, kind, callback) {\n var configuration = client.getConfiguration();\n var analyticsRequest = client._request;\n var timestamp = _millisToSeconds(Date.now());\n var url = configuration.gatewayConfiguration.analytics.url;\n var data = {\n analytics: [{\n kind: constants.ANALYTICS_PREFIX + kind,\n timestamp: timestamp\n }],\n _meta: configuration.analyticsMetadata,\n braintreeLibraryVersion: braintreeClientVersion\n };\n\n if (configuration.authorizationType === 'TOKENIZATION_KEY') {\n data.tokenizationKey = configuration.authorization;\n } else {\n data.authorizationFingerprint = JSON.parse(atob(configuration.authorization)).authorizationFingerprint;\n }\n\n analyticsRequest({\n url: url,\n method: 'post',\n data: data,\n timeout: constants.ANALYTICS_REQUEST_TIMEOUT_MS\n }, callback);\n}\n\nmodule.exports = {\n sendEvent: sendAnalyticsEvent\n};\n\n},{\"../constants\":207,\"./polyfill\":223,\"braintree-web/client\":55}],213:[function(require,module,exports){\n'use strict';\n\nvar assignNormalized = typeof Object.assign === 'function' ? Object.assign : assignPolyfill;\n\nfunction assignPolyfill(destination) {\n var i, source, key;\n\n for (i = 1; i < arguments.length; i++) {\n source = arguments[i];\n for (key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n }\n\n return destination;\n}\n\nmodule.exports = {\n assign: assignNormalized,\n _assign: assignPolyfill\n};\n\n},{}],214:[function(require,module,exports){\n'use strict';\n\nvar isIe9 = require('@braintree/browser-detection/is-ie9');\nvar isIe10 = require('@braintree/browser-detection/is-ie10');\n\nmodule.exports = {\n isIe9: isIe9,\n isIe10: isIe10\n};\n\n},{\"@braintree/browser-detection/is-ie10\":28,\"@braintree/browser-detection/is-ie9\":29}],215:[function(require,module,exports){\n'use strict';\n\nvar analytics = require('./analytics');\nvar find = require('./find-parent-form');\nvar uuid = require('@braintree/uuid');\nvar DropinError = require('./dropin-error');\nvar kebabCaseToCamelCase = require('./kebab-case-to-camel-case');\nvar WHITELISTED_DATA_ATTRIBUTES = [\n 'locale',\n 'payment-option-priority',\n\n 'data-collector.kount',\n 'data-collector.paypal',\n\n // camelcase version was accidentally used initially.\n // we add the kebab case version to match the docs, but\n // we retain the camelcase version for backwards compatibility\n 'card.cardholderName',\n 'card.cardholderName.required',\n 'card.cardholder-name',\n 'card.cardholder-name.required',\n\n 'paypal.amount',\n 'paypal.currency',\n 'paypal.flow',\n 'paypal.landing-page-type',\n\n 'paypal-credit.amount',\n 'paypal-credit.currency',\n 'paypal-credit.flow',\n 'paypal-credit.landing-page-type'\n];\n\nfunction injectHiddenInput(name, value, form) {\n var input = form.querySelector('[name=\"' + name + '\"]');\n\n if (!input) {\n input = document.createElement('input');\n input.type = 'hidden';\n input.name = name;\n form.appendChild(input);\n }\n\n input.value = value;\n}\n\nfunction addCompositeKeyValuePairToObject(obj, key, value) {\n var decomposedKeys = key.split('.');\n var topLevelKey = kebabCaseToCamelCase(decomposedKeys[0]);\n\n if (decomposedKeys.length === 1) {\n obj[topLevelKey] = deserialize(value);\n } else {\n obj[topLevelKey] = obj[topLevelKey] || {};\n addCompositeKeyValuePairToObject(obj[topLevelKey], decomposedKeys.slice(1).join('.'), value);\n }\n}\n\nfunction deserialize(value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n}\n\nfunction createFromScriptTag(createFunction, scriptTag) {\n var authorization, container, createOptions, form;\n\n if (!scriptTag) {\n return;\n }\n\n authorization = scriptTag.getAttribute('data-braintree-dropin-authorization');\n\n if (!authorization) {\n throw new DropinError('Authorization not found in data-braintree-dropin-authorization attribute');\n }\n\n container = document.createElement('div');\n container.id = 'braintree-dropin-' + uuid();\n\n form = find.findParentForm(scriptTag);\n\n if (!form) {\n throw new DropinError('No form found for script tag integration.');\n }\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n });\n\n scriptTag.parentNode.insertBefore(container, scriptTag);\n\n createOptions = {\n authorization: authorization,\n container: container\n };\n\n WHITELISTED_DATA_ATTRIBUTES.forEach(function (compositeKey) {\n var value = scriptTag.getAttribute('data-' + compositeKey);\n\n if (value == null) {\n return;\n }\n\n addCompositeKeyValuePairToObject(createOptions, compositeKey, value);\n });\n\n createFunction(createOptions).then(function (instance) {\n analytics.sendEvent(instance._client, 'integration-type.script-tag');\n form.addEventListener('submit', function () {\n instance.requestPaymentMethod(function (requestPaymentError, payload) {\n if (requestPaymentError) {\n return;\n }\n\n injectHiddenInput('payment_method_nonce', payload.nonce, form);\n\n if (payload.deviceData) {\n injectHiddenInput('device_data', payload.deviceData, form);\n }\n\n form.submit();\n });\n });\n });\n}\n\nmodule.exports = createFromScriptTag;\n\n},{\"./analytics\":212,\"./dropin-error\":217,\"./find-parent-form\":218,\"./kebab-case-to-camel-case\":222,\"@braintree/uuid\":42}],216:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar constants = require('../constants');\nvar analytics = require('./analytics');\nvar assets = require('@braintree/asset-loader');\n\nfunction DataCollector(config) {\n this._config = config;\n}\n\nDataCollector.prototype.initialize = function () {\n var self = this;\n\n return Promise.resolve().then(function () {\n var braintreeWebVersion;\n\n if (global.braintree && global.braintree.dataCollector) {\n return Promise.resolve();\n }\n\n braintreeWebVersion = self._config.client.getVersion();\n\n return assets.loadScript({\n src: 'https://js.braintreegateway.com/web/' + braintreeWebVersion + '/js/data-collector.min.js',\n id: constants.DATA_COLLECTOR_SCRIPT_ID\n });\n }).then(function () {\n return global.braintree.dataCollector.create(self._config);\n }).then(function (instance) {\n self._instance = instance;\n }).catch(function (err) {\n analytics.sendEvent(self._config.client, 'data-collector.setup-failed');\n // log the Data Collector setup error\n // but do not prevent Drop-in from loading\n self.log(err);\n });\n};\n\nDataCollector.prototype.log = function (message) {\n console.log(message); // eslint-disable-line no-console\n};\n\nDataCollector.prototype.getDeviceData = function () {\n if (!this._instance) {\n return '';\n }\n\n return this._instance.deviceData;\n};\n\nDataCollector.prototype.teardown = function () {\n if (!this._instance) {\n return Promise.resolve();\n }\n\n return this._instance.teardown();\n};\n\nmodule.exports = DataCollector;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../constants\":207,\"./analytics\":212,\"@braintree/asset-loader\":1}],217:[function(require,module,exports){\n'use strict';\n\nfunction isBraintreeWebError(err) {\n return err.name === 'BraintreeError';\n}\n\nfunction DropinError(err) {\n this.name = 'DropinError';\n\n if (typeof err === 'string') {\n this.message = err;\n } else {\n this.message = err.message;\n }\n\n if (isBraintreeWebError(err)) {\n this._braintreeWebError = err;\n } else {\n this._braintreeWebError = err.braintreeWebError;\n }\n}\n\nDropinError.prototype = Object.create(Error.prototype);\nDropinError.prototype.constructor = DropinError;\n\nmodule.exports = DropinError;\n\n},{}],218:[function(require,module,exports){\n'use strict';\n\nfunction findParentForm(element) {\n var parentNode = element.parentNode;\n\n if (!parentNode || parentNode.nodeName === 'FORM') {\n return parentNode;\n }\n\n return findParentForm(parentNode);\n}\n\nmodule.exports = {\n findParentForm: findParentForm\n};\n\n},{}],219:[function(require,module,exports){\n'use strict';\n\nvar atob = require('./polyfill').atob;\n\nmodule.exports = function (client) {\n var authorizationFingerprint;\n var configuration = client.getConfiguration();\n\n if (configuration.authorizationType !== 'TOKENIZATION_KEY') {\n authorizationFingerprint = JSON.parse(atob(configuration.authorization)).authorizationFingerprint;\n\n return !authorizationFingerprint || authorizationFingerprint.indexOf('customer_id=') === -1;\n }\n\n return true;\n};\n\n},{\"./polyfill\":223}],220:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nfunction isHTTPS() {\n return global.location.protocol === 'https:';\n}\n\nmodule.exports = {\n isHTTPS: isHTTPS\n};\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],221:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nmodule.exports = function (win) {\n win = win || global;\n\n return Boolean(win.document.characterSet && win.document.characterSet.toLowerCase() === 'utf-8');\n};\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],222:[function(require,module,exports){\n'use strict';\n\nfunction kebabCaseToCamelCase(kebab) {\n var parts = kebab.split('-');\n var first = parts.shift();\n var capitalizedParts = parts.map(function (part) {\n return part.charAt(0).toUpperCase() + part.substring(1);\n });\n\n return [first].concat(capitalizedParts).join('');\n}\n\nmodule.exports = kebabCaseToCamelCase;\n\n},{}],223:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n/* eslint-disable no-mixed-operators */\n\nvar atobNormalized = typeof global.atob === 'function' ? global.atob : atob;\n\nfunction atob(base64String) {\n var a, b, c, b1, b2, b3, b4, i;\n var base64Matcher = new RegExp('^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$');\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var result = '';\n\n if (!base64Matcher.test(base64String)) {\n throw new Error('Non base64 encoded input passed to window.atob polyfill');\n }\n\n i = 0;\n do {\n b1 = characters.indexOf(base64String.charAt(i++));\n b2 = characters.indexOf(base64String.charAt(i++));\n b3 = characters.indexOf(base64String.charAt(i++));\n b4 = characters.indexOf(base64String.charAt(i++));\n\n a = (b1 & 0x3F) << 2 | b2 >> 4 & 0x3;\n b = (b2 & 0xF) << 4 | b3 >> 2 & 0xF;\n c = (b3 & 0x3) << 6 | b4 & 0x3F;\n\n result += String.fromCharCode(a) + (b ? String.fromCharCode(b) : '') + (c ? String.fromCharCode(c) : '');\n } while (i < base64String.length);\n\n return result;\n}\n\nmodule.exports = {\n atob: function (base64String) {\n return atobNormalized.call(global, base64String);\n },\n _atob: atob\n};\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],224:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function (string) {\n if (typeof string !== 'string') {\n return '';\n }\n\n return string\n .replace(//g, '>');\n};\n\n},{}],225:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function () {\n var el = document.createElement('div');\n var prop = 'flex-basis: 1px';\n var prefixes = [\n '-webkit-',\n '-moz-',\n '-ms-',\n '-o-',\n ''\n ];\n\n prefixes.forEach(function (prefix) {\n el.style.cssText += prefix + prop;\n });\n\n return Boolean(el.style.length);\n};\n\n},{}],226:[function(require,module,exports){\n'use strict';\n\nvar assign = require('./assign').assign;\nvar threeDSecure = require('braintree-web/three-d-secure');\n\nvar DEFAULT_ACS_WINDOW_SIZE = '03';\nvar PASSTHROUGH_EVENTS = [\n 'customer-canceled',\n 'authentication-modal-render',\n 'authentication-modal-close'\n];\n\nfunction ThreeDSecure(client, model) {\n this._client = client;\n this._model = model;\n this._config = assign({}, model.merchantConfiguration.threeDSecure);\n}\n\nThreeDSecure.prototype.initialize = function () {\n var self = this;\n var options = {\n client: this._client,\n version: 2\n };\n\n if (this._config.cardinalSDKConfig) {\n options.cardinalSDKConfig = this._config.cardinalSDKConfig;\n }\n\n return threeDSecure.create(options).then(function (instance) {\n self._instance = instance;\n\n PASSTHROUGH_EVENTS.forEach(function (eventName) {\n self._instance.on(eventName, function (event) {\n self._model._emit('3ds:' + eventName, event);\n });\n });\n });\n};\n\nThreeDSecure.prototype.verify = function (payload, merchantProvidedData) {\n var verifyOptions = assign({\n amount: this._config.amount\n }, merchantProvidedData, {\n nonce: payload.nonce,\n bin: payload.details.bin,\n // TODO in the future, we will allow\n // merchants to pass in a custom\n // onLookupComplete hook\n onLookupComplete: function (data, next) {\n next();\n }\n });\n\n verifyOptions.additionalInformation = verifyOptions.additionalInformation || {};\n verifyOptions.additionalInformation.acsWindowSize = verifyOptions.additionalInformation.acsWindowSize || DEFAULT_ACS_WINDOW_SIZE;\n this._model.shouldWaitForVerifyCard = true;\n\n return this._instance.verifyCard(verifyOptions);\n};\n\nThreeDSecure.prototype.updateConfiguration = function (key, value) {\n this._config[key] = value;\n};\n\nThreeDSecure.prototype.teardown = function () {\n return this._instance.teardown();\n};\n\nmodule.exports = ThreeDSecure;\n\n},{\"./assign\":213,\"braintree-web/three-d-secure\":145}],227:[function(require,module,exports){\n'use strict';\n\nvar browserDetection = require('./browser-detection');\n\nfunction isHidden(element) {\n if (!element) { // no parentNode, so nothing containing the element is hidden\n return false;\n }\n\n if (element.style.display === 'none') {\n return true;\n }\n\n return isHidden(element.parentNode);\n}\n\nfunction onTransitionEnd(element, propertyName, callback) {\n if (browserDetection.isIe9() || isHidden(element)) {\n callback();\n\n return;\n }\n\n function transitionEventListener(event) {\n if (event.propertyName === propertyName) {\n element.removeEventListener('transitionend', transitionEventListener);\n callback();\n }\n }\n\n element.addEventListener('transitionend', transitionEventListener);\n}\n\nmodule.exports = {\n onTransitionEnd: onTransitionEnd\n};\n\n},{\"./browser-detection\":214}],228:[function(require,module,exports){\n'use strict';\n\nfunction delay(time) {\n time = time || 0;\n\n return new Promise(function (resolve) {\n window.setTimeout(resolve, time);\n });\n}\n\nmodule.exports = {\n delay: delay\n};\n\n},{}],229:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"الدفع بواسطة {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"اختر طريقة دفع أخرى\",\n \"chooseAWayToPay\" : \"اختر طريقة الدفع\",\n \"otherWaysToPay\" : \"طرق أخرى للدفع\",\n \"edit\" : \"تحرير\",\n \"doneEditing\" : \"تم\",\n \"editPaymentMethods\" : \"تحرير طرق الدفع\",\n \"CreditCardDeleteConfirmationMessage\" : \"هل تريد حذف بطاقة {{secondaryIdentifier}} التي تنتهي بالأرقام {{identifier}}؟\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"هل تريد حذف {{identifier}}الحساب PayPal؟\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"هل تريد فعلاً حذف حساب Venmo الذي يحمل اسم المستخدم {{identifier}}؟\",\n \"genericDeleteConfirmationMessage\" : \"هل تريد بالفعل حذف طريقة الدفع؟\",\n \"deleteCancelButton\" : \"إلغاء\",\n \"deleteConfirmationButton\" : \"حذف\",\n \"fieldEmptyForCvv\" : \"يرجى إدخال رمز حماية البطاقة.\",\n \"fieldEmptyForExpirationDate\" : \"يرجى إدخال تاريخ انتهاء الصلاحية.\",\n \"fieldEmptyForCardholderName\" : \"يرجى إدخال اسم صاحب البطاقة.\",\n \"fieldTooLongForCardholderName\" : \"يجب أن يقل اسم صاحب البطاقة عن 256 حرفاً.\",\n \"fieldEmptyForNumber\" : \"يرجى إدخال رقم.\",\n \"fieldEmptyForPostalCode\" : \"يرجى إدخال الرمز البريدي.\",\n \"fieldInvalidForCardholderName\" : \"اسم حامل البطاقة غير صحيح.\",\n \"fieldInvalidForCvv\" : \"رمز الحماية غير صحيح.\",\n \"fieldInvalidForExpirationDate\" : \"تاريخ انتهاء الصلاحية غير صحيح.\",\n \"fieldInvalidForNumber\" : \"رقم البطاقة غير صحيح.\",\n \"fieldInvalidForPostalCode\" : \"الرمز البريدي غير صحيح.\",\n \"noticeOfCollection\" : \"عندما أدفع ببطاقتي، فأنا أوافق على \\\"بيان الخصوصية لدى PayPal\\\".\",\n \"genericError\" : \"حدث خطأ ما من جانبنا.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"هذه البطاقة الائتمانية محفوظة كطريقة دفع حالياً.\",\n \"hostedFieldsFailedTokenizationError\" : \"يرجى مراجعة معلوماتك وإعادة المحاولة.\",\n \"hostedFieldsFieldsInvalidError\" : \"يرجى مراجعة معلوماتك وإعادة المحاولة.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"خطأ في الشبكة. يرجى المحاولة مجدداً.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"فشلت مصادقة بطاقة الائتمان. يرجى مراجعة معلوماتك وإعادة المحاولة.\",\n \"paypalButtonMustBeUsed\" : \"استخدم زر PayPal لاستئناف الدفع.\",\n \"venmoButtonMustBeUsed\": \"استخدِم زر Venmo لمتابعة إجراء دفعتك\",\n \"applePayButtonMustBeUsed\":\" استخدِم زر Apple Pay لمتابعة عملية الدفع التي تُجريها.\",\n \"paypalAccountTokenizationFailedError\" : \"وقع خطأ أثناء إضافة حساب PayPal. يرجى إعادة المحاولة.\",\n \"paypalFlowFailedError\" : \"وقع خطأ أثناء الاتصال بـ PayPal. يرجى إعادة المحاولة.\",\n \"paypalTokenizationRequestActiveError\" : \"تفويض الدفع عبر PayPal قيد التنفيذ.\",\n \"venmoCanceledError\" : \"وقع خطأ. تأكد أن أحدث إصدار من تطبيق Venmo مثبت في جهازك وأن متصفحك يدعم التبديل إلى Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"فشل حذف طريقة الدفع. أعد المحاولة.\",\n \"venmoAppFailedError\" : \"تطبيق Venmo غير موجود في جهازك.\",\n \"unsupportedCardTypeError\" : \"نوع البطاقة غير مدعوم. يرجى تجربة بطاقة أخرى.\",\n \"applePayTokenizationError\" : \"وقع خطأ في الشبكة أثناء معالجة الدفع عبر Apple Pay. يرجى إعادة المحاولة.\",\n \"applePayActiveCardError\" : \"إضافة بطاقة مدعومة إلى محفظة Apple Pay.\",\n \"cardholderNameLabel\" : \"اسم صاحب البطاقة\",\n \"cardNumberLabel\" : \"رقم البطاقة\",\n \"cvvLabel\" : \"رمز CVV‏\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 أرقام)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 أرقام)\",\n \"cardholderNamePlaceholder\" : \"اسم صاحب البطاقة\",\n \"expirationDateLabel\" : \"تاريخ انتهاء الصلاحية\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"الشهر/ السنة\",\n \"postalCodeLabel\" : \"الرمز البريدي\",\n \"saveCardLabel\" : \"حفظ البطاقة\",\n \"payWithCard\" : \"الدفع ببطاقة سحب أو ائتمان\",\n \"endingIn\" : \"تنتهي بتاريخ {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo‏\",\n \"Card\" : \"البطاقة\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express‏\",\n \"Discover\" : \"Discover‏\",\n \"Diners Club\" : \"Diners Club‏\",\n \"Elo\" : \"Elo‏\",\n \"Hiper\" : \"Hiper‏\",\n \"Hipercard\" : \"Hipercard‏\",\n \"MasterCard\" : \"Mastercard‏\",\n \"Visa\" : \"Visa‏\",\n \"JCB\" : \"JCB‏\",\n \"Maestro\" : \"Maestro‏\",\n \"UnionPay\" : \"UnionPay‏\"\n}\n;\n\n},{}],230:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Forma úhrady: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Vybrat jiný způsob platby\",\n \"chooseAWayToPay\" : \"Vybrat způsob platby\",\n \"otherWaysToPay\" : \"Jiné způsoby platby\",\n \"edit\" : \"Upravit\",\n \"doneEditing\" : \"Hotovo\",\n \"editPaymentMethods\" : \"Upravit způsoby platby\",\n \"CreditCardDeleteConfirmationMessage\" : \"Chcete kartu {{secondaryIdentifier}} s koncovým číslem {{identifier}}odstranit?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Chcete {{identifier}}účtu PayPal odstranit?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Opravdu chcete účet Venmo s uživatelským jménem {{identifier}} odstranit?\",\n \"genericDeleteConfirmationMessage\" : \"Opravdu chcete tento způsob platby odstranit?\",\n \"deleteCancelButton\" : \"Zrušit\",\n \"deleteConfirmationButton\" : \"Odstranit\",\n \"fieldEmptyForCvv\" : \"Vyplňte kód CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Vyplňte datum vypršení platnosti.\",\n \"fieldEmptyForCardholderName\" : \"Vyplňte jméno držitele karty.\",\n \"fieldTooLongForCardholderName\" : \"Jméno držitele karty musí obsahovat méně než 256 znaků.\",\n \"fieldEmptyForNumber\" : \"Vyplňte číslo.\",\n \"fieldEmptyForPostalCode\" : \"Vyplňte poštovní směrovací číslo.\",\n \"fieldInvalidForCardholderName\" : \"Toto jméno držitele karty není platné.\",\n \"fieldInvalidForCvv\" : \"Tento bezpečnostní kód není platný.\",\n \"fieldInvalidForExpirationDate\" : \"Toto datum vypršení platnosti není platné.\",\n \"fieldInvalidForNumber\" : \"Toto číslo karty není platné.\",\n \"fieldInvalidForPostalCode\" : \"Toto poštovní směrovací číslo není platné.\",\n \"noticeOfCollection\" : \"Zaplacením kartou vyjadřuji souhlas s prohlášením o ochraně osobních údajů společnosti PayPal.\",\n \"genericError\" : \"Došlo k chybě na naší straně.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Tato kreditní karta je již jako způsob platby uložena.\",\n \"hostedFieldsFailedTokenizationError\" : \"Zkontrolujte zadané informace a zkuste to znovu.\",\n \"hostedFieldsFieldsInvalidError\" : \"Zkontrolujte zadané informace a zkuste to znovu.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Došlo k chybě sítě. Zkuste to znovu.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Ověření kreditní karty se nezdařilo. Zkontrolujte zadané informace a zkuste to znovu.\",\n \"paypalButtonMustBeUsed\" : \"Chcete-li přejít k platbě, použijte tlačítko PayPal.\",\n \"venmoButtonMustBeUsed\": \"Chcete-li pokračovat v placení, použijte tlačítko Venmo.\",\n \"applePayButtonMustBeUsed\": \"Chcete-li přejít k platbě, použijte tlačítko Apple Pay.\",\n \"paypalAccountTokenizationFailedError\" : \"Při přidávání účtu PayPal došlo k chybě. Zkuste to znovu.\",\n \"paypalFlowFailedError\" : \"Při připojování ke službě PayPal došlo k chybě. Zkuste to znovu.\",\n \"paypalTokenizationRequestActiveError\" : \"Autorizace platby přes PayPal již probíhá.\",\n \"venmoCanceledError\" : \"Došlo k chybě. Zkontrolujte, zda máte v zařízení nainstalovanou nejnovější verzi aplikace Venmo a zda prohlížeč přechod na aplikaci Venmo podporuje.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Způsob platby se nepodařilo odstranit. Zkuste to znovu.\",\n \"venmoAppFailedError\" : \"Aplikaci Venmo se ve vašem zařízení nepodařilo najít.\",\n \"unsupportedCardTypeError\" : \"Tento typ karty není podporován. Vyzkoušejte jinou kartu.\",\n \"applePayTokenizationError\" : \"Při zpracování platby přes Apple Pay došlo k chybě sítě. Zkuste to znovu.\",\n \"applePayActiveCardError\" : \"Přidejte si podporovanou kartu do peněženky Apple Pay.\",\n \"cardholderNameLabel\" : \"Jméno držitele karty\",\n \"cardNumberLabel\" : \"Číslo karty\",\n \"cvvLabel\" : \"Kód CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 číslice)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 číslice)\",\n \"cardholderNamePlaceholder\" : \"Jméno držitele karty\",\n \"expirationDateLabel\" : \"Datum vypršení platnosti\",\n \"expirationDateLabelSubheading\" : \"(MM/RR)\",\n \"expirationDatePlaceholder\" : \"MM/RR\",\n \"postalCodeLabel\" : \"Poštovní směrovací číslo\",\n \"saveCardLabel\" : \"Uložit kartu\",\n \"payWithCard\" : \"Zaplatit kartou\",\n \"endingIn\" : \"Koncové číslo {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Karta\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],231:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Betaling med {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Vælg en anden betalingsmetode\",\n \"chooseAWayToPay\" : \"Vælg, hvordan du vil betale\",\n \"otherWaysToPay\" : \"Andre måder at betale på\",\n \"edit\" : \"Rediger\",\n \"doneEditing\" : \"Udført\",\n \"editPaymentMethods\" : \"Rediger betalingsmetode\",\n \"CreditCardDeleteConfirmationMessage\" : \"Vil du slette dit {{secondaryIdentifier}}-kort, der slutter på {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Vil du slette PayPal-kontoen for {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Er du sikker på, at du vil slette Venmo-konto med brugernavnet {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Er du sikker på, at du vil slette denne betalingsmetode?\",\n \"deleteCancelButton\" : \"Annuller\",\n \"deleteConfirmationButton\" : \"Slet\",\n \"fieldEmptyForCvv\" : \"Du skal indtaste kontrolcifrene.\",\n \"fieldEmptyForExpirationDate\" : \"Du skal indtaste en udløbsdato.\",\n \"fieldEmptyForCardholderName\" : \"Du skal indtaste kortholderens navn.\",\n \"fieldTooLongForCardholderName\" : \"Kortholders navn skal være mindre end 256 tegn.\",\n \"fieldEmptyForNumber\" : \"Du skal indtaste et nummer.\",\n \"fieldEmptyForPostalCode\" : \"Du skal indtaste et postnummer.\",\n \"fieldInvalidForCardholderName\" : \"Kortindehaverens navn er ugyldigt.\",\n \"fieldInvalidForCvv\" : \"Denne sikkerhedskode er ugyldig.\",\n \"fieldInvalidForExpirationDate\" : \"Denne udløbsdato er ugyldig.\",\n \"fieldInvalidForNumber\" : \"Dette kortnummer er ikke gyldigt.\",\n \"fieldInvalidForPostalCode\" : \"Dette postnummer er ikke gyldigt.\",\n \"noticeOfCollection\" : \"Når jeg betaler med mit kort, accepterer jeg PayPals erklæring om personlige oplysninger.\",\n \"genericError\" : \"Der opstod en fejl.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Dette betalingskort findes allerede som en gemt betalingsmetode.\",\n \"hostedFieldsFailedTokenizationError\" : \"Tjek oplysningerne, og prøv igen.\",\n \"hostedFieldsFieldsInvalidError\" : \"Tjek oplysningerne, og prøv igen.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Netværksfejl. Prøv igen.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Bekræftelse af betalingskort mislykkedes. Tjek oplysningerne, og prøv igen.\",\n \"paypalButtonMustBeUsed\" : \"Brug PayPal-knappen til at fortsætte med din betaling.\",\n \"venmoButtonMustBeUsed\": \"Brug Venmo-knappen til at fortsætte med din betaling.\",\n \"applePayButtonMustBeUsed\": \"Brug Apple Pay-knappen til at fortsætte med din betaling.\",\n \"paypalAccountTokenizationFailedError\" : \"Der opstod en fejl under tilføjelsen af PayPal-kontoen. Prøv igen.\",\n \"paypalFlowFailedError\" : \"Det lykkedes ikke at oprette forbindelse til PayPal. Prøv igen.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPals betalingsautorisation er allerede i gang.\",\n \"venmoCanceledError\" : \"Der opstod et problem. Sørg for, at den nyeste version af Venmo-appen er installeret på din enhed, og at din browser understøtter skift til Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Betalingsmetoden kunne ikke slettes. Prøv igen.\",\n \"venmoAppFailedError\" : \"Venmo-appen blev ikke fundet på din enhed.\",\n \"unsupportedCardTypeError\" : \"Korttypen understøttes ikke. Prøv et andet kort.\",\n \"applePayTokenizationError\" : \"Der opstod en netværksfejl under behandling af Apple Pay-betalingen. Prøv igen.\",\n \"applePayActiveCardError\" : \"Føj et understøttet kort til din Apple Pay-e-pung.\",\n \"cardholderNameLabel\" : \"Kortindehaverens navn\",\n \"cardNumberLabel\" : \"Kortnummer\",\n \"cvvLabel\" : \"Kontrolcifre\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 cifre)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 cifre)\",\n \"cardholderNamePlaceholder\" : \"Kortindehaverens navn\",\n \"expirationDateLabel\" : \"Udløbsdato\",\n \"expirationDateLabelSubheading\" : \"(MM/ÅÅ)\",\n \"expirationDatePlaceholder\" : \"MM/ÅÅ\",\n \"postalCodeLabel\" : \"Postnummer\",\n \"saveCardLabel\" : \"Gem kort\",\n \"payWithCard\" : \"Betal med betalingskort\",\n \"endingIn\" : \"Slutter på {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kort\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],232:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Zahlen mit {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Wählen Sie eine andere Zahlungsquelle\",\n \"chooseAWayToPay\" : \"Wählen Sie eine Zahlungsquelle\",\n \"otherWaysToPay\" : \"Sonstige Zahlungsquellen\",\n \"edit\" : \"Ändern\",\n \"doneEditing\" : \"Fertig\",\n \"editPaymentMethods\" : \"Zahlungsquellen bearbeiten\",\n \"CreditCardDeleteConfirmationMessage\" : \"{{secondaryIdentifier}}-Karte mit den Endziffern {{identifier}} löschen?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"PayPal-Konto {{identifier}} löschen?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Wollen Sie das Venmo-Konto mit dem Benutzernamen {{identifier}} wirklich löschen?\",\n \"genericDeleteConfirmationMessage\" : \"Möchten Sie diese Zahlungsquelle wirklich löschen?\",\n \"deleteCancelButton\" : \"Abbrechen\",\n \"deleteConfirmationButton\" : \"Löschen\",\n \"fieldEmptyForCvv\" : \"Geben Sie die Kartenprüfnummer (CVV) ein.\",\n \"fieldEmptyForExpirationDate\" : \"Geben Sie das Ablaufdatum ein.\",\n \"fieldEmptyForCardholderName\" : \"Geben Sie den Namen des Karteninhabers ein.\",\n \"fieldTooLongForCardholderName\" : \"Der Name des Karteninhabers darf nicht länger als 256 Zeichen sein.\",\n \"fieldEmptyForNumber\" : \"Geben Sie eine Nummer ein.\",\n \"fieldEmptyForPostalCode\" : \"Geben Sie eine Postleitzahl ein.\",\n \"fieldInvalidForCardholderName\" : \"Der Name des Karteninhabers ist nicht gültig.\",\n \"fieldInvalidForCvv\" : \"Diese Kartenprüfnummer ist ungültig.\",\n \"fieldInvalidForExpirationDate\" : \"Dieses Ablaufdatum ist ungültig.\",\n \"fieldInvalidForNumber\" : \"Diese Kartennummer ist ungültig.\",\n \"fieldInvalidForPostalCode\" : \"Diese Postleitzahl ist ungültig.\",\n \"noticeOfCollection\" : \"Indem ich mit meiner Karte bezahle, stimme ich der PayPal-Datenschutzerklärung zu.\",\n \"genericError\" : \"Bei uns ist ein Fehler aufgetreten.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Diese Kreditkarte ist bereits als gespeicherte Zahlungsquelle vorhanden.\",\n \"hostedFieldsFailedTokenizationError\" : \"Bitte prüfen Sie die Informationen und versuchen Sie es erneut.\",\n \"hostedFieldsFieldsInvalidError\" : \"Bitte prüfen Sie die Informationen und versuchen Sie es erneut.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Netzwerkfehler. Versuchen Sie es bitte erneut.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Die Kreditkartenverifizierung ist fehlgeschlagen. Bitte prüfen Sie die Informationen und versuchen Sie es erneut.\",\n \"paypalButtonMustBeUsed\" : \"Verwenden Sie den PayPal-Button, um mit der Zahlung fortzufahren.\",\n \"venmoButtonMustBeUsed\": \"Verwenden Sie den Venmo-Button, um mit Ihrer Zahlung fortzufahren.\",\n \"applePayButtonMustBeUsed\": \"Verwenden Sie den Apple Pay-Button, um mit der Zahlung fortzufahren.\",\n \"paypalAccountTokenizationFailedError\" : \"Beim Hinzufügen des PayPal-Kontos ist ein Fehler aufgetreten. Versuchen Sie es bitte erneut.\",\n \"paypalFlowFailedError\" : \"Bei der Verbindung mit PayPal ist ein Fehler aufgetreten. Versuchen Sie es bitte erneut.\",\n \"paypalTokenizationRequestActiveError\" : \"Die PayPal-Zahlungsautorisierung wird bereits vorgenommen.\",\n \"venmoCanceledError\" : \"Etwas ist schief gelaufen. Vergewissern Sie sich, dass Sie die neueste Version der Venmo-App auf Ihrem Gerät installiert haben und Ihr Browser den Wechsel zu Venmo unterstützt.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Die Zahlungsquelle konnte nicht gelöscht werden. Versuchen Sie es erneut.\",\n \"venmoAppFailedError\" : \"Die Venmo-App wurde nicht auf Ihrem Gerät gefunden.\",\n \"unsupportedCardTypeError\" : \"Dieser Kartentyp wird nicht unterstützt. Versuchen Sie es mit einer anderen Karte.\",\n \"applePayTokenizationError\" : \"Bei der Verarbeitung der Apple Pay-Zahlung ist ein Netzwerkfehler aufgetreten. Versuchen Sie es bitte erneut.\",\n \"applePayActiveCardError\" : \"Fügen Sie Ihrem Apple Pay-Wallet eine unterstützte Karte hinzu.\",\n \"cardholderNameLabel\" : \"Name des Karteninhabers\",\n \"cardNumberLabel\" : \"Kartennummer\",\n \"cvvLabel\" : \"Kartenprüfnummer\",\n \"cvvThreeDigitLabelSubheading\" : \"(3-stellig)\",\n \"cvvFourDigitLabelSubheading\" : \"(4-stellig)\",\n \"cardholderNamePlaceholder\" : \"Name des Karteninhabers\",\n \"expirationDateLabel\" : \"Gültig bis\",\n \"expirationDateLabelSubheading\" : \"(MM/JJ)\",\n \"expirationDatePlaceholder\" : \"MM/JJ\",\n \"postalCodeLabel\" : \"Postleitzahl\",\n \"saveCardLabel\" : \"Karte speichern\",\n \"payWithCard\" : \"Mit Karte zahlen\",\n \"endingIn\" : \"Mit den Endziffern {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Karte\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],233:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Πληρωμή με {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Επιλογή ενός άλλου τρόπου πληρωμής\",\n \"chooseAWayToPay\" : \"Επιλογή τρόπου πληρωμής\",\n \"otherWaysToPay\" : \"Άλλοι τρόποι πληρωμής\",\n \"edit\" : \"Επεξεργασία\",\n \"doneEditing\" : \"Τέλος\",\n \"editPaymentMethods\" : \"Επεξεργασία μεθόδων πληρωμής\",\n \"CreditCardDeleteConfirmationMessage\" : \"Διαγραφή της κάρτας {{secondaryIdentifier}} που λήγει σε {{identifier}};\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Διαγραφή {{identifier}}λογαριασμού PayPal;\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Θέλετε σίγουρα να διαγράψετε τον λογαριασμό Venmo με το όνομα χρήστη {{identifier}};\",\n \"genericDeleteConfirmationMessage\" : \"Θέλετε σίγουρα να διαγράψετε αυτήν τη μέθοδο πληρωμής;\",\n \"deleteCancelButton\" : \"Ακύρωση\",\n \"deleteConfirmationButton\" : \"Διαγραφή\",\n \"fieldEmptyForCvv\" : \"Συμπληρώστε έναν κωδικό ασφαλείας (CVV).\",\n \"fieldEmptyForExpirationDate\" : \"Συμπληρώστε ημερομηνία λήξης.\",\n \"fieldEmptyForCardholderName\" : \"Συμπληρώστε το όνομα ενός κατόχου κάρτας.\",\n \"fieldTooLongForCardholderName\" : \"Το όνομα του κατόχου της κάρτας πρέπει να περιέχει λιγότερους από 256 χαρακτήρες.\",\n \"fieldEmptyForNumber\" : \"Συμπληρώστε έναν αριθμό.\",\n \"fieldEmptyForPostalCode\" : \"Συμπληρώστε έναν ταχυδρομικό κώδικα.\",\n \"fieldInvalidForCardholderName\" : \"Αυτό το όνομα κατόχου κάρτας δεν είναι έγκυρο.\",\n \"fieldInvalidForCvv\" : \"Αυτός ο κωδικός ασφαλείας δεν είναι έγκυρος.\",\n \"fieldInvalidForExpirationDate\" : \"Αυτή η ημερομηνία λήξης δεν είναι έγκυρη.\",\n \"fieldInvalidForNumber\" : \"Αυτός ο αριθμός κάρτας δεν είναι έγκυρος.\",\n \"fieldInvalidForPostalCode\" : \"Αυτός ο ταχυδρομικός κώδικας δεν είναι έγκυρος.\",\n \"noticeOfCollection\" : \"Πληρώνοντας με την κάρτα μου, αποδέχομαι τη Δήλωση απορρήτου της PayPal.\",\n \"genericError\" : \"Προέκυψε πρόβλημα στο σύστημά μας.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Αυτή η πιστωτική κάρτα υπάρχει ήδη ως αποθηκευμένη μέθοδος πληρωμής.\",\n \"hostedFieldsFailedTokenizationError\" : \"Ελέγξτε τα στοιχεία σας και δοκιμάστε ξανά.\",\n \"hostedFieldsFieldsInvalidError\" : \"Ελέγξτε τα στοιχεία σας και δοκιμάστε ξανά.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Σφάλμα δικτύου. Δοκιμάστε ξανά.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Η επαλήθευση της πιστωτικής κάρτας απέτυχε. Ελέγξτε τα στοιχεία σας και δοκιμάστε ξανά.\",\n \"paypalButtonMustBeUsed\" : \"Χρησιμοποιήστε το κουμπί PayPal για να συνεχίσετε με την πληρωμή.\",\n \"venmoButtonMustBeUsed\": \"Χρησιμοποιήστε το κουμπί Venmo για να συνεχίσετε με την πληρωμή σας.\",\n \"applePayButtonMustBeUsed\": \"Χρησιμοποιήστε το κουμπί Apple Pay για να συνεχίσετε με την πληρωμή.\",\n \"paypalAccountTokenizationFailedError\" : \"Προέκυψε κάποιο πρόβλημα με την προσθήκη του λογαριασμού PayPal. Δοκιμάστε ξανά.\",\n \"paypalFlowFailedError\" : \"Προέκυψε κάποιο πρόβλημα με τη σύνδεση στην PayPal. Δοκιμάστε ξανά.\",\n \"paypalTokenizationRequestActiveError\" : \"Η εξουσιοδότηση πληρωμής μέσω PayPal βρίσκεται ήδη σε εξέλιξη.\",\n \"venmoCanceledError\" : \"Προέκυψε πρόβλημα. Βεβαιωθείτε ότι έχετε την πιο πρόσφατη έκδοση της εφαρμογής Venmo εγκατεστημένη στη συσκευή σας και ότι το πρόγραμμα περιήγησής σας υποστηρίζει τη μετάβαση στη Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Η διαγραφή της μεθόδου πληρωμής είναι αδύνατη, δοκιμάστε ξανά.\",\n \"venmoAppFailedError\" : \"Η εφαρμογή Venmo δεν βρέθηκε στη συσκευή σας.\",\n \"unsupportedCardTypeError\" : \"Αυτός ο τύπος κάρτας δεν υποστηρίζεται. Δοκιμάστε μια άλλη κάρτα.\",\n \"applePayTokenizationError\" : \"Προέκυψε σφάλμα δικτύου κατά την επεξεργασία της πληρωμής μέσω Apple Pay. Δοκιμάστε ξανά.\",\n \"applePayActiveCardError\" : \"Προσθέστε μια υποστηριζόμενη κάρτα στο ψηφιακό πορτοφόλι Apple Pay.\",\n \"cardholderNameLabel\" : \"Όνομα κατόχου κάρτας\",\n \"cardNumberLabel\" : \"Αριθμός κάρτας\",\n \"cvvLabel\" : \"Κωδικός ασφαλείας (CVV)\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 ψηφία)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 ψηφία)\",\n \"cardholderNamePlaceholder\" : \"Όνομα κατόχου κάρτας\",\n \"expirationDateLabel\" : \"Ημερομηνία λήξης\",\n \"expirationDateLabelSubheading\" : \"(ΜΜ/ΕΕ)\",\n \"expirationDatePlaceholder\" : \"ΜΜ/ΕΕ\",\n \"postalCodeLabel\" : \"Ταχυδρομικός κώδικας\",\n \"saveCardLabel\" : \"Αποθήκευση κάρτας\",\n \"payWithCard\" : \"Πληρωμή με κάρτα\",\n \"endingIn\" : \"Που λήγει σε {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Κάρτα\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],234:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Paying with {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choose another way to pay\",\n \"chooseAWayToPay\" : \"Choose a way to pay\",\n \"otherWaysToPay\" : \"Other ways to pay\",\n \"edit\" : \"Edit\",\n \"doneEditing\" : \"Done\",\n \"editPaymentMethods\" : \"Edit payment methods\",\n \"CreditCardDeleteConfirmationMessage\" : \"Delete {{secondaryIdentifier}} card ending in {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Delete PayPal account {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Are you sure you want to delete Venmo account with username {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Are you sure you want to delete this payment method?\",\n \"deleteCancelButton\" : \"Cancel\",\n \"deleteConfirmationButton\" : \"Delete\",\n \"fieldEmptyForCvv\" : \"Please enter a CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Please enter an expiry date.\",\n \"fieldEmptyForCardholderName\" : \"Please enter a cardholder name.\",\n \"fieldTooLongForCardholderName\" : \"Cardholder name must be less than 256 characters.\",\n \"fieldEmptyForNumber\" : \"Please enter a number.\",\n \"fieldEmptyForPostalCode\" : \"Please enter a postcode.\",\n \"fieldInvalidForCardholderName\" : \"This cardholder name isn't valid.\",\n \"fieldInvalidForCvv\" : \"This CVV isn't valid.\",\n \"fieldInvalidForExpirationDate\" : \"This expiry date isn't valid.\",\n \"fieldInvalidForNumber\" : \"This card number isn't valid.\",\n \"fieldInvalidForPostalCode\" : \"This postcode isn't valid.\",\n \"noticeOfCollection\" : \"By paying with my card, I agree to the PayPal Privacy Statement.\",\n \"genericError\" : \"We're sorry, something seems to have gone wrong.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"This card already exists as a saved payment method.\",\n \"hostedFieldsFailedTokenizationError\" : \"Please check your entries and try again.\",\n \"hostedFieldsFieldsInvalidError\" : \"Please check your entries and try again.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Network error. Please try again.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Card verification failed. Please check your entries and try again.\",\n \"paypalButtonMustBeUsed\" : \"Use the PayPal button to continue with your payment.\",\n \"venmoButtonMustBeUsed\": \"Use the Venmo button to continue with your payment.\",\n \"applePayButtonMustBeUsed\": \"Use the Apple Pay button to continue with your payment.\",\n \"paypalAccountTokenizationFailedError\" : \"Something went wrong adding the PayPal account. Please try again.\",\n \"paypalFlowFailedError\" : \"Something went wrong connecting to PayPal. Please try again.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal payment authorisation is already in progress.\",\n \"venmoCanceledError\" : \"We're sorry, something seems to have gone wrong. Please make sure you have the most recent version of the Venmo app installed on your device and that your browser supports switching to Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Unable to delete payment method. Please try again.\",\n \"venmoAppFailedError\" : \"The Venmo app couldn't be found on your device.\",\n \"unsupportedCardTypeError\" : \"This card type isn't supported. Please try another card.\",\n \"applePayTokenizationError\" : \"A network error occurred while processing the Apple Pay payment. Please try again.\",\n \"applePayActiveCardError\" : \"Add a supported card to your Apple Pay wallet.\",\n \"cardholderNameLabel\" : \"Cardholder name\",\n \"cardNumberLabel\" : \"Card number\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 digits)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 digits)\",\n \"cardholderNamePlaceholder\" : \"Cardholder name\",\n \"expirationDateLabel\" : \"Expiry date\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"Postcode\",\n \"saveCardLabel\" : \"Save card\",\n \"payWithCard\" : \"Pay with card\",\n \"endingIn\" : \"Ending in {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Card\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],235:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Paying with {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choose another way to pay\",\n \"chooseAWayToPay\" : \"Choose a way to pay\",\n \"otherWaysToPay\" : \"Other ways to pay\",\n \"edit\" : \"Edit\",\n \"doneEditing\" : \"Done\",\n \"editPaymentMethods\" : \"Edit funding sources\",\n \"CreditCardDeleteConfirmationMessage\" : \"Delete {{secondaryIdentifier}} card ending in {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Delete PayPal account {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Are you sure you want to delete Venmo account with username {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Are you sure you want to delete this funding source?\",\n \"deleteCancelButton\" : \"Cancel\",\n \"deleteConfirmationButton\" : \"Delete\",\n \"fieldEmptyForCvv\" : \"Please enter a security code.\",\n \"fieldEmptyForExpirationDate\" : \"Please enter an expiry date.\",\n \"fieldEmptyForCardholderName\" : \"Please enter a cardholder name.\",\n \"fieldTooLongForCardholderName\" : \"Cardholder name must be less than 256 characters.\",\n \"fieldEmptyForNumber\" : \"Please enter a number.\",\n \"fieldEmptyForPostalCode\" : \"Please enter a postcode.\",\n \"fieldInvalidForCardholderName\" : \"This cardholder name isn't valid.\",\n \"fieldInvalidForCvv\" : \"This security code isn't valid.\",\n \"fieldInvalidForExpirationDate\" : \"This expiry date isn't valid.\",\n \"fieldInvalidForNumber\" : \"This card number isn't valid.\",\n \"fieldInvalidForPostalCode\" : \"This postcode isn't valid.\",\n \"noticeOfCollection\" : \"By paying with my card, I agree to the PayPal Privacy Statement.\",\n \"genericError\" : \"Something went wrong on our end.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"This credit card already exists as a saved funding source.\",\n \"hostedFieldsFailedTokenizationError\" : \"Please check your information and try again.\",\n \"hostedFieldsFieldsInvalidError\" : \"Please check your information and try again.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Network error. Please try again.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Credit card verification failed. Please check your information and try again.\",\n \"paypalButtonMustBeUsed\" : \"Use the PayPal button to continue with your payment.\",\n \"venmoButtonMustBeUsed\": \"Use the Venmo button to continue with your payment.\",\n \"applePayButtonMustBeUsed\": \"Use the Apple Pay button to continue with your payment.\",\n \"paypalAccountTokenizationFailedError\" : \"Something went wrong adding the PayPal account. Please try again.\",\n \"paypalFlowFailedError\" : \"Something went wrong connecting to PayPal. Please try again.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal payment authorisation is already in progress.\",\n \"venmoCanceledError\" : \"Something went wrong. Ensure you have the most recent version of the Venmo app installed on your device and your browser supports switching to Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"We were unable to delete the funding source. Please try again.\",\n \"venmoAppFailedError\" : \"The Venmo app couldn't be found on your device.\",\n \"unsupportedCardTypeError\" : \"This card type isn't supported. Please try another card.\",\n \"applePayTokenizationError\" : \"A network error occurred while processing the Apple Pay payment. Please try again.\",\n \"applePayActiveCardError\" : \"Add a supported card to your Apple Pay wallet.\",\n \"cardholderNameLabel\" : \"Cardholder name\",\n \"cardNumberLabel\" : \"Card number\",\n \"cvvLabel\" : \"Security code\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 digits)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 digits)\",\n \"cardholderNamePlaceholder\" : \"Cardholder name\",\n \"expirationDateLabel\" : \"Expiry date\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"Postcode\",\n \"saveCardLabel\" : \"Save card\",\n \"payWithCard\" : \"Pay with card\",\n \"endingIn\" : \"Ending in {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Card\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],236:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Paying with {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choose another way to pay\",\n \"chooseAWayToPay\" : \"Choose a way to pay\",\n \"otherWaysToPay\" : \"Other ways to pay\",\n \"edit\" : \"Edit\",\n \"doneEditing\" : \"Done\",\n \"editPaymentMethods\" : \"Edit payment methods\",\n \"CreditCardDeleteConfirmationMessage\" : \"Delete {{secondaryIdentifier}} card ending in {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Delete PayPal account {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Are you sure you want to delete Venmo account with username {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Are you sure you want to delete this payment method?\",\n \"deleteCancelButton\" : \"Cancel\",\n \"deleteConfirmationButton\" : \"Delete\",\n \"fieldEmptyForCvv\" : \"Please enter a CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Please enter an expiry date.\",\n \"fieldEmptyForCardholderName\" : \"Please enter a cardholder name.\",\n \"fieldTooLongForCardholderName\" : \"Cardholder name must be less than 256 characters.\",\n \"fieldEmptyForNumber\" : \"Please enter a number.\",\n \"fieldEmptyForPostalCode\" : \"Please enter a PIN code.\",\n \"fieldInvalidForCardholderName\" : \"This cardholder name isn't valid.\",\n \"fieldInvalidForCvv\" : \"This CVV isn't valid.\",\n \"fieldInvalidForExpirationDate\" : \"This expiry date isn't valid.\",\n \"fieldInvalidForNumber\" : \"This card number isn't valid.\",\n \"fieldInvalidForPostalCode\" : \"This PIN code isn't valid.\",\n \"noticeOfCollection\" : \"By paying with my card, I agree to the PayPal Privacy Statement.\",\n \"genericError\" : \"We're sorry, something seems to have gone wrong.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"This card already exists as a saved payment method.\",\n \"hostedFieldsFailedTokenizationError\" : \"Please check your information and try again.\",\n \"hostedFieldsFieldsInvalidError\" : \"Please check your information and try again.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Network error. Please try again.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Card verification failed. Please check your information and try again.\",\n \"paypalButtonMustBeUsed\" : \"Use the PayPal button to continue with your payment.\",\n \"venmoButtonMustBeUsed\": \"Use the Venmo button to continue with your payment.\",\n \"applePayButtonMustBeUsed\": \"Use the Apple Pay button to continue with your payment.\",\n \"paypalAccountTokenizationFailedError\" : \"Something went wrong adding the PayPal account. Please try again.\",\n \"paypalFlowFailedError\" : \"Something went wrong connecting to PayPal. Please try again.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal payment authorisation is already in progress.\",\n \"venmoCanceledError\" : \"We're sorry, something seems to have gone wrong. Ensure you have the most recent version of the Venmo app installed on your device and your browser supports switching to Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Unable to delete payment method. Please try again.\",\n \"venmoAppFailedError\" : \"The Venmo app couldn't be found on your device.\",\n \"unsupportedCardTypeError\" : \"This card type isn't supported. Please try another card.\",\n \"applePayTokenizationError\" : \"A network error occurred while processing the Apple Pay payment. Please try again.\",\n \"applePayActiveCardError\" : \"Add a supported card to your Apple Pay digital wallet.\",\n \"cardholderNameLabel\" : \"Cardholder name\",\n \"cardNumberLabel\" : \"Card number\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 digits)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 digits)\",\n \"cardholderNamePlaceholder\" : \"Cardholder name\",\n \"expirationDateLabel\" : \"Expiry date\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"PIN code\",\n \"saveCardLabel\" : \"Save card\",\n \"payWithCard\" : \"Pay with card\",\n \"endingIn\" : \"Ending in {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Card\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],237:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n payingWith: 'Paying with {{paymentSource}}',\n chooseAnotherWayToPay: 'Choose another way to pay',\n chooseAWayToPay: 'Choose a way to pay',\n otherWaysToPay: 'Other ways to pay',\n edit: 'Edit',\n doneEditing: 'Done',\n editPaymentMethods: 'Edit payment methods',\n CreditCardDeleteConfirmationMessage: 'Delete {{secondaryIdentifier}} card ending in {{identifier}}?',\n PayPalAccountDeleteConfirmationMessage: 'Delete PayPal account {{identifier}}?',\n VenmoAccountDeleteConfirmationMessage: 'Are you sure you want to delete Venmo account with username {{identifier}}?',\n genericDeleteConfirmationMessage: 'Are you sure you want to delete this payment method?',\n deleteCancelButton: 'Cancel',\n deleteConfirmationButton: 'Delete',\n // Errors\n fieldEmptyForCvv: 'Please fill out a CVV.',\n fieldEmptyForExpirationDate: 'Please fill out an expiration date.',\n fieldEmptyForCardholderName: 'Please fill out a cardholder name.',\n fieldEmptyForNumber: 'Please fill out a card number.',\n fieldEmptyForPostalCode: 'Please fill out a postal code.',\n fieldInvalidForCardholderName: 'This cardholder name is not valid.',\n fieldInvalidForCvv: 'This security code is not valid.',\n fieldInvalidForExpirationDate: 'This expiration date is not valid.',\n fieldInvalidForNumber: 'This card number is not valid.',\n fieldInvalidForPostalCode: 'This postal code is not valid.',\n fieldTooLongForCardholderName: 'Cardholder name must be less than 256 characters.',\n noticeOfCollection : 'By paying with my card, I agree to the PayPal Privacy Statement.',\n genericError: 'Something went wrong on our end.',\n hostedFieldsTokenizationFailOnDuplicateError: 'This credit card already exists as a saved payment method.',\n hostedFieldsFailedTokenizationError: 'Please check your information and try again.',\n hostedFieldsTokenizationCvvVerificationFailedError: 'Credit card verification failed. Please check your information and try again.',\n hostedFieldsTokenizationNetworkErrorError: 'Network error. Please try again.',\n hostedFieldsFieldsInvalidError: 'Please check your information and try again.',\n paypalButtonMustBeUsed: 'Use the PayPal button to continue with your payment.',\n venmoButtonMustBeUsed: 'Use the Venmo button to continue with your payment.',\n applePayButtonMustBeUsed: 'Use the Apple Pay button to continue with your payment.',\n paypalAccountTokenizationFailedError: 'Something went wrong adding the PayPal account. Please try again.',\n paypalFlowFailedError: 'Something went wrong connecting to PayPal. Please try again.',\n paypalTokenizationRequestActiveError: 'PayPal payment authorization is already in progress.',\n applePayTokenizationError: 'A network error occurred while processing the Apple Pay payment. Please try again.',\n applePayActiveCardError: 'Add a supported card to your Apple Pay wallet.',\n vaultManagerPaymentMethodDeletionError: 'Unable to delete payment method, try again.',\n venmoCanceledError: 'Something went wrong. Ensure you have the most recent version of the Venmo app installed on your device and your browser supports switching to Venmo.',\n venmoAppFailedError: 'The Venmo app could not be found on your device.',\n unsupportedCardTypeError: 'This card type is not supported. Please try another card.',\n // Card form\n cardholderNameLabel: 'Cardholder Name',\n cardNumberLabel: 'Card Number',\n cvvLabel: 'CVV',\n cvvThreeDigitLabelSubheading: '(3 digits)',\n cvvFourDigitLabelSubheading: '(4 digits)',\n expirationDateLabel: 'Expiration Date',\n expirationDateLabelSubheading: '(MM/YY)',\n cardholderNamePlaceholder: 'Cardholder Name',\n expirationDatePlaceholder: 'MM/YY',\n postalCodeLabel: 'Postal Code',\n saveCardLabel: 'Save card',\n payWithCard: 'Pay with card',\n // Payment Method descriptions\n endingIn: 'Ending in {{lastFourCardDigits}}',\n Card: 'Card',\n PayPal: 'PayPal',\n 'PayPal Credit': 'PayPal Credit',\n 'Apple Pay': 'Apple Pay',\n 'Google Pay': 'Google Pay',\n 'Venmo': 'Venmo',\n 'American Express': 'American Express',\n Discover: 'Discover',\n 'Diners Club': 'Diners Club',\n Elo: 'Elo',\n Hiper: 'Hiper',\n Hipercard: 'Hipercard',\n MasterCard: 'Mastercard',\n Visa: 'Visa',\n JCB: 'JCB',\n Maestro: 'Maestro',\n UnionPay: 'UnionPay'\n};\n\n},{}],238:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Pagar con {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Seleccionar otra forma de pago\",\n \"chooseAWayToPay\" : \"Seleccionar forma de pago\",\n \"otherWaysToPay\" : \"Otras formas de pago\",\n \"edit\" : \"Editar\",\n \"doneEditing\" : \"Hecho\",\n \"editPaymentMethods\" : \"Editar formas de pago\",\n \"CreditCardDeleteConfirmationMessage\" : \"¿Eliminar la tarjeta {{secondaryIdentifier}} terminada en {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"¿Eliminar la cuenta PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"¿Seguro que deseas eliminar la cuenta de Venmo con el nombre de usuario {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"¿Seguro que deseas eliminar esta forma de pago?\",\n \"deleteCancelButton\" : \"Cancelar\",\n \"deleteConfirmationButton\" : \"Eliminar\",\n \"fieldEmptyForCvv\" : \"Introduce el CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Introduce una fecha de vencimiento.\",\n \"fieldEmptyForCardholderName\" : \"Introduce el nombre del titular de la tarjeta.\",\n \"fieldTooLongForCardholderName\" : \"El nombre del titular de la tarjeta debe tener menos de 256 caracteres.\",\n \"fieldEmptyForNumber\" : \"Introduce un número.\",\n \"fieldEmptyForPostalCode\" : \"Introduce un código postal.\",\n \"fieldInvalidForCardholderName\" : \"El nombre del titular de la tarjeta no es válido.\",\n \"fieldInvalidForCvv\" : \"El código de seguridad no es válido.\",\n \"fieldInvalidForExpirationDate\" : \"La fecha de vencimiento no es válida.\",\n \"fieldInvalidForNumber\" : \"El número de tarjeta no es válido.\",\n \"fieldInvalidForPostalCode\" : \"El código postal no es válido.\",\n \"noticeOfCollection\" : \"Al pagar con mi tarjeta, acepto la Declaración de privacidad de PayPal.\",\n \"genericError\" : \"Ha habido un problema.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Esta tarjeta de crédito ya existe como forma de pago guardada.\",\n \"hostedFieldsFailedTokenizationError\" : \"Comprueba la información e inténtalo de nuevo.\",\n \"hostedFieldsFieldsInvalidError\" : \"Comprueba la información e inténtalo de nuevo.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Error de red. Inténtalo de nuevo.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Error al verificar la tarjeta de crédito. Comprueba la información e inténtalo de nuevo.\",\n \"paypalButtonMustBeUsed\" : \"Utiliza el botón de PayPal para continuar con el pago.\",\n \"venmoButtonMustBeUsed\": \"Pulsa el botón de Venmo para continuar con el pago.\",\n \"applePayButtonMustBeUsed\": \"Utiliza el botón de Apple Pay para continuar con el pago.\",\n \"paypalAccountTokenizationFailedError\" : \"Se ha producido un error al añadir la cuenta PayPal. Inténtalo de nuevo.\",\n \"paypalFlowFailedError\" : \"Se ha producido un error al conectar con PayPal. Inténtalo de nuevo.\",\n \"paypalTokenizationRequestActiveError\" : \"La autorización del pago de PayPal ya está en curso.\",\n \"venmoCanceledError\" : \"Ha habido un error. Asegúrate de tener la versión más reciente de la aplicación de Venmo instalada en el dispositivo y de que el navegador admita el cambio a Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"No se puede eliminar la forma de pago. Inténtalo de nuevo.\",\n \"venmoAppFailedError\" : \"No se ha podido encontrar la aplicación de Venmo en tu dispositivo.\",\n \"unsupportedCardTypeError\" : \"No se admite este tipo de tarjeta. Prueba con otra tarjeta.\",\n \"applePayTokenizationError\" : \"Se ha producido un error de red al procesar el pago de Apple Pay. Inténtalo de nuevo.\",\n \"applePayActiveCardError\" : \"Añade una tarjeta compatible a tu cartera de Apple Pay.\",\n \"cardholderNameLabel\" : \"Nombre del titular de la tarjeta\",\n \"cardNumberLabel\" : \"Número de tarjeta\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 dígitos)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 dígitos)\",\n \"cardholderNamePlaceholder\" : \"Nombre del titular de la tarjeta\",\n \"expirationDateLabel\" : \"Fecha de vencimiento\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Código postal\",\n \"saveCardLabel\" : \"Guardar tarjeta\",\n \"payWithCard\" : \"Pagar con tarjeta\",\n \"endingIn\" : \"Terminada en {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Tarjeta\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],239:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Pagar con {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Elija otra forma de pago\",\n \"chooseAWayToPay\" : \"Seleccione una forma de pago\",\n \"otherWaysToPay\" : \"Otras formas de pago\",\n \"edit\" : \"Editar\",\n \"doneEditing\" : \"Listo\",\n \"editPaymentMethods\" : \"Editar métodos de pago\",\n \"CreditCardDeleteConfirmationMessage\" : \"¿Eliminar tarjeta {{secondaryIdentifier}} con terminación {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"¿Desea eliminar la cuenta de PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"¿Seguro que desea eliminar la cuenta de Venmo con el nombre de usuario {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"¿Seguro que desea eliminar esta forma de pago?\",\n \"deleteCancelButton\" : \"Cancelar\",\n \"deleteConfirmationButton\" : \"Eliminar\",\n \"fieldEmptyForCvv\" : \"Ingrese un CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Ingrese una fecha de vencimiento.\",\n \"fieldEmptyForCardholderName\" : \"Ingrese un nombre de titular de tarjeta.\",\n \"fieldTooLongForCardholderName\" : \"El nombre del titular de la tarjeta debe tener menos de 256 caracteres.\",\n \"fieldEmptyForNumber\" : \"Ingrese un número.\",\n \"fieldEmptyForPostalCode\" : \"Ingrese un código postal.\",\n \"fieldInvalidForCardholderName\" : \"El nombre del titular de la tarjeta no es válido.\",\n \"fieldInvalidForCvv\" : \"Este código de seguridad no es válido.\",\n \"fieldInvalidForExpirationDate\" : \"Esta fecha de vencimiento no es válida.\",\n \"fieldInvalidForNumber\" : \"Este número de tarjeta no es válido.\",\n \"fieldInvalidForPostalCode\" : \"Este código postal no es válido.\",\n \"noticeOfCollection\" : \"Al pagar con mi tarjeta, acepto el Aviso de Privacidad de PayPal.\",\n \"genericError\" : \"Se ha producido un error.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Esta tarjeta de crédito ya existe como forma de pago guardada.\",\n \"hostedFieldsFailedTokenizationError\" : \"Revise la información e inténtelo de nuevo.\",\n \"hostedFieldsFieldsInvalidError\" : \"Revise la información e inténtelo de nuevo.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Error de red. Inténtelo de nuevo.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"La verificación de la tarjeta de crédito falló. Revise la información e inténtelo de nuevo.\",\n \"paypalButtonMustBeUsed\" : \"Utilice el botón de PayPal para continuar con su pago.\",\n \"venmoButtonMustBeUsed\": \"Use el botón Venmo para continuar con el pago.\",\n \"applePayButtonMustBeUsed\": \"Utilice el botón de Apple Pay para continuar con su pago.\",\n \"paypalAccountTokenizationFailedError\" : \"Se ha producido un error al agregar la cuenta de PayPal. Inténtelo de nuevo.\",\n \"paypalFlowFailedError\" : \"Se ha producido un error al conectar con PayPal. Inténtelo de nuevo.\",\n \"paypalTokenizationRequestActiveError\" : \"La autorización de pago de PayPal ya está en curso.\",\n \"venmoCanceledError\" : \"Se ha producido un error. Asegúrese de que tiene la versión más reciente de la aplicación de Venmo instalada en su dispositivo y que su navegador admita el sitio web Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"No se pudo eliminar la forma de pago, inténtelo de nuevo.\",\n \"venmoAppFailedError\" : \"No se pudo encontrar la aplicación de Venmo en su dispositivo.\",\n \"unsupportedCardTypeError\" : \"Este tipo de tarjeta no es compatible. Inténtelo con otra tarjeta.\",\n \"applePayTokenizationError\" : \"Se ha producido un error de red al procesar el pago de Apple Pay. Inténtelo de nuevo.\",\n \"applePayActiveCardError\" : \"Agregue una tarjeta compatible a su cartera de Apple Pay.\",\n \"cardholderNameLabel\" : \"Nombre del titular de la tarjeta\",\n \"cardNumberLabel\" : \"Número de tarjeta\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 dígitos)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 dígitos)\",\n \"cardholderNamePlaceholder\" : \"Nombre del titular de la tarjeta\",\n \"expirationDateLabel\" : \"Fecha de vencimiento\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Código postal\",\n \"saveCardLabel\" : \"Guardar tarjeta\",\n \"payWithCard\" : \"Pagar con tarjeta\",\n \"endingIn\" : \"Con terminación {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Tarjeta\",\n \"PayPal\" : \"Paypal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],240:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Maksuväline: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Valitse toinen maksutapa\",\n \"chooseAWayToPay\" : \"Valitse maksutapa\",\n \"otherWaysToPay\" : \"Muita maksutapoja\",\n \"edit\" : \"Muokkaa\",\n \"doneEditing\" : \"Valmis\",\n \"editPaymentMethods\" : \"Muokkaa maksutapoja\",\n \"CreditCardDeleteConfirmationMessage\" : \"Haluatko poistaa {{secondaryIdentifier}}} -kortin, joka päättyy {{identifier}}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Haluatko poistaa PayPal-tilin {{identifier}}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Haluatko varmasti poistaa Venmo-tilin, jonka käyttäjätunnus on {{identifier}}}?\",\n \"genericDeleteConfirmationMessage\" : \"Haluatko varmasti poistaa tämän maksutavan?\",\n \"deleteCancelButton\" : \"Peruuta\",\n \"deleteConfirmationButton\" : \"Poista\",\n \"fieldEmptyForCvv\" : \"Anna turvakoodi.\",\n \"fieldEmptyForExpirationDate\" : \"Anna voimassaolon päättymispäivämäärä.\",\n \"fieldEmptyForCardholderName\" : \"Anna kortinhaltijan nimi.\",\n \"fieldTooLongForCardholderName\" : \"Kortinhaltijan nimen on oltava alle 256 merkkiä.\",\n \"fieldEmptyForNumber\" : \"Anna numero.\",\n \"fieldEmptyForPostalCode\" : \"Anna postinumero.\",\n \"fieldInvalidForCardholderName\" : \"Kortinhaltijan nimi ei ole kelvollinen.\",\n \"fieldInvalidForCvv\" : \"Turvakoodi ei ole kelvollinen.\",\n \"fieldInvalidForExpirationDate\" : \"Päättymispäivämäärä ei ole kelvollinen.\",\n \"fieldInvalidForNumber\" : \"Kortin numero ei ole kelvollinen.\",\n \"fieldInvalidForPostalCode\" : \"Postinumero ei ole kelvollinen.\",\n \"noticeOfCollection\" : \"Maksamalla kortillani hyväksyn PayPal tietosuojaselosteen.\",\n \"genericError\" : \"Jokin meni pieleen tässä päässä.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Tämä luottokortti on jo tallennettu maksutavaksi.\",\n \"hostedFieldsFailedTokenizationError\" : \"Tarkista tiedot ja yritä uudelleen.\",\n \"hostedFieldsFieldsInvalidError\" : \"Tarkista tiedot ja yritä uudelleen.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Verkkovirhe. Yritä uudelleen.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Luottokortin varmennus epäonnistui. Tarkista tiedot ja yritä uudelleen.\",\n \"paypalButtonMustBeUsed\" : \"Jatka maksua PayPal-painikkeen avulla.\",\n \"venmoButtonMustBeUsed\": \"Jatka maksua Venmo-painikkeella.\",\n \"applePayButtonMustBeUsed\": \"Jatka maksua Apple Pay-painikkeen avulla.\",\n \"paypalAccountTokenizationFailedError\" : \"Jotain meni pieleen PayPal-tiliä lisätessä. Yritä uudelleen.\",\n \"paypalFlowFailedError\" : \"Jotain meni pieleen muodostettaessa yhteyttä PayPaliin. Yritä uudelleen.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal-maksun valtuutus on jo meneillään.\",\n \"venmoCanceledError\" : \"Jokin meni pieleen. Varmista, että laitteeseesi on asennettu Venmo-sovelluksen viimeisin versio, ja että selain tukee vaihtamista Venmoon.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Maksutavan poistaminen ei onnistu, yritä uudelleen.\",\n \"venmoAppFailedError\" : \"Venmo-sovellusta ei löytynyt laitteesta.\",\n \"unsupportedCardTypeError\" : \"Tätä korttityyppiä ei tueta. Kokeile toista korttia.\",\n \"applePayTokenizationError\" : \"Tapahtui verkkovirhe Apple Pay -maksun käsittelyssä. Yritä uudelleen.\",\n \"applePayActiveCardError\" : \"Lisää tuettu kortti Apple Pay -lompakkoon.\",\n \"cardholderNameLabel\" : \"Kortinhaltijan nimi\",\n \"cardNumberLabel\" : \"Kortin numero\",\n \"cvvLabel\" : \"Kortin turvakoodi\",\n \"cvvThreeDigitLabelSubheading\" : \"(kolme numeroa)\",\n \"cvvFourDigitLabelSubheading\" : \"(neljä numeroa)\",\n \"cardholderNamePlaceholder\" : \"Kortinhaltijan nimi\",\n \"expirationDateLabel\" : \"Päättymispäivämäärä\",\n \"expirationDateLabelSubheading\" : \"(KK/VV)\",\n \"expirationDatePlaceholder\" : \"KK/VV\",\n \"postalCodeLabel\" : \"Postinumero\",\n \"saveCardLabel\" : \"Tallenna kortti\",\n \"payWithCard\" : \"Maksa kortilla\",\n \"endingIn\" : \"Päättyy {{lastFourCardDigits}}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kortti\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],241:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Payer avec {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choisir un autre mode de paiement\",\n \"chooseAWayToPay\" : \"Choisir un mode de paiement\",\n \"otherWaysToPay\" : \"Autres modes de paiement\",\n \"edit\" : \"Modifier\",\n \"doneEditing\" : \"Terminé\",\n \"editPaymentMethods\" : \"Modifier les modes de paiement\",\n \"CreditCardDeleteConfirmationMessage\" : \"Supprimer la carte {{secondaryIdentifier}} se terminant par {{identifier}} ?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Supprimer le compte PayPal {{identifier}} ?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Souhaitez-vous vraiment supprimer le compte Venmo dont le nom d'utilisateur est {{identifier}} ?\",\n \"genericDeleteConfirmationMessage\" : \"Voulez-vous vraiment supprimer ce mode paiement ?\",\n \"deleteCancelButton\" : \"Annuler\",\n \"deleteConfirmationButton\" : \"Supprimer\",\n \"fieldEmptyForCvv\" : \"Saisissez un CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Saisissez une date d'expiration.\",\n \"fieldEmptyForCardholderName\" : \"Saisissez le nom du titulaire de la carte.\",\n \"fieldTooLongForCardholderName\" : \"Le nom du titulaire de la carte doit contenir moins de 256 caractères.\",\n \"fieldEmptyForNumber\" : \"Saisissez un numéro.\",\n \"fieldEmptyForPostalCode\" : \"Saisissez un code postal.\",\n \"fieldInvalidForCardholderName\" : \"Le nom de ce titulaire de la carte n'est pas valide.\",\n \"fieldInvalidForCvv\" : \"Ce cryptogramme visuel n'est pas valide.\",\n \"fieldInvalidForExpirationDate\" : \"Cette date d'expiration n'est pas valide.\",\n \"fieldInvalidForNumber\" : \"Ce numéro de carte n'est pas valide.\",\n \"fieldInvalidForPostalCode\" : \"Ce code postal n'est pas valide.\",\n \"noticeOfCollection\" : \"En payant avec ma carte, j’accepte la Politique de confidentialité de PayPal.\",\n \"genericError\" : \"Une erreur s'est produite de notre côté.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Cette carte de crédit est déjà enregistrée en tant que mode de paiement.\",\n \"hostedFieldsFailedTokenizationError\" : \"Veuillez vérifier vos informations, puis réessayer.\",\n \"hostedFieldsFieldsInvalidError\" : \"Veuillez vérifier vos informations, puis réessayer.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Erreur de réseau. Réessayez.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Échec de vérification de la carte de crédit. Veuillez vérifier vos informations, puis réessayer.\",\n \"paypalButtonMustBeUsed\" : \"Utilisez le bouton PayPal pour poursuivre votre paiement.\",\n \"venmoButtonMustBeUsed\": \"Utilisez le bouton Venmo pour continuer votre paiement.\",\n \"applePayButtonMustBeUsed\": \"Utilisez le bouton Apple Pay pour poursuivre votre paiement.\",\n \"paypalAccountTokenizationFailedError\" : \"Une erreur s'est produite lors de l'ajout du compte PayPal. Veuillez réessayer.\",\n \"paypalFlowFailedError\" : \"Une erreur s'est produite lors de la connexion à PayPal. Veuillez réessayer.\",\n \"paypalTokenizationRequestActiveError\" : \"L'autorisation de paiement PayPal est déjà en cours.\",\n \"venmoCanceledError\" : \"Une erreur s'est produite. Assurez-vous que la version la plus récente de l'application Venmo est installée sur votre appareil et que votre navigateur prend en charge la redirection vers Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Impossible de supprimer le mode de paiement. Réessayez.\",\n \"venmoAppFailedError\" : \"L'application Venmo n'est pas présente sur votre appareil.\",\n \"unsupportedCardTypeError\" : \"Ce type de carte n'est pas pris en charge. Veuillez essayer une autre carte.\",\n \"applePayTokenizationError\" : \"Une erreur de réseau s'est produite lors du traitement du paiement Apple Pay. Veuillez réessayer.\",\n \"applePayActiveCardError\" : \"Ajoutez une carte prise en charge à votre portefeuille Apple Pay.\",\n \"cardholderNameLabel\" : \"Nom du titulaire de la carte\",\n \"cardNumberLabel\" : \"Numéro de carte\",\n \"cvvLabel\" : \"Cryptogramme visuel\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 chiffres)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 chiffres)\",\n \"cardholderNamePlaceholder\" : \"Nom du titulaire de la carte\",\n \"expirationDateLabel\" : \"Date d'expiration\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Code postal\",\n \"saveCardLabel\" : \"Enregistrer la carte\",\n \"payWithCard\" : \"Payer par carte\",\n \"endingIn\" : \"Se terminant par {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Carte\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],242:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Payer avec : {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choisir un autre mode de paiement\",\n \"chooseAWayToPay\" : \"Choisir un mode de paiement\",\n \"otherWaysToPay\" : \"Autres modes de paiement\",\n \"edit\" : \"Modifier\",\n \"doneEditing\" : \"Terminé\",\n \"editPaymentMethods\" : \"Modifier les modes de paiement\",\n \"CreditCardDeleteConfirmationMessage\" : \"Supprimer la carte {{secondaryIdentifier}} se terminant par {{identifier}} ?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Supprimer le compte PayPal {{identifier}} ?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Souhaitez-vous vraiment supprimer le compte Venmo associé au nom d'utilisateur {{identifier}} ?\",\n \"genericDeleteConfirmationMessage\" : \"Souhaitez-vous vraiment supprimer ce mode de paiement ?\",\n \"deleteCancelButton\" : \"Annuler\",\n \"deleteConfirmationButton\" : \"Supprimer\",\n \"fieldEmptyForCvv\" : \"Renseignez un cryptogramme visuel.\",\n \"fieldEmptyForExpirationDate\" : \"Renseignez une date d'expiration.\",\n \"fieldEmptyForCardholderName\" : \"Renseignez le nom du titulaire de la carte.\",\n \"fieldTooLongForCardholderName\" : \"Le nom du titulaire de la carte doit comporter moins de 256 caractères.\",\n \"fieldEmptyForNumber\" : \"Renseignez un numéro.\",\n \"fieldEmptyForPostalCode\" : \"Renseignez un code postal.\",\n \"fieldInvalidForCardholderName\" : \"Le nom de ce titulaire de la carte est incorrect.\",\n \"fieldInvalidForCvv\" : \"Ce cryptogramme visuel est incorrect.\",\n \"fieldInvalidForExpirationDate\" : \"Cette date d'expiration est incorrecte.\",\n \"fieldInvalidForNumber\" : \"Ce numéro de carte est incorrect.\",\n \"fieldInvalidForPostalCode\" : \"Ce code postal est incorrect.\",\n \"noticeOfCollection\" : \"En payant avec ma carte, j'accepte la Politique de confidentialité de PayPal.\",\n \"genericError\" : \"Une erreur est survenue.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Cette carte bancaire existe déjà en tant que mode de paiement enregistré.\",\n \"hostedFieldsFailedTokenizationError\" : \"Vérifiez vos informations et réessayez.\",\n \"hostedFieldsFieldsInvalidError\" : \"Vérifiez vos informations et réessayez.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Erreur réseau. Réessayez.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Échec de la vérification de carte bancaire. Vérifiez vos informations et réessayez.\",\n \"paypalButtonMustBeUsed\" : \"Utilisez le bouton PayPal pour poursuivre le paiement.\",\n \"venmoButtonMustBeUsed\": \"Utilisez le bouton Venmo pour poursuivre le paiement.\",\n \"applePayButtonMustBeUsed\": \"Utilisez le bouton Apple Pay pour poursuivre le paiement.\",\n \"paypalAccountTokenizationFailedError\" : \"Une erreur est survenue lors de l'ajout du compte PayPal. Réessayez.\",\n \"paypalFlowFailedError\" : \"Une erreur est survenue lors de la connexion à PayPal. Réessayez.\",\n \"paypalTokenizationRequestActiveError\" : \"L'autorisation de paiement PayPal est déjà en cours.\",\n \"venmoCanceledError\" : \"Une erreur est survenue. Vérifiez que la dernière version de l'application Venmo est installée sur votre appareil et que votre navigateur prend en charge la redirection vers Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Impossible de supprimer le mode de paiement, réessayez.\",\n \"venmoAppFailedError\" : \"Nous n'avons pas trouvé l'application Venmo sur votre appareil.\",\n \"unsupportedCardTypeError\" : \"Ce type de carte n'est pas pris en charge. Essayez une autre carte.\",\n \"applePayTokenizationError\" : \"Une erreur réseau est survenue lors du traitement du paiement Apple Pay. Réessayez.\",\n \"applePayActiveCardError\" : \"Enregistrez une carte prise en charge sur votre portefeuille Apple Pay.\",\n \"cardholderNameLabel\" : \"Nom du titulaire de la carte\",\n \"cardNumberLabel\" : \"Numéro de carte\",\n \"cvvLabel\" : \"Crypto.\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 chiffres)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 chiffres)\",\n \"cardholderNamePlaceholder\" : \"Nom du titulaire de la carte\",\n \"expirationDateLabel\" : \"Date d'expiration\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Code postal\",\n \"saveCardLabel\" : \"Enregistrer la carte\",\n \"payWithCard\" : \"Payer par carte\",\n \"endingIn\" : \"Se terminant par {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Carte\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],243:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Payer avec {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Choisir un autre mode de paiement\",\n \"chooseAWayToPay\" : \"Choisir un mode de paiement\",\n \"otherWaysToPay\" : \"Autres modes de paiement\",\n \"edit\" : \"Modifier\",\n \"doneEditing\" : \"Terminé\",\n \"editPaymentMethods\" : \"Modifier les modes de paiement\",\n \"CreditCardDeleteConfirmationMessage\" : \"Supprimer la carte {{secondaryIdentifier}}} se terminant par {{identifier}}} ?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Supprimer le compte PayPal {{identifier}}} ?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Souhaitez-vous vraiment supprimer le compte Venmo associé au nom d'utilisateur {{identifier}}} ?\",\n \"genericDeleteConfirmationMessage\" : \"Souhaitez-vous vraiment supprimer ce mode de paiement ?\",\n \"deleteCancelButton\" : \"Annuler\",\n \"deleteConfirmationButton\" : \"Supprimer\",\n \"fieldEmptyForCvv\" : \"Renseignez un cryptogramme visuel.\",\n \"fieldEmptyForExpirationDate\" : \"Renseignez une date d'expiration.\",\n \"fieldEmptyForCardholderName\" : \"Renseignez le nom du titulaire de la carte.\",\n \"fieldTooLongForCardholderName\" : \"Le nom du titulaire de la carte doit comporter moins de 256 caractères.\",\n \"fieldEmptyForNumber\" : \"Renseignez un numéro.\",\n \"fieldEmptyForPostalCode\" : \"Renseignez un code postal.\",\n \"fieldInvalidForCardholderName\" : \"Le nom de ce titulaire de la carte est incorrect.\",\n \"fieldInvalidForCvv\" : \"Ce cryptogramme visuel est incorrect.\",\n \"fieldInvalidForExpirationDate\" : \"Cette date d'expiration est incorrecte.\",\n \"fieldInvalidForNumber\" : \"Ce numéro de carte est incorrect.\",\n \"fieldInvalidForPostalCode\" : \"Ce code postal est incorrect.\",\n \"noticeOfCollection\" : \"En payant avec ma carte, j'accepte la Politique de confidentialité de PayPal.\",\n \"genericError\" : \"Une erreur est survenue.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Cette carte bancaire existe déjà en tant que mode de paiement enregistré.\",\n \"hostedFieldsFailedTokenizationError\" : \"Vérifiez vos informations et réessayez.\",\n \"hostedFieldsFieldsInvalidError\" : \"Vérifiez vos informations et réessayez.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Erreur réseau. Réessayez.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Échec de la vérification de carte bancaire. Vérifiez vos informations et réessayez.\",\n \"paypalButtonMustBeUsed\" : \"Utilisez le bouton PayPal pour poursuivre le paiement.\",\n \"venmoButtonMustBeUsed\": \"Utilisez le bouton Venmo pour poursuivre le paiement.\",\n \"applePayButtonMustBeUsed\": \"Utilisez le bouton Apple Pay pour poursuivre le paiement.\",\n \"paypalAccountTokenizationFailedError\" : \"Une erreur est survenue lors de l'ajout du compte PayPal. Réessayez.\",\n \"paypalFlowFailedError\" : \"Une erreur est survenue lors de la connexion à PayPal. Réessayez.\",\n \"paypalTokenizationRequestActiveError\" : \"L'autorisation de paiement PayPal est déjà en cours.\",\n \"venmoCanceledError\" : \"Une erreur est survenue. Vérifiez que la dernière version de l'application Venmo est installée sur votre appareil et que votre navigateur prend en charge la redirection vers Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Impossible de supprimer le mode de paiement, réessayez.\",\n \"venmoAppFailedError\" : \"Nous n'avons pas trouvé l'application Venmo sur votre appareil.\",\n \"unsupportedCardTypeError\" : \"Ce type de carte n'est pas pris en charge. Essayez une autre carte.\",\n \"applePayTokenizationError\" : \"Une erreur réseau est survenue lors du traitement du paiement Apple Pay. Réessayez.\",\n \"applePayActiveCardError\" : \"Enregistrez une carte prise en charge sur votre portefeuille Apple Pay.\",\n \"cardholderNameLabel\" : \"Nom du titulaire de la carte\",\n \"cardNumberLabel\" : \"Numéro de carte\",\n \"cvvLabel\" : \"Crypto.\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 chiffres)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 chiffres)\",\n \"cardholderNamePlaceholder\" : \"Nom du titulaire de la carte\",\n \"expirationDateLabel\" : \"Date d'expiration\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Code postal\",\n \"saveCardLabel\" : \"Enregistrer la carte\",\n \"payWithCard\" : \"Payer par carte\",\n \"endingIn\" : \"Se termine le {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Carte\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],244:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"תשלום באמצעות {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"עליך לבחור שיטת תשלום אחרת\",\n \"chooseAWayToPay\" : \"כיצד ברצונך לשלם?\",\n \"otherWaysToPay\" : \"שיטות תשלום אחרות\",\n \"edit\" : \"עריכה\",\n \"doneEditing\" : \"בוצע\",\n \"editPaymentMethods\" : \"עריכת שיטות תשלום\",\n \"CreditCardDeleteConfirmationMessage\" : \"למחוק {{secondaryIdentifier}} הכרטיס המסתיים {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"למחוק PayPal החשבון {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"האם אתה בטוח שברצונך למחוק את חשבון Venmo הרשום תחת שם המשתמש {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"האם אתה בטוח שברצונך למחוק שיטת תשלום זו?\",\n \"deleteCancelButton\" : \"ביטול\",\n \"deleteConfirmationButton\" : \"מחיקה\",\n \"fieldEmptyForCvv\" : \"עליך למלא את מספר האבטחה של כרטיס האשראי.\",\n \"fieldEmptyForExpirationDate\" : \"עליך למלא את תאריך פקיעת התוקף.\",\n \"fieldEmptyForCardholderName\" : \"עליך למלא את שם בעל הכרטיס.\",\n \"fieldTooLongForCardholderName\" : \"שם בעל הכרטיס יכול להכיל 256 תווים לכל היותר.\",\n \"fieldEmptyForNumber\" : \"עליך למלא את המספר.\",\n \"fieldEmptyForPostalCode\" : \"עליך למלא את המיקוד.\",\n \"fieldInvalidForCardholderName\" : \"שם בעל הכרטיס אינו חוקי.\",\n \"fieldInvalidForCvv\" : \"קוד אבטחה אינו חוקי.\",\n \"fieldInvalidForExpirationDate\" : \"תאריך פקיעת התוקף אינו חוקי.\",\n \"fieldInvalidForNumber\" : \"מספר כרטיס האשראי אינו חוקי.\",\n \"fieldInvalidForPostalCode\" : \"המיקוד אינו חוקי.\",\n \"noticeOfCollection\" : \"בכך שאני משלם/ת באמצעות כרטיס האשראי שלי, אני מסכים/ה להצהרת הפרטיות של PayPal.\",\n \"genericError\" : \"נראה שמשהו השתבש בצד שלנו.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"כרטיס אשראי זה כבר שמור כשיטת תשלום.\",\n \"hostedFieldsFailedTokenizationError\" : \"עליך לבדוק את הפרטים שלך ולנסות שוב.\",\n \"hostedFieldsFieldsInvalidError\" : \"עליך לבדוק את הפרטים שלך ולנסות שוב.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"שגיאת רשת. עליך לנסות שוב.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"אימות כרטיס האשראי נכשל. עליך לבדוק את הפרטים שלך ולנסות שוב.\",\n \"paypalButtonMustBeUsed\" : \"להשתמש בלחצן PayPal כדי להמשיך בביצוע התשלום שלך.\",\n \"venmoButtonMustBeUsed\": \"השתמשו בלחצן Venmo כדי להמשיך בתשלום שלכם.\",\n \"applePayButtonMustBeUsed\": \"השתמשו בלחצן Apple Pay כדי להמשיך בביצוע התשלום שלכם.\",\n \"paypalAccountTokenizationFailedError\" : \"משהו השתבש בעת הוספת חשבון PayPal. עליך לנסות שוב.\",\n \"paypalFlowFailedError\" : \"משהו השתבש בהתחברות ל-PayPal. עליך לנסות שוב.\",\n \"paypalTokenizationRequestActiveError\" : \"אישור התשלום של PayPal כבר מתבצע.\",\n \"venmoCanceledError\" : \"נראה שמשהו השתבש. עליך לוודא שהגרסה העדכנית ביותר של אפליקציית Venmo מותקנת במכשיר שלך, ושהדפדפן שלך תומך במעבר ל-Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"לא הצלחנו למחוק את שיטת התשלום, עליך לנסות שוב.\",\n \"venmoAppFailedError\" : \"לא מצאנו למצוא את אפליקציית Venmo במכשיר שלך.\",\n \"unsupportedCardTypeError\" : \"סוג כרטיס זה אינו נתמך. עליך לנסות כרטיס אחר.\",\n \"applePayTokenizationError\" : \"אירעה שגיאת רשת בעת עיבוד תשלום התשלומים של Apple Pay. עליך לנסות שוב.\",\n \"applePayActiveCardError\" : \"הוספת כרטיס נתמך לארנק Apple Pay שלך.\",\n \"cardholderNameLabel\" : \"שם בעל הכרטיס\",\n \"cardNumberLabel\" : \"מספר כרטיס\",\n \"cvvLabel\" : \"קוד אבטחת כרטיס (CVV)\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 ספרות)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 ספרות)\",\n \"cardholderNamePlaceholder\" : \"שם בעל הכרטיס\",\n \"expirationDateLabel\" : \"תאריך פקיעת תוקף\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY‏\",\n \"postalCodeLabel\" : \"מיקוד\",\n \"saveCardLabel\" : \"שמירת כרטיס אשראי\",\n \"payWithCard\" : \"לשלם באמצעות כרטיס אשראי\",\n \"endingIn\" : \"מסתיים בתאריך {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"כרטיס\",\n \"PayPal\" : \"PayPal‏\",\n \"PayPal Credit\" : \"PayPal Credit‏\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"אמריקן אקספרס\",\n \"Discover\" : \"Discover‏\",\n \"Diners Club\" : \"דיינרס קלאב\",\n \"Elo\" : \"Elo‏\",\n \"Hiper\" : \"Hiper‏\",\n \"Hipercard\" : \"HiperCard‏\",\n \"MasterCard\" : \"מאסטרקארד\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB‏\",\n \"Maestro\" : \"Maestro‏\",\n \"UnionPay\" : \"UnionPay‏\"\n}\n;\n\n},{}],245:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Fizetés ezzel: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Válasszon másik fizetési módot\",\n \"chooseAWayToPay\" : \"Válasszon fizetési módot\",\n \"otherWaysToPay\" : \"Egyéb fizetési módok\",\n \"edit\" : \"Szerkesztés\",\n \"doneEditing\" : \"Kész\",\n \"editPaymentMethods\" : \"Fizetési módok szerkesztése\",\n \"CreditCardDeleteConfirmationMessage\" : \"Törli a(z) {{identifier}}} végű {{secondaryIdentifier}}} kártyát?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Törli a(z) {{identifier}} PayPal-számlát?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Biztosan törli a(z) {{identifier}} felhasználónévhez tartozó Venmo-számlát?\",\n \"genericDeleteConfirmationMessage\" : \"Biztosan törli ezt a fizetési módot?\",\n \"deleteCancelButton\" : \"Mégse\",\n \"deleteConfirmationButton\" : \"Törlés\",\n \"fieldEmptyForCvv\" : \"Kérjük, töltse ki a CVV-számot.\",\n \"fieldEmptyForExpirationDate\" : \"Töltse ki a lejárati dátumot.\",\n \"fieldEmptyForCardholderName\" : \"Töltse ki a kártyabirtokos nevét.\",\n \"fieldTooLongForCardholderName\" : \"A kártyatulajdonos neve nem lehet hosszabb mint 256 karakter.\",\n \"fieldEmptyForNumber\" : \"Töltse ki a számot.\",\n \"fieldEmptyForPostalCode\" : \"Töltse ki az irányítószámot.\",\n \"fieldInvalidForCardholderName\" : \"Ez a kártyabirtokos neve nem érvényes.\",\n \"fieldInvalidForCvv\" : \"Ez a biztonsági kód nem érvényes.\",\n \"fieldInvalidForExpirationDate\" : \"Ez a lejárati dátum érvénytelen.\",\n \"fieldInvalidForNumber\" : \"Ez a kártyaszám nem érvényes.\",\n \"fieldInvalidForPostalCode\" : \"Ez az irányítószám nem érvényes.\",\n \"noticeOfCollection\" : \"A kártyámmal történő fizetés révén elfogadom a PayPal Adatvédelmi nyilatkozatát.\",\n \"genericError\" : \"Hiba történt a mi oldalunkon.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Ez a hitelkártya már szerepel mentett fizetési módként.\",\n \"hostedFieldsFailedTokenizationError\" : \"Ellenőrizze az adatait, majd próbálja újra.\",\n \"hostedFieldsFieldsInvalidError\" : \"Ellenőrizze az adatait, majd próbálja újra.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Hálózati hiba. Próbálja újra.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"A hitelkártya hitelesítése sikertelen. Ellenőrizze az adatait, majd próbálja újra.\",\n \"paypalButtonMustBeUsed\" : \"A fizetés folytatásához használja a PayPal-gombot.\",\n \"venmoButtonMustBeUsed\": \"Használja a Venmo-gombot a fizetés folytatásához.\",\n \"applePayButtonMustBeUsed\": \"A fizetés folytatásához használja az Apple Pay-gombot.\",\n \"paypalAccountTokenizationFailedError\" : \"Hiba történt a PayPal-számla hozzáadása közben. Próbálja újra.\",\n \"paypalFlowFailedError\" : \"Hiba történt a PayPalhoz való kapcsolódás közben. Próbálja újra.\",\n \"paypalTokenizationRequestActiveError\" : \"A PayPal-fizetés engedélyezése már folyamatban van.\",\n \"venmoCanceledError\" : \"Hiba történt. Ellenőrizze, hogy eszközére a Venmo-alkalmazás legfrissebb verziója van-e telepítve, és hogy a böngészője támogatja-e a Venmo-ra történő átváltást.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Nem sikerült törölni a fizetési módot, próbálja újra.\",\n \"venmoAppFailedError\" : \"A Venmo alkalmazást nem találja a rendszer az eszközön.\",\n \"unsupportedCardTypeError\" : \"Ez a kártyatípus nem támogatott. Próbáljon meg egy másik kártyát.\",\n \"applePayTokenizationError\" : \"Hálózati hiba történt az Apple Pay-kifizetés közben. Próbálja újra.\",\n \"applePayActiveCardError\" : \"Adjon egy támogatott kártyát az Apple Pay pénztárcához.\",\n \"cardholderNameLabel\" : \"Kártyabirtokos neve\",\n \"cardNumberLabel\" : \"Kártyaszám\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 számjegy)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 számjegy)\",\n \"cardholderNamePlaceholder\" : \"Kártyabirtokos neve\",\n \"expirationDateLabel\" : \"Lejárati dátum\",\n \"expirationDateLabelSubheading\" : \"(HH/ÉÉ)\",\n \"expirationDatePlaceholder\" : \"HH/ÉÉ\",\n \"postalCodeLabel\" : \"Irányítószám\",\n \"saveCardLabel\" : \"Kártya mentése\",\n \"payWithCard\" : \"Fizetés bankkártyával vagy hitelkártyával\",\n \"endingIn\" : \"{{lastFourCardDigits}}} végű\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kártya\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],246:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Membayar dengan {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Pilih metode pembayaran lain\",\n \"chooseAWayToPay\" : \"Pilih cara pembayaran\",\n \"otherWaysToPay\" : \"Cara lain untuk membayar\",\n \"edit\" : \"Edit\",\n \"doneEditing\" : \"Selesai\",\n \"editPaymentMethods\" : \"Edit metode pembayaran\",\n \"CreditCardDeleteConfirmationMessage\" : \"Hapus kartu {{secondaryIdentifier}} yang berakhiran dengan {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Hapus rekening PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Yakin ingin menghapus rekening Venmo dengan nama pengguna {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Yakin ingin menghapus metode pembayaran ini?\",\n \"deleteCancelButton\" : \"Batalkan\",\n \"deleteConfirmationButton\" : \"Hapus\",\n \"fieldEmptyForCvv\" : \"Mohon mengisi CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Silakan mengisi tanggal kedaluwarsa.\",\n \"fieldEmptyForCardholderName\" : \"Silakan mengisi nama pemilik kartu.\",\n \"fieldTooLongForCardholderName\" : \"Nama pemilik kartu harus kurang dari 256 karakter.\",\n \"fieldEmptyForNumber\" : \"Mohon mengisi angkanya.\",\n \"fieldEmptyForPostalCode\" : \"Mohon mengisi kode pos.\",\n \"fieldInvalidForCardholderName\" : \"Nama pemilik kartu ini tidak valid.\",\n \"fieldInvalidForCvv\" : \"Kode keamanan ini tidak valid.\",\n \"fieldInvalidForExpirationDate\" : \"Tanggal kedaluwarsa ini tidak valid.\",\n \"fieldInvalidForNumber\" : \"Nomor kartu ini tidak valid.\",\n \"fieldInvalidForPostalCode\" : \"Kode pos ini tidak valid.\",\n \"noticeOfCollection\" : \"Dengan membayar menggunakan kartu, saya menyetujui Pernyataan Privasi PayPal.\",\n \"genericError\" : \"Ada yang salah pada sistem kami.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Kartu kredit ini telah ada sebelumnya sebagai metode pembayaran tersimpan.\",\n \"hostedFieldsFailedTokenizationError\" : \"Mohon periksa informasi Anda dan coba lagi.\",\n \"hostedFieldsFieldsInvalidError\" : \"Mohon periksa informasi Anda dan coba lagi.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Kesalahan jaringan. Mohon coba lagi.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Verifikasi kartu kredit gagal. Mohon periksa informasi Anda dan coba lagi.\",\n \"paypalButtonMustBeUsed\" : \"Gunakan tombol PayPal untuk melanjutkan pembayaran.\",\n \"venmoButtonMustBeUsed\": \"Gunakan tombol Venmo untuk melanjutkan pembayaran Anda.\",\n \"applePayButtonMustBeUsed\": \"Gunakan tombol Apple Pay untuk melanjutkan pembayaran.\",\n \"paypalAccountTokenizationFailedError\" : \"Terjadi kesalahan saat menambahkan rekening PayPal. Mohon coba lagi.\",\n \"paypalFlowFailedError\" : \"Terjadi kesalahan ketika menghubungkan ke PayPal. Mohon coba lagi.\",\n \"paypalTokenizationRequestActiveError\" : \"Otorisasi pembayaran PayPal sedang diproses.\",\n \"venmoCanceledError\" : \"Terjadi kesalahan. Pastikan Anda memiliki aplikasi Venmo versi terbaru di perangkat dan peramban Anda mendukung peralihan ke Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Tidak dapat menghapus metode pembayaran, coba lagi.\",\n \"venmoAppFailedError\" : \"Aplikasi Venmo tidak dapat ditemukan di perangkat Anda.\",\n \"unsupportedCardTypeError\" : \"Jenis kartu ini tidak didukung. Mohon coba kartu lainnya.\",\n \"applePayTokenizationError\" : \"Terjadi kesalahan pada jaringan saat memproses pembayaran Apple Pay. Mohon coba lagi.\",\n \"applePayActiveCardError\" : \"Tambahkan kartu yang didukung oleh wallet Apple Pay Anda.\",\n \"cardholderNameLabel\" : \"Nama Pemilik Kartu\",\n \"cardNumberLabel\" : \"Nomor Kartu\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 angka)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 angka)\",\n \"cardholderNamePlaceholder\" : \"Nama Pemilik Kartu\",\n \"expirationDateLabel\" : \"Tanggal Kedaluwarsa\",\n \"expirationDateLabelSubheading\" : \"(BB/TT)\",\n \"expirationDatePlaceholder\" : \"BB/TT\",\n \"postalCodeLabel\" : \"Kode Pos\",\n \"saveCardLabel\" : \"Simpan kartu\",\n \"payWithCard\" : \"Bayar dengan kartu\",\n \"endingIn\" : \"Berakhiran dengan {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kartu\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Jelajahi\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],247:[function(require,module,exports){\n/* eslint-disable camelcase */\n'use strict';\n\nvar assign = require('../lib/assign').assign;\n\nvar fiveCharacterLocales = {\n ar_EG: require('./ar_EG'),\n cs_CZ: require('./cs_CZ'),\n da_DK: require('./da_DK'),\n de_DE: require('./de_DE'),\n el_GR: require('./el_GR'),\n en_AU: require('./en_AU'),\n en_GB: require('./en_GB'),\n en_IN: require('./en_IN'),\n en_US: require('./en_US'),\n es_ES: require('./es_ES'),\n es_XC: require('./es_XC'),\n fi_FI: require('./fi_FI'),\n fr_CA: require('./fr_CA'),\n fr_FR: require('./fr_FR'),\n fr_XC: require('./fr_XC'),\n he_IL: require('./he_IL'),\n hu_HU: require('./hu_HU'),\n id_ID: require('./id_ID'),\n it_IT: require('./it_IT'),\n ja_JP: require('./ja_JP'),\n ko_KR: require('./ko_KR'),\n nl_NL: require('./nl_NL'),\n no_NO: require('./no_NO'),\n pl_PL: require('./pl_PL'),\n pt_BR: require('./pt_BR'),\n pt_PT: require('./pt_PT'),\n ru_RU: require('./ru_RU'),\n sk_SK: require('./sk_SK'),\n sv_SE: require('./sv_SE'),\n th_TH: require('./th_TH'),\n zh_CN: require('./zh_CN'),\n zh_HK: require('./zh_HK'),\n zh_TW: require('./zh_TW'),\n zh_XC: require('./zh_XC')\n};\n\nvar twoCharacterLocaleAliases = {\n ar: fiveCharacterLocales.ar_EG,\n cs: fiveCharacterLocales.cs_CZ,\n da: fiveCharacterLocales.da_DK,\n de: fiveCharacterLocales.de_DE,\n el: fiveCharacterLocales.el_GR,\n en: fiveCharacterLocales.en_US,\n es: fiveCharacterLocales.es_ES,\n fi: fiveCharacterLocales.fi_FI,\n fr: fiveCharacterLocales.fr_FR,\n id: fiveCharacterLocales.id_ID,\n it: fiveCharacterLocales.it_IT,\n hu: fiveCharacterLocales.hu_HU,\n ja: fiveCharacterLocales.ja_JP,\n ko: fiveCharacterLocales.ko_KR,\n nl: fiveCharacterLocales.nl_NL,\n no: fiveCharacterLocales.no_NO,\n pl: fiveCharacterLocales.pl_PL,\n pt: fiveCharacterLocales.pt_PT,\n ru: fiveCharacterLocales.ru_RU,\n sk: fiveCharacterLocales.sk_SK,\n sv: fiveCharacterLocales.sv_SE,\n th: fiveCharacterLocales.th_TH,\n zh: fiveCharacterLocales.zh_CN\n};\n\nmodule.exports = {\n twoCharacterLocaleAliases: twoCharacterLocaleAliases,\n fiveCharacterLocales: fiveCharacterLocales,\n translations: assign({}, twoCharacterLocaleAliases, fiveCharacterLocales)\n};\n/* eslint-enable camelcase */\n\n},{\"../lib/assign\":213,\"./ar_EG\":229,\"./cs_CZ\":230,\"./da_DK\":231,\"./de_DE\":232,\"./el_GR\":233,\"./en_AU\":234,\"./en_GB\":235,\"./en_IN\":236,\"./en_US\":237,\"./es_ES\":238,\"./es_XC\":239,\"./fi_FI\":240,\"./fr_CA\":241,\"./fr_FR\":242,\"./fr_XC\":243,\"./he_IL\":244,\"./hu_HU\":245,\"./id_ID\":246,\"./it_IT\":248,\"./ja_JP\":249,\"./ko_KR\":250,\"./nl_NL\":251,\"./no_NO\":252,\"./pl_PL\":253,\"./pt_BR\":254,\"./pt_PT\":255,\"./ru_RU\":256,\"./sk_SK\":257,\"./sv_SE\":258,\"./th_TH\":259,\"./zh_CN\":260,\"./zh_HK\":261,\"./zh_TW\":262,\"./zh_XC\":263}],248:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Metodo di pagamento: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Scegli un altro metodo di pagamento\",\n \"chooseAWayToPay\" : \"Scegli un metodo di pagamento\",\n \"otherWaysToPay\" : \"Altri metodi di pagamento\",\n \"edit\" : \"Modifica\",\n \"doneEditing\" : \"Fine\",\n \"editPaymentMethods\" : \"Modifica metodi di pagamento\",\n \"CreditCardDeleteConfirmationMessage\" : \"Eliminare la carta {{secondaryIdentifier}} le cui ultime cifre sono {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Eliminare il conto PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Vuoi davvero eliminare il conto Venmo con il nome utente {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Vuoi davvero eliminare questo metodo di pagamento?\",\n \"deleteCancelButton\" : \"Annulla\",\n \"deleteConfirmationButton\" : \"Rimuovi\",\n \"fieldEmptyForCvv\" : \"Compila un CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Compila una data di scadenza.\",\n \"fieldEmptyForCardholderName\" : \"Compila un nome del titolare.\",\n \"fieldTooLongForCardholderName\" : \"Il nome del titolare della carta non può contenere più di 256 caratteri.\",\n \"fieldEmptyForNumber\" : \"Compila un numero.\",\n \"fieldEmptyForPostalCode\" : \"Compila un CAP.\",\n \"fieldInvalidForCardholderName\" : \"Il nome del titolare non è valido.\",\n \"fieldInvalidForCvv\" : \"Il codice di sicurezza non è valido.\",\n \"fieldInvalidForExpirationDate\" : \"La data di scadenza non è valida.\",\n \"fieldInvalidForNumber\" : \"Il numero di carta non è valido.\",\n \"fieldInvalidForPostalCode\" : \"Il CAP non è valido.\",\n \"noticeOfCollection\" : \"Pagando con la carta, accetto la Dichiarazione sulla privacy di PayPal.\",\n \"genericError\" : \"Si è verificato un errore nei nostri sistemi.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Questa carta di credito esiste già come metodo di pagamento salvato.\",\n \"hostedFieldsFailedTokenizationError\" : \"Controlla i tuoi dati e riprova.\",\n \"hostedFieldsFieldsInvalidError\" : \"Controlla i tuoi dati e riprova.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Errore di rete. Riprova.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Verifica della carta di credito non riuscita. Controlla i tuoi dati e riprova.\",\n \"paypalButtonMustBeUsed\" : \"Usa il pulsante PayPal per continuare con il pagamento.\",\n \"venmoButtonMustBeUsed\": \"Usa il pulsante Venmo per continuare il pagamento.\",\n \"applePayButtonMustBeUsed\": \"Usa il pulsante Apple Pay per continuare con il pagamento.\",\n \"paypalAccountTokenizationFailedError\" : \"Si è verificato un errore durante l'aggiunta del conto PayPal. Riprova.\",\n \"paypalFlowFailedError\" : \"Si è verificato un errore durante la connessione a PayPal. Riprova.\",\n \"paypalTokenizationRequestActiveError\" : \"Autorizzazione di pagamento PayPal già in corso.\",\n \"venmoCanceledError\" : \"Si è verificato un errore. Assicurati di avere installato la versione più recente dell'app Venmo sul tuo dispositivo e che il tuo browser supporti il passaggio a Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Impossibile eliminare il metodo di pagamento, riprova.\",\n \"venmoAppFailedError\" : \"Impossibile trovare l'app Venmo sul tuo dispositivo.\",\n \"unsupportedCardTypeError\" : \"Questo tipo di carta non è supportato. Prova con un'altra carta.\",\n \"applePayTokenizationError\" : \"Si è verificato un errore di rete durante l'elaborazione del pagamento Apple Pay. Riprova.\",\n \"applePayActiveCardError\" : \"Aggiungi una carta supportata al tuo wallet Apple Pay.\",\n \"cardholderNameLabel\" : \"Nome del titolare\",\n \"cardNumberLabel\" : \"Numero di carta\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 cifre)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 cifre)\",\n \"cardholderNamePlaceholder\" : \"Nome del titolare\",\n \"expirationDateLabel\" : \"Data di scadenza\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"CAP\",\n \"saveCardLabel\" : \"Salva carta\",\n \"payWithCard\" : \"Paga con una carta\",\n \"endingIn\" : \"Le ultime cifre sono {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Carta\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],249:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"{{paymentSource}}でのお支払い\",\n \"chooseAnotherWayToPay\" : \"別の支払方法を選択してください\",\n \"chooseAWayToPay\" : \"支払方法を選択してください\",\n \"otherWaysToPay\" : \"その他の支払方法\",\n \"edit\" : \"編集\",\n \"doneEditing\" : \"完了\",\n \"editPaymentMethods\" : \"支払方法の編集\",\n \"CreditCardDeleteConfirmationMessage\" : \"{{secondaryIdentifier}}カード(末尾番号: {{identifier}})を削除しますか?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"PayPalアカウント{{identifier}}を削除しますか?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"ユーザー名{{identifier}}のVenmoアカウントを削除してよろしいですか?\",\n \"genericDeleteConfirmationMessage\" : \"この支払方法を削除しますか?\",\n \"deleteCancelButton\" : \"キャンセル\",\n \"deleteConfirmationButton\" : \"削除\",\n \"fieldEmptyForCvv\" : \"CVVを入力してください。\",\n \"fieldEmptyForExpirationDate\" : \"有効期限を入力してください。\",\n \"fieldEmptyForCardholderName\" : \"カード保有者の名前を入力してください。\",\n \"fieldTooLongForCardholderName\" : \"カード保有者の名前は256文字未満にしてください。\",\n \"fieldEmptyForNumber\" : \"番号を入力してください。\",\n \"fieldEmptyForPostalCode\" : \"郵便番号を入力してください。\",\n \"fieldInvalidForCardholderName\" : \"このカード保有者の名前は無効です。\",\n \"fieldInvalidForCvv\" : \"このセキュリティコードは無効です。\",\n \"fieldInvalidForExpirationDate\" : \"この有効期限は無効です。\",\n \"fieldInvalidForNumber\" : \"このカード番号は無効です。\",\n \"fieldInvalidForPostalCode\" : \"この郵便番号は無効です。\",\n \"noticeOfCollection\" : \"カードで支払うことにより、PayPalプライバシーステートメントに同意したものとみなされます。\",\n \"genericError\" : \"弊社側で問題が発生しました。\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"このクレジットカードは、保存済みの支払方法としてすでに存在します。\",\n \"hostedFieldsFailedTokenizationError\" : \"情報を確認してもう一度お試しください。\",\n \"hostedFieldsFieldsInvalidError\" : \"情報を確認してもう一度お試しください。\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"ネットワークエラーです。再度お試しください。\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"クレジットカードの認証に失敗しました。情報を確認してもう一度お試しください。\",\n \"paypalButtonMustBeUsed\" : \"支払いを続行するには、PayPalボタンを使用します。\",\n \"venmoButtonMustBeUsed\": \"お支払いを続行するには、Venmoボタンを使用してください。\",\n \"applePayButtonMustBeUsed\": \"Apple Payボタンを使用してお支払いを続行してください。\",\n \"paypalAccountTokenizationFailedError\" : \"PayPalアカウントの追加中に問題が発生しました。再度お試しください。\",\n \"paypalFlowFailedError\" : \"PayPalへの接続に問題が発生しました。再度お試しください。\",\n \"paypalTokenizationRequestActiveError\" : \"PayPalの支払い承認はすでに処理中です。\",\n \"venmoCanceledError\" : \"問題が発生しました。お使いの端末にVenmoアプリの最新バージョンがインストールされており、お使いのブラウザがVenmoへの切り替えをサポートしていることをご確認ください。\",\n \"vaultManagerPaymentMethodDeletionError\" : \"支払方法を削除できない場合は、もう一度お試しください。\",\n \"venmoAppFailedError\" : \"お客さまの端末でVenmoアプリを見つけることができませんでした。\",\n \"unsupportedCardTypeError\" : \"このカードのタイプはサポートされていません。別のカードをご使用ください。\",\n \"applePayTokenizationError\" : \"Apple Payの支払いの処理中にネットワークエラーが発生しました。再度お試しください。\",\n \"applePayActiveCardError\" : \"Apple Payウォレットに対応しているカードを追加してください。\",\n \"cardholderNameLabel\" : \"カード保有者の名前\",\n \"cardNumberLabel\" : \"カード番号\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3桁)\",\n \"cvvFourDigitLabelSubheading\" : \"(4桁)\",\n \"cardholderNamePlaceholder\" : \"カード保有者の名前\",\n \"expirationDateLabel\" : \"有効期限\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"郵便番号\",\n \"saveCardLabel\" : \"カードを保存\",\n \"payWithCard\" : \"カードで支払う\",\n \"endingIn\" : \"末尾番号: {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"カード\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"銀聯(UnionPay)\"\n}\n;\n\n},{}],250:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"결제수단: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"다른 결제수단을 선택해 주세요.\",\n \"chooseAWayToPay\" : \"결제수단 선택\",\n \"otherWaysToPay\" : \"다른 결제수단\",\n \"edit\" : \"편집\",\n \"doneEditing\" : \"완료\",\n \"editPaymentMethods\" : \"결제수단 편집\",\n \"CreditCardDeleteConfirmationMessage\" : \"{{identifier}}(으)로 끝나는 {{secondaryIdentifier}} 카드를 삭제하시겠습니까?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"PayPal 계정 {{identifier}}을(를) 삭제하시겠습니까?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"사용자 이름 {{identifier}}의 Venmo 계정을 정말 삭제하시겠습니까?\",\n \"genericDeleteConfirmationMessage\" : \"이 결제수단을 삭제하시겠습니까?\",\n \"deleteCancelButton\" : \"취소\",\n \"deleteConfirmationButton\" : \"삭제\",\n \"fieldEmptyForCvv\" : \"CVV를 입력하세요.\",\n \"fieldEmptyForExpirationDate\" : \"만료일을 입력하세요.\",\n \"fieldEmptyForCardholderName\" : \"카드 소유자 이름을 입력하세요.\",\n \"fieldTooLongForCardholderName\" : \"카드 소유자 이름은 256자 미만이어야 합니다.\",\n \"fieldEmptyForNumber\" : \"번호를 입력하세요.\",\n \"fieldEmptyForPostalCode\" : \"우편번호를 입력하세요.\",\n \"fieldInvalidForCardholderName\" : \"이 카드 소유자 이름은 유효하지 않습니다.\",\n \"fieldInvalidForCvv\" : \"이 보안 코드는 유효하지 않습니다.\",\n \"fieldInvalidForExpirationDate\" : \"이 만료일은 유효하지 않습니다.\",\n \"fieldInvalidForNumber\" : \"이 카드 번호는 유효하지 않습니다.\",\n \"fieldInvalidForPostalCode\" : \"이 우편번호는 유효하지 않습니다.\",\n \"noticeOfCollection\" : \"자신의 카드로 결제함으로써 사용자는 PayPal 개인정보 취급방침에 동의합니다.\",\n \"genericError\" : \"저희 쪽에 문제가 발생했습니다.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"이 신용카드는 이미 저장된 결제수단으로 설정되어 있습니다.\",\n \"hostedFieldsFailedTokenizationError\" : \"정보를 확인하고 다시 시도해 주세요.\",\n \"hostedFieldsFieldsInvalidError\" : \"정보를 확인하고 다시 시도해 주세요.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"네트워크 오류입니다. 다시 시도해 주세요.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"신용카드 인증에 실패했습니다. 정보를 확인하고 다시 시도해 주세요.\",\n \"paypalButtonMustBeUsed\" : \"PayPal 버튼을 사용하여 결제를 계속 진행하세요.\",\n \"venmoButtonMustBeUsed\": \"결제를 계속하려면 Venmo 버튼을 사용하세요.\",\n \"applePayButtonMustBeUsed\": \"Apple Pay 버튼을 사용하여 결제를 계속 진행하세요.\",\n \"paypalAccountTokenizationFailedError\" : \"PayPal 계정을 추가하는 중에 문제가 발생했습니다. 다시 시도해 주세요.\",\n \"paypalFlowFailedError\" : \"PayPal에 연결하는 데 문제가 발생했습니다. 다시 시도해 주세요.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal 결제 승인이 이미 진행 중입니다.\",\n \"venmoCanceledError\" : \"오류가 발생했습니다. 기기에 최신 버전의 Venmo 앱이 설치되어 있고 브라우저가 Venmo로의 전환을 지원하는지 확인하세요.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"결제수단을 삭제할 수 없습니다. 다시 시도해 주세요.\",\n \"venmoAppFailedError\" : \"기기에서 Venmo 앱을 찾을 수 없습니다.\",\n \"unsupportedCardTypeError\" : \"이 카드 유형은 지원되지 않습니다. 다른 카드로 시도해 주세요.\",\n \"applePayTokenizationError\" : \"Apple Pay 결제를 처리하는 동안 네트워크 오류가 발생했습니다. 다시 시도해 주세요.\",\n \"applePayActiveCardError\" : \"Apple Pay 전자지갑에 지원되는 카드를 추가하세요.\",\n \"cardholderNameLabel\" : \"카드 소유자 이름\",\n \"cardNumberLabel\" : \"카드 번호\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3자리)\",\n \"cvvFourDigitLabelSubheading\" : \"(4자리)\",\n \"cardholderNamePlaceholder\" : \"카드 소유자 이름\",\n \"expirationDateLabel\" : \"만료일\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"우편번호\",\n \"saveCardLabel\" : \"카드 저장\",\n \"payWithCard\" : \"카드로 결제\",\n \"endingIn\" : \"다음으로 끝남: {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"카드\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],251:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Betalen met {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Kies een andere betaalmethode\",\n \"chooseAWayToPay\" : \"Kies een betaalmethode\",\n \"otherWaysToPay\" : \"Andere betaalmethoden\",\n \"edit\" : \"Bewerken\",\n \"doneEditing\" : \"Klaar\",\n \"editPaymentMethods\" : \"Betaalmethoden bewerken\",\n \"CreditCardDeleteConfirmationMessage\" : \"{{secondaryIdentifier}}-kaart eindigend op {{identifier}} verwijderen?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"PayPal-rekening {{identifier}} verwijderen?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Weet je zeker dat je de Venmo-rekening met gebruikersnaam {{identifier}} wilt verwijderen?\",\n \"genericDeleteConfirmationMessage\" : \"Weet je zeker dat je deze betaalmethode wilt verwijderen?\",\n \"deleteCancelButton\" : \"Annuleren\",\n \"deleteConfirmationButton\" : \"Verwijderen\",\n \"fieldEmptyForCvv\" : \"Vul een CVV in.\",\n \"fieldEmptyForExpirationDate\" : \"Vul een vervaldatum in.\",\n \"fieldEmptyForCardholderName\" : \"Vul de naam van de kaarthouder in.\",\n \"fieldTooLongForCardholderName\" : \"Naam kaarthouder moet minder dan 256 tekens bevatten.\",\n \"fieldEmptyForNumber\" : \"Vul een nummer in.\",\n \"fieldEmptyForPostalCode\" : \"Vul een postcode in.\",\n \"fieldInvalidForCardholderName\" : \"Naam kaarthouder is ongeldig.\",\n \"fieldInvalidForCvv\" : \"Deze beveiligingscode is ongeldig.\",\n \"fieldInvalidForExpirationDate\" : \"Deze vervaldatum is ongeldig.\",\n \"fieldInvalidForNumber\" : \"Dit kaartnummer is ongeldig.\",\n \"fieldInvalidForPostalCode\" : \"Deze postcode is ongeldig.\",\n \"noticeOfCollection\" : \"Door met mijn kaart te betalen, ga ik akkoord met de PayPal Privacyverklaring.\",\n \"genericError\" : \"Er is aan onze kant iets fout gegaan.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Deze creditcard bestaat al als opgeslagen betaalmethode.\",\n \"hostedFieldsFailedTokenizationError\" : \"Controleer je gegevens en probeer het opnieuw.\",\n \"hostedFieldsFieldsInvalidError\" : \"Controleer je gegevens en probeer het opnieuw.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Netwerkfout. Probeer het opnieuw.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Verificatie van creditcard is mislukt. Controleer je gegevens en probeer het opnieuw.\",\n \"paypalButtonMustBeUsed\" : \"Gebruik de PayPal-knop om door te gaan met je betaling.\",\n \"venmoButtonMustBeUsed\": \"Gebruik de Venmo-knop om door te gaan met je betaling.\",\n \"applePayButtonMustBeUsed\": \"Gebruik de knop Apple Pay om door te gaan met je betaling.\",\n \"paypalAccountTokenizationFailedError\" : \"Er is iets fout gegaan bij het toevoegen van de PayPal-rekening. Probeer het opnieuw.\",\n \"paypalFlowFailedError\" : \"Er is iets fout gegaan bij het verbinden met PayPal. Probeer het opnieuw.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal-betaalautorisatie is al in voortgang.\",\n \"venmoCanceledError\" : \"Er is iets fout gegaan. Zorg ervoor dat je de recentste versie van de Venmo-app op je apparaat geïnstalleerd hebt en dat je browser ondersteuning biedt voor overschakelen naar Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Kan betaalmethode niet verwijderen. Probeer het opnieuw.\",\n \"venmoAppFailedError\" : \"De Venmo-app is niet gevonden op je apparaat.\",\n \"unsupportedCardTypeError\" : \"Dit kaarttype wordt niet ondersteund. Gebruik een andere kaart.\",\n \"applePayTokenizationError\" : \"Er is een netwerkfout opgetreden bij het verwerken van de Apple Pay-betaling. Probeer het opnieuw.\",\n \"applePayActiveCardError\" : \"Voeg een ondersteunde kaart toe aan je Apple Pay-wallet.\",\n \"cardholderNameLabel\" : \"Naam kaarthouder\",\n \"cardNumberLabel\" : \"Kaartnummer\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 cijfers)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 cijfers)\",\n \"cardholderNamePlaceholder\" : \"Naam kaarthouder\",\n \"expirationDateLabel\" : \"Vervaldatum\",\n \"expirationDateLabelSubheading\" : \"(mm/jj)\",\n \"expirationDatePlaceholder\" : \"mm/jj\",\n \"postalCodeLabel\" : \"Postcode\",\n \"saveCardLabel\" : \"Kaart opslaan\",\n \"payWithCard\" : \"Betalen met kaart\",\n \"endingIn\" : \"Eindigend op {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kaart\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],252:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Betaler med {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Velg en annen betalingsmåte\",\n \"chooseAWayToPay\" : \"Velg betalingsmåte\",\n \"otherWaysToPay\" : \"Andre betalingsmåter\",\n \"edit\" : \"Endre\",\n \"doneEditing\" : \"Ferdig\",\n \"editPaymentMethods\" : \"Rediger betalingsmetode\",\n \"CreditCardDeleteConfirmationMessage\" : \"Vil du slette {{secondaryIdentifier}}-kortet som slutter på {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Vil du slette PayPal-konto {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Er du sikker på at du vil slette Venmo-kontoen med brukernavnet {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Er du sikker på at du vil slette denne betalingsmetoden?\",\n \"deleteCancelButton\" : \"Avbryt\",\n \"deleteConfirmationButton\" : \"Slett\",\n \"fieldEmptyForCvv\" : \"Fyll ut sikkerhetskode (CVV).\",\n \"fieldEmptyForExpirationDate\" : \"Fyll ut utløpsdato.\",\n \"fieldEmptyForCardholderName\" : \"Fyll ut kortinnehavers navn.\",\n \"fieldTooLongForCardholderName\" : \"Kortinnehaverens må ha mindre enn 256 tegn.\",\n \"fieldEmptyForNumber\" : \"Fyll ut nummer.\",\n \"fieldEmptyForPostalCode\" : \"Fyll ut postnummer.\",\n \"fieldInvalidForCardholderName\" : \"Denne kortinnehaverens navn er ikke gyldig.\",\n \"fieldInvalidForCvv\" : \"Denne sikkerhetskoden er ikke gyldig.\",\n \"fieldInvalidForExpirationDate\" : \"Denne utløpsdatoen er ikke gyldig.\",\n \"fieldInvalidForNumber\" : \"Dette kortnummeret er ikke gyldig.\",\n \"fieldInvalidForPostalCode\" : \"Dette postnummeret er ikke gyldig.\",\n \"noticeOfCollection\" : \"Ved å betale med kortet godtar jeg PayPals personvernerklæring.\",\n \"genericError\" : \"Noe gikk galt hos oss.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Dette betalingskortet finnes allerede som en lagret betalingsmetode.\",\n \"hostedFieldsFailedTokenizationError\" : \"Kontroller informasjonen, og prøv på nytt.\",\n \"hostedFieldsFieldsInvalidError\" : \"Kontroller informasjonen, og prøv på nytt.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Nettverksfeil. Prøv på nytt.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Kontroll av betalingskort mislyktes. Kontroller informasjonen, og prøv på nytt.\",\n \"paypalButtonMustBeUsed\" : \"Bruk PayPal-knappen for å fortsette med betalingen.\",\n \"venmoButtonMustBeUsed\": \"Bruk Venmo-knappen for å fortsette med betalingen.\",\n \"applePayButtonMustBeUsed\": \"Bruk Apple Pay-knappen for å fortsette med betalingen.\",\n \"paypalAccountTokenizationFailedError\" : \"Kan ikke legge til PayPal-kontoen. Prøv på nytt.\",\n \"paypalFlowFailedError\" : \"Kan ikke koble til PayPal. Prøv på nytt.\",\n \"paypalTokenizationRequestActiveError\" : \"PayPals prosess for betalingsgodkjenning har allerede startet.\",\n \"venmoCanceledError\" : \"Noe gikk galt. Kontroller at den nyeste versjonen av Venmo-appen er installert på enheten din, og at nettleseren din støtter bruk av Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Kan ikke slette betalingsmetoden. Prøv på nytt.\",\n \"venmoAppFailedError\" : \"Finner ikke Venmo-appen på enheten.\",\n \"unsupportedCardTypeError\" : \"Denne korttypen støttes ikke. Prøv et annet kort.\",\n \"applePayTokenizationError\" : \"Nettverksfeil under behandling av Apple Pay-betalingen. Prøv på nytt.\",\n \"applePayActiveCardError\" : \"Legg til et støttet kort i e-lommeboken for Apple Pay.\",\n \"cardholderNameLabel\" : \"Kortinnehavers navn\",\n \"cardNumberLabel\" : \"Kortnummer\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 sifre)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 sifre)\",\n \"cardholderNamePlaceholder\" : \"Kortinnehavers navn\",\n \"expirationDateLabel\" : \"Utløpsdato\",\n \"expirationDateLabelSubheading\" : \"(MM/ÅÅ)\",\n \"expirationDatePlaceholder\" : \"MM/ÅÅ\",\n \"postalCodeLabel\" : \"Postnummer\",\n \"saveCardLabel\" : \"Lagre kort\",\n \"payWithCard\" : \"Betal med kort\",\n \"endingIn\" : \"Slutter på {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kort\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],253:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Źródło finansowania płatności: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Wybierz inny sposób płatności.\",\n \"chooseAWayToPay\" : \"Wybierz sposób płatności\",\n \"otherWaysToPay\" : \"Inne sposoby płatności\",\n \"edit\" : \"Edytuj\",\n \"doneEditing\" : \"Gotowe\",\n \"editPaymentMethods\" : \"Edytuj formy płatności\",\n \"CreditCardDeleteConfirmationMessage\" : \"Usunąć kartę {{secondaryIdentifier}} o numerze zakończonym cyframi {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Usunąć {{identifier}}konta PayPal?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Czy na pewno chcesz usunąć konto Venmo o nazwie użytkownika {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Na pewno chcesz usunąć tę formę płatności?\",\n \"deleteCancelButton\" : \"Anuluj\",\n \"deleteConfirmationButton\" : \"Usuń\",\n \"fieldEmptyForCvv\" : \"Wpisz kod CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Wpisz datę ważności.\",\n \"fieldEmptyForCardholderName\" : \"Podaj imię i nazwisko posiadacza karty.\",\n \"fieldTooLongForCardholderName\" : \"Imię i nazwisko posiadacza karty musi mieć mniej niż 256 znaków.\",\n \"fieldEmptyForNumber\" : \"Podaj numer.\",\n \"fieldEmptyForPostalCode\" : \"Podaj kod pocztowy.\",\n \"fieldInvalidForCardholderName\" : \"To imię i nazwisko posiadacza karty jest nieprawidłowe.\",\n \"fieldInvalidForCvv\" : \"Ten kod bezpieczeństwa jest nieprawidłowy.\",\n \"fieldInvalidForExpirationDate\" : \"Ta data ważności jest nieprawidłowa.\",\n \"fieldInvalidForNumber\" : \"Numer karty jest nieprawidłowy.\",\n \"fieldInvalidForPostalCode\" : \"Kod pocztowy jest nieprawidłowy.\",\n \"noticeOfCollection\" : \"Dokonując płatności kartą, akceptuję Informacje dotyczące zasad ochrony danych firmy PayPal.\",\n \"genericError\" : \"Wystąpił błąd po naszej stronie.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Ta karta kredytowa istnieje jako zapisana forma płatności.\",\n \"hostedFieldsFailedTokenizationError\" : \"Sprawdź swoje informacje i spróbuj ponownie.\",\n \"hostedFieldsFieldsInvalidError\" : \"Sprawdź swoje informacje i spróbuj ponownie.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Błąd sieci. Spróbuj ponownie.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Weryfikacja karty kredytowej nie powiodła się. Sprawdź swoje informacje i spróbuj ponownie.\",\n \"paypalButtonMustBeUsed\" : \"Aby kontynuować płatność, użyj przycisku PayPal.\",\n \"venmoButtonMustBeUsed\": \"Użyj przycisku Venmo, aby kontynuować płatność\",\n \"applePayButtonMustBeUsed\": \"Aby kontynuować płatność, użyj przycisku Apple Pay.\",\n \"paypalAccountTokenizationFailedError\" : \"Coś poszło nie tak przy dodawaniu konta PayPal. Spróbuj ponownie.\",\n \"paypalFlowFailedError\" : \"Wystąpił problem przy nawiązywaniu połączenia z PayPal. Spróbuj ponownie.\",\n \"paypalTokenizationRequestActiveError\" : \"Autoryzacja płatności PayPal jest w trakcie realizacji.\",\n \"venmoCanceledError\" : \"Coś poszło nie tak. Upewnij się, że na Twoim urządzeniu jest zainstalowana najnowsza wersja aplikacji Venmo, a Twoja przeglądarka obsługuje przełączanie na Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Nie można usunąć formy płatności, spróbuj ponownie.\",\n \"venmoAppFailedError\" : \"Aplikacja Venmo nie została odnaleziona na Twoim urządzeniu.\",\n \"unsupportedCardTypeError\" : \"Ten typ karty nie jest obsługiwany. Spróbuj użyć innej karty.\",\n \"applePayTokenizationError\" : \"Wystąpił błąd sieciowy podczas przetwarzania płatności Apple Pay. Spróbuj ponownie.\",\n \"applePayActiveCardError\" : \"Dodaj obsługiwaną kartę do portfela Apple Pay.\",\n \"cardholderNameLabel\" : \"Imię i nazwisko posiadacza karty\",\n \"cardNumberLabel\" : \"Numer karty\",\n \"cvvLabel\" : \"Kod CVV/CVC2\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 cyfry)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 cyfry)\",\n \"cardholderNamePlaceholder\" : \"Imię i nazwisko posiadacza karty\",\n \"expirationDateLabel\" : \"Data ważności\",\n \"expirationDateLabelSubheading\" : \"(MM/RR)\",\n \"expirationDatePlaceholder\" : \"MM/RR\",\n \"postalCodeLabel\" : \"Kod pocztowy\",\n \"saveCardLabel\" : \"Zapisz kartę\",\n \"payWithCard\" : \"Zapłać kartą\",\n \"endingIn\" : \"Numer zakończonym cyframi {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Karta\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],254:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Pagando com {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Escolha outro meio de pagamento\",\n \"chooseAWayToPay\" : \"Escolha um meio de pagamento\",\n \"otherWaysToPay\" : \"Outras formas de pagar\",\n \"edit\" : \"Editar\",\n \"doneEditing\" : \"Concluído\",\n \"editPaymentMethods\" : \"Editar meios de pagamento\",\n \"CreditCardDeleteConfirmationMessage\" : \"Excluir cartão {{secondaryIdentifier}} de final {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Excluir conta do PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Tem certeza de que deseja excluir a conta do Venmo com nome de usuário {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Tem certeza que deseja excluir este meio de pagamento?\",\n \"deleteCancelButton\" : \"Cancelar\",\n \"deleteConfirmationButton\" : \"Excluir\",\n \"fieldEmptyForCvv\" : \"Preencha um CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Preencha uma data de vencimento.\",\n \"fieldEmptyForCardholderName\" : \"Preencha um nome para o titular do cartão.\",\n \"fieldTooLongForCardholderName\" : \"O nome do titular do cartão deve ter menos de 256 caracteres.\",\n \"fieldEmptyForNumber\" : \"Preencha um número.\",\n \"fieldEmptyForPostalCode\" : \"Preencha um código postal.\",\n \"fieldInvalidForCardholderName\" : \"O nome do titular do cartão é inválido.\",\n \"fieldInvalidForCvv\" : \"Este código de segurança é inválido.\",\n \"fieldInvalidForExpirationDate\" : \"Esta data de vencimento é inválida.\",\n \"fieldInvalidForNumber\" : \"O número do cartão é inválido.\",\n \"fieldInvalidForPostalCode\" : \"Este código postal é inválido.\",\n \"noticeOfCollection\" : \"Ao pagar com o meu cartão, aceito a Declaração de Privacidade da PayPal.\",\n \"genericError\" : \"Ocorreu um erro.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Este cartão de crédito já existe como um meio de pagamento salvo.\",\n \"hostedFieldsFailedTokenizationError\" : \"Verifique as informações e tente novamente.\",\n \"hostedFieldsFieldsInvalidError\" : \"Verifique as informações e tente novamente.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Erro de rede. Tente novamente.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Falha na verificação do cartão de crédito. Verifique as informações e tente novamente.\",\n \"paypalButtonMustBeUsed\" : \"Use o botão do PayPal para prosseguir com o pagamento.\",\n \"venmoButtonMustBeUsed\": \"Utilize o botão Venmo para continuar o seu pagamento.\",\n \"applePayButtonMustBeUsed\": \"Use o botão Apple Pay para prosseguir com o pagamento.\",\n \"paypalAccountTokenizationFailedError\" : \"Ocorreu um erro ao adicionar a conta do PayPal. Tente novamente.\",\n \"paypalFlowFailedError\" : \"Ocorreu um erro na conexão com o PayPal. Tente novamente.\",\n \"paypalTokenizationRequestActiveError\" : \"A autorização de pagamento do PayPal já está em andamento.\",\n \"venmoCanceledError\" : \"Ocorreu um erro. Certifique-se de que você tenha a versão mais recente do aplicativo Venmo instalada no seu dispositivo, e que seu navegador aceite a mudança para o Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Não é possível excluir o meio de pagamento, tente novamente.\",\n \"venmoAppFailedError\" : \"O aplicativo Venmo não foi encontrado no seu dispositivo.\",\n \"unsupportedCardTypeError\" : \"Este tipo de cartão não é aceito. Tente outro cartão.\",\n \"applePayTokenizationError\" : \"Ocorreu um erro de rede ao processar o pagamento do Apple Pay. Tente novamente.\",\n \"applePayActiveCardError\" : \"Adicione um cartão compatível à sua carteira Apple Pay.\",\n \"cardholderNameLabel\" : \"Nome do titular do cartão\",\n \"cardNumberLabel\" : \"Número do cartão\",\n \"cvvLabel\" : \"CSC\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 dígitos)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 dígitos)\",\n \"cardholderNamePlaceholder\" : \"Nome do titular do cartão\",\n \"expirationDateLabel\" : \"Data de vencimento\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"CEP\",\n \"saveCardLabel\" : \"Salvar cartão\",\n \"payWithCard\" : \"Pague com seu cartão de crédito\",\n \"endingIn\" : \"De final {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Cartão\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"Crédito do PayPal\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Descobrir\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],255:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Pagamento com {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Escolher outra forma de pagamento\",\n \"chooseAWayToPay\" : \"Escolher forma de pagamento\",\n \"otherWaysToPay\" : \"Outras formas de pagamento\",\n \"edit\" : \"Editar\",\n \"doneEditing\" : \"Concluído\",\n \"editPaymentMethods\" : \"Editar meios de pagamento\",\n \"CreditCardDeleteConfirmationMessage\" : \"Eliminar cartão {{secondaryIdentifier}} terminado em {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Eliminar conta PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Quer mesmo eliminar a conta Venmo com o nome de utilizador {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Quer mesmo eliminar este meio de pagamento?\",\n \"deleteCancelButton\" : \"Cancelar\",\n \"deleteConfirmationButton\" : \"Eliminar\",\n \"fieldEmptyForCvv\" : \"Introduza um CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Introduza uma data de validade.\",\n \"fieldEmptyForCardholderName\" : \"Introduza um nome do titular do cartão.\",\n \"fieldTooLongForCardholderName\" : \"O Nome do titular do cartão deve ter menos de 256 carateres.\",\n \"fieldEmptyForNumber\" : \"Introduza um número.\",\n \"fieldEmptyForPostalCode\" : \"Introduza um código postal.\",\n \"fieldInvalidForCardholderName\" : \"Este nome do titular do cartão não é válido.\",\n \"fieldInvalidForCvv\" : \"Este código de segurança não é válido.\",\n \"fieldInvalidForExpirationDate\" : \"Esta data de validade não é válida.\",\n \"fieldInvalidForNumber\" : \"Este número de cartão não é válido.\",\n \"fieldInvalidForPostalCode\" : \"Este código postal não é válido.\",\n \"noticeOfCollection\" : \"Ao pagar com o meu cartão, aceito a Declaração de Privacidade da PayPal.\",\n \"genericError\" : \"Tudo indica que houve um problema.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Este cartão de crédito já existe como meio de pagamento guardado.\",\n \"hostedFieldsFailedTokenizationError\" : \"Verifique as suas informações e tente novamente.\",\n \"hostedFieldsFieldsInvalidError\" : \"Verifique as suas informações e tente novamente.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Erro de rede. Tente novamente.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"A verificação do cartão de crédito falhou. Verifique as suas informações e tente novamente.\",\n \"paypalButtonMustBeUsed\" : \"Use o botão PayPal para continuar o seu pagamento.\",\n \"venmoButtonMustBeUsed\": \"Utilize o botão Venmo para continuar o seu pagamento.\",\n \"applePayButtonMustBeUsed\": \"Utilize o botão Apple Pay para continuar o seu pagamento.\",\n \"paypalAccountTokenizationFailedError\" : \"Ocorreu um erro ao adicionar a conta PayPal. Tente novamente.\",\n \"paypalFlowFailedError\" : \"Ocorreu um erro ao ligar ao PayPal. Tente novamente.\",\n \"paypalTokenizationRequestActiveError\" : \"A autorização de pagamento com PayPal já está em curso.\",\n \"venmoCanceledError\" : \"Ocorreu um erro. Certifique-se de que tem a versão mais recente da aplicação Venmo instalada no seu dispositivo e que o seu navegador suporta a mudança para Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Não é possível eliminar o meio de pagamento; tente novamente.\",\n \"venmoAppFailedError\" : \"A aplicação Venmo não foi encontrada no seu dispositivo.\",\n \"unsupportedCardTypeError\" : \"Este tipo de cartão não é suportado. Tente com outro cartão.\",\n \"applePayTokenizationError\" : \"Ocorreu um erro de rede ao processar o pagamento com Apple Pay. Tente novamente.\",\n \"applePayActiveCardError\" : \"Adicione um cartão suportado à sua carteira Apple Pay.\",\n \"cardholderNameLabel\" : \"Nome do titular do cartão\",\n \"cardNumberLabel\" : \"Número do cartão\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 dígitos)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 dígitos)\",\n \"cardholderNamePlaceholder\" : \"Nome do titular do cartão\",\n \"expirationDateLabel\" : \"Data de validade\",\n \"expirationDateLabelSubheading\" : \"(MM/AA)\",\n \"expirationDatePlaceholder\" : \"MM/AA\",\n \"postalCodeLabel\" : \"Código postal\",\n \"saveCardLabel\" : \"Guardar cartão\",\n \"payWithCard\" : \"Pagar com cartão\",\n \"endingIn\" : \"Termina em {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Cartão\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],256:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Оплата с помощью {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Выберите другой способ оплаты\",\n \"chooseAWayToPay\" : \"Выберите способ оплаты\",\n \"otherWaysToPay\" : \"Другие способы оплаты\",\n \"edit\" : \"Изменить\",\n \"doneEditing\" : \"Готово\",\n \"editPaymentMethods\" : \"Изменить способы оплаты\",\n \"CreditCardDeleteConfirmationMessage\" : \"Удалить карту {{secondaryIdentifier}} с номером, заканчивающимся на {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Удалить счет PayPal {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Вы действительно хотите удалить счет Venmo с именем пользователя {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Вы действительно хотите удалить этот способ оплаты?\",\n \"deleteCancelButton\" : \"Отмена\",\n \"deleteConfirmationButton\" : \"Удалить\",\n \"fieldEmptyForCvv\" : \"Укажите код безопасности.\",\n \"fieldEmptyForExpirationDate\" : \"Укажите дату окончания срока действия.\",\n \"fieldEmptyForCardholderName\" : \"Укажите имя владельца карты.\",\n \"fieldTooLongForCardholderName\" : \"Имя владельца карты должно содержать не более 256 символов.\",\n \"fieldEmptyForNumber\" : \"Укажите номер.\",\n \"fieldEmptyForPostalCode\" : \"Укажите почтовый индекс.\",\n \"fieldInvalidForCardholderName\" : \"Недопустимое имя владельца карты.\",\n \"fieldInvalidForCvv\" : \"Недопустимый код безопасности.\",\n \"fieldInvalidForExpirationDate\" : \"Недопустимая дата истечения срока действия.\",\n \"fieldInvalidForNumber\" : \"Недопустимый номер карты.\",\n \"fieldInvalidForPostalCode\" : \"Недопустимый почтовый индекс.\",\n \"noticeOfCollection\" : \"Выполняя оплату с помощью карты, я соглашаюсь с условиями Положения о конфиденциальности PayPal.\",\n \"genericError\" : \"Возникла проблема с нашей стороны.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Данная кредитная карта уже существует как сохраненный способ оплаты.\",\n \"hostedFieldsFailedTokenizationError\" : \"Проверьте правильность ввода данных и повторите попытку.\",\n \"hostedFieldsFieldsInvalidError\" : \"Проверьте правильность ввода данных и повторите попытку.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Сбой сети. Повторите попытку.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Сбой при проверке кредитной карты. Проверьте правильность ввода данных и повторите попытку.\",\n \"paypalButtonMustBeUsed\" : \"Используйте кнопку PayPal, чтобы продолжить оплату.\",\n \"venmoButtonMustBeUsed\": \"Используйте кнопку Venmo, чтобы продолжить оплату.\",\n \"applePayButtonMustBeUsed\": \"Нажмите кнопку Apple Pay, чтобы продолжить оплату.\",\n \"paypalAccountTokenizationFailedError\" : \"Возникла ошибка при добавлении счета PayPal. Повторите попытку.\",\n \"paypalFlowFailedError\" : \"Возникла ошибка при подключении к PayPal. Повторите попытку.\",\n \"paypalTokenizationRequestActiveError\" : \"Авторизация платежа через PayPal уже выполняется.\",\n \"venmoCanceledError\" : \"Возникла ошибка. Убедитесь, что на вашем устройстве установлена самая последняя версия приложения Venmo и браузер поддерживает переход на Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Не удалось удалить способ оплаты, повторите попытку.\",\n \"venmoAppFailedError\" : \"Приложение Venmo не удается обнаружить на вашем устройстве.\",\n \"unsupportedCardTypeError\" : \"Данный тип карты не поддерживается. Попробуйте воспользоваться другой картой.\",\n \"applePayTokenizationError\" : \"Возникла ошибка сети при обработке платежа Apple Pay. Повторите попытку.\",\n \"applePayActiveCardError\" : \"Добавьте поддерживаемую карту в ваш счет Apple Pay.\",\n \"cardholderNameLabel\" : \"Имя владельца карты\",\n \"cardNumberLabel\" : \"Номер карты\",\n \"cvvLabel\" : \"Код безопасности карты CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 цифры)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 цифры)\",\n \"cardholderNamePlaceholder\" : \"Имя владельца карты\",\n \"expirationDateLabel\" : \"Дата окончания срока действия\",\n \"expirationDateLabelSubheading\" : \"(ММ/ГГ)\",\n \"expirationDatePlaceholder\" : \"ММ/ГГ\",\n \"postalCodeLabel\" : \"Индекс\",\n \"saveCardLabel\" : \"Сохранить карту\",\n \"payWithCard\" : \"Оплатить банковской картой\",\n \"endingIn\" : \"Заканчивается на {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Карта\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Полезное\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],257:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Spôsob platby: {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Vyberte iný spôsob platby\",\n \"chooseAWayToPay\" : \"Zvoľte spôsob platby\",\n \"otherWaysToPay\" : \"Iné spôsoby platby\",\n \"edit\" : \"Upraviť\",\n \"doneEditing\" : \"Hotovo\",\n \"editPaymentMethods\" : \"Upraviť spôsoby platby\",\n \"CreditCardDeleteConfirmationMessage\" : \"Chcete odstrániť kartu {{secondaryIdentifier}} končiacu sa na {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Chcete odstrániť {{identifier}}účtu PayPal?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Naozaj chcete odstrániť účet Venmo s menom používateľa {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Ste si istí, že chcete tento spôsob platby odstrániť?\",\n \"deleteCancelButton\" : \"Zrušiť\",\n \"deleteConfirmationButton\" : \"Odstrániť\",\n \"fieldEmptyForCvv\" : \"Vyplňte kód CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Zadajte dátum skončenia platnosti.\",\n \"fieldEmptyForCardholderName\" : \"Zadajte meno majiteľa karty.\",\n \"fieldTooLongForCardholderName\" : \"Meno majiteľa karty musí obsahovať menej ako 256 znakov.\",\n \"fieldEmptyForNumber\" : \"Zadajte číslo.\",\n \"fieldEmptyForPostalCode\" : \"Zadajte PSČ.\",\n \"fieldInvalidForCardholderName\" : \"Toto meno majiteľa karty je neplatné.\",\n \"fieldInvalidForCvv\" : \"Tento bezpečnostný kód je neplatný.\",\n \"fieldInvalidForExpirationDate\" : \"Tento dátum skončenia platnosti je neplatný.\",\n \"fieldInvalidForNumber\" : \"Toto číslo karty je neplatné.\",\n \"fieldInvalidForPostalCode\" : \"Toto PSČ je neplatné.\",\n \"noticeOfCollection\" : \"Zaplatením kartou vyjadrujem súhlas s Vyhlásením spoločnosti PayPal o ochrane osobných údajov.\",\n \"genericError\" : \"Vyskytla sa chyba na našej strane.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Táto kreditná karta už existuje ako uložený spôsob platby.\",\n \"hostedFieldsFailedTokenizationError\" : \"Skontrolujte údaje a skúste to znova.\",\n \"hostedFieldsFieldsInvalidError\" : \"Skontrolujte údaje a skúste to znova.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Chyba v sieti. Skúste to znova.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Overenie kreditnej karty nebolo úspešné. Skontrolujte údaje a skúste to znova.\",\n \"paypalButtonMustBeUsed\" : \"Ak chcete pokračovať v platbe, použite tlačidlo PayPal.\",\n \"venmoButtonMustBeUsed\": \"Ak chcete pokračovať v platbe, použite tlačidlo Venmo.\",\n \"applePayButtonMustBeUsed\": \"Ak chcete pokračovať v platbe, použite tlačidlo Apple Pay.\",\n \"paypalAccountTokenizationFailedError\" : \"Vyskytla sa chyba pri pridávaní účtu PayPal. Skúste to znova.\",\n \"paypalFlowFailedError\" : \"Vyskytla sa chyba pri pripájaní do účtu PayPal. Skúste to znova.\",\n \"paypalTokenizationRequestActiveError\" : \"Autorizácia platby PayPal už prebieha.\",\n \"venmoCanceledError\" : \"Vyskytla sa chyba. Skontrolujte, či máte v zariadení nainštalovanú najnovšiu verziu aplikácie Venmo a či prehliadač podporuje prechod na aplikáciu Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Nebolo možné odstrániť spôsob platby, skúste to znova.\",\n \"venmoAppFailedError\" : \"Aplikáciu Venmo sa vo vašom zariadení nepodarilo nájsť.\",\n \"unsupportedCardTypeError\" : \"Tento typ karty nie je podporovaný. Prosím skúste inú kartu.\",\n \"applePayTokenizationError\" : \"Počas spracúvania platby cez Apple Pay došlo k chybe siete. Skúste to znova.\",\n \"applePayActiveCardError\" : \"Pridajte si podporovanú kartu do peňaženky Apple Pay.\",\n \"cardholderNameLabel\" : \"Meno majiteľa karty\",\n \"cardNumberLabel\" : \"Číslo karty\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 číslice)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 číslice)\",\n \"cardholderNamePlaceholder\" : \"Meno majiteľa karty\",\n \"expirationDateLabel\" : \"Dátum skončenia platnosti\",\n \"expirationDateLabelSubheading\" : \"(MM/RR)\",\n \"expirationDatePlaceholder\" : \"MM/RR\",\n \"postalCodeLabel\" : \"PSČ\",\n \"saveCardLabel\" : \"Uložiť kartu\",\n \"payWithCard\" : \"Zaplatiť kartou\",\n \"endingIn\" : \"Končí {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Karta\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],258:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"Betalar med {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"Välj ett annat sätt att betala\",\n \"chooseAWayToPay\" : \"Välj ett sätt att betala\",\n \"otherWaysToPay\" : \"Andra sätt att betala\",\n \"edit\" : \"Ändra\",\n \"doneEditing\" : \"Klart\",\n \"editPaymentMethods\" : \"Ändra betalningsmetoder\",\n \"CreditCardDeleteConfirmationMessage\" : \"Ta bort {{secondaryIdentifier}}-kortet som slutar på {{identifier}}?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"Ta bort PayPal-konto {{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"Är du säker på att du vill ta bort Venmo-kontot med användarnamnet {{identifier}}?\",\n \"genericDeleteConfirmationMessage\" : \"Är du säker på att du vill ta bort den här betalningsmetoden?\",\n \"deleteCancelButton\" : \"Avbryt\",\n \"deleteConfirmationButton\" : \"Ta bort\",\n \"fieldEmptyForCvv\" : \"Fyll i ett CVV.\",\n \"fieldEmptyForExpirationDate\" : \"Fyll i ett utgångsdatum.\",\n \"fieldEmptyForCardholderName\" : \"Fyll i kortinnehavarens namn.\",\n \"fieldTooLongForCardholderName\" : \"Namnet på kortinnehavaren måste vara kortare än 256 tecken.\",\n \"fieldEmptyForNumber\" : \"Fyll i ett nummer.\",\n \"fieldEmptyForPostalCode\" : \"Fyll i ett postnummer.\",\n \"fieldInvalidForCardholderName\" : \"Namnet på kortinnehavaren är ogiltigt.\",\n \"fieldInvalidForCvv\" : \"Den här säkerhetskoden är inte giltig.\",\n \"fieldInvalidForExpirationDate\" : \"Utgångsdatumet är ogiltigt.\",\n \"fieldInvalidForNumber\" : \"Det här kortnumret är ogiltigt.\",\n \"fieldInvalidForPostalCode\" : \"Postnumret är ogiltigt.\",\n \"noticeOfCollection\" : \"Genom att betala med mitt kort godkänner jag PayPals sekretessmeddelande.\",\n \"genericError\" : \"Ett fel uppstod.\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"Det här kreditkortet finns redan som en sparad betalningsmetod.\",\n \"hostedFieldsFailedTokenizationError\" : \"Kontrollera uppgifterna och försök igen.\",\n \"hostedFieldsFieldsInvalidError\" : \"Kontrollera uppgifterna och försök igen.\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"Nätverksfel. Försök igen.\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"Verifiering av kreditkortet misslyckades. Kontrollera uppgifterna och försök igen.\",\n \"paypalButtonMustBeUsed\" : \"Använd PayPal-knappen för att fortsätta med din betalning.\",\n \"venmoButtonMustBeUsed\": \"Använd Venmo-knappen för att fortsätta med din betalning.\",\n \"applePayButtonMustBeUsed\": \"Använd PayPal-knappen för att fortsätta med din betalning.\",\n \"paypalAccountTokenizationFailedError\" : \"Något gick fel när du lade till PayPal-kontot. Försök igen.\",\n \"paypalFlowFailedError\" : \"Något gick fel med att ansluta till PayPal. Försök igen.\",\n \"paypalTokenizationRequestActiveError\" : \"Godkännande av PayPal-betalning pågår redan.\",\n \"venmoCanceledError\" : \"Något gick fel. Se till att du har den senaste versionen av Venmo-appen installerad på din enhet och att din webbläsare stöder byte till Venmo.\",\n \"vaultManagerPaymentMethodDeletionError\" : \"Kan inte ta bort betalningsmetoden, försök igen.\",\n \"venmoAppFailedError\" : \"Det gick inte att hitta Venmo-appen på din enhet.\",\n \"unsupportedCardTypeError\" : \"Den här korttypen stöds inte. Prova med ett annat kort.\",\n \"applePayTokenizationError\" : \"Ett nätverksfel uppstod när Apple Pay-betalningen behandlades. Försök igen.\",\n \"applePayActiveCardError\" : \"Lägg till ett kort som stöds i din Apple Pay e-plånbok.\",\n \"cardholderNameLabel\" : \"Kortinnehavarens namn\",\n \"cardNumberLabel\" : \"Kortnummer\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 siffror)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 siffror)\",\n \"cardholderNamePlaceholder\" : \"Kortinnehavarens namn\",\n \"expirationDateLabel\" : \"Utgångsdatum\",\n \"expirationDateLabelSubheading\" : \"(MM/ÅÅ)\",\n \"expirationDatePlaceholder\" : \"MM/ÅÅ\",\n \"postalCodeLabel\" : \"Postnummer\",\n \"saveCardLabel\" : \"Spara kort\",\n \"payWithCard\" : \"Betala med kort\",\n \"endingIn\" : \"Slutar på {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"Kort\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],259:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"ชำระเงินด้วย {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"เลือกวิธีการชำระเงินอื่น\",\n \"chooseAWayToPay\" : \"โปรดเลือกวิธีชำระเงิน\",\n \"otherWaysToPay\" : \"วิธีอื่นในการชำระเงิน\",\n \"edit\" : \"แก้ไข\",\n \"doneEditing\" : \"เสร็จแล้ว\",\n \"editPaymentMethods\" : \"แก้ไขวิธีการชำระเงิน\",\n \"CreditCardDeleteConfirmationMessage\" : \"ลบบัตร {{secondaryIdentifier}} ที่ลงท้ายด้วย {{identifier}} หรือไม่\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"คุณต้องการลบบัญชี PayPal {{identifier}} หรือไม่\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"คุณแน่ใจหรือไม่ว่าต้องการลบบัญชี Venmo ที่มีชื่อผู้ใช้ {{identifier}}\",\n \"genericDeleteConfirmationMessage\" : \"คุณแน่ใจหรือไม่ว่าต้องการลบการชำระเงินรายการนี้ออก\",\n \"deleteCancelButton\" : \"ยกเลิก\",\n \"deleteConfirmationButton\" : \"ลบ\",\n \"fieldEmptyForCvv\" : \"โปรดกรอกข้อมูลในบัตร CVV\",\n \"fieldEmptyForExpirationDate\" : \"โปรดกรอกข้อมูลวันที่หมดอายุ\",\n \"fieldEmptyForCardholderName\" : \"โปรดกรอกชื่อผู้ถือบัตร\",\n \"fieldTooLongForCardholderName\" : \"ชื่อผู้ถือบัตรต้องไม่เกิน 256 อักขระ\",\n \"fieldEmptyForNumber\" : \"โปรดกรอกหมายเลข\",\n \"fieldEmptyForPostalCode\" : \"โปรดกรอกข้อมูลในรหัสไปรษณีย์\",\n \"fieldInvalidForCardholderName\" : \"ชื่อผู้ถือบัตรนี้ไม่ถูกต้อง\",\n \"fieldInvalidForCvv\" : \"รหัสความปลอดภัยนี้ไม่ถูกต้อง\",\n \"fieldInvalidForExpirationDate\" : \"วันที่หมดอายุนี้ไม่ถูกต้อง\",\n \"fieldInvalidForNumber\" : \"หมายเลขบัตรนี้ไม่ถูกต้อง\",\n \"fieldInvalidForPostalCode\" : \"รหัสไปรษณีย์นี้ไม่ถูกต้อง\",\n \"noticeOfCollection\" : \"การชําระเงินด้วยบัตรนี้ถือว่าข้าพเจ้ายอมรับนโยบายความเป็นส่วนตัวของ PayPal\",\n \"genericError\" : \"เกิดข้อผิดพลาดขึ้นในระบบของเรา\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"บัตรเครดิตนี้เป็นวิธีการชำระเงินที่บันทึกไว้แล้ว\",\n \"hostedFieldsFailedTokenizationError\" : \"โปรดตรวจสอบข้อมูลของคุณ แล้วลองใหม่อีกครั้ง\",\n \"hostedFieldsFieldsInvalidError\" : \"โปรดตรวจสอบข้อมูลของคุณ แล้วลองใหม่อีกครั้ง\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"ข้อผิดพลาดของเครือข่าย โปรดลองอีกครั้ง\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"การตรวจสอบยืนยันบัตรเครดิตไม่สำเร็จ โปรดตรวจสอบข้อมูลของคุณ แล้วลองใหม่อีกครั้ง\",\n \"paypalButtonMustBeUsed\" : \"ใช้ปุ่ม PayPal เพื่อดำเนินการชำระเงินต่อไป\",\n \"venmoButtonMustBeUsed\": \"ใช้ปุ่ม Venmo เพื่อดําเนินการชําระเงินต่อไป\",\n \"applePayButtonMustBeUsed\": \"ใช้ปุ่ม Apple Pay เพื่อดำเนินการชำระเงินต่อไป.\",\n \"paypalAccountTokenizationFailedError\" : \"เกิดข้อผิดพลาดบางอย่างในการเพิ่มบัญชี PayPal โปรดลองอีกครั้ง\",\n \"paypalFlowFailedError\" : \"เกิดข้อผิดพลาดในการเชื่อมต่อกับ PayPal โปรดลองอีกครั้ง\",\n \"paypalTokenizationRequestActiveError\" : \"การอนุมัติการชำระเงิน PayPal อยู่ในระหว่างดำเนินการแล้ว\",\n \"venmoCanceledError\" : \"เกิดข้อผิดพลาดบางประการ ตรวจสอบให้แน่ใจว่าคุณมีแอปพลิเคชัน Venmo เวอร์ชันล่าสุดที่ติดตั้งไว้ในอุปกรณ์ของคุณและเบราว์เซอร์ของคุณรองรับการเปลี่ยนเป็น Venmo\",\n \"vaultManagerPaymentMethodDeletionError\" : \"ไม่สามารถลบวิธีการชำระเงินได้โปรดลองอีกครั้ง\",\n \"venmoAppFailedError\" : \"ไม่พบแอป Venmo ในอุปกรณ์ของคุณ\",\n \"unsupportedCardTypeError\" : \"ไม่รองรับบัตรประเภทนี้ โปรดลองใช้บัตรใบอื่น\",\n \"applePayTokenizationError\" : \"เกิดข้อผิดพลาดในเครือข่ายขณะประมวลผลการชำระเงินของ Apple Pay โปรดลองอีกครั้ง\",\n \"applePayActiveCardError\" : \"เพิ่มบัตรที่รองรับไปยังกระเป๋าสตางค์ Apple Pay ของคุณ\",\n \"cardholderNameLabel\" : \"ชื่อของผู้ถือบัตร\",\n \"cardNumberLabel\" : \"หมายเลขบัตร\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 หลัก)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 หลัก)\",\n \"cardholderNamePlaceholder\" : \"ชื่อของผู้ถือบัตร\",\n \"expirationDateLabel\" : \"วันหมดอายุ\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"รหัสไปรษณีย์\",\n \"saveCardLabel\" : \"บันทึกบัตร\",\n \"payWithCard\" : \"ชำระด้วยบัตรเดบิตหรือบัตรเครดิต\",\n \"endingIn\" : \"ลงท้ายด้วย {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"บัตร\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],260:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"使用{{paymentSource}}付款\",\n \"chooseAnotherWayToPay\" : \"请选择其它付款方式。\",\n \"chooseAWayToPay\" : \"选择付款方式\",\n \"otherWaysToPay\" : \"其他付款方式\",\n \"edit\" : \"编辑\",\n \"doneEditing\" : \"完成\",\n \"editPaymentMethods\" : \"编辑付款方式\",\n \"CreditCardDeleteConfirmationMessage\" : \"删除尾号为{{identifier}}的{{secondaryIdentifier}}卡?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"删除PayPal账户{{identifier}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"您确定要删除用户名为{{identifier}}的Venmo账户吗?\",\n \"genericDeleteConfirmationMessage\" : \"确定要删除此付款方式吗?\",\n \"deleteCancelButton\" : \"取消\",\n \"deleteConfirmationButton\" : \"删除\",\n \"fieldEmptyForCvv\" : \"请填写CVV。\",\n \"fieldEmptyForExpirationDate\" : \"请填写有效期限。\",\n \"fieldEmptyForCardholderName\" : \"请填写持卡人姓名。\",\n \"fieldTooLongForCardholderName\" : \"持卡人姓名必须少于256个字符。\",\n \"fieldEmptyForNumber\" : \"请填写一个号码。\",\n \"fieldEmptyForPostalCode\" : \"请填写邮政编码。\",\n \"fieldInvalidForCardholderName\" : \"此持卡人姓名无效。\",\n \"fieldInvalidForCvv\" : \"此安全码无效。\",\n \"fieldInvalidForExpirationDate\" : \"此有效期限无效。\",\n \"fieldInvalidForNumber\" : \"此卡号无效。\",\n \"fieldInvalidForPostalCode\" : \"此邮政编码无效。\",\n \"noticeOfCollection\" : \"使用我的卡付款即表示我同意PayPal隐私声明。\",\n \"genericError\" : \"我们遇到了一些问题。\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"此信用卡已存在于已保存的付款方式。\",\n \"hostedFieldsFailedTokenizationError\" : \"请检查您的信息,然后重试。\",\n \"hostedFieldsFieldsInvalidError\" : \"请检查您的信息,然后重试。\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"网络错误。请重试。\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"信用卡验证失败。请检查您的信息,然后重试。\",\n \"paypalButtonMustBeUsed\" : \"使用PayPal按钮继续付款。\",\n \"venmoButtonMustBeUsed\": \"使用Venmo按钮继续付款。\",\n \"applePayButtonMustBeUsed\": \"使用Apple Pay按钮以便继续进行您的付款。\",\n \"paypalAccountTokenizationFailedError\" : \"添加PayPal账户时遇到了一些问题。请重试。\",\n \"paypalFlowFailedError\" : \"连接到PayPal遇到了一些问题。请重试。\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal付款授权已在处理中。\",\n \"venmoCanceledError\" : \"遇到了一些问题。请确保您的设备上安装了最新版本的Venmo应用,并且您的浏览器支持切换到Venmo。\",\n \"vaultManagerPaymentMethodDeletionError\" : \"无法删除付款方式,请重试。\",\n \"venmoAppFailedError\" : \"在您的设备上找不到Venmo应用程序。\",\n \"unsupportedCardTypeError\" : \"不支持该卡类型。请尝试其他卡。\",\n \"applePayTokenizationError\" : \"处理Apple Pay付款时发生了网络错误。请重试。\",\n \"applePayActiveCardError\" : \"在您的Apple Pay钱包中添加一张受支持的卡。\",\n \"cardholderNameLabel\" : \"持卡人姓名\",\n \"cardNumberLabel\" : \"卡号\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3位数)\",\n \"cvvFourDigitLabelSubheading\" : \"(4位数)\",\n \"cardholderNamePlaceholder\" : \"持卡人姓名\",\n \"expirationDateLabel\" : \"有效期限\",\n \"expirationDateLabelSubheading\" : \"(月/年)\",\n \"expirationDatePlaceholder\" : \"月/年\",\n \"postalCodeLabel\" : \"邮政编码\",\n \"saveCardLabel\" : \"保存此卡\",\n \"payWithCard\" : \"使用卡支付\",\n \"endingIn\" : \"尾号为{{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"卡\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"发现\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"银联\"\n}\n;\n\n},{}],261:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"付款方式為 {{paymentSource}}\",\n \"chooseAnotherWayToPay\" : \"請選擇其他付款方式\",\n \"chooseAWayToPay\" : \"選擇付款方式\",\n \"otherWaysToPay\" : \"其他付款方式\",\n \"edit\" : \"編輯\",\n \"doneEditing\" : \"完成\",\n \"editPaymentMethods\" : \"編輯付款方式\",\n \"CreditCardDeleteConfirmationMessage\" : \"刪除最後數字為 {{identifier}} 的 {{secondaryIdentifier}} 卡嗎?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"刪除 {{identifier}} PayPal 帳戶嗎?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"確定要刪除用戶名稱為 {{identifier}} 的 Venmo 帳戶嗎?\",\n \"genericDeleteConfirmationMessage\" : \"確定要刪除此付款方式嗎?\",\n \"deleteCancelButton\" : \"取消\",\n \"deleteConfirmationButton\" : \"刪除\",\n \"fieldEmptyForCvv\" : \"請填寫信用卡認證碼(CVV)。\",\n \"fieldEmptyForExpirationDate\" : \"請填寫到期日。\",\n \"fieldEmptyForCardholderName\" : \"請填寫持卡人姓名。\",\n \"fieldTooLongForCardholderName\" : \"持卡人姓名必須少於 256 個字元。\",\n \"fieldEmptyForNumber\" : \"請填寫數字。\",\n \"fieldEmptyForPostalCode\" : \"請填寫郵遞區號。\",\n \"fieldInvalidForCardholderName\" : \"持卡人姓名無效。\",\n \"fieldInvalidForCvv\" : \"此安全代碼無效。\",\n \"fieldInvalidForExpirationDate\" : \"此到期日無效。\",\n \"fieldInvalidForNumber\" : \"此卡號無效。\",\n \"fieldInvalidForPostalCode\" : \"郵遞區號無效。\",\n \"noticeOfCollection\" : \"一經使用信用卡付款,即表示我同意 PayPal 的《私隱權聲明》。\",\n \"genericError\" : \"系統發生錯誤。\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"此信用卡為已儲存的付款方式。\",\n \"hostedFieldsFailedTokenizationError\" : \"請檢查你的資料,然後重試。\",\n \"hostedFieldsFieldsInvalidError\" : \"請檢查你的資料,然後重試。\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"網絡錯誤。請再試一次。\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"信用卡認證失敗。請檢查你的資料,然後重試。\",\n \"paypalButtonMustBeUsed\" : \"使用「PayPal 按鈕」繼續付款。\",\n \"venmoButtonMustBeUsed\": \"使用 Venmo 按鈕以繼續付款。\",\n \"applePayButtonMustBeUsed\": \"使用 Apple Pay 按鈕繼續付款。\",\n \"paypalAccountTokenizationFailedError\" : \"新增 PayPal 帳戶出現問題,請再試一次。\",\n \"paypalFlowFailedError\" : \"連接至 PayPal 出現問題,請再試一次。\",\n \"paypalTokenizationRequestActiveError\" : \"正在處理 PayPal 授權付款。\",\n \"venmoCanceledError\" : \"系統出現錯誤,請確保裝置已安裝最新版本的 Venmo 應用程式,及瀏覽器支援切換至 Venmo。\",\n \"vaultManagerPaymentMethodDeletionError\" : \"無法刪除付款方式,請再試一次。\",\n \"venmoAppFailedError\" : \"無法在裝置上找到 Venmo 應用程式。\",\n \"unsupportedCardTypeError\" : \"不支援此卡類型。請改用其他信用卡。\",\n \"applePayTokenizationError\" : \"處理 Apple Pay 付款時網路發生錯誤。請再試一次。\",\n \"applePayActiveCardError\" : \"新增可用的信用卡到 Apple Pay 錢包。\",\n \"cardholderNameLabel\" : \"持卡人姓名\",\n \"cardNumberLabel\" : \"卡號\",\n \"cvvLabel\" : \"CVV\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 位數)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 位數)\",\n \"cardholderNamePlaceholder\" : \"持卡人姓名\",\n \"expirationDateLabel\" : \"到期日\",\n \"expirationDateLabelSubheading\" : \"(MM/YY)\",\n \"expirationDatePlaceholder\" : \"MM/YY\",\n \"postalCodeLabel\" : \"郵遞區號\",\n \"saveCardLabel\" : \"儲存卡\",\n \"payWithCard\" : \"使用扣帳卡或信用卡付款\",\n \"endingIn\" : \"最後數字為 {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"信用卡\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"Discover\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"UnionPay\"\n}\n;\n\n},{}],262:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"使用 {{paymentSource}} 付款\",\n \"chooseAnotherWayToPay\" : \"選擇其他付款方式\",\n \"chooseAWayToPay\" : \"選擇付款方式\",\n \"otherWaysToPay\" : \"其他付款方式\",\n \"edit\" : \"編輯\",\n \"doneEditing\" : \"完成\",\n \"editPaymentMethods\" : \"編輯付款方式\",\n \"CreditCardDeleteConfirmationMessage\" : \"刪除末碼為 {{identifier}} 的 {{secondaryIdentifier}} 卡片?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"刪除 {{identifier}} 的 PayPal 帳戶?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"確定要刪除用戶名稱為 {{identifier}} 的 Venmo 帳戶?\",\n \"genericDeleteConfirmationMessage\" : \"確定要刪除此付款方式?\",\n \"deleteCancelButton\" : \"取消\",\n \"deleteConfirmationButton\" : \"刪除\",\n \"fieldEmptyForCvv\" : \"填寫信用卡驗證碼。\",\n \"fieldEmptyForExpirationDate\" : \"填寫到期日。\",\n \"fieldEmptyForCardholderName\" : \"填寫持卡人姓名。\",\n \"fieldTooLongForCardholderName\" : \"持卡人姓名必須少於 256 個字元。\",\n \"fieldEmptyForNumber\" : \"填寫數字。\",\n \"fieldEmptyForPostalCode\" : \"填寫郵遞區號。\",\n \"fieldInvalidForCardholderName\" : \"此持卡人姓名無效。\",\n \"fieldInvalidForCvv\" : \"此安全代碼無效。\",\n \"fieldInvalidForExpirationDate\" : \"此到期日無效。\",\n \"fieldInvalidForNumber\" : \"此卡號無效。\",\n \"fieldInvalidForPostalCode\" : \"此郵遞區號無效。\",\n \"noticeOfCollection\" : \"使用我的卡片付款,即表示我同意「PayPal 隱私權聲明」。\",\n \"genericError\" : \"我們的系統發生問題。\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"此信用卡已經是儲存的付款方式。\",\n \"hostedFieldsFailedTokenizationError\" : \"請檢查你的資料並重試。\",\n \"hostedFieldsFieldsInvalidError\" : \"請檢查你的資料並重試。\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"網路錯誤。請重試。\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"信用卡認證失敗。請檢查你的資料並重試。\",\n \"paypalButtonMustBeUsed\" : \"使用 PayPal 按鈕繼續付款。\",\n \"venmoButtonMustBeUsed\": \"使用 Venmo 按鈕繼續付款。\",\n \"applePayButtonMustBeUsed\": \"使用 PayPal 按鈕繼續付款。\",\n \"paypalAccountTokenizationFailedError\" : \"新增 PayPal 帳戶時發生錯誤。請重試。\",\n \"paypalFlowFailedError\" : \"連結至 PayPal 時發生錯誤。請重試。\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal 付款授權已在進行中。\",\n \"venmoCanceledError\" : \"系統發生錯誤。確保你在裝置上安裝了最新版本的 Venmo 應用程式,且瀏覽器支援轉換至 Venmo。\",\n \"vaultManagerPaymentMethodDeletionError\" : \"無法刪除付款方式,請重試。\",\n \"venmoAppFailedError\" : \"你的裝置上找不到 Venmo 應用程式。\",\n \"unsupportedCardTypeError\" : \"不支援此卡片類型,請改用其他卡片。\",\n \"applePayTokenizationError\" : \"處理 Apple Pay 付款時發生網路連線錯誤。請重試。\",\n \"applePayActiveCardError\" : \"將支援卡片新增至你的 Apple Pay 錢包。\",\n \"cardholderNameLabel\" : \"持卡人姓名\",\n \"cardNumberLabel\" : \"卡號\",\n \"cvvLabel\" : \"信用卡驗證碼\",\n \"cvvThreeDigitLabelSubheading\" : \"(3 位數)\",\n \"cvvFourDigitLabelSubheading\" : \"(4 位數)\",\n \"cardholderNamePlaceholder\" : \"持卡人姓名\",\n \"expirationDateLabel\" : \"到期日\",\n \"expirationDateLabelSubheading\" : \"(月 / 年)\",\n \"expirationDatePlaceholder\" : \"月 / 年\",\n \"postalCodeLabel\" : \"郵遞區號\",\n \"saveCardLabel\" : \"儲存卡片\",\n \"payWithCard\" : \"使用卡片付款\",\n \"endingIn\" : \"末碼為 {{lastFourCardDigits}}\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"卡片\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"美國運通\",\n \"Discover\" : \"發現卡\",\n \"Diners Club\" : \"大來卡\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"銀聯\"\n}\n;\n\n},{}],263:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n \"payingWith\" : \"使用{{paymentSource}}付款\",\n \"chooseAnotherWayToPay\" : \"选择其他付款方式\",\n \"chooseAWayToPay\" : \"选择付款方式\",\n \"otherWaysToPay\" : \"其他付款方式\",\n \"edit\" : \"编辑\",\n \"doneEditing\" : \"完成\",\n \"editPaymentMethods\" : \"编辑付款方式\",\n \"CreditCardDeleteConfirmationMessage\" : \"删除以{{identifier}}}结尾的{{secondaryIdentifier}}}卡?\",\n \"PayPalAccountDeleteConfirmationMessage\" : \"删除PayPal账户{{identifier}}}?\",\n \"VenmoAccountDeleteConfirmationMessage\" : \"确定要删除用户名为{{identifier}}}的Venmo账户吗?\",\n \"genericDeleteConfirmationMessage\" : \"确定要删除此付款方式吗?\",\n \"deleteCancelButton\" : \"取消\",\n \"deleteConfirmationButton\" : \"删除\",\n \"fieldEmptyForCvv\" : \"请填写卡校验值。\",\n \"fieldEmptyForExpirationDate\" : \"请填写有效期限。\",\n \"fieldEmptyForCardholderName\" : \"请填写持卡人姓名。\",\n \"fieldTooLongForCardholderName\" : \"持卡人姓名必须少于256个字符。\",\n \"fieldEmptyForNumber\" : \"请填写号码。\",\n \"fieldEmptyForPostalCode\" : \"请填写邮政编码。\",\n \"fieldInvalidForCardholderName\" : \"此持卡人姓名无效。\",\n \"fieldInvalidForCvv\" : \"此验证码无效。\",\n \"fieldInvalidForExpirationDate\" : \"此有效期限无效。\",\n \"fieldInvalidForNumber\" : \"此卡号无效。\",\n \"fieldInvalidForPostalCode\" : \"此邮政编码无效。\",\n \"noticeOfCollection\" : \"使用我的卡付款即表示我同意PayPal隐私声明。\",\n \"genericError\" : \"我们遇到了一些问题。\",\n \"hostedFieldsTokenizationFailOnDuplicateError\" : \"此信用卡已存在于已保存的付款方式中。\",\n \"hostedFieldsFailedTokenizationError\" : \"请检查您的信息,然后重试。\",\n \"hostedFieldsFieldsInvalidError\" : \"请检查您的信息,然后重试。\",\n \"hostedFieldsTokenizationNetworkErrorError\" : \"网络错误。请重试。\",\n \"hostedFieldsTokenizationCvvVerificationFailedError\" : \"信用卡认证失败。请检查您的信息,然后重试。\",\n \"paypalButtonMustBeUsed\" : \"使用PayPal按钮以便继续进行您的付款。\",\n \"venmoButtonMustBeUsed\": \"使用Venmo按钮继续付款。\",\n \"applePayButtonMustBeUsed\": \"使用Apple Pay按钮以便继续进行您的付款。\",\n \"paypalAccountTokenizationFailedError\" : \"添加PayPal账户时遇到了问题。请重试。\",\n \"paypalFlowFailedError\" : \"连接到PayPal时遇到了问题。请重试。\",\n \"paypalTokenizationRequestActiveError\" : \"PayPal付款授权正在处理中。\",\n \"venmoCanceledError\" : \"遇到了一些问题。请确保您的设备上安装了最新版本的Venmo应用,并且您的浏览器支持切换到Venmo。\",\n \"vaultManagerPaymentMethodDeletionError\" : \"无法删除付款方式,请重试。\",\n \"venmoAppFailedError\" : \"未能在您的设备上找到Venmo应用。\",\n \"unsupportedCardTypeError\" : \"不支持该卡类型。请尝试其它卡。\",\n \"applePayTokenizationError\" : \"处理Apple Pay付款时出现了网络错误。请重试。\",\n \"applePayActiveCardError\" : \"在您的Apple Pay钱包中添加一张受支持的卡。\",\n \"cardholderNameLabel\" : \"持卡人姓名\",\n \"cardNumberLabel\" : \"卡号\",\n \"cvvLabel\" : \"卡校验值\",\n \"cvvThreeDigitLabelSubheading\" : \"(3位数)\",\n \"cvvFourDigitLabelSubheading\" : \"(4位数)\",\n \"cardholderNamePlaceholder\" : \"持卡人姓名\",\n \"expirationDateLabel\" : \"有效期限\",\n \"expirationDateLabelSubheading\" : \"(月/年)\",\n \"expirationDatePlaceholder\" : \"月/年\",\n \"postalCodeLabel\" : \"邮政编码\",\n \"saveCardLabel\" : \"保存卡\",\n \"payWithCard\" : \"使用卡支付\",\n \"endingIn\" : \"以{{lastFourCardDigits}}}结尾\",\n \"Apple Pay\" : \"Apple Pay\",\n \"Venmo\" : \"Venmo\",\n \"Card\" : \"卡\",\n \"PayPal\" : \"PayPal\",\n \"PayPal Credit\" : \"PayPal Credit\",\n \"Google Pay\" : \"Google Pay\",\n \"American Express\" : \"American Express\",\n \"Discover\" : \"发现\",\n \"Diners Club\" : \"Diners Club\",\n \"Elo\" : \"Elo\",\n \"Hiper\" : \"Hiper\",\n \"Hipercard\" : \"Hipercard\",\n \"MasterCard\" : \"Mastercard\",\n \"Visa\" : \"Visa\",\n \"JCB\" : \"JCB\",\n \"Maestro\" : \"Maestro\",\n \"UnionPay\" : \"银联\"\n}\n;\n\n},{}],264:[function(require,module,exports){\n'use strict';\n\nvar assign = require('../lib/assign').assign;\nvar DropinError = require('../lib/dropin-error');\nvar errors = require('../constants').errors;\n\nfunction BaseView(options) {\n options = options || {};\n\n assign(this, options);\n}\n\nBaseView.prototype.getElementById = function (id) {\n if (!this.element) { return null; }\n\n return this.element.querySelector('[data-braintree-id=\"' + id + '\"]');\n};\n\nBaseView.prototype.requestPaymentMethod = function () {\n return Promise.reject(new DropinError(errors.NO_PAYMENT_METHOD_ERROR));\n};\n\nBaseView.prototype.getPaymentMethod = function () {\n return this.activeMethodView && this.activeMethodView.paymentMethod;\n};\n\nBaseView.prototype.onSelection = function () {};\n\nBaseView.prototype.teardown = function () {\n return Promise.resolve();\n};\n\nBaseView.prototype.preventUserAction = function () {\n if (this.element) {\n this.element.classList.add('braintree-sheet--loading');\n }\n\n this.model.preventUserAction();\n};\n\nBaseView.prototype.allowUserAction = function () {\n if (this.element) {\n this.element.classList.remove('braintree-sheet--loading');\n }\n\n this.model.allowUserAction();\n};\n\nmodule.exports = BaseView;\n\n},{\"../constants\":207,\"../lib/assign\":213,\"../lib/dropin-error\":217}],265:[function(require,module,exports){\n'use strict';\n\nvar BaseView = require('./base-view');\nvar addSelectionEventHandler = require('../lib/add-selection-event-handler');\nvar paymentMethodTypes = require('../constants').paymentMethodTypes;\n\nfunction DeleteConfirmationView() {\n BaseView.apply(this, arguments);\n\n this._initialize();\n}\n\nDeleteConfirmationView.prototype = Object.create(BaseView.prototype);\nDeleteConfirmationView.prototype.constructor = DeleteConfirmationView;\nDeleteConfirmationView.ID = DeleteConfirmationView.prototype.ID = 'delete-confirmation';\n\nDeleteConfirmationView.prototype._initialize = function () {\n this._yesButton = this.getElementById('delete-confirmation__yes');\n this._noButton = this.getElementById('delete-confirmation__no');\n this._messageBox = this.getElementById('delete-confirmation__message');\n\n addSelectionEventHandler(this._yesButton, function () {\n this.model.deleteVaultedPaymentMethod();\n }.bind(this));\n addSelectionEventHandler(this._noButton, function () {\n this.model.cancelDeleteVaultedPaymentMethod();\n }.bind(this));\n};\n\nDeleteConfirmationView.prototype.applyPaymentMethod = function (paymentMethod) {\n var identifier, secondaryIdentifier;\n var messageText = this.strings[paymentMethod.type + 'DeleteConfirmationMessage'];\n\n if (messageText) {\n switch (paymentMethod.type) {\n case paymentMethodTypes.card:\n identifier = paymentMethod.details.lastFour;\n secondaryIdentifier = paymentMethod.details.cardType;\n secondaryIdentifier = this.strings[secondaryIdentifier] || secondaryIdentifier;\n break;\n case paymentMethodTypes.paypal:\n identifier = paymentMethod.details.email;\n break;\n case paymentMethodTypes.venmo:\n identifier = paymentMethod.details.username;\n break;\n default:\n break;\n }\n\n messageText = messageText.replace('{{identifier}}', identifier);\n if (secondaryIdentifier) {\n messageText = messageText.replace('{{secondaryIdentifier}}', secondaryIdentifier);\n }\n } else {\n messageText = this.strings.genericDeleteConfirmationMessage;\n }\n this._messageBox.innerText = messageText;\n};\n\nDeleteConfirmationView.prototype.onSelection = function () {\n window.requestAnimationFrame(function () {\n this._yesButton.focus();\n }.bind(this));\n};\n\nmodule.exports = DeleteConfirmationView;\n\n},{\"../constants\":207,\"../lib/add-selection-event-handler\":211,\"./base-view\":264}],266:[function(require,module,exports){\n'use strict';\n\nvar analytics = require('../lib/analytics');\nvar analyticsKinds = require('../constants').analyticsKinds;\nvar BaseView = require('./base-view');\nvar sheetViews = require('./payment-sheet-views');\nvar PaymentMethodsView = require('./payment-methods-view');\nvar PaymentOptionsView = require('./payment-options-view');\nvar DeleteConfirmationView = require('./delete-confirmation-view');\nvar addSelectionEventHandler = require('../lib/add-selection-event-handler');\nvar wait = require('../lib/wait');\nvar supportsFlexbox = require('../lib/supports-flexbox');\n\nvar CHANGE_ACTIVE_PAYMENT_METHOD_TIMEOUT = require('../constants').CHANGE_ACTIVE_PAYMENT_METHOD_TIMEOUT;\nvar DEVELOPER_MISCONFIGURATION_MESSAGE = require('../constants').errors.DEVELOPER_MISCONFIGURATION_MESSAGE;\n\nfunction MainView() {\n BaseView.apply(this, arguments);\n\n this.dependenciesInitializing = 0;\n\n this._initialize();\n}\n\nMainView.prototype = Object.create(BaseView.prototype);\nMainView.prototype.constructor = MainView;\n\nMainView.prototype._initialize = function () {\n var paymentOptionsView;\n\n this._hasMultiplePaymentOptions = this.model.supportedPaymentOptions.length > 1;\n\n this._views = {};\n\n this.sheetContainer = this.getElementById('sheet-container');\n this.sheetErrorText = this.getElementById('sheet-error-text');\n\n this.toggle = this.getElementById('toggle');\n this.disableWrapper = this.getElementById('disable-wrapper');\n this.lowerContainer = this.getElementById('lower-container');\n\n this.loadingContainer = this.getElementById('loading-container');\n this.dropinContainer = this.element.querySelector('.braintree-dropin');\n\n this.supportsFlexbox = supportsFlexbox();\n\n this.model.on('asyncDependenciesReady', this.hideLoadingIndicator.bind(this));\n\n this.model.on('errorOccurred', this.showSheetError.bind(this));\n this.model.on('errorCleared', this.hideSheetError.bind(this));\n this.model.on('preventUserAction', this.preventUserAction.bind(this));\n this.model.on('allowUserAction', this.allowUserAction.bind(this));\n\n this.paymentSheetViewIDs = Object.keys(sheetViews).reduce(function (ids, sheetViewKey) {\n var PaymentSheetView, paymentSheetView;\n\n if (this.model.supportedPaymentOptions.indexOf(sheetViewKey) !== -1) {\n PaymentSheetView = sheetViews[sheetViewKey];\n\n paymentSheetView = new PaymentSheetView({\n element: this.getElementById(PaymentSheetView.ID),\n mainView: this,\n model: this.model,\n client: this.client,\n strings: this.strings\n });\n paymentSheetView.initialize();\n\n this.addView(paymentSheetView);\n ids.push(paymentSheetView.ID);\n }\n\n return ids;\n }.bind(this), []);\n\n this.paymentMethodsViews = new PaymentMethodsView({\n element: this.element,\n model: this.model,\n client: this.client,\n strings: this.strings\n });\n this.addView(this.paymentMethodsViews);\n\n this.deleteConfirmationView = new DeleteConfirmationView({\n element: this.getElementById('delete-confirmation'),\n model: this.model,\n strings: this.strings\n });\n this.addView(this.deleteConfirmationView);\n\n addSelectionEventHandler(this.toggle, this.toggleAdditionalOptions.bind(this));\n\n this.model.on('changeActivePaymentMethod', function () {\n wait.delay(CHANGE_ACTIVE_PAYMENT_METHOD_TIMEOUT).then(function () {\n var id = PaymentMethodsView.ID;\n\n // if Drop-in gets into the state where it's told to go to the methods\n // view, but there are no saved payment methods, it should instead\n // redirect to the view it started on\n if (!this.model.hasPaymentMethods()) {\n id = this.model.getInitialViewId();\n }\n\n this.setPrimaryView(id);\n }.bind(this));\n }.bind(this));\n\n this.model.on('changeActiveView', this._onChangeActiveView.bind(this));\n\n this.model.on('removeActivePaymentMethod', function () {\n var activePaymentView = this.getView(this.model.getActivePaymentViewId());\n\n if (activePaymentView && typeof activePaymentView.removeActivePaymentMethod === 'function') {\n activePaymentView.removeActivePaymentMethod();\n }\n }.bind(this));\n\n this.model.on('enableEditMode', this.enableEditMode.bind(this));\n\n this.model.on('disableEditMode', this.disableEditMode.bind(this));\n\n this.model.on('confirmPaymentMethodDeletion', this.openConfirmPaymentMethodDeletionDialog.bind(this));\n this.model.on('cancelVaultedPaymentMethodDeletion', this.cancelVaultedPaymentMethodDeletion.bind(this));\n this.model.on('startVaultedPaymentMethodDeletion', this.startVaultedPaymentMethodDeletion.bind(this));\n this.model.on('finishVaultedPaymentMethodDeletion', this.finishVaultedPaymentMethodDeletion.bind(this));\n\n if (this._hasMultiplePaymentOptions) {\n paymentOptionsView = new PaymentOptionsView({\n client: this.client,\n element: this.getElementById(PaymentOptionsView.ID),\n mainView: this,\n model: this.model,\n strings: this.strings\n });\n\n this.addView(paymentOptionsView);\n }\n\n this._sendToDefaultView();\n};\n\nMainView.prototype._onChangeActiveView = function (data) {\n var id = data.newViewId;\n var activePaymentView = this.getView(id);\n\n if (id === PaymentMethodsView.ID) {\n this.paymentMethodsViews.container.classList.add('braintree-methods--active');\n this.sheetContainer.classList.remove('braintree-sheet--active');\n } else {\n wait.delay(0).then(function () {\n this.sheetContainer.classList.add('braintree-sheet--active');\n }.bind(this));\n this.paymentMethodsViews.container.classList.remove('braintree-methods--active');\n if (!this.getView(id).getPaymentMethod()) {\n this.model.setPaymentMethodRequestable({\n isRequestable: false\n });\n }\n }\n\n activePaymentView.onSelection();\n};\n\nMainView.prototype.addView = function (view) {\n this._views[view.ID] = view;\n};\n\nMainView.prototype.getView = function (id) {\n return this._views[id];\n};\n\nMainView.prototype.setPrimaryView = function (id, secondaryViewId) {\n var paymentMethod;\n\n wait.delay(0).then(function () {\n this.element.className = prefixShowClass(id);\n if (secondaryViewId) {\n this.element.classList.add(prefixShowClass(secondaryViewId));\n }\n }.bind(this));\n\n this.primaryView = this.getView(id);\n this.model.changeActiveView(id);\n\n if (this.paymentSheetViewIDs.indexOf(id) !== -1) {\n if (this.model.getPaymentMethods().length > 0 || this.getView(PaymentOptionsView.ID)) {\n this.showToggle();\n } else {\n this.hideToggle();\n }\n } else if (id === PaymentMethodsView.ID) {\n this.showToggle();\n // Move options below the upper-container\n this.getElementById('lower-container').appendChild(this.getElementById('options'));\n } else if (id === PaymentOptionsView.ID) {\n this.hideToggle();\n }\n\n if (!this.supportsFlexbox) {\n this.element.setAttribute('data-braintree-no-flexbox', true);\n }\n\n paymentMethod = this.primaryView.getPaymentMethod();\n\n this.model.setPaymentMethodRequestable({\n isRequestable: Boolean(paymentMethod && !this.model.isInEditMode()),\n type: paymentMethod && paymentMethod.type,\n selectedPaymentMethod: paymentMethod\n });\n\n this.model.clearError();\n};\n\nMainView.prototype.requestPaymentMethod = function () {\n var activePaymentView = this.getView(this.model.getActivePaymentViewId());\n\n return activePaymentView.requestPaymentMethod().then(function (payload) {\n analytics.sendEvent(this.client, 'request-payment-method.' + analyticsKinds[payload.type]);\n\n return payload;\n }.bind(this)).catch(function (err) {\n analytics.sendEvent(this.client, 'request-payment-method.error');\n\n return Promise.reject(err);\n }.bind(this));\n};\n\nMainView.prototype.hideLoadingIndicator = function () {\n this.dropinContainer.classList.remove('braintree-loading');\n this.dropinContainer.classList.add('braintree-loaded');\n this.loadingContainer.classList.add('braintree-hidden');\n};\n\nMainView.prototype.showLoadingIndicator = function () {\n this.dropinContainer.classList.add('braintree-loading');\n this.dropinContainer.classList.remove('braintree-loaded');\n this.loadingContainer.classList.remove('braintree-hidden');\n};\n\nMainView.prototype.toggleAdditionalOptions = function () {\n var sheetViewID;\n var isPaymentSheetView = this.paymentSheetViewIDs.indexOf(this.primaryView.ID) !== -1;\n\n this.hideToggle();\n\n if (!this._hasMultiplePaymentOptions) {\n sheetViewID = this.paymentSheetViewIDs[0];\n\n this.element.classList.add(prefixShowClass(sheetViewID));\n this.model.changeActiveView(sheetViewID);\n } else if (isPaymentSheetView) {\n if (this.model.getPaymentMethods().length === 0) {\n this.setPrimaryView(PaymentOptionsView.ID);\n } else {\n this.setPrimaryView(PaymentMethodsView.ID, PaymentOptionsView.ID);\n this.hideToggle();\n }\n } else {\n this.element.classList.add(prefixShowClass(PaymentOptionsView.ID));\n }\n};\n\nMainView.prototype.showToggle = function () {\n if (this.model.isInEditMode()) {\n return;\n }\n this.toggle.classList.remove('braintree-hidden');\n this.lowerContainer.classList.add('braintree-hidden');\n};\n\nMainView.prototype.hideToggle = function () {\n this.toggle.classList.add('braintree-hidden');\n this.lowerContainer.classList.remove('braintree-hidden');\n};\n\nMainView.prototype.showSheetError = function (error) {\n var errorMessage;\n var genericErrorMessage = this.strings.genericError;\n\n if (this.strings.hasOwnProperty(error)) {\n errorMessage = this.strings[error];\n } else if (error && typeof error.code === 'string') {\n errorMessage = this.strings[snakeCaseToCamelCase(error.code) + 'Error'] || genericErrorMessage;\n } else if (error === 'developerError') {\n errorMessage = DEVELOPER_MISCONFIGURATION_MESSAGE;\n } else {\n errorMessage = genericErrorMessage;\n }\n\n this.dropinContainer.classList.add('braintree-sheet--has-error');\n this.sheetErrorText.innerHTML = errorMessage;\n};\n\nMainView.prototype.hideSheetError = function () {\n this.dropinContainer.classList.remove('braintree-sheet--has-error');\n};\n\nMainView.prototype.getOptionsElements = function () {\n return this._views.options.elements;\n};\n\nMainView.prototype.preventUserAction = function () {\n this.disableWrapper.classList.remove('braintree-hidden');\n};\n\nMainView.prototype.allowUserAction = function () {\n this.disableWrapper.classList.add('braintree-hidden');\n};\n\nMainView.prototype.teardown = function () {\n var error;\n var viewNames = Object.keys(this._views);\n var teardownPromises = viewNames.map(function (view) {\n return this._views[view].teardown().catch(function (err) {\n error = err;\n });\n }.bind(this));\n\n return Promise.all(teardownPromises).then(function () {\n if (error) {\n return Promise.reject(error);\n }\n\n return Promise.resolve();\n });\n};\n\nMainView.prototype.enableEditMode = function () {\n this.setPrimaryView(this.paymentMethodsViews.ID);\n this.paymentMethodsViews.enableEditMode();\n this.hideToggle();\n\n this.model.setPaymentMethodRequestable({\n isRequestable: false\n });\n};\n\nMainView.prototype.disableEditMode = function () {\n var paymentMethod;\n\n this.hideSheetError();\n this.paymentMethodsViews.disableEditMode();\n this.showToggle();\n\n paymentMethod = this.primaryView.getPaymentMethod();\n\n this.model.setPaymentMethodRequestable({\n isRequestable: Boolean(paymentMethod),\n type: paymentMethod && paymentMethod.type,\n selectedPaymentMethod: paymentMethod\n });\n};\n\nMainView.prototype.openConfirmPaymentMethodDeletionDialog = function (paymentMethod) {\n this.deleteConfirmationView.applyPaymentMethod(paymentMethod);\n this.setPrimaryView(this.deleteConfirmationView.ID);\n};\n\nMainView.prototype.cancelVaultedPaymentMethodDeletion = function () {\n this.setPrimaryView(this.paymentMethodsViews.ID);\n};\n\nMainView.prototype.startVaultedPaymentMethodDeletion = function () {\n this.element.className = '';\n this.showLoadingIndicator();\n};\n\nMainView.prototype.finishVaultedPaymentMethodDeletion = function (error) {\n var self = this;\n\n this.paymentMethodsViews.refreshPaymentMethods();\n\n if (error && this.model.getPaymentMethods().length > 0) {\n this.model.enableEditMode();\n this.showSheetError('vaultManagerPaymentMethodDeletionError');\n } else {\n this._sendToDefaultView();\n }\n\n return new Promise(function (resolve) {\n wait.delay(500).then(function () {\n // allow all the views to reset before hiding the loading indicator\n self.hideLoadingIndicator();\n resolve();\n });\n });\n};\n\nMainView.prototype._sendToDefaultView = function () {\n var paymentMethods = this.model.getPaymentMethods();\n var preselectVaultedPaymentMethod = this.model.merchantConfiguration.preselectVaultedPaymentMethod !== false;\n\n if (paymentMethods.length > 0) {\n if (preselectVaultedPaymentMethod) {\n analytics.sendEvent(this.client, 'vaulted-card.preselect');\n\n this.model.changeActivePaymentMethod(paymentMethods[0]);\n } else {\n this.setPrimaryView(this.paymentMethodsViews.ID);\n }\n } else if (this._hasMultiplePaymentOptions) {\n this.setPrimaryView(PaymentOptionsView.ID);\n } else {\n this.setPrimaryView(this.paymentSheetViewIDs[0]);\n }\n};\nfunction snakeCaseToCamelCase(s) {\n return s.toLowerCase().replace(/(\\_\\w)/g, function (m) {\n return m[1].toUpperCase();\n });\n}\n\nfunction prefixShowClass(classname) {\n return 'braintree-show-' + classname;\n}\n\nmodule.exports = MainView;\n\n},{\"../constants\":207,\"../lib/add-selection-event-handler\":211,\"../lib/analytics\":212,\"../lib/supports-flexbox\":225,\"../lib/wait\":228,\"./base-view\":264,\"./delete-confirmation-view\":265,\"./payment-methods-view\":268,\"./payment-options-view\":269,\"./payment-sheet-views\":274}],267:[function(require,module,exports){\n'use strict';\n\nvar analytics = require('../lib/analytics');\nvar BaseView = require('./base-view');\nvar constants = require('../constants');\n\nvar addSelectionEventHandler = require('../lib/add-selection-event-handler');\n\nvar paymentMethodHTML = \"
\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
@TITLE
@SUBTITLE
\\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n\";\n\nfunction PaymentMethodView() {\n BaseView.apply(this, arguments);\n\n this._initialize();\n}\n\nPaymentMethodView.prototype = Object.create(BaseView.prototype);\nPaymentMethodView.prototype.constructor = PaymentMethodView;\n\nPaymentMethodView.prototype._initialize = function () {\n var endingInText;\n var html = paymentMethodHTML;\n var paymentMethodCardTypes = constants.paymentMethodCardTypes;\n var paymentMethodTypes = constants.paymentMethodTypes;\n\n this.element = document.createElement('div');\n this.element.className = 'braintree-method';\n this.element.setAttribute('tabindex', '0');\n this.element.setAttribute('role', 'button');\n\n addSelectionEventHandler(this.element, function () {\n if (this.model.isInEditMode()) {\n this._selectDelete();\n } else {\n this._choosePaymentMethod();\n }\n }.bind(this));\n\n switch (this.paymentMethod.type) {\n case paymentMethodTypes.applePay:\n html = html.replace(/@ICON/g, 'logoApplePay')\n .replace(/@CLASSNAME/g, '')\n .replace(/@TITLE/g, this.strings['Apple Pay'])\n .replace(/@SUBTITLE/g, '');\n break;\n case paymentMethodTypes.card:\n endingInText = this.strings.endingIn.replace('{{lastFourCardDigits}}', this.paymentMethod.details.lastFour);\n html = html.replace(/@ICON/g, 'icon-' + paymentMethodCardTypes[this.paymentMethod.details.cardType])\n .replace(/@CLASSNAME/g, ' braintree-icon--bordered')\n .replace(/@TITLE/g, endingInText)\n .replace(/@SUBTITLE/g, this.strings[this.paymentMethod.details.cardType]);\n break;\n case paymentMethodTypes.googlePay:\n html = html.replace(/@ICON/g, 'logoGooglePay')\n .replace(/@CLASSNAME/g, '')\n .replace(/@TITLE/g, this.strings['Google Pay'])\n .replace(/@SUBTITLE/g, '');\n break;\n case paymentMethodTypes.paypal:\n html = html.replace(/@ICON/g, 'logoPayPal')\n .replace(/@CLASSNAME/g, '')\n .replace(/@TITLE/g, this.paymentMethod.details.email)\n .replace(/@SUBTITLE/g, this.strings.PayPal);\n break;\n case paymentMethodTypes.venmo:\n html = html.replace(/@ICON/g, 'logoVenmo')\n .replace(/@CLASSNAME/g, '')\n .replace(/@TITLE/g, this.paymentMethod.details.username)\n .replace(/@SUBTITLE/g, this.strings.Venmo);\n break;\n default:\n break;\n }\n\n this.element.innerHTML = html;\n this.checkMark = this.element.querySelector('.braintree-method__check-container');\n};\n\nPaymentMethodView.prototype.setActive = function (isActive) {\n // setTimeout required to animate addition of new payment methods\n setTimeout(function () {\n this.element.classList.toggle('braintree-method--active', isActive);\n }.bind(this), 0);\n};\n\nPaymentMethodView.prototype.enableEditMode = function () {\n this.checkMark.classList.add('braintree-hidden');\n if (this.paymentMethod.hasSubscription) {\n this.element.classList.add('braintree-method--disabled');\n }\n};\n\nPaymentMethodView.prototype.disableEditMode = function () {\n this.checkMark.classList.remove('braintree-hidden');\n this.element.classList.remove('braintree-method--disabled');\n};\n\nPaymentMethodView.prototype.teardown = function () {\n if (this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n};\n\nPaymentMethodView.prototype._choosePaymentMethod = function () {\n if (this.paymentMethod.vaulted) {\n analytics.sendEvent(this.client, 'vaulted-' + constants.analyticsKinds[this.paymentMethod.type] + '.select');\n }\n\n this.model.changeActivePaymentMethod(this.paymentMethod);\n};\n\nPaymentMethodView.prototype._selectDelete = function () {\n this.model.confirmPaymentMethodDeletion(this.paymentMethod);\n};\n\nmodule.exports = PaymentMethodView;\n\n},{\"../constants\":207,\"../lib/add-selection-event-handler\":211,\"../lib/analytics\":212,\"./base-view\":264}],268:[function(require,module,exports){\n'use strict';\n\nvar BaseView = require('./base-view');\nvar PaymentMethodView = require('./payment-method-view');\nvar DropinError = require('../lib/dropin-error');\nvar errors = require('../constants').errors;\nvar addSelectionEventHandler = require('../lib/add-selection-event-handler');\n\nvar PAYMENT_METHOD_TYPE_TO_TRANSLATION_STRING = {\n CreditCard: 'Card',\n PayPalAccount: 'PayPal',\n ApplePayCard: 'Apple Pay',\n AndroidPayCard: 'Google Pay',\n VenmoAccount: 'Venmo'\n};\n\nfunction PaymentMethodsView() {\n BaseView.apply(this, arguments);\n\n this._initialize();\n}\n\nPaymentMethodsView.prototype = Object.create(BaseView.prototype);\nPaymentMethodsView.prototype.constructor = PaymentMethodsView;\nPaymentMethodsView.ID = PaymentMethodsView.prototype.ID = 'methods';\n\nPaymentMethodsView.prototype._initialize = function () {\n this.views = [];\n this.container = this.getElementById('methods-container');\n this._headingLabel = this.getElementById('methods-label');\n this._editButton = this.getElementById('methods-edit');\n\n this.model.on('addPaymentMethod', this._addPaymentMethod.bind(this));\n this.model.on('changeActivePaymentMethod', this._changeActivePaymentMethodView.bind(this));\n this.model.on('refreshPaymentMethods', this.refreshPaymentMethods.bind(this));\n\n this.refreshPaymentMethods();\n\n if (this.model.merchantConfiguration.vaultManager) {\n this.model.on('removePaymentMethod', this._removePaymentMethod.bind(this));\n\n addSelectionEventHandler(this._editButton, function () {\n if (this.model.isInEditMode()) {\n this.model.disableEditMode();\n } else {\n this.model.enableEditMode();\n }\n }.bind(this));\n\n this._editButton.classList.remove('braintree-hidden');\n }\n};\n\nPaymentMethodsView.prototype.removeActivePaymentMethod = function () {\n if (!this.activeMethodView) {\n return;\n }\n this.activeMethodView.setActive(false);\n this.activeMethodView = null;\n this._headingLabel.classList.add('braintree-no-payment-method-selected');\n};\n\nPaymentMethodsView.prototype._getPaymentMethodString = function () {\n var stringKey, paymentMethodTypeString;\n\n if (!this.activeMethodView) {\n return '';\n }\n\n stringKey = PAYMENT_METHOD_TYPE_TO_TRANSLATION_STRING[this.activeMethodView.paymentMethod.type];\n paymentMethodTypeString = this.strings[stringKey];\n\n return this.strings.payingWith.replace('{{paymentSource}}', paymentMethodTypeString);\n};\n\nPaymentMethodsView.prototype.enableEditMode = function () {\n this.container.classList.add('braintree-methods--edit');\n\n this._editButton.innerHTML = this.strings.deleteCancelButton;\n this._headingLabel.innerHTML = this.strings.editPaymentMethods;\n\n this.views.forEach(function (view) {\n view.enableEditMode();\n });\n};\n\nPaymentMethodsView.prototype.disableEditMode = function () {\n this.container.classList.remove('braintree-methods--edit');\n\n this._editButton.innerHTML = this.strings.edit;\n this._headingLabel.innerHTML = this._getPaymentMethodString();\n\n this.views.forEach(function (view) {\n view.disableEditMode();\n });\n};\n\nPaymentMethodsView.prototype._addPaymentMethod = function (paymentMethod) {\n var paymentMethodView = new PaymentMethodView({\n model: this.model,\n paymentMethod: paymentMethod,\n client: this.client,\n strings: this.strings\n });\n\n if (this.model.isGuestCheckout && this.container.firstChild) {\n this.views[0].teardown();\n this.views.pop();\n }\n\n if (this.container.firstChild) {\n this.container.insertBefore(paymentMethodView.element, this.container.firstChild);\n } else {\n this.container.appendChild(paymentMethodView.element);\n }\n\n this.views.push(paymentMethodView);\n};\n\nPaymentMethodsView.prototype._removePaymentMethod = function (paymentMethod) {\n var i;\n\n for (i = 0; i < this.views.length; i++) {\n if (this.views[i].paymentMethod === paymentMethod) {\n this.views[i].teardown();\n this._headingLabel.innerHTML = ' ';\n this.views.splice(i, 1);\n break;\n }\n }\n};\n\nPaymentMethodsView.prototype._changeActivePaymentMethodView = function (paymentMethod) {\n var i;\n var previousActiveMethodView = this.activeMethodView;\n\n for (i = 0; i < this.views.length; i++) {\n if (this.views[i].paymentMethod === paymentMethod) {\n this.activeMethodView = this.views[i];\n this._headingLabel.innerHTML = this._getPaymentMethodString();\n break;\n }\n }\n\n if (previousActiveMethodView) {\n previousActiveMethodView.setActive(false);\n }\n this.activeMethodView.setActive(true);\n this._headingLabel.classList.remove('braintree-no-payment-method-selected');\n};\n\nPaymentMethodsView.prototype.requestPaymentMethod = function () {\n if (!this.activeMethodView || this.model.isInEditMode()) {\n return Promise.reject(new DropinError(errors.NO_PAYMENT_METHOD_ERROR));\n }\n\n return Promise.resolve(this.activeMethodView.paymentMethod);\n};\n\nPaymentMethodsView.prototype.refreshPaymentMethods = function () {\n var i;\n var paymentMethods = this.model.getPaymentMethods();\n\n this.views.forEach(function (view) {\n view.teardown();\n });\n\n this.views = [];\n\n for (i = paymentMethods.length - 1; i >= 0; i--) {\n this._addPaymentMethod(paymentMethods[i]);\n }\n};\n\nmodule.exports = PaymentMethodsView;\n\n},{\"../constants\":207,\"../lib/add-selection-event-handler\":211,\"../lib/dropin-error\":217,\"./base-view\":264,\"./payment-method-view\":267}],269:[function(require,module,exports){\n'use strict';\n\nvar analytics = require('../lib/analytics');\nvar addSelectionEventHandler = require('../lib/add-selection-event-handler');\nvar BaseView = require('./base-view');\n\nvar paymentOptionIDs = require('../constants').paymentOptionIDs;\n\nvar paymentMethodOptionHTML = \"
\\n \\n \\n \\n
\\n\\n
\\n @OPTION_TITLE\\n
\\n
\\n\";\n\nfunction PaymentOptionsView() {\n BaseView.apply(this, arguments);\n\n this._initialize();\n}\n\nPaymentOptionsView.prototype = Object.create(BaseView.prototype);\nPaymentOptionsView.prototype.constructor = PaymentOptionsView;\nPaymentOptionsView.ID = PaymentOptionsView.prototype.ID = 'options';\n\nPaymentOptionsView.prototype._initialize = function () {\n this.container = this.getElementById('payment-options-container');\n this.elements = {};\n\n this.model.supportedPaymentOptions.forEach(function (paymentOptionID) {\n this._addPaymentOption(paymentOptionID);\n }.bind(this));\n};\n\nPaymentOptionsView.prototype._addPaymentOption = function (paymentOptionID) {\n var paymentSource;\n var div = document.createElement('div');\n var html = paymentMethodOptionHTML;\n var clickHandler = function clickHandler() {\n this.mainView.setPrimaryView(paymentOptionID);\n this.model.selectPaymentOption(paymentOptionID);\n analytics.sendEvent(this.client, 'selected.' + paymentOptionIDs[paymentOptionID]);\n }.bind(this);\n\n div.className = 'braintree-option braintree-option__' + paymentOptionID;\n div.setAttribute('tabindex', '0');\n div.setAttribute('role', 'button');\n\n switch (paymentOptionID) {\n case paymentOptionIDs.applePay:\n paymentSource = this.strings['Apple Pay'];\n html = html.replace(/@ICON/g, 'logoApplePay');\n break;\n case paymentOptionIDs.card:\n paymentSource = this.strings.Card;\n html = html.replace(/@ICON/g, 'iconCardFront');\n html = html.replace(/@CLASSNAME/g, 'braintree-icon--bordered');\n break;\n case paymentOptionIDs.googlePay:\n paymentSource = this.strings['Google Pay'];\n html = html.replace(/@ICON/g, 'logoGooglePay');\n break;\n case paymentOptionIDs.paypal:\n paymentSource = this.strings.PayPal;\n html = html.replace(/@ICON/g, 'logoPayPal');\n break;\n case paymentOptionIDs.paypalCredit:\n paymentSource = this.strings['PayPal Credit'];\n html = html.replace(/@ICON/g, 'logoPayPalCredit');\n break;\n case paymentOptionIDs.venmo:\n paymentSource = this.strings.Venmo;\n html = html.replace(/@ICON/g, 'logoVenmo');\n break;\n default:\n break;\n }\n\n html = html.replace(/@OPTION_LABEL/g, this._generateOptionLabel(paymentSource));\n html = html.replace(/@OPTION_TITLE/g, paymentSource);\n html = html.replace(/@CLASSNAME/g, '');\n\n div.innerHTML = html;\n\n addSelectionEventHandler(div, clickHandler);\n\n this.container.appendChild(div);\n this.elements[paymentOptionID] = {\n div: div,\n clickHandler: clickHandler\n };\n};\n\nPaymentOptionsView.prototype._generateOptionLabel = function (paymentSourceString) {\n return this.strings.payingWith.replace('{{paymentSource}}', paymentSourceString);\n};\n\nmodule.exports = PaymentOptionsView;\n\n},{\"../constants\":207,\"../lib/add-selection-event-handler\":211,\"../lib/analytics\":212,\"./base-view\":264}],270:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\nvar BaseView = require('../base-view');\nvar btApplePay = require('braintree-web/apple-pay');\nvar DropinError = require('../../lib/dropin-error');\nvar isHTTPS = require('../../lib/is-https');\nvar paymentOptionIDs = require('../../constants').paymentOptionIDs;\n\nvar DEFAULT_APPLE_PAY_SESSION_VERSION = 2;\n\nfunction ApplePayView() {\n BaseView.apply(this, arguments);\n}\n\nApplePayView.prototype = Object.create(BaseView.prototype);\nApplePayView.prototype.constructor = ApplePayView;\nApplePayView.ID = ApplePayView.prototype.ID = paymentOptionIDs.applePay;\n\nApplePayView.prototype.initialize = function () {\n var self = this;\n\n self.applePayConfiguration = assign({}, self.model.merchantConfiguration.applePay);\n self.applePaySessionVersion = self.applePayConfiguration.applePaySessionVersion || DEFAULT_APPLE_PAY_SESSION_VERSION;\n\n delete self.applePayConfiguration.applePaySessionVersion;\n\n return btApplePay.create({client: this.client}).then(function (applePayInstance) {\n self.buttonDiv = self.getElementById('apple-pay-button');\n\n self.applePayInstance = applePayInstance;\n\n self.buttonDiv.onclick = self._showPaymentSheet.bind(self);\n self.buttonDiv.style['-apple-pay-button-style'] = self.model.merchantConfiguration.applePay.buttonStyle || 'black';\n\n self.model.asyncDependencyReady(ApplePayView.ID);\n }).catch(function (err) {\n self.model.asyncDependencyFailed({\n view: self.ID,\n error: new DropinError(err)\n });\n });\n};\n\nApplePayView.prototype.requestPaymentMethod = function () {\n this.model.reportError('applePayButtonMustBeUsed');\n\n return BaseView.prototype.requestPaymentMethod.call(this);\n};\n\nApplePayView.prototype._showPaymentSheet = function () {\n var self = this;\n var request, session;\n\n if (this._sessionInProgress) {\n return false;\n }\n\n this._sessionInProgress = true;\n\n request = this.applePayInstance.createPaymentRequest(this.applePayConfiguration.paymentRequest);\n session = new global.ApplePaySession(self.applePaySessionVersion, request);\n\n session.onvalidatemerchant = function (event) {\n self.applePayInstance.performValidation({\n validationURL: event.validationURL,\n displayName: self.applePayConfiguration.displayName\n }).then(function (validationData) {\n session.completeMerchantValidation(validationData);\n }).catch(function (validationErr) {\n self.model.reportError(validationErr);\n self._sessionInProgress = false;\n session.abort();\n });\n };\n\n session.onpaymentauthorized = function (event) {\n self.applePayInstance.tokenize({\n token: event.payment.token\n }).then(function (payload) {\n self._sessionInProgress = false;\n session.completePayment(global.ApplePaySession.STATUS_SUCCESS);\n payload.rawPaymentData = event.payment;\n self.model.addPaymentMethod(payload);\n }).catch(function (tokenizeErr) {\n self.model.reportError(tokenizeErr);\n self._sessionInProgress = false;\n session.completePayment(global.ApplePaySession.STATUS_FAILURE);\n });\n };\n\n session.oncancel = function () {\n self._sessionInProgress = false;\n };\n\n session.begin();\n\n return false;\n};\n\nApplePayView.prototype.updateConfiguration = function (key, value) {\n this.applePayConfiguration[key] = value;\n};\n\nApplePayView.isEnabled = function (options) {\n var gatewayConfiguration = options.client.getConfiguration().gatewayConfiguration;\n var applePayEnabled = gatewayConfiguration.applePayWeb && Boolean(options.merchantConfiguration.applePay);\n var applePaySessionVersion = options.merchantConfiguration.applePay && options.merchantConfiguration.applePay.applePaySessionVersion;\n var applePayBrowserSupported;\n\n applePaySessionVersion = applePaySessionVersion || DEFAULT_APPLE_PAY_SESSION_VERSION;\n\n if (!applePayEnabled) {\n return Promise.resolve(false);\n }\n\n applePayBrowserSupported = global.ApplePaySession && isHTTPS.isHTTPS();\n\n if (!applePayBrowserSupported) {\n return Promise.resolve(false);\n }\n\n if (!global.ApplePaySession.supportsVersion(applePaySessionVersion)) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(Boolean(global.ApplePaySession.canMakePayments()));\n};\n\nmodule.exports = ApplePayView;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../constants\":207,\"../../lib/assign\":213,\"../../lib/dropin-error\":217,\"../../lib/is-https\":220,\"../base-view\":264,\"braintree-web/apple-pay\":50}],271:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar analytics = require('../../lib/analytics');\nvar assign = require('../../lib/assign').assign;\nvar browserDetection = require('../../lib/browser-detection');\nvar BaseView = require('../base-view');\nvar btPaypal = require('braintree-web/paypal-checkout');\nvar DropinError = require('../../lib/dropin-error');\nvar constants = require('../../constants');\nvar assets = require('@braintree/asset-loader');\nvar translations = require('../../translations').fiveCharacterLocales;\n\nvar ASYNC_DEPENDENCY_TIMEOUT = 30000;\nvar READ_ONLY_CONFIGURATION_OPTIONS = ['offerCredit', 'locale'];\nvar DEFAULT_CHECKOUTJS_LOG_LEVEL = 'warn';\n\nvar paypalScriptLoadInProgressPromise;\n\nfunction BasePayPalView() {\n BaseView.apply(this, arguments);\n}\n\nBasePayPalView.prototype = Object.create(BaseView.prototype);\n\nBasePayPalView.prototype.initialize = function () {\n var asyncDependencyTimeoutHandler;\n var isCredit = Boolean(this._isPayPalCredit);\n var setupComplete = false;\n var self = this;\n var paypalType = isCredit ? 'paypalCredit' : 'paypal';\n var paypalConfiguration = this.model.merchantConfiguration[paypalType];\n var dropinWrapperId = '#braintree--dropin__' + this.model.componentID;\n\n this.paypalConfiguration = assign({}, paypalConfiguration);\n\n asyncDependencyTimeoutHandler = setTimeout(function () {\n self.model.asyncDependencyFailed({\n view: self.ID,\n error: new DropinError('There was an error connecting to PayPal.')\n });\n }, ASYNC_DEPENDENCY_TIMEOUT);\n\n return btPaypal.create({client: this.client}).then(function (paypalInstance) {\n var checkoutJSConfiguration;\n var buttonSelector = '[data-braintree-id=\"paypal-button\"]';\n var environment = self.client.getConfiguration().gatewayConfiguration.environment === 'production' ? 'production' : 'sandbox';\n var locale = self.model.merchantConfiguration.locale;\n\n self.paypalInstance = paypalInstance;\n\n self.paypalConfiguration.offerCredit = Boolean(isCredit);\n checkoutJSConfiguration = {\n env: environment,\n style: self.paypalConfiguration.buttonStyle || {},\n commit: self.paypalConfiguration.commit,\n payment: function () {\n return paypalInstance.createPayment(self.paypalConfiguration).catch(reportError);\n },\n onAuthorize: function (data) {\n // NEXT_MAJOR_VERSION change out this vaultPayPal property\n // to something more generic, such as vaultOnTokenization so\n // all the vault objects can have the same shape (instead\n // of being specific to PayPal accounts here)\n var shouldNotVault = self.paypalConfiguration.vault && self.paypalConfiguration.vault.vaultPayPal === false;\n\n if (shouldNotVault) {\n data.vault = false;\n }\n\n return paypalInstance.tokenizePayment(data).then(function (tokenizePayload) {\n if (!shouldNotVault && self.paypalConfiguration.flow === 'vault' && !self.model.isGuestCheckout) {\n tokenizePayload.vaulted = true;\n }\n self.model.addPaymentMethod(tokenizePayload);\n }).catch(reportError);\n },\n onError: reportError\n };\n\n if (locale && locale in translations) {\n self.paypalConfiguration.locale = locale;\n checkoutJSConfiguration.locale = locale;\n }\n checkoutJSConfiguration.funding = {\n disallowed: []\n };\n\n Object.keys(global.paypal.FUNDING).forEach(function (key) {\n if (key === 'PAYPAL' || key === 'CREDIT') {\n return;\n }\n checkoutJSConfiguration.funding.disallowed.push(global.paypal.FUNDING[key]);\n });\n\n if (isCredit) {\n buttonSelector = '[data-braintree-id=\"paypal-credit-button\"]';\n checkoutJSConfiguration.style.label = 'credit';\n } else {\n checkoutJSConfiguration.funding.disallowed.push(global.paypal.FUNDING.CREDIT);\n }\n\n buttonSelector = dropinWrapperId + ' ' + buttonSelector;\n\n return global.paypal.Button.render(checkoutJSConfiguration, buttonSelector).then(function () {\n self.model.asyncDependencyReady(paypalType);\n setupComplete = true;\n clearTimeout(asyncDependencyTimeoutHandler);\n });\n }).catch(reportError);\n\n function reportError(err) {\n if (setupComplete) {\n self.model.reportError(err);\n } else {\n self.model.asyncDependencyFailed({\n view: self.ID,\n error: err\n });\n clearTimeout(asyncDependencyTimeoutHandler);\n }\n }\n};\n\nBasePayPalView.prototype.requestPaymentMethod = function () {\n this.model.reportError('paypalButtonMustBeUsed');\n\n return BaseView.prototype.requestPaymentMethod.call(this);\n};\n\nBasePayPalView.prototype.updateConfiguration = function (key, value) {\n if (READ_ONLY_CONFIGURATION_OPTIONS.indexOf(key) === -1) {\n this.paypalConfiguration[key] = value;\n }\n};\n\nBasePayPalView.isEnabled = function (options) {\n var gatewayConfiguration = options.client.getConfiguration().gatewayConfiguration;\n var merchantPayPalConfig = options.merchantConfiguration.paypal || options.merchantConfiguration.paypalCredit;\n\n if (!gatewayConfiguration.paypalEnabled) {\n return Promise.resolve(false);\n }\n\n if (browserDetection.isIe9() || browserDetection.isIe10()) {\n analytics.sendEvent(options.client, options.viewID + '.checkout.js-browser-not-supported');\n\n return Promise.resolve(false);\n }\n\n if (global.paypal && global.paypal.Button) {\n return Promise.resolve(true);\n }\n\n if (paypalScriptLoadInProgressPromise) {\n return paypalScriptLoadInProgressPromise;\n }\n\n paypalScriptLoadInProgressPromise = assets.loadScript({\n src: constants.CHECKOUT_JS_SOURCE,\n id: constants.PAYPAL_CHECKOUT_SCRIPT_ID,\n dataAttributes: {\n 'log-level': merchantPayPalConfig.logLevel || DEFAULT_CHECKOUTJS_LOG_LEVEL\n }\n }).then(function () {\n return Promise.resolve(true);\n }).catch(function () {\n return Promise.resolve(false);\n }).then(function (result) {\n paypalScriptLoadInProgressPromise = null;\n\n return Promise.resolve(result);\n });\n\n return paypalScriptLoadInProgressPromise;\n};\n\nmodule.exports = BasePayPalView;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../constants\":207,\"../../lib/analytics\":212,\"../../lib/assign\":213,\"../../lib/browser-detection\":214,\"../../lib/dropin-error\":217,\"../../translations\":247,\"../base-view\":264,\"@braintree/asset-loader\":1,\"braintree-web/paypal-checkout\":134}],272:[function(require,module,exports){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\n\nvar BaseView = require('../base-view');\nvar constants = require('../../constants');\nvar DropinError = require('../../lib/dropin-error');\nvar hostedFields = require('braintree-web/hosted-fields');\nvar isUtf8 = require('../../lib/is-utf-8');\nvar transitionHelper = require('../../lib/transition-helper');\n\nvar cardIconHTML = \"
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n\";\n\nvar PASSTHROUGH_EVENTS = [\n 'empty',\n // TODO should intercept this event and call tokenize\n 'inputSubmitRequest',\n 'binAvailable'\n];\n\nvar HOSTED_FIELDS = [\n 'number',\n 'expirationDate',\n 'cvv',\n 'postalCode',\n 'cardholderName'\n];\n\nfunction CardView() {\n BaseView.apply(this, arguments);\n}\n\nCardView.prototype = Object.create(BaseView.prototype);\nCardView.prototype.constructor = CardView;\nCardView.ID = CardView.prototype.ID = constants.paymentOptionIDs.card;\n\nCardView.prototype.initialize = function () {\n var cvvFieldGroup, postalCodeFieldGroup, hfOptions;\n var cardholderNameGroup = this.getElementById('cardholder-name-field-group');\n\n // If merchant explicty passes a value of `true` for card configuration,\n // we need to treat it as if no card configuration was passed, and provide\n // the default configuration\n if (this.model.merchantConfiguration.card && this.model.merchantConfiguration.card !== true) {\n this.merchantConfiguration = this.model.merchantConfiguration.card;\n } else {\n this.merchantConfiguration = {};\n }\n this.merchantConfiguration.vault = this.merchantConfiguration.vault || {};\n this.hasCardholderName = Boolean(this.merchantConfiguration.cardholderName);\n this.cardholderNameRequired = this.hasCardholderName && this.merchantConfiguration.cardholderName.required === true;\n hfOptions = this._generateHostedFieldsOptions();\n\n this._renderCardIcons();\n this._hideUnsupportedCardIcons();\n\n this.hasCVV = hfOptions.fields.cvv;\n this.saveCardInput = this.getElementById('save-card-input');\n this.cardNumberIcon = this.getElementById('card-number-icon');\n this.cardNumberIconSvg = this.getElementById('card-number-icon-svg');\n this.cvvIcon = this.getElementById('cvv-icon');\n this.cvvIconSvg = this.getElementById('cvv-icon-svg');\n this.cvvLabelDescriptor = this.getElementById('cvv-label-descriptor');\n this.fieldErrors = {};\n\n if (!this.hasCardholderName) {\n cardholderNameGroup.parentNode.removeChild(cardholderNameGroup);\n HOSTED_FIELDS = HOSTED_FIELDS.filter(function (field) {\n return field !== 'cardholderName';\n });\n }\n\n if (!this.hasCVV) {\n cvvFieldGroup = this.getElementById('cvv-field-group');\n cvvFieldGroup.parentNode.removeChild(cvvFieldGroup);\n HOSTED_FIELDS = HOSTED_FIELDS.filter(function (field) {\n return field !== 'cvv';\n });\n }\n\n if (!hfOptions.fields.postalCode) {\n postalCodeFieldGroup = this.getElementById('postal-code-field-group');\n postalCodeFieldGroup.parentNode.removeChild(postalCodeFieldGroup);\n HOSTED_FIELDS = HOSTED_FIELDS.filter(function (field) {\n return field !== 'postalCode';\n });\n }\n\n if (!this.model.isGuestCheckout && this.merchantConfiguration.vault.allowVaultCardOverride === true) {\n this.getElementById('save-card-field-group').classList.remove('braintree-hidden');\n }\n\n // NEXT_MAJOR_VERSION change out this vaultCard property\n // to something more generic, such as vaultOnTokenization so\n // all the vault objects can have the same shape (instead\n // of being specific to cards here)\n if (this.merchantConfiguration.vault.vaultCard === false) {\n this.saveCardInput.checked = false;\n }\n\n return hostedFields.create(hfOptions).then(function (hostedFieldsInstance) {\n this.hostedFieldsInstance = hostedFieldsInstance;\n this.hostedFieldsInstance.on('blur', this._onBlurEvent.bind(this));\n this.hostedFieldsInstance.on('cardTypeChange', this._onCardTypeChangeEvent.bind(this));\n this.hostedFieldsInstance.on('focus', this._onFocusEvent.bind(this));\n this.hostedFieldsInstance.on('notEmpty', this._onNotEmptyEvent.bind(this));\n this.hostedFieldsInstance.on('validityChange', this._onValidityChangeEvent.bind(this));\n HOSTED_FIELDS.forEach(function (hostedField) {\n this.hostedFieldsInstance.setAttribute({\n field: hostedField, attribute: 'aria-required', value: true\n });\n }.bind(this));\n\n PASSTHROUGH_EVENTS.forEach(function (eventName) {\n this.hostedFieldsInstance.on(eventName, function (event) {\n this.model._emit('card:' + eventName, event);\n }.bind(this));\n }.bind(this));\n\n this.model.asyncDependencyReady(CardView.ID);\n }.bind(this)).catch(function (err) {\n this.model.asyncDependencyFailed({\n view: this.ID,\n error: err\n });\n }.bind(this));\n};\n\nCardView.prototype._sendRequestableEvent = function () {\n if (!this._isTokenizing) {\n this.model.setPaymentMethodRequestable({\n isRequestable: this._validateForm(),\n type: constants.paymentMethodTypes.card\n });\n }\n};\n\nCardView.prototype._renderCardIcons = function () {\n var overrides = this.merchantConfiguration.overrides;\n var cardIcons = this.getElementById('card-view-icons');\n var supportedCardBrands = overrides && overrides.fields && overrides.fields.number && overrides.fields.number.supportedCardBrands;\n\n cardIcons.innerHTML = cardIconHTML;\n\n if (supportedCardBrands) {\n Object.keys(supportedCardBrands).forEach(function (cardBrand) {\n var value = supportedCardBrands[cardBrand];\n var selector, iconDiv;\n\n if (value === false) {\n selector = 'div[data-braintree-id=\"' + constants.cardTypeIcons[cardBrand] + '-card-icon\"]';\n iconDiv = document.querySelector(selector);\n hideCardIcon(iconDiv);\n }\n });\n }\n};\n\nCardView.prototype._generateHostedFieldsOptions = function () {\n var challenges = this.client.getConfiguration().gatewayConfiguration.challenges;\n var hasCVVChallenge = challenges.indexOf('cvv') !== -1;\n var hasPostalCodeChallenge = challenges.indexOf('postal_code') !== -1;\n var overrides = this.merchantConfiguration.overrides;\n var options = {\n client: this.client,\n fields: {\n cardholderName: {\n container: this._getFieldContainer('cardholder-name'),\n placeholder: this.strings.cardholderNamePlaceholder\n },\n number: {\n container: this._getFieldContainer('number'),\n placeholder: generateCardNumberPlaceholder()\n },\n expirationDate: {\n container: this._getFieldContainer('expiration'),\n placeholder: this.strings.expirationDatePlaceholder\n },\n cvv: {\n container: this._getFieldContainer('cvv'),\n placeholder: addBullets(3)\n },\n postalCode: {\n container: this._getFieldContainer('postal-code')\n }\n },\n styles: {\n input: {\n 'font-size': '16px',\n 'font-family': '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif',\n color: '#000'\n },\n ':focus': {\n color: 'black'\n },\n '::-webkit-input-placeholder': {\n color: '#6a6a6a'\n },\n ':-moz-placeholder': {\n color: '#6a6a6a'\n },\n '::-moz-placeholder': {\n color: '#6a6a6a'\n },\n ':-ms-input-placeholder ': {\n color: '#6a6a6a'\n },\n 'input::-ms-clear': {\n color: 'transparent'\n }\n }\n };\n\n if (!this.hasCardholderName) {\n delete options.fields.cardholderName;\n }\n\n if (!hasCVVChallenge) {\n delete options.fields.cvv;\n }\n\n if (!hasPostalCodeChallenge) {\n delete options.fields.postalCode;\n }\n\n if (!overrides) { return options; }\n\n if (overrides.fields) {\n if (overrides.fields.cvv && typeof overrides.fields.cvv.placeholder !== 'undefined') {\n this._hasCustomCVVPlaceholder = true;\n }\n\n Object.keys(overrides.fields).forEach(function (field) {\n if ((field === 'cvv' || field === 'postalCode') && overrides.fields[field] === null) {\n delete options.fields[field];\n\n return;\n }\n\n if (!options.fields[field]) {\n return;\n }\n\n assign(options.fields[field], overrides.fields[field], {\n selector: options.fields[field].selector\n });\n });\n }\n\n if (overrides.styles) {\n Object.keys(overrides.styles).forEach(function (style) {\n if (overrides.styles[style] === null) {\n delete options.styles[style];\n\n return;\n } else if (typeof overrides.styles[style] === 'string') {\n // it's a class name, and should override the configured styles entirely\n options.styles[style] = overrides.styles[style];\n\n return;\n }\n\n normalizeStyles(overrides.styles[style]);\n options.styles[style] = options.styles[style] || {};\n\n assign(options.styles[style], overrides.styles[style]);\n });\n }\n\n return options;\n};\n\nCardView.prototype._validateForm = function (showFieldErrors) {\n var card, cardType, cardTypeSupported, state;\n var isValid = true;\n var supportedCardTypes = this.client.getConfiguration().gatewayConfiguration.creditCards.supportedCardTypes;\n\n if (!this.hostedFieldsInstance) {\n return false;\n }\n\n state = this.hostedFieldsInstance.getState();\n\n Object.keys(state.fields).forEach(function (key) {\n var field = state.fields[key];\n\n if (!showFieldErrors && !isValid) {\n // return early if form is already invalid\n // and we don't need to display all field errors\n return;\n }\n\n if (field.isEmpty) {\n if (!this.cardholderNameRequired && key === 'cardholderName') {\n isValid = true;\n } else {\n isValid = false;\n\n if (showFieldErrors) {\n this.showFieldError(key, this.strings['fieldEmptyFor' + capitalize(key)]);\n }\n }\n } else if (!field.isValid) {\n isValid = false;\n\n if (showFieldErrors) {\n this.showFieldError(key, this.strings['fieldInvalidFor' + capitalize(key)]);\n }\n }\n }.bind(this));\n\n if (state.fields.number.isValid) {\n card = state.cards[0];\n cardType = card && constants.configurationCardTypes[card.type];\n cardTypeSupported = cardType && supportedCardTypes.indexOf(cardType) !== -1;\n\n if (!cardTypeSupported) {\n isValid = false;\n\n if (showFieldErrors) {\n this.showFieldError('number', this.strings.unsupportedCardTypeError);\n }\n }\n }\n\n return isValid;\n};\n\nCardView.prototype.getPaymentMethod = function () { // eslint-disable-line consistent-return\n var formIsValid = this._validateForm();\n\n if (formIsValid) {\n return {\n type: constants.paymentMethodTypes.card\n };\n }\n};\n\nCardView.prototype.tokenize = function () {\n var transitionCallback;\n var self = this;\n var state = self.hostedFieldsInstance.getState();\n var tokenizeOptions = {\n vault: this._shouldVault()\n };\n\n this.model.clearError();\n\n if (!this._validateForm(true)) {\n self.model.reportError('hostedFieldsFieldsInvalidError');\n self.allowUserAction();\n\n return Promise.reject(new DropinError(constants.errors.NO_PAYMENT_METHOD_ERROR));\n }\n\n if (!this.cardholderNameRequired && state.fields.cardholderName && state.fields.cardholderName.isEmpty) {\n tokenizeOptions.fieldsToTokenize = Object.keys(state.fields).filter(function (field) {\n return field !== 'cardholderName';\n });\n }\n\n self._isTokenizing = true;\n\n return self.hostedFieldsInstance.tokenize(tokenizeOptions).then(function (payload) {\n var retainCardFields = self.merchantConfiguration.clearFieldsAfterTokenization === false;\n\n if (!retainCardFields) {\n Object.keys(state.fields).forEach(function (field) {\n self.hostedFieldsInstance.clear(field);\n });\n }\n\n if (self._shouldVault()) {\n payload.vaulted = true;\n }\n\n return new Promise(function (resolve) {\n transitionCallback = function () {\n // Wait for braintree-sheet--tokenized class to be added in IE 9\n // before attempting to remove it\n setTimeout(function () {\n self.model.addPaymentMethod(payload);\n resolve(payload);\n self.element.classList.remove('braintree-sheet--tokenized');\n }, 0);\n };\n\n transitionHelper.onTransitionEnd(self.element, 'max-height', transitionCallback);\n\n setTimeout(function () {\n self.allowUserAction();\n self._isTokenizing = false;\n }, constants.CHANGE_ACTIVE_PAYMENT_METHOD_TIMEOUT);\n\n self.element.classList.add('braintree-sheet--tokenized');\n });\n }).catch(function (err) {\n self._isTokenizing = false;\n // this is a little magical, but if the code property exists\n // in the translations with the word Error appended to the end,\n // then reportError will automatically print that translation.\n // See https://github.com/braintree/braintree-web-drop-in/blob/6ecba73f2f16e8b7ae2119702ac162a1a985908e/src/views/main-view.js#L255-L256\n self.model.reportError(err);\n self.allowUserAction();\n\n return Promise.reject(new DropinError({\n message: constants.errors.NO_PAYMENT_METHOD_ERROR,\n braintreeWebError: err\n }));\n });\n};\n\nCardView.prototype.showFieldError = function (field, errorMessage) {\n var fieldError;\n var fieldGroup = this.getElementById(camelCaseToKebabCase(field) + '-field-group');\n var input = fieldGroup.querySelector('input');\n\n if (!this.fieldErrors.hasOwnProperty(field)) {\n this.fieldErrors[field] = this.getElementById(camelCaseToKebabCase(field) + '-field-error');\n }\n\n fieldGroup.classList.add('braintree-form__field-group--has-error');\n\n fieldError = this.fieldErrors[field];\n fieldError.innerHTML = errorMessage;\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n } else {\n this.hostedFieldsInstance.setAttribute({\n field: field,\n attribute: 'aria-invalid',\n value: true\n });\n this.hostedFieldsInstance.setMessage({\n field: field,\n message: errorMessage\n });\n }\n};\n\nCardView.prototype.hideFieldError = function (field) {\n var fieldGroup = this.getElementById(camelCaseToKebabCase(field) + '-field-group');\n var input = fieldGroup.querySelector('input');\n\n if (!this.fieldErrors.hasOwnProperty(field)) {\n this.fieldErrors[field] = this.getElementById(camelCaseToKebabCase(field) + '-field-error');\n }\n\n fieldGroup.classList.remove('braintree-form__field-group--has-error');\n\n if (input) {\n input.removeAttribute('aria-invalid');\n } else {\n this.hostedFieldsInstance.removeAttribute({\n field: field,\n attribute: 'aria-invalid'\n });\n this.hostedFieldsInstance.setMessage({\n field: field,\n message: ''\n });\n }\n};\n\nCardView.prototype.teardown = function () {\n return this.hostedFieldsInstance.teardown();\n};\n\nCardView.prototype._shouldVault = function () {\n return !this.model.isGuestCheckout && this.saveCardInput.checked;\n};\n\nCardView.prototype._getFieldContainer = function (field) {\n // we committed to not changing the data-braintree-id fields\n // so we need to convert this field to the id used in the HTML\n if (field === 'expiration') {\n field = 'expiration-date';\n }\n\n return this.getElementById(field + '-field-group').querySelector('.braintree-form__hosted-field');\n};\n\nCardView.prototype._onBlurEvent = function (event) {\n var field = event.fields[event.emittedBy];\n var fieldGroup = this.getElementById(camelCaseToKebabCase(event.emittedBy) + '-field-group');\n\n fieldGroup.classList.remove('braintree-form__field-group--is-focused');\n\n if (field.isPotentiallyValid) {\n this.hideFieldError(event.emittedBy);\n }\n\n if (this._shouldApplyFieldEmptyError(event.emittedBy, field)) {\n this.showFieldError(event.emittedBy, this.strings['fieldEmptyFor' + capitalize(event.emittedBy)]);\n } else if (!field.isEmpty && !field.isValid) {\n this.showFieldError(event.emittedBy, this.strings['fieldInvalidFor' + capitalize(event.emittedBy)]);\n } else if (event.emittedBy === 'number' && !this._isCardTypeSupported(event.cards[0])) {\n this.showFieldError('number', this.strings.unsupportedCardTypeError);\n }\n\n this.model._emit('card:blur', event);\n\n setTimeout(function () {\n // when focusing on a field by clicking the label,\n // we need to wait a bit for the iframe to be\n // focused properly before applying validations\n if (this._shouldApplyFieldEmptyError(event.emittedBy, field)) {\n this.showFieldError(event.emittedBy, this.strings['fieldEmptyFor' + capitalize(event.emittedBy)]);\n }\n }.bind(this), 150);\n};\n\nCardView.prototype._onCardTypeChangeEvent = function (event) {\n var cardType;\n var cardNumberHrefLink = '#iconCardFront';\n var cvvHrefLink = '#iconCVVBack';\n var cvvDescriptor = this.strings.cvvThreeDigitLabelSubheading;\n var cvvPlaceholder = addBullets(3);\n var numberFieldGroup = this.getElementById('number-field-group');\n\n if (event.cards.length === 1) {\n cardType = event.cards[0].type;\n cardNumberHrefLink = '#icon-' + cardType;\n if (cardType === 'american-express') {\n cvvHrefLink = '#iconCVVFront';\n cvvDescriptor = this.strings.cvvFourDigitLabelSubheading;\n cvvPlaceholder = addBullets(4);\n }\n // Keep icon visible when field is not focused\n numberFieldGroup.classList.add('braintree-form__field-group--card-type-known');\n } else {\n numberFieldGroup.classList.remove('braintree-form__field-group--card-type-known');\n }\n\n // if the number field emitted the card change event fires\n // and the card type is supported, we need to clear out the errors\n // field in case that there was a \"card type is unsupported\" error\n if (event.emittedBy === 'number' && this._isCardTypeSupported(event.cards[0])) {\n this.hideFieldError(event.emittedBy);\n }\n\n this.cardNumberIconSvg.setAttribute('xlink:href', cardNumberHrefLink);\n\n if (this.hasCVV) {\n this.cvvIconSvg.setAttribute('xlink:href', cvvHrefLink);\n this.cvvLabelDescriptor.innerHTML = cvvDescriptor;\n\n if (!this._hasCustomCVVPlaceholder) {\n this.hostedFieldsInstance.setAttribute({\n field: 'cvv',\n attribute: 'placeholder',\n value: cvvPlaceholder\n });\n }\n }\n\n this.model._emit('card:cardTypeChange', event);\n};\n\nCardView.prototype._onFocusEvent = function (event) {\n var fieldGroup = this.getElementById(camelCaseToKebabCase(event.emittedBy) + '-field-group');\n\n fieldGroup.classList.add('braintree-form__field-group--is-focused');\n\n this.model._emit('card:focus', event);\n};\n\nCardView.prototype._onNotEmptyEvent = function (event) {\n this.hideFieldError(event.emittedBy);\n\n this.model._emit('card:notEmpty', event);\n};\n\nCardView.prototype._onValidityChangeEvent = function (event) {\n var isValid;\n var field = event.fields[event.emittedBy];\n\n if (event.emittedBy === 'number' && event.cards[0]) {\n isValid = field.isValid && this._isCardTypeSupported(event.cards[0]);\n } else {\n isValid = field.isValid;\n }\n\n field.container.classList.toggle('braintree-form__field--valid', isValid);\n\n if (field.isPotentiallyValid) {\n this.hideFieldError(event.emittedBy);\n }\n\n this._sendRequestableEvent();\n\n this.model._emit('card:validityChange', event);\n};\n\nCardView.prototype.requestPaymentMethod = function () {\n this.preventUserAction();\n\n return this.tokenize();\n};\n\nCardView.prototype.onSelection = function () {\n if (!this.hostedFieldsInstance) {\n return;\n }\n\n setTimeout(function () {\n if (this.hasCardholderName) {\n this.hostedFieldsInstance.focus('cardholderName');\n } else {\n this.hostedFieldsInstance.focus('number');\n }\n }.bind(this), 50);\n\n this._sendRequestableEvent();\n};\n\nCardView.prototype._hideUnsupportedCardIcons = function () {\n var supportedCardTypes = this.client.getConfiguration().gatewayConfiguration.creditCards.supportedCardTypes;\n\n Object.keys(constants.configurationCardTypes).forEach(function (paymentMethodCardType) {\n var cardIcon;\n var configurationCardType = constants.configurationCardTypes[paymentMethodCardType];\n\n if (supportedCardTypes.indexOf(configurationCardType) === -1) {\n cardIcon = this.getElementById(paymentMethodCardType + '-card-icon');\n cardIcon.classList.add('braintree-hidden');\n }\n }.bind(this));\n};\n\nCardView.prototype._isCardTypeSupported = function (card) {\n var cardType = card && card.type;\n var configurationCardType = constants.configurationCardTypes[cardType];\n var supportedCardTypes = this.client.getConfiguration().gatewayConfiguration.creditCards.supportedCardTypes;\n\n return supportedCardTypes.indexOf(configurationCardType) !== -1;\n};\n\nCardView.isEnabled = function (options) {\n var gatewayConfiguration = options.client.getConfiguration().gatewayConfiguration;\n var disabledByMerchant = options.merchantConfiguration.card === false;\n\n return Promise.resolve(!disabledByMerchant && gatewayConfiguration.creditCards.supportedCardTypes.length > 0);\n};\n\nCardView.prototype._shouldApplyFieldEmptyError = function (fieldId, field) {\n if (!field.isEmpty) {\n return false;\n }\n\n if (fieldId === 'cardholderName' && !this.cardholderNameRequired) {\n return false;\n }\n\n return isCardViewElement();\n};\n\nfunction hideCardIcon(icon) {\n if (icon) {\n icon.classList.add('braintree-hidden');\n }\n}\n\nfunction isCardViewElement() {\n var activeId = document.activeElement && document.activeElement.id;\n var isHostedFieldsElement = document.activeElement instanceof HTMLIFrameElement && activeId.indexOf('braintree-hosted-field') !== -1;\n var isPaypalCollectionNotice = document.activeElement && document.activeElement.parentElement.className === 'braintree-form__notice-of-collection';\n\n if (isPaypalCollectionNotice) {\n return true;\n }\n\n return isHostedFieldsElement;\n}\n\nfunction camelCaseToKebabCase(string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction capitalize(string) {\n return string[0].toUpperCase() + string.substr(1);\n}\n\nfunction normalizeStyles(styles) {\n Object.keys(styles).forEach(function (style) {\n var transformedKeyName = camelCaseToKebabCase(style);\n\n styles[transformedKeyName] = styles[style];\n });\n}\n\nfunction addBullets(number) {\n var bulletCharacter = isUtf8() ? '•' : '*';\n\n return Array(number + 1).join(bulletCharacter);\n}\n\nfunction generateCardNumberPlaceholder() {\n var four = addBullets(4);\n\n return [four, four, four, four].join(' ');\n}\n\nmodule.exports = CardView;\n\n},{\"../../constants\":207,\"../../lib/assign\":213,\"../../lib/dropin-error\":217,\"../../lib/is-utf-8\":221,\"../../lib/transition-helper\":227,\"../base-view\":264,\"braintree-web/hosted-fields\":80}],273:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\nvar BaseView = require('../base-view');\nvar btGooglePay = require('braintree-web/google-payment');\nvar DropinError = require('../../lib/dropin-error');\nvar constants = require('../../constants');\nvar assets = require('@braintree/asset-loader');\nvar analytics = require('../../lib/analytics');\n\nfunction GooglePayView() {\n BaseView.apply(this, arguments);\n}\n\nGooglePayView.prototype = Object.create(BaseView.prototype);\nGooglePayView.prototype.constructor = GooglePayView;\nGooglePayView.ID = GooglePayView.prototype.ID = constants.paymentOptionIDs.googlePay;\n\nGooglePayView.prototype.initialize = function () {\n var self = this;\n var buttonOptions, googlePayVersion, merchantId;\n\n self.googlePayConfiguration = assign({}, self.model.merchantConfiguration.googlePay);\n googlePayVersion = self.googlePayConfiguration.googlePayVersion;\n merchantId = self.googlePayConfiguration.merchantId;\n\n buttonOptions = assign({\n buttonType: 'short'\n }, self.googlePayConfiguration.button, {\n onClick: function (event) {\n event.preventDefault();\n\n self.preventUserAction();\n\n self.tokenize().then(function () {\n self.allowUserAction();\n });\n }\n });\n\n delete self.googlePayConfiguration.googlePayVersion;\n delete self.googlePayConfiguration.merchantId;\n delete self.googlePayConfiguration.button;\n\n return btGooglePay.create({\n client: self.client,\n googlePayVersion: googlePayVersion,\n googleMerchantId: merchantId\n }).then(function (googlePayInstance) {\n self.googlePayInstance = googlePayInstance;\n self.paymentsClient = createPaymentsClient(self.client);\n }).then(function () {\n var buttonContainer = self.getElementById('google-pay-button');\n\n buttonContainer.appendChild(self.paymentsClient.createButton(buttonOptions));\n\n self.model.asyncDependencyReady(GooglePayView.ID);\n }).catch(function (err) {\n self.model.asyncDependencyFailed({\n view: self.ID,\n error: new DropinError(err)\n });\n });\n};\n\nGooglePayView.prototype.tokenize = function () {\n var self = this;\n var paymentDataRequest = self.googlePayInstance.createPaymentDataRequest(self.googlePayConfiguration);\n var rawPaymentData;\n\n return self.paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n rawPaymentData = paymentData;\n\n return self.googlePayInstance.parseResponse(paymentData);\n }).then(function (tokenizePayload) {\n tokenizePayload.rawPaymentData = rawPaymentData;\n self.model.addPaymentMethod(tokenizePayload);\n }).catch(function (err) {\n var reportedError = err;\n\n if (err.statusCode === 'DEVELOPER_ERROR') {\n console.error(err); // eslint-disable-line no-console\n reportedError = 'developerError';\n } else if (err.statusCode === 'CANCELED') {\n analytics.sendEvent(self.client, 'googlepay.loadPaymentData.canceled');\n\n return;\n } else if (err.statusCode) {\n analytics.sendEvent(self.client, 'googlepay.loadPaymentData.failed');\n }\n\n self.model.reportError(reportedError);\n });\n};\n\nGooglePayView.prototype.updateConfiguration = function (key, value) {\n this.googlePayConfiguration[key] = value;\n};\n\nGooglePayView.isEnabled = function (options) {\n var gatewayConfiguration = options.client.getConfiguration().gatewayConfiguration;\n\n if (!(gatewayConfiguration.androidPay && Boolean(options.merchantConfiguration.googlePay))) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve().then(function () {\n if (!(global.google && global.google.payments && global.google.payments.api && global.google.payments.api.PaymentsClient)) {\n return assets.loadScript({\n id: constants.GOOGLE_PAYMENT_SCRIPT_ID,\n src: constants.GOOGLE_PAYMENT_SOURCE\n });\n }\n\n return Promise.resolve();\n }).then(function () {\n var paymentsClient = createPaymentsClient(options.client);\n\n return paymentsClient.isReadyToPay({\n allowedPaymentMethods: ['CARD', 'TOKENIZED_CARD']\n });\n }).then(function (response) {\n return Boolean(response.result);\n });\n};\n\nfunction createPaymentsClient(client) {\n return new global.google.payments.api.PaymentsClient({\n environment: client.getConfiguration().gatewayConfiguration.environment === 'production' ? 'PRODUCTION' : 'TEST'\n });\n}\n\nmodule.exports = GooglePayView;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../constants\":207,\"../../lib/analytics\":212,\"../../lib/assign\":213,\"../../lib/dropin-error\":217,\"../base-view\":264,\"@braintree/asset-loader\":1,\"braintree-web/google-payment\":73}],274:[function(require,module,exports){\n'use strict';\n\nvar paymentOptionIDs = require('../../constants').paymentOptionIDs;\n\nvar result = {};\n\nresult[paymentOptionIDs.applePay] = require('./apple-pay-view');\nresult[paymentOptionIDs.card] = require('./card-view');\nresult[paymentOptionIDs.googlePay] = require('./google-pay-view');\nresult[paymentOptionIDs.paypal] = require('./paypal-view');\nresult[paymentOptionIDs.paypalCredit] = require('./paypal-credit-view');\nresult[paymentOptionIDs.venmo] = require('./venmo-view');\n\nmodule.exports = result;\n\n},{\"../../constants\":207,\"./apple-pay-view\":270,\"./card-view\":272,\"./google-pay-view\":273,\"./paypal-credit-view\":275,\"./paypal-view\":276,\"./venmo-view\":277}],275:[function(require,module,exports){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\nvar paymentOptionIDs = require('../../constants').paymentOptionIDs;\nvar BasePayPalView = require('./base-paypal-view');\n\nfunction PayPalCreditView() {\n BasePayPalView.apply(this, arguments);\n\n this._isPayPalCredit = true;\n}\n\nPayPalCreditView.prototype = Object.create(BasePayPalView.prototype);\nPayPalCreditView.prototype.constructor = PayPalCreditView;\nPayPalCreditView.ID = PayPalCreditView.prototype.ID = paymentOptionIDs.paypalCredit;\n\nPayPalCreditView.isEnabled = function (options) {\n if (!options.merchantConfiguration.paypalCredit) {\n return Promise.resolve(false);\n }\n\n return BasePayPalView.isEnabled(assign({\n viewID: PayPalCreditView.ID\n }, options));\n};\nmodule.exports = PayPalCreditView;\n\n},{\"../../constants\":207,\"../../lib/assign\":213,\"./base-paypal-view\":271}],276:[function(require,module,exports){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\nvar paymentOptionIDs = require('../../constants').paymentOptionIDs;\nvar BasePayPalView = require('./base-paypal-view');\n\nfunction PayPalView() {\n BasePayPalView.apply(this, arguments);\n}\n\nPayPalView.prototype = Object.create(BasePayPalView.prototype);\nPayPalView.prototype.constructor = PayPalView;\nPayPalView.ID = PayPalView.prototype.ID = paymentOptionIDs.paypal;\n\nPayPalView.isEnabled = function (options) {\n if (!options.merchantConfiguration.paypal) {\n return Promise.resolve(false);\n }\n\n return BasePayPalView.isEnabled(assign({\n viewID: PayPalView.ID\n }, options));\n};\n\nmodule.exports = PayPalView;\n\n},{\"../../constants\":207,\"../../lib/assign\":213,\"./base-paypal-view\":271}],277:[function(require,module,exports){\n'use strict';\n\nvar assign = require('../../lib/assign').assign;\nvar BaseView = require('../base-view');\nvar btVenmo = require('braintree-web/venmo');\nvar DropinError = require('../../lib/dropin-error');\nvar paymentOptionIDs = require('../../constants').paymentOptionIDs;\n\nfunction VenmoView() {\n BaseView.apply(this, arguments);\n}\n\nVenmoView.prototype = Object.create(BaseView.prototype);\nVenmoView.prototype.constructor = VenmoView;\nVenmoView.ID = VenmoView.prototype.ID = paymentOptionIDs.venmo;\n\nVenmoView.prototype.initialize = function () {\n var self = this;\n var venmoConfiguration = assign({}, self.model.merchantConfiguration.venmo, {client: this.client});\n\n return btVenmo.create(venmoConfiguration).then(function (venmoInstance) {\n self.venmoInstance = venmoInstance;\n\n if (!self.venmoInstance.hasTokenizationResult()) {\n return Promise.resolve();\n }\n\n return self.venmoInstance.tokenize().then(function (payload) {\n self.model.reportAppSwitchPayload(payload);\n }).catch(function (err) {\n if (self._isIgnorableError(err)) {\n return;\n }\n self.model.reportAppSwitchError(paymentOptionIDs.venmo, err);\n });\n }).then(function () {\n var button = self.getElementById('venmo-button');\n\n button.addEventListener('click', function (event) {\n event.preventDefault();\n\n self.preventUserAction();\n\n return self.venmoInstance.tokenize().then(function (payload) {\n self.model.addPaymentMethod(payload);\n }).catch(function (tokenizeErr) {\n if (self._isIgnorableError(tokenizeErr)) {\n return;\n }\n\n self.model.reportError(tokenizeErr);\n }).then(function () {\n self.allowUserAction();\n });\n });\n\n self.model.asyncDependencyReady(VenmoView.ID);\n }).catch(function (err) {\n self.model.asyncDependencyFailed({\n view: self.ID,\n error: new DropinError(err)\n });\n });\n};\n\nVenmoView.prototype.requestPaymentMethod = function () {\n this.model.reportError('venmoButtonMustBeUsed');\n\n return BaseView.prototype.requestPaymentMethod.call(this);\n};\n\nVenmoView.prototype._isIgnorableError = function (error) {\n // customer cancels the flow in the app\n // we don't emit an error because the customer\n // initiated that action\n return error.code === 'VENMO_APP_CANCELED' || error.code === 'VENMO_DESKTOP_CANCELED';\n};\n\nVenmoView.isEnabled = function (options) {\n var gatewayConfiguration = options.client.getConfiguration().gatewayConfiguration;\n var venmoEnabled = gatewayConfiguration.payWithVenmo && Boolean(options.merchantConfiguration.venmo);\n\n if (!venmoEnabled) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(btVenmo.isBrowserSupported(options.merchantConfiguration.venmo));\n};\n\nmodule.exports = VenmoView;\n\n},{\"../../constants\":207,\"../../lib/assign\":213,\"../../lib/dropin-error\":217,\"../base-view\":264,\"braintree-web/venmo\":155}]},{},[210])(210)\n});\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.braintree = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i -1;\n}\nfunction isFacebook(ua) {\n return ua.indexOf(\"FBAN\") > -1;\n}\nmodule.exports = function isIosSafari(ua) {\n ua = ua || window.navigator.userAgent;\n return (isIos(ua) &&\n isWebkit(ua) &&\n !isIosChrome(ua) &&\n !isIosFirefox(ua) &&\n !isFacebook(ua));\n};\n\n},{\"./is-ios\":14,\"./is-ios-firefox\":9}],12:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIos = _dereq_(\"./is-ios\");\nvar isIosGoogleSearchApp = _dereq_(\"./is-ios-google-search-app\");\nmodule.exports = function isIosWebview(ua) {\n ua = ua || window.navigator.userAgent;\n if (isIos(ua)) {\n // The Google Search iOS app is technically a webview and doesn't support popups.\n if (isIosGoogleSearchApp(ua)) {\n return true;\n }\n // Historically, a webview could be identified by the presence of AppleWebKit and _no_ presence of Safari after.\n return /.+AppleWebKit(?!.*Safari)/i.test(ua);\n }\n return false;\n};\n\n},{\"./is-ios\":14,\"./is-ios-google-search-app\":10}],13:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIosWebview = _dereq_(\"./is-ios-webview\");\nmodule.exports = function isIosWKWebview(ua, statusBarVisible) {\n statusBarVisible =\n typeof statusBarVisible !== \"undefined\"\n ? statusBarVisible\n : window.statusbar.visible;\n return isIosWebview(ua) && statusBarVisible;\n};\n\n},{\"./is-ios-webview\":12}],14:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIpadOS = _dereq_(\"./is-ipados\");\nmodule.exports = function isIos(ua, checkIpadOS, document) {\n if (checkIpadOS === void 0) { checkIpadOS = true; }\n ua = ua || window.navigator.userAgent;\n var iOsTest = /iPhone|iPod|iPad/i.test(ua);\n return checkIpadOS ? iOsTest || isIpadOS(ua, document) : iOsTest;\n};\n\n},{\"./is-ipados\":15}],15:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isIpadOS(ua, document) {\n ua = ua || window.navigator.userAgent;\n document = document || window.document;\n // \"ontouchend\" is used to determine if a browser is on an iPad, otherwise\n // user-agents for iPadOS behave/identify as a desktop browser\n return /Mac|iPad/i.test(ua) && \"ontouchend\" in document;\n};\n\n},{}],16:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isOpera(ua) {\n ua = ua || window.navigator.userAgent;\n return (ua.indexOf(\"OPR/\") !== -1 ||\n ua.indexOf(\"Opera/\") !== -1 ||\n ua.indexOf(\"OPT/\") !== -1);\n};\n\n},{}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isSamsungBrowser(ua) {\n ua = ua || window.navigator.userAgent;\n return /SamsungBrowser/i.test(ua);\n};\n\n},{}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isSilk(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Silk/\") !== -1;\n};\n\n},{}],19:[function(_dereq_,module,exports){\n\"use strict\";\nvar MINIMUM_SUPPORTED_CHROME_IOS_VERSION = 48;\nvar isAndroid = _dereq_(\"./is-android\");\nvar isIosFirefox = _dereq_(\"./is-ios-firefox\");\nvar isIosWebview = _dereq_(\"./is-ios-webview\");\nvar isChrome = _dereq_(\"./is-chrome\");\nvar isSamsungBrowser = _dereq_(\"./is-samsung\");\nvar isDuckDuckGo = _dereq_(\"./is-duckduckgo\");\nfunction isUnsupportedIosChrome(ua) {\n ua = ua || window.navigator.userAgent;\n var match = ua.match(/CriOS\\/(\\d+)\\./);\n if (!match) {\n return false;\n }\n var version = parseInt(match[1], 10);\n return version < MINIMUM_SUPPORTED_CHROME_IOS_VERSION;\n}\nfunction isOperaMini(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Opera Mini\") > -1;\n}\nfunction isAndroidWebview(ua) {\n var androidWebviewRegExp = /Version\\/[\\d.]+/i;\n ua = ua || window.navigator.userAgent;\n if (isAndroid(ua)) {\n return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !isDuckDuckGo(ua));\n }\n return false;\n}\nfunction isOldSamsungBrowserOrSamsungWebview(ua) {\n return !isChrome(ua) && !isSamsungBrowser(ua) && /samsung/i.test(ua);\n}\nmodule.exports = function supportsPopups(ua) {\n ua = ua || window.navigator.userAgent;\n return !(isIosWebview(ua) ||\n isIosFirefox(ua) ||\n isAndroidWebview(ua) ||\n isOperaMini(ua) ||\n isUnsupportedIosChrome(ua) ||\n isOldSamsungBrowserOrSamsungWebview(ua));\n};\n\n},{\"./is-android\":3,\"./is-chrome\":5,\"./is-duckduckgo\":6,\"./is-ios-firefox\":9,\"./is-ios-webview\":12,\"./is-samsung\":17}],20:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-android\");\n\n},{\"./dist/is-android\":3}],21:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-chrome-os\");\n\n},{\"./dist/is-chrome-os\":4}],22:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-chrome\");\n\n},{\"./dist/is-chrome\":5}],23:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-firefox\");\n\n},{\"./dist/is-firefox\":8}],24:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-safari\");\n\n},{\"./dist/is-ios-safari\":11}],25:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-webview\");\n\n},{\"./dist/is-ios-webview\":12}],26:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-wkwebview\");\n\n},{\"./dist/is-ios-wkwebview\":13}],27:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios\");\n\n},{\"./dist/is-ios\":14}],28:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-samsung\");\n\n},{\"./dist/is-samsung\":17}],29:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/supports-popups\");\n\n},{\"./dist/supports-popups\":19}],30:[function(_dereq_,module,exports){\n\"use strict\";\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n this._events = {};\n }\n EventEmitter.prototype.on = function (event, callback) {\n if (this._events[event]) {\n this._events[event].push(callback);\n }\n else {\n this._events[event] = [callback];\n }\n };\n EventEmitter.prototype.off = function (event, callback) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n var indexOfCallback = eventCallbacks.indexOf(callback);\n eventCallbacks.splice(indexOfCallback, 1);\n };\n EventEmitter.prototype._emit = function (event) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n eventCallbacks.forEach(function (callback) {\n callback.apply(void 0, args);\n });\n };\n EventEmitter.prototype.hasListener = function (event) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return false;\n }\n return eventCallbacks.length > 0;\n };\n EventEmitter.createChild = function (ChildObject) {\n ChildObject.prototype = Object.create(EventEmitter.prototype, {\n constructor: ChildObject,\n });\n };\n return EventEmitter;\n}());\nmodule.exports = EventEmitter;\n\n},{}],31:[function(_dereq_,module,exports){\n\"use strict\";\nvar GlobalPromise = (typeof Promise !== \"undefined\"\n ? Promise // eslint-disable-line no-undef\n : null);\nvar ExtendedPromise = /** @class */ (function () {\n function ExtendedPromise(options) {\n var _this = this;\n if (typeof options === \"function\") {\n this._promise = new ExtendedPromise.Promise(options);\n return;\n }\n this._promise = new ExtendedPromise.Promise(function (resolve, reject) {\n _this._resolveFunction = resolve;\n _this._rejectFunction = reject;\n });\n options = options || {};\n this._onResolve = options.onResolve || ExtendedPromise.defaultOnResolve;\n this._onReject = options.onReject || ExtendedPromise.defaultOnReject;\n if (ExtendedPromise.shouldCatchExceptions(options)) {\n this._promise.catch(function () {\n // prevents unhandled promise rejection warning\n // in the console for extended promises that\n // that catch the error in an asynchronous manner\n });\n }\n this._resetState();\n }\n ExtendedPromise.defaultOnResolve = function (result) {\n return ExtendedPromise.Promise.resolve(result);\n };\n ExtendedPromise.defaultOnReject = function (err) {\n return ExtendedPromise.Promise.reject(err);\n };\n ExtendedPromise.setPromise = function (PromiseClass) {\n ExtendedPromise.Promise = PromiseClass;\n };\n ExtendedPromise.shouldCatchExceptions = function (options) {\n if (options.hasOwnProperty(\"suppressUnhandledPromiseMessage\")) {\n return Boolean(options.suppressUnhandledPromiseMessage);\n }\n return Boolean(ExtendedPromise.suppressUnhandledPromiseMessage);\n };\n // start Promise methods documented in:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Methods\n ExtendedPromise.all = function (args) {\n return ExtendedPromise.Promise.all(args);\n };\n ExtendedPromise.allSettled = function (args) {\n return ExtendedPromise.Promise.allSettled(args);\n };\n ExtendedPromise.race = function (args) {\n return ExtendedPromise.Promise.race(args);\n };\n ExtendedPromise.reject = function (arg) {\n return ExtendedPromise.Promise.reject(arg);\n };\n ExtendedPromise.resolve = function (arg) {\n return ExtendedPromise.Promise.resolve(arg);\n };\n ExtendedPromise.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n ExtendedPromise.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n ExtendedPromise.prototype.resolve = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setResolved();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onResolve(arg);\n })\n .then(function (argForResolveFunction) {\n _this._resolveFunction(argForResolveFunction);\n })\n .catch(function (err) {\n _this._resetState();\n _this.reject(err);\n });\n return this;\n };\n ExtendedPromise.prototype.reject = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setRejected();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onReject(arg);\n })\n .then(function (result) {\n _this._setResolved();\n _this._resolveFunction(result);\n })\n .catch(function (err) {\n return _this._rejectFunction(err);\n });\n return this;\n };\n ExtendedPromise.prototype._resetState = function () {\n this.isFulfilled = false;\n this.isResolved = false;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setResolved = function () {\n this.isFulfilled = true;\n this.isResolved = true;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setRejected = function () {\n this.isFulfilled = true;\n this.isResolved = false;\n this.isRejected = true;\n };\n ExtendedPromise.Promise = GlobalPromise;\n return ExtendedPromise;\n}());\nmodule.exports = ExtendedPromise;\n\n},{}],32:[function(_dereq_,module,exports){\n\"use strict\";\nvar set_attributes_1 = _dereq_(\"./lib/set-attributes\");\nvar default_attributes_1 = _dereq_(\"./lib/default-attributes\");\nvar assign_1 = _dereq_(\"./lib/assign\");\nmodule.exports = function createFrame(options) {\n if (options === void 0) { options = {}; }\n var iframe = document.createElement(\"iframe\");\n var config = (0, assign_1.assign)({}, default_attributes_1.defaultAttributes, options);\n if (config.style && typeof config.style !== \"string\") {\n (0, assign_1.assign)(iframe.style, config.style);\n delete config.style;\n }\n (0, set_attributes_1.setAttributes)(iframe, config);\n if (!iframe.getAttribute(\"id\")) {\n iframe.id = iframe.name;\n }\n return iframe;\n};\n\n},{\"./lib/assign\":33,\"./lib/default-attributes\":34,\"./lib/set-attributes\":35}],33:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assign = void 0;\nfunction assign(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntarget) {\n var objs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objs[_i - 1] = arguments[_i];\n }\n objs.forEach(function (obj) {\n if (typeof obj !== \"object\") {\n return;\n }\n Object.keys(obj).forEach(function (key) {\n target[key] = obj[key];\n });\n });\n return target;\n}\nexports.assign = assign;\n\n},{}],34:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultAttributes = void 0;\nexports.defaultAttributes = {\n src: \"about:blank\",\n frameBorder: 0,\n allowtransparency: true,\n scrolling: \"no\",\n};\n\n},{}],35:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setAttributes = void 0;\nfunction setAttributes(element, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nattributes) {\n for (var key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n var value = attributes[key];\n if (value == null) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n }\n }\n}\nexports.setAttributes = setAttributes;\n\n},{}],36:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0;\n var v = c === \"x\" ? r : (r & 0x3) | 0x8;\n\n return v.toString(16);\n });\n}\n\nmodule.exports = uuid;\n\n},{}],37:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction deferred(fn) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n setTimeout(function () {\n try {\n fn.apply(void 0, args);\n }\n catch (err) {\n /* eslint-disable no-console */\n console.log(\"Error in callback function\");\n console.log(err);\n /* eslint-enable no-console */\n }\n }, 1);\n };\n}\nexports.deferred = deferred;\n\n},{}],38:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction once(fn) {\n var called = false;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n fn.apply(void 0, args);\n }\n };\n}\nexports.once = once;\n\n},{}],39:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable consistent-return */\nfunction promiseOrCallback(promise, callback) {\n if (!callback) {\n return promise;\n }\n promise.then(function (data) { return callback(null, data); }).catch(function (err) { return callback(err); });\n}\nexports.promiseOrCallback = promiseOrCallback;\n\n},{}],40:[function(_dereq_,module,exports){\n\"use strict\";\nvar deferred_1 = _dereq_(\"./lib/deferred\");\nvar once_1 = _dereq_(\"./lib/once\");\nvar promise_or_callback_1 = _dereq_(\"./lib/promise-or-callback\");\nfunction wrapPromise(fn) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback;\n var lastArg = args[args.length - 1];\n if (typeof lastArg === \"function\") {\n callback = args.pop();\n callback = once_1.once(deferred_1.deferred(callback));\n }\n // I know, I know, this looks bad. But it's a quirk of the library that\n // we need to allow passing the this context to the original function\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore: this has an implicit any\n return promise_or_callback_1.promiseOrCallback(fn.apply(this, args), callback); // eslint-disable-line no-invalid-this\n };\n}\nwrapPromise.wrapPrototype = function (target, options) {\n if (options === void 0) { options = {}; }\n var ignoreMethods = options.ignoreMethods || [];\n var includePrivateMethods = options.transformPrivateMethods === true;\n var methods = Object.getOwnPropertyNames(target.prototype).filter(function (method) {\n var isNotPrivateMethod;\n var isNonConstructorFunction = method !== \"constructor\" &&\n typeof target.prototype[method] === \"function\";\n var isNotAnIgnoredMethod = ignoreMethods.indexOf(method) === -1;\n if (includePrivateMethods) {\n isNotPrivateMethod = true;\n }\n else {\n isNotPrivateMethod = method.charAt(0) !== \"_\";\n }\n return (isNonConstructorFunction && isNotPrivateMethod && isNotAnIgnoredMethod);\n });\n methods.forEach(function (method) {\n var original = target.prototype[method];\n target.prototype[method] = wrapPromise(original);\n });\n return target;\n};\nmodule.exports = wrapPromise;\n\n},{\"./lib/deferred\":37,\"./lib/once\":38,\"./lib/promise-or-callback\":39}],41:[function(_dereq_,module,exports){\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.loadAxo = {}));\n})(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var dist = {};\n\n var scriptPromiseCache = {};\n function loadScript$1(options) {\n var scriptLoadPromise;\n var stringifiedOptions = JSON.stringify(options);\n if (!options.forceScriptReload) {\n scriptLoadPromise = scriptPromiseCache[stringifiedOptions];\n if (scriptLoadPromise) {\n return scriptLoadPromise;\n }\n }\n var script = document.createElement(\"script\");\n var attrs = options.dataAttributes || {};\n var container = options.container || document.head;\n script.src = options.src;\n script.id = options.id || \"\";\n script.async = true;\n if (options.type) {\n script.setAttribute(\"type\", \"\".concat(options.type));\n }\n if (options.crossorigin) {\n script.setAttribute(\"crossorigin\", \"\".concat(options.crossorigin));\n }\n Object.keys(attrs).forEach(function (key) {\n script.setAttribute(\"data-\".concat(key), \"\".concat(attrs[key]));\n });\n scriptLoadPromise = new Promise(function (resolve, reject) {\n script.addEventListener(\"load\", function () {\n resolve(script);\n });\n script.addEventListener(\"error\", function () {\n reject(new Error(\"\".concat(options.src, \" failed to load.\")));\n });\n script.addEventListener(\"abort\", function () {\n reject(new Error(\"\".concat(options.src, \" has aborted.\")));\n });\n container.appendChild(script);\n });\n scriptPromiseCache[stringifiedOptions] = scriptLoadPromise;\n return scriptLoadPromise;\n }\n loadScript$1.clearCache = function () {\n scriptPromiseCache = {};\n };\n var loadScript_1$1 = loadScript$1;\n\n var loadStylesheet$1 = function loadStylesheet(options) {\n var stylesheet = document.querySelector(\"link[href=\\\"\".concat(options.href, \"\\\"]\"));\n if (stylesheet) {\n return Promise.resolve(stylesheet);\n }\n stylesheet = document.createElement(\"link\");\n var container = options.container || document.head;\n stylesheet.setAttribute(\"rel\", \"stylesheet\");\n stylesheet.setAttribute(\"type\", \"text/css\");\n stylesheet.setAttribute(\"href\", options.href);\n stylesheet.setAttribute(\"id\", options.id);\n if (container.firstChild) {\n container.insertBefore(stylesheet, container.firstChild);\n }\n else {\n container.appendChild(stylesheet);\n }\n return Promise.resolve(stylesheet);\n };\n\n Object.defineProperty(dist, \"__esModule\", { value: true });\n dist.loadStylesheet = loadScript_1 = dist.loadScript = void 0;\n var loadScript = loadScript_1$1;\n var loadScript_1 = dist.loadScript = loadScript;\n var loadStylesheet = loadStylesheet$1;\n dist.loadStylesheet = loadStylesheet;\n\n var CDNX_PROD = \"https://www.paypalobjects.com\";\n var ASSET_NAME = {\n minified: \"axo.min\",\n unminified: \"axo\",\n };\n var FL_NAMESPACE = \"fastlane\";\n var ASSET_PATH = \"connect-boba\";\n var LOCALE_PATH = \"\".concat(ASSET_PATH, \"/locales/\");\n var constants = {\n AXO_ASSET_NAME: ASSET_NAME,\n AXO_ASSET_PATH: ASSET_PATH,\n LOCALE_PATH: LOCALE_PATH,\n CDNX_PROD: CDNX_PROD,\n };\n\n var AxoSupportedPlatforms = {\n BT: \"BT\",\n PPCP: \"PPCP\",\n };\n\n /**\n * Checks if the current environment is an AMD environment.\n *\n * @returns {boolean} True if the environment is AMD, false otherwise.\n */\n function isAmdEnv() {\n return typeof window.define === \"function\" && !!window.define.amd;\n }\n /**\n * Checks if the current environment is a RequireJS environment.\n *\n * @returns {boolean} True if the environment is RequireJS, false otherwise.\n */\n function isRequireJsEnv() {\n return (isAmdEnv() &&\n typeof window.requirejs === \"function\" &&\n typeof window.requirejs.config === \"function\");\n }\n\n /**\n * Safely loads BT modules by checking if the module already exists and verifying if versions mismatch\n *\n * @param loadConfig Configuration of BT Module to load\n * @param version version that should be passed from the client getVersion\n * @returns Promise\n * @returns Promise when BT module with same version already exists\n * @returns Promise.reject(err) when BT module already exists but versions mismatch or empty version passed in\n */\n function safeLoadBtModule(loadConfig, version, minified) {\n var _a, _b;\n if (minified === void 0) { minified = true; }\n return __awaiter(this, void 0, void 0, function () {\n var bt, existingVersion;\n return __generator(this, function (_c) {\n bt = getBraintree();\n if (bt && bt[loadConfig.module]) {\n if (version && ((_a = bt[loadConfig.module]) === null || _a === void 0 ? void 0 : _a.VERSION) !== version) {\n existingVersion = (_b = bt[loadConfig.module]) === null || _b === void 0 ? void 0 : _b.VERSION;\n throw new Error(\"\".concat(loadConfig.module, \" already loaded with version \").concat(existingVersion, \" cannot load version \").concat(version));\n }\n else {\n return [2 /*return*/, true];\n }\n }\n if (!version) {\n throw new Error(\"Attempted to load \".concat(loadConfig.module, \" without specifying version\"));\n }\n return [2 /*return*/, loadBtModule(loadConfig, version, minified)];\n });\n });\n }\n /**\n * Reads the version and to load the correct version of Bt module\n *\n * @param loadConfig Configuration of BT Module to load\n * @param version Bt module version\n * @returns Promise or\n */\n function loadBtModule(loadConfig, version, minified) {\n if (minified === void 0) { minified = true; }\n if (isAmdEnv()) {\n var module_1 = minified\n ? loadConfig.amdModule.minified\n : loadConfig.amdModule.unminified;\n return new Promise(function (resolve, reject) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.require([module_1], resolve, reject);\n });\n }\n var script = minified\n ? loadConfig.script.minified\n : loadConfig.script.unminified;\n return loadScript_1({\n id: \"\".concat(loadConfig.id, \"-\").concat(version),\n src: \"https://js.braintreegateway.com/web/\".concat(version, \"/js/\").concat(script),\n });\n }\n /**\n * Looks for the Braintree web sdk on the window object\n *\n * @returns Braintree web sdk\n */\n function getBraintree() {\n return window === null || window === void 0 ? void 0 : window.braintree;\n }\n\n var _a, _b;\n /**\n * Maps to the BT module namespace created on the window.braintree object\n */\n var BtModule = {\n Client: \"client\",\n HostedCardFields: \"hostedFields\",\n };\n var BT_NAMESPACE = \"braintree\";\n var BT_ASSET_NAME = (_a = {},\n _a[BtModule.Client] = \"client\",\n _a[BtModule.HostedCardFields] = \"hosted-fields\",\n _a);\n var btModulesLoadConfig = (_b = {},\n _b[BtModule.Client] = {\n id: \"client\",\n module: BtModule.Client,\n amdModule: {\n unminified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.Client]),\n minified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.Client], \".min\"),\n },\n script: {\n unminified: \"\".concat(BT_ASSET_NAME[BtModule.Client], \".js\"),\n minified: \"\".concat(BT_ASSET_NAME[BtModule.Client], \".min.js\"),\n },\n },\n _b[BtModule.HostedCardFields] = {\n id: \"hcf\",\n module: BtModule.HostedCardFields,\n amdModule: {\n unminified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.HostedCardFields]),\n minified: \"\".concat(BT_NAMESPACE, \"/\").concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".min\"),\n },\n script: {\n unminified: \"\".concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".js\"),\n minified: \"\".concat(BT_ASSET_NAME[BtModule.HostedCardFields], \".min.js\"),\n },\n },\n _b);\n\n /**\n * Loads accelerated checkout components.\n * @param options object with a minified parameter to determine if the script that is loaded should be minified or not (defaults to true if)\n * @returns an object with metadata with a localeUrl parameter to be read by AXO SDK\n */\n function loadAxo(options) {\n return __awaiter(this, void 0, void 0, function () {\n var btSdkVersion, minified, assetUrl, localeUrl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n performance.mark(\"pp_axo_sdk_init_invoked\");\n btSdkVersion = options.btSdkVersion, minified = options.minified;\n assetUrl = getAssetsUrl(options);\n localeUrl = getLocaleUrl(options);\n if (!(options.platform === AxoSupportedPlatforms.BT)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all([\n safeLoadBtModule(btModulesLoadConfig.hostedFields, btSdkVersion, minified),\n loadAXOScript(assetUrl, minified),\n ])];\n case 1:\n _a.sent();\n return [3 /*break*/, 5];\n case 2:\n if (!(options.platform === AxoSupportedPlatforms.PPCP)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all([\n safeLoadBtModule(btModulesLoadConfig.client, btSdkVersion, minified),\n safeLoadBtModule(btModulesLoadConfig.hostedFields, btSdkVersion, minified),\n loadAXOScript(assetUrl, minified),\n ])];\n case 3:\n _a.sent();\n return [3 /*break*/, 5];\n case 4: throw new Error(\"unsupported axo platform\");\n case 5: return [2 /*return*/, { metadata: { localeUrl: localeUrl } }];\n }\n });\n });\n }\n /**\n * Reads the url and to load the axo bundle script\n * @param url (Required) string url for the correct axo asset\n * @returns Promise\n */\n function loadAXOScript(url, minified) {\n var _a;\n if (minified === void 0) { minified = true; }\n if (isAmdEnv()) {\n // AMD environment\n if (isRequireJsEnv()) {\n // Let's configure RequireJS\n requirejs.config({\n paths: (_a = {},\n _a[FL_NAMESPACE] = url,\n _a),\n });\n }\n var moduleName_1 = \"\".concat(FL_NAMESPACE, \"/\").concat(minified\n ? constants.AXO_ASSET_NAME.minified\n : constants.AXO_ASSET_NAME.unminified);\n return new Promise(function (resolve, reject) {\n window.require([moduleName_1], resolve, reject);\n });\n }\n // Not an AMD environment\n return loadScript_1({\n id: \"axo-id\",\n src: url,\n forceScriptReload: true,\n });\n }\n /**\n * Prepends the domain to the asset url\n * @param options object with assetUrl and bundleid parameters to determine which URL to return\n * @returns full domain and assets URL as string\n */\n function generateAssetUrl(_a) {\n var assetUrl = _a.assetUrl, bundleId = _a.bundleId;\n return bundleId\n ? \"https://cdn-\".concat(bundleId, \".static.engineering.dev.paypalinc.com/\").concat(assetUrl)\n : \"\".concat(constants.CDNX_PROD, \"/\").concat(assetUrl);\n }\n /**\n * Retrieves either the minified or unminified assets URL as specified\n * @param options (Optional) object with a minified and metadata with bundleIdOverride parameters to determine which URL to return\n * @returns assets URL as string\n */\n function getAssetsUrl(options) {\n var _a;\n var assetName = (options === null || options === void 0 ? void 0 : options.minified) !== false\n ? constants.AXO_ASSET_NAME.minified\n : constants.AXO_ASSET_NAME.unminified;\n var assetUrl = isAmdEnv()\n ? constants.AXO_ASSET_PATH\n : \"\".concat(constants.AXO_ASSET_PATH, \"/\").concat(assetName, \".js\");\n return generateAssetUrl({\n assetUrl: assetUrl,\n bundleId: (_a = options === null || options === void 0 ? void 0 : options.metadata) === null || _a === void 0 ? void 0 : _a.bundleIdOverride,\n });\n }\n /**\n * Retrieves the Locales URL, the path to our language files\n * @param options (Optional) object with a minified and metadata with bundleIdOverride parameters to determine which URL to return\n * @returns locale URL as string\n */\n function getLocaleUrl(options) {\n var _a;\n return generateAssetUrl({\n assetUrl: constants.LOCALE_PATH,\n bundleId: (_a = options === null || options === void 0 ? void 0 : options.metadata) === null || _a === void 0 ? void 0 : _a.bundleIdOverride,\n });\n }\n\n exports.constants = constants;\n exports.loadAxo = loadAxo;\n\n}));\n\n},{}],42:[function(_dereq_,module,exports){\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar cardTypes = _dereq_(\"./lib/card-types\");\nvar add_matching_cards_to_results_1 = _dereq_(\"./lib/add-matching-cards-to-results\");\nvar is_valid_input_type_1 = _dereq_(\"./lib/is-valid-input-type\");\nvar find_best_match_1 = _dereq_(\"./lib/find-best-match\");\nvar clone_1 = _dereq_(\"./lib/clone\");\nvar customCards = {};\nvar cardNames = {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n AMERICAN_EXPRESS: \"american-express\",\n DINERS_CLUB: \"diners-club\",\n DISCOVER: \"discover\",\n JCB: \"jcb\",\n UNIONPAY: \"unionpay\",\n MAESTRO: \"maestro\",\n ELO: \"elo\",\n MIR: \"mir\",\n HIPER: \"hiper\",\n HIPERCARD: \"hipercard\",\n};\nvar ORIGINAL_TEST_ORDER = [\n cardNames.VISA,\n cardNames.MASTERCARD,\n cardNames.AMERICAN_EXPRESS,\n cardNames.DINERS_CLUB,\n cardNames.DISCOVER,\n cardNames.JCB,\n cardNames.UNIONPAY,\n cardNames.MAESTRO,\n cardNames.ELO,\n cardNames.MIR,\n cardNames.HIPER,\n cardNames.HIPERCARD,\n];\nvar testOrder = (0, clone_1.clone)(ORIGINAL_TEST_ORDER);\nfunction findType(cardType) {\n return customCards[cardType] || cardTypes[cardType];\n}\nfunction getAllCardTypes() {\n return testOrder.map(function (cardType) { return (0, clone_1.clone)(findType(cardType)); });\n}\nfunction getCardPosition(name, ignoreErrorForNotExisting) {\n if (ignoreErrorForNotExisting === void 0) { ignoreErrorForNotExisting = false; }\n var position = testOrder.indexOf(name);\n if (!ignoreErrorForNotExisting && position === -1) {\n throw new Error('\"' + name + '\" is not a supported card type.');\n }\n return position;\n}\nfunction creditCardType(cardNumber) {\n var results = [];\n if (!(0, is_valid_input_type_1.isValidInputType)(cardNumber)) {\n return results;\n }\n if (cardNumber.length === 0) {\n return getAllCardTypes();\n }\n testOrder.forEach(function (cardType) {\n var cardConfiguration = findType(cardType);\n (0, add_matching_cards_to_results_1.addMatchingCardsToResults)(cardNumber, cardConfiguration, results);\n });\n var bestMatch = (0, find_best_match_1.findBestMatch)(results);\n if (bestMatch) {\n return [bestMatch];\n }\n return results;\n}\ncreditCardType.getTypeInfo = function (cardType) {\n return (0, clone_1.clone)(findType(cardType));\n};\ncreditCardType.removeCard = function (name) {\n var position = getCardPosition(name);\n testOrder.splice(position, 1);\n};\ncreditCardType.addCard = function (config) {\n var existingCardPosition = getCardPosition(config.type, true);\n customCards[config.type] = config;\n if (existingCardPosition === -1) {\n testOrder.push(config.type);\n }\n};\ncreditCardType.updateCard = function (cardType, updates) {\n var originalObject = customCards[cardType] || cardTypes[cardType];\n if (!originalObject) {\n throw new Error(\"\\\"\".concat(cardType, \"\\\" is not a recognized type. Use `addCard` instead.'\"));\n }\n if (updates.type && originalObject.type !== updates.type) {\n throw new Error(\"Cannot overwrite type parameter.\");\n }\n var clonedCard = (0, clone_1.clone)(originalObject);\n clonedCard = __assign(__assign({}, clonedCard), updates);\n customCards[clonedCard.type] = clonedCard;\n};\ncreditCardType.changeOrder = function (name, position) {\n var currentPosition = getCardPosition(name);\n testOrder.splice(currentPosition, 1);\n testOrder.splice(position, 0, name);\n};\ncreditCardType.resetModifications = function () {\n testOrder = (0, clone_1.clone)(ORIGINAL_TEST_ORDER);\n customCards = {};\n};\ncreditCardType.types = cardNames;\nmodule.exports = creditCardType;\n\n},{\"./lib/add-matching-cards-to-results\":43,\"./lib/card-types\":44,\"./lib/clone\":45,\"./lib/find-best-match\":46,\"./lib/is-valid-input-type\":47}],43:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMatchingCardsToResults = void 0;\nvar clone_1 = _dereq_(\"./clone\");\nvar matches_1 = _dereq_(\"./matches\");\nfunction addMatchingCardsToResults(cardNumber, cardConfiguration, results) {\n var i, patternLength;\n for (i = 0; i < cardConfiguration.patterns.length; i++) {\n var pattern = cardConfiguration.patterns[i];\n if (!(0, matches_1.matches)(cardNumber, pattern)) {\n continue;\n }\n var clonedCardConfiguration = (0, clone_1.clone)(cardConfiguration);\n if (Array.isArray(pattern)) {\n patternLength = String(pattern[0]).length;\n }\n else {\n patternLength = String(pattern).length;\n }\n if (cardNumber.length >= patternLength) {\n clonedCardConfiguration.matchStrength = patternLength;\n }\n results.push(clonedCardConfiguration);\n break;\n }\n}\nexports.addMatchingCardsToResults = addMatchingCardsToResults;\n\n},{\"./clone\":45,\"./matches\":48}],44:[function(_dereq_,module,exports){\n\"use strict\";\nvar cardTypes = {\n visa: {\n niceType: \"Visa\",\n type: \"visa\",\n patterns: [4],\n gaps: [4, 8, 12],\n lengths: [16, 18, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n mastercard: {\n niceType: \"Mastercard\",\n type: \"mastercard\",\n patterns: [[51, 55], [2221, 2229], [223, 229], [23, 26], [270, 271], 2720],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n \"american-express\": {\n niceType: \"American Express\",\n type: \"american-express\",\n patterns: [34, 37],\n gaps: [4, 10],\n lengths: [15],\n code: {\n name: \"CID\",\n size: 4,\n },\n },\n \"diners-club\": {\n niceType: \"Diners Club\",\n type: \"diners-club\",\n patterns: [[300, 305], 36, 38, 39],\n gaps: [4, 10],\n lengths: [14, 16, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n discover: {\n niceType: \"Discover\",\n type: \"discover\",\n patterns: [6011, [644, 649], 65],\n gaps: [4, 8, 12],\n lengths: [16, 19],\n code: {\n name: \"CID\",\n size: 3,\n },\n },\n jcb: {\n niceType: \"JCB\",\n type: \"jcb\",\n patterns: [2131, 1800, [3528, 3589]],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n unionpay: {\n niceType: \"UnionPay\",\n type: \"unionpay\",\n patterns: [\n 620,\n [62100, 62182],\n [62184, 62187],\n [62185, 62197],\n [62200, 62205],\n [622010, 622999],\n 622018,\n [62207, 62209],\n [623, 626],\n 6270,\n 6272,\n 6276,\n [627700, 627779],\n [627781, 627799],\n [6282, 6289],\n 6291,\n 6292,\n 810,\n [8110, 8131],\n [8132, 8151],\n [8152, 8163],\n [8164, 8171],\n ],\n gaps: [4, 8, 12],\n lengths: [14, 15, 16, 17, 18, 19],\n code: {\n name: \"CVN\",\n size: 3,\n },\n },\n maestro: {\n niceType: \"Maestro\",\n type: \"maestro\",\n patterns: [\n 493698,\n [500000, 504174],\n [504176, 506698],\n [506779, 508999],\n [56, 59],\n 63,\n 67,\n 6,\n ],\n gaps: [4, 8, 12],\n lengths: [12, 13, 14, 15, 16, 17, 18, 19],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n elo: {\n niceType: \"Elo\",\n type: \"elo\",\n patterns: [\n 401178,\n 401179,\n 438935,\n 457631,\n 457632,\n 431274,\n 451416,\n 457393,\n 504175,\n [506699, 506778],\n [509000, 509999],\n 627780,\n 636297,\n 636368,\n [650031, 650033],\n [650035, 650051],\n [650405, 650439],\n [650485, 650538],\n [650541, 650598],\n [650700, 650718],\n [650720, 650727],\n [650901, 650978],\n [651652, 651679],\n [655000, 655019],\n [655021, 655058],\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVE\",\n size: 3,\n },\n },\n mir: {\n niceType: \"Mir\",\n type: \"mir\",\n patterns: [[2200, 2204]],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: \"CVP2\",\n size: 3,\n },\n },\n hiper: {\n niceType: \"Hiper\",\n type: \"hiper\",\n patterns: [637095, 63737423, 63743358, 637568, 637599, 637609, 637612],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n hipercard: {\n niceType: \"Hipercard\",\n type: \"hipercard\",\n patterns: [606282],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n};\nmodule.exports = cardTypes;\n\n},{}],45:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\nfunction clone(originalObject) {\n if (!originalObject) {\n return null;\n }\n return JSON.parse(JSON.stringify(originalObject));\n}\nexports.clone = clone;\n\n},{}],46:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findBestMatch = void 0;\nfunction hasEnoughResultsToDetermineBestMatch(results) {\n var numberOfResultsWithMaxStrengthProperty = results.filter(function (result) { return result.matchStrength; }).length;\n /*\n * if all possible results have a maxStrength property that means the card\n * number is sufficiently long enough to determine conclusively what the card\n * type is\n * */\n return (numberOfResultsWithMaxStrengthProperty > 0 &&\n numberOfResultsWithMaxStrengthProperty === results.length);\n}\nfunction findBestMatch(results) {\n if (!hasEnoughResultsToDetermineBestMatch(results)) {\n return null;\n }\n return results.reduce(function (bestMatch, result) {\n if (!bestMatch) {\n return result;\n }\n /*\n * If the current best match pattern is less specific than this result, set\n * the result as the new best match\n * */\n if (Number(bestMatch.matchStrength) < Number(result.matchStrength)) {\n return result;\n }\n return bestMatch;\n });\n}\nexports.findBestMatch = findBestMatch;\n\n},{}],47:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidInputType = void 0;\nfunction isValidInputType(cardNumber) {\n return typeof cardNumber === \"string\" || cardNumber instanceof String;\n}\nexports.isValidInputType = isValidInputType;\n\n},{}],48:[function(_dereq_,module,exports){\n\"use strict\";\n/*\n * Adapted from https://github.com/polvo-labs/card-type/blob/aaab11f80fa1939bccc8f24905a06ae3cd864356/src/cardType.js#L37-L42\n * */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matches = void 0;\nfunction matchesRange(cardNumber, min, max) {\n var maxLengthToCheck = String(min).length;\n var substr = cardNumber.substr(0, maxLengthToCheck);\n var integerRepresentationOfCardNumber = parseInt(substr, 10);\n min = parseInt(String(min).substr(0, substr.length), 10);\n max = parseInt(String(max).substr(0, substr.length), 10);\n return (integerRepresentationOfCardNumber >= min &&\n integerRepresentationOfCardNumber <= max);\n}\nfunction matchesPattern(cardNumber, pattern) {\n pattern = String(pattern);\n return (pattern.substring(0, cardNumber.length) ===\n cardNumber.substring(0, pattern.length));\n}\nfunction matches(cardNumber, pattern) {\n if (Array.isArray(pattern)) {\n return matchesRange(cardNumber, pattern[0], pattern[1]);\n }\n return matchesPattern(cardNumber, pattern);\n}\nexports.matches = matches;\n\n},{}],49:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Framebus = void 0;\nvar lib_1 = _dereq_(\"./lib\");\nvar DefaultPromise = (typeof window !== \"undefined\" &&\n window.Promise);\nvar Framebus = /** @class */ (function () {\n function Framebus(options) {\n if (options === void 0) { options = {}; }\n this.origin = options.origin || \"*\";\n this.channel = options.channel || \"\";\n this.verifyDomain = options.verifyDomain;\n // if a targetFrames configuration is not passed in,\n // the default behavior is to broadcast the payload\n // to the top level window or to the frame itself.\n // By default, the broadcast function will loop through\n // all the known siblings and children of the window.\n // If a targetFrames array is passed, it will instead\n // only broadcast to those specified targetFrames\n this.targetFrames = options.targetFrames || [];\n this.limitBroadcastToFramesArray = Boolean(options.targetFrames);\n this.isDestroyed = false;\n this.listeners = [];\n this.hasAdditionalChecksForOnListeners = Boolean(this.verifyDomain || this.limitBroadcastToFramesArray);\n }\n Framebus.setPromise = function (PromiseGlobal) {\n Framebus.Promise = PromiseGlobal;\n };\n Framebus.target = function (options) {\n return new Framebus(options);\n };\n Framebus.prototype.addTargetFrame = function (frame) {\n if (!this.limitBroadcastToFramesArray) {\n return;\n }\n this.targetFrames.push(frame);\n };\n Framebus.prototype.include = function (childWindow) {\n if (childWindow == null) {\n return false;\n }\n if (childWindow.Window == null) {\n return false;\n }\n if (childWindow.constructor !== childWindow.Window) {\n return false;\n }\n lib_1.childWindows.push(childWindow);\n return true;\n };\n Framebus.prototype.target = function (options) {\n return Framebus.target(options);\n };\n Framebus.prototype.emit = function (eventName, data, reply) {\n if (this.isDestroyed) {\n return false;\n }\n var origin = this.origin;\n eventName = this.namespaceEvent(eventName);\n if ((0, lib_1.isntString)(eventName)) {\n return false;\n }\n if ((0, lib_1.isntString)(origin)) {\n return false;\n }\n if (typeof data === \"function\") {\n reply = data;\n data = undefined; // eslint-disable-line no-undefined\n }\n var payload = (0, lib_1.packagePayload)(eventName, origin, data, reply);\n if (!payload) {\n return false;\n }\n if (this.limitBroadcastToFramesArray) {\n this.targetFramesAsWindows().forEach(function (frame) {\n (0, lib_1.sendMessage)(frame, payload, origin);\n });\n }\n else {\n (0, lib_1.broadcast)(payload, {\n origin: origin,\n frame: window.top || window.self,\n });\n }\n return true;\n };\n Framebus.prototype.emitAsPromise = function (eventName, data) {\n var _this = this;\n return new Framebus.Promise(function (resolve, reject) {\n var didAttachListener = _this.emit(eventName, data, function (payload) {\n resolve(payload);\n });\n if (!didAttachListener) {\n reject(new Error(\"Listener not added for \\\"\".concat(eventName, \"\\\"\")));\n }\n });\n };\n Framebus.prototype.on = function (eventName, originalHandler) {\n if (this.isDestroyed) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var origin = this.origin;\n var handler = originalHandler;\n eventName = this.namespaceEvent(eventName);\n if ((0, lib_1.subscriptionArgsInvalid)(eventName, handler, origin)) {\n return false;\n }\n if (this.hasAdditionalChecksForOnListeners) {\n /* eslint-disable no-invalid-this, @typescript-eslint/ban-ts-comment */\n handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // @ts-ignore\n if (!self.passesVerifyDomainCheck(this && this.origin)) {\n return;\n }\n // @ts-ignore\n if (!self.hasMatchingTargetFrame(this && this.source)) {\n return;\n }\n originalHandler.apply(void 0, args);\n };\n /* eslint-enable no-invalid-this, @typescript-eslint/ban-ts-comment */\n }\n this.listeners.push({\n eventName: eventName,\n handler: handler,\n originalHandler: originalHandler,\n });\n lib_1.subscribers[origin] = lib_1.subscribers[origin] || {};\n lib_1.subscribers[origin][eventName] = lib_1.subscribers[origin][eventName] || [];\n lib_1.subscribers[origin][eventName].push(handler);\n return true;\n };\n Framebus.prototype.off = function (eventName, originalHandler) {\n var handler = originalHandler;\n if (this.isDestroyed) {\n return false;\n }\n if (this.hasAdditionalChecksForOnListeners) {\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n if (listener.originalHandler === originalHandler) {\n handler = listener.handler;\n }\n }\n }\n eventName = this.namespaceEvent(eventName);\n var origin = this.origin;\n if ((0, lib_1.subscriptionArgsInvalid)(eventName, handler, origin)) {\n return false;\n }\n var subscriberList = lib_1.subscribers[origin] && lib_1.subscribers[origin][eventName];\n if (!subscriberList) {\n return false;\n }\n for (var i = 0; i < subscriberList.length; i++) {\n if (subscriberList[i] === handler) {\n subscriberList.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Framebus.prototype.teardown = function () {\n if (this.isDestroyed) {\n return;\n }\n this.isDestroyed = true;\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n this.off(listener.eventName, listener.handler);\n }\n this.listeners.length = 0;\n };\n Framebus.prototype.passesVerifyDomainCheck = function (origin) {\n if (!this.verifyDomain) {\n // always pass this check if no verifyDomain option was set\n return true;\n }\n return this.checkOrigin(origin);\n };\n Framebus.prototype.targetFramesAsWindows = function () {\n if (!this.limitBroadcastToFramesArray) {\n return [];\n }\n return this.targetFrames\n .map(function (frame) {\n // we can't pull off the contentWindow\n // when the iframe is originally added\n // to the array, because if it is not\n // in the DOM at that time, it will have\n // a contentWindow of `null`\n if (frame instanceof HTMLIFrameElement) {\n return frame.contentWindow;\n }\n return frame;\n })\n .filter(function (win) {\n // just in case an iframe element\n // was removed from the DOM\n // and the contentWindow property\n // is null\n return win;\n });\n };\n Framebus.prototype.hasMatchingTargetFrame = function (source) {\n if (!this.limitBroadcastToFramesArray) {\n // always pass this check if we aren't limiting to the target frames\n return true;\n }\n var matchingFrame = this.targetFramesAsWindows().find(function (frame) {\n return frame === source;\n });\n return Boolean(matchingFrame);\n };\n Framebus.prototype.checkOrigin = function (postMessageOrigin) {\n var merchantHost;\n var a = document.createElement(\"a\");\n a.href = location.href;\n if (a.protocol === \"https:\") {\n merchantHost = a.host.replace(/:443$/, \"\");\n }\n else if (a.protocol === \"http:\") {\n merchantHost = a.host.replace(/:80$/, \"\");\n }\n else {\n merchantHost = a.host;\n }\n var merchantOrigin = a.protocol + \"//\" + merchantHost;\n if (merchantOrigin === postMessageOrigin) {\n return true;\n }\n if (this.verifyDomain) {\n return this.verifyDomain(postMessageOrigin);\n }\n return true;\n };\n Framebus.prototype.namespaceEvent = function (eventName) {\n if (!this.channel) {\n return eventName;\n }\n return \"\".concat(this.channel, \":\").concat(eventName);\n };\n Framebus.Promise = DefaultPromise;\n return Framebus;\n}());\nexports.Framebus = Framebus;\n\n},{\"./lib\":57}],50:[function(_dereq_,module,exports){\n\"use strict\";\nvar lib_1 = _dereq_(\"./lib\");\nvar framebus_1 = _dereq_(\"./framebus\");\n(0, lib_1.attach)();\nmodule.exports = framebus_1.Framebus;\n\n},{\"./framebus\":49,\"./lib\":57}],51:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detach = exports.attach = void 0;\nvar _1 = _dereq_(\"./\");\nvar isAttached = false;\nfunction attach() {\n if (isAttached || typeof window === \"undefined\") {\n return;\n }\n isAttached = true;\n window.addEventListener(\"message\", _1.onMessage, false);\n}\nexports.attach = attach;\n// removeIf(production)\nfunction detach() {\n isAttached = false;\n window.removeEventListener(\"message\", _1.onMessage, false);\n}\nexports.detach = detach;\n// endRemoveIf(production)\n\n},{\"./\":57}],52:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.broadcastToChildWindows = void 0;\nvar _1 = _dereq_(\"./\");\nfunction broadcastToChildWindows(payload, origin, source) {\n for (var i = _1.childWindows.length - 1; i >= 0; i--) {\n var childWindow = _1.childWindows[i];\n if (childWindow.closed) {\n _1.childWindows.splice(i, 1);\n }\n else if (source !== childWindow) {\n (0, _1.broadcast)(payload, {\n origin: origin,\n frame: childWindow.top,\n });\n }\n }\n}\nexports.broadcastToChildWindows = broadcastToChildWindows;\n\n},{\"./\":57}],53:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.broadcast = void 0;\nvar _1 = _dereq_(\"./\");\nfunction broadcast(payload, options) {\n var i = 0;\n var frameToBroadcastTo;\n var origin = options.origin, frame = options.frame;\n try {\n frame.postMessage(payload, origin);\n if ((0, _1.hasOpener)(frame) && frame.opener.top !== window.top) {\n broadcast(payload, {\n origin: origin,\n frame: frame.opener.top,\n });\n }\n // previously, our max value was frame.frames.length\n // but frames.length inherits from window.length\n // which can be overwritten if a developer does\n // `var length = value;` outside of a function\n // scope, it'll prevent us from looping through\n // all the frames. With this, we loop through\n // until there are no longer any frames\n // eslint-disable-next-line no-cond-assign\n while ((frameToBroadcastTo = frame.frames[i])) {\n broadcast(payload, {\n origin: origin,\n frame: frameToBroadcastTo,\n });\n i++;\n }\n }\n catch (_) {\n /* ignored */\n }\n}\nexports.broadcast = broadcast;\n\n},{\"./\":57}],54:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribers = exports.childWindows = exports.prefix = void 0;\nexports.prefix = \"/*framebus*/\";\nexports.childWindows = [];\nexports.subscribers = {};\n\n},{}],55:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatch = void 0;\nvar _1 = _dereq_(\"./\");\nfunction dispatch(origin, event, data, reply, e) {\n if (!_1.subscribers[origin]) {\n return;\n }\n if (!_1.subscribers[origin][event]) {\n return;\n }\n var args = [];\n if (data) {\n args.push(data);\n }\n if (reply) {\n args.push(reply);\n }\n for (var i = 0; i < _1.subscribers[origin][event].length; i++) {\n _1.subscribers[origin][event][i].apply(e, args);\n }\n}\nexports.dispatch = dispatch;\n\n},{\"./\":57}],56:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasOpener = void 0;\nfunction hasOpener(frame) {\n if (frame.top !== frame) {\n return false;\n }\n if (frame.opener == null) {\n return false;\n }\n if (frame.opener === frame) {\n return false;\n }\n if (frame.opener.closed === true) {\n return false;\n }\n return true;\n}\nexports.hasOpener = hasOpener;\n\n},{}],57:[function(_dereq_,module,exports){\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(_dereq_(\"./attach\"), exports);\n__exportStar(_dereq_(\"./broadcast-to-child-windows\"), exports);\n__exportStar(_dereq_(\"./broadcast\"), exports);\n__exportStar(_dereq_(\"./constants\"), exports);\n__exportStar(_dereq_(\"./dispatch\"), exports);\n__exportStar(_dereq_(\"./has-opener\"), exports);\n__exportStar(_dereq_(\"./is-not-string\"), exports);\n__exportStar(_dereq_(\"./message\"), exports);\n__exportStar(_dereq_(\"./package-payload\"), exports);\n__exportStar(_dereq_(\"./send-message\"), exports);\n__exportStar(_dereq_(\"./subscribe-replier\"), exports);\n__exportStar(_dereq_(\"./subscription-args-invalid\"), exports);\n__exportStar(_dereq_(\"./types\"), exports);\n__exportStar(_dereq_(\"./unpack-payload\"), exports);\n\n},{\"./attach\":51,\"./broadcast\":53,\"./broadcast-to-child-windows\":52,\"./constants\":54,\"./dispatch\":55,\"./has-opener\":56,\"./is-not-string\":58,\"./message\":59,\"./package-payload\":60,\"./send-message\":61,\"./subscribe-replier\":62,\"./subscription-args-invalid\":63,\"./types\":64,\"./unpack-payload\":65}],58:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isntString = void 0;\nfunction isntString(str) {\n return typeof str !== \"string\";\n}\nexports.isntString = isntString;\n\n},{}],59:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onMessage = void 0;\nvar _1 = _dereq_(\"./\");\nfunction onMessage(e) {\n if ((0, _1.isntString)(e.data)) {\n return;\n }\n var payload = (0, _1.unpackPayload)(e);\n if (!payload) {\n return;\n }\n var data = payload.eventData;\n var reply = payload.reply;\n (0, _1.dispatch)(\"*\", payload.event, data, reply, e);\n (0, _1.dispatch)(e.origin, payload.event, data, reply, e);\n (0, _1.broadcastToChildWindows)(e.data, payload.origin, e.source);\n}\nexports.onMessage = onMessage;\n\n},{\"./\":57}],60:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.packagePayload = void 0;\nvar _1 = _dereq_(\"./\");\nfunction packagePayload(event, origin, data, reply) {\n var packaged;\n var payload = {\n event: event,\n origin: origin,\n };\n if (typeof reply === \"function\") {\n payload.reply = (0, _1.subscribeReplier)(reply, origin);\n }\n payload.eventData = data;\n try {\n packaged = _1.prefix + JSON.stringify(payload);\n }\n catch (e) {\n throw new Error(\"Could not stringify event: \".concat(e.message));\n }\n return packaged;\n}\nexports.packagePayload = packagePayload;\n\n},{\"./\":57}],61:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sendMessage = void 0;\n/**\n * A basic function for wrapping the sending of postMessages to frames.\n */\nfunction sendMessage(frame, payload, origin) {\n try {\n frame.postMessage(payload, origin);\n }\n catch (error) {\n /* ignored */\n }\n}\nexports.sendMessage = sendMessage;\n\n},{}],62:[function(_dereq_,module,exports){\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribeReplier = void 0;\nvar framebus_1 = _dereq_(\"../framebus\");\nvar uuid_1 = __importDefault(_dereq_(\"@braintree/uuid\"));\nfunction subscribeReplier(fn, origin) {\n var uuid = (0, uuid_1.default)();\n function replier(data, replyOriginHandler) {\n fn(data, replyOriginHandler);\n framebus_1.Framebus.target({\n origin: origin,\n }).off(uuid, replier);\n }\n framebus_1.Framebus.target({\n origin: origin,\n }).on(uuid, replier);\n return uuid;\n}\nexports.subscribeReplier = subscribeReplier;\n\n},{\"../framebus\":49,\"@braintree/uuid\":36}],63:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscriptionArgsInvalid = void 0;\nvar _1 = _dereq_(\"./\");\nfunction subscriptionArgsInvalid(event, fn, origin) {\n if ((0, _1.isntString)(event)) {\n return true;\n }\n if (typeof fn !== \"function\") {\n return true;\n }\n return (0, _1.isntString)(origin);\n}\nexports.subscriptionArgsInvalid = subscriptionArgsInvalid;\n\n},{\"./\":57}],64:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n},{}],65:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unpackPayload = void 0;\nvar _1 = _dereq_(\"./\");\nfunction unpackPayload(e) {\n var payload;\n if (e.data.slice(0, _1.prefix.length) !== _1.prefix) {\n return false;\n }\n try {\n payload = JSON.parse(e.data.slice(_1.prefix.length));\n }\n catch (err) {\n return false;\n }\n if (payload.reply) {\n var replyOrigin_1 = e.origin;\n var replySource_1 = e.source;\n var replyEvent_1 = payload.reply;\n payload.reply = function reply(replyData) {\n if (!replySource_1) {\n return;\n }\n var replyPayload = (0, _1.packagePayload)(replyEvent_1, replyOrigin_1, replyData);\n if (!replyPayload) {\n return;\n }\n replySource_1.postMessage(replyPayload, replyOrigin_1);\n };\n }\n return payload;\n}\nexports.unpackPayload = unpackPayload;\n\n},{\"./\":57}],66:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIos = exports.isIE9 = exports.isSamsungBrowser = exports.isAndroidChrome = exports.isKitKatWebview = void 0;\n// server side rendering check\nvar UA = (typeof window !== \"undefined\" &&\n window.navigator &&\n window.navigator.userAgent);\n// TODO remove this when browser detection is converted to typescript\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore\nvar isAndroid = _dereq_(\"@braintree/browser-detection/is-android\");\n// @ts-ignore\nvar isChromeOs = _dereq_(\"@braintree/browser-detection/is-chrome-os\");\n// @ts-ignore\nvar isChrome = _dereq_(\"@braintree/browser-detection/is-chrome\");\n// @ts-ignore\nvar isIos = _dereq_(\"@braintree/browser-detection/is-ios\");\nexports.isIos = isIos;\n// @ts-ignore\nvar isIE9 = _dereq_(\"@braintree/browser-detection/is-ie9\");\nexports.isIE9 = isIE9;\n/* eslint-enable @typescript-eslint/ban-ts-comment */\n// Old Android Webviews used specific versions of Chrome with 0.0.0 as their version suffix\n// https://developer.chrome.com/multidevice/user-agent#webview_user_agent\nvar KITKAT_WEBVIEW_REGEX = /Version\\/\\d\\.\\d* Chrome\\/\\d*\\.0\\.0\\.0/;\nfunction isOldSamsungBrowserOrSamsungWebview(ua) {\n return !isChrome(ua) && ua.indexOf(\"Samsung\") > -1;\n}\nfunction isKitKatWebview(ua) {\n if (ua === void 0) { ua = UA; }\n return isAndroid(ua) && KITKAT_WEBVIEW_REGEX.test(ua);\n}\nexports.isKitKatWebview = isKitKatWebview;\nfunction isAndroidChrome(ua) {\n if (ua === void 0) { ua = UA; }\n return (isAndroid(ua) || isChromeOs(ua)) && isChrome(ua);\n}\nexports.isAndroidChrome = isAndroidChrome;\nfunction isSamsungBrowser(ua) {\n if (ua === void 0) { ua = UA; }\n return /SamsungBrowser/.test(ua) || isOldSamsungBrowserOrSamsungWebview(ua);\n}\nexports.isSamsungBrowser = isSamsungBrowser;\n\n},{\"@braintree/browser-detection/is-android\":79,\"@braintree/browser-detection/is-chrome\":81,\"@braintree/browser-detection/is-chrome-os\":80,\"@braintree/browser-detection/is-ie9\":82,\"@braintree/browser-detection/is-ios\":83}],67:[function(_dereq_,module,exports){\n\"use strict\";\nvar device_1 = _dereq_(\"./lib/device\");\nmodule.exports = function supportsInputFormatting() {\n // Digits get dropped in samsung browser\n return !(0, device_1.isSamsungBrowser)();\n};\n\n},{\"./lib/device\":66}],68:[function(_dereq_,module,exports){\narguments[4][3][0].apply(exports,arguments)\n},{\"dup\":3}],69:[function(_dereq_,module,exports){\narguments[4][4][0].apply(exports,arguments)\n},{\"dup\":4}],70:[function(_dereq_,module,exports){\narguments[4][5][0].apply(exports,arguments)\n},{\"./is-duckduckgo\":71,\"./is-edge\":72,\"./is-opera\":76,\"./is-samsung\":77,\"./is-silk\":78,\"dup\":5}],71:[function(_dereq_,module,exports){\narguments[4][6][0].apply(exports,arguments)\n},{\"dup\":6}],72:[function(_dereq_,module,exports){\narguments[4][7][0].apply(exports,arguments)\n},{\"dup\":7}],73:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isIe9(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"MSIE 9\") !== -1;\n};\n\n},{}],74:[function(_dereq_,module,exports){\narguments[4][14][0].apply(exports,arguments)\n},{\"./is-ipados\":75,\"dup\":14}],75:[function(_dereq_,module,exports){\narguments[4][15][0].apply(exports,arguments)\n},{\"dup\":15}],76:[function(_dereq_,module,exports){\narguments[4][16][0].apply(exports,arguments)\n},{\"dup\":16}],77:[function(_dereq_,module,exports){\narguments[4][17][0].apply(exports,arguments)\n},{\"dup\":17}],78:[function(_dereq_,module,exports){\narguments[4][18][0].apply(exports,arguments)\n},{\"dup\":18}],79:[function(_dereq_,module,exports){\narguments[4][20][0].apply(exports,arguments)\n},{\"./dist/is-android\":68,\"dup\":20}],80:[function(_dereq_,module,exports){\narguments[4][21][0].apply(exports,arguments)\n},{\"./dist/is-chrome-os\":69,\"dup\":21}],81:[function(_dereq_,module,exports){\narguments[4][22][0].apply(exports,arguments)\n},{\"./dist/is-chrome\":70,\"dup\":22}],82:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ie9\");\n\n},{\"./dist/is-ie9\":73}],83:[function(_dereq_,module,exports){\narguments[4][27][0].apply(exports,arguments)\n},{\"./dist/is-ios\":74,\"dup\":27}],84:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/supports-input-formatting\");\n\n},{\"./dist/supports-input-formatting\":67}],85:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar errors = _dereq_(\"./errors\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @class\n * @param {object} options Options\n * @description You cannot use this constructor directly. Use {@link module:braintree-web/american-express.create|braintree.american-express.create} instead.\n * @classdesc This class allows you use a nonce to interact with American Express Checkout. To accept American Express cards, use Hosted Fields.\n */\nfunction AmericanExpress(options) {\n this._client = options.client;\n}\n\n/**\n * Gets the rewards balance associated with a Braintree nonce.\n * @public\n * @param {object} options Request options\n * @param {string} options.nonce An existing Braintree nonce.\n * @param {callback} [callback] The second argument, data, is the returned server data. If no callback is provided, `getRewardsBalance` returns a promise that resolves with the server data.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var americanExpress = require('braintree-web/american-express');\n *\n * americanExpress.create({client: clientInstance}, function (createErr, americanExpressInstance) {\n * var options = {nonce: existingBraintreeNonce};\n * americanExpressInstance.getRewardsBalance(options, function (getErr, payload) {\n * if (getErr || payload.error) {\n * // Handle error\n * return;\n * }\n *\n * console.log('Rewards amount: ' + payload.rewardsAmount);\n * });\n * });\n */\nAmericanExpress.prototype.getRewardsBalance = function (options) {\n var nonce = options.nonce;\n var data;\n\n if (!nonce) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NONCE_REQUIRED.type,\n code: errors.AMEX_NONCE_REQUIRED.code,\n message: \"getRewardsBalance must be called with a nonce.\",\n })\n );\n }\n\n data = assign(\n {\n _meta: { source: \"american-express\" },\n paymentMethodNonce: nonce,\n },\n options\n );\n\n delete data.nonce;\n\n return this._client\n .request({\n method: \"get\",\n endpoint: \"payment_methods/amex_rewards_balance\",\n data: data,\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NETWORK_ERROR.type,\n code: errors.AMEX_NETWORK_ERROR.code,\n message:\n \"A network error occurred when getting the American Express rewards balance.\",\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Gets the Express Checkout nonce profile given a nonce from American Express.\n * @public\n * @param {object} options Request options\n * @param {string} options.nonce An existing nonce from American Express (note that this is not a nonce from Braintree).\n * @param {callback} [callback] The second argument, data, is the returned server data. If no callback is provided, `getExpressCheckoutProfile` returns a promise that resolves with the server data.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var americanExpress = require('braintree-web/american-express');\n *\n * americanExpress.create({client: clientInstance}, function (createErr, americanExpressInstance) {\n * var options = {nonce: existingAmericanExpressNonce};\n * americanExpressInstance.getExpressCheckoutProfile(options, function (getErr, payload) {\n * if (getErr) {\n * // Handle error\n * return;\n * }\n *\n * console.log('Number of cards: ' + payload.amexExpressCheckoutCards.length);\n * });\n * });\n */\nAmericanExpress.prototype.getExpressCheckoutProfile = function (options) {\n if (!options.nonce) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NONCE_REQUIRED.type,\n code: errors.AMEX_NONCE_REQUIRED.code,\n message: \"getExpressCheckoutProfile must be called with a nonce.\",\n })\n );\n }\n\n return this._client\n .request({\n method: \"get\",\n endpoint: \"payment_methods/amex_express_checkout_cards/\" + options.nonce,\n data: {\n _meta: { source: \"american-express\" },\n paymentMethodNonce: options.nonce,\n },\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NETWORK_ERROR.type,\n code: errors.AMEX_NETWORK_ERROR.code,\n message:\n \"A network error occurred when getting the American Express Checkout nonce profile.\",\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/american-express.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * americanExpressInstance.teardown();\n * @example With callback\n * americanExpressInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nAmericanExpress.prototype.teardown = function () {\n convertMethodsToError(this, methods(AmericanExpress.prototype));\n\n return Promise.resolve();\n};\n\nmodule.exports = wrapPromise.wrapPrototype(AmericanExpress);\n\n},{\"../lib/assign\":137,\"../lib/braintree-error\":140,\"../lib/convert-methods-to-error\":143,\"../lib/methods\":172,\"./errors\":86,\"@braintree/wrap-promise\":40}],86:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.American Express - getRewardsBalance Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} AMEX_NONCE_REQUIRED Occurs when a nonce is not provided to method.\n * @property {NETWORK} AMEX_NETWORK_ERROR Occurs when there is an error communicating with the Braintree gateway.\n */\n\n/**\n * @name BraintreeError.American Express - getExpressCheckoutProfile Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} AMEX_NONCE_REQUIRED Occurs when a nonce is not provided to method.\n * @property {NETWORK} AMEX_NETWORK_ERROR Occurs when there is an error communicating with the Braintree gateway.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n AMEX_NONCE_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"AMEX_NONCE_REQUIRED\",\n },\n AMEX_NETWORK_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"AMEX_NETWORK_ERROR\",\n },\n};\n\n},{\"../lib/braintree-error\":140}],87:[function(_dereq_,module,exports){\n\"use strict\";\n/**\n * @module braintree-web/american-express\n * @description This module is for use with Amex Express Checkout. To accept American Express cards, use Hosted Fields.\n */\n\nvar AmericanExpress = _dereq_(\"./american-express\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar VERSION = \"3.115.2\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {callback} [callback] The second argument, `data`, is the {@link AmericanExpress} instance. If no callback is provided, `create` returns a promise that resolves with the {@link AmericanExpress} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"American Express\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n return createDeferredClient.create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n });\n })\n .then(function (client) {\n options.client = client;\n\n return new AmericanExpress(options);\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":138,\"../lib/create-assets-url\":145,\"../lib/create-deferred-client\":147,\"./american-express\":85,\"@braintree/wrap-promise\":40}],88:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar analytics = _dereq_(\"../lib/analytics\");\nvar errors = _dereq_(\"./errors\");\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @typedef {object} ApplePay~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.cardHolderName The name of the card holder.\n * @property {string} details.dpanLastTwo Last two digits of card number.\n * @property {boolean} details.isDeviceToken Whether this tokenized card is a\n * device-specific account number (DPAN) ('true') or merchant/cloud token (MPAN) ('false').\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `ApplePayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * An Apple Pay Payment Authorization Event object.\n * @typedef {object} ApplePayPaymentAuthorizedEvent\n * @external ApplePayPaymentAuthorizedEvent\n * @see {@link https://developer.apple.com/reference/applepayjs/applepaypaymentauthorizedevent ApplePayPaymentAuthorizedEvent}\n */\n\n/**\n * An Apple Pay Payment Request object.\n * @typedef {object} ApplePayPaymentRequest\n * @external ApplePayPaymentRequest\n * @see {@link https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest PaymentRequest}\n */\n\n/**\n * @class\n * @param {object} options Options\n * @description You cannot use this constructor directly. Use {@link module:braintree-web/apple-pay.create|braintree.applePay.create} instead.\n * @classdesc This class represents an Apple Pay component. Instances of this class have methods for validating the merchant server and tokenizing payments.\n */\nfunction ApplePay(options) {\n this._instantiatedWithClient = Boolean(!options.useDeferredClient);\n this._client = options.client;\n this._createPromise = options.createPromise;\n\n if (this._client) {\n this._setMerchantIdentifier();\n }\n}\n\nApplePay.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n\n this._setMerchantIdentifier();\n }.bind(this)\n );\n};\n\nApplePay.prototype._setMerchantIdentifier = function () {\n var applePayConfig =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n\n if (!applePayConfig) {\n return;\n }\n /**\n * @name ApplePay#merchantIdentifier\n * @description A special merchant ID which represents the merchant association with Braintree. Required when using `ApplePaySession.canMakePaymentsWithActiveCard`.\n * @example\n * var promise = ApplePaySession.canMakePaymentsWithActiveCard(applePayInstance.merchantIdentifier);\n * promise.then(function (canMakePaymentsWithActiveCard) {\n * if (canMakePaymentsWithActiveCard) {\n * // Set up Apple Pay buttons\n * }\n * });\n */\n Object.defineProperty(this, \"merchantIdentifier\", {\n value: applePayConfig.merchantIdentifier,\n configurable: false,\n writable: false,\n });\n};\n\n/**\n * Merges a payment request with Braintree defaults to return an {external:ApplePayPaymentRequest}.\n *\n * The following properties are assigned to `paymentRequest` if not already defined. Their default values come from the Braintree gateway.\n * - `countryCode`\n * - `currencyCode`\n * - `merchantCapabilities`\n * - `supportedNetworks`\n * @public\n * @param {external:ApplePayPaymentRequest} paymentRequest The payment request details to apply on top of those from Braintree.\n * @returns {external:ApplePayPaymentRequest|Promise} The decorated `paymentRequest` object. If `useDeferredClient` is used along with an `authorization`, this method will return a promise that resolves with the `paymentRequest` object.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n *\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * @example With deferred client\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({\n * authorization: 'client-token-or-tokenization-key',\n * useDeferredClient: true\n * }, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * }).then(function (paymentRequest) {\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * });\n */\nApplePay.prototype.createPaymentRequest = function (paymentRequest) {\n if (this._instantiatedWithClient) {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }.bind(this)\n );\n};\n\nApplePay.prototype._createPaymentRequestSynchronously = function (\n paymentRequest\n) {\n var applePay =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n var defaults = {\n countryCode: applePay.countryCode,\n currencyCode: applePay.currencyCode,\n merchantCapabilities: applePay.merchantCapabilities || [\"supports3DS\"],\n supportedNetworks: applePay.supportedNetworks.map(function (network) {\n return network === \"mastercard\" ? \"masterCard\" : network;\n }),\n };\n\n return Object.assign({}, defaults, paymentRequest);\n};\n\n/**\n * Validates your merchant website, as required by `ApplePaySession` before payment can be authorized.\n * @public\n * @param {object} options Options\n * @param {string} options.validationURL The validationURL from an `ApplePayValidateMerchantEvent`.\n * @param {string} options.displayName The canonical name for your store. Use a non-localized name. This parameter should be a UTF-8 string that is a maximum of 64 characters. The system may display this name to the user.\n * @param {callback} [callback] The second argument, data, is the Apple Pay merchant session object. If no callback is provided, `performValidation` returns a promise.\n * Pass the merchant session to your Apple Pay session's `completeMerchantValidation` method.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onvalidatemerchant = function (event) {\n * applePayInstance.performValidation({\n * validationURL: event.validationURL,\n * displayName: 'My Great Store'\n * }, function (validationErr, validationData) {\n * if (validationErr) {\n * console.error(validationErr);\n * session.abort();\n * return;\n * }\n *\n * session.completeMerchantValidation(validationData);\n * });\n * };\n * });\n */\nApplePay.prototype.performValidation = function (options) {\n var self = this;\n\n if (!options || !options.validationURL) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_VALIDATION_URL_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n var applePayWebSession = {\n validationUrl: options.validationURL,\n domainName: options.domainName || window.location.hostname,\n merchantIdentifier:\n options.merchantIdentifier || self.merchantIdentifier,\n };\n\n if (options.displayName != null) {\n applePayWebSession.displayName = options.displayName;\n }\n\n return self._client.request({\n method: \"post\",\n endpoint: \"apple_pay_web/sessions\",\n data: {\n _meta: { source: \"apple-pay\" },\n applePayWebSession: applePayWebSession,\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.performValidation.succeeded\");\n\n return Promise.resolve(response);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.performValidation.failed\");\n\n if (err.code === \"CLIENT_REQUEST_ERROR\") {\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.message,\n details: {\n originalError: err.details.originalError,\n },\n })\n );\n }\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Tokenizes an Apple Pay payment. This will likely be called in your `ApplePaySession`'s `onpaymentauthorized` callback.\n * @public\n * @param {object} options Options\n * @param {object} options.token The `payment.token` property of an {@link external:ApplePayPaymentAuthorizedEvent}.\n * @param {callback} [callback] The second argument, data, is a {@link ApplePay~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a promise that resolves with a {@link ApplePay~tokenizePayload|tokenizePayload}.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onpaymentauthorized = function (event) {\n * applePayInstance.tokenize({\n * token: event.payment.token\n * }, function (tokenizeErr, tokenizedPayload) {\n * if (tokenizeErr) {\n * session.completePayment(ApplePaySession.STATUS_FAILURE);\n * return;\n * }\n * // Send the tokenizedPayload to your server here!\n *\n * // Once the transaction is complete, call completePayment\n * // to close the Apple Pay sheet\n * session.completePayment(ApplePaySession.STATUS_SUCCESS);\n * });\n * };\n *\n * // ...\n * });\n */\nApplePay.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options.token) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_PAYMENT_TOKEN_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n return self._client.request({\n method: \"post\",\n endpoint: \"payment_methods/apple_payment_tokens\",\n data: {\n _meta: {\n source: \"apple-pay\",\n },\n applePaymentToken: Object.assign({}, options.token, {\n // The gateway requires this key to be base64-encoded.\n paymentData: btoa(JSON.stringify(options.token.paymentData)),\n }),\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.tokenize.succeeded\");\n\n return Promise.resolve(response.applePayCards[0]);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.tokenize.failed\");\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_TOKENIZATION.type,\n code: errors.APPLE_PAY_TOKENIZATION.code,\n message: errors.APPLE_PAY_TOKENIZATION.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/apple-pay.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * applePayInstance.teardown();\n * @example With callback\n * applePayInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nApplePay.prototype.teardown = function () {\n convertMethodsToError(this, methods(ApplePay.prototype));\n\n return Promise.resolve();\n};\n\nmodule.exports = wrapPromise.wrapPrototype(ApplePay);\n\n},{\"../lib/analytics\":135,\"../lib/braintree-error\":140,\"../lib/convert-methods-to-error\":143,\"../lib/methods\":172,\"./errors\":89,\"@braintree/wrap-promise\":40}],89:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Apple Pay - Creation Error Codes\n * @description Errors that occur when [creating the Apple Pay component](./module-braintree-web_apple-pay.html#.create).\n * @property {MERCHANT} APPLE_PAY_NOT_ENABLED Occurs when the authorization used is not authorized to process Apple Pay.\n */\n\n/**\n * @name BraintreeError.Apple Pay - performValidation Error Codes\n * @description Errors that occur when [validating](./ApplePay.html#performValidation).\n * @property {MERCHANT} APPLE_PAY_VALIDATION_URL_REQUIRED Occurs when the `validationURL` option is not passed in.\n * @property {MERCHANT} APPLE_PAY_MERCHANT_VALIDATION_FAILED Occurs when the website domain has not been registered in the Braintree control panel.\n * @property {NETWORK} APPLE_PAY_MERCHANT_VALIDATION_NETWORK Occurs when an unknown network error occurs.\n */\n\n/**\n * @name BraintreeError.Apple Pay - tokenize Error Codes\n * @description Errors that occur when [tokenizing](./ApplePay.html#tokenize).\n * @property {MERCHANT} APPLE_PAY_PAYMENT_TOKEN_REQUIRED Occurs when the `token` option is not passed in.\n * @property {NETWORK} APPLE_PAY_TOKENIZATION Occurs when an unknown network error occurs.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n APPLE_PAY_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_NOT_ENABLED\",\n message: \"Apple Pay is not enabled for this merchant.\",\n },\n APPLE_PAY_VALIDATION_URL_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_VALIDATION_URL_REQUIRED\",\n message: \"performValidation must be called with a validationURL.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_NETWORK\",\n message: \"A network error occurred when validating the Apple Pay merchant.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_FAILED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_FAILED\",\n message:\n \"Make sure you have registered your domain name in the Braintree Control Panel.\",\n },\n APPLE_PAY_PAYMENT_TOKEN_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_PAYMENT_TOKEN_REQUIRED\",\n message: \"tokenize must be called with a payment token.\",\n },\n APPLE_PAY_TOKENIZATION: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_TOKENIZATION\",\n message: \"A network error occurred when processing the Apple Pay payment.\",\n },\n};\n\n},{\"../lib/braintree-error\":140}],90:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @module braintree-web/apple-pay\n * @description Accept Apple Pay on the Web. *This component is currently in beta and is subject to change.*\n */\n\nvar ApplePay = _dereq_(\"./apple-pay\");\nvar analytics = _dereq_(\"../lib/analytics\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar errors = _dereq_(\"./errors\");\nvar VERSION = \"3.115.2\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Apple Pay instance to be available right away by fetching the client configuration in the background. When this option is used, {@link ApplePay#createPaymentRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {callback} [callback] The second argument, `data`, is the {@link ApplePay} instance. If no callback is provided, `create` returns a promise that resolves with the {@link ApplePay} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Apple Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var applePayInstance;\n var createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n if (!client.getConfiguration().gatewayConfiguration.applePayWeb) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_NOT_ENABLED)\n );\n }\n\n analytics.sendEvent(client, \"applepay.initialized\");\n\n return client;\n });\n\n options.createPromise = createPromise;\n applePayInstance = new ApplePay(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n applePayInstance._client = client;\n\n return applePayInstance;\n });\n }\n\n return applePayInstance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/analytics\":135,\"../lib/basic-component-verification\":138,\"../lib/braintree-error\":140,\"../lib/create-assets-url\":145,\"../lib/create-deferred-client\":147,\"./apple-pay\":88,\"./errors\":89,\"@braintree/wrap-promise\":40}],91:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = _dereq_(\"./constants\").BRAINTREE_VERSION;\n\nvar GraphQL = _dereq_(\"./request/graphql\");\nvar request = _dereq_(\"./request\");\nvar isVerifiedDomain = _dereq_(\"../lib/is-verified-domain\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar convertToBraintreeError = _dereq_(\"../lib/convert-to-braintree-error\");\nvar getGatewayConfiguration = _dereq_(\"./get-configuration\").getConfiguration;\nvar createAuthorizationData = _dereq_(\"../lib/create-authorization-data\");\nvar metadata = _dereq_(\"../lib/add-metadata\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar once = _dereq_(\"../lib/once\");\nvar deferred = _dereq_(\"../lib/deferred\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar analytics = _dereq_(\"../lib/analytics\");\nvar errors = _dereq_(\"./errors\");\nvar VERSION = _dereq_(\"../lib/constants\").VERSION;\nvar GRAPHQL_URLS = _dereq_(\"../lib/constants\").GRAPHQL_URLS;\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar assets = _dereq_(\"../lib/assets\");\nvar FRAUDNET_FNCLS = _dereq_(\"../lib/constants\").FRAUDNET_FNCLS;\nvar FRAUDNET_SOURCE = _dereq_(\"../lib/constants\").FRAUDNET_SOURCE;\nvar FRAUDNET_URL = _dereq_(\"../lib/constants\").FRAUDNET_URL;\n\nvar cachedClients = {};\n\n/**\n * This object is returned by {@link Client#getConfiguration|getConfiguration}. This information is used extensively by other Braintree modules to properly configure themselves.\n * @typedef {object} Client~configuration\n * @property {object} client The braintree-web/client parameters.\n * @property {string} client.authorization A tokenizationKey or clientToken.\n * @property {object} gatewayConfiguration Gateway-supplied configuration.\n * @property {object} analyticsMetadata Analytics-specific data.\n * @property {string} analyticsMetadata.sessionId Uniquely identifies a browsing session.\n * @property {string} analyticsMetadata.sdkVersion The braintree.js version.\n * @property {string} analyticsMetadata.merchantAppId Identifies the merchant's web app.\n */\n\n/**\n * @class\n * @param {Client~configuration} configuration Options\n * @description Do not use this constructor directly. Use {@link module:braintree-web/client.create|braintree.client.create} instead.\n * @classdesc This class is required by many other Braintree components. It serves as the base API layer that communicates with our servers. It is also capable of being used to formulate direct calls to our servers, such as direct credit card tokenization. See {@link Client#request}.\n */\nfunction Client(configuration) {\n var configurationJSON, gatewayConfiguration;\n\n configuration = configuration || {};\n\n configurationJSON = JSON.stringify(configuration);\n gatewayConfiguration = configuration.gatewayConfiguration;\n\n if (!gatewayConfiguration) {\n throw new BraintreeError(errors.CLIENT_MISSING_GATEWAY_CONFIGURATION);\n }\n\n [\"assetsUrl\", \"clientApiUrl\", \"configUrl\"].forEach(function (property) {\n if (\n property in gatewayConfiguration &&\n !isVerifiedDomain(gatewayConfiguration[property])\n ) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: property + \" property is on an invalid domain.\",\n });\n }\n });\n\n /**\n * Returns a copy of the configuration values.\n * @public\n * @returns {Client~configuration} configuration\n */\n this.getConfiguration = function () {\n return JSON.parse(configurationJSON);\n };\n\n this._request = request;\n this._configuration = this.getConfiguration();\n\n this._clientApiBaseUrl = gatewayConfiguration.clientApiUrl + \"/v1/\";\n\n if (gatewayConfiguration.graphQL) {\n if (!isVerifiedDomain(gatewayConfiguration.graphQL.url)) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: \"graphQL.url property is on an invalid domain.\",\n });\n }\n\n this._graphQL = new GraphQL({\n graphQL: gatewayConfiguration.graphQL,\n });\n }\n}\n\nClient.initialize = function (options) {\n var clientInstance, authData;\n var promise = cachedClients[options.authorization];\n\n if (promise) {\n analytics.sendEvent(promise, \"custom.client.load.cached\");\n\n return promise;\n }\n\n try {\n authData = createAuthorizationData(options.authorization);\n } catch (err) {\n return Promise.reject(\n new BraintreeError(errors.CLIENT_INVALID_AUTHORIZATION)\n );\n }\n\n promise = getGatewayConfiguration(authData, options.sessionId).then(function (\n configuration\n ) {\n if (options.debug) {\n configuration.isDebug = true;\n }\n\n configuration.authorization = options.authorization;\n\n clientInstance = new Client(configuration);\n\n return clientInstance;\n });\n\n cachedClients[options.authorization] = promise;\n\n analytics.sendEvent(promise, \"custom.client.load.initialized\");\n\n return promise\n .then(function (client) {\n analytics.sendEvent(clientInstance, \"custom.client.load.succeeded\");\n\n return client;\n })\n .catch(function (err) {\n delete cachedClients[options.authorization];\n\n return Promise.reject(err);\n });\n};\n\n// Primarily used for testing the client initalization call\nClient.clearCache = function () {\n cachedClients = {};\n};\n\nClient.prototype._findOrCreateFraudnetJSON = function (clientMetadataId) {\n var el = document.querySelector('script[fncls=\"' + FRAUDNET_FNCLS + '\"]');\n var config, additionalData, authorizationFingerprint, parameters;\n\n if (!el) {\n el = document.body.appendChild(document.createElement(\"script\"));\n el.type = \"application/json\";\n el.setAttribute(\"fncls\", FRAUDNET_FNCLS);\n }\n\n config = this.getConfiguration();\n additionalData = {\n rda_tenant: \"bt_card\", // eslint-disable-line camelcase\n mid: config.gatewayConfiguration.merchantId,\n };\n authorizationFingerprint = config.authorizationFingerprint;\n\n if (authorizationFingerprint) {\n authorizationFingerprint.split(\"&\").forEach(function (pieces) {\n var component = pieces.split(\"=\");\n\n if (component[0] === \"customer_id\" && component.length > 1) {\n additionalData.cid = component[1];\n }\n });\n }\n\n parameters = {\n f: clientMetadataId.substr(0, 32),\n fp: additionalData,\n bu: false,\n s: FRAUDNET_SOURCE,\n };\n el.text = JSON.stringify(parameters);\n};\n\n/**\n * Used by other modules to formulate all network requests to the Braintree gateway. It is also capable of being used directly from your own form to tokenize credit card information. However, be sure to satisfy PCI compliance if you use direct card tokenization.\n * @public\n * @param {object} options Request options:\n * @param {string} options.method HTTP method, e.g. \"get\" or \"post\".\n * @param {string} options.endpoint Endpoint path, e.g. \"payment_methods\".\n * @param {object} options.data Data to send with the request.\n * @param {number} [options.timeout=60000] Set a timeout (in milliseconds) for the request.\n * @param {callback} [callback] The second argument, data, is the returned server data.\n * @example\n * Direct Credit Card Tokenization\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-expiration-date'].value,\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @example\n * Tokenizing Fields for AVS Checks\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-date'].value,\n * // The billing address can be checked with AVS rules.\n * // See: https://articles.braintreepayments.com/support/guides/fraud-tools/basic/avs-cvv-rules\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value,\n * streetAddress: form['cc-street-address'].value,\n * countryName: form['cc-country-name'].value,\n * countryCodeAlpha2: form['cc-country-alpha2'].value,\n * countryCodeAlpha3: form['cc-country-alpha3'].value,\n * countryCodeNumeric: form['cc-country-numeric'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.request = function (options, callback) {\n var self = this; // eslint-disable-line no-invalid-this\n var requestPromise = new Promise(function (resolve, reject) {\n var optionName, api, baseUrl, requestOptions;\n var shouldCollectData = Boolean(\n options.endpoint === \"payment_methods/credit_cards\" &&\n self.getConfiguration().gatewayConfiguration.creditCards\n .collectDeviceData\n );\n\n if (options.api !== \"graphQLApi\") {\n if (!options.method) {\n optionName = \"options.method\";\n } else if (!options.endpoint) {\n optionName = \"options.endpoint\";\n }\n }\n\n if (optionName) {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_REQUIRED.type,\n code: errors.CLIENT_OPTION_REQUIRED.code,\n message: optionName + \" is required when making a request.\",\n });\n }\n\n if (\"api\" in options) {\n api = options.api;\n } else {\n api = \"clientApi\";\n }\n\n requestOptions = {\n method: options.method,\n graphQL: self._graphQL,\n timeout: options.timeout,\n metadata: self._configuration.analyticsMetadata,\n };\n\n if (api === \"clientApi\") {\n baseUrl = self._clientApiBaseUrl;\n\n requestOptions.data = metadata.addMetadata(\n self._configuration,\n options.data\n );\n } else if (api === \"graphQLApi\") {\n baseUrl =\n GRAPHQL_URLS[self._configuration.gatewayConfiguration.environment];\n options.endpoint = \"\";\n requestOptions.method = \"post\";\n requestOptions.data = assign(\n {\n clientSdkMetadata: {\n platform: self._configuration.analyticsMetadata.platform,\n source: self._configuration.analyticsMetadata.source,\n integration: self._configuration.analyticsMetadata.integration,\n sessionId: self._configuration.analyticsMetadata.sessionId,\n version: VERSION,\n },\n },\n options.data\n );\n\n requestOptions.headers = getAuthorizationHeadersForGraphQL(\n self._configuration\n );\n } else {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_INVALID.type,\n code: errors.CLIENT_OPTION_INVALID.code,\n message: \"options.api is invalid.\",\n });\n }\n\n requestOptions.url = baseUrl + options.endpoint;\n requestOptions.sendAnalyticsEvent = function (kind) {\n analytics.sendEvent(self, kind);\n };\n\n self._request(requestOptions, function (err, data, status) {\n var resolvedData, requestError;\n\n requestError = formatRequestError(status, err);\n\n if (requestError) {\n reject(requestError);\n\n return;\n }\n\n if (api === \"graphQLApi\" && data.errors) {\n reject(\n convertToBraintreeError(data.errors, {\n type: errors.CLIENT_GRAPHQL_REQUEST_ERROR.type,\n code: errors.CLIENT_GRAPHQL_REQUEST_ERROR.code,\n message: errors.CLIENT_GRAPHQL_REQUEST_ERROR.message,\n })\n );\n\n return;\n }\n\n resolvedData = assign({ _httpStatus: status }, data);\n\n if (\n shouldCollectData &&\n resolvedData.creditCards &&\n resolvedData.creditCards.length > 0\n ) {\n self._findOrCreateFraudnetJSON(resolvedData.creditCards[0].nonce);\n\n assets.loadScript({\n src: FRAUDNET_URL,\n forceScriptReload: true,\n });\n }\n resolve(resolvedData);\n });\n });\n\n if (typeof callback === \"function\") {\n callback = once(deferred(callback));\n\n requestPromise\n .then(function (response) {\n callback(null, response, response._httpStatus);\n })\n .catch(function (err) {\n var status = err && err.details && err.details.httpStatus;\n\n callback(err, null, status);\n });\n\n return;\n }\n\n return requestPromise; // eslint-disable-line consistent-return\n};\n\n// eslint-disable-next-line consistent-return\nfunction formatRequestError(status, err) {\n var requestError;\n\n if (status === -1) {\n requestError = new BraintreeError(errors.CLIENT_REQUEST_TIMEOUT);\n } else if (status === 401) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INVALID);\n } else if (status === 403) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INSUFFICIENT);\n } else if (status === 429) {\n requestError = new BraintreeError(errors.CLIENT_RATE_LIMITED);\n } else if (status >= 500) {\n requestError = new BraintreeError(errors.CLIENT_GATEWAY_NETWORK);\n } else if (status < 200 || status >= 400) {\n requestError = convertToBraintreeError(err, {\n type: errors.CLIENT_REQUEST_ERROR.type,\n code: errors.CLIENT_REQUEST_ERROR.code,\n message: errors.CLIENT_REQUEST_ERROR.message,\n });\n }\n\n if (requestError) {\n requestError.details = requestError.details || {};\n requestError.details.httpStatus = status;\n\n return requestError;\n }\n}\n\nClient.prototype.toJSON = function () {\n return this.getConfiguration();\n};\n\n/**\n * Returns the Client version.\n * @public\n * @returns {String} The created client's version.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * console.log(clientInstance.getVersion()); // Ex: 1.0.0\n * });\n * @returns {void}\n */\nClient.prototype.getVersion = function () {\n return VERSION;\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/client.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * clientInstance.teardown();\n * @example With callback\n * clientInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.teardown = wrapPromise(function () {\n var self = this; // eslint-disable-line no-invalid-this\n\n delete cachedClients[self.getConfiguration().authorization];\n convertMethodsToError(self, methods(Client.prototype));\n\n return Promise.resolve();\n});\n\nfunction getAuthorizationHeadersForGraphQL(configuration) {\n var token =\n configuration.authorizationFingerprint || configuration.authorization;\n\n return {\n Authorization: \"Bearer \" + token,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n}\n\nmodule.exports = Client;\n\n},{\"../lib/add-metadata\":134,\"../lib/analytics\":135,\"../lib/assets\":136,\"../lib/assign\":137,\"../lib/braintree-error\":140,\"../lib/constants\":142,\"../lib/convert-methods-to-error\":143,\"../lib/convert-to-braintree-error\":144,\"../lib/create-authorization-data\":146,\"../lib/deferred\":148,\"../lib/is-verified-domain\":170,\"../lib/methods\":172,\"../lib/once\":173,\"./constants\":92,\"./errors\":93,\"./get-configuration\":94,\"./request\":107,\"./request/graphql\":105,\"@braintree/wrap-promise\":40}],92:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = {\n BRAINTREE_VERSION: \"2018-05-10\",\n};\n\n},{}],93:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Client - Internal Error Codes\n * @ignore\n * @description These codes should never be experienced by the merchant directly.\n * @property {MERCHANT} CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN An error to prevent client creation for domains that are not allowed in the JS.\n * @property {INTERNAL} CLIENT_MISSING_GATEWAY_CONFIGURATION Occurs when the client is created without a gateway configuration. Should never happen.\n */\n\n/**\n * @name BraintreeError.Client - Create Error Codes\n * @description Errors that may occur when [creating the client](./module-braintree-web_client.html#.create)\n * @property {MERCHANT} CLIENT_INVALID_AUTHORIZATION Occurs when client token cannot be parsed.\n */\n\n/**\n * @name BraintreeError.Client - Request Error Codes\n * @description Errors that may occur when [using the request method](./Client.html#request)\n * @property {MERCHANT} CLIENT_OPTION_REQUIRED An option required in the request method was not provided. Usually `options.method` or `options.endpoint`\n * @property {MERCHANT} CLIENT_OPTION_INVALID The request option provided is invalid.\n * @property {MERCHANT} CLIENT_GATEWAY_NETWORK The Braintree gateway could not be contacted.\n * @property {NETWORK} CLIENT_REQUEST_TIMEOUT The request took too long to complete and timed out.\n * @property {NETWORK} CLIENT_REQUEST_ERROR The response from a request had status 400 or greater.\n * @property {NETWORK} CLIENT_GRAPHQL_REQUEST_ERROR The response from a request to GraphQL contained an error.\n * @property {MERCHANT} CLIENT_RATE_LIMITED The response from a request had a status of 429, indicating rate limiting.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INSUFFICIENT The user associated with the client token or tokenization key does not have permissions to make the request.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INVALID The provided authorization could not be found. Either the client token has expired and a new client token must be generated or the tokenization key used is set to be inactive or has been deleted.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN\",\n },\n CLIENT_OPTION_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_REQUIRED\",\n },\n CLIENT_OPTION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_INVALID\",\n },\n CLIENT_MISSING_GATEWAY_CONFIGURATION: {\n type: BraintreeError.types.INTERNAL,\n code: \"CLIENT_MISSING_GATEWAY_CONFIGURATION\",\n message: \"Missing gatewayConfiguration.\",\n },\n CLIENT_INVALID_AUTHORIZATION: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_INVALID_AUTHORIZATION\",\n message:\n \"Authorization is invalid. Make sure your client token or tokenization key is valid.\",\n },\n CLIENT_GATEWAY_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GATEWAY_NETWORK\",\n message: \"Cannot contact the gateway at this time.\",\n },\n CLIENT_REQUEST_TIMEOUT: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_TIMEOUT\",\n message: \"Request timed out waiting for a reply.\",\n },\n CLIENT_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_GRAPHQL_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GRAPHQL_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_RATE_LIMITED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_RATE_LIMITED\",\n message: \"You are being rate-limited; please try again in a few minutes.\",\n },\n CLIENT_AUTHORIZATION_INSUFFICIENT: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INSUFFICIENT\",\n message: \"The authorization used has insufficient privileges.\",\n },\n CLIENT_AUTHORIZATION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INVALID\",\n message:\n \"Either the client token has expired and a new one should be generated or the tokenization key has been deactivated or deleted.\",\n },\n};\n\n},{\"../lib/braintree-error\":140}],94:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar request = _dereq_(\"./request\");\nvar uuid = _dereq_(\"@braintree/uuid\");\nvar constants = _dereq_(\"../lib/constants\");\nvar errors = _dereq_(\"./errors\");\nvar GraphQL = _dereq_(\"./request/graphql\");\nvar GRAPHQL_URLS = _dereq_(\"../lib/constants\").GRAPHQL_URLS;\nvar isDateStringBeforeOrOn = _dereq_(\"../lib/is-date-string-before-or-on\");\n\nvar BRAINTREE_VERSION = _dereq_(\"./constants\").BRAINTREE_VERSION;\n\nfunction getConfiguration(authData, inputSessionId) {\n return new Promise(function (resolve, reject) {\n var configuration, attrs, configUrl, reqOptions;\n var sessionId = inputSessionId || uuid();\n var analyticsMetadata = {\n merchantAppId: window.location.host,\n platform: constants.PLATFORM,\n sdkVersion: constants.VERSION,\n source: constants.SOURCE,\n // NEXT_MAJOR_VERSION remove one of these to not duplicate data. Target parity with mobile platforms approach.\n integration: constants.INTEGRATION,\n integrationType: constants.INTEGRATION,\n sessionId: sessionId,\n };\n\n attrs = authData.attrs;\n configUrl = authData.configUrl;\n\n attrs._meta = analyticsMetadata;\n attrs.braintreeLibraryVersion = constants.BRAINTREE_LIBRARY_VERSION;\n attrs.configVersion = \"3\";\n\n reqOptions = {\n url: configUrl,\n method: \"GET\",\n data: attrs,\n };\n\n if (attrs.authorizationFingerprint && authData.graphQL) {\n if (isDateStringBeforeOrOn(authData.graphQL.date, BRAINTREE_VERSION)) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: authData.graphQL.url,\n features: [\"configuration\"],\n },\n });\n }\n\n reqOptions.metadata = analyticsMetadata;\n } else if (attrs.tokenizationKey) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: GRAPHQL_URLS[authData.environment],\n features: [\"configuration\"],\n },\n });\n\n reqOptions.metadata = analyticsMetadata;\n }\n\n request(reqOptions, function (err, response, status) {\n var errorTemplate;\n\n if (err) {\n if (status === 403) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INSUFFICIENT;\n } else if (status === 401) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INVALID;\n } else {\n errorTemplate = errors.CLIENT_GATEWAY_NETWORK;\n }\n\n reject(\n new BraintreeError({\n type: errorTemplate.type,\n code: errorTemplate.code,\n message: errorTemplate.message,\n details: {\n originalError: err,\n },\n })\n );\n\n return;\n }\n\n configuration = {\n authorizationType: attrs.tokenizationKey\n ? \"TOKENIZATION_KEY\"\n : \"CLIENT_TOKEN\",\n authorizationFingerprint: attrs.authorizationFingerprint,\n analyticsMetadata: analyticsMetadata,\n gatewayConfiguration: response,\n };\n\n resolve(configuration);\n });\n });\n}\n\nmodule.exports = {\n getConfiguration: wrapPromise(getConfiguration),\n};\n\n},{\"../lib/braintree-error\":140,\"../lib/constants\":142,\"../lib/is-date-string-before-or-on\":167,\"./constants\":92,\"./errors\":93,\"./request\":107,\"./request/graphql\":105,\"@braintree/uuid\":36,\"@braintree/wrap-promise\":40}],95:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar Client = _dereq_(\"./client\");\nvar VERSION = \"3.115.2\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar sharedErrors = _dereq_(\"../lib/errors\");\n\n/** @module braintree-web/client */\n\n/**\n * @function create\n * @description This function is the entry point for the braintree.client module. It is used for creating {@link Client} instances that service communication to Braintree servers.\n * @param {object} options Object containing all {@link Client} options:\n * @param {string} options.authorization A tokenizationKey or clientToken.\n * @param {callback} [callback] The second argument, data, is the {@link Client} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * if (createErr) {\n * if (createErr.code === 'CLIENT_AUTHORIZATION_INVALID') {\n * // either the client token has expired, and a new one should be generated\n * // or the tokenization key was deactivated or deleted\n * } else {\n * console.log('something went wrong creating the client instance', createErr);\n * }\n * return;\n * }\n *\n * // set up other components\n * });\n * @static\n */\nfunction create(options) {\n if (!options.authorization) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message:\n \"options.authorization is required when instantiating a client.\",\n })\n );\n }\n\n return Client.initialize(options);\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/braintree-error\":140,\"../lib/errors\":151,\"./client\":91,\"@braintree/wrap-promise\":40}],96:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar querystring = _dereq_(\"../../lib/querystring\");\nvar assign = _dereq_(\"../../lib/assign\").assign;\nvar prepBody = _dereq_(\"./prep-body\");\nvar parseBody = _dereq_(\"./parse-body\");\nvar xhr = _dereq_(\"./xhr\");\nvar isXHRAvailable = xhr.isAvailable;\nvar GraphQLRequest = _dereq_(\"./graphql/request\");\nvar DefaultRequest = _dereq_(\"./default-request\");\n\nvar MAX_TCP_RETRYCOUNT = 1;\nvar TCP_PRECONNECT_BUG_STATUS_CODE = 408;\n\nfunction requestShouldRetry(status) {\n return !status || status === TCP_PRECONNECT_BUG_STATUS_CODE;\n}\n\nfunction graphQLRequestShouldRetryWithClientApi(body) {\n var errorClass =\n !body.data &&\n body.errors &&\n body.errors[0] &&\n body.errors[0].extensions &&\n body.errors[0].extensions.errorClass;\n\n return errorClass === \"UNKNOWN\" || errorClass === \"INTERNAL\";\n}\n\nfunction _requestWithRetry(options, tcpRetryCount, cb) {\n var status, resBody, ajaxRequest, body, method, headers, parsedBody;\n var url = options.url;\n var graphQL = options.graphQL;\n var timeout = options.timeout;\n var req = xhr.getRequestObject();\n var callback = cb;\n var isGraphQLRequest = Boolean(\n graphQL && graphQL.isGraphQLRequest(url, options.data)\n );\n\n options.headers = assign(\n { \"Content-Type\": \"application/json\" },\n options.headers\n );\n\n if (isGraphQLRequest) {\n ajaxRequest = new GraphQLRequest(options);\n } else {\n ajaxRequest = new DefaultRequest(options);\n }\n\n url = ajaxRequest.getUrl();\n body = ajaxRequest.getBody();\n method = ajaxRequest.getMethod();\n headers = ajaxRequest.getHeaders();\n\n if (method === \"GET\") {\n url = querystring.queryify(url, body);\n body = null;\n }\n\n if (isXHRAvailable) {\n req.onreadystatechange = function () {\n if (req.readyState !== 4) {\n return;\n }\n\n if (req.status === 0 && isGraphQLRequest) {\n // If a merchant experiences a connection\n // issue to the GraphQL endpoint (possibly\n // due to a Content Security Policy), retry\n // the request against the old client API.\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n parsedBody = parseBody(req.responseText);\n resBody = ajaxRequest.adaptResponseBody(parsedBody);\n status = ajaxRequest.determineStatus(req.status, parsedBody);\n\n if (status >= 400 || status < 200) {\n if (\n isGraphQLRequest &&\n graphQLRequestShouldRetryWithClientApi(parsedBody)\n ) {\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n if (tcpRetryCount < MAX_TCP_RETRYCOUNT && requestShouldRetry(status)) {\n tcpRetryCount++;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n callback(resBody || \"error\", null, status || 500);\n } else {\n callback(null, resBody, status);\n }\n };\n } else {\n if (options.headers) {\n url = querystring.queryify(url, headers);\n }\n\n req.onload = function () {\n callback(null, parseBody(req.responseText), req.status);\n };\n\n req.onerror = function () {\n // XDomainRequest does not report a body or status for errors, so\n // hardcode to 'error' and 500, respectively\n callback(\"error\", null, 500);\n };\n\n // This must remain for IE9 to work\n req.onprogress = function () {};\n\n req.ontimeout = function () {\n callback(\"timeout\", null, -1);\n };\n }\n\n try {\n req.open(method, url, true);\n } catch (requestOpenError) {\n // If a merchant has a Content Security Policy and they have\n // not allowed our endpoints, some browsers may\n // synchronously throw an error. If it is not a GraphQL\n // request, we throw the error. If it is a GraphQL request\n // we remove the GraphQL option and try the request against\n // the old client API.\n if (!isGraphQLRequest) {\n throw requestOpenError;\n }\n\n delete options.graphQL;\n\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n req.timeout = timeout;\n\n if (isXHRAvailable) {\n Object.keys(headers).forEach(function (headerKey) {\n req.setRequestHeader(headerKey, headers[headerKey]);\n });\n }\n\n try {\n req.send(prepBody(method, body));\n } catch (e) {\n /* ignored */\n }\n}\n\nfunction request(options, cb) {\n _requestWithRetry(options, 0, cb);\n}\n\nmodule.exports = {\n request: request,\n};\n\n},{\"../../lib/assign\":137,\"../../lib/querystring\":174,\"./default-request\":97,\"./graphql/request\":106,\"./parse-body\":108,\"./prep-body\":109,\"./xhr\":110}],97:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction DefaultRequest(options) {\n this._url = options.url;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n}\n\nDefaultRequest.prototype.getUrl = function () {\n return this._url;\n};\n\nDefaultRequest.prototype.getBody = function () {\n return this._data;\n};\n\nDefaultRequest.prototype.getMethod = function () {\n return this._method;\n};\n\nDefaultRequest.prototype.getHeaders = function () {\n return this._headers;\n};\n\nDefaultRequest.prototype.adaptResponseBody = function (parsedBody) {\n return parsedBody;\n};\n\nDefaultRequest.prototype.determineStatus = function (status) {\n return status;\n};\n\nmodule.exports = DefaultRequest;\n\n},{}],98:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = _dereq_(\"./error\");\nvar assign = _dereq_(\"../../../../lib/assign\").assign;\n\n/* eslint-disable camelcase */\nvar cardTypeTransforms = {\n creditCard: {\n AMERICAN_EXPRESS: \"American Express\",\n DISCOVER: \"Discover\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n SOLO: \"Solo\",\n UK_MAESTRO: \"UK Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n },\n applePayWeb: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n visaCheckout: {\n VISA: \"Visa\",\n MASTERCARD: \"MasterCard\",\n DISCOVER: \"Discover\",\n AMERICAN_EXPRESS: \"American Express\",\n },\n googlePay: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n masterpass: {\n VISA: \"visa\",\n MASTERCARD: \"master\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n DINERS: \"diners\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n JCB: \"jcb\",\n },\n};\n/* eslint-enable camelcase */\n\nfunction configurationResponseAdapter(responseBody, ctx) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptConfigurationResponseBody(responseBody, ctx);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptConfigurationResponseBody(body, ctx) {\n var configuration = body.data.clientConfiguration;\n var response;\n\n response = {\n environment: configuration.environment.toLowerCase(),\n clientApiUrl: configuration.clientApiUrl,\n assetsUrl: configuration.assetsUrl,\n analytics: {\n url: configuration.analyticsUrl,\n },\n merchantId: configuration.merchantId,\n venmo: \"off\",\n };\n\n if (configuration.supportedFeatures) {\n response.graphQL = {\n url: ctx._graphQL._config.url,\n features: configuration.supportedFeatures.map(function (feature) {\n return feature.toLowerCase();\n }),\n };\n }\n\n if (configuration.braintreeApi) {\n response.braintreeApi = configuration.braintreeApi;\n }\n\n if (configuration.applePayWeb) {\n response.applePayWeb = configuration.applePayWeb;\n response.applePayWeb.supportedNetworks = mapCardTypes(\n configuration.applePayWeb.supportedCardBrands,\n cardTypeTransforms.applePayWeb\n );\n\n delete response.applePayWeb.supportedCardBrands;\n }\n\n if (configuration.fastlane) {\n response.fastlane = configuration.fastlane;\n }\n\n if (configuration.ideal) {\n response.ideal = configuration.ideal;\n }\n\n if (configuration.creditCard) {\n response.challenges = configuration.creditCard.challenges.map(function (\n challenge\n ) {\n return challenge.toLowerCase();\n });\n\n response.creditCards = {\n supportedCardTypes: mapCardTypes(\n configuration.creditCard.supportedCardBrands,\n cardTypeTransforms.creditCard\n ),\n };\n response.threeDSecureEnabled = configuration.creditCard.threeDSecureEnabled;\n response.threeDSecure = configuration.creditCard.threeDSecure;\n } else {\n response.challenges = [];\n response.creditCards = {\n supportedCardTypes: [],\n };\n response.threeDSecureEnabled = false;\n }\n\n if (configuration.googlePay) {\n response.androidPay = {\n displayName: configuration.googlePay.displayName,\n enabled: true,\n environment: configuration.googlePay.environment.toLowerCase(),\n googleAuthorizationFingerprint:\n configuration.googlePay.googleAuthorization,\n paypalClientId: configuration.googlePay.paypalClientId,\n supportedNetworks: mapCardTypes(\n configuration.googlePay.supportedCardBrands,\n cardTypeTransforms.googlePay\n ),\n };\n }\n\n if (configuration.venmo) {\n response.payWithVenmo = {\n merchantId: configuration.venmo.merchantId,\n accessToken: configuration.venmo.accessToken,\n environment: configuration.venmo.environment.toLowerCase(),\n enrichedCustomerDataEnabled:\n configuration.venmo.enrichedCustomerDataEnabled,\n };\n }\n\n if (configuration.paypal) {\n response.paypalEnabled = true;\n response.paypal = assign({}, configuration.paypal);\n response.paypal.currencyIsoCode = response.paypal.currencyCode;\n response.paypal.environment = response.paypal.environment.toLowerCase();\n\n delete response.paypal.currencyCode;\n } else {\n response.paypalEnabled = false;\n }\n\n if (configuration.unionPay) {\n response.unionPay = {\n enabled: true,\n merchantAccountId: configuration.unionPay.merchantAccountId,\n };\n }\n\n if (configuration.visaCheckout) {\n response.visaCheckout = {\n apikey: configuration.visaCheckout.apiKey,\n encryptionKey: configuration.visaCheckout.encryptionKey,\n externalClientId: configuration.visaCheckout.externalClientId,\n supportedCardTypes: mapCardTypes(\n configuration.visaCheckout.supportedCardBrands,\n cardTypeTransforms.visaCheckout\n ),\n };\n }\n\n if (configuration.masterpass) {\n response.masterpass = {\n merchantCheckoutId: configuration.masterpass.merchantCheckoutId,\n supportedNetworks: mapCardTypes(\n configuration.masterpass.supportedCardBrands,\n cardTypeTransforms.masterpass\n ),\n };\n }\n\n if (configuration.usBankAccount) {\n response.usBankAccount = {\n routeId: configuration.usBankAccount.routeId,\n plaid: {\n publicKey: configuration.usBankAccount.plaidPublicKey,\n },\n };\n }\n\n return response;\n}\n\nfunction mapCardTypes(cardTypes, cardTypeTransformMap) {\n return cardTypes.reduce(function (acc, type) {\n if (cardTypeTransformMap.hasOwnProperty(type)) {\n return acc.concat(cardTypeTransformMap[type]);\n }\n\n return acc;\n }, []);\n}\n\nmodule.exports = configurationResponseAdapter;\n\n},{\"../../../../lib/assign\":137,\"./error\":101}],99:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = _dereq_(\"./error\");\n\nvar CARD_BRAND_MAP = {\n /* eslint-disable camelcase */\n AMERICAN_EXPRESS: \"American Express\",\n DINERS: \"Discover\",\n DISCOVER: \"Discover\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n UK_MAESTRO: \"Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n /* eslint-enable camelcase */\n};\n\nvar BIN_DATA_MAP = {\n YES: \"Yes\",\n NO: \"No\",\n UNKNOWN: \"Unknown\",\n};\n\nvar AUTHENTICATION_INSIGHT_MAP = {\n PSDTWO: \"psd2\",\n};\n\nfunction creditCardTokenizationFastlaneResponseAdapter(responseBody) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse =\n adaptTokenizeCreditCardForFastlaneResponseBody(responseBody);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptTokenizeCreditCardForFastlaneResponseBody(body) {\n var data = body.data.tokenizeCreditCardForPayPalConnect;\n var creditCard = data.paymentMethod.details;\n var lastTwo = creditCard.last4 ? creditCard.last4.substr(2, 4) : \"\";\n var binData = creditCard.binData;\n var response, regulationEnvironment;\n\n if (binData) {\n [\n \"commercial\",\n \"debit\",\n \"durbinRegulated\",\n \"healthcare\",\n \"payroll\",\n \"prepaid\",\n ].forEach(function (key) {\n if (binData[key]) {\n binData[key] = BIN_DATA_MAP[binData[key]];\n } else {\n binData[key] = \"Unknown\";\n }\n });\n\n [\"issuingBank\", \"countryOfIssuance\", \"productId\"].forEach(function (key) {\n if (!binData[key]) {\n binData[key] = \"Unknown\";\n }\n });\n }\n\n response = {\n creditCards: [\n {\n binData: binData,\n consumed: false,\n description: lastTwo ? \"ending in \" + lastTwo : \"\",\n nonce: data.paymentMethod.id,\n details: {\n cardholderName: creditCard.cardholderName,\n expirationMonth: creditCard.expirationMonth,\n expirationYear: creditCard.expirationYear,\n bin: creditCard.bin || \"\",\n cardType: CARD_BRAND_MAP[creditCard.brandCode] || \"Unknown\",\n lastFour: creditCard.last4 || \"\",\n lastTwo: lastTwo,\n },\n type: \"CreditCard\",\n threeDSecureInfo: null,\n },\n ],\n };\n\n if (data.authenticationInsight) {\n regulationEnvironment =\n data.authenticationInsight.customerAuthenticationRegulationEnvironment;\n response.creditCards[0].authenticationInsight = {\n regulationEnvironment:\n AUTHENTICATION_INSIGHT_MAP[regulationEnvironment] ||\n regulationEnvironment.toLowerCase(),\n };\n }\n\n return response;\n}\n\nmodule.exports = creditCardTokenizationFastlaneResponseAdapter;\n\n},{\"./error\":101}],100:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = _dereq_(\"./error\");\n\nvar CARD_BRAND_MAP = {\n /* eslint-disable camelcase */\n AMERICAN_EXPRESS: \"American Express\",\n DINERS: \"Discover\",\n DISCOVER: \"Discover\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n UK_MAESTRO: \"Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n /* eslint-enable camelcase */\n};\n\nvar BIN_DATA_MAP = {\n YES: \"Yes\",\n NO: \"No\",\n UNKNOWN: \"Unknown\",\n};\n\nvar AUTHENTICATION_INSIGHT_MAP = {\n PSDTWO: \"psd2\",\n};\n\nfunction creditCardTokenizationResponseAdapter(responseBody) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptTokenizeCreditCardResponseBody(responseBody);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptTokenizeCreditCardResponseBody(body) {\n var data = body.data.tokenizeCreditCard;\n var creditCard = data.creditCard;\n var lastTwo = creditCard.last4 ? creditCard.last4.substr(2, 4) : \"\";\n var binData = creditCard.binData;\n var response, regulationEnvironment;\n\n if (binData) {\n [\n \"commercial\",\n \"debit\",\n \"durbinRegulated\",\n \"healthcare\",\n \"payroll\",\n \"prepaid\",\n ].forEach(function (key) {\n if (binData[key]) {\n binData[key] = BIN_DATA_MAP[binData[key]];\n } else {\n binData[key] = \"Unknown\";\n }\n });\n\n [\"issuingBank\", \"countryOfIssuance\", \"productId\"].forEach(function (key) {\n if (!binData[key]) {\n binData[key] = \"Unknown\";\n }\n });\n }\n\n response = {\n creditCards: [\n {\n binData: binData,\n consumed: false,\n description: lastTwo ? \"ending in \" + lastTwo : \"\",\n nonce: data.token,\n details: {\n cardholderName: creditCard.cardholderName,\n expirationMonth: creditCard.expirationMonth,\n expirationYear: creditCard.expirationYear,\n bin: creditCard.bin || \"\",\n cardType: CARD_BRAND_MAP[creditCard.brandCode] || \"Unknown\",\n lastFour: creditCard.last4 || \"\",\n lastTwo: lastTwo,\n },\n type: \"CreditCard\",\n threeDSecureInfo: null,\n },\n ],\n };\n\n if (data.authenticationInsight) {\n regulationEnvironment =\n data.authenticationInsight.customerAuthenticationRegulationEnvironment;\n response.creditCards[0].authenticationInsight = {\n regulationEnvironment:\n AUTHENTICATION_INSIGHT_MAP[regulationEnvironment] ||\n regulationEnvironment.toLowerCase(),\n };\n }\n\n return response;\n}\n\nmodule.exports = creditCardTokenizationResponseAdapter;\n\n},{\"./error\":101}],101:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction errorResponseAdapter(responseBody) {\n var response;\n var errorClass =\n responseBody.errors &&\n responseBody.errors[0] &&\n responseBody.errors[0].extensions &&\n responseBody.errors[0].extensions.errorClass;\n\n if (errorClass === \"VALIDATION\") {\n response = userErrorResponseAdapter(responseBody);\n } else if (errorClass) {\n response = errorWithClassResponseAdapter(responseBody);\n } else {\n response = {\n error: { message: \"There was a problem serving your request\" },\n fieldErrors: [],\n };\n }\n\n return response;\n}\n\nfunction errorWithClassResponseAdapter(responseBody) {\n return {\n error: { message: responseBody.errors[0].message },\n fieldErrors: [],\n };\n}\n\nfunction userErrorResponseAdapter(responseBody) {\n var fieldErrors = buildFieldErrors(responseBody.errors);\n\n if (fieldErrors.length === 0) {\n return { error: { message: responseBody.errors[0].message } };\n }\n\n return {\n error: { message: getLegacyMessage(fieldErrors) },\n fieldErrors: fieldErrors,\n };\n}\n\nfunction buildFieldErrors(errors) {\n var fieldErrors = [];\n\n errors.forEach(function (error) {\n if (!(error.extensions && error.extensions.inputPath)) {\n return;\n }\n addFieldError(error.extensions.inputPath.slice(1), error, fieldErrors);\n });\n\n return fieldErrors;\n}\n\nfunction addFieldError(inputPath, errorDetail, fieldErrors) {\n var fieldError;\n var legacyCode = errorDetail.extensions.legacyCode;\n var inputField = inputPath[0];\n\n if (inputPath.length === 1) {\n fieldErrors.push({\n code: legacyCode,\n field: inputField,\n message: errorDetail.message,\n });\n\n return;\n }\n\n fieldErrors.forEach(function (candidate) {\n if (candidate.field === inputField) {\n fieldError = candidate;\n }\n });\n\n if (!fieldError) {\n fieldError = { field: inputField, fieldErrors: [] };\n fieldErrors.push(fieldError);\n }\n\n addFieldError(inputPath.slice(1), errorDetail, fieldError.fieldErrors);\n}\n\nfunction getLegacyMessage(errors) {\n var legacyMessages = {\n creditCard: \"Credit card is invalid\",\n };\n\n var field = errors[0].field;\n\n return legacyMessages[field];\n}\n\nmodule.exports = errorResponseAdapter;\n\n},{}],102:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar CONFIGURATION_QUERY =\n \"query ClientConfiguration { \" +\n \" clientConfiguration { \" +\n \" analyticsUrl \" +\n \" environment \" +\n \" merchantId \" +\n \" assetsUrl \" +\n \" clientApiUrl \" +\n \" creditCard { \" +\n \" supportedCardBrands \" +\n \" challenges \" +\n \" threeDSecureEnabled \" +\n \" threeDSecure { \" +\n \" cardinalAuthenticationJWT \" +\n \" } \" +\n \" } \" +\n \" applePayWeb { \" +\n \" countryCode \" +\n \" currencyCode \" +\n \" merchantIdentifier \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" fastlane { \" +\n \" enabled \" +\n \" } \" +\n \" googlePay { \" +\n \" displayName \" +\n \" supportedCardBrands \" +\n \" environment \" +\n \" googleAuthorization \" +\n \" paypalClientId \" +\n \" } \" +\n \" ideal { \" +\n \" routeId \" +\n \" assetsUrl \" +\n \" } \" +\n \" masterpass { \" +\n \" merchantCheckoutId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" paypal { \" +\n \" displayName \" +\n \" clientId \" +\n \" assetsUrl \" +\n \" environment \" +\n \" environmentNoNetwork \" +\n \" unvettedMerchant \" +\n \" braintreeClientId \" +\n \" billingAgreementsEnabled \" +\n \" merchantAccountId \" +\n \" currencyCode \" +\n \" payeeEmail \" +\n \" } \" +\n \" unionPay { \" +\n \" merchantAccountId \" +\n \" } \" +\n \" usBankAccount { \" +\n \" routeId \" +\n \" plaidPublicKey \" +\n \" } \" +\n \" venmo { \" +\n \" merchantId \" +\n \" accessToken \" +\n \" environment \" +\n \" enrichedCustomerDataEnabled\" +\n \" } \" +\n \" visaCheckout { \" +\n \" apiKey \" +\n \" externalClientId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" braintreeApi { \" +\n \" accessToken \" +\n \" url \" +\n \" } \" +\n \" supportedFeatures \" +\n \" } \" +\n \"}\";\n\nfunction configuration() {\n return {\n query: CONFIGURATION_QUERY,\n operationName: \"ClientConfiguration\",\n };\n}\n\nmodule.exports = configuration;\n\n},{}],103:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assign = _dereq_(\"../../../../lib/assign\").assign;\n\nfunction createMutation(config) {\n var hasAuthenticationInsight = config.hasAuthenticationInsight;\n var mutation =\n \"mutation TokenizeCreditCardForPayPalConnect($input: TokenizeCreditCardForPayPalConnectInput!\";\n\n if (hasAuthenticationInsight) {\n mutation += \", $authenticationInsightInput: AuthenticationInsightInput!\";\n }\n\n mutation +=\n \") { \" +\n \" tokenizeCreditCardForPayPalConnect(input: $input) { \" +\n \" clientMutationId \" +\n \" paymentMethod { \" +\n \" id \" +\n \" details { \" +\n \" ... on CreditCardDetails { \" +\n \" bin \" +\n \" brandCode \" +\n \" last4 \" +\n \" cardholderName \" +\n \" expirationMonth\" +\n \" expirationYear\" +\n \" binData { \" +\n \" prepaid \" +\n \" healthcare \" +\n \" debit \" +\n \" durbinRegulated \" +\n \" commercial \" +\n \" payroll \" +\n \" issuingBank \" +\n \" countryOfIssuance \" +\n \" productId \" +\n \" } \" +\n \" } \" +\n \" } \" +\n \" }\";\n\n if (hasAuthenticationInsight) {\n mutation +=\n \" authenticationInsight(input: $authenticationInsightInput) {\" +\n \" customerAuthenticationRegulationEnvironment\" +\n \" }\";\n }\n\n mutation += \" } }\";\n\n return mutation;\n}\n\nfunction createCreditCardForFastlaneTokenizationBody(body, options) {\n var creditCard = body.creditCard;\n var fastlane = creditCard.fastlane || {};\n var termsAndConditionsVersion =\n \"fastlane\" in creditCard &&\n \"termsAndConditionsVersion\" in creditCard.fastlane &&\n creditCard.fastlane.termsAndConditionsVersion;\n var email = creditCard.email;\n var optIn = \"hasBuyerConsent\" in fastlane && fastlane.hasBuyerConsent;\n var shippingAddress = creditCard.shippingAddress;\n var variables = createCreditCardTokenizationBody(body, options);\n\n var ccpcVariables = assign({}, variables.input, {\n email: email,\n optIn: optIn,\n phone: creditCard.phone,\n termsAndConditionsVersion: termsAndConditionsVersion,\n });\n\n if (\"authAssertion\" in fastlane) {\n ccpcVariables.authAssertion = fastlane.authAssertion;\n }\n\n if (shippingAddress) {\n ccpcVariables.shippingAddress = shippingAddress;\n }\n\n return { input: ccpcVariables };\n}\n\nfunction createCreditCardTokenizationBody(body, options) {\n var cc = body.creditCard;\n var billingAddress = cc && cc.billingAddress;\n var expDate = cc && cc.expirationDate;\n var expirationMonth =\n cc && (cc.expirationMonth || (expDate && expDate.split(\"/\")[0].trim()));\n var expirationYear =\n cc && (cc.expirationYear || (expDate && expDate.split(\"/\")[1].trim()));\n var variables = {\n input: {\n creditCard: {\n number: cc && cc.number,\n expirationMonth: expirationMonth,\n expirationYear: expirationYear,\n cvv: cc && cc.cvv,\n cardholderName: cc && cc.cardholderName,\n },\n\n options: {},\n },\n };\n\n if (options.hasAuthenticationInsight) {\n variables.authenticationInsightInput = {\n merchantAccountId: body.merchantAccountId,\n };\n }\n\n if (billingAddress) {\n variables.input.creditCard.billingAddress = billingAddress;\n }\n\n variables.input = addValidationRule(body, variables.input);\n\n return variables;\n}\n\nfunction addValidationRule(body, input) {\n var validate;\n\n if (\n body.creditCard &&\n body.creditCard.options &&\n typeof body.creditCard.options.validate === \"boolean\"\n ) {\n validate = body.creditCard.options.validate;\n } else if (\n (body.authorizationFingerprint && body.tokenizationKey) ||\n body.authorizationFingerprint\n ) {\n validate = true;\n } else if (body.tokenizationKey) {\n validate = false;\n }\n\n if (typeof validate === \"boolean\") {\n input.options = assign(\n {\n validate: validate,\n },\n input.options\n );\n }\n\n return input;\n}\n\nfunction creditCardForFastlaneTokenization(body) {\n var options = {\n hasAuthenticationInsight: Boolean(\n body.authenticationInsight && body.merchantAccountId\n ),\n };\n\n return {\n query: createMutation(options),\n variables: createCreditCardForFastlaneTokenizationBody(body, options),\n operationName: \"TokenizeCreditCardForPayPalConnect\",\n };\n}\n\nmodule.exports = creditCardForFastlaneTokenization;\n\n},{\"../../../../lib/assign\":137}],104:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assign = _dereq_(\"../../../../lib/assign\").assign;\n\nfunction createMutation(config) {\n var hasAuthenticationInsight = config.hasAuthenticationInsight;\n var mutation = \"mutation TokenizeCreditCard($input: TokenizeCreditCardInput!\";\n\n if (hasAuthenticationInsight) {\n mutation += \", $authenticationInsightInput: AuthenticationInsightInput!\";\n }\n\n mutation +=\n \") { \" +\n \" tokenizeCreditCard(input: $input) { \" +\n \" token \" +\n \" creditCard { \" +\n \" bin \" +\n \" brandCode \" +\n \" last4 \" +\n \" cardholderName \" +\n \" expirationMonth\" +\n \" expirationYear\" +\n \" binData { \" +\n \" prepaid \" +\n \" healthcare \" +\n \" debit \" +\n \" durbinRegulated \" +\n \" commercial \" +\n \" payroll \" +\n \" issuingBank \" +\n \" countryOfIssuance \" +\n \" productId \" +\n \" } \" +\n \" } \";\n\n if (hasAuthenticationInsight) {\n mutation +=\n \" authenticationInsight(input: $authenticationInsightInput) {\" +\n \" customerAuthenticationRegulationEnvironment\" +\n \" }\";\n }\n\n mutation += \" } }\";\n\n return mutation;\n}\n\nfunction createCreditCardTokenizationBody(body, options) {\n var cc = body.creditCard;\n var billingAddress = cc && cc.billingAddress;\n var expDate = cc && cc.expirationDate;\n var expirationMonth =\n cc && (cc.expirationMonth || (expDate && expDate.split(\"/\")[0].trim()));\n var expirationYear =\n cc && (cc.expirationYear || (expDate && expDate.split(\"/\")[1].trim()));\n var variables = {\n input: {\n creditCard: {\n number: cc && cc.number,\n expirationMonth: expirationMonth,\n expirationYear: expirationYear,\n cvv: cc && cc.cvv,\n cardholderName: cc && cc.cardholderName,\n },\n options: {},\n },\n };\n\n if (options.hasAuthenticationInsight) {\n variables.authenticationInsightInput = {\n merchantAccountId: body.merchantAccountId,\n };\n }\n\n if (billingAddress) {\n variables.input.creditCard.billingAddress = billingAddress;\n }\n\n variables.input = addValidationRule(body, variables.input);\n\n return variables;\n}\n\nfunction addValidationRule(body, input) {\n var validate;\n\n if (\n body.creditCard &&\n body.creditCard.options &&\n typeof body.creditCard.options.validate === \"boolean\"\n ) {\n validate = body.creditCard.options.validate;\n } else if (\n (body.authorizationFingerprint && body.tokenizationKey) ||\n body.authorizationFingerprint\n ) {\n validate = true;\n } else if (body.tokenizationKey) {\n validate = false;\n }\n\n if (typeof validate === \"boolean\") {\n input.options = assign(\n {\n validate: validate,\n },\n input.options\n );\n }\n\n return input;\n}\n\nfunction creditCardTokenization(body) {\n var options = {\n hasAuthenticationInsight: Boolean(\n body.authenticationInsight && body.merchantAccountId\n ),\n };\n\n return {\n query: createMutation(options),\n variables: createCreditCardTokenizationBody(body, options),\n operationName: \"TokenizeCreditCard\",\n };\n}\n\nmodule.exports = creditCardTokenization;\n\n},{\"../../../../lib/assign\":137}],105:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar features = {\n tokenize_credit_cards: \"payment_methods/credit_cards\", // eslint-disable-line camelcase\n configuration: \"configuration\",\n};\n\nvar disallowedInputPaths = [\"creditCard.options.unionPayEnrollment\"];\n\nfunction GraphQL(config) {\n this._config = config.graphQL;\n}\n\nGraphQL.prototype.getGraphQLEndpoint = function () {\n return this._config.url;\n};\n\nGraphQL.prototype.isGraphQLRequest = function (url, body) {\n var featureEnabled;\n var path = this.getClientApiPath(url);\n\n if (!this._isGraphQLEnabled() || !path) {\n return false;\n }\n\n featureEnabled = this._config.features.some(function (feature) {\n return features[feature] === path;\n });\n\n if (containsDisallowedlistedKeys(body)) {\n return false;\n }\n\n return featureEnabled;\n};\n\nGraphQL.prototype.getClientApiPath = function (url) {\n var path;\n var clientApiPrefix = \"/client_api/v1/\";\n var pathParts = url.split(clientApiPrefix);\n\n if (pathParts.length > 1) {\n path = pathParts[1].split(\"?\")[0];\n }\n\n return path;\n};\n\nGraphQL.prototype._isGraphQLEnabled = function () {\n return Boolean(this._config);\n};\n\nfunction containsDisallowedlistedKeys(body) {\n return disallowedInputPaths.some(function (keys) {\n var value = keys.split(\".\").reduce(function (accumulator, key) {\n return accumulator && accumulator[key];\n }, body);\n\n return value !== undefined; // eslint-disable-line no-undefined\n });\n}\n\nmodule.exports = GraphQL;\n\n},{}],106:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = _dereq_(\"../../constants\").BRAINTREE_VERSION;\n\nvar assign = _dereq_(\"../../../lib/assign\").assign;\nvar snakeCaseToCamelCase = _dereq_(\"../../../lib/snake-case-to-camel-case\");\nvar isFastlaneCheckout = _dereq_(\"../../../lib/is-fastlane-checkout\");\n\nvar creditCardTokenizationBodyGenerator = _dereq_(\"./generators/credit-card-tokenization\");\nvar creditCardTokenizationResponseAdapter = _dereq_(\"./adapters/credit-card-tokenization\");\nvar creditCardTokenizationFastlaneResponseAdapter = _dereq_(\"./adapters/credit-card-tokenization-fastlane\");\nvar creditCardForFastlaneTokenizationBodyGenerator = _dereq_(\"./generators/credit-card-for-fastlane-tokenization\");\n\nvar configurationBodyGenerator = _dereq_(\"./generators/configuration\");\nvar configurationResponseAdapter = _dereq_(\"./adapters/configuration\");\n\nvar generators = {\n \"payment_methods/credit_cards\": function (data, isFastlane) {\n if (isFastlane) {\n // Only want to use this generator when using the Fastlane flow\n return creditCardForFastlaneTokenizationBodyGenerator(data);\n }\n\n return creditCardTokenizationBodyGenerator(data);\n },\n configuration: configurationBodyGenerator,\n};\n\nvar adapters = {\n \"payment_methods/credit_cards\": function (parsedBody, context, isFastlane) {\n if (isFastlane) {\n // Only want to use this adapter when using the Fastlane flow\n return creditCardTokenizationFastlaneResponseAdapter(parsedBody, context);\n }\n\n return creditCardTokenizationResponseAdapter(parsedBody, context);\n },\n configuration: configurationResponseAdapter,\n};\n\nfunction GraphQLRequest(options) {\n var clientApiPath = options.graphQL.getClientApiPath(options.url);\n\n this._graphQL = options.graphQL;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n this._clientSdkMetadata = {\n source: options.metadata.source,\n integration: options.metadata.integration,\n sessionId: options.metadata.sessionId,\n };\n this._sendAnalyticsEvent = options.sendAnalyticsEvent || Function.prototype;\n\n this._generator = generators[clientApiPath];\n this._adapter = adapters[clientApiPath];\n\n this._sendAnalyticsEvent(\"graphql.init\");\n}\n\nGraphQLRequest.prototype.getUrl = function () {\n return this._graphQL.getGraphQLEndpoint();\n};\n\nGraphQLRequest.prototype.getBody = function () {\n var formattedBody = formatBodyKeys(this._data);\n var generatedBody = this._generator(\n formattedBody,\n // Since this is used for all GQL requests, we only want this if it's a Fastlane Tokenization request\n isFastlaneCheckout(this._data.creditCard)\n );\n var body = assign(\n { clientSdkMetadata: this._clientSdkMetadata },\n generatedBody\n );\n\n return JSON.stringify(body);\n};\n\nGraphQLRequest.prototype.getMethod = function () {\n return \"POST\";\n};\n\nGraphQLRequest.prototype.getHeaders = function () {\n var authorization, headers;\n\n if (this._data.authorizationFingerprint) {\n this._sendAnalyticsEvent(\"graphql.authorization-fingerprint\");\n authorization = this._data.authorizationFingerprint;\n } else {\n this._sendAnalyticsEvent(\"graphql.tokenization-key\");\n authorization = this._data.tokenizationKey;\n }\n\n headers = {\n Authorization: \"Bearer \" + authorization,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n\n return assign({}, this._headers, headers);\n};\n\nGraphQLRequest.prototype.adaptResponseBody = function (parsedBody) {\n return this._adapter(\n parsedBody,\n this,\n // Since this is used for all GQL requests, we only want this if it's a Fastlane Checkout Tokenization request\n \"creditCard\" in this._data && isFastlaneCheckout(this._data.creditCard)\n );\n};\n\nGraphQLRequest.prototype.determineStatus = function (\n httpStatus,\n parsedResponse\n) {\n var status, errorClass;\n\n if (httpStatus === 200) {\n errorClass =\n parsedResponse.errors &&\n parsedResponse.errors[0] &&\n parsedResponse.errors[0].extensions &&\n parsedResponse.errors[0].extensions.errorClass;\n\n if (parsedResponse.data && !parsedResponse.errors) {\n status = 200;\n } else if (errorClass === \"VALIDATION\") {\n status = 422;\n } else if (errorClass === \"AUTHORIZATION\") {\n status = 403;\n } else if (errorClass === \"AUTHENTICATION\") {\n status = 401;\n } else if (isGraphQLError(errorClass, parsedResponse)) {\n status = 403;\n } else {\n status = 500;\n }\n } else if (!httpStatus) {\n status = 500;\n } else {\n status = httpStatus;\n }\n\n this._sendAnalyticsEvent(\"graphql.status.\" + httpStatus);\n this._sendAnalyticsEvent(\"graphql.determinedStatus.\" + status);\n\n return status;\n};\n\nfunction isGraphQLError(errorClass, parsedResponse) {\n return !errorClass && parsedResponse.errors[0].message;\n}\n\n/**\n * @ignore\n * This function formats the body consistently so _everything_ is camelCase.\n * @param {object} originalBody the body to format\n * @returns {object} The formatted object\n */\nfunction formatBodyKeys(originalBody) {\n var body = {};\n\n Object.keys(originalBody).forEach(function (key) {\n var camelCaseKey = snakeCaseToCamelCase(key);\n\n if (typeof originalBody[key] === \"object\") {\n body[camelCaseKey] = formatBodyKeys(originalBody[key]);\n } else if (typeof originalBody[key] === \"number\") {\n body[camelCaseKey] = String(originalBody[key]);\n } else {\n body[camelCaseKey] = originalBody[key];\n }\n });\n\n return body;\n}\n\nmodule.exports = GraphQLRequest;\n\n},{\"../../../lib/assign\":137,\"../../../lib/is-fastlane-checkout\":168,\"../../../lib/snake-case-to-camel-case\":176,\"../../constants\":92,\"./adapters/configuration\":98,\"./adapters/credit-card-tokenization\":100,\"./adapters/credit-card-tokenization-fastlane\":99,\"./generators/configuration\":102,\"./generators/credit-card-for-fastlane-tokenization\":103,\"./generators/credit-card-tokenization\":104}],107:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar once = _dereq_(\"../../lib/once\");\nvar AJAXDriver = _dereq_(\"./ajax-driver\");\n\nmodule.exports = function (options, cb) {\n cb = once(cb || Function.prototype);\n options.method = (options.method || \"GET\").toUpperCase();\n options.timeout = options.timeout == null ? 60000 : options.timeout;\n options.data = options.data || {};\n\n AJAXDriver.request(options, cb);\n};\n\n},{\"../../lib/once\":173,\"./ajax-driver\":96}],108:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (body) {\n try {\n body = JSON.parse(body);\n } catch (e) {\n /* ignored */\n }\n\n return body;\n};\n\n},{}],109:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (method, body) {\n if (typeof method !== \"string\") {\n throw new Error(\"Method must be a string\");\n }\n\n if (method.toLowerCase() !== \"get\" && body != null) {\n body = typeof body === \"string\" ? body : JSON.stringify(body);\n }\n\n return body;\n};\n\n},{}],110:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar isXHRAvailable =\n typeof window !== \"undefined\" &&\n window.XMLHttpRequest &&\n \"withCredentials\" in new window.XMLHttpRequest();\n\nfunction getRequestObject() {\n return isXHRAvailable\n ? new window.XMLHttpRequest()\n : new window.XDomainRequest();\n}\n\nmodule.exports = {\n isAvailable: isXHRAvailable,\n getRequestObject: getRequestObject,\n};\n\n},{}],111:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Data Collector - Creation Error Codes\n * @description Errors that occur when [creating the Data Collector component](./module-braintree-web_data-collector.html#.create).\n * @property {MERCHANT} DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS Occurs when PayPal Fraudnet could not be enabled.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS: {\n type: BraintreeError.types.MERCHANT,\n code: \"DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS\",\n message: \"Data Collector must be created with Kount and/or PayPal.\",\n },\n};\n\n},{\"../lib/braintree-error\":140}],112:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar FRAUDNET_FNCLS = _dereq_(\"../lib/constants\").FRAUDNET_FNCLS;\nvar FRAUDNET_SOURCE = _dereq_(\"../lib/constants\").FRAUDNET_SOURCE;\nvar FRAUDNET_URL = _dereq_(\"../lib/constants\").FRAUDNET_URL;\nvar loadScript = _dereq_(\"../lib/assets\").loadScript;\n\nvar TRUNCATION_LENGTH = 32;\n\nvar cachedSessionId;\n\nfunction setup(options) {\n var fraudNet = new Fraudnet();\n\n options = options || {};\n\n if (!options.sessionId && cachedSessionId) {\n fraudNet.sessionId = cachedSessionId;\n\n return Promise.resolve(fraudNet);\n }\n\n return fraudNet.initialize(options);\n}\n\nfunction clearSessionIdCache() {\n cachedSessionId = null;\n}\n\nfunction Fraudnet() {}\n\nFraudnet.prototype.initialize = function (options) {\n var environment = options.environment;\n var self = this;\n\n this.sessionId = options.sessionId || options.clientSessionId;\n\n if (this.sessionId) {\n this.sessionId = this.sessionId.substring(0, TRUNCATION_LENGTH);\n }\n\n if (!options.sessionId) {\n cachedSessionId = this.sessionId;\n }\n\n this._beaconId = _generateBeaconId(this.sessionId);\n this._parameterBlock = _createParameterBlock(\n this.sessionId,\n this._beaconId,\n environment\n );\n\n return loadScript({\n src: FRAUDNET_URL,\n })\n .then(function (block) {\n self._thirdPartyBlock = block;\n\n return self;\n })\n .catch(function () {\n // if the fraudnet script fails to load\n // we just resolve with nothing\n // and data collector ignores it\n return null;\n });\n};\n\nFraudnet.prototype.teardown = function () {\n removeElementIfOnPage(document.querySelector('iframe[title=\"ppfniframe\"]'));\n removeElementIfOnPage(document.querySelector('iframe[title=\"pbf\"]'));\n\n removeElementIfOnPage(this._parameterBlock);\n removeElementIfOnPage(this._thirdPartyBlock);\n};\n\nfunction removeElementIfOnPage(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nfunction _generateBeaconId(sessionId) {\n var timestamp = new Date().getTime() / 1000;\n\n return (\n \"https://b.stats.paypal.com/counter.cgi\" +\n \"?i=127.0.0.1\" +\n \"&p=\" +\n sessionId +\n \"&t=\" +\n timestamp +\n \"&a=14\"\n );\n}\n\nfunction _createParameterBlock(sessionId, beaconId, environment) {\n var el = document.body.appendChild(document.createElement(\"script\"));\n var config = {\n f: sessionId,\n s: FRAUDNET_SOURCE,\n b: beaconId,\n };\n\n // for some reason, the presence of the sandbox\n // attribute in a production environment causes\n // some weird behavior with what url paths are\n // hit, so instead, we only apply this attribute\n // when it is not a production environment\n if (environment !== \"production\") {\n config.sandbox = true;\n }\n\n el.type = \"application/json\";\n el.setAttribute(\"fncls\", FRAUDNET_FNCLS);\n el.text = JSON.stringify(config);\n\n return el;\n}\n\nmodule.exports = {\n setup: setup,\n clearSessionIdCache: clearSessionIdCache,\n};\n\n},{\"../lib/assets\":136,\"../lib/constants\":142}],113:[function(_dereq_,module,exports){\n\"use strict\";\n/** @module braintree-web/data-collector */\n\nvar fraudnet = _dereq_(\"./fraudnet\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar VERSION = \"3.115.2\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar errors = _dereq_(\"./errors\");\n\n/**\n * @class\n * @global\n * @name DataCollector\n * @description Do not use this constructor directly. Use {@link module:braintree-web/data-collector.create|braintree-web.data-collector.create} instead.\n * @classdesc This class is used for fraud integration with PayPal. Instances of this class have {@link DataCollector#deviceData|deviceData} which is used to correlate user sessions with server transactions.\n */\n\n/**\n * @memberof DataCollector\n * @name deviceData\n * @type string\n * @description JSON string to pass with server transactions.\n * @instance\n */\n\n/**\n * @memberof DataCollector\n * @name rawDeviceData\n * @type object\n * @description The device data as an object instead of a string.\n * @instance\n */\n\n/**\n * @memberof DataCollector\n * @name teardown\n * @function\n * @description Cleanly remove anything set up by {@link module:braintree-web/data-collector.create|create}.\n * @param {callback} [callback] Called on completion. If no callback is provided, `teardown` returns a promise.\n * @instance\n * @example\n * dataCollectorInstance.teardown();\n * @example With callback\n * dataCollectorInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\n\n/**\n * @memberof DataCollector\n * @name getDeviceData\n * @function\n * @description Resolves with device data once it is ready.\n * @param {object} [options] Options for how device data is resolved.\n * @param {boolean} [options.raw=false] When set to true, the device data will resolve as an object instead of a JSON string.\n * @param {callback} [callback] Called on completion. If no callback is provided, `getDeviceData` returns a promise.\n * @instance\n * @example\n * dataCollectorInstance.getDeviceData();\n * @example Without options\n * dataCollectorInstance.getDeviceData().then(function (deviceData) {\n * // typeof deviceData === 'string'\n * // pass onto your server with the payment method nonce\n * });\n * @example With options\n * dataCollectorInstance.getDeviceData({\n * raw: true\n * }).then(function (deviceData) {\n * // typeof deviceData === 'object'\n * // for if you'd like to parse the data before sending it to your server\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\n\n/**\n * @static\n * @function create\n * @description Creates a DataCollector instance and collects device data based on your merchant configuration. We recommend that you call this method as early as possible, e.g. as soon as your website loads. If that's too early, call it at the beginning of customer checkout.\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Data Collector instance to be available right away by fetching the client configuration in the background. When this option is used, {@link GooglePayment#getDeviceData} must be used to collect the device data.\n * @param {boolean} [options.paypal] *Deprecated:* PayPal fraud data collection will occur when the DataCollector instance is created.\n * @param {string} [options.riskCorrelationId] Pass a custom risk correlation id when creating the data collector.\n * @param {string} [options.clientMetadataId] Deprecated. Use `options.riskCorrelationId` instead.\n * @param {string} [options.correlationId] Deprecated. Use `options.riskCorrelationId` instead.\n * @param {callback} [callback] The second argument, `data`, is the {@link DataCollector} instance.\n * @returns {(Promise|void)} Returns a promise that resolves the {@link DataCollector} instance if no callback is provided.\n */\nfunction create(options) {\n var name = \"Data Collector\";\n var result = {\n _instances: [],\n };\n var data = {};\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n result._instantiatedWithAClient = !options.useDeferredClient;\n result._createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n var clientConfiguration = client.getConfiguration();\n\n return fraudnet\n .setup({\n sessionId:\n options.riskCorrelationId ||\n options.clientMetadataId ||\n options.correlationId,\n clientSessionId: clientConfiguration.analyticsMetadata.sessionId,\n environment: clientConfiguration.gatewayConfiguration.environment,\n })\n .then(function (fraudnetInstance) {\n if (fraudnetInstance) {\n data.correlation_id = fraudnetInstance.sessionId; // eslint-disable-line camelcase\n result._instances.push(fraudnetInstance);\n }\n });\n })\n .then(function () {\n if (result._instances.length === 0) {\n // NEXT_MAJOR_VERSION either this should error with a specific error that\n // no data collector instances could be set up, or we should just swallow\n // the error and document that no device data will be returned if\n // data collector cannot be instantiated. We can't change the error code here\n // without possibly breaking merchant integrations relying on this inccorrect\n // behavior.\n return Promise.reject(\n new BraintreeError(errors.DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS)\n );\n }\n\n result.deviceData = JSON.stringify(data);\n result.rawDeviceData = data;\n\n return result;\n });\n\n result.teardown = createTeardownMethod(result);\n result.getDeviceData = createGetDeviceDataMethod(result);\n\n if (result._instantiatedWithAClient) {\n return result._createPromise;\n }\n\n return result;\n });\n}\n\nfunction createTeardownMethod(result) {\n return wrapPromise(function teardown() {\n return result._createPromise.then(function () {\n result._instances.forEach(function (instance) {\n if (instance) {\n instance.teardown();\n }\n });\n\n convertMethodsToError(result, methods(result));\n });\n });\n}\n\nfunction createGetDeviceDataMethod(result) {\n return wrapPromise(function getDeviceData(options) {\n options = options || {};\n\n return result._createPromise.then(function () {\n if (options.raw) {\n return Promise.resolve(result.rawDeviceData);\n }\n\n return Promise.resolve(result.deviceData);\n });\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":138,\"../lib/braintree-error\":140,\"../lib/convert-methods-to-error\":143,\"../lib/create-assets-url\":145,\"../lib/create-deferred-client\":147,\"../lib/methods\":172,\"./errors\":111,\"./fraudnet\":112,\"@braintree/wrap-promise\":40}],114:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n FASTLANE_SDK_LOAD_ERROR: {\n type: BraintreeError.types.MERCHANT,\n code: \"FASTLANE_SDK_LOAD_ERROR\",\n },\n};\n\n},{\"../lib/braintree-error\":140}],115:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar errors = _dereq_(\"./errors\");\nvar loadFastlane = _dereq_(\"../lib/assets\").loadFastlane;\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar assign = _dereq_(\"../lib/assign\").assign;\n\nfunction fastlane(options) {\n var config = options.client.getConfiguration();\n var sdkVersion = options.client.getVersion();\n var environment = config.gatewayConfiguration.environment;\n\n var minified = true;\n\n if (environment !== \"production\") {\n minified = false;\n }\n\n return loadFastlane(\n assign(\n { platform: \"BT\", btSdkVersion: sdkVersion, minified: minified },\n options\n )\n )\n .then(function (result) {\n var platformOptions = {\n platform: \"BT\",\n authorization: options.authorization,\n client: options.client,\n deviceData: options.deviceData,\n };\n\n // We need the following options to be nested inside platformOptions rather than\n // top level\n delete options.authorization;\n delete options.client;\n delete options.deviceData;\n\n // The following are options that we know are needed for the Fastlane Loader, but which\n // we know are not needed for initializing the fastlane sdk.\n delete options.minified;\n delete options.btSdkVersion;\n\n return window.braintree.fastlane.create(\n assign({ platformOptions: platformOptions }, options, result.metadata)\n );\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.FASTLANE_SDK_LOAD_ERROR.type,\n code: errors.FASTLANE_SDK_LOAD_ERROR.code,\n message: err.message,\n })\n );\n });\n}\n\nmodule.exports = wrapPromise(fastlane);\n\n},{\"../lib/assets\":136,\"../lib/assign\":137,\"../lib/braintree-error\":140,\"./errors\":114,\"@braintree/wrap-promise\":40}],116:[function(_dereq_,module,exports){\n\"use strict\";\n\n/** @module braintree-web/fastlane */\n\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar fastlane = _dereq_(\"./fastlane\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar VERSION = \"3.115.2\";\nvar assign = _dereq_(\"../lib/assign\").assign;\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {string} [options.deviceData] A {@link DataCollector} instance.\n * @example\n * braintree.fastlane.create({\n * client: clientInstance,\n * deviceData: dataCollectorInstance\n * }).then(function (fastlaneInstance) {\n * // fastlaneInstance is ready to create an identity instance.\n * identity = fastlaneInstance.identity\n * }).catch(function (createErr) {\n * console.error('Error creating fastlane instance', createErr);\n * });\n * @example Creating a fastlane component\n * braintree.fastlane.create({\n * client: clientInstance,\n * deviceData: dataCollectorInstance\n * }).then(function (fastlaneInstance) {\n * // fastlaneInstance is ready to create an identity instance.\n * identity = fastlaneInstance.identity\n * }).catch(function (createErr) {\n * console.error('Error creating fastlane instance', createErr);\n * });\n * @returns {(Promise|void)} Returns the fastlane instance.\n */\n\nfunction create(options) {\n var name = \"fastlane\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n return createDeferredClient.create({\n authorization: options.authorization,\n client: options.client,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n });\n })\n .then(function (client) {\n return fastlane(\n assign(\n {\n client: client,\n deviceData: options.deviceData,\n },\n options\n )\n );\n });\n}\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/assign\":137,\"../lib/basic-component-verification\":138,\"../lib/create-assets-url\":145,\"../lib/create-deferred-client\":147,\"./fastlane\":115,\"@braintree/wrap-promise\":40}],117:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Google Payment - Creation Error Codes\n * @description Errors that occur when [creating the Google Payment component](./module-braintree-web_google-payment.html#.create).\n * @property {MERCHANT} GOOGLE_PAYMENT_NOT_ENABLED Occurs when Google Pay is not enabled on the Braintree control panel.\n * @property {MERCHANT} GOOGLE_PAYMENT_UNSUPPORTED_VERSION Occurs when a Google Pay version is used that is not supported by the Braintree SDK.\n */\n\n/**\n * @name BraintreeError.Google Payment - parseResponse Error Codes\n * @description Errors that occur when [parsing the response from Google](./GooglePayment.html#parseResponse).\n * @property {UNKNOWN} GOOGLE_PAYMENT_GATEWAY_ERROR Occurs when Google Pay could not be tokenized.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n GOOGLE_PAYMENT_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"GOOGLE_PAYMENT_NOT_ENABLED\",\n message: \"Google Pay is not enabled for this merchant.\",\n },\n GOOGLE_PAYMENT_GATEWAY_ERROR: {\n code: \"GOOGLE_PAYMENT_GATEWAY_ERROR\",\n message:\n \"There was an error when tokenizing the Google Pay payment method.\",\n type: BraintreeError.types.UNKNOWN,\n },\n GOOGLE_PAYMENT_UNSUPPORTED_VERSION: {\n code: \"GOOGLE_PAYMENT_UNSUPPORTED_VERSION\",\n type: BraintreeError.types.MERCHANT,\n },\n};\n\n},{\"../lib/braintree-error\":140}],118:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar analytics = _dereq_(\"../lib/analytics\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar find = _dereq_(\"../lib/find\");\nvar generateGooglePayConfiguration = _dereq_(\"../lib/generate-google-pay-configuration\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar errors = _dereq_(\"./errors\");\nvar methods = _dereq_(\"../lib/methods\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\nvar CREATE_PAYMENT_DATA_REQUEST_METHODS = {\n 1: \"_createV1PaymentDataRequest\",\n 2: \"_createV2PaymentDataRequest\",\n};\n\n/**\n * @typedef {object} GooglePayment~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional account details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {boolean} details.isNetworkTokenized True if the card is network tokenized.\n * @property {string} details.bin First six digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, `CreditCard` or `AndroidPayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @class GooglePayment\n * @param {object} options Google Payment {@link module:braintree-web/google-payment.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/google-payment.create|braintree-web.google-payment.create} instead.\n * @classdesc This class represents a Google Payment component produced by {@link module:braintree-web/google-payment.create|braintree-web/google-payment.create}. Instances of this class have methods for initializing the Google Pay flow.\n */\nfunction GooglePayment(options) {\n this._createPromise = options.createPromise;\n this._client = options.client;\n this._useDeferredClient = options.useDeferredClient;\n // NEXT_MAJOR_VERSION this should be updated to 2 (or whatever the current latest version is)\n this._googlePayVersion = options.googlePayVersion || 1;\n this._googleMerchantId = options.googleMerchantId;\n\n if (this._isUnsupportedGooglePayAPIVersion()) {\n throw new BraintreeError({\n code: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.code,\n message:\n \"The Braintree SDK does not support Google Pay version \" +\n this._googlePayVersion +\n \". Please upgrade the version of your Braintree SDK and contact support if this error persists.\",\n type: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.type,\n });\n }\n}\n\nGooglePayment.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._isUnsupportedGooglePayAPIVersion = function () {\n // if we don't have createPaymentDatqRequest method for the specific\n // API version, then the version is not supported\n return !(this._googlePayVersion in CREATE_PAYMENT_DATA_REQUEST_METHODS);\n};\n\nGooglePayment.prototype._getDefaultConfig = function () {\n if (!this._defaultConfig) {\n this._defaultConfig = generateGooglePayConfiguration(\n this._client.getConfiguration(),\n this._googlePayVersion,\n this._googleMerchantId\n );\n }\n\n return this._defaultConfig;\n};\n\nGooglePayment.prototype._createV1PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n var overrideCardNetworks =\n paymentDataRequest.cardRequirements &&\n paymentDataRequest.cardRequirements.allowedCardNetworks;\n var defaultConfigCardNetworks =\n defaultConfig.cardRequirements.allowedCardNetworks;\n var allowedCardNetworks = overrideCardNetworks || defaultConfigCardNetworks;\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n // this way we can preserve allowedCardNetworks from default integration\n // if merchant did not pass any in `cardRequirements`\n paymentDataRequest.cardRequirements.allowedCardNetworks = allowedCardNetworks;\n\n return paymentDataRequest;\n};\n\nGooglePayment.prototype._createV2PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n\n if (paymentDataRequest.allowedPaymentMethods) {\n paymentDataRequest.allowedPaymentMethods.forEach(function (paymentMethod) {\n var defaultPaymentMethod = find(\n defaultConfig.allowedPaymentMethods,\n \"type\",\n paymentMethod.type\n );\n\n if (defaultPaymentMethod) {\n applyDefaultsToPaymentMethodConfiguration(\n paymentMethod,\n defaultPaymentMethod\n );\n }\n });\n }\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n return paymentDataRequest;\n};\n\n/**\n * Create a configuration object for use in the `loadPaymentData` method.\n *\n * **Note**: Version 1 of the Google Pay Api is deprecated and will become unsupported in a future version. Until then, version 1 will continue to be used by default, and version 1 schema parameters and overrides will remain functional on existing integrations. However, new integrations and all following examples will be presented in the GooglePay version 2 schema. See [Google Pay's upgrade guide](https://developers.google.com/pay/api/web/guides/resources/update-to-latest-version) to see how to update your integration.\n *\n * If `options.googlePayVersion === 2` was set during the initial {@link module:braintree-web/google-payment.create|create} call, overrides must match the Google Pay v2 schema to be valid.\n *\n * @public\n * @param {object} overrides The supplied parameters for creating the PaymentDataRequest object. Required parameters are:\n * @param {object} overrides.transactionInfo Object according to the [Google Pay Transaction Info](https://developers.google.com/pay/api/web/reference/object#TransactionInfo) spec.\n * Optionally, any of the parameters in the [PaymentDataRequest](https://developers.google.com/pay/api/web/reference/object#PaymentDataRequest) parameters can be overridden, but note that it is recommended only to override top level parameters to avoid squashing deeply nested configuration objects. An example can be found below showing how to safely edit these deeply nested objects.\n * @example\n * var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @example With deferred client\n * googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * }).then(function (paymentDataRequest) {\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * return paymentsClient.loadPaymentData(paymentDataRequest);\n * }).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @returns {object|Promise} Returns a configuration object for Google PaymentDataRequest. If instantiated with `useDeferredClient` and an `authorization` it will return a promise that resolves with the configuration.\n */\nGooglePayment.prototype.createPaymentDataRequest = function (overrides) {\n if (!this._useDeferredClient) {\n return this._createPaymentDataRequestSyncronously(overrides);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentDataRequestSyncronously(overrides);\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._createPaymentDataRequestSyncronously = function (\n overrides\n) {\n var paymentDataRequest = assign({}, overrides);\n var version = this._googlePayVersion;\n var createPaymentDataRequestMethod =\n CREATE_PAYMENT_DATA_REQUEST_METHODS[version];\n\n if (\n paymentDataRequest.transactionInfo &&\n paymentDataRequest.transactionInfo.totalPrice\n ) {\n paymentDataRequest.transactionInfo.totalPrice =\n paymentDataRequest.transactionInfo.totalPrice.toString();\n }\n\n analytics.sendEvent(\n this._createPromise,\n \"google-payment.v\" + version + \".createPaymentDataRequest\"\n );\n\n return this[createPaymentDataRequestMethod](paymentDataRequest);\n};\n\n/**\n * Parse the response from the tokenization.\n * @public\n * @param {object} response The response back from the Google Pay tokenization.\n * @param {callback} [callback] The second argument, data, is a {@link GooglePay~tokenizePayload|tokenizePayload}. If no callback is provided, `parseResponse` returns a promise that resolves with a {@link GooglePayment~tokenizePayload|tokenizePayload}.\n * @example with callback\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * googlePaymentInstance.parseResponse(response, function (err, data) {\n * if (err) {\n * // handle errors\n * }\n * // send parsedResponse.nonce to your server\n * });\n * });\n * @example with promise\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * return googlePaymentInstance.parseResponse(response);\n * }).then(function (parsedResponse) {\n * // send parsedResponse.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * @returns {(Promise|void)} Returns a promise that resolves the parsed response if no callback is provided.\n */\nGooglePayment.prototype.parseResponse = function (response) {\n var self = this;\n\n return Promise.resolve()\n .then(function () {\n var payload;\n var rawResponse =\n response.apiVersion === 2\n ? response.paymentMethodData.tokenizationData.token\n : response.paymentMethodToken.token;\n var parsedResponse = JSON.parse(rawResponse);\n var error = parsedResponse.error;\n\n if (error) {\n return Promise.reject(error);\n }\n\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded\"\n );\n\n if (parsedResponse.paypalAccounts) {\n payload = parsedResponse.paypalAccounts[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.paypal\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n });\n }\n payload = parsedResponse.androidPayCards[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.google-payment\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n details: {\n cardType: payload.details.cardType,\n lastFour: payload.details.lastFour,\n lastTwo: payload.details.lastTwo,\n isNetworkTokenized: payload.details.isNetworkTokenized,\n bin: payload.details.bin,\n },\n binData: payload.binData,\n });\n })\n .catch(function (error) {\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.failed\"\n );\n\n return Promise.reject(\n new BraintreeError({\n code: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.code,\n message: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.message,\n type: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.type,\n details: {\n originalError: error,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/google-payment.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * googlePaymentInstance.teardown();\n * @example With callback\n * googlePaymentInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nGooglePayment.prototype.teardown = function () {\n convertMethodsToError(this, methods(GooglePayment.prototype));\n\n return Promise.resolve();\n};\n\nfunction applyDefaultsToPaymentMethodConfiguration(\n merchantSubmittedPaymentMethod,\n defaultPaymentMethod\n) {\n Object.keys(defaultPaymentMethod).forEach(function (parameter) {\n if (typeof defaultPaymentMethod[parameter] === \"object\") {\n merchantSubmittedPaymentMethod[parameter] = assign(\n {},\n defaultPaymentMethod[parameter],\n merchantSubmittedPaymentMethod[parameter]\n );\n } else {\n merchantSubmittedPaymentMethod[parameter] =\n merchantSubmittedPaymentMethod[parameter] ||\n defaultPaymentMethod[parameter];\n }\n });\n}\n\nmodule.exports = wrapPromise.wrapPrototype(GooglePayment);\n\n},{\"../lib/analytics\":135,\"../lib/assign\":137,\"../lib/braintree-error\":140,\"../lib/convert-methods-to-error\":143,\"../lib/find\":153,\"../lib/generate-google-pay-configuration\":165,\"../lib/methods\":172,\"./errors\":117,\"@braintree/wrap-promise\":40}],119:[function(_dereq_,module,exports){\n\"use strict\";\n/**\n * @module braintree-web/google-payment\n * @description A component to integrate with Google Pay. The majority of the integration uses [Google's pay.js JavaScript file](https://pay.google.com/gp/p/js/pay.js). The Braintree component generates the configuration object necessary for Google Pay to initiate the Payment Request and parse the returned data to retrieve the payment method nonce which is used to process the transaction on the server.\n */\n\nvar GooglePayment = _dereq_(\"./google-payment\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar VERSION = \"3.115.2\";\nvar errors = _dereq_(\"./errors\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Google Payment instance to be available right away by fetching the client configuration in the background. When this option is used, {@link GooglePayment#createPaymentDataRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {number} [options.googlePayVersion] The version of the Google Pay API to use. Value of 2 is required to accept parameters documented [by Google](https://developers.google.com/pay/api/web/reference/object). Omit this parameter to use the deprecated Google Pay Version 1.\n * @param {string} [options.googleMerchantId] A Google merchant identifier issued after your website is approved by Google. Required when PaymentsClient is initialized with an environment property of PRODUCTION, but may be omitted in TEST environment.\n * @param {callback} [callback] The second argument, `data`, is the {@link GooglePayment} instance. If no callback is provided, `create` returns a promise that resolves with the {@link GooglePayment} instance.\n * @example Simple Example\n * // include https://pay.google.com/gp/p/js/pay.js in a script tag\n * // on your page to load the `google.payments.api.PaymentsClient` global object.\n *\n * var paymentButton = document.querySelector('#google-pay-button');\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n * paymentButton.addEventListener('click', function (event) {\n * var paymentDataRequest;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle err\n * });\n * });\n * });\n * @example Check Browser and Customer Compatibility\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * function setupGooglePayButton(googlePaymentInstance) {\n * var button = document.createElement('button');\n *\n * button.id = 'google-pay';\n * button.appendChild(document.createTextNode('Google Pay'));\n * button.addEventListener('click', function (event) {\n * var paymentRequestData;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00' // your amount\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * });\n *\n * document.getElementById('container').appendChild(button);\n * }\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n *\n * return paymentsClient.isReadyToPay({\n * // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\n * apiVersion: 2,\n * apiVersionMinor: 0,\n * allowedPaymentMethods: googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods,\n * existingPaymentMethodRequired: true\n * });\n * }).then(function (response) {\n * if (response.result) {\n * setupGooglePayButton(googlePaymentInstance);\n * }\n * }).catch(function (err) {\n * // handle setup errors\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Google Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var createPromise, instance;\n\n createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n var configuration = client.getConfiguration();\n\n options.client = client;\n if (!configuration.gatewayConfiguration.androidPay) {\n return Promise.reject(\n new BraintreeError(errors.GOOGLE_PAYMENT_NOT_ENABLED)\n );\n }\n\n return client;\n });\n\n options.createPromise = createPromise;\n instance = new GooglePayment(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n instance._client = client;\n\n return instance;\n });\n }\n\n return instance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":138,\"../lib/braintree-error\":140,\"../lib/create-assets-url\":145,\"../lib/create-deferred-client\":147,\"./errors\":117,\"./google-payment\":118,\"@braintree/wrap-promise\":40}],120:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../../lib/braintree-error\");\nvar errors = _dereq_(\"../shared/errors\");\nvar allowedAttributes = _dereq_(\"../shared/constants\").allowedAttributes;\n\nfunction attributeValidationError(attribute, value) {\n var err;\n\n if (!allowedAttributes.hasOwnProperty(attribute)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.code,\n message:\n 'The \"' + attribute + '\" attribute is not supported in Hosted Fields.',\n });\n } else if (value != null && !_isValid(attribute, value)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.code,\n message:\n 'Value \"' +\n value +\n '\" is not allowed for \"' +\n attribute +\n '\" attribute.',\n });\n }\n\n return err;\n}\n\nfunction _isValid(attribute, value) {\n if (allowedAttributes[attribute] === \"string\") {\n return typeof value === \"string\" || typeof value === \"number\";\n } else if (allowedAttributes[attribute] === \"boolean\") {\n return String(value) === \"true\" || String(value) === \"false\";\n }\n\n return false;\n}\n\nmodule.exports = attributeValidationError;\n\n},{\"../../lib/braintree-error\":140,\"../shared/constants\":128,\"../shared/errors\":129}],121:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar constants = _dereq_(\"../shared/constants\");\nvar useMin = _dereq_(\"../../lib/use-min\");\n\nmodule.exports = function composeUrl(assetsUrl, componentId, isDebug) {\n return (\n assetsUrl +\n \"/web/\" +\n constants.VERSION +\n \"/html/hosted-fields-frame\" +\n useMin(isDebug) +\n \".html#\" +\n componentId\n );\n};\n\n},{\"../../lib/use-min\":178,\"../shared/constants\":128}],122:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar directions = _dereq_(\"../shared/constants\").navigationDirections;\nvar browserDetection = _dereq_(\"../shared/browser-detection\");\nvar focusIntercept = _dereq_(\"../shared/focus-intercept\");\nvar findParentTags = _dereq_(\"../shared/find-parent-tags\");\nvar userFocusableTagNames = [\"INPUT\", \"SELECT\", \"TEXTAREA\"];\n// Devices with software keyboards do not or cannot focus on input types\n// that do not require keyboard-based interaction.\nvar unfocusedInputTypes = [\n \"hidden\",\n \"button\",\n \"reset\",\n \"submit\",\n \"checkbox\",\n \"radio\",\n \"file\",\n];\n\nfunction _isUserFocusableElement(element) {\n if (!browserDetection.hasSoftwareKeyboard()) {\n // on desktop browsers, the only input type that isn't focusable\n // is the hidden input\n return element.type !== \"hidden\";\n }\n\n return (\n userFocusableTagNames.indexOf(element.tagName) > -1 &&\n unfocusedInputTypes.indexOf(element.type) < 0\n );\n}\n\nfunction _createNavigationHelper(direction, numberOfElementsInForm) {\n switch (direction) {\n case directions.BACK:\n return {\n checkIndexBounds: function (index) {\n return index < 0;\n },\n indexChange: -1,\n };\n case directions.FORWARD:\n return {\n checkIndexBounds: function (index) {\n return index > numberOfElementsInForm - 1;\n },\n indexChange: 1,\n };\n default:\n }\n\n return {};\n}\n\nfunction _findFirstFocusableElement(elementsInForm) {\n var elementsIndex, element;\n\n for (\n elementsIndex = 0;\n elementsIndex < elementsInForm.length;\n elementsIndex++\n ) {\n element = elementsInForm[elementsIndex];\n\n if (_isUserFocusableElement(element)) {\n return element;\n }\n }\n\n return null;\n}\n\nmodule.exports = {\n removeExtraFocusElements: function (checkoutForm, onRemoveFocusIntercepts) {\n var elements = Array.prototype.slice.call(checkoutForm.elements);\n var firstFocusableInput = _findFirstFocusableElement(elements);\n var lastFocusableInput = _findFirstFocusableElement(elements.reverse());\n\n // these should never be identical, because there will at least be the\n // before and the after input\n [firstFocusableInput, lastFocusableInput].forEach(function (input) {\n if (!input) {\n return;\n }\n\n if (focusIntercept.matchFocusElement(input.getAttribute(\"id\"))) {\n onRemoveFocusIntercepts(input.getAttribute(\"id\"));\n }\n });\n },\n\n createFocusChangeHandler: function (hostedFieldsId, callbacks) {\n return function (data) {\n var currentIndex, targetElement, checkoutForm, navHelper;\n var sourceElement = document.getElementById(\n \"bt-\" + data.field + \"-\" + data.direction + \"-\" + hostedFieldsId\n );\n\n if (!sourceElement) {\n return;\n }\n\n checkoutForm = findParentTags(sourceElement, \"form\")[0];\n\n if (document.forms.length < 1 || !checkoutForm) {\n callbacks.onRemoveFocusIntercepts();\n\n return;\n }\n\n checkoutForm = [].slice.call(checkoutForm.elements);\n currentIndex = checkoutForm.indexOf(sourceElement);\n navHelper = _createNavigationHelper(data.direction, checkoutForm.length);\n\n do {\n currentIndex += navHelper.indexChange;\n if (navHelper.checkIndexBounds(currentIndex)) {\n return;\n }\n targetElement = checkoutForm[currentIndex];\n } while (!_isUserFocusableElement(targetElement));\n\n if (focusIntercept.matchFocusElement(targetElement.getAttribute(\"id\"))) {\n callbacks.onTriggerInputFocus(\n targetElement.getAttribute(\"data-braintree-type\")\n );\n } else {\n targetElement.focus();\n }\n };\n },\n};\n\n},{\"../shared/browser-detection\":127,\"../shared/constants\":128,\"../shared/find-parent-tags\":130,\"../shared/focus-intercept\":131}],123:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar allowedStyles = _dereq_(\"../shared/constants\").allowedStyles;\n\nmodule.exports = function getStylesFromClass(cssClass) {\n var element = document.createElement(\"input\");\n var styles = {};\n var computedStyles;\n\n if (cssClass[0] === \".\") {\n cssClass = cssClass.substring(1);\n }\n\n element.className = cssClass;\n element.style.display = \"none !important\";\n element.style.position = \"fixed !important\";\n element.style.left = \"-99999px !important\";\n element.style.top = \"-99999px !important\";\n document.body.appendChild(element);\n\n computedStyles = window.getComputedStyle(element);\n\n allowedStyles.forEach(function (style) {\n var value = computedStyles[style];\n\n if (value) {\n styles[style] = value;\n }\n });\n\n document.body.removeChild(element);\n\n return styles;\n};\n\n},{\"../shared/constants\":128}],124:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assign = _dereq_(\"../../lib/assign\").assign;\nvar createAssetsUrl = _dereq_(\"../../lib/create-assets-url\");\nvar isVerifiedDomain = _dereq_(\"../../lib/is-verified-domain\");\nvar Destructor = _dereq_(\"../../lib/destructor\");\nvar iFramer = _dereq_(\"@braintree/iframer\");\nvar Bus = _dereq_(\"framebus\");\nvar createDeferredClient = _dereq_(\"../../lib/create-deferred-client\");\nvar BraintreeError = _dereq_(\"../../lib/braintree-error\");\nvar composeUrl = _dereq_(\"./compose-url\");\nvar getStylesFromClass = _dereq_(\"./get-styles-from-class\");\nvar constants = _dereq_(\"../shared/constants\");\nvar errors = _dereq_(\"../shared/errors\");\nvar INTEGRATION_TIMEOUT_MS =\n _dereq_(\"../../lib/constants\").INTEGRATION_TIMEOUT_MS;\nvar uuid = _dereq_(\"@braintree/uuid\");\nvar findParentTags = _dereq_(\"../shared/find-parent-tags\");\nvar browserDetection = _dereq_(\"../shared/browser-detection\");\nvar events = constants.events;\nvar EventEmitter = _dereq_(\"@braintree/event-emitter\");\nvar injectFrame = _dereq_(\"./inject-frame\");\nvar analytics = _dereq_(\"../../lib/analytics\");\nvar allowedFields = constants.allowedFields;\nvar methods = _dereq_(\"../../lib/methods\");\nvar shadow = _dereq_(\"../../lib/shadow\");\nvar findRootNode = _dereq_(\"../../lib/find-root-node\");\nvar convertMethodsToError = _dereq_(\"../../lib/convert-methods-to-error\");\nvar sharedErrors = _dereq_(\"../../lib/errors\");\nvar getCardTypes = _dereq_(\"../shared/get-card-types\");\nvar attributeValidationError = _dereq_(\"./attribute-validation-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar focusChange = _dereq_(\"./focus-change\");\nvar destroyFocusIntercept = _dereq_(\"../shared/focus-intercept\").destroy;\n\nvar SAFARI_FOCUS_TIMEOUT = 5;\n\n/**\n * @typedef {object} HostedFields~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} authenticationInsight Info about the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card. Only available if `authenticationInsight.merchantAccountId` is passed in the `tokenize` method options.\n * @property {string} authenticationInsight.regulationEnvironment The [regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) for the tokenized card.\n * @property {object} details Additional account details.\n * @property {string} details.bin The BIN number of the card.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.expirationMonth The expiration month of the card.\n * @property {string} details.expirationYear The expiration year of the card.\n * @property {string} details.cardholderName The cardholder name tokenized with the card.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `CreditCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @typedef {object} HostedFields~stateObject\n * @description The event payload sent from {@link HostedFields#on|on} or {@link HostedFields#getState|getState}.\n * @property {HostedFields~hostedFieldsCard[]} cards\n * This will return an array of potential {@link HostedFields~hostedFieldsCard|cards}. If the card type has been determined, the array will contain only one card.\n * Internally, Hosted Fields uses credit-card-type,\n * an open-source card detection library.\n * @property {string} emittedBy\n * The name of the field associated with an event. This will not be included if returned by {@link HostedFields#getState|getState}. It will be one of the following strings:
\n * - `\"number\"`\n * - `\"cvv\"`\n * - `\"expirationDate\"`\n * - `\"expirationMonth\"`\n * - `\"expirationYear\"`\n * - `\"postalCode\"`\n * - `\"cardholderName\"`\n * @property {object} fields\n * @property {?HostedFields~hostedFieldsFieldData} fields.number {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the number field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cvv {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the CVV field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationDate {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration date field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationMonth {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration month field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationYear {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration year field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.postalCode {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the postal code field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cardholderName {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the cardholder name field, if it is present.\n */\n\n/**\n * @typedef {object} HostedFields~binPayload\n * @description The event payload sent from {@link HostedFields#on|on} when the {@link HostedFields#event:binAvailable|binAvailable} event is emitted.\n * @property {string} bin The first 6 digits of the card number.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsFieldData\n * @description Data about Hosted Fields fields, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {HTMLElement} container Reference to the container DOM element on your page associated with the current event.\n * @property {boolean} isFocused Whether or not the input is currently focused.\n * @property {boolean} isEmpty Whether or not the user has entered a value in the input.\n * @property {boolean} isPotentiallyValid\n * A determination based on the future validity of the input value.\n * This is helpful when a user is entering a card number and types \"41\".\n * While that value is not valid for submission, it is still possible for\n * it to become a fully qualified entry. However, if the user enters \"4x\"\n * it is clear that the card number can never become valid and isPotentiallyValid will\n * return false.\n * @property {boolean} isValid Whether or not the value of the associated input is fully qualified for submission.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsCard\n * @description Information about the card type, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {string} type The code-friendly representation of the card type. It will be one of the following strings:\n * - `american-express`\n * - `diners-club`\n * - `discover`\n * - `jcb`\n * - `maestro`\n * - `master-card`\n * - `unionpay`\n * - `visa`\n * @property {string} niceType The pretty-printed card type. It will be one of the following strings:\n * - `American Express`\n * - `Diners Club`\n * - `Discover`\n * - `JCB`\n * - `Maestro`\n * - `MasterCard`\n * - `UnionPay`\n * - `Visa`\n * @property {object} code\n * This object contains data relevant to the security code requirements of the card brand.\n * For example, on a Visa card there will be a CVV of 3 digits, whereas an\n * American Express card requires a 4-digit CID.\n * @property {string} code.name \"CVV\" \"CID\" \"CVC\"\n * @property {number} code.size The expected length of the security code. Typically, this is 3 or 4.\n */\n\n/**\n * @name HostedFields#on\n * @function\n * @param {string} event The name of the event to which you are subscribing.\n * @param {function} handler A callback to handle the event.\n * @description Subscribes a handler function to a named event.\n *\n * **Events that emit a {@link HostedFields~stateObject|stateObject}.**\n * * {@link HostedFields#event:blur|blur}\n * * {@link HostedFields#event:focus|focus}\n * * {@link HostedFields#event:empty|empty}\n * * {@link HostedFields#event:notEmpty|notEmpty}\n * * {@link HostedFields#event:cardTypeChange|cardTypeChange}\n * * {@link HostedFields#event:validityChange|validityChange}\n * * {@link HostedFields#event:inputSubmitRequest|inputSubmitRequest}\n *\n * **Other Events**\n * * {@link HostedFields#event:binAvailable|binAvailable} - emits a {@link HostedFields~binPayload|bin payload}. Note: If you are using a [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) header that prevents the origin from being sent, this event will not fire.\n * @example\n * Listening to a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * });\n * });\n * @returns {void}\n */\n\n/**\n * @name HostedFields#off\n * @function\n * @param {string} event The name of the event to which you are unsubscribing.\n * @param {function} handler The callback for the event you are unsubscribing from.\n * @description Unsubscribes the handler function to a named event.\n * @example\n * Subscribing and then unsubscribing from a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * var callback = function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * };\n * hostedFieldsInstance.on('focus', callback);\n *\n * // later on\n * hostedFieldsInstance.off('focus', callback);\n * });\n * @returns {void}\n */\n\n/**\n * This event is emitted when the user requests submission of an input field, such as by pressing the Enter or Return key on their keyboard, or mobile equivalent.\n * @event HostedFields#inputSubmitRequest\n * @type {HostedFields~stateObject}\n * @example\n * Clicking a submit button upon hitting Enter (or equivalent) within a Hosted Field\n * var hostedFields = require('braintree-web/hosted-fields');\n * var submitButton = document.querySelector('input[type=\"submit\"]');\n *\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('inputSubmitRequest', function () {\n * // User requested submission, e.g. by pressing Enter or equivalent\n * submitButton.click();\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from having data to being empty.\n * @event HostedFields#empty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an empty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('empty', function (event) {\n * console.log(event.emittedBy, 'is now empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from being empty to having data.\n * @event HostedFields#notEmpty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an notEmpty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('notEmpty', function (event) {\n * console.log(event.emittedBy, 'is now not empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field loses focus.\n * @event HostedFields#blur\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a blur event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('blur', function (event) {\n * console.log(event.emittedBy, 'lost focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field gains focus.\n * @event HostedFields#focus\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a focus event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'gained focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when activity within the number field has changed such that the possible card type has changed.\n * @event HostedFields#cardTypeChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a cardTypeChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('cardTypeChange', function (event) {\n * if (event.cards.length === 1) {\n * console.log(event.cards[0].type);\n * } else {\n * console.log('Type of card not yet known');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the validity of a field has changed. Validity is represented in the {@link HostedFields~stateObject|stateObject} as two booleans: `isValid` and `isPotentiallyValid`.\n * @event HostedFields#validityChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a validityChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('validityChange', function (event) {\n * var field = event.fields[event.emittedBy];\n *\n * if (field.isValid) {\n * console.log(event.emittedBy, 'is fully valid');\n * } else if (field.isPotentiallyValid) {\n * console.log(event.emittedBy, 'is potentially valid');\n * } else {\n * console.log(event.emittedBy, 'is not valid');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the first 6 digits of the card number have been entered by the customer.\n * @event HostedFields#binAvailable\n * @type {string}\n * @example\n * Listening to a `binAvailable` event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('binAvailable', function (event) {\n * event.bin // send bin to 3rd party bin service\n * });\n * });\n */\n\nfunction createInputEventHandler(fields) {\n return function (eventData) {\n var field;\n var merchantPayload = eventData.merchantPayload;\n var emittedBy = merchantPayload.emittedBy;\n var container = fields[emittedBy].containerElement;\n\n Object.keys(merchantPayload.fields).forEach(function (key) {\n merchantPayload.fields[key].container = fields[key].containerElement;\n });\n\n field = merchantPayload.fields[emittedBy];\n\n container.classList.toggle(\n constants.externalClasses.FOCUSED,\n field.isFocused\n );\n container.classList.toggle(constants.externalClasses.VALID, field.isValid);\n\n container.classList.toggle(\n constants.externalClasses.INVALID,\n !field.isPotentiallyValid\n );\n\n // eslint-disable-next-line no-invalid-this\n this._state = {\n cards: merchantPayload.cards,\n fields: merchantPayload.fields,\n };\n\n this._emit(eventData.type, merchantPayload); // eslint-disable-line no-invalid-this\n };\n}\n\nfunction isVisibleEnough(node) {\n var boundingBox = node.getBoundingClientRect();\n var verticalMidpoint = Math.floor(boundingBox.height / 2);\n var horizontalMidpoint = Math.floor(boundingBox.width / 2);\n\n return (\n boundingBox.top <\n (window.innerHeight - verticalMidpoint ||\n document.documentElement.clientHeight - verticalMidpoint) &&\n boundingBox.right > horizontalMidpoint &&\n boundingBox.bottom > verticalMidpoint &&\n boundingBox.left <\n (window.innerWidth - horizontalMidpoint ||\n document.documentElement.clientWidth - horizontalMidpoint)\n );\n}\n\n/**\n * @class HostedFields\n * @param {object} options The Hosted Fields {@link module:braintree-web/hosted-fields.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/hosted-fields.create|braintree-web.hosted-fields.create} instead.\n * @classdesc This class represents a Hosted Fields component produced by {@link module:braintree-web/hosted-fields.create|braintree-web/hosted-fields.create}. Instances of this class have methods for interacting with the input fields within Hosted Fields' iframes.\n */\nfunction HostedFields(options) {\n var failureTimeout, clientConfig, assetsUrl, isDebug, hostedFieldsUrl;\n var self = this;\n var fields = {};\n var frameReadyPromiseResolveFunctions = {};\n var frameReadyPromises = [];\n var componentId = uuid();\n var sessionId = options.sessionId;\n\n this._merchantConfigurationOptions = assign({}, options);\n\n if (options.client) {\n clientConfig = options.client.getConfiguration(undefined, sessionId); // eslint-disable-line no-undefined\n assetsUrl = clientConfig.gatewayConfiguration.assetsUrl;\n isDebug = clientConfig.isDebug;\n } else {\n assetsUrl = createAssetsUrl.create(options.authorization);\n isDebug = Boolean(options.isDebug);\n }\n\n this._clientPromise = createDeferredClient.create({\n client: options.client,\n authorization: options.authorization,\n debug: isDebug,\n assetsUrl: assetsUrl,\n name: \"Hosted Fields\",\n sessionId: sessionId,\n });\n\n hostedFieldsUrl = composeUrl(assetsUrl, componentId, isDebug);\n\n if (!options.fields || Object.keys(options.fields).length === 0) {\n throw new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message: \"options.fields is required when instantiating Hosted Fields.\",\n });\n }\n\n EventEmitter.call(this);\n\n this._injectedNodes = [];\n this._destructor = new Destructor();\n this._fields = fields;\n this._state = {\n fields: {},\n cards: getCardTypes(\"\"),\n };\n\n this._bus = new Bus({\n channel: componentId,\n verifyDomain: isVerifiedDomain,\n targetFrames: [window],\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n self._bus.teardown();\n });\n\n if (!options.client) {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized.deferred-client\"\n );\n } else {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized\"\n );\n }\n\n Object.keys(options.fields).forEach(\n function (key) {\n var field, externalContainer, internalContainer, frame, frameReadyPromise;\n\n if (!constants.allowedFields.hasOwnProperty(key)) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.code,\n message: '\"' + key + '\" is not a valid field.',\n });\n }\n\n field = options.fields[key];\n // NEXT_MAJOR_VERSION remove selector as an option\n // and simply make the API take a container\n externalContainer = field.container || field.selector;\n\n if (typeof externalContainer === \"string\") {\n externalContainer = document.querySelector(externalContainer);\n }\n\n if (!externalContainer || externalContainer.nodeType !== 1) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.code,\n message: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n } else if (\n externalContainer.querySelector('iframe[name^=\"braintree-\"]')\n ) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.type,\n code: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.code,\n message: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n }\n\n internalContainer = externalContainer;\n\n if (shadow.isShadowElement(internalContainer)) {\n internalContainer = shadow.transformToSlot(\n internalContainer,\n \"height: 100%\"\n );\n }\n\n if (field.maxlength && typeof field.maxlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for maxlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n if (field.minlength && typeof field.minlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for minlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n frame = iFramer({\n type: key,\n name: \"braintree-hosted-field-\" + key,\n style: constants.defaultIFrameStyle,\n title:\n field.iframeTitle ||\n \"Secure Credit Card Frame - \" + constants.allowedFields[key].label,\n });\n this._bus.addTargetFrame(frame);\n\n this._injectedNodes.push.apply(\n this._injectedNodes,\n injectFrame(componentId, frame, internalContainer, function () {\n self.focus(key);\n })\n );\n\n this._setupLabelFocus(key, externalContainer);\n fields[key] = {\n frameElement: frame,\n containerElement: externalContainer,\n };\n frameReadyPromise = new Promise(function (resolve) {\n frameReadyPromiseResolveFunctions[key] = resolve;\n });\n frameReadyPromises.push(frameReadyPromise);\n\n this._state.fields[key] = {\n isEmpty: true,\n isValid: false,\n isPotentiallyValid: true,\n isFocused: false,\n container: externalContainer,\n };\n\n // prevents loading the iframe from blocking the code\n setTimeout(function () {\n frame.src = hostedFieldsUrl;\n }, 0);\n }.bind(this)\n );\n\n if (this._merchantConfigurationOptions.styles) {\n Object.keys(this._merchantConfigurationOptions.styles).forEach(function (\n selector\n ) {\n var className = self._merchantConfigurationOptions.styles[selector];\n\n if (typeof className === \"string\") {\n self._merchantConfigurationOptions.styles[selector] =\n getStylesFromClass(className);\n }\n });\n }\n\n this._bus.on(events.REMOVE_FOCUS_INTERCEPTS, function (data) {\n destroyFocusIntercept(data && data.id);\n });\n\n this._bus.on(\n events.TRIGGER_FOCUS_CHANGE,\n focusChange.createFocusChangeHandler(componentId, {\n onRemoveFocusIntercepts: function (element) {\n self._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: element,\n });\n },\n onTriggerInputFocus: function (targetType) {\n self.focus(targetType);\n },\n })\n );\n\n this._bus.on(events.READY_FOR_CLIENT, function (reply) {\n self._clientPromise.then(function (client) {\n reply(client);\n });\n });\n\n this._bus.on(events.CARD_FORM_ENTRY_HAS_BEGUN, function () {\n analytics.sendEvent(self._clientPromise, \"hosted-fields.input.started\");\n });\n\n this._bus.on(events.BIN_AVAILABLE, function (bin) {\n self._emit(\"binAvailable\", {\n bin: bin,\n });\n });\n\n failureTimeout = setTimeout(function () {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.load.timed-out\"\n );\n self._emit(\"timeout\");\n }, INTEGRATION_TIMEOUT_MS);\n\n Promise.all(frameReadyPromises).then(function (results) {\n var reply = results[0];\n\n clearTimeout(failureTimeout);\n reply(\n formatMerchantConfigurationForIframes(self._merchantConfigurationOptions)\n );\n\n self._cleanUpFocusIntercepts();\n\n self._emit(\"ready\");\n });\n\n this._bus.on(events.FRAME_READY, function (data, reply) {\n frameReadyPromiseResolveFunctions[data.field](reply);\n });\n\n this._bus.on(events.INPUT_EVENT, createInputEventHandler(fields).bind(this));\n\n this._destructor.registerFunctionForTeardown(function () {\n var j, node, parent;\n\n for (j = 0; j < self._injectedNodes.length; j++) {\n node = self._injectedNodes[j];\n parent = node.parentNode;\n\n parent.removeChild(node);\n\n parent.classList.remove(\n constants.externalClasses.FOCUSED,\n constants.externalClasses.INVALID,\n constants.externalClasses.VALID\n );\n }\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n destroyFocusIntercept();\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n var methodNames = methods(HostedFields.prototype).concat(\n methods(EventEmitter.prototype)\n );\n\n convertMethodsToError(self, methodNames);\n });\n}\n\nEventEmitter.createChild(HostedFields);\n\nHostedFields.prototype._setupLabelFocus = function (type, container) {\n var labels, i;\n var self = this;\n var rootNode = findRootNode(container);\n\n if (container.id == null) {\n return;\n }\n\n function triggerFocus() {\n self.focus(type);\n }\n\n // find any labels in the normal DOM\n labels = Array.prototype.slice.call(\n document.querySelectorAll('label[for=\"' + container.id + '\"]')\n );\n if (rootNode !== document) {\n // find any labels within the shadow dom\n labels = labels.concat(\n Array.prototype.slice.call(\n rootNode.querySelectorAll('label[for=\"' + container.id + '\"]')\n )\n );\n }\n // find any labels surrounding the container that don't also have the `for` attribute\n labels = labels.concat(findParentTags(container, \"label\"));\n // filter out any accidental duplicates\n labels = labels.filter(function (label, index, arr) {\n return arr.indexOf(label) === index;\n });\n\n for (i = 0; i < labels.length; i++) {\n labels[i].addEventListener(\"click\", triggerFocus, false);\n }\n\n this._destructor.registerFunctionForTeardown(function () {\n for (i = 0; i < labels.length; i++) {\n labels[i].removeEventListener(\"click\", triggerFocus, false);\n }\n });\n};\n\nHostedFields.prototype._getAnyFieldContainer = function () {\n var self = this;\n\n return Object.keys(this._fields).reduce(function (found, field) {\n return found || self._fields[field].containerElement;\n }, null);\n};\n\nHostedFields.prototype._cleanUpFocusIntercepts = function () {\n var iframeContainer, checkoutForm;\n\n if (document.forms.length < 1) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n } else {\n iframeContainer = this._getAnyFieldContainer();\n checkoutForm = findParentTags(iframeContainer, \"form\")[0];\n\n if (checkoutForm) {\n focusChange.removeExtraFocusElements(\n checkoutForm,\n function (id) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: id,\n });\n }.bind(this)\n );\n } else {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n }\n }\n};\n\nHostedFields.prototype._attachInvalidFieldContainersToError = function (err) {\n if (\n !(\n err.details &&\n err.details.invalidFieldKeys &&\n err.details.invalidFieldKeys.length > 0\n )\n ) {\n return;\n }\n err.details.invalidFields = {};\n err.details.invalidFieldKeys.forEach(\n function (field) {\n err.details.invalidFields[field] = this._fields[field].containerElement;\n }.bind(this)\n );\n};\n\n/**\n * Get card verification challenges, such as requirements for cvv and postal code.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getChallenges` returns a promise.\n * @example\n * hostedFieldsInstance.getChallenges().then(function (challenges) {\n * challenges // ['cvv', 'postal_code']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getChallenges = function () {\n return this._clientPromise.then(function (client) {\n return client.getConfiguration().gatewayConfiguration.challenges;\n });\n};\n\n/**\n * Get supported card types configured in the Braintree Control Panel\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getSupportedCardTypes` returns a promise.\n * @example\n * hostedFieldsInstance.getSupportedCardTypes().then(function (cardTypes) {\n * cardTypes // ['Visa', 'American Express', 'Mastercard']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getSupportedCardTypes = function () {\n return this._clientPromise.then(function (client) {\n var cards = client\n .getConfiguration()\n .gatewayConfiguration.creditCards.supportedCardTypes.map(function (\n cardType\n ) {\n if (cardType === \"MasterCard\") {\n // Mastercard changed their branding. We can't update our\n // config without creating a breaking change, so we just\n // hard code the change here\n return \"Mastercard\";\n }\n\n return cardType;\n });\n\n return cards;\n });\n};\n\n/**\n * Cleanly remove anything set up by {@link module:braintree-web/hosted-fields.create|create}.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. No data is returned if teardown completes successfully. If no callback is provided, `teardown` returns a promise.\n * @example\n * hostedFieldsInstance.teardown(function (teardownErr) {\n * if (teardownErr) {\n * console.error('Could not tear down Hosted Fields!');\n * } else {\n * console.info('Hosted Fields has been torn down!');\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.teardown = function () {\n var self = this;\n\n return new Promise(function (resolve, reject) {\n self._destructor.teardown(function (err) {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.teardown-completed\"\n );\n\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n};\n\n/**\n * Tokenizes fields and returns a nonce payload.\n * @public\n * @param {object} [options] All tokenization options for the Hosted Fields component.\n * @param {boolean} [options.vault=false] When true, will vault the tokenized card. Cards will only be vaulted when using a client created with a client token that includes a customer ID. Note: merchants using Advanced Fraud Tools should not use this option, as device data will not be included.\n * @param {object} [options.authenticationInsight] Options for checking authentication insight - the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card.\n * @param {string} options.authenticationInsight.merchantAccountId The Braintree merchant account id to use to look up the authentication insight information.\n * @param {array} [options.fieldsToTokenize] By default, all fields will be tokenized. You may specify which fields specifically you wish to tokenize with this property. Valid options are `'number'`, `'cvv'`, `'expirationDate'`, `'expirationMonth'`, `'expirationYear'`, `'postalCode'`, `'cardholderName'`.\n * @param {string} [options.cardholderName] When supplied, the cardholder name to be tokenized with the contents of the fields.\n * @param {string} [options.billingAddress.postalCode] When supplied, this postal code will be tokenized along with the contents of the fields. If a postal code is provided as part of the Hosted Fields configuration, the value of the field will be tokenized and this value will be ignored.\n * @param {string} [options.billingAddress.firstName] When supplied, this customer first name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.lastName] When supplied, this customer last name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.company] When supplied, this company name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.streetAddress] When supplied, this street address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.extendedAddress] When supplied, this extended address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.locality] When supplied, this locality (the city) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.region] When supplied, this region (the state) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeNumeric] When supplied, this numeric country code will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha2] When supplied, this alpha 2 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha3] When supplied, this alpha 3 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryName] When supplied, this country name will be tokenized along with the contents of the fields.\n *\n * @param {callback} [callback] May be used as the only parameter of the function if no options are passed in. The second argument, data, is a {@link HostedFields~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a function that resolves with a {@link HostedFields~tokenizePayload|tokenizePayload}.\n * @example Tokenize a card\n * hostedFieldsInstance.tokenize(function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * switch (tokenizeErr.code) {\n * case 'HOSTED_FIELDS_FIELDS_EMPTY':\n * // occurs when none of the fields are filled in\n * console.error('All fields are empty! Please fill out the form.');\n * break;\n * case 'HOSTED_FIELDS_FIELDS_INVALID':\n * // occurs when certain fields do not pass client side validation\n * console.error('Some fields are invalid:', tokenizeErr.details.invalidFieldKeys);\n *\n * // you can also programmatically access the field containers for the invalid fields\n * tokenizeErr.details.invalidFields.forEach(function (fieldContainer) {\n * fieldContainer.className = 'invalid';\n * });\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_FAIL_ON_DUPLICATE':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the fail on duplicate payment method\n * // option is set to true\n * // * the card being tokenized has previously been vaulted (with any customer)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.fail_on_duplicate_payment_method\n * console.error('This payment method already exists in your vault.');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_CVV_VERIFICATION_FAILED':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the verify card option is set to true\n * // and you have credit card verification turned on in the Braintree\n * // control panel\n * // * the cvv does not pass verification (https://developer.paypal.com/braintree/docs/reference/general/testing#avs-and-cvv/cid-responses)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.verify_card\n * console.error('CVV did not pass verification');\n * break;\n * case 'HOSTED_FIELDS_FAILED_TOKENIZATION':\n * // occurs for any other tokenization error on the server\n * console.error('Tokenization failed server side. Is the card valid?');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_NETWORK_ERROR':\n * // occurs when the Braintree gateway cannot be contacted\n * console.error('Network error occurred when tokenizing.');\n * break;\n * default:\n * console.error('Something bad happened!', tokenizeErr);\n * }\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize and vault a card\n * hostedFieldsInstance.tokenize({\n * vault: true\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields cardholder name\n * hostedFieldsInstance.tokenize({\n * cardholderName: 'First Last'\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields postal code option\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * postalCode: '11111'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with additional billing address options\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * firstName: 'First',\n * lastName: 'Last',\n * company: 'Company',\n * streetAddress: '123 Street',\n * extendedAddress: 'Unit 1',\n * // passing just one of the country options is sufficient to\n * // associate the card details with a particular country\n * // valid country names and codes can be found here:\n * // https://developer.paypal.com/braintree/docs/reference/general/countries/ruby#list-of-countries\n * countryName: 'United States',\n * countryCodeAlpha2: 'US',\n * countryCodeAlpha3: 'USA',\n * countryCodeNumeric: '840'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Allow tokenization with empty cardholder name field\n * var state = hostedFieldsInstance.getState();\n * var fields = Object.keys(state.fields);\n *\n * // normally, if you tried to tokenize an empty cardholder name field\n * // you would get an error, to allow making this field optional,\n * // tokenize all the fields except for the cardholder name field\n * // when the cardholder name field is empty. Otherwise, tokenize\n * // all the fields\n * if (state.fields.cardholderName.isEmpty) {\n * fields = fields.filter(function (field) {\n * return field !== 'cardholderName';\n * });\n * }\n *\n * hostedFieldsInstance.tokenize({\n * fieldsToTokenize: fields\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n self._bus.emit(events.TOKENIZATION_REQUEST, options, function (response) {\n var err = response[0];\n var payload = response[1];\n\n if (err) {\n self._attachInvalidFieldContainersToError(err);\n reject(new BraintreeError(err));\n } else {\n resolve(payload);\n }\n });\n });\n};\n\n/**\n * Add a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to add a class to. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be added.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is added successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.addClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when adding a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot add class to \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.ADD_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Removes a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to remove a class from. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be removed.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is removed successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * return;\n * }\n *\n * // some time later...\n * hostedFieldsInstance.removeClass('number', 'custom-class');\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when removing a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove class from \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.REMOVE_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets an attribute of a {@link module:braintree-web/hosted-fields~field field}.\n * Supported attributes are `aria-invalid`, `aria-required`, `disabled`, and `placeholder`.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to add to the field.\n * @param {string} options.value The value for the attribute.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is set successfully.\n *\n * @example Set the placeholder attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'placeholder',\n * value: '1111 1111 1111 1111'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @example Set the aria-required attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'aria-required',\n * value: true\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when setting an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot set attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute, options.value);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.SET_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n value: options.value,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets the month options for the expiration month field when presented as a select element.\n *\n * @public\n * @param {array} options An array of 12 entries corresponding to the 12 months.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the options are updated successfully. Errors if expirationMonth is not configured on the Hosted Fields instance or if the expirationMonth field is not configured to be a select input.\n *\n * @example Update the month options to spanish\n * hostedFieldsInstance.setMonthOptions([\n * '01 - enero',\n * '02 - febrero',\n * '03 - marzo',\n * '04 - abril',\n * '05 - mayo',\n * '06 - junio',\n * '07 - julio',\n * '08 - agosto',\n * '09 - septiembre',\n * '10 - octubre',\n * '11 - noviembre',\n * '12 - diciembre'\n * ]);\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setMonthOptions = function (options) {\n var self = this;\n var merchantOptions = this._merchantConfigurationOptions.fields;\n var errorMessage;\n\n if (!merchantOptions.expirationMonth) {\n errorMessage = \"Expiration month field must exist to use setMonthOptions.\";\n } else if (!merchantOptions.expirationMonth.select) {\n errorMessage = \"Expiration month field must be a select element.\";\n }\n\n if (errorMessage) {\n return Promise.reject(\n new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: errorMessage,\n })\n );\n }\n\n return new Promise(function (resolve) {\n self._bus.emit(events.SET_MONTH_OPTIONS, options, resolve);\n });\n};\n\n/**\n * Sets a visually hidden message (for screen readers) on a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~field field}.\n * @param {string} options.message The message to set.\n *\n * @example Set an error message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: 'Invalid card number'\n * });\n *\n * @example Remove the message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: ''\n * });\n *\n * @returns {void}\n */\nHostedFields.prototype.setMessage = function (options) {\n this._bus.emit(events.SET_MESSAGE, {\n field: options.field,\n message: options.message,\n });\n};\n\n/**\n * Removes a supported attribute from a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to remove.\n * @param {string} options.field The field from which you wish to remove an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to remove from the field.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is removed successfully.\n *\n * @example Remove the placeholder attribute of a field\n * hostedFieldsInstance.removeAttribute({\n * field: 'number',\n * attribute: 'placeholder'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when removing an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.REMOVE_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * @deprecated since version 3.8.0. Use {@link HostedFields#setAttribute|setAttribute} instead.\n *\n * @public\n * @param {string} field The field whose placeholder you wish to change. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} placeholder Will be used as the `placeholder` attribute of the input.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the placeholder updated successfully.\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setPlaceholder = function (field, placeholder) {\n return this.setAttribute({\n field: field,\n attribute: \"placeholder\",\n value: placeholder,\n });\n};\n\n/**\n * Clear the value of a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you wish to clear. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field cleared successfully.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * hostedFieldsInstance.clear('number', function (clearErr) {\n * if (clearErr) {\n * console.error(clearErr);\n * }\n * });\n *\n * @example Clear several fields\n * hostedFieldsInstance.clear('number');\n * hostedFieldsInstance.clear('cvv');\n * hostedFieldsInstance.clear('expirationDate');\n */\nHostedFields.prototype.clear = function (field) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when clearing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot clear \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.CLEAR_FIELD, {\n field: field,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Programmatically focus a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you want to focus. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field focused successfully.\n * @returns {void}\n * @example\n * hostedFieldsInstance.focus('number', function (focusErr) {\n * if (focusErr) {\n * console.error(focusErr);\n * }\n * });\n * @example Using an event listener\n * myElement.addEventListener('click', function (e) {\n * // In Firefox, the focus method can be suppressed\n * // if the element has a tabindex property or the element\n * // is an anchor link with an href property.\n * e.preventDefault();\n * hostedFieldsInstance.focus('number');\n * });\n */\nHostedFields.prototype.focus = function (field) {\n var err;\n var fieldConfig = this._fields[field];\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when focusing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot focus \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n fieldConfig.frameElement.focus();\n\n this._bus.emit(events.TRIGGER_INPUT_FOCUS, {\n field: field,\n });\n\n if (browserDetection.isIos()) {\n // Inputs outside of the viewport don't always scroll into view on\n // focus in iOS Safari. 5ms timeout gives the browser a chance to\n // do the right thing and prevents stuttering.\n setTimeout(function () {\n if (!isVisibleEnough(fieldConfig.containerElement)) {\n fieldConfig.containerElement.scrollIntoView();\n }\n }, SAFARI_FOCUS_TIMEOUT);\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Returns an {@link HostedFields~stateObject|object} that includes the state of all fields and possible card types.\n * @public\n * @returns {object} {@link HostedFields~stateObject|stateObject}\n * @example Check if all fields are valid\n * var state = hostedFieldsInstance.getState();\n *\n * var formValid = Object.keys(state.fields).every(function (key) {\n * return state.fields[key].isValid;\n * });\n */\nHostedFields.prototype.getState = function () {\n return this._state;\n};\n\n// React adds decorations to DOM nodes that cause\n// circular dependencies, so we remove them from the\n// config before sending it to the iframes. However,\n// we don't want to mutate the original object that\n// was passed in, so we create fresh objects via assign\nfunction formatMerchantConfigurationForIframes(config) {\n var formattedConfig = assign({}, config);\n\n formattedConfig.fields = assign({}, formattedConfig.fields);\n Object.keys(formattedConfig.fields).forEach(function (field) {\n formattedConfig.fields[field] = assign({}, formattedConfig.fields[field]);\n delete formattedConfig.fields[field].container;\n });\n\n return formattedConfig;\n}\n\nmodule.exports = wrapPromise.wrapPrototype(HostedFields);\n\n},{\"../../lib/analytics\":135,\"../../lib/assign\":137,\"../../lib/braintree-error\":140,\"../../lib/constants\":142,\"../../lib/convert-methods-to-error\":143,\"../../lib/create-assets-url\":145,\"../../lib/create-deferred-client\":147,\"../../lib/destructor\":149,\"../../lib/errors\":151,\"../../lib/find-root-node\":152,\"../../lib/is-verified-domain\":170,\"../../lib/methods\":172,\"../../lib/shadow\":175,\"../shared/browser-detection\":127,\"../shared/constants\":128,\"../shared/errors\":129,\"../shared/find-parent-tags\":130,\"../shared/focus-intercept\":131,\"../shared/get-card-types\":132,\"./attribute-validation-error\":120,\"./compose-url\":121,\"./focus-change\":122,\"./get-styles-from-class\":123,\"./inject-frame\":125,\"@braintree/event-emitter\":30,\"@braintree/iframer\":32,\"@braintree/uuid\":36,\"@braintree/wrap-promise\":40,\"framebus\":50}],125:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar focusIntercept = _dereq_(\"../shared/focus-intercept\");\nvar directions = _dereq_(\"../shared/constants\").navigationDirections;\n\nmodule.exports = function injectFrame(id, frame, container, focusHandler) {\n var frameType = frame.getAttribute(\"type\");\n var clearboth = document.createElement(\"div\");\n var fragment = document.createDocumentFragment();\n var focusInterceptBefore = focusIntercept.generate(\n id,\n frameType,\n directions.BACK,\n focusHandler\n );\n var focusInterceptAfter = focusIntercept.generate(\n id,\n frameType,\n directions.FORWARD,\n focusHandler\n );\n\n clearboth.style.clear = \"both\";\n\n fragment.appendChild(focusInterceptBefore);\n fragment.appendChild(frame);\n fragment.appendChild(focusInterceptAfter);\n fragment.appendChild(clearboth);\n\n container.appendChild(fragment);\n\n return [frame, clearboth];\n};\n\n},{\"../shared/constants\":128,\"../shared/focus-intercept\":131}],126:[function(_dereq_,module,exports){\n\"use strict\";\n/** @module braintree-web/hosted-fields */\n\nvar HostedFields = _dereq_(\"./external/hosted-fields\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar errors = _dereq_(\"./shared/errors\");\nvar supportsInputFormatting = _dereq_(\"restricted-input/supports-input-formatting\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar VERSION = \"3.115.2\";\n\n/**\n * Fields used in {@link module:braintree-web/hosted-fields~fieldOptions fields options}\n * @typedef {object} field\n * @property {string} selector Deprecated: Now an alias for `options.container`.\n * @property {(string|HTMLElement)} container A DOM node or CSS selector to find the container where the hosted field will be inserted.\n * @property {string} [placeholder] Will be used as the `placeholder` attribute of the input. If `placeholder` is not natively supported by the browser, it will be polyfilled.\n * @property {string} [type] Will be used as the `type` attribute of the input. To mask `cvv` input, for instance, `type: \"password\"` can be used.\n * @property {string} [iframeTitle] The title used for the iframe containing the credit card input. By default, this will be `Secure Credit Card Frame - `.\n * @property {string} [internalLabel] Each Hosted Field iframe has a hidden label that is used by screen readers to identify the input. The `internalLabel` property can be used to customize the field for localization purposes. The default values are:\n * * number: Credit Card Number\n * * cvv: CVV\n * * expirationDate: Expiration Date\n * * expirationMonth: Expiration Month\n * * expirationYear: Expiration Year\n * * postalCode: Postal Code\n * * cardholderName: Cardholder Name\n * @property {boolean} [formatInput=true] Enable or disable automatic formatting on this field.\n * @property {(object|boolean)} [maskInput=false] Enable or disable input masking when input is not focused. If set to `true` instead of an object, the defaults for the `maskInput` parameters will be used.\n * @property {string} [maskInput.character=•] The character to use when masking the input. The default character ('•') uses a unicode symbol, so the webpage must support UTF-8 characters when using the default.\n * @property {Boolean} [maskInput.showLastFour=false] Only applicable for the credit card field. Whether or not to show the last 4 digits of the card when masking.\n * @property {(object|boolean)} [select] If truthy, this field becomes a `\n ? getSelectedValues(options) : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n }, [setFieldValue, state.values]);\n var handleChange = useEventCallback(function (eventOrPath) {\n if (isString(eventOrPath)) {\n return function (event) {\n return executeChange(event, eventOrPath);\n };\n } else {\n executeChange(eventOrPath);\n }\n });\n var setFieldTouched = useEventCallback(function (field, touched, shouldValidate) {\n if (touched === void 0) {\n touched = true;\n }\n\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field: field,\n value: touched\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var executeBlur = useCallback(function (e, path) {\n if (e.persist) {\n e.persist();\n }\n\n var _e$target = e.target,\n name = _e$target.name,\n id = _e$target.id,\n outerHTML = _e$target.outerHTML;\n var field = path ? path : name ? name : id;\n\n if (!field && process.env.NODE_ENV !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur'\n });\n }\n\n setFieldTouched(field, true);\n }, [setFieldTouched]);\n var handleBlur = useEventCallback(function (eventOrString) {\n if (isString(eventOrString)) {\n return function (event) {\n return executeBlur(event, eventOrString);\n };\n } else {\n executeBlur(eventOrString);\n }\n });\n var setFormikState = useCallback(function (stateOrCb) {\n if (isFunction(stateOrCb)) {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: stateOrCb\n });\n } else {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: function payload() {\n return stateOrCb;\n }\n });\n }\n }, []);\n var setStatus = useCallback(function (status) {\n dispatch({\n type: 'SET_STATUS',\n payload: status\n });\n }, []);\n var setSubmitting = useCallback(function (isSubmitting) {\n dispatch({\n type: 'SET_ISSUBMITTING',\n payload: isSubmitting\n });\n }, []);\n var submitForm = useEventCallback(function () {\n dispatch({\n type: 'SUBMIT_ATTEMPT'\n });\n return validateFormWithHighPriority().then(function (combinedErrors) {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n var isInstanceOfError = combinedErrors instanceof Error;\n var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n var promiseOrUndefined;\n\n try {\n promiseOrUndefined = executeSubmit(); // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined).then(function (result) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_SUCCESS'\n });\n }\n\n return result;\n })[\"catch\"](function (_errors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // throw combinedErrors;\n\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n\n return;\n });\n });\n var handleSubmit = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n } // Warn if form submission is triggered by a ,\n * The target will be the image, not the button, which we don't want here\n */\nfunction getClickTargetNode(event) {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nfunction getTargetNode(event) {\n if (isEventWithTarget(event)) {\n return event.target ;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event) {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n\nlet handlers;\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nfunction onWindowOpen(cb) {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers ).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen() {\n fill(WINDOW, 'open', function (originalWindowOpen) {\n return function (...args) {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n\n/** Any IncrementalSource for rrweb that we interpret as a kind of mutation. */\nconst IncrementalMutationSources = new Set([\n IncrementalSource.Mutation,\n IncrementalSource.StyleSheetRule,\n IncrementalSource.StyleDeclaration,\n IncrementalSource.AdoptedStyleSheet,\n IncrementalSource.CanvasMutation,\n IncrementalSource.Selection,\n IncrementalSource.MediaInteraction,\n]);\n\n/** Handle a click. */\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nclass ClickDetector {\n // protected for testing\n\n constructor(\n replay,\n slowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n addListeners() {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n removeListeners() {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n handleClick(breadcrumb, node) {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n registerMutation(timestamp = Date.now()) {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerScroll(timestamp = Date.now()) {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerClick(element) {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node );\n }\n\n /** Count multiple clicks on elements. */\n _handleMultiClick(node) {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n _getClicks(node) {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n _checkClicks() {\n const timedOutClicks = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n _generateBreadcrumbs(click) {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n _scheduleCheckClicks() {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout$3(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nfunction ignoreElement(node, ignoreSelector) {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb) {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds() {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (IncrementalMutationSources.has(source)) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch (e) {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event) {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event,\n) {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n\n/**\n * Create a breadcrumb for a replay.\n */\nfunction createBreadcrumb(\n breadcrumb,\n) {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\n// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nfunction getAttributesToRecord(attributes) {\n const obj = {};\n if (!attributes['data-sentry-component'] && attributes['data-sentry-element']) {\n attributes['data-sentry-component'] = attributes['data-sentry-element'];\n }\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n\nconst handleDomListener = (\n replay,\n) => {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event ) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result ,\n getClickTargetNode(handlerData.event ) ,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nfunction getBaseDomBreadcrumb(target, message) {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text ).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nfunction handleDom(handlerData) {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData) {\n const isClick = handlerData.name === 'click';\n\n let message;\n let target = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event ) : getTargetNode(handlerData.event );\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node) {\n return node.type === NodeType.Element;\n}\n\n/** Handle keyboard events & create breadcrumbs. */\nfunction handleKeyboardEvent(replay, event) {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nfunction getKeyboardBreadcrumb(event) {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target ) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target , message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target) {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES\n\n = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Handler creater for web vitals\n */\nfunction webVitalHandler(\n getter,\n replay,\n) {\n return ({ metric }) => void replay.replayPerformanceEntries.push(getter(metric));\n}\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nfunction createPerformanceEntries(\n entries,\n) {\n return entries.map(createPerformanceEntry).filter(Boolean) ;\n}\n\nfunction createPerformanceEntry(entry) {\n const entryType = ENTRY_TYPES[entry.entryType];\n if (!entryType) {\n return null;\n }\n\n return entryType(entry);\n}\n\nfunction getAbsoluteTime(time) {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry) {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry) {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry,\n) {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on a LCP metric.\n */\nfunction getLargestContentfulPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.element ? [lastEntry.element] : undefined;\n return getWebVital(metric, 'largest-contentful-paint', node);\n}\n\nfunction isLayoutShift(entry) {\n return (entry ).sources !== undefined;\n}\n\n/**\n * Add a CLS event to the replay based on a CLS metric.\n */\nfunction getCumulativeLayoutShift(metric) {\n const layoutShifts = [];\n const nodes = [];\n for (const entry of metric.entries) {\n if (isLayoutShift(entry)) {\n const nodeIds = [];\n for (const source of entry.sources) {\n if (source.node) {\n nodes.push(source.node);\n const nodeId = record.mirror.getId(source.node);\n if (nodeId) {\n nodeIds.push(nodeId);\n }\n }\n }\n layoutShifts.push({ value: entry.value, nodeIds: nodeIds.length ? nodeIds : undefined });\n }\n }\n\n return getWebVital(metric, 'cumulative-layout-shift', nodes, layoutShifts);\n}\n\n/**\n * Add a FID event to the replay based on a FID metric.\n */\nfunction getFirstInputDelay(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'first-input-delay', node);\n}\n\n/**\n * Add an INP event to the replay based on an INP metric.\n */\nfunction getInteractionToNextPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'interaction-to-next-paint', node);\n}\n\n/**\n * Add an web vital event to the replay based on the web vital metric.\n */\nfunction getWebVital(\n metric,\n name,\n nodes,\n attributions,\n) {\n const value = metric.value;\n const rating = metric.rating;\n\n const end = getAbsoluteTime(value);\n\n return {\n type: 'web-vital',\n name,\n start: end,\n end,\n data: {\n value,\n size: value,\n rating,\n nodeIds: nodes ? nodes.map(node => record.mirror.getId(node)) : undefined,\n attributions,\n },\n };\n}\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nfunction setupPerformanceObserver(replay) {\n function addPerformanceEntry(entry) {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }) {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks = [];\n\n (['navigation', 'paint', 'resource'] ).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(webVitalHandler(getLargestContentfulPaint, replay)),\n addClsInstrumentationHandler(webVitalHandler(getCumulativeLayoutShift, replay)),\n addFidInstrumentationHandler(webVitalHandler(getFirstInputDelay, replay)),\n addInpInstrumentationHandler(webVitalHandler(getInteractionToNextPaint, replay)),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n\nconst r = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}},L=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},O=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},j=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},q=function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&j(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}},B=function(t){return 10+(t.filename?t.filename.length+1:0)},G=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(O(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();var H=function(){function t(t,n){this.c=L(),this.v=1,G.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),G.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=O(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=L();i.p(n.dictionary),j(t,2,i.d())}}(r,this.o),this.v=0),n&&j(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),J=\"undefined\"!=typeof TextEncoder&&new TextEncoder,K=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{K.decode(F,{stream:!0})}catch(t){}var N=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(P(t),this.d=n||!1)},t}();function P(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}function Q(t){return function(t,n){n||(n={});var r=S(),e=t.length;r.p(t);var i=O(t,n,B(n),8),a=i.length;return q(i,n),j(i,a-8,r.d()),j(i,a-4,e),i}(P(t))}const R=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n{this._deflatedData.push(t)},this.stream=new N(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},V={clear:()=>{R.clear()},addEvent:t=>R.addEvent(t),finish:()=>R.finish(),compress:t=>Q(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in V&&\"function\"==typeof V[n])try{const t=V[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n\nfunction e(){const e=new Blob([r]);return URL.createObjectURL(e)}\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nclass EventBufferSizeExceededError extends Error {\n constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nclass EventBufferArray {\n /** All the events that are buffered to be sent. */\n\n /** @inheritdoc */\n\n constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n get type() {\n return 'sync';\n }\n\n /** @inheritdoc */\n destroy() {\n this.events = [];\n }\n\n /** @inheritdoc */\n async addEvent(event) {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n finish() {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n clear() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass WorkerHandler {\n\n constructor(worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }) => {\n if ((data ).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n destroy() {\n DEBUG_BUILD && logger.info('Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n postMessage(method, arg) {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }) => {\n const response = data ;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('Error in compression worker: ', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response );\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n _getAndIncrementId() {\n return this._id++;\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass EventBufferCompressionWorker {\n /** @inheritdoc */\n\n constructor(worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n get type() {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n destroy() {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n addEvent(event) {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n finish() {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n clear() {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.exception(e, 'Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n _sendEventToWorker(data) {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n async _finishRequest() {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nclass EventBufferProxy {\n\n constructor(worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n get type() {\n return this._used.type;\n }\n\n /** @inheritDoc */\n get hasEvents() {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n get hasCheckout() {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n set hasCheckout(value) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n destroy() {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n clear() {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n addEvent(event) {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n async finish() {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n ensureWorkerIsLoaded() {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n async _ensureWorkerIsLoaded() {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n DEBUG_BUILD && logger.exception(error, 'Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n async _switchToCompressionWorker() {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n\n // Can now clear fallback buffer as it's no longer necessary\n this._fallback.clear();\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to add events when switching buffers.');\n }\n }\n}\n\n/**\n * Create an event buffer for replays.\n */\nfunction createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}) {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n DEBUG_BUILD && logger.info('Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl) {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n DEBUG_BUILD && logger.info(`Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl() {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return e();\n }\n\n return '';\n}\n\n/** If sessionStorage is available. */\nfunction hasSessionStorage() {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nfunction clearSession(replay) {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession() {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nfunction isSampled(sampleRate) {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n\n/**\n * Get a session with defaults & applied sampling.\n */\nfunction makeSession(session) {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n\n/**\n * Save a session to session storage.\n */\nfunction saveSession(session) {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nfunction createSession(\n { sessionSampleRate, allowBuffering, stickySession = false },\n { previousSessionId } = {},\n) {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n\n/**\n * Fetches a session from storage\n */\nfunction fetchSession() {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) ;\n\n DEBUG_BUILD && logger.infoTick('Loading existing session');\n\n return makeSession(sessionObj);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nfunction isExpired(\n initialTime,\n expiry,\n targetTime = +new Date(),\n) {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n\n/**\n * Checks to see if session is expired\n */\nfunction isSessionExpired(\n session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n },\n) {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n\n/** If the session should be refreshed or not. */\nfunction shouldRefreshSession(\n session,\n { sessionIdleExpire, maxReplayDuration },\n) {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nfunction loadOrCreateSession(\n {\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }\n\n,\n sessionOptions,\n) {\n const existingSession = sessionOptions.stickySession && fetchSession();\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n DEBUG_BUILD && logger.infoTick('Creating new session');\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n DEBUG_BUILD && logger.infoTick('Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n\nfunction isCustomEvent(event) {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEventSync(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n replay.handleException(error);\n\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nfunction shouldAddEvent(replay, event) {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n DEBUG_BUILD &&\n logger.infoTick(`Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`);\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event,\n callback,\n) {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.exception(error, 'An error occured in the `beforeAddRecordingEvent` callback, skipping the event...');\n return null;\n }\n\n return event;\n}\n\n/** If the event is an error event */\nfunction isErrorEvent(event) {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nfunction isReplayEvent(event) {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nfunction isFeedbackEvent(event) {\n return event.type === 'feedback';\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleAfterSendEvent(replay) {\n return (event, sendResponse) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (!statusCode || statusCode < 200 || statusCode >= 300) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id );\n }\n}\n\nfunction handleErrorEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout$3(async () => {\n try {\n // Capture current event buffer as new replay\n await replay.sendBufferedReplayOrFlush();\n } catch (err) {\n replay.handleException(err);\n }\n });\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleBeforeSendEvent(replay) {\n return (event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay, event) {\n const exceptionValue =\n event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n // With newer React versions, the messages changed to a different website https://react.dev/errors/418\n exceptionValue.match(\n /(reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=|react\\.dev\\/errors\\/)(418|419|422|423|425)/,\n ) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n data: {\n url: getLocationHref(),\n },\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n\n/**\n * Handle breadcrumbs that Sentry captures, and make sure to capture relevant breadcrumbs to Replay as well.\n */\nfunction handleBreadcrumbs(replay) {\n const client = getClient();\n\n if (!client) {\n return;\n }\n\n client.on('beforeAddBreadcrumb', breadcrumb => beforeAddBreadcrumb(replay, breadcrumb));\n}\n\nfunction beforeAddBreadcrumb(replay, breadcrumb) {\n if (!replay.isEnabled() || !isBreadcrumbWithCategory(breadcrumb)) {\n return;\n }\n\n const result = normalizeBreadcrumb(breadcrumb);\n if (result) {\n addBreadcrumbEvent(replay, result);\n }\n}\n\n/** Exported only for tests. */\nfunction normalizeBreadcrumb(breadcrumb) {\n if (\n !isBreadcrumbWithCategory(breadcrumb) ||\n [\n // fetch & xhr are handled separately,in handleNetworkBreadcrumbs\n 'fetch',\n 'xhr',\n // These two are breadcrumbs for emitted sentry events, we don't care about them\n 'sentry.event',\n 'sentry.transaction',\n ].includes(breadcrumb.category) ||\n // We capture UI breadcrumbs separately\n breadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (breadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(breadcrumb);\n }\n\n return createBreadcrumb(breadcrumb);\n}\n\n/** exported for tests only */\nfunction normalizeConsoleBreadcrumb(\n breadcrumb,\n) {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch (e) {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n\nfunction isBreadcrumbWithCategory(breadcrumb) {\n return !!breadcrumb.category;\n}\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nfunction isRrwebError(event, hint) {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nfunction addFeedbackBreadcrumb(replay, event) {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } );\n\n return false;\n });\n}\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nfunction shouldSampleForBufferEvent(replay, event) {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nfunction handleGlobalEventListener(replay) {\n return Object.assign(\n (event, hint) => {\n // Do nothing if replay has been disabled or paused\n if (!replay.isEnabled() || replay.isPaused()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n\n/**\n * Create a \"span\" for each performance entry.\n */\nfunction createPerformanceSpans(\n replay,\n entries,\n) {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n\nfunction handleHistory(handlerData) {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nfunction handleHistorySpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nfunction shouldFilterRequest(replay, url) {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n\n/** Add a performance entry breadcrumb */\nfunction addNetworkBreadcrumb(\n replay,\n result,\n) {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n\n/** Get the size of a body. */\nfunction getBodySize(body) {\n if (!body) {\n return undefined;\n }\n\n const textEncoder = new TextEncoder();\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch (e) {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nfunction parseContentLengthHeader(header) {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nfunction getBodyString(body) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nfunction mergeWarning(\n info,\n warning,\n) {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nfunction makeNetworkReplayBreadcrumb(\n type,\n data,\n) {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nfunction buildNetworkRequestOrResponse(\n headers,\n bodySize,\n body,\n) {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nfunction getAllowedHeaders(headers, allowedHeaders) {\n return Object.entries(headers).reduce((filteredHeaders, [key, value]) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = value;\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData) {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body)\n\n {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch (e2) {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str) {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nfunction urlMatches(url, urls) {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nfunction getFullUrl(url, baseURI = WINDOW.document.baseURI) {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureFetchBreadcrumbToReplay(\n breadcrumb,\n hint,\n options\n\n,\n) {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture fetch breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichFetchBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders },\n input,\n requestBodySize,\n) {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nasync function _getResponseInfo(\n captureDetails,\n {\n networkCaptureBodies,\n networkResponseHeaders,\n },\n response,\n responseBodySize,\n) {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText,\n {\n networkCaptureBodies,\n responseBodySize,\n captureDetails,\n headers,\n }\n\n,\n) {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined ? getBodySize(bodyText) : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize response body');\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response) {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to get text body from response');\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs = []) {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] ).body;\n}\n\nfunction getAllHeaders(headers, allowedHeaders) {\n const allHeaders = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) ;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] , allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] , allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input,\n allowedHeaders,\n) {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response) {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.exception(error, 'Failed to clone response body');\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout$3(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n}\n\nasync function _getResponseText(response) {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureXhrBreadcrumbToReplay(\n breadcrumb,\n hint,\n options,\n) {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture xhr breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichXhrBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr) {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc, line) => {\n const [key, value] = line.split(': ') ;\n if (value) {\n acc[key.toLowerCase()] = value;\n }\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr) {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nfunction _parseXhrResponse(\n body,\n responseType,\n) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body,\n responseType,\n) {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr);\n } catch (e2) {\n return undefined;\n }\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nfunction handleNetworkBreadcrumbs(replay) {\n const client = getClient();\n\n try {\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options = {\n replay,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n }\n } catch (e2) {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nfunction beforeAddNetworkBreadcrumb(\n options,\n breadcrumb,\n hint,\n) {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.exception(e, 'Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint) {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint) {\n return hint && hint.response;\n}\n\n/**\n * Add global listeners that cannot be removed.\n */\nfunction addGlobalListeners(replay) {\n // Listeners from core SDK //\n const client = getClient();\n\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleBreadcrumbs(replay);\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay);\n addEventProcessor(eventProcessor);\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (client) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('spanStart', span => {\n replay.lastActiveSpan = span;\n });\n\n // We may be missing the initial spanStart due to timing issues,\n // so we capture it on finish again.\n client.on('spanEnd', span => {\n replay.lastActiveSpan = span;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nasync function addMemoryEntry(replay) {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry) {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout$3(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout$3(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nfunction getHandleRecordingEmit(replay) {\n let hadFirstEvent = false;\n\n return (event, _isCheckout) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n const session = replay.session;\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time. We have an experimental mode\n // to perform multiple checkouts a session (the idea is to improve\n // seeking during playback), so also only include if segmentId is 0\n // (handled in `addSettingsEvent`).\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (session && session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n DEBUG_BUILD &&\n logger.info(`Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`);\n\n session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nfunction createOptionsEvent(replay) {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay, isCheckout) {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n\n/**\n * Reset the `replay_id` field on the DSC.\n */\nfunction resetReplayIdOnDynamicSamplingContext() {\n // Reset DSC on the current scope, if there is one\n const dsc = getCurrentScope().getPropagationContext().dsc;\n if (dsc) {\n delete dsc.replay_id;\n }\n\n // Clear it from frozen DSC on the active span\n const activeSpan = getActiveSpan();\n if (activeSpan) {\n const dsc = getDynamicSamplingContextFromSpan(activeSpan);\n delete (dsc ).replay_id;\n }\n}\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nfunction createReplayEnvelope(\n replayEvent,\n recordingData,\n dsn,\n tunnel,\n) {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n\n/**\n * Prepare the recording data ready to be sent.\n */\nfunction prepareRecordingData({\n recordingData,\n headers,\n}\n\n) {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nasync function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}\n\n) {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint = { event_id, integrations };\n\n client.emit('preprocessEvent', event, eventHint);\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) ;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n\n/**\n * Send replay attachment using `fetch()`\n */\nasync function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}) {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return resolvedSyncPromise({});\n }\n\n const baseEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n DEBUG_BUILD && logger.info('An event processor returned `null`, will not send event.');\n return resolvedSyncPromise({});\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n throw error;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nclass TransportStatusCodeError extends Error {\n constructor(statusCode) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nclass RateLimitError extends Error {\n\n constructor(rateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nasync function sendReplay(\n replayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n) {\n const { recordingData, onError } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (onError) {\n onError(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout$3(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n\nconst THROTTLED = '__THROTTLED';\nconst SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction throttle(\n fn,\n maxCount,\n durationSeconds,\n) {\n const counter = new Map();\n\n const _cleanup = (now) => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = () => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest) => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n\n/* eslint-disable max-lines */ // TODO: We might want to split this file up\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nclass ReplayContainer {\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n /**\n * The current or last active span.\n * This is only available when performance is enabled.\n */\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n\n /** The replay has to be manually started, because no sample rate (neither session or error) was provided. */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n\n /**\n * Is the integration currently active?\n */\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n\n /**\n * Function to stop recording\n */\n\n /**\n * Internal use for canvas recording options\n */\n\n constructor({\n options,\n recordingOptions,\n }\n\n) {ReplayContainer.prototype.__init.call(this);ReplayContainer.prototype.__init2.call(this);ReplayContainer.prototype.__init3.call(this);ReplayContainer.prototype.__init4.call(this);ReplayContainer.prototype.__init5.call(this);ReplayContainer.prototype.__init6.call(this);\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } ;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._requiresManualStart = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event, isCheckout) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n\n // Configure replay logger w/ experimental options\n if (DEBUG_BUILD) {\n const experiments = options._experiments;\n logger.setConfig({\n captureExceptions: !!experiments.captureExceptions,\n traceInternals: !!experiments.traceInternals,\n });\n }\n }\n\n /** Get the event context. */\n getContext() {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n isEnabled() {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n isPaused() {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n isRecordingCanvas() {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n getOptions() {\n return this._options;\n }\n\n /** A wrapper to conditionally capture exceptions. */\n handleException(error) {\n DEBUG_BUILD && logger.exception(error);\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n initializeSampling(previousSessionId) {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n const requiresManualStart = errorSampleRate <= 0 && sessionSampleRate <= 0;\n\n this._requiresManualStart = requiresManualStart;\n\n if (requiresManualStart) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n DEBUG_BUILD && logger.exception(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n DEBUG_BUILD && logger.infoTick(`Starting replay in ${this.recordingMode} mode`);\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (this._isEnabled && this.recordingMode === 'session') {\n DEBUG_BUILD && logger.info('Recording is already in progress');\n return;\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in session mode');\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n startBuffering() {\n if (this._isEnabled) {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in buffer mode');\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n startRecording() {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer'\n ? { checkoutEveryNms: BUFFER_CHECKOUT_TIME }\n : // Otherwise, use experimental option w/ min checkout time of 6 minutes\n // This is to improve playback seeking as there could potentially be\n // less mutations to process in the worse cases.\n //\n // checkout by \"N\" events is probably ideal, but means we have less\n // control about the number of checkouts we make (which generally\n // increases replay size)\n this._options._experiments.continuousCheckout && {\n // Minimum checkout time is 6 minutes\n checkoutEveryNms: Math.max(360000, this._options._experiments.continuousCheckout),\n }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n stopRecording() {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this.handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n async stop({ forceFlush = false, reason } = {}) {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n DEBUG_BUILD && logger.info(`Stopping Replay${reason ? ` triggered by ${reason}` : ''}`);\n\n resetReplayIdOnDynamicSamplingContext();\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n pause() {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n DEBUG_BUILD && logger.info('Pausing replay');\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n resume() {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n DEBUG_BUILD && logger.info('Resuming replay');\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n async sendBufferedReplayOrFlush({ continueRecording = true } = {}) {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n DEBUG_BUILD && logger.info('Converting buffer to session');\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode ) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n addUpdate(cb) {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n triggerUserActivity() {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n updateUserActivity() {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n conditionalFlush() {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n flush() {\n return this._debouncedFlush() ;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n flushImmediate() {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() ;\n }\n\n /**\n * Cancels queued up flushes.\n */\n cancelFlush() {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n getSessionId() {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n checkAndHandleExpiredSession() {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n setInitialState() {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n throttledAddEvent(\n event,\n isCheckout,\n ) {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n getCurrentRoute() {\n const lastActiveSpan = this.lastActiveSpan || getActiveSpan();\n const lastRootSpan = lastActiveSpan && getRootSpan(lastActiveSpan);\n\n const attributes = (lastRootSpan && spanToJSON(lastRootSpan).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastRootSpan || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastRootSpan).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n _initializeRecording() {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n _initializeSessionForSampling(previousSessionId) {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n _checkSession() {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n async _refreshSession(session) {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n _addListeners() {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this.handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n _removeListeners() {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n __init() {this._handleVisibilityChange = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };}\n\n /**\n * Handle when page is blurred\n */\n __init2() {this._handleWindowBlur = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };}\n\n /**\n * Handle when page is focused\n */\n __init3() {this._handleWindowFocus = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };}\n\n /** Ensure page remains active when a key is pressed. */\n __init4() {this._handleKeyboardEvent = (event) => {\n handleKeyboardEvent(this, event);\n };}\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n _doChangeToBackgroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n _doChangeToForegroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n DEBUG_BUILD && logger.info('Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n _updateUserActivity(_lastActivity = Date.now()) {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n _updateSessionActivity(_lastActivity = Date.now()) {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n _createCustomBreadcrumb(breadcrumb) {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n _addPerformanceEntries() {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n _clearContext() {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n _updateInitialTimestampFromEventBuffer() {\n const { session, eventBuffer } = this;\n // If replay was started manually (=no sample rate was given),\n // We do not want to back-port the initial timestamp\n if (!session || !eventBuffer || this._requiresManualStart) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n _popEventContext() {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n async _runFlush() {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n timestamp,\n onError: err => this.handleException(err),\n });\n } catch (err) {\n this.handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n const dropReason = err instanceof RateLimitError ? 'ratelimit_backoff' : 'send_error';\n client.recordDroppedEvent(dropReason, 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n __init5() {this._flush = async ({\n force = false,\n }\n\n = {}) => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5000;\n if (tooShort || tooLong) {\n DEBUG_BUILD &&\n logger.info(\n `Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n DEBUG_BUILD && logger.info('Flushing initial segment without checkout.');\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n const _flushInProgress = !!this._flushLock;\n\n // this._flushLock acts as a lock so that future calls to `_flush()` will\n // be blocked until current flush is finished (i.e. this promise resolves)\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n }\n\n try {\n await this._flushLock;\n } catch (err) {\n this.handleException(err);\n } finally {\n this._flushLock = undefined;\n\n if (_flushInProgress) {\n // Wait for previous flush to finish, then call the debounced\n // `_flush()`. It's possible there are other flush requests queued and\n // waiting for it to resolve. We want to reduce all outstanding\n // requests (as well as any new flush requests that occur within a\n // second of the locked flush completing) into a single flush.\n this._debouncedFlush();\n }\n }\n };}\n\n /** Save the session, if it is sticky */\n _maybeSaveSession() {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n __init6() {this._onMutationHandler = (mutations) => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };}\n}\n\nfunction getOption(selectors, defaultSelectors) {\n return [\n ...selectors,\n // sentry defaults\n ...defaultSelectors,\n ].join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nfunction getPrivacyOptions({ mask, unmask, block, unblock, ignore }) {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]']);\n const unmaskSelector = getOption(unmask, []);\n\n const options = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(block, ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements]),\n unblockSelector: getOption(unblock, []),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]']),\n };\n\n return options;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nfunction maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}) {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\n/**\n * Sentry integration for [Session Replay](https://sentry.io/for/session-replay/).\n *\n * See the [Replay documentation](https://docs.sentry.io/platforms/javascript/guides/session-replay/) for more information.\n *\n * @example\n *\n * ```\n * Sentry.init({\n * dsn: '__DSN__',\n * integrations: [Sentry.replayIntegration()],\n * });\n * ```\n */\nconst replayIntegration = ((options) => {\n return new Replay(options);\n}) ;\n\n/**\n * Replay integration\n *\n * TODO: Rewrite this to be functional integration\n * Exported for tests.\n */\nclass Replay {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Replay';}\n\n /**\n * @inheritDoc\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n\n constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10000,\n\n slowClickTimeout = 7000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n } = {}) {\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key, value, el) =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n get _isInitialized() {\n return _initialized;\n }\n\n /** Update _isInitialized */\n set _isInitialized(value) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n afterAllSetup(client) {\n if (!isBrowser() || this._replay) {\n return;\n }\n\n this._setup(client);\n this._initialize(client);\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (!this._replay) {\n return;\n }\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n startBuffering() {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n stop() {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * If replay is not enabled, a new session replay is started.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n flush(options) {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n // assuming a session should be recorded in this case\n if (!this._replay.isEnabled()) {\n this._replay.start();\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n getReplayId() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n _initialize(client) {\n if (!this._replay) {\n return;\n }\n\n this._maybeLoadFromReplayCanvasIntegration(client);\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n _setup(client) {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions, client);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n _maybeLoadFromReplayCanvasIntegration(client) {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const canvasIntegration = client.getIntegrationByName('ReplayCanvas')\n\n;\n if (!canvasIntegration) {\n return;\n }\n\n this._replay['_canvas'] = canvasIntegration.getOptions();\n } catch (e) {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}Replay.__initStatic();\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions, client) {\n const opt = client.getOptions() ;\n\n const finalOptions = {\n sessionSampleRate: 0,\n errorSampleRate: 0,\n ...dropUndefinedKeys(initialOptions),\n };\n\n const replaysSessionSampleRate = parseSampleRate(opt.replaysSessionSampleRate);\n const replaysOnErrorSampleRate = parseSampleRate(opt.replaysOnErrorSampleRate);\n\n if (replaysSessionSampleRate == null && replaysOnErrorSampleRate == null) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (replaysSessionSampleRate != null) {\n finalOptions.sessionSampleRate = replaysSessionSampleRate;\n }\n\n if (replaysOnErrorSampleRate != null) {\n finalOptions.errorSampleRate = replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers) {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\nfunction getReplay() {\n const client = getClient();\n return client && client.getIntegrationByName('Replay');\n}\n\nexport { getReplay, replayIntegration };\n//# sourceMappingURL=index.js.map\n","globalThis[\"__sentryRewritesTunnelPath__\"] = undefined;\nglobalThis[\"SENTRY_RELEASE\"] = {\"id\":\"685818ef7eb13d9a5bc679a0c74862621eff0858\"};\nglobalThis[\"__sentryBasePath\"] = undefined;\nglobalThis[\"__rewriteFramesAssetPrefixPath__\"] = \"\";\n// This file configures the initialization of Sentry on the client.\n// The config you add here will be used whenever a users loads a page in their browser.\n// https://docs.sentry.io/platforms/javascript/guides/nextjs/\nimport * as Sentry from '@sentry/nextjs';\n\nSentry.init({\n dsn: 'https://88ff4c99da4b1b6953f256b3197b2458@o1356865.ingest.us.sentry.io/4506456597725184',\n\n // Add optional integrations for additional features\n integrations: [Sentry.replayIntegration()],\n\n // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control.\n tracesSampleRate: 1,\n\n // Define how likely Replay events are sampled.\n // This sets the sample rate to be 10%. You may want this to be 100% while\n // in development and sample at a lower rate in production\n replaysSessionSampleRate: 0.1,\n\n // Define how likely Replay events are sampled when an error occurs.\n replaysOnErrorSampleRate: 1.0,\n\n // Setting this option to true will print useful information to the console while you're setting up Sentry.\n debug: false,\n\n // Release version\n release: process.env.PACKAGE_VERSION,\n\n //Environment\n environment: process.env.NEXT_PUBLIC_ENV,\n ignoreErrors: [\n 'AbortError',\n 'ResizeObserver loop completed with undelivered notifications.',\n 'ResizeObserver loop limit exceeded',\n 'NotAllowedError',\n ],\n});\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n type JSX,\n} from 'react'\nimport * as ReactDOM from 'react-dom'\nimport Head from '../../shared/lib/head'\nimport {\n imageConfigDefault,\n VALID_LOADERS,\n} from '../../shared/lib/image-config'\nimport type {\n ImageConfigComplete,\n LoaderValue,\n} from '../../shared/lib/image-config'\nimport { useIntersection } from '../use-intersection'\nimport { ImageConfigContext } from '../../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport { normalizePathTrailingSlash } from '../normalize-trailing-slash'\n\nfunction normalizeSrc(src: string): string {\n return src[0] === '/' ? src.slice(1) : src\n}\n\nconst supportsFloat = typeof ReactDOM.preload === 'function'\nconst DEFAULT_Q = 75\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\nconst loadedImageURLs = new Set()\nconst allImgs = new Map<\n string,\n { src: string; priority: boolean; placeholder: string }\n>()\nlet perfObserver: PerformanceObserver | undefined\nconst emptyDataURL =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & { allSizes: number[] }\nexport type ImageLoader = (resolverProps: ImageLoaderProps) => string\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (\n resolverProps: ImageLoaderPropsWithConfig\n) => string\ntype ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly\n}\n\nfunction imgixLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300\n const url = new URL(`${config.path}${normalizeSrc(src)}`)\n const params = url.searchParams\n\n // auto params can be combined with comma separation, or reiteration\n params.set('auto', params.getAll('auto').join(',') || 'format')\n params.set('fit', params.get('fit') || 'max')\n params.set('w', params.get('w') || width.toString())\n\n if (quality) {\n params.set('q', quality.toString())\n }\n\n return url.href\n}\n\nfunction akamaiLoader({\n config,\n src,\n width,\n}: ImageLoaderPropsWithConfig): string {\n return `${config.path}${normalizeSrc(src)}?imwidth=${width}`\n}\n\nfunction cloudinaryLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n // Demo: https://res.cloudinary.com/demo/image/upload/w_300,c_limit,q_auto/turtles.jpg\n const params = ['f_auto', 'c_limit', 'w_' + width, 'q_' + (quality || 'auto')]\n const paramsString = params.join(',') + '/'\n return `${config.path}${paramsString}${normalizeSrc(src)}`\n}\n\nfunction customLoader({ src }: ImageLoaderProps): string {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n}\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const {\n hasLocalMatch,\n } = require('../../shared/lib/match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const {\n hasRemoteMatch,\n } = require('../../shared/lib/match-remote-pattern')\n if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw new Error(\n `Invalid quality prop (${quality}) on \\`next/image\\` does not match \\`images.qualities\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n }\n\n const q =\n quality ||\n config.qualities?.reduce((prev, cur) =>\n Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev\n ) ||\n DEFAULT_Q\n\n if (!config.dangerouslyAllowSVG && src.split('?', 1)[0].endsWith('.svg')) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n return src\n }\n\n return `${normalizePathTrailingSlash(config.path)}?url=${encodeURIComponent(\n src\n )}&w=${width}&q=${q}`\n}\n\nconst loaders = new Map<\n LoaderValue,\n (props: ImageLoaderPropsWithConfig) => string\n>([\n ['default', defaultLoader],\n ['imgix', imgixLoader],\n ['cloudinary', cloudinaryLoader],\n ['akamai', akamaiLoader],\n ['custom', customLoader],\n])\n\nconst VALID_LAYOUT_VALUES = [\n 'fill',\n 'fixed',\n 'intrinsic',\n 'responsive',\n undefined,\n] as const\ntype LayoutValue = (typeof VALID_LAYOUT_VALUES)[number]\n\ntype PlaceholderValue = 'blur' | 'empty'\n\ntype OnLoadingComplete = (result: {\n naturalWidth: number\n naturalHeight: number\n}) => void\n\ntype ImgElementStyle = NonNullable\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n}\n\ninterface StaticRequire {\n default: StaticImageData\n}\n\ntype StaticImport = StaticRequire | StaticImageData\n\ntype SafeNumber = number | `${number}`\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n width?: SafeNumber\n height?: SafeNumber\n layout?: LayoutValue\n loader?: ImageLoader\n quality?: SafeNumber\n priority?: boolean\n loading?: LoadingValue\n lazyRoot?: React.RefObject | null\n lazyBoundary?: string\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n objectFit?: ImgElementStyle['objectFit']\n objectPosition?: ImgElementStyle['objectPosition']\n onLoadingComplete?: OnLoadingComplete\n}\n\ntype ImageElementProps = Omit & {\n srcString: string\n imgAttributes: GenImgAttrsResult\n heightInt: number | undefined\n widthInt: number | undefined\n qualityInt: number | undefined\n layout: LayoutValue\n imgStyle: ImgElementStyle\n blurStyle: ImgElementStyle\n isLazy: boolean\n loading: LoadingValue\n config: ImageConfig\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n placeholder: PlaceholderValue\n onLoadingCompleteRef: React.MutableRefObject\n setBlurComplete: (b: boolean) => void\n setIntersection: (img: HTMLImageElement | null) => void\n isVisible: boolean\n noscriptSizes: string | undefined\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n layout: LayoutValue,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes && (layout === 'fill' || layout === 'responsive')) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (\n typeof width !== 'number' ||\n layout === 'fill' ||\n layout === 'responsive'\n ) {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n layout: LayoutValue\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, layout, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'number') {\n return x\n }\n if (typeof x === 'string') {\n return parseInt(x, 10)\n }\n return undefined\n}\n\nfunction defaultImageLoader(loaderProps: ImageLoaderPropsWithConfig) {\n const loaderKey = loaderProps.config?.loader || 'default'\n const load = loaders.get(loaderKey)\n if (load) {\n return load(loaderProps)\n }\n throw new Error(\n `Unknown \"loader\" found in \"next.config.js\". Expected: ${VALID_LOADERS.join(\n ', '\n )}. Received: ${loaderKey}`\n )\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n src: string,\n layout: LayoutValue,\n placeholder: PlaceholderValue,\n onLoadingCompleteRef: React.MutableRefObject,\n setBlurComplete: (b: boolean) => void\n) {\n if (!img || img.src === emptyDataURL || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentNode) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n loadedImageURLs.add(src)\n if (placeholder === 'blur') {\n setBlurComplete(true)\n }\n if (onLoadingCompleteRef?.current) {\n const { naturalWidth, naturalHeight } = img\n // Pass back read-only primitive values but not the\n // underlying DOM element because it could be misused.\n onLoadingCompleteRef.current({ naturalWidth, naturalHeight })\n }\n if (process.env.NODE_ENV !== 'production') {\n if (img.parentElement?.parentElement) {\n const parent = getComputedStyle(img.parentElement.parentElement)\n if (!parent.position) {\n // The parent has not been rendered to the dom yet and therefore it has no position. Skip the warnings for such cases.\n } else if (layout === 'responsive' && parent.display === 'flex') {\n warnOnce(\n `Image with src \"${src}\" may not render properly as a child of a flex container. Consider wrapping the image with a div to configure the width.`\n )\n } else if (\n layout === 'fill' &&\n parent.position !== 'relative' &&\n parent.position !== 'fixed' &&\n parent.position !== 'absolute'\n ) {\n warnOnce(\n `Image with src \"${src}\" may not render properly with a parent using position:\"${parent.position}\". Consider changing the parent style to position:\"relative\" with a width and height.`\n )\n }\n }\n }\n })\n}\n\nconst ImageElement = ({\n imgAttributes,\n heightInt,\n widthInt,\n qualityInt,\n layout,\n className,\n imgStyle,\n blurStyle,\n isLazy,\n placeholder,\n loading,\n srcString,\n config,\n unoptimized,\n loader,\n onLoadingCompleteRef,\n setBlurComplete,\n setIntersection,\n onLoad,\n onError,\n isVisible,\n noscriptSizes,\n ...rest\n}: ImageElementProps) => {\n loading = isLazy ? 'lazy' : loading\n return (\n <>\n {\n if (process.env.NODE_ENV !== 'production') {\n if (img && !srcString) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n }\n setIntersection(img)\n if (img?.complete) {\n handleLoading(\n img,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete\n )\n }\n },\n [\n setIntersection,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete,\n ]\n )}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete\n )\n if (onLoad) {\n onLoad(event)\n }\n }}\n onError={(event) => {\n if (placeholder === 'blur') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n {(isLazy || placeholder === 'blur') && (\n \n )}\n \n )\n}\n\nexport default function Image({\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n lazyRoot = null,\n lazyBoundary,\n className,\n quality,\n width,\n height,\n style,\n objectFit,\n objectPosition,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n ...all\n}: ImageProps) {\n const configContext = useContext(ImageConfigContext)\n const config: ImageConfig = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return { ...c, allSizes, deviceSizes, qualities }\n }, [configContext])\n\n let rest: Partial = all\n let layout: NonNullable = sizes ? 'responsive' : 'intrinsic'\n if ('layout' in rest) {\n // Override default layout if the user specified one:\n if (rest.layout) layout = rest.layout\n\n // Remove property so it's not spread on :\n delete rest.layout\n }\n\n let loader: ImageLoaderWithConfig = defaultImageLoader\n if ('loader' in rest) {\n if (rest.loader) {\n const customImageLoader = rest.loader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n // The config object is internal only so we must\n // not pass it to the user-defined loader()\n return customImageLoader(opts)\n }\n }\n // Remove property so it's not spread on \n delete rest.loader\n }\n\n let staticSrc = ''\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height\n width = width || staticImageData.width\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (typeof window !== 'undefined' && loadedImageURLs.has(src)) {\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [setIntersection, isIntersected, resetIntersected] =\n useIntersection({\n rootRef: lazyRoot,\n rootMargin: lazyBoundary || '200px',\n disabled: !isLazy,\n })\n const isVisible = !isLazy || isIntersected\n\n const wrapperStyle: JSX.IntrinsicElements['span']['style'] = {\n boxSizing: 'border-box',\n display: 'block',\n overflow: 'hidden',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0,\n }\n const sizerStyle: JSX.IntrinsicElements['span']['style'] = {\n boxSizing: 'border-box',\n display: 'block',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0,\n }\n let hasSizer = false\n let sizerSvgUrl: string | undefined\n const layoutStyle: ImgElementStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n margin: 'auto',\n\n display: 'block',\n width: 0,\n height: 0,\n minWidth: '100%',\n maxWidth: '100%',\n minHeight: '100%',\n maxHeight: '100%',\n\n objectFit,\n objectPosition,\n }\n\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n widthInt = widthInt || 1\n heightInt = heightInt || 1\n unoptimized = true\n } else {\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n\n if (\n (typeof widthInt !== 'undefined' && isNaN(widthInt)) ||\n (typeof heightInt !== 'undefined' && isNaN(heightInt))\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`\n )\n }\n if (layout === 'fill' && (width || height)) {\n warnOnce(\n `Image with src \"${src}\" and \"layout='fill'\" has unused properties assigned. Please remove \"width\" and \"height\".`\n )\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (sizes && layout !== 'fill' && layout !== 'responsive') {\n warnOnce(\n `Image with src \"${src}\" has \"sizes\" property but it will be ignored. Only use \"sizes\" with \"layout='fill'\" or \"layout='responsive'\"`\n )\n }\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`\n )\n }\n if (!blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoadingComplete\" property instead.`\n )\n }\n\n if (!unoptimized && loader !== defaultImageLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (style) {\n let overwrittenStyles = Object.keys(style).filter(\n (key) => key in layoutStyle\n )\n if (overwrittenStyles.length) {\n warnOnce(\n `Image with src ${src} is assigned the following styles, which are overwritten by automatically-generated styles: ${overwrittenStyles.join(\n ', '\n )}`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n !lcpImage.priority &&\n lcpImage.placeholder !== 'blur' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/api-reference/next/legacy/image#priority`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n }\n const imgStyle = Object.assign({}, style, layoutStyle)\n const blurStyle =\n placeholder === 'blur' && !blurComplete\n ? {\n backgroundSize: objectFit || 'cover',\n backgroundPosition: objectPosition || '0% 0%',\n filter: 'blur(20px)',\n backgroundImage: `url(\"${blurDataURL}\")`,\n }\n : {}\n if (layout === 'fill') {\n // \n wrapperStyle.display = 'block'\n wrapperStyle.position = 'absolute'\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (\n typeof widthInt !== 'undefined' &&\n typeof heightInt !== 'undefined'\n ) {\n // \n const quotient = heightInt / widthInt\n const paddingTop = isNaN(quotient) ? '100%' : `${quotient * 100}%`\n if (layout === 'responsive') {\n // \n wrapperStyle.display = 'block'\n wrapperStyle.position = 'relative'\n hasSizer = true\n sizerStyle.paddingTop = paddingTop\n } else if (layout === 'intrinsic') {\n // \n wrapperStyle.display = 'inline-block'\n wrapperStyle.position = 'relative'\n wrapperStyle.maxWidth = '100%'\n hasSizer = true\n sizerStyle.maxWidth = '100%'\n sizerSvgUrl = `data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27${widthInt}%27%20height=%27${heightInt}%27/%3e`\n } else if (layout === 'fixed') {\n // \n wrapperStyle.display = 'inline-block'\n wrapperStyle.position = 'relative'\n wrapperStyle.width = widthInt\n wrapperStyle.height = heightInt\n }\n } else {\n // \n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`\n )\n }\n }\n\n let imgAttributes: GenImgAttrsResult = {\n src: emptyDataURL,\n srcSet: undefined,\n sizes: undefined,\n }\n\n if (isVisible) {\n imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n }\n\n let srcString: string = src\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, priority, placeholder })\n }\n }\n\n const linkProps:\n | React.DetailedHTMLProps<\n React.LinkHTMLAttributes,\n HTMLLinkElement\n >\n | undefined = supportsFloat\n ? undefined\n : {\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: rest.crossOrigin,\n referrerPolicy: rest.referrerPolicy,\n }\n\n const useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n const previousImageSrc = useRef(src)\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n useLayoutEffect(() => {\n if (previousImageSrc.current !== src) {\n resetIntersected()\n previousImageSrc.current = src\n }\n }, [resetIntersected, src])\n\n const imgElementArgs = {\n isLazy,\n imgAttributes,\n heightInt,\n widthInt,\n qualityInt,\n layout,\n className,\n imgStyle,\n blurStyle,\n loading,\n config,\n unoptimized,\n placeholder,\n loader,\n srcString,\n onLoadingCompleteRef,\n setBlurComplete,\n setIntersection,\n isVisible,\n noscriptSizes: sizes,\n ...rest,\n }\n return (\n <>\n \n {hasSizer ? (\n \n {sizerSvgUrl ? (\n \n ) : null}\n \n ) : null}\n \n \n {!supportsFloat && priority ? (\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would likely cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n \n \n \n ) : null}\n \n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport {\n requestIdleCallback,\n cancelIdleCallback,\n} from './request-idle-callback'\n\ntype UseIntersectionObserverInit = Pick<\n IntersectionObserverInit,\n 'rootMargin' | 'root'\n>\n\ntype UseIntersection = { disabled?: boolean } & UseIntersectionObserverInit & {\n rootRef?: React.RefObject | null\n }\ntype ObserveCallback = (isVisible: boolean) => void\ntype Identifier = {\n root: Element | Document | null\n margin: string\n}\ntype Observer = {\n id: Identifier\n observer: IntersectionObserver\n elements: Map\n}\n\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function'\n\nconst observers = new Map()\nconst idList: Identifier[] = []\n\nfunction createObserver(options: UseIntersectionObserverInit): Observer {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || '',\n }\n const existing = idList.find(\n (obj) => obj.root === id.root && obj.margin === id.margin\n )\n let instance: Observer | undefined\n\n if (existing) {\n instance = observers.get(existing)\n if (instance) {\n return instance\n }\n }\n\n const elements = new Map()\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const callback = elements.get(entry.target)\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0\n if (callback && isVisible) {\n callback(isVisible)\n }\n })\n }, options)\n instance = {\n id,\n observer,\n elements,\n }\n\n idList.push(id)\n observers.set(id, instance)\n return instance\n}\n\nfunction observe(\n element: Element,\n callback: ObserveCallback,\n options: UseIntersectionObserverInit\n): () => void {\n const { id, observer, elements } = createObserver(options)\n elements.set(element, callback)\n\n observer.observe(element)\n return function unobserve(): void {\n elements.delete(element)\n observer.unobserve(element)\n\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect()\n observers.delete(id)\n const index = idList.findIndex(\n (obj) => obj.root === id.root && obj.margin === id.margin\n )\n if (index > -1) {\n idList.splice(index, 1)\n }\n }\n }\n}\n\nexport function useIntersection({\n rootRef,\n rootMargin,\n disabled,\n}: UseIntersection): [(element: T | null) => void, boolean, () => void] {\n const isDisabled: boolean = disabled || !hasIntersectionObserver\n\n const [visible, setVisible] = useState(false)\n const elementRef = useRef(null)\n const setElement = useCallback((element: T | null) => {\n elementRef.current = element\n }, [])\n\n useEffect(() => {\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return\n\n const element = elementRef.current\n if (element && element.tagName) {\n const unobserve = observe(\n element,\n (isVisible) => isVisible && setVisible(isVisible),\n { root: rootRef?.current, rootMargin }\n )\n\n return unobserve\n }\n } else {\n if (!visible) {\n const idleCallback = requestIdleCallback(() => setVisible(true))\n return () => cancelIdleCallback(idleCallback)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled, rootMargin, rootRef, visible, elementRef.current])\n\n const resetVisible = useCallback(() => {\n setVisible(false)\n }, [])\n\n return [setElement, visible, resetVisible]\n}\n","import React, { type JSX } from 'react'\nimport Loadable from './loadable.shared-runtime'\n\nconst isServerSide = typeof window === 'undefined'\n\ntype ComponentModule

= { default: React.ComponentType

}\n\nexport declare type LoaderComponent

= Promise<\n React.ComponentType

| ComponentModule

\n>\n\nexport declare type Loader

=\n | (() => LoaderComponent

)\n | LoaderComponent

\n\nexport type LoaderMap = { [module: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type DynamicOptionsLoadingProps = {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n}\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule

(mod: React.ComponentType

| ComponentModule

) {\n return { default: (mod as ComponentModule

)?.default || mod }\n}\n\nexport type DynamicOptions

= LoadableGeneratedOptions & {\n loading?: (loadingProps: DynamicOptionsLoadingProps) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= DynamicOptions

\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: DynamicOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n/**\n * This function lets you dynamically import a component.\n * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.\n *\n * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)\n */\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn = Loadable as LoadableFn

\n\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV !== 'production') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n const loaderFn = loadableOptions.loader as () => LoaderComponent

\n const loader = () =>\n loaderFn != null\n ? loaderFn().then(convertModule)\n : Promise.resolve(convertModule(() => null))\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).\n if (typeof loadableOptions.ssr === 'boolean' && !loadableOptions.ssr) {\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n return noSSR(loadableFn, loadableOptions)\n }\n\n return loadableFn({ ...loadableOptions, loader: loader as Loader

})\n}\n","'use client'\n\nimport React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","// TODO: Remove use of `any` type.\n/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { LoadableContext } from './loadable-context.shared-runtime'\n\nfunction resolve(obj: any) {\n return obj && obj.default ? obj.default : obj\n}\n\nconst ALL_INITIALIZERS: any[] = []\nconst READY_INITIALIZERS: any[] = []\nlet initialized = false\n\nfunction load(loader: any) {\n let promise = loader()\n\n let state: any = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded: any) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err: any) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction createLoadableComponent(loadFn: any, options: any) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n webpack: null,\n modules: null,\n },\n options\n )\n\n /** @type LoadableSubscription */\n let subscription: any = null\n function init() {\n if (!subscription) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (!initialized && typeof window !== 'undefined') {\n // require.resolveWeak check is needed for environments that don't have it available like Jest\n const moduleIds =\n opts.webpack && typeof (require as any).resolveWeak === 'function'\n ? opts.webpack()\n : opts.modules\n if (moduleIds) {\n READY_INITIALIZERS.push((ids: any) => {\n for (const moduleId of moduleIds) {\n if (ids.includes(moduleId)) {\n return init()\n }\n }\n })\n }\n }\n\n function useLoadableModule() {\n init()\n\n const context = React.useContext(LoadableContext)\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName: any) => {\n context(moduleName)\n })\n }\n }\n\n function LoadableComponent(props: any, ref: any) {\n useLoadableModule()\n\n const state = (React as any).useSyncExternalStore(\n subscription.subscribe,\n subscription.getCurrentValue,\n subscription.getCurrentValue\n )\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return React.createElement(resolve(state.loaded), props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n _loadFn: any\n _opts: any\n _callbacks: any\n _delay: any\n _timeout: any\n _res: any\n _state: any\n constructor(loadFn: any, opts: any) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err: any) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial: any) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback: any) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback: any) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts: any) {\n return createLoadableComponent(load, opts)\n}\n\nfunction flushInitializers(initializers: any, ids?: any): any {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids: (string | number)[] = []): Promise => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\ndeclare global {\n interface Window {\n __NEXT_PRELOADREADY?: (ids?: (string | number)[]) => Promise\n }\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","require('client-only');\nvar React = require('react');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/ function _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar isProd = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV === \"production\";\nvar isString = function(o) {\n return Object.prototype.toString.call(o) === \"[object String]\";\n};\nvar StyleSheet = /*#__PURE__*/ function() {\n function StyleSheet(param) {\n var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? \"stylesheet\" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;\n invariant$1(isString(name), \"`name` must be a string\");\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant$1(typeof optimizeForSpeed === \"boolean\", \"`optimizeForSpeed` must be a boolean\");\n this._optimizeForSpeed = optimizeForSpeed;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = typeof window !== \"undefined\" && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute(\"content\") : null;\n }\n var _proto = StyleSheet.prototype;\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant$1(typeof bool === \"boolean\", \"`setOptimizeForSpeed` accepts a boolean\");\n invariant$1(this._rulesCount === 0, \"optimizeForSpeed cannot be when rules have already been inserted\");\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n _proto.inject = function inject() {\n var _this = this;\n invariant$1(!this._injected, \"sheet already injected\");\n this._injected = true;\n if (typeof window !== \"undefined\" && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = \"insertRule\" in this.getSheet();\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn(\"StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.\");\n }\n this.flush();\n this._injected = true;\n }\n return;\n }\n this._serverSheet = {\n cssRules: [],\n insertRule: function(rule, index) {\n if (typeof index === \"number\") {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n return index;\n },\n deleteRule: function(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n // this weirdness brought to you by firefox\n for(var i = 0; i < document.styleSheets.length; i++){\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n _proto.insertRule = function insertRule(rule, index) {\n invariant$1(isString(rule), \"`insertRule` accepts only strings\");\n if (typeof window === \"undefined\") {\n if (typeof index !== \"number\") {\n index = this._serverSheet.cssRules.length;\n }\n this._serverSheet.insertRule(rule, index);\n return this._rulesCount++;\n }\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n if (typeof index !== \"number\") {\n index = sheet.cssRules.length;\n }\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n return this._rulesCount++;\n };\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || typeof window === \"undefined\") {\n var sheet = typeof window !== \"undefined\" ? this.getSheet() : this._serverSheet;\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n sheet.deleteRule(index);\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n // In order to preserve the indices we insert a deleteRulePlaceholder\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n return index;\n };\n _proto.deleteRule = function deleteRule(index) {\n if (typeof window === \"undefined\") {\n this._serverSheet.deleteRule(index);\n return;\n }\n if (this._optimizeForSpeed) {\n this.replaceRule(index, \"\");\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n if (typeof window !== \"undefined\") {\n this._tags.forEach(function(tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n if (typeof window === \"undefined\") {\n return this._serverSheet.cssRules;\n }\n return this._tags.reduce(function(rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {\n return rule.cssText === _this._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n return rules;\n }, []);\n };\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant$1(isString(cssString), \"makeStyleTag accepts only strings as second parameter\");\n }\n var tag = document.createElement(\"style\");\n if (this._nonce) tag.setAttribute(\"nonce\", this._nonce);\n tag.type = \"text/css\";\n tag.setAttribute(\"data-\" + name, \"\");\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n return tag;\n };\n _createClass(StyleSheet, [\n {\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }\n ]);\n return StyleSheet;\n}();\nfunction invariant$1(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}\n\nfunction hash(str) {\n var _$hash = 5381, i = str.length;\n while(i){\n _$hash = _$hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;\n}\nvar stringHash = hash;\n\nvar sanitize = function(rule) {\n return rule.replace(/\\/style/gi, \"\\\\/style\");\n};\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */ function computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n var propsToString = String(props);\n var key = baseId + propsToString;\n if (!cache[key]) {\n cache[key] = \"jsx-\" + stringHash(baseId + \"-\" + propsToString);\n }\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */ function computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (typeof window === \"undefined\") {\n css = sanitize(css);\n }\n var idcss = id + css;\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n return cache[idcss];\n}\n\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) options = {};\n return cssRules.map(function(args) {\n var id = args[0];\n var css = args[1];\n return /*#__PURE__*/ React__default[\"default\"].createElement(\"style\", {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\nvar StyleSheetRegistry = /*#__PURE__*/ function() {\n function StyleSheetRegistry(param) {\n var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;\n this._sheet = styleSheet || new StyleSheet({\n name: \"styled-jsx\",\n optimizeForSpeed: optimizeForSpeed\n });\n this._sheet.inject();\n if (styleSheet && typeof optimizeForSpeed === \"boolean\") {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n var _proto = StyleSheetRegistry.prototype;\n _proto.add = function add(props) {\n var _this = this;\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n if (typeof window !== \"undefined\" && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;\n // Deduping: just increase the instances count.\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n var indices = rules.map(function(rule) {\n return _this._sheet.insertRule(rule);\n })// Filter out invalid rules\n .filter(function(index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n _proto.remove = function remove(props) {\n var _this = this;\n var styleId = this.getIdAndRules(props).styleId;\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function(index) {\n return _this._sheet.deleteRule(index);\n });\n delete this._indices[styleId];\n }\n delete this._instancesCounts[styleId];\n }\n };\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n _proto.flush = function flush() {\n this._sheet.flush();\n this._sheet.inject();\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {\n return [\n styleId,\n _this._fromServer[styleId]\n ];\n }) : [];\n var cssRules = this._sheet.cssRules();\n return fromServer.concat(Object.keys(this._indices).map(function(styleId) {\n return [\n styleId,\n _this._indices[styleId].map(function(index) {\n return cssRules[index].cssText;\n }).join(_this._optimizeForSpeed ? \"\" : \"\\n\")\n ];\n })// filter out empty rules\n .filter(function(rule) {\n return Boolean(rule[1]);\n }));\n };\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children, dynamic = props.dynamic, id = props.id;\n if (dynamic) {\n var styleId = computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function(rule) {\n return computeSelector(styleId, rule);\n }) : [\n computeSelector(styleId, css)\n ]\n };\n }\n return {\n styleId: computeId(id),\n rules: Array.isArray(css) ? css : [\n css\n ]\n };\n };\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */ _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function(acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n return StyleSheetRegistry;\n}();\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\nvar StyleSheetContext = /*#__PURE__*/ React.createContext(null);\nStyleSheetContext.displayName = \"StyleSheetContext\";\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\nfunction StyleRegistry(param) {\n var configuredRegistry = param.registry, children = param.children;\n var rootRegistry = React.useContext(StyleSheetContext);\n var ref = React.useState(function() {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }), registry = ref[0];\n return /*#__PURE__*/ React__default[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\nfunction useStyleRegistry() {\n return React.useContext(StyleSheetContext);\n}\n\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = React__default[\"default\"].useInsertionEffect || React__default[\"default\"].useLayoutEffect;\nvar defaultRegistry = typeof window !== \"undefined\" ? createStyleRegistry() : undefined;\nfunction JSXStyle(props) {\n var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();\n // If `registry` does not exist, we do nothing here.\n if (!registry) {\n return null;\n }\n if (typeof window === \"undefined\") {\n registry.add(props);\n return null;\n }\n useInsertionEffect(function() {\n registry.add(props);\n return function() {\n registry.remove(props);\n };\n // props.children can be string[], will be striped since id is identical\n }, [\n props.id,\n String(props.dynamic)\n ]);\n return null;\n}\nJSXStyle.dynamic = function(info) {\n return info.map(function(tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return computeId(baseId, props);\n }).join(\" \");\n};\n\nexports.StyleRegistry = StyleRegistry;\nexports.createStyleRegistry = createStyleRegistry;\nexports.style = JSXStyle;\nexports.useStyleRegistry = useStyleRegistry;\n","module.exports = require('./dist/index').style\n","import classNames from 'classnames';\nimport type { ImageProps } from 'next/legacy/image';\nimport ImageTag from 'next/legacy/image';\nimport { IMAGE_SOURCE } from 'src/utils/constants';\nimport styles from './Image.module.scss';\nexport type TpImageProps = ImageProps & {\n className?: string;\n};\nconst customLoader = ({\n src\n}: {\n src: string;\n}) => `${IMAGE_SOURCE}${src}`;\nexport const Image = (props: TpImageProps) => {\n const {\n src,\n className,\n ...otherProps\n } = props;\n return \n \n ;\n};","import classNames from 'classnames';\nimport ImageTag from 'next/legacy/image';\nimport type { TpImageProps } from 'src/components/common/Image';\nimport { ICON_SOURCE } from 'src/utils/constants';\nconst customLoader = ({\n src\n}: {\n src: string;\n}) => `${ICON_SOURCE}${src}`;\nexport const SimpleImage = (props: TpImageProps) => {\n const {\n src,\n className,\n ...otherProps\n } = props;\n return \n \n ;\n};","import type { TpButtonProps } from '@mentalgrowth/ui-kit-web';\nimport classNames from 'classnames';\nimport { forwardRef } from 'react';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport styles from './circle-button.module.scss';\nconst CircleButton = forwardRef(({\n className,\n ...props\n}: TpButtonProps, ref) => );\nCircleButton.displayName = 'CircleButton';\nexport default CircleButton;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgTimes = function SvgTimes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M4.707 12.707a1 1 0 0 1-1.414-1.414zM8 8l.707-.707a1 1 0 0 1 0 1.414zM3.293 4.707a1 1 0 0 1 1.414-1.414zm0 6.586 4-4 1.414 1.414-4 4zm4-2.586-4-4 1.414-1.414 4 4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11.293 12.707a1 1 0 0 0 1.414-1.414zM8 8l-.707-.707a1 1 0 0 0 0 1.414zm4.707-3.293a1 1 0 0 0-1.414-1.414zm0 6.586-4-4-1.414 1.414 4 4zm-4-2.586 4-4-1.414-1.414-4 4z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgTimes);\nexport default Memo;","import { ComponentProps } from 'react';\nimport Times from '../../../assets/icons/times.svg';\nimport CircleButton from '../circle-button/circle-button';\nconst CloseButton = (props: ComponentProps & {\n className?: string;\n}) => \n \n ;\nexport default CloseButton;","import styles from './contact-us-link.module.scss';\nexport interface Props {\n subject?: string;\n}\nconst ContactUsLink = ({\n subject\n}: Props) => \n contact us\n ;\nexport default ContactUsLink;","import styles from './loading-indicator.module.scss';\nconst LoadingIndicator = () => \n \n \n \n ;\nexport default LoadingIndicator;","import { ComponentProps, ReactNode, useCallback } from 'react';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport Alert from '../../../common/modal/alert/alert';\nimport styles from './alert-with-close-button.module.scss';\nconst AlertWithCloseButton = ({\n closeButtonText = 'OK',\n footer,\n buttonVariant,\n ...props\n}: {\n closeButtonText?: ReactNode;\n} & ComponentProps) => {\n const {\n onHide\n } = props;\n const handleClose = useCallback(() => {\n onHide && onHide();\n }, [onHide]);\n return \n {footer}\n \n {closeButtonText}\n \n } {...props} data-sentry-element=\"Alert\" data-sentry-component=\"AlertWithCloseButton\" data-sentry-source-file=\"alert-with-close-button.tsx\" />;\n};\nexport default AlertWithCloseButton;","import classNames from 'classnames';\nimport Head from 'next/head';\nimport { ElementType, ReactNode } from 'react';\nimport { IosDeviceType, getIosDeviceType } from 'src/utils/get-mobile-operating-system';\nimport ModalContainer from '../modal-container/modal-container';\nimport styles from './alert.module.scss';\ntype ModalProps = {\n size?: 'sm' | 'lg' | 'xl';\n fullscreen?: true | string | 'sm-down' | 'md-down' | 'lg-down' | 'xl-down' | 'xxl-down';\n bsPrefix?: string;\n centered?: boolean;\n backdropClassName?: string;\n animation?: boolean;\n dialogClassName?: string;\n contentClassName?: string;\n modalContentClassName?: string;\n mobileFullHeight?: boolean;\n dialogAs?: ElementType;\n scrollable?: boolean;\n [p: string]: any;\n};\nexport type TpAlertProps = ModalProps & {\n canClose?: boolean;\n image?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n footer?: ReactNode;\n};\nconst Alert = ({\n ...props\n}: TpAlertProps) => {\n const {\n className,\n backdropClassName,\n titleClassName,\n descriptionClassName,\n canClose = true,\n image,\n title,\n description,\n footer,\n children,\n show,\n modalContentClassName,\n ...rest\n } = props;\n const iosDeviceType = getIosDeviceType();\n const isIosHandheld = iosDeviceType === IosDeviceType.IPOD || iosDeviceType === IosDeviceType.IPHONE;\n return \n {/*\n Making the status bar on iOS 15 appear to be covered by the backdrop.\n Doing this for iPhones only because iPads and most Android browsers\n have their address bars at the top. Earlier versions of iOS Safari\n do not support `theme-color` and thus are unaffected.\n */}\n {show && isIosHandheld && \n \n }\n {image &&

{image}
}\n {title &&

{title}

}\n {description &&

\n {description}\n

}\n {children}\n {footer}\n ;\n};\nexport default Alert;","import { Modal, TpModalProps } from '@mentalgrowth/ui-kit-web';\nimport { memo } from 'react';\nconst UiKitModal = memo((props: TpModalProps) => );\nUiKitModal.displayName = 'UiKitModal';\nexport default UiKitModal;","import { type TpModalProps } from '@mentalgrowth/ui-kit-web';\nimport UiKitModal from 'src/components/common/ui-kit-modal';\ntype TpModalContainerProps = TpModalProps & {\n backdropClassName?: string;\n className?: string;\n dialogClassName?: string;\n};\nconst ModalContainer = ({\n className,\n backdropClassName,\n dialogClassName,\n ...props\n}: TpModalContainerProps) => ;\nexport default ModalContainer;","import { TpModalProps } from '@mentalgrowth/ui-kit-web';\nimport classNames from 'classnames';\nimport { ReactNode, useCallback } from 'react';\nimport ModalContainer from '../modal-container/modal-container';\nimport styles from './modal.module.scss';\nexport type TpComponentModalProps = TpModalProps & {\n showCloseButton?: boolean;\n title?: ReactNode;\n description?: ReactNode;\n footer?: ReactNode;\n handleCloseModal?: () => void | null;\n showMobileHeader?: boolean;\n};\nconst Modal = ({\n showCloseButton = true,\n title,\n description,\n footer,\n children,\n handleCloseModal,\n ...props\n}: TpComponentModalProps) => {\n const {\n onHide\n } = props;\n const handleClose = useCallback(() => {\n handleCloseModal && handleCloseModal();\n onHide && onHide();\n }, [handleCloseModal, onHide]);\n return \n {title &&

{title}

}\n {description &&

{description}

}\n {children}\n {footer &&
{footer}
}\n
;\n};\nexport default Modal;","var _rect, _path, _rect2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgApplepayBadge = function SvgApplepayBadge(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 45,\n height: 24,\n fill: \"none\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 43.547,\n height: 23.5,\n x: 0.25,\n y: 0.25,\n fill: \"#fff\",\n rx: 3.75\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M13.125 8.547c-.329.405-.855.725-1.38.68-.067-.549.19-1.13.492-1.49.329-.417.904-.714 1.37-.737.055.57-.16 1.13-.482 1.547m.476.788c-.463-.028-.886.145-1.227.285-.22.09-.406.166-.548.166-.159 0-.352-.08-.57-.17-.285-.118-.61-.253-.953-.247-.783.012-1.512.474-1.912 1.21-.822 1.473-.213 3.654.581 4.853.389.594.855 1.245 1.468 1.222.27-.01.464-.097.665-.186.232-.102.472-.208.847-.208.363 0 .592.103.813.203.21.094.411.185.71.18.636-.012 1.036-.594 1.425-1.188.42-.637.604-1.26.632-1.354l.003-.01-.015-.008a2.13 2.13 0 0 1-1.223-1.95c-.01-1.152.85-1.736.986-1.828l.017-.01c-.548-.846-1.403-.937-1.699-.96m4.4 7.244v-8.9h3.205c1.654 0 2.81 1.188 2.81 2.923s-1.178 2.935-2.854 2.935h-1.836v3.042zm1.325-7.735h1.529c1.15 0 1.808.64 1.808 1.764s-.657 1.77-1.814 1.77h-1.523zm9.068 6.668c-.351.696-1.123 1.136-1.956 1.136-1.233 0-2.093-.765-2.093-1.918 0-1.142.833-1.799 2.372-1.896l1.655-.102v-.491c0-.725-.455-1.12-1.266-1.12-.668 0-1.156.36-1.254.908h-1.195c.039-1.153 1.08-1.992 2.488-1.992 1.517 0 2.503.828 2.503 2.112v4.43h-1.227v-1.067zm-1.6.08c-.707 0-1.156-.354-1.156-.896 0-.56.433-.885 1.26-.937l1.474-.097v.503c0 .833-.68 1.427-1.578 1.427m6.925 1.336C33.187 18.486 32.579 19 31.286 19c-.098 0-.427-.011-.504-.034v-1.068c.082.012.285.023.39.023.585 0 .914-.257 1.117-.925l.12-.394-2.246-6.48h1.386l1.562 5.259h.027l1.561-5.258h1.348z\",\n clipRule: \"evenodd\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 43.547,\n height: 23.5,\n x: 0.25,\n y: 0.25,\n stroke: \"#000\",\n strokeWidth: 0.5,\n rx: 3.75\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgApplepayBadge);\nexport default Memo;","import { FormattedMessage } from '@features/intl';\nimport ApplePayBadge from '../../../../public/images/applepayBadge.svg';\nimport styles from './money-back.module.scss';\nexport const MoneyBack = ({\n showApplePayBadge\n}: {\n showApplePayBadge?: boolean;\n}) =>
\n {showApplePayBadge && }\n

\n \n \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"money-back.tsx\" />\n

\n
;","import LoaderLogo from '../../../../public/icons/loader-logo.svg';\nconst PageLoading = () => {\n const injectStyles = `\n html {\n min-height: 100%;\n }\n body {\n display: block;\n }\n body,\n #__next {\n flex: 1;\n }\n html,\n body,\n #__next {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n height: 100%;\n }\n @keyframes pulse {\n 20% { transform: translateY(-50%) scale(1) }\n 80% { transform: translateY(-50%) scale(1.1) }\n }`;\n return <>\n \n
\n \n
\n ;\n};\nexport default PageLoading;","import { ReactNode } from 'react';\nimport { TpMessageKeys } from 'src/features/intl';\nimport { Image } from '../../common/Image';\nexport type TpReview = {\n name: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n rating: number;\n date: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n review: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n avatar: ReactNode;\n};\nexport const reviews: {\n [key: string]: TpReview;\n} = {\n user7: {\n name: {\n id: 'Onboarding.Paywall.Main.Review2.Name',\n defaultMessage: 'Anna C.'\n },\n rating: 5,\n date: {\n id: 'Onboarding.Paywall.Main.Review2.Date',\n defaultMessage: '1 Jan'\n },\n review: {\n id: 'Onboarding.Paywall.Main.Review2.Text',\n defaultMessage: 'This is a wonderful app, I really like the progress I’m having 😍'\n },\n avatar: \"avatar\"\n },\n user8: {\n name: {\n id: 'Onboarding.Paywall.Main.Review1.Name',\n defaultMessage: 'Louise R.'\n },\n rating: 5,\n date: {\n id: 'Onboarding.Paywall.Main.Review1.Date',\n defaultMessage: '23 Dec'\n },\n review: {\n id: 'Onboarding.Paywall.Main.Review1.Text',\n defaultMessage: 'It takes a little time, but the effect is colossal. Thanks! I feel and look 15 years younger.😎'\n },\n avatar: \"avatar\"\n },\n user9: {\n name: {\n id: 'Onboarding.Paywall.Main.Review3.Name',\n defaultMessage: 'Marie M.'\n },\n rating: 5,\n date: {\n id: 'Onboarding.Paywall.Main.Review3.Date',\n defaultMessage: '13 Mar'\n },\n review: {\n id: 'Onboarding.Paywall.Main.Review3.Text',\n defaultMessage: 'The training is amazing, and you do not need a beautician or special equipment 😉'\n },\n avatar: \"avatar\"\n }\n};","import { Instance, SnapshotOut, types } from 'mobx-state-tree';\n\nexport const AbTestModel = types.model('AbTest').props({\n test_name: types.maybeNull(types.string),\n case_name: types.maybeNull(types.string),\n});\n\ntype AbTestType = Instance;\nexport interface AbTest extends AbTestType {}\ntype AbTestSnapshotType = SnapshotOut;\nexport interface AbTestSnapshot extends AbTestSnapshotType {}\n","import { Instance, applySnapshot, cast, flow, types } from 'mobx-state-tree';\n\nimport { getAbTests, googleAnalyticsEvent } from '@features/Analytics';\n\nimport { AbTestModel, AbTestSnapshot } from '../ab-test/ab-test';\n\nexport const AnalyticsStoreModel = types\n .model('AnalyticsStore')\n .props({\n segment: types.maybe(types.string),\n abTests: types.maybe(types.array(AbTestModel)),\n fbPixelId: types.maybe(types.array(types.string)),\n isFetching: types.optional(types.boolean, false),\n })\n .actions((self) => ({\n saveAbTest: (\n segmentName: string | undefined,\n tests: Array | undefined,\n ) => {\n self.segment = segmentName;\n self.abTests = cast(tests);\n },\n setFbPixelId: (_fbPixelId: Array | undefined) => {\n self.fbPixelId = cast(_fbPixelId);\n },\n setFetchingStatus: (status: boolean) => {\n self.isFetching = status;\n },\n }))\n .actions((self) => ({\n getAbTests: flow(function* ({\n variant,\n utm_source,\n utm_campaign,\n region,\n user_id,\n abortSignal,\n }: {\n variant: string | undefined;\n utm_source: string | undefined;\n utm_campaign: string | undefined;\n region: string | undefined;\n user_id: string | undefined;\n abortSignal?: AbortSignal;\n }) {\n self.setFetchingStatus(true);\n try {\n const responseObject = yield getAbTests({\n variant,\n utm_source,\n utm_campaign,\n region,\n user_id,\n abortSignal,\n });\n if (Object.keys(responseObject).length === 0) {\n self.saveAbTest('default', undefined);\n googleAnalyticsEvent({\n eventName: 'segment_name',\n properties: { name: 'default' },\n });\n } else {\n self.saveAbTest(responseObject.segment_name, responseObject.tests);\n googleAnalyticsEvent({\n eventName: 'segment_name',\n properties: { name: String(responseObject.segment_name) },\n });\n for (const test of responseObject.tests) {\n googleAnalyticsEvent({\n eventName: 'ab_test',\n properties: {\n name: String(test.test_name),\n group: String(test.case_name),\n },\n });\n }\n }\n } catch (error) {\n self.saveAbTest('error', undefined);\n googleAnalyticsEvent({\n eventName: 'segment_name',\n properties: { name: 'errorSegment' },\n });\n console.error(error);\n } finally {\n self.setFetchingStatus(false);\n }\n }),\n }))\n .views((self) => ({\n getCaseNameByTestName: (testName: string) =>\n self.abTests?.find((test) => test.test_name === testName)?.case_name,\n }))\n .actions((self) => ({\n reset: () => {\n applySnapshot(self, {});\n },\n }));\n\ntype AnalyticsStoreType = Instance;\n\nexport interface AnalyticsStore extends AnalyticsStoreType {}\n","import { Instance, SnapshotOut, types } from 'mobx-state-tree';\n\nexport const UserModel = types\n .model('User')\n .props({\n token: types.maybe(types.string),\n id: types.number,\n email: types.string,\n isSubscriptionActive: types.boolean,\n isPasswordSet: types.boolean,\n accessCode: types.maybe(types.string),\n })\n .actions((self) => ({\n setEmail: (value: string) => {\n self.email = value;\n },\n setPasswordSet: () => {\n self.isPasswordSet = true;\n },\n }));\n\ntype UserType = Instance;\n\nexport interface User extends UserType {}\n\ntype UserSnapshotType = SnapshotOut;\n\nexport interface UserSnapshot extends UserSnapshotType {}\n","import {\n Instance,\n SnapshotOut,\n applySnapshot,\n flow,\n getRoot,\n types,\n} from 'mobx-state-tree';\n\nimport * as auth from 'src/api/auth';\nimport { ALL_VARIANTS, TpVariantObject } from 'src/constants/variants';\nimport { User, UserModel } from 'src/models/user/user';\nimport { groupBy } from 'src/utils';\n\nexport const AuthStoreModel = types\n .model('AuthStore')\n .props({\n user: types.maybe(types.union(UserModel, types.null)),\n auth_token: types.maybe(types.string),\n access_code: types.maybe(types.string),\n fbp: types.maybe(types.union(types.string, types.undefined)),\n fbc: types.maybe(types.union(types.string, types.undefined)),\n variant: types.maybe(types.string),\n campaign: types.maybe(types.union(types.string, types.undefined)),\n googlePseudoID: types.maybe(types.string),\n loginedByWinback: false,\n firstName: types.maybe(types.string),\n lastName: types.maybe(types.string),\n dateOfBirth: types.maybe(types.string),\n gender: types.maybe(types.string),\n paddlePaymentProcessed: types.maybe(types.boolean),\n registeredFromBonus: false,\n })\n\n .actions((self) => ({\n setUser: (user: User | null) => {\n if (!self.user || user === null) {\n self.user = user ? UserModel.create(user) : user;\n } else {\n applySnapshot(self.user, user);\n }\n },\n setAuthToken: (token: string) => {\n self.auth_token = token;\n },\n setRegisteredFromBonus: (value: boolean) => {\n self.registeredFromBonus = value;\n },\n setAccessCode: (code: string) => {\n self.access_code = code;\n },\n setFbp: (fbp: string | undefined) => {\n self.fbp = fbp;\n },\n setFbc: (fbc: string | undefined) => {\n self.fbc = fbc;\n },\n setVariant: (variant: string | undefined) => {\n self.variant = variant;\n },\n setCampaign: (campaign: string | undefined) => {\n self.campaign = campaign;\n },\n setGooglePseudoID: (code: string) => {\n self.googlePseudoID = code;\n },\n setLoginedByWinback: (value: boolean) => {\n self.loginedByWinback = value;\n },\n setPaddlePaymentProcessed: (value: boolean | undefined) => {\n self.paddlePaymentProcessed = value;\n },\n }))\n .actions((self) => ({\n fetchUser: flow(function* () {\n const user = yield auth.fetchUser(self.auth_token);\n self.setUser(user);\n }),\n register: flow(function* ({\n email,\n age,\n abortSignal,\n }: {\n email: string;\n age: number;\n abortSignal?: AbortSignal;\n }) {\n const { quizStore } = getRoot(self);\n const user = yield auth.register({\n email,\n age,\n variant: self.variant,\n abortSignal,\n quizAnswers: quizStore,\n });\n self.setAccessCode(user.accessCode);\n self.setAuthToken(user.token);\n }),\n setPasswordAndEmail: flow(function* ({\n email,\n password,\n abortSignal,\n }: {\n email: string;\n password: string;\n abortSignal?: AbortSignal;\n }) {\n yield auth.setPasswordAndEmail({ email, password, abortSignal });\n const user = self.user as User;\n user.setEmail(email);\n user.setPasswordSet();\n }),\n logOut: flow(function* () {\n if (self.auth_token) {\n yield auth.logOut();\n }\n self.setUser(null);\n self.setAuthToken('');\n self.setAccessCode('');\n self.setGooglePseudoID('');\n self.setLoginedByWinback(false);\n self.setRegisteredFromBonus(false);\n self.setPaddlePaymentProcessed(undefined);\n }),\n loginBySafariAuthToken: flow(function* ({\n safariAuthToken,\n }: {\n safariAuthToken: string;\n }) {\n const user = yield auth.loginBySafariAuthToken({ safariAuthToken });\n self.setUser(user);\n self.setAccessCode(user.accessCode);\n self.setAuthToken(user.token);\n }),\n loginByEmailToken: flow(function* ({\n emailToken,\n abortSignal,\n }: {\n emailToken: string;\n abortSignal?: AbortSignal;\n }) {\n const user = yield auth.loginWithEmailToken({ emailToken, abortSignal });\n self.setUser(user);\n user.access_code && self.setAccessCode(user.access_code);\n self.setAuthToken(user.token);\n }),\n }))\n .views((self) => ({\n get isPaddleVariants() {\n //There are no paddle variants for now\n return false;\n },\n get isStripeVariant() {\n return (\n // check if variant exist in stripe variants\n groupBy(ALL_VARIANTS, 'payment_system')['stripe'].some(\n (item: TpVariantObject) => item.variant_name === self.variant,\n ) ||\n //for case without variant\n self.variant === undefined ||\n // for missing variants\n !ALL_VARIANTS.some((variant) => variant.variant_name === self.variant)\n );\n },\n get isBraintreeVariant() {\n return groupBy(ALL_VARIANTS, 'payment_system')['braintree'].some(\n (item: TpVariantObject) => item.variant_name === self.variant,\n );\n },\n get isTwitterSource() {\n return groupBy(ALL_VARIANTS, 'source')['twitter'].some(\n (item: TpVariantObject) => item.variant_name === self.variant,\n );\n },\n }));\n\ntype AuthStoreType = Instance;\n\nexport interface AuthStore extends AuthStoreType {}\n\ntype AuthStoreSnapshotType = SnapshotOut;\n\nexport interface AuthStoreSnapshot extends AuthStoreSnapshotType {}\n","import { TpSkinType } from '@features/Quiz/steps/recomendations-step';\nimport { Instance, applySnapshot, types } from 'mobx-state-tree';\nimport { QuizStep } from 'src/constants/quiz';\n\nexport const QuizStoreModel = types\n .model('QuizStore')\n .props({\n country: types.maybe(types.string),\n countryCode: types.maybe(types.string),\n easilySpend: types.maybe(types.number),\n satisfied: types.maybe(types.number),\n worriesMost: types.maybe(types.number),\n focusOn: types.maybe(types.frozen(types.array(types.string))),\n focusOnTwo: types.maybe(types.frozen(types.array(types.string))),\n ageChanges: types.maybe(types.number),\n tirednessStressless: types.maybe(types.number),\n darkCirclesStressless: types.maybe(types.number),\n stressHealth: types.maybe(types.number),\n acneStressless: types.maybe(types.number),\n wrinkles: types.maybe(types.frozen(types.array(types.string))),\n changesFaced: types.maybe(types.frozen(types.array(types.string))),\n practiceCare: types.maybe(types.number),\n badHabits: types.maybe(types.frozen(types.array(types.string))),\n eatHabits: types.maybe(types.number),\n sugarHabits: types.maybe(types.number),\n sodiumHabits: types.maybe(types.number),\n vegetablesHabits: types.maybe(types.number),\n waterHabits: types.maybe(types.number),\n swellingHabits: types.maybe(types.number),\n sleepHabits: types.maybe(types.number),\n oilyShine: types.maybe(types.number),\n afterCleanFace: types.maybe(types.number),\n skinAcne: types.maybe(types.number),\n skinTexture: types.maybe(types.number),\n stress: types.maybe(types.number),\n skinColor: types.maybe(types.number),\n skinProblems: types.maybe(types.frozen(types.array(types.string))),\n age: types.maybe(types.number),\n faceShape: types.maybe(types.number),\n jawline: types.maybe(types.number),\n unhappy: types.maybe(types.number),\n plasticSurgery: types.maybe(types.number),\n darkCircles: types.maybe(types.number),\n lifestyle: types.maybe(types.number),\n work: types.maybe(types.number),\n afraidOfLosingBeauty: types.maybe(types.number),\n appearanceReason: types.maybe(types.number),\n trends: types.maybe(types.frozen(types.array(types.string))),\n hearAboutUs: types.maybe(types.frozen(types.array(types.string))),\n skincareGoals: types.maybe(types.frozen(types.array(types.string))),\n allergies: types.maybe(types.frozen(types.array(types.string))),\n discomfort: types.maybe(types.number),\n changesWorriesMost: types.maybe(types.frozen(types.array(types.string))),\n bonusChoose: types.maybe(types.number),\n innerAge: types.maybe(types.number),\n lastScreen: false,\n name: types.maybe(types.string),\n ageSimple: types.maybe(types.number),\n easilySpendSimple: types.maybe(types.number),\n excessiveWeight: types.maybe(types.number),\n facialCareSimple: types.maybe(types.number),\n desiredResults: types.maybe(types.number),\n medication: types.maybe(types.number),\n pregnant: types.maybe(types.number),\n skinCare: types.maybe(types.number),\n kids: types.maybe(types.number),\n fromHome: types.maybe(types.number),\n improveSleep: types.maybe(types.number),\n headaches: types.maybe(types.number),\n backAches: types.maybe(types.number),\n tension: types.maybe(types.number),\n behaviour: types.maybe(types.number),\n actionPlan: types.maybe(types.number),\n badHabitsSimple: types.maybe(types.frozen(types.array(types.string))),\n specificAreas: types.maybe(types.frozen(types.array(types.string))),\n specificActivities: types.maybe(types.frozen(types.array(types.string))),\n situation: types.maybe(types.frozen(types.array(types.string))),\n withMimika: types.maybe(types.frozen(types.array(types.string))),\n bestVersion: types.maybe(types.frozen(types.array(types.string))),\n mainMotivation: types.maybe(types.frozen(types.array(types.string))),\n wantExplore: types.maybe(types.frozen(types.array(types.string))),\n mentalWellness: types.maybe(types.frozen(types.array(types.string))),\n spendOnCare: types.maybe(types.number),\n })\n .views((self) => ({\n getSingleOptionSelectStepValue: (step: QuizStep) => {\n switch (step) {\n case QuizStep.EASILY_SPEND:\n case QuizStep.EASILY_SPEND_STRESSLESS:\n return self.easilySpend;\n case QuizStep.SATISFIED:\n return self.satisfied;\n case QuizStep.WORRIES_MOST:\n return self.worriesMost;\n case QuizStep.DARK_CIRCLES:\n return self.darkCircles;\n case QuizStep.SKIN_COLOR:\n return self.skinColor;\n case QuizStep.STRESS:\n return self.stress;\n case QuizStep.JAWLINE:\n return self.jawline;\n case QuizStep.UNHAPPY:\n return self.unhappy;\n case QuizStep.PLASTIC_SURGERY:\n return self.plasticSurgery;\n case QuizStep.AGE_CHANGES:\n case QuizStep.AGE_CHANGES_STRESSLESS:\n return self.ageChanges;\n case QuizStep.TIREDNESS_STRESSLESS:\n return self.tirednessStressless;\n case QuizStep.DARK_CIRCLES_STRESSLESS:\n return self.darkCirclesStressless;\n case QuizStep.STRESS_HEALTH:\n return self.stressHealth;\n case QuizStep.ACNE_STRESSLESS:\n return self.acneStressless;\n case QuizStep.PRACTICE_CARE:\n return self.practiceCare;\n case QuizStep.EAT_HABITS:\n return self.eatHabits;\n case QuizStep.SUGAR_HABITS:\n return self.sugarHabits;\n case QuizStep.SODIUM_HABITS:\n return self.sodiumHabits;\n case QuizStep.VEGETABLES_HABITS:\n return self.vegetablesHabits;\n case QuizStep.WATER_HABITS:\n return self.waterHabits;\n case QuizStep.SWELL_HABITS:\n return self.swellingHabits;\n case QuizStep.SLEEP_HABITS:\n return self.sleepHabits;\n case QuizStep.OILY_SHINE:\n case QuizStep.OILY_SHINE_STRESSLESS:\n return self.oilyShine;\n case QuizStep.AFTER_CLEAN_FACE:\n return self.afterCleanFace;\n case QuizStep.SKIN_ACNE:\n return self.skinAcne;\n case QuizStep.SKIN_TEXTURE:\n case QuizStep.SKIN_TEXTURE_STRESSLESS:\n return self.skinTexture;\n case QuizStep.AGE:\n return self.age;\n case QuizStep.FACE_SHAPE:\n return self.faceShape;\n case QuizStep.LIFESTYLE:\n return self.lifestyle;\n case QuizStep.WORK:\n return self.work;\n case QuizStep.AFRAID_LOSE_BEAUTY:\n case QuizStep.AFRAID_LOSE_BEAUTY_BREAKS_TEST:\n return self.afraidOfLosingBeauty;\n case QuizStep.APPEARANCE_REASON:\n case QuizStep.APPEARANCE_REASON_BREAKS_TEST:\n return self.appearanceReason;\n case QuizStep.INNER_AGE:\n return self.innerAge;\n case QuizStep.AGE_SIMPLE:\n return self.ageSimple;\n case QuizStep.EASILY_SPEND_SIMPLE:\n return self.easilySpendSimple;\n case QuizStep.EXCESSIVE_WEIGHT_SIMPLE:\n return self.excessiveWeight;\n case QuizStep.FACIAL_CARE_SIMPLE:\n return self.facialCareSimple;\n case QuizStep.DESIRED_RESULTS_SIMPLE:\n case QuizStep.DESIRED_RESULTS:\n return self.desiredResults;\n case QuizStep.MEDICATIONS_SIMPLE:\n return self.medication;\n case QuizStep.PREGNANT_SIMPLE:\n return self.pregnant;\n case QuizStep.SKIN_CARE_SIMPLE:\n return self.skinCare;\n case QuizStep.KIDS_SIMPLE:\n return self.kids;\n case QuizStep.WORK_FROM_HOME_SIMPLE:\n return self.fromHome;\n case QuizStep.IMPROVE_SLEEP_SIMPLE:\n return self.improveSleep;\n case QuizStep.HEADACHES_SIMPLE:\n return self.headaches;\n case QuizStep.BACK_ACHES_SIMPLE:\n return self.backAches;\n case QuizStep.TENSION_SIMPLE:\n return self.tension;\n case QuizStep.BEHAVIOUR_SIMPLE:\n return self.behaviour;\n case QuizStep.ACTION_PLAN_SIMPLE:\n return self.actionPlan;\n case QuizStep.SWELL_HABITS_STRESSLESS:\n return self.swellingHabits;\n case QuizStep.SPEND_ON_CARE:\n return self.spendOnCare;\n default:\n throw new Error('The step is not of type SINGLE_OPTION_SELECT');\n }\n },\n get easilySpendStepCompleted() {\n return self.easilySpend != null;\n },\n get satisfiedStepCompleted() {\n return self.satisfied != null;\n },\n get worriesMostStepCompleted() {\n return self.worriesMost != null;\n },\n get focusOnStepCompleted() {\n return self.focusOn != null && self.focusOn.length > 0;\n },\n get focusOnTwoStepCompleted() {\n return self.focusOnTwo != null && self.focusOnTwo.length > 0;\n },\n get ageChangesStepCompleted() {\n return self.ageChanges != null;\n },\n get tirednessStresslessStepCompleted() {\n return self.tirednessStressless != null;\n },\n get darkCirclesStresslessStepCompleted() {\n return self.darkCirclesStressless != null;\n },\n get stressHealthStepCompleted() {\n return self.stressHealth != null;\n },\n get acneStresslessStepCompleted() {\n return self.acneStressless != null;\n },\n get wrinklesStepCompleted() {\n return self.wrinkles != null && self.wrinkles.length > 0;\n },\n get changesFacedStepCompleted() {\n return self.changesFaced != null && self.changesFaced.length > 0;\n },\n get practiceCareStepCompleted() {\n return self.practiceCare != null;\n },\n get badHabitsStepCompleted() {\n return self.badHabits != null && self.badHabits.length > 0;\n },\n get eatHabitsStepCompleted() {\n return self.eatHabits != null;\n },\n get sugarHabitsStepCompleted() {\n return self.sugarHabits != null;\n },\n get sodiumHabitsStepCompleted() {\n return self.sodiumHabits != null;\n },\n get vegetablesHabitsStepCompleted() {\n return self.vegetablesHabits != null;\n },\n get waterHabitsStepCompleted() {\n return self.waterHabits != null;\n },\n get swellingHabitsStepCompleted() {\n return self.swellingHabits != null;\n },\n get sleepHabitsStepCompleted() {\n return self.sleepHabits != null;\n },\n get oilyShineStepCompleted() {\n return self.oilyShine != null;\n },\n get afterCleanFaceStepCompleted() {\n return self.afterCleanFace != null;\n },\n get skinAcneStepCompleted() {\n return self.skinAcne != null;\n },\n get skinTextureStepCompleted() {\n return self.skinTexture != null;\n },\n get stressStepCompleted() {\n return self.stress != null;\n },\n get skinColorStepCompleted() {\n return self.skinColor != null;\n },\n get skinProblemsStepCompleted() {\n return self.skinProblems != null;\n },\n get ageStepCompleted() {\n return self.age != null;\n },\n get faceShapeStepCompleted() {\n return self.faceShape != null;\n },\n get jawlineStepCompleted() {\n return self.jawline != null;\n },\n get unhappyStepCompleted() {\n return self.unhappy != null;\n },\n get plasticSurgeryStepCompleted() {\n return self.plasticSurgery != null;\n },\n get darkCirclesStepCompleted() {\n return self.darkCircles != null;\n },\n get lifestyleStepCompleted() {\n return self.lifestyle != null;\n },\n get workStepCompleted() {\n return self.work != null;\n },\n get afraidOfLosingBeautyStepCompleted() {\n return self.afraidOfLosingBeauty != null;\n },\n get appearanceReasonStepCompleted() {\n return self.appearanceReason != null;\n },\n get trendsStepCompleted() {\n return self.trends != null && self.trends.length > 0;\n },\n get hearAboutUsStepCompleted() {\n return self.hearAboutUs != null && self.hearAboutUs.length > 0;\n },\n get skincareGoalsStepCompleted() {\n return self.skincareGoals != null && self.skincareGoals.length > 0;\n },\n get allergiesStepCompleted() {\n return self.allergies != null && self.allergies.length > 0;\n },\n get discomfortStepCompleted() {\n return self.discomfort != null;\n },\n get changesWorriesMostStepCompleted() {\n return self.changesWorriesMost != null;\n },\n get bonusChooseStepCompleted() {\n return self.bonusChoose != null;\n },\n get innerAgeStepCompleted() {\n return self.innerAge != null;\n },\n get nameCompleted() {\n return self.name != null;\n },\n get ageSimpleStepCompleted() {\n return self.ageSimple != null;\n },\n get easilySpendSimpleStepCompleted() {\n return self.easilySpendSimple != null;\n },\n get excessiveWeightStepCompleted() {\n return self.excessiveWeight != null;\n },\n get facialCareSimpletStepCompleted() {\n return self.facialCareSimple != null;\n },\n get desiredResultsStepCompleted() {\n return self.desiredResults != null;\n },\n get medicationStepCompleted() {\n return self.medication != null;\n },\n get pregnantStepCompleted() {\n return self.pregnant != null;\n },\n get skinCareStepCompleted() {\n return self.skinCare != null;\n },\n get kidsStepCompleted() {\n return self.kids != null;\n },\n get fromHomeStepCompleted() {\n return self.fromHome != null;\n },\n get improveSleepStepCompleted() {\n return self.improveSleep != null;\n },\n get headachesStepCompleted() {\n return self.headaches != null;\n },\n get backAchesStepCompleted() {\n return self.backAches != null;\n },\n get tensionStepCompleted() {\n return self.tension != null;\n },\n get behaviourStepCompleted() {\n return self.behaviour != null;\n },\n get actionPlanStepCompleted() {\n return self.actionPlan != null;\n },\n get badHabitsSimpleStepCompleted() {\n return self.badHabitsSimple != null && self.badHabitsSimple.length > 0;\n },\n get specificAreasStepCompleted() {\n return self.specificAreas != null && self.specificAreas.length > 0;\n },\n get specificActivitiesStepCompleted() {\n return (\n self.specificActivities != null && self.specificActivities.length > 0\n );\n },\n get situationStepCompleted() {\n return self.situation != null && self.situation.length > 0;\n },\n get withMimikaStepCompleted() {\n return self.withMimika != null && self.withMimika.length > 0;\n },\n get bestVersionStepCompleted() {\n return self.bestVersion != null && self.bestVersion.length > 0;\n },\n get mainMotivationStepCompleted() {\n return self.mainMotivation != null && self.mainMotivation.length > 0;\n },\n get wantExploreStepCompleted() {\n return self.wantExplore != null && self.wantExplore.length > 0;\n },\n get mentalWellnessStepCompleted() {\n return self.mentalWellness != null && self.mentalWellness.length > 0;\n },\n get spendOnCareStepCompleted() {\n return self.spendOnCare != null;\n },\n }))\n .views((self) => ({\n getMeaningAge: () => {\n switch (self.age) {\n case 0:\n return 18;\n case 1:\n return 25;\n case 2:\n return 35;\n case 3:\n return 45;\n case 4:\n return 55;\n case 5:\n return 65;\n default:\n return 45;\n }\n },\n getSkinColor: () => {\n switch (self.skinColor) {\n case 0:\n return 'Sand or {br} Warm ivory';\n case 1:\n return 'Fair or {br} Pale ivory';\n case 2:\n return 'Olive or {br} Light brown';\n case 3:\n return 'Brown or {br} Black brown';\n default:\n return 'Sand or {br} Warm ivory';\n }\n },\n getSkinType: () => {\n let dry: { label: TpSkinType; value: number } = {\n label: 'Dry',\n value: 0,\n };\n let combo: { label: TpSkinType; value: number } = {\n label: 'Combination',\n value: 0,\n };\n let oil: { label: TpSkinType; value: number } = {\n label: 'Oily',\n value: 0,\n };\n let normal: { label: TpSkinType; value: number } = {\n label: 'Normal',\n value: 0,\n };\n switch (self.oilyShine) {\n case 0:\n dry.value += 1;\n break;\n case 1:\n normal.value += 1;\n break;\n case 2:\n combo.value += 1;\n break;\n case 3:\n oil.value += 1;\n break;\n }\n switch (self.afterCleanFace) {\n case 0:\n normal.value += 1;\n break;\n case 1:\n combo.value += 1;\n break;\n case 2:\n dry.value += 1;\n break;\n case 3:\n oil.value += 1;\n break;\n }\n switch (self.skinAcne) {\n case 0:\n normal.value += 1;\n dry.value += 1;\n break;\n case 1:\n oil.value += 1;\n break;\n case 2:\n combo.value += 1;\n break;\n }\n switch (self.skinTexture) {\n case 0:\n normal.value += 1;\n oil.value += 1;\n break;\n case 1:\n dry.value += 1;\n combo.value += 1;\n break;\n }\n switch (self.stress) {\n case 0:\n normal.value += 1;\n oil.value += 1;\n break;\n case 1:\n dry.value += 1;\n combo.value += 1;\n break;\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n const skinTypeMaxWithMaxValue = [dry, combo, oil, normal].reduce(\n (\n accum: { label: TpSkinType; value: number },\n current: { label: TpSkinType; value: number },\n ) => {\n if (current.value > accum.value) {\n return current;\n } else if (current.value === accum.value) {\n return combo;\n } else {\n return accum;\n }\n },\n { label: 'Normal', value: -1 },\n );\n return skinTypeMaxWithMaxValue.label;\n },\n }))\n .actions((self) => ({\n setCountry: (value: string) => {\n self.country = value;\n },\n setCountryCode: (value: string) => {\n self.countryCode = value;\n },\n setEasilySpend: (value: number) => {\n self.easilySpend = value;\n },\n setSatisfied: (value: number) => {\n self.satisfied = value;\n },\n setWorriesMost: (value: number) => {\n self.worriesMost = value;\n },\n setFocusOn: (value?: readonly string[]) => {\n self.focusOn = value;\n },\n setFocusOnTwo: (value?: readonly string[]) => {\n self.focusOnTwo = value;\n },\n setAgeChanges: (value: number) => {\n self.ageChanges = value;\n },\n setTirednessStressless: (value: number) => {\n self.tirednessStressless = value;\n },\n setDarkCirclesStressless: (value: number) => {\n self.darkCirclesStressless = value;\n },\n setStressHealth: (value: number) => {\n self.stressHealth = value;\n },\n setAcneStressless: (value: number) => {\n self.acneStressless = value;\n },\n setWrinkles: (value?: readonly string[]) => {\n self.wrinkles = value;\n },\n setChangesFaced: (value?: readonly string[]) => {\n self.changesFaced = value;\n },\n setPracticeCare: (value: number) => {\n self.practiceCare = value;\n },\n setBadHabits: (value?: readonly string[]) => {\n self.badHabits = value;\n },\n setEatHabits: (value: number) => {\n self.eatHabits = value;\n },\n setSugarHabits: (value: number) => {\n self.sugarHabits = value;\n },\n setSodiumHabits: (value: number) => {\n self.sodiumHabits = value;\n },\n setVegetablesHabits: (value: number) => {\n self.vegetablesHabits = value;\n },\n setWaterHabits: (value: number) => {\n self.waterHabits = value;\n },\n setSwellHabits: (value: number) => {\n self.swellingHabits = value;\n },\n setSleepHabits: (value: number) => {\n self.sleepHabits = value;\n },\n setOilyShine: (value: number) => {\n self.oilyShine = value;\n },\n setAfterCleanFace: (value: number) => {\n self.afterCleanFace = value;\n },\n setSkinAcne: (value: number) => {\n self.skinAcne = value;\n },\n setSkinTexture: (value: number) => {\n self.skinTexture = value;\n },\n setSkinColor: (value: number) => {\n self.skinColor = value;\n },\n setSkinProblems: (value?: readonly string[]) => {\n self.skinProblems = value;\n },\n setStress: (value: number) => {\n self.stress = value;\n },\n setAge: (value: number) => {\n self.age = value;\n },\n setFaceShape: (value: number) => {\n self.faceShape = value;\n },\n setJawline: (value: number) => {\n self.jawline = value;\n },\n setUnhappy: (value: number) => {\n self.unhappy = value;\n },\n setPlasticSurgery: (value: number) => {\n self.plasticSurgery = value;\n },\n setDarkCircles: (value: number) => {\n self.darkCircles = value;\n },\n setLifestyle: (value: number) => {\n self.lifestyle = value;\n },\n setWork: (value: number) => {\n self.work = value;\n },\n setAfraidOfLosingBeauty: (value: number) => {\n self.afraidOfLosingBeauty = value;\n },\n setAppearanceReason: (value: number) => {\n self.appearanceReason = value;\n },\n setTrends: (value?: readonly string[]) => {\n self.trends = value;\n },\n setHearAboutUs: (value?: readonly string[]) => {\n self.hearAboutUs = value;\n },\n setAllergies: (value?: readonly string[]) => {\n self.allergies = value;\n },\n setSkincareGoals: (value?: readonly string[]) => {\n self.skincareGoals = value;\n },\n setDiscomfort: (value: number) => {\n self.discomfort = value;\n },\n setChangesWorriesMost: (value?: readonly string[]) => {\n self.changesWorriesMost = value;\n },\n setBonusChoose: (value: number) => {\n self.bonusChoose = value;\n },\n setInnerAge: (value: number) => {\n self.innerAge = value;\n },\n setLastScreen: (value: boolean) => {\n self.lastScreen = value;\n },\n setName: (value: string) => {\n self.name = value;\n },\n setAgeSimple: (value: number) => {\n self.ageSimple = value;\n },\n setEasilySpendSimple: (value: number) => {\n self.easilySpendSimple = value;\n },\n setExcessiveWeight: (value: number) => {\n self.excessiveWeight = value;\n },\n setFacialCareSimple: (value: number) => {\n self.facialCareSimple = value;\n },\n setDesiredResults: (value: number) => {\n self.desiredResults = value;\n },\n setMedication: (value: number) => {\n self.medication = value;\n },\n setPregnant: (value: number) => {\n self.pregnant = value;\n },\n setSkinCare: (value: number) => {\n self.skinCare = value;\n },\n setFromHome: (value: number) => {\n self.fromHome = value;\n },\n setImproveSleep: (value: number) => {\n self.improveSleep = value;\n },\n setHeadaches: (value: number) => {\n self.headaches = value;\n },\n setBackAches: (value: number) => {\n self.backAches = value;\n },\n setKids: (value: number) => {\n self.kids = value;\n },\n setTension: (value: number) => {\n self.tension = value;\n },\n setBehaviour: (value: number) => {\n self.behaviour = value;\n },\n setActionPlan: (value: number) => {\n self.actionPlan = value;\n },\n setBadHabitsSimple: (value?: readonly string[]) => {\n self.badHabitsSimple = value;\n },\n setSpecificAreas: (value?: readonly string[]) => {\n self.specificAreas = value;\n },\n setSpecificActivities: (value?: readonly string[]) => {\n self.specificActivities = value;\n },\n setSituation: (value?: readonly string[]) => {\n self.situation = value;\n },\n setWithMimika: (value?: readonly string[]) => {\n self.withMimika = value;\n },\n setBestVersion: (value?: readonly string[]) => {\n self.bestVersion = value;\n },\n setMainMotivation: (value?: readonly string[]) => {\n self.mainMotivation = value;\n },\n setWantExplore: (value?: readonly string[]) => {\n self.wantExplore = value;\n },\n setMentalWellness: (value?: readonly string[]) => {\n self.mentalWellness = value;\n },\n setSpendOnCare: (value: number) => {\n self.spendOnCare = value;\n },\n fillInAllSteps: () => {\n if (!self.easilySpendStepCompleted) {\n self.easilySpend = 0;\n }\n if (!self.satisfiedStepCompleted) {\n self.satisfied = 0;\n }\n if (!self.worriesMostStepCompleted) {\n self.worriesMost = 0;\n }\n if (!self.focusOnStepCompleted) {\n self.focusOn = ['drooping_eyelids'];\n }\n if (!self.focusOnTwoStepCompleted) {\n self.focusOnTwo = ['double_chin'];\n }\n if (!self.ageChangesStepCompleted) {\n self.ageChanges = 0;\n }\n if (!self.tirednessStresslessStepCompleted) {\n self.tirednessStressless = 0;\n }\n if (!self.darkCirclesStresslessStepCompleted) {\n self.darkCirclesStressless = 0;\n }\n if (!self.stressHealthStepCompleted) {\n self.stressHealth = 0;\n }\n if (!self.acneStresslessStepCompleted) {\n self.acneStressless = 0;\n }\n if (!self.wrinklesStepCompleted) {\n self.wrinkles = ['nasolabial_fold'];\n }\n if (!self.changesFacedStepCompleted) {\n self.changesFaced = ['tired_look'];\n }\n if (!self.practiceCareStepCompleted) {\n self.practiceCare = 0;\n }\n if (!self.badHabitsStepCompleted) {\n self.badHabits = ['smoking'];\n }\n if (!self.eatHabitsStepCompleted) {\n self.eatHabits = 0;\n }\n if (!self.sugarHabitsStepCompleted) {\n self.sugarHabits = 0;\n }\n if (!self.sodiumHabitsStepCompleted) {\n self.sodiumHabits = 0;\n }\n if (!self.vegetablesHabitsStepCompleted) {\n self.vegetablesHabits = 0;\n }\n if (!self.waterHabitsStepCompleted) {\n self.waterHabits = 0;\n }\n if (!self.swellingHabitsStepCompleted) {\n self.swellingHabits = 0;\n }\n if (!self.sleepHabitsStepCompleted) {\n self.sleepHabits = 0;\n }\n if (!self.oilyShineStepCompleted) {\n self.oilyShine = 0;\n }\n if (!self.afterCleanFaceStepCompleted) {\n self.afterCleanFace = 0;\n }\n if (!self.skinAcneStepCompleted) {\n self.skinAcne = 0;\n }\n if (!self.skinTextureStepCompleted) {\n self.skinTexture = 0;\n }\n if (!self.stressStepCompleted) {\n self.stress = 0;\n }\n if (!self.skinColorStepCompleted) {\n self.skinColor = 0;\n }\n if (!self.skinProblemsStepCompleted) {\n self.skinProblems = ['sensitive_dry'];\n }\n if (!self.ageStepCompleted) {\n self.age = 0;\n }\n if (!self.faceShapeStepCompleted) {\n self.faceShape = 0;\n }\n if (!self.jawlineStepCompleted) {\n self.jawline = 0;\n }\n if (!self.unhappyStepCompleted) {\n self.unhappy = 0;\n }\n if (!self.plasticSurgeryStepCompleted) {\n self.plasticSurgery = 0;\n }\n if (!self.darkCirclesStepCompleted) {\n self.darkCircles = 0;\n }\n if (!self.lifestyleStepCompleted) {\n self.lifestyle = 0;\n }\n if (!self.workStepCompleted) {\n self.work = 0;\n }\n if (!self.afraidOfLosingBeautyStepCompleted) {\n self.afraidOfLosingBeauty = 0;\n }\n if (!self.appearanceReasonStepCompleted) {\n self.appearanceReason = 0;\n }\n if (!self.hearAboutUsStepCompleted) {\n self.hearAboutUs = ['tv'];\n }\n if (!self.trendsStepCompleted) {\n self.trends = ['mewing'];\n }\n if (!self.skincareGoalsStepCompleted) {\n self.skincareGoals = ['moisturizing'];\n }\n if (!self.allergiesStepCompleted) {\n self.allergies = ['fragrances'];\n }\n if (!self.discomfortStepCompleted) {\n self.discomfort = 0;\n }\n if (!self.changesWorriesMostStepCompleted) {\n self.changesWorriesMost = ['facial_drooping'];\n }\n if (!self.bonusChooseStepCompleted) {\n self.bonusChoose = 0;\n }\n if (!self.innerAgeStepCompleted) {\n self.innerAge = 1;\n }\n if (!self.nameCompleted) {\n self.name = 'Jane';\n }\n if (!self.ageSimpleStepCompleted) {\n self.ageSimple = 0;\n }\n if (!self.easilySpendSimpleStepCompleted) {\n self.easilySpendSimple = 0;\n }\n if (!self.excessiveWeightStepCompleted) {\n self.excessiveWeight = 0;\n }\n if (!self.facialCareSimpletStepCompleted) {\n self.facialCareSimple = 0;\n }\n if (!self.desiredResultsStepCompleted) {\n self.desiredResults = 0;\n }\n if (!self.medicationStepCompleted) {\n self.medication = 0;\n }\n if (!self.pregnantStepCompleted) {\n self.pregnant = 0;\n }\n if (!self.skinCareStepCompleted) {\n self.skinCare = 0;\n }\n if (!self.kidsStepCompleted) {\n self.kids = 0;\n }\n if (!self.improveSleepStepCompleted) {\n self.improveSleep = 0;\n }\n if (!self.headachesStepCompleted) {\n self.headaches = 0;\n }\n if (!self.backAchesStepCompleted) {\n self.backAches = 0;\n }\n if (!self.fromHomeStepCompleted) {\n self.fromHome = 0;\n }\n if (!self.tensionStepCompleted) {\n self.tension = 0;\n }\n if (!self.behaviourStepCompleted) {\n self.behaviour = 0;\n }\n if (!self.actionPlanStepCompleted) {\n self.actionPlan = 0;\n }\n if (!self.badHabitsSimpleStepCompleted) {\n self.badHabitsSimple = ['smoking'];\n }\n if (!self.specificAreasStepCompleted) {\n self.specificAreas = ['cheekbones_and_temples'];\n }\n if (!self.specificActivitiesStepCompleted) {\n self.specificActivities = ['time_on_phone'];\n }\n if (!self.situationStepCompleted) {\n self.situation = ['marriage_relationship'];\n }\n if (!self.withMimikaStepCompleted) {\n self.withMimika = ['self_worth'];\n }\n if (!self.bestVersionStepCompleted) {\n self.bestVersion = ['full_of_energy'];\n }\n if (!self.mainMotivationStepCompleted) {\n self.mainMotivation = ['changing_how_i_look'];\n }\n if (!self.wantExploreStepCompleted) {\n self.wantExplore = ['femininity'];\n }\n if (!self.mentalWellnessStepCompleted) {\n self.mentalWellness = ['better_help'];\n }\n if (!self.spendOnCareStepCompleted) {\n self.spendOnCare = 0;\n }\n },\n }))\n .actions((self) => ({\n reset: () => {\n applySnapshot(self, {});\n },\n }));\n\nexport type QuizStoreType = Instance;\n\nexport interface QuizStore extends QuizStoreType {}\n","import { Instance, SnapshotOut, types } from 'mobx-state-tree';\n\nimport { AnalyticsStoreModel } from '../analytics-store/analytics-store';\nimport { AuthStoreModel } from '../auth-store/auth-store';\nimport { PaymentsStoreModel } from '../payments-store/payments-store';\nimport { QuizStoreModel } from '../quiz-store/quiz-store';\n\n/**\n * A RootStore model.\n */\nexport const RootStoreModel = types.model('RootStore').props({\n analyticsStore: types.optional(AnalyticsStoreModel, {}),\n quizStore: types.optional(QuizStoreModel, {}),\n authStore: types.optional(AuthStoreModel, {}),\n paymentsStore: types.optional(PaymentsStoreModel, {}),\n});\n\n/**\n * The RootStore instance.\n */\nexport interface RootStore extends Instance {}\n\n/**\n * The data of a RootStore.\n */\nexport interface RootStoreSnapshot extends SnapshotOut {}\n","import { onSnapshot } from 'mobx-state-tree';\nimport { PropsWithChildren, createContext, useContext, useEffect, useMemo } from 'react';\nimport { RootStore, RootStoreModel, RootStoreSnapshot } from 'src/models/root-store/root-store';\nconst ROOT_STATE_STORAGE_KEY = 'root';\n\n/**\n * Create a context we can use to\n * - Provide access to our stores from our root component\n * - Consume stores in our screens (or other components, though it's\n * preferable to just connect screens)\n */\nconst RootStoreContext = createContext(({} as RootStore));\n\n/**\n * The provider our root component will use to expose the root store\n */\nexport const RootStoreProvider = ({\n children\n}: PropsWithChildren<{}>) => {\n const rootStore = useMemo(() => {\n if (typeof sessionStorage !== 'undefined') {\n const data = sessionStorage.getItem(ROOT_STATE_STORAGE_KEY);\n if (data != null) {\n try {\n return RootStoreModel.create(JSON.parse(data));\n } catch (error) {\n console.warn('Failed to apply root store snapshot from sessionStorage', error);\n }\n }\n }\n return RootStoreModel.create();\n }, []);\n useEffect(() => onSnapshot(rootStore, (snapshot: RootStoreSnapshot) => {\n if (snapshot.authStore.user) {\n // Cannot use a stale user because of routing being based on\n // whether the subscription has been purchased\n snapshot = {\n ...snapshot,\n authStore: {\n ...snapshot.authStore,\n user: undefined\n }\n };\n }\n sessionStorage.setItem(ROOT_STATE_STORAGE_KEY, JSON.stringify(snapshot));\n }), [rootStore]);\n return \n {children}\n ;\n};\n\n/**\n * A hook that screens can use to gain access to our stores, with\n * `const { someStore, someOtherStore } = useStores()`,\n * or less likely: `const rootStore = useStores()`\n */\nexport const useStores = () => useContext(RootStoreContext);","import { Button } from '@mentalgrowth/ui-kit-web';\nimport { TpButtonProps } from '@mentalgrowth/ui-kit-web';\nexport const UiKitButton = (props: TpButtonProps) => \n
;\n }, [minutes, onClick, seconds, timerEnd, variant, wasErrorModalWithOfferShown]);\n});\nexport default Banner;","import { useState } from 'react';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { FormattedMessage } from 'src/features/intl';\nimport { ContactFormModal } from '../contact-form-modal';\nimport styles from './contact-block.module.scss';\nexport const ContactBlock = () => {\n const [isContactModalVisible, setIsContactModalVisible] = useState(false);\n return <>\n setIsContactModalVisible(false)} data-sentry-element=\"ContactFormModal\" data-sentry-source-file=\"index.tsx\" />\n\n

\n \n

\n setIsContactModalVisible(true)} className={styles.buttonContact} data-sentry-element=\"UiKitButton\" data-sentry-source-file=\"index.tsx\">\n \n \n ;\n};","import classNames from 'classnames';\nimport { ComponentProps, HTMLProps, ReactNode } from 'react';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport Modal from '../modal/modal';\nimport styles from './form-modal.module.scss';\nexport interface Props extends ComponentProps, Pick, 'onSubmit'> {\n isValid?: boolean;\n isSubmitting?: boolean;\n submitButtonText?: ReactNode;\n submitButtonVariant?: string;\n className?: string;\n contentClassName?: string;\n}\nconst FormModal = ({\n footer,\n isValid,\n onSubmit,\n isSubmitting,\n submitButtonText,\n submitButtonVariant,\n children,\n className,\n contentClassName,\n ...props\n}: Props) => \n \n
\n {children}\n
\n \n {submitButtonText}\n \n
\n
\n \n
;\nexport default FormModal;","import { useFormik } from 'formik';\nimport { observer } from 'mobx-react-lite';\nimport { ComponentProps, useCallback, useEffect, useState } from 'react';\nimport * as yup from 'yup';\nimport * as commonApi from 'src/api/common';\nimport { Image } from 'src/components/common/Image';\nimport AlertWithCloseButton from 'src/components/common/modal/alert-with-close-button/alert-with-close-button';\nimport FormModal from 'src/components/common/modal/form-modal/form-modal';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { UiKitInput } from 'src/components/common/ui-kit-input';\nimport { useAbortableCallback } from 'src/utils/hooks/use-abortable';\nimport { useAnalytics } from '@features/Analytics';\nimport { FormattedMessage, TpMessageKeys, useIntl } from '@features/intl';\nimport styles from './contact-form-modal.module.scss';\nconst formSchema = yup.object().shape({\n email: yup.string().trim().required().email().matches(/^[\\w%+.-]+@[\\d.A-Za-z-]+\\.[A-Za-z]{2,}$/),\n message: yup.string().trim().required()\n});\nconst formInitialValues = {\n email: '',\n message: ''\n};\nexport const ContactFormModal = observer((props: Omit, 'children'> & {\n placeLabel: string;\n}) => {\n const {\n show,\n onHide,\n placeLabel\n } = props;\n const {\n trackGoogleEvent\n } = useAnalytics();\n const [isSubmittedAlertShown, setIsSubmittedAlertShown] = useState(false);\n const {\n authStore: {\n user\n }\n } = useStores();\n const intl = useIntl();\n const {\n values,\n handleChange,\n handleBlur,\n handleSubmit,\n resetForm,\n touched,\n errors,\n isValid,\n isSubmitting\n } = useFormik({\n initialValues: formInitialValues,\n validationSchema: formSchema,\n onSubmit: useAbortableCallback(async (abortSignal, values) => {\n trackGoogleEvent({\n eventName: 'support_send_tapped',\n options: {\n email: values.email,\n place: placeLabel\n }\n });\n await commonApi.sendFeedback({\n email: values.email,\n message: values.message,\n userId: user?.id,\n isSubscriber: user?.isSubscriptionActive,\n fromLabel: placeLabel\n });\n setIsSubmittedAlertShown(true);\n onHide?.();\n }, [onHide])\n });\n const formatPlaceholder = useCallback((placeholderId: TpMessageKeys, placeholderDefaultMessage: string) => intl.formatMessage({\n asString: true,\n id: placeholderId,\n defaultMessage: placeholderDefaultMessage\n }, {\n br:
\n }), [intl]);\n const hideModals = useCallback(() => {\n setIsSubmittedAlertShown(false);\n }, []);\n useEffect(() => {\n if (show) {\n resetForm();\n setIsSubmittedAlertShown(false);\n trackGoogleEvent({\n eventName: 'support_opened',\n options: {\n email: user?.email,\n place: placeLabel\n }\n });\n }\n }, [show, resetForm, trackGoogleEvent, placeLabel, user?.email]);\n return <>\n } description={} isValid={isValid} onSubmit={handleSubmit} isSubmitting={isSubmitting} submitButtonText={} {...props}>\n
\n \n
\n
\n \n
\n
\n } title=\"Thanks\" description=\"Your request has been sent. We will contact you shortly with an update.\" closeButtonText=\"Thank you\" />\n ;\n});","import { Image } from 'src/components/common/Image';\nimport { getLocaleImage } from 'src/utils/get-locale-image';\nimport { FormattedMessage, TpMessageKeys } from '@features/intl';\nimport styles from './graph.module.scss';\ntype TpStates = {\n textId: TpMessageKeys;\n defaultTextMessage: string;\n markId: TpMessageKeys;\n defaultMarkMessage: string;\n};\nconst STATES_DATA: TpStates[] = [{\n textId: 'Onboarding.Paywall.Main.Younger.Text1',\n defaultTextMessage: 'Laboratory research has proven that Face Massage can change your {mark}',\n markId: 'Onboarding.Paywall.Main.Younger.Text.Mark',\n defaultMarkMessage: 'the intra-facial structure.'\n}, {\n textId: 'Onboarding.Paywall.Main.Younger.Text2',\n defaultTextMessage: \"That's why Face Yoga is a {mark}\",\n markId: 'Onboarding.Paywall.Main.Younger.Text2.Mark',\n defaultMarkMessage: 'natural facelift!'\n}, {\n textId: 'Onboarding.Paywall.Main.Younger.Text3',\n defaultTextMessage: 'It’s simply magical: increased blood flow to the area boosts collagen production, {br} {mark}',\n markId: 'Onboarding.Paywall.Main.Younger.Text3.Mark',\n defaultMarkMessage: 'helping you look 5+ years younger.'\n}];\nexport const Graph = ({\n isEmail3\n}: {\n isEmail3?: boolean;\n}) =>
\n

\n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />\n

\n\n
\n \"Graph\n
\n {!isEmail3 && <>\n

\n \n

\n\n {STATES_DATA.map(({\n textId,\n defaultTextMessage,\n markId,\n defaultMarkMessage\n }) =>

\n \n \n ,\n br:
\n }} />\n

)}\n }\n
;","import { ReactNode } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { FormattedMessage } from 'src/features/intl';\nimport { RefundLink } from 'src/widgets/policy';\nimport classNames from 'classnames';\nimport styles from './guarantees.module.scss';\nconst defaultDescription = <>\n \n
\n
\n \n Find more about the applicable limitations in our{' '}\n \n \n ;\nexport const Guarantees = (props: {\n description?: ReactNode;\n titleClassName?: string;\n}) => {\n const {\n description = defaultDescription,\n titleClassName\n } = props;\n return
\n

\n \n

\n

{description}

\n \"stamp\n
;\n};","import { Image } from 'src/components/common/Image';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './press-section.module.scss';\nexport const PressSection = () =>
\n
\n \"\"\n \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />\n \n
\n

\n {' '}\n \n

\n
\n \"\"\n \"\"\n \"\"\n
\n
;","import classNames from 'classnames';\nimport { ReactNode } from 'react';\nimport { FormattedMessage, TpMessageKeys } from 'src/features/intl';\nimport Star from '../../../assets/icons/star.svg';\nimport styles from './review-card.module.scss';\ntype Props = {\n avatar: ReactNode;\n name: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n date: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n review: string | {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n rating?: number;\n className?: string;\n};\nconst ReviewCard = ({\n avatar,\n name,\n date,\n review,\n rating = 5,\n className\n}: Props) =>
\n
\n
{avatar}
\n
\n

\n <>\n {' '}\n {typeof name === 'object' ? : review}\n \n

\n
    \n {Array.from({\n length: rating\n }, (_, index) =>
  • \n \n
  • )}\n
\n
\n
\n <>\n {' '}\n {typeof date === 'object' ? : review}\n \n
\n
\n

\n {typeof review === 'object' ? : review}\n

\n
;\nexport default ReviewCard;","import ReviewCard from 'src/components/common/review-card/review-card';\nimport type { TpReview } from 'src/components/common/reviews/reviews';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './reviews.module.scss';\ntype Props = {\n reviews: TpReview[];\n};\nexport const Reviews = ({\n reviews\n}: Props) => <>\n

\n \n \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />{' '}\n
\n \n

\n\n
    \n {reviews.map((review, index) =>
  • \n \n
  • )}\n
\n ;","import classNames from 'classnames';\nimport { useAtomValue } from 'jotai';\nimport { useMemo } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { useCountdown } from 'src/utils/hooks';\nimport { currencyReplacer } from '@features/Payments';\nimport { noMoneyPlanInfoAtom, selectedPlanAtom } from '@features/Stripe/atoms';\nimport styles from './start-block-transaktion-declined.module.scss';\nexport const StartBlockTransactionDeclined = ({\n variant\n}: {\n variant?: string;\n}) => {\n const noMoneyPlanInfo = useAtomValue(noMoneyPlanInfoAtom);\n const selectedPlanInfo = useAtomValue(selectedPlanAtom);\n const targetTime = useMemo(() => Date.now() + 5 * 60 * 1000, []);\n const fullPrice = useMemo(() => variant === 'email2' ? selectedPlanInfo.fullPrice : noMoneyPlanInfo.priceFromDefaultOneMonth, [noMoneyPlanInfo.priceFromDefaultOneMonth, selectedPlanInfo.fullPrice, variant]);\n const fullPriceDiscount = useMemo(() => variant === 'email2' ? selectedPlanInfo.fullPriceDiscount : noMoneyPlanInfo.fullPriceDiscount, [noMoneyPlanInfo.fullPriceDiscount, selectedPlanInfo.fullPriceDiscount, variant]);\n const currency = useMemo(() => variant === 'email2' ? currencyReplacer(selectedPlanInfo.currency) : currencyReplacer(noMoneyPlanInfo.currency), [noMoneyPlanInfo.currency, selectedPlanInfo.currency, variant]);\n const [_, minutes, seconds] = useCountdown({\n targetDate: targetTime,\n onComplete: () => null\n });\n return
\n {variant === 'email2' &&
\n \"\"\n
}\n
\n
\n {`${currency}${fullPrice}`}\n {` ${currency}${fullPriceDiscount}`} per 1 month\n \"\"\n
\n

\n For your personal program\n

\n
\n\n
\n

\n Act now, the time is running out!\n

\n
\n
0
\n
0
\n
:
\n
\n {+minutes >= 10 ? Math.floor(+minutes / 10) : 0}\n
\n
\n {+minutes >= 10 ? Math.floor(+minutes % 10) : +minutes}\n
\n
:
\n
\n {+seconds >= 10 ? Math.floor(+seconds / 10) : 0}\n
\n
\n {+seconds >= 10 ? Math.floor(+seconds % 10) : +seconds}\n
\n
\n
\n
;\n};","import { observer } from 'mobx-react-lite';\nimport { useMemo } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { FormattedMessage } from 'src/features/intl';\nimport { VIDEO_SOURCE } from 'src/utils/constants';\nimport styles from './start-block.module.scss';\nimport { useFeatures } from '@features/FeatureToggle';\nexport const StartBlock = observer(() => {\n const {\n authStore: {\n isTwitterSource\n }\n } = useStores();\n const {\n beforeAfterPaywallTest\n } = useFeatures();\n const currentContent = useMemo(() => {\n if (isTwitterSource) {\n return
\n \"slide\n
;\n }\n if (beforeAfterPaywallTest) {\n return
\n \"\"\n \n \"\"\n
;\n }\n return ;\n }, [isTwitterSource, beforeAfterPaywallTest]);\n return
\n

\n \n }} />\n

\n

\n \n

\n {currentContent}\n
;\n});","import classNames from 'classnames';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { forwardRef, ReactNode, RefObject, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { PAYMENT_MODAL_QUERY_PARAM } from 'src/features/Paywall/constants';\nimport { PaymentModalStatus } from '@features/Payments';\nimport { useFeatures } from '@features/FeatureToggle';\nimport Banner from '../../components/banner/banner';\nimport styles from './paywall-with-scroll.module.scss';\ntype TpPaywallWithScrollProps = {\n onDiscountTimeFinished: () => void;\n children: ReactNode;\n};\nconst PaywallWithScroll = (props: TpPaywallWithScrollProps, ref: RefObject) => {\n const {\n onDiscountTimeFinished,\n children\n } = props;\n const paymentSectionRef = ref;\n const [isHideHeader, setHideHeader] = useState(false);\n const [isHideFooter, setHideFooter] = useState(false);\n const [initFooter, setFooter] = useState(false);\n const {\n authStore\n } = useStores();\n const {\n simplePaywallFeature: isSimplePaywallEnabled\n } = useFeatures();\n const router = useRouter();\n const {\n query\n } = router;\n const {\n isPaddleVariants,\n variant\n } = authStore;\n const isInlinePaddleActive = query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.SHOW && isPaddleVariants;\n const onScrollToPayment = useCallback(() => {\n if (paymentSectionRef.current) {\n paymentSectionRef.current.scrollIntoView({\n behavior: 'smooth'\n });\n }\n }, [paymentSectionRef]);\n const onScroll = useCallback(() => {\n if (paymentSectionRef.current) {\n const {\n top,\n bottom\n } = paymentSectionRef.current.getBoundingClientRect();\n setFooter(top <= 0);\n setHideHeader(top <= 0);\n setHideFooter(bottom >= 500);\n }\n }, [paymentSectionRef]);\n const renderBanner = useMemo(() => variant !== 'email3' && !isSimplePaywallEnabled ? : null, [onDiscountTimeFinished, onScrollToPayment, variant, isSimplePaywallEnabled]);\n useEffect(() => {\n if (query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.HIDE && isPaddleVariants) {\n onScrollToPayment();\n }\n }, [isPaddleVariants, onScrollToPayment, query]);\n useEffect(() => {\n window.addEventListener('scroll', onScroll);\n return () => {\n window.removeEventListener('scroll', onScroll);\n };\n }, [onScroll]);\n return
\n {!isInlinePaddleActive && renderBanner &&
\n {renderBanner}\n
}\n\n {children}\n\n {renderBanner &&
\n {renderBanner}\n
}\n
;\n};\n\n// @ts-ignore\nexport const PaywallForwarded = observer(forwardRef(PaywallWithScroll));","import classNames from 'classnames';\nimport 'react-loading-skeleton/dist/skeleton.css';\nimport { SubscriptionCardMaster } from 'src/features/Paywall';\nimport { TpPlanCardProps } from 'src/features/Paywall/types';\nimport { CurrentPrice } from 'src/features/Paywall/widgets/subscription-card/current-price';\nimport { PriceUnitFull } from 'src/features/Paywall/widgets/subscription-card/price-unit-full';\nimport { BillingPeriod } from '@features/Paywall/widgets/subscription-card/billing-period';\nimport { DiscountPercentage } from '@features/Paywall/widgets/subscription-card/discount-percentage';\nimport { FullPrice } from '@features/Paywall/widgets/subscription-card/full-price';\nimport styles from './subscription-plan-card.module.scss';\nexport const SubscriptionPlanCard = (props: TpPlanCardProps) => {\n const {\n plan,\n disabled = false\n } = props;\n return !disabled &&
\n
\n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && }{' '}\n per{' '}\n \n
\n {plan?.discountPercentage !== 0 && plan?.discountPercentage != null && }\n
} rightContent={value =>
\n
\n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && }\n \n
\n
} data-sentry-element=\"SubscriptionCardMaster\" data-sentry-component=\"SubscriptionPlanCard\" data-sentry-source-file=\"index.tsx\" />;\n};","export { SubscriptionCardMaster } from './master';\nexport { SubscriptionPlanCard } from './subscription-plan-card';\n","import classNames from 'classnames';\nimport { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\nimport styles from './trials-disclaimer.module.scss';\nexport const TrialsDisclaimer = ({\n subscriptionPlan,\n className\n}: {\n subscriptionPlan: SubscriptionPlan;\n className?: string;\n}) =>

\n Please note that your subscription will be automatically renewed at the full\n price of{' '}\n {`${subscriptionPlan.priceAfterIntroOffer} ${subscriptionPlan.currency}`}{' '}\n per{' '}\n {`${subscriptionPlan.billingPeriod} ${subscriptionPlan.billingPeriodUnit}`}{' '}\n at the end of the trial period.\n

;","import { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport CircleButton from 'src/components/common/circle-button/circle-button';\nimport { MoneyBack } from 'src/components/common/money-back/money-back';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport Banner, { BannerType } from 'src/features/Paywall/components/banner/banner';\nimport { PAYMENT_MODAL_QUERY_PARAM } from 'src/features/Paywall/constants';\nimport { useIsInViewport } from 'src/utils/hooks/use-is-in-viewport';\nimport { tikTokAdvancedMatching, tikTokEvent, useAnalytics } from '@features/Analytics';\nimport { IntroOfferDisclaimer, PaymentModalStatus, useGenerateBraintreeClientToken } from '@features/Payments';\nimport { FormattedMessage } from '@features/intl';\nimport ChevronLeft from '../../../../assets/icons/chevron-left.svg';\nimport { SubscriptionPlanCard } from '../subscription-card';\nimport { EmptySubscriptionPlanCardList } from './components/empty-subscription-plan-list';\nimport { GuaranteeBlock } from './components/guarantee-block';\nimport { PrivacyAgreement } from './components/privacy-agreement';\nimport { TrialsDisclaimer } from './components/trials-disclaimer/trials-disclaimer';\nimport styles from './payment-plans.module.scss';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\nconst NAMESPACE = 'new-plan-paywall';\ntype TpPaymentPlansProps = {\n isGuaranteeBlock?: boolean;\n isInlinePaddlePaymentActive?: boolean;\n showPolicyAgreement?: boolean;\n subscriptionPlanGroup?: string;\n titleSection?: ReactNode;\n};\nexport const PaymentPlans = observer(({\n isGuaranteeBlock = false,\n isInlinePaddlePaymentActive = false,\n showPolicyAgreement = true,\n subscriptionPlanGroup,\n titleSection\n}: TpPaymentPlansProps) => {\n const {\n paymentsStore,\n authStore: {\n isPaddleVariants,\n variant,\n user\n },\n quizStore: {\n countryCode\n }\n } = useStores();\n const router = useRouter();\n const {\n query,\n pathname\n } = router;\n const isInlinePaymentActive = query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.SHOW && isPaddleVariants;\n const {\n allSubscriptionPlans,\n subscriptionPlans,\n getDefaultDiscountPercent\n } = paymentsStore;\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackBingEvent\n } = useAnalytics();\n const [selectedPlanId, setSelectedPlanId] = useState(undefined);\n const [subscriptionAgreementChecked, setSubscriptionAgreementChecked] = useState(true);\n const [showModalOnPlanChange, setShowModalOnPlanChange] = useState(false);\n const paymentSectionRef = useRef(null);\n const isPaymentSectionRefInViewport = useIsInViewport(paymentSectionRef);\n const scrollPaymentSectionIntoView = useCallback(() => {\n if (paymentSectionRef.current) {\n paymentSectionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'end'\n });\n }\n }, []);\n const subscriptionPlan = useMemo(() => allSubscriptionPlans ? allSubscriptionPlans?.find(({\n id\n }) => id === selectedPlanId) : undefined, [selectedPlanId, allSubscriptionPlans]);\n const handleCheck = useCallback(() => {\n setSubscriptionAgreementChecked(!subscriptionAgreementChecked);\n }, [subscriptionAgreementChecked]);\n const openPaymentModalHandler = useCallback(() => {\n // noinspection JSIgnoredPromiseFromCall\n router.push({\n pathname,\n query: {\n ...query,\n [PAYMENT_MODAL_QUERY_PARAM]: PaymentModalStatus.SHOW,\n ['plan']: selectedPlanId\n }\n }, undefined, {\n shallow: true\n });\n }, [pathname, query, router, selectedPlanId]);\n const handlePlanChange = useCallback(() => {\n trackGoogleEvent({\n eventName: 'initiate_checkout_another_plan'\n });\n // noinspection JSIgnoredPromiseFromCall\n router.push({\n pathname,\n query: {\n ...query,\n [PAYMENT_MODAL_QUERY_PARAM]: PaymentModalStatus.HIDE\n }\n }, undefined, {\n shallow: true\n });\n }, [pathname, query, router, trackGoogleEvent]);\n useEffect(() => {\n if (subscriptionPlanGroup) {\n // noinspection JSIgnoredPromiseFromCall\n paymentsStore.fetchSubscriptionPlans({\n group: subscriptionPlanGroup,\n countryCode: isPaddleVariants ? countryCode : undefined,\n paddle: isPaddleVariants\n });\n }\n }, [countryCode, isPaddleVariants, paymentsStore, subscriptionPlanGroup]);\n useEffect(() => {\n if (subscriptionPlan && !subscriptionPlan.specialOffer) {\n setSelectedPlanId(\n //eslint-disable-next-line unicorn/prefer-array-find\n allSubscriptionPlans?.filter(item => item.name === subscriptionPlan.name && item.specialOffer)[0]?.id);\n }\n if (subscriptionPlans !== undefined && subscriptionPlans.length > 0 && selectedPlanId == null) {\n setSelectedPlanId(subscriptionPlans.find(({\n preselected\n }) => preselected)?.id);\n }\n }, [allSubscriptionPlans, selectedPlanId, subscriptionPlan, subscriptionPlans]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: variant depends on user\n useEffect(() => {\n trackFacebookEvent({\n eventName: 'AddToCart',\n options: {\n email: user?.email\n }\n });\n trackBingEvent({\n eventName: 'add_to_cart'\n });\n sendBingSpreadedConversion(user?.email);\n trackGoogleEvent({\n eventName: 'add_to_cart_open'\n });\n user?.email ? tikTokAdvancedMatching(user.email) : null;\n tikTokEvent('AddToCart');\n }, [trackFacebookEvent, trackGoogleEvent, user?.email, variant, trackBingEvent, sendBingSpreadedConversion]);\n useGenerateBraintreeClientToken({\n userFields: {\n email: user?.email,\n id: user?.id\n },\n merchantAccountId: subscriptionPlan?.merchantAccountId\n });\n const onSelectPlan = useCallback((id: string) => {\n setSelectedPlanId(id);\n !isPaymentSectionRefInViewport && scrollPaymentSectionIntoView();\n }, [isPaymentSectionRefInViewport, scrollPaymentSectionIntoView]);\n const isPlanHasPriceIntroOffer = subscriptionPlan && +subscriptionPlan.priceAfterIntroOffer > 0 && !subscriptionPlan.hasTrial;\n const handlePlanSelect = useCallback(() => {\n setShowModalOnPlanChange(false);\n openPaymentModalHandler();\n trackGoogleEvent({\n eventName: 'add_to_cart_chosen',\n options: {\n product_id: subscriptionPlan?.braintreePlanId ?? subscriptionPlan?.paddleIternalName ?? subscriptionPlan?.name ?? 'undefined'\n }\n });\n }, [openPaymentModalHandler, subscriptionPlan?.braintreePlanId, subscriptionPlan?.name, subscriptionPlan?.paddleIternalName, trackGoogleEvent]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: selectedPlanId depends on deps\n useEffect(() => {\n if (showModalOnPlanChange) {\n handlePlanSelect();\n }\n }, [handlePlanSelect, showModalOnPlanChange, selectedPlanId]);\n const isLoading = !subscriptionPlanGroup || !selectedPlanId || !subscriptionPlans || subscriptionPlans.length === 0;\n const renderSubscriptionPlans = useMemo(() => {\n if (isLoading) {\n return ;\n }\n const PlanCardComponent = SubscriptionPlanCard;\n return subscriptionPlans?.map((plan, index) => );\n }, [isLoading, subscriptionPlans, isInlinePaymentActive, getDefaultDiscountPercent, selectedPlanId, onSelectPlan, variant]);\n const renderTitleSection = useMemo(() => titleSection || !isInlinePaddlePaymentActive &&

\n \n

, [isInlinePaddlePaymentActive, titleSection]);\n return <>\n {renderTitleSection}\n {isInlinePaddlePaymentActive ? null : }\n {isInlinePaddlePaymentActive && \n \n }\n
\n
    {renderSubscriptionPlans}
\n\n \n\n {showPolicyAgreement && }\n\n
\n {!isInlinePaddlePaymentActive ? \n \n : \n Choose another plan\n }\n
\n
\n {isPlanHasPriceIntroOffer && !isPaddleVariants && }\n\n {subscriptionPlan?.hasTrial && }\n\n {isGuaranteeBlock && }\n ;\n});","import { SimpleImage } from 'src/components/common/SimpleImage';\nimport styles from './Users.module.scss';\nexport const Users = () =>
\n \n \n
;","import { useAtom, useAtomValue, useSetAtom } from 'jotai';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { routes } from 'src/constants/navigation';\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { TpPaymentPlansStripeProps, TpStripeSubscription } from 'src/features/Stripe/types';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { useIsInViewport } from 'src/utils/hooks/use-is-in-viewport';\nimport { tikTokAdvancedMatching, tikTokEvent, twitterEvent, useAnalytics } from '@features/Analytics';\nimport { currencyReplacer, useGenerateBraintreeClientToken } from '@features/Payments';\nimport Banner, { BannerType } from '@features/Paywall/components/banner/banner';\nimport { EmptySubscriptionPlanCardList } from '@features/Paywall/widgets/payment-plans/components/empty-subscription-plan-list';\nimport { SubscriptionPlanCardStripe, useGetStripeSubscriptions } from '@features/Stripe';\nimport { introOfferInfoAtom, noMoneyPlanInfoAtom, premiumYearAllDataAtom, processingModalStatusAtom, selectedPlanAtom, stripePaymentErrorAtom, stripeSubscriptionWithPersistence, upgradeInfoAtom, upsellInfoAtom, userAtom } from '@features/Stripe/atoms';\nimport { useFeatures } from '@features/FeatureToggle';\nimport { Users } from '@features/Paywall/widgets/payment-plans-simple/components/Users';\nimport { LEARN_MORE_VARIANT, NO_MONEY_LEARN_MORE } from '@features/Stripe/components/LearnMoreList/additionalInfo';\nimport { BILLING_PERIOD_LTV_MAP } from '@features/Stripe/constants';\nimport { useGetStripePromise } from '@features/Stripe/hooks';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { PaymentDeclinedModal } from '@features/Stripe/widgets/payment-declined-modal';\nimport PaymentProcessingAlert from '@features/Stripe/widgets/payment-processing-alert/payment-processing-alert';\nimport { SecondPaymentFailedModal } from '@features/Stripe/widgets/second-payment-failed-modal';\nimport { SubscriptionPlanCardStripeWithPaymentMethods } from '@features/Stripe/widgets/subscription-plan-card-stripe-with-payment-methods';\nimport { ModalRenderer } from '@features/Stripe/widgets/upsell-modal-renderer';\nimport { FormattedMessage } from '@features/intl';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport styles from './payment-plans-stripe.module.scss';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\nconst filteredMap = new Map();\nexport const PaymentPlansSimple = observer((props: TpPaymentPlansStripeProps) => {\n const {\n userProperty,\n variant,\n replaceVariantWithHardCodeTestValue,\n titleSection\n } = props;\n const {\n user,\n accessCode\n } = userProperty;\n const stripePromise = useGetStripePromise();\n const [wasCheckoutShownOnMount, setWasCheckoutShownOnMount] = useState(false);\n const [wasNoMoneyPreselected, setWasNoMoneyPreselected] = useState(false);\n const {\n wasErrorModalWithOfferShown\n } = useAtomValue(stripePaymentErrorAtom);\n const isSubscriptionActive = useAtomValue(stripeSubscriptionWithPersistence);\n const [planAtom, setPlanAtom] = useAtom(selectedPlanAtom);\n const showProcessingModal = useAtomValue(processingModalStatusAtom);\n const setUpsellInfoAtom = useSetAtom(upsellInfoAtom);\n const setPremiumYearAllDataAtom = useSetAtom(premiumYearAllDataAtom);\n const setNoMoneyPlanInfoAtom = useSetAtom(noMoneyPlanInfoAtom);\n const setUpgradeInfoAtom = useSetAtom(upgradeInfoAtom);\n const setIntroOfferInfoAtom = useSetAtom(introOfferInfoAtom);\n const setUserFields = useSetAtom(userAtom);\n const setPaymentError = useSetAtom(stripePaymentErrorAtom);\n const {\n authStore: {\n loginedByWinback,\n campaign\n },\n quizStore: {\n countryCode\n }\n } = useStores();\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent,\n trackBingEvent\n } = useAnalytics();\n const {\n introOfferFeature: isIntroOfferEnabled,\n simplePaywallFeature: isSimplePaywallEnabled\n } = useFeatures();\n const isCheckoutInsidePlanCard = !isSimplePaywallEnabled;\n const paymentSectionRef = useRef(null);\n const isPaymentSectionRefInViewport = useIsInViewport(paymentSectionRef);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: paymentSectionRef is not changing\n const scrollPaymentSectionIntoView = useCallback(() => {\n if (paymentSectionRef.current) {\n paymentSectionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }\n }, [paymentSectionRef]);\n const router = useRouter();\n const {\n query\n } = router;\n const {\n payment_intent_client_secret: clientSecretFromUrl,\n redirect_status: redirectStatus,\n stripe_plan_id: selectedPlanIdFromUrl,\n payment_status: paymentStatus\n } = query;\n const isRedirectStatusFailed = !!clientSecretFromUrl && redirectStatus === 'failed' || paymentStatus === 'failure';\n const isRedirectStatusSucceeded = !!clientSecretFromUrl && redirectStatus === 'succeeded';\n const {\n productId\n } = useGetStripeProductId({\n variant: (replaceVariantWithHardCodeTestValue as TpStripeVariants)\n });\n const data = useGetStripeSubscriptions({\n productId: productId\n });\n useEffect(() => {\n if (data) {\n trackGoogleEvent({\n eventName: 'paywall_plans_loaded',\n options: {\n plans: data?.plans\n }\n });\n }\n }, [data, trackGoogleEvent]);\n const allSubscriptions = useMemo(() => data?.plans && data?.plans?.length > 0 ? [...data.plans].sort((a, b) => a.order - b.order) : [], [data]);\n const filteredSubscriptions = useMemo(() => {\n if (!allSubscriptions) return [];\n for (const item of allSubscriptions) {\n if (!item.specialOffer && !item.noMoneyDiscount) {\n const combinedItem = {\n ...item,\n learnMoreList: LEARN_MORE_VARIANT[0].learnMoreList,\n hideDescription: true\n };\n if (filteredMap.has(combinedItem.id)) {\n // @ts-ignore\n Object.assign(filteredMap.get(combinedItem.id), combinedItem);\n } else {\n // @ts-ignore item types are inconsistent\n filteredMap.set(combinedItem.id, combinedItem);\n }\n }\n }\n return [...filteredMap.values()];\n }, [allSubscriptions]);\n const preselectedSubscriptionId = useMemo(() => filteredSubscriptions.find(item => item.preselected)?.id ?? filteredSubscriptions[0]?.id, [filteredSubscriptions]);\n const upgradeInfo = useMemo(() => {\n if (data == null || data.upgrade_plan == null || Object.keys(data.upgrade_plan).length === 0) {\n return {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n upgradeId: '',\n braintreePlanId: ''\n };\n }\n return data.upgrade_plan;\n }, [data]);\n const upsellInfo = useMemo(() => {\n if (data == null || data.upsell_data == null) {\n return {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0\n };\n }\n return data.upsell_data;\n }, [data]);\n const premiumYearAllDataInfo = useMemo(() => {\n if (data == null || data.premium_year_data == null || data.premium_year_discount_data == null) {\n return {\n premiumYearData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: ''\n },\n premiumYearDiscountData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: ''\n }\n };\n }\n return {\n premiumYearData: data.premium_year_data,\n premiumYearDiscountData: data.premium_year_discount_data\n };\n }, [data]);\n const noMoneyPlanInfo = useMemo(() => {\n const defaultPlanInfo = {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n priceFromDefaultOneMonth: 0\n };\n if (!data || !data.plans || data.plans.length === 0) {\n return defaultPlanInfo;\n }\n for (const item of data.plans) {\n if (item.noMoneyDiscount) {\n return item;\n }\n }\n return defaultPlanInfo;\n }, [data]);\n const oneMonthPlan = useMemo(() => allSubscriptions.find(item => item.billingPeriod === 1 && item.billingPeriodUnit === 'month' && !item.specialOffer && !item.noMoneyDiscount), [allSubscriptions]);\n const introOfferInfo = useMemo(() => {\n if (data == null || data.intro_offer_data == null) {\n return {\n currency: 'usd',\n fullPriceDiscount: 0,\n introOfferDuration: 0,\n introOfferId: '',\n planId: '',\n billingPeriodUnit: '',\n billingPeriod: 0,\n surcharge: 0\n };\n }\n return data.intro_offer_data;\n }, [data]);\n const analyticsCombinedParameters = useMemo(() => planAtom.priceId != '' ? {\n value: planAtom.fullPriceDiscount ? planAtom.fullPriceDiscount.toFixed(2) : planAtom.fullPrice.toFixed(2),\n currency: planAtom?.currency\n } : {}, [planAtom]);\n const setPaymentInfoAtoms = useCallback(() => {\n setUpgradeInfoAtom(previous => ({\n ...previous,\n ...upgradeInfo\n }));\n setUpsellInfoAtom(previous => ({\n ...previous,\n ...upsellInfo\n }));\n setPremiumYearAllDataAtom(previous => ({\n ...previous,\n ...premiumYearAllDataInfo\n }));\n setNoMoneyPlanInfoAtom(previous => ({\n ...previous,\n ...noMoneyPlanInfo,\n priceFromDefaultOneMonth: oneMonthPlan?.fullPriceDiscount ?? 19.99\n }));\n setIntroOfferInfoAtom(previous => ({\n ...previous,\n ...introOfferInfo\n }));\n }, [introOfferInfo, noMoneyPlanInfo, oneMonthPlan?.fullPriceDiscount, setIntroOfferInfoAtom, setNoMoneyPlanInfoAtom, setUpgradeInfoAtom, setUpsellInfoAtom, setPremiumYearAllDataAtom, upgradeInfo, upsellInfo, premiumYearAllDataInfo]);\n useEffect(() => {\n if (data != null) {\n setPaymentInfoAtoms();\n }\n }, [data, setPaymentInfoAtoms]);\n const closePaymentModalHandler = useCallback(() => {\n router.replace({\n pathname: routes.newPlanPaywall,\n query: {\n ...query,\n ['redirect_status']: undefined,\n ['payment_status']: undefined\n }\n }).then(r => r);\n setTimeout(() => scrollPaymentSectionIntoView(), 500);\n }, [query, router, scrollPaymentSectionIntoView]);\n const scrollToPaymentMethod = useCallback(() => {\n document.querySelector('#payment-method')?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }, []);\n const handlePlanSelect = useCallback(() => scrollToPaymentMethod(), [scrollToPaymentMethod]);\n const handleSetSelectedPlanId = useCallback((planId: string) => {\n //eslint-disable-next-line unicorn/prefer-array-find\n const selectedPlan = allSubscriptions.filter(plan => plan.id === planId)[0];\n setPlanAtom({\n currency: selectedPlan?.currency ?? 'usd',\n planName: selectedPlan?.name ?? '',\n discountPercentage: selectedPlan?.discountPercentage ?? 0,\n specialDiscountPercentage: selectedPlan?.specialDiscountPercentage ?? 0,\n fullPrice: selectedPlan?.fullPrice ?? 0,\n fullPriceDiscount: selectedPlan?.fullPriceDiscount ?? 0,\n billingPeriod: selectedPlan?.billingPeriod ?? 0,\n billingPeriodUnit: selectedPlan?.billingPeriodUnit ?? '',\n priceId: selectedPlan?.id ?? '',\n introOffer: selectedPlan?.introOffer ?? '',\n braintreeMerchantId: selectedPlan?.braintreeMerchantId ?? undefined,\n braintreePlanId: selectedPlan?.braintreePlanId ?? undefined,\n specialOffer: selectedPlan?.specialOffer ?? false,\n introOfferData: {\n ...selectedPlan?.introOfferData,\n fullPrice: Number(selectedPlan?.introOfferData?.fullPrice).toFixed(2) ?? '0',\n fullPriceDiscount: Number(selectedPlan?.introOfferData?.fullPriceDiscount).toFixed(2) ?? '0'\n },\n premiumPriceData: selectedPlan?.premiumPriceData,\n premiumDiscountPriceData: selectedPlan?.premiumDiscountPriceData\n });\n }, [allSubscriptions, setPlanAtom]);\n const selectPlanHandler = useCallback((id: string) => {\n trackGoogleEvent({\n eventName: 'initiate_checkout_another_plan'\n });\n !isPaymentSectionRefInViewport && scrollPaymentSectionIntoView();\n handleSetSelectedPlanId(id);\n }, [handleSetSelectedPlanId, isPaymentSectionRefInViewport, scrollPaymentSectionIntoView, trackGoogleEvent]);\n const userPaid = useMemo(() => isRedirectStatusSucceeded || isSubscriptionActive === 'subscriptionActive' || user.isSubscriptionActive, [isRedirectStatusSucceeded, isSubscriptionActive, user.isSubscriptionActive]);\n useEffect(() => {\n trackFacebookEvent({\n eventName: 'AddToCart',\n options: {\n email: user?.email\n }\n });\n trackGoogleEvent({\n eventName: 'add_to_cart_open',\n options: {\n variant: variant\n }\n });\n user?.email ? tikTokAdvancedMatching(user.email) : null;\n tikTokEvent('AddToCart');\n trackBingEvent({\n eventName: 'add_to_cart'\n });\n sendBingSpreadedConversion(user?.email);\n setUserFields(previous => ({\n ...previous,\n email: user.email ?? 'undefined',\n token: user.token ?? 'undefined',\n campaign: campaign ?? 'undefined',\n userId: user.id ?? 0,\n accessCode: accessCode ?? 'undefined'\n }));\n }, [campaign, setUserFields, accessCode, trackFacebookEvent, trackBingEvent, trackGoogleEvent, user, variant]);\n const noMoneyPlan = useMemo(() => allSubscriptions.find(item => item.noMoneyDiscount), [allSubscriptions]);\n useEffect(() => {\n if (selectedPlanIdFromUrl && !planAtom.priceId) {\n handleSetSelectedPlanId((selectedPlanIdFromUrl as string));\n }\n if (preselectedSubscriptionId && !selectedPlanIdFromUrl && !planAtom.priceId) {\n handleSetSelectedPlanId(preselectedSubscriptionId);\n }\n if (wasErrorModalWithOfferShown && noMoneyPlan && oneMonthPlan && !wasNoMoneyPreselected) {\n setWasNoMoneyPreselected(true);\n handleSetSelectedPlanId(noMoneyPlan.id);\n }\n }, [handleSetSelectedPlanId, noMoneyPlan, oneMonthPlan, planAtom.priceId, preselectedSubscriptionId, selectedPlanIdFromUrl, wasErrorModalWithOfferShown, wasNoMoneyPreselected]);\n useEffect(() => {\n if (isRedirectStatusSucceeded && planAtom.priceId != '') {\n const calculateLTV = BILLING_PERIOD_LTV_MAP[planAtom.billingPeriod] || undefined;\n trackBingEvent({\n eventName: 'subscribe',\n options: {\n currency: analyticsCombinedParameters.currency,\n revenue_value: analyticsCombinedParameters.value\n }\n });\n sendBingSpreadedConversion(user.email);\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentMethod: 'paypal',\n paymentSystem: 'stripe'\n },\n options: {\n email: user.email,\n subscription_id: undefined,\n stripe_subscription_id: planAtom.priceId,\n predicted_ltv: variant === 'variant18' ? calculateLTV : 80,\n ...analyticsCombinedParameters\n }\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n options: {\n email: user.email\n }\n });\n twitterEvent('tw-oehe8-oehej', {\n email: user.email,\n ...analyticsCombinedParameters\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: productId,\n price_id: planAtom.priceId,\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n payment_type: 'paypal',\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n email: user.email,\n ...analyticsCombinedParameters\n }\n });\n tikTokAdvancedMatching(user.email);\n tikTokEvent('CompletePayment', {\n content_id: planAtom?.planName,\n quantity: 1,\n ...analyticsCombinedParameters\n });\n }\n if (isRedirectStatusFailed) {\n console.log('isRedirectStatusFailed');\n setPaymentError(previous => ({\n ...previous,\n errorCode: 'insufficient_funds',\n paymentSystem: 'PayPal'\n }));\n trackGoogleEvent({\n eventName: 'purchase_subscription_failed',\n options: {\n payment_type: 'paypal',\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n product_id: planAtom?.planName ?? '',\n ...analyticsCombinedParameters\n }\n });\n }\n }, [analyticsCombinedParameters, isRedirectStatusFailed, isRedirectStatusSucceeded, planAtom, setPaymentError, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, user.email, variant, trackBingEvent, productId]);\n useGenerateBraintreeClientToken({\n userFields: {\n email: user.email,\n id: user.id\n },\n merchantAccountId: planAtom?.braintreeMerchantId\n });\n useEffect(() => {\n if (variant === 'email2' && allSubscriptions.length > 0 && !wasCheckoutShownOnMount) {\n handleSetSelectedPlanId(allSubscriptions[0].id);\n !(isSubscriptionActive === 'subscriptionActive' || user.isSubscriptionActive);\n setWasCheckoutShownOnMount(true);\n }\n }, [allSubscriptions, handleSetSelectedPlanId, isSubscriptionActive, user.isSubscriptionActive, variant, wasCheckoutShownOnMount]);\n const renderPlans = useMemo(() => {\n if (allSubscriptions.length === 0 || isCheckoutInsidePlanCard && stripePromise == null) {\n return ;\n }\n if (wasErrorModalWithOfferShown && noMoneyPlan) {\n if (isCheckoutInsidePlanCard) {\n return <>\n \n {oneMonthPlan && item.name === '1-MONTH')?.learnMoreList ?? LEARN_MORE_VARIANT[0].learnMoreList} countryCode={countryCode} isCardSelected={planAtom.priceId === oneMonthPlan.id} onSelectPlan={selectPlanHandler} handlePlanSelect={handlePlanSelect} getPlanDisabled={allSubscriptions.length === 0} />}\n ;\n }\n return <>\n \n {oneMonthPlan && item.name === '1-MONTH')?.learnMoreList ?? LEARN_MORE_VARIANT[0].learnMoreList} countryCode={countryCode} isCardSelected={planAtom.priceId === oneMonthPlan.id} onSelectPlan={selectPlanHandler} handlePlanSelect={handlePlanSelect} getPlanDisabled={allSubscriptions.length === 0} />}\n ;\n }\n if (variant === 'email2') {\n return ;\n }\n if (isCheckoutInsidePlanCard) {\n return <>\n {filteredSubscriptions.map(item => )}\n ;\n }\n return filteredSubscriptions.map(item => );\n }, [allSubscriptions, countryCode, filteredSubscriptions, handlePlanSelect, isCheckoutInsidePlanCard, noMoneyPlan, oneMonthPlan, planAtom.priceId, selectPlanHandler, stripePromise, variant, wasErrorModalWithOfferShown]);\n const titleSectionRender = useMemo(() => {\n const defaultTitle = ;\n const title = wasErrorModalWithOfferShown || variant === 'email2' ? 'Save money and see amazing results' : defaultTitle;\n return titleSection ||

{title}

;\n }, [titleSection, variant, wasErrorModalWithOfferShown]);\n return <>\n {titleSectionRender}\n\n {wasErrorModalWithOfferShown || variant === 'email2' ? null : }\n
\n
    {renderPlans}
\n\n \n \n \n \n
\n\n {noMoneyPlanInfo.fullPrice > 0 && <>\n \n \n }\n \n \n ;\n});\nPaymentPlansSimple.displayName = 'PaymentPlansSimple';","import classNames from 'classnames';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { ForwardedRef, ReactNode, forwardRef, useMemo } from 'react';\nimport { PaymentModalStatus } from '@features/Payments';\nimport { PaymentPlans } from '@features/Paywall/widgets/payment-plans';\nimport { PaymentPlansStripe } from '@features/Stripe';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { PRESELECTED_SUBSCRIPTION_TEST_NAME, PreselectedSubscriptionTestCaseName, UPGRADE_FIRST_AB_TEST_NAME, UpgradeFirstAbTestCaseName } from 'src/constants/analytics';\nimport { TpStripeVariants, TpVariants } from 'src/constants/variants';\nimport { EURO_COUNTRIES, PAYMENT_MODAL_QUERY_PARAM, SUBSCRIPTION_PLAN_VARIANTS, SUBSCRIPTION_PLAN_VARIANTS_EURO } from '../../constants';\nimport { useFeature } from '@features/FeatureToggle';\nimport { PaymentPlansSimple } from '@features/Paywall/widgets/payment-plans-simple';\nimport styles from './PaymentPlansMaster.module.scss';\nconst euroCountriesSet = new Set(EURO_COUNTRIES);\nconst PaymentPlansMaster = ({\n titleSection\n}: {\n titleSection?: ReactNode;\n}, ref: ForwardedRef) => {\n const {\n authStore,\n analyticsStore: {\n getCaseNameByTestName\n },\n quizStore: {\n countryCode\n }\n } = useStores();\n const {\n variant,\n isPaddleVariants,\n user,\n access_code,\n isStripeVariant\n } = authStore;\n const router = useRouter();\n const {\n query\n } = router;\n const isSimplePaywallEnabled = useFeature('simplePaywallFeature');\n const isUpgradeFirstABTest = getCaseNameByTestName(UPGRADE_FIRST_AB_TEST_NAME) === UpgradeFirstAbTestCaseName.NEW;\n const isPreselectedSubscriptionABTest = getCaseNameByTestName(PRESELECTED_SUBSCRIPTION_TEST_NAME) === PreselectedSubscriptionTestCaseName.NEW;\n const isInlinePaddleActive = query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.SHOW && isPaddleVariants;\n const planGroup = useMemo(() => {\n const subscriptionPlanVariants = countryCode && euroCountriesSet.has(countryCode) ? SUBSCRIPTION_PLAN_VARIANTS_EURO : SUBSCRIPTION_PLAN_VARIANTS;\n return subscriptionPlanVariants[(variant as TpVariants)];\n }, [countryCode, variant]);\n\n //This is only for a/b tests with planGroups\n const mapHardcodedVariantForProductId = useMemo(() => {\n if (isUpgradeFirstABTest) {\n return 'variant16-ab416';\n } else if (isPreselectedSubscriptionABTest) {\n return 'variant21-DEV885';\n }\n return variant == undefined ? 'default' : variant;\n }, [isPreselectedSubscriptionABTest, isUpgradeFirstABTest, variant]);\n const renderComponent = useMemo(() => {\n if (isStripeVariant && user) {\n const userProperty = {\n user,\n accessCode: access_code ?? ''\n };\n return isSimplePaywallEnabled ? : ;\n }\n return ;\n }, [isSimplePaywallEnabled, isStripeVariant, user, isInlinePaddleActive, isPaddleVariants, planGroup, access_code, mapHardcodedVariantForProductId, variant, titleSection]);\n return
\n {renderComponent}\n
;\n};\nexport const PaymentPlansMasterWithRef = observer(forwardRef(PaymentPlansMaster));","import classNames from 'classnames';\nimport Skeleton from 'react-loading-skeleton';\nimport styles from './skeleton.module.scss';\nexport const CardSkeleton = () =>
  • \n
    \n \n \n
    \n
  • ;","import { memo } from 'react';\nimport { CardSkeleton } from 'src/features/Paywall/components/skeleton';\nexport const EmptySubscriptionPlanCardList = memo(({\n length = 3\n}: {\n length?: number;\n}) => <>\n {Array.from({\n length\n }, (_, index) => )}\n );\nEmptySubscriptionPlanCardList.displayName = 'EmptySubscriptionPlanCardList';","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgMoneyHand = function SvgMoneyHand(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 62,\n height: 58,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#356B61\",\n d: \"M44.122 18.903c.801.394 1.254.843 1.254 1.315v4.248c0 1.584-5.04 2.867-11.256 2.867s-11.255-1.283-11.255-2.867v-4.248c0-1.16 2.71-2.16 6.607-2.612q.412.2.844.352c2.042.726 5.384 1.2 9.157 1.2q.307 0 .609-.006a40 40 0 0 0 4.033-.25z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75,\n d: \"M22.865 20.218v4.248c0 1.584 5.039 2.867 11.255 2.867s11.256-1.283 11.256-2.867v-4.248c0-.473-.453-.921-1.254-1.315h-.007q-2.01.227-4.033.25a38 38 0 0 1-.609.004c-3.773 0-7.115-.473-9.157-1.2a8 8 0 0 1-.844-.351c-3.897.451-6.607 1.451-6.607 2.612m0 0c0 1.584 5.04 2.867 11.255 2.867 2.322 0 4.48-.179 6.273-.486q.38-.065.736-.137\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#83A79A\",\n d: \"M28.219 12.104v4.186c0 .474.453.922 1.253 1.316q.412.201.844.352c2.042.727 5.384 1.2 9.157 1.2q.307 0 .609-.005a40 40 0 0 0 4.033-.25h.007c3.897-.452 6.606-1.451 6.606-2.613v-4.248c0-.969-1.889-1.824-4.782-2.344 0 0-2.376 1.002-7.946 1.26-4.5.21-7.914-.498-7.914-.498-1.182.452-1.87.998-1.87 1.583z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75,\n d: \"M28.219 12.042v.062m18.263 2.184q-.357.072-.737.137c-1.794.306-3.952.486-6.273.486-6.138 0-11.127-1.251-11.253-2.807m0 0v4.186c0 .474.453.922 1.253 1.316q.412.201.844.352c2.042.727 5.384 1.2 9.157 1.2q.307 0 .609-.005a40 40 0 0 0 4.033-.25h.007c3.897-.452 6.606-1.451 6.606-2.613v-4.248c0-.969-1.889-1.824-4.782-2.344 0 0-2.376 1.002-7.946 1.26-4.5.21-7.914-.498-7.914-.498-1.182.452-1.87.998-1.87 1.583z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BCCEC7\",\n d: \"m25.307 3.92-.002-.053C25.305 2.284 30.346 1 36.562 1c6.217 0 11.256 1.284 11.256 2.867v4.248c0 1.583-5.04 2.867-11.256 2.867S25.307 9.698 25.307 8.115z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75,\n d: \"M43.57 6.11a23 23 0 0 1-.737.138c-1.792.307-3.95.486-6.273.486-6.147 0-11.142-1.256-11.253-2.814m0-.053v.053m0 0-.002-.053C25.305 2.284 30.346 1 36.562 1c6.217 0 11.256 1.284 11.256 2.867v4.248c0 1.583-5.04 2.867-11.256 2.867S25.307 9.698 25.307 8.115zM19.249 48.548h24.523a5.92 5.92 0 0 0 4.184-1.732L60.4 34.374a2.316 2.316 0 0 0-.057-3.332c-.92-.86-2.373-.793-3.264.098l-7.674 7.674a3.2 3.2 0 0 1-2.257.936H27.988\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 0.75,\n d: \"M26.404 39.748h13.933a2.315 2.315 0 1 0 0-4.63h-4.593a9.9 9.9 0 0 1-4.054-.865l-5.046-2.258a9.93 9.93 0 0 0-11.264 2.238l-5.08 5.365M5.368 37.987l-2.993 2.996a4.696 4.696 0 0 0 0 6.64l8.002 8.002a4.696 4.696 0 0 0 6.64 0l2.993-2.993a2.35 2.35 0 0 0 0-3.32L8.688 37.987a2.35 2.35 0 0 0-3.32 0M54.374 33.842l.512-.843a2.318 2.318 0 0 0-3.959-2.408l-5.57 9.156\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgMoneyHand);\nexport default Memo;","import { FormattedMessage } from '@features/intl';\nimport LockIcon from '../../../../../../../public/icons/lock-icon-gray.svg';\nimport MoneyHand from '../../../../../../../public/images/money-hand.svg';\nimport AmexLogo from '../../../../../../assets/icons/amex.svg';\nimport MasterCardLogo from '../../../../../../assets/icons/mastercard.svg';\nimport PayPalLogo from '../../../../../../assets/icons/paypal.svg';\nimport UnionPayLogo from '../../../../../../assets/icons/unionpay.svg';\nimport VisaLogo from '../../../../../../assets/icons/visa.svg';\nimport styles from './guarantee-block.module.scss';\nconst Logos = () =>
    \n \n \n \n \n \n
    ;\nexport const GuaranteeBlock = ({\n showRefundRate = false\n}: {\n showRefundRate?: boolean;\n}) =>
    \n

    \n \n

    \n \n
    \n \n

    \n \n

    \n
    \n {showRefundRate && <>\n
    \n
    \n \n
    \n

    Less than 2%

    \n

    refund rate of our users

    \n
    \n
    \n }\n
    ;","import classNames from 'classnames';\nimport { ReactNode, memo } from 'react';\nimport { UiKitCheckbox } from 'src/components/common/ui-kit-checkbox';\nimport { PolicyLink, RefundLink, TermsLink } from 'src/widgets/policy';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './privacy-agreement.module.scss';\nconst DefaultAgreementText = () => {\n return ,\n terms: ,\n subscription: ,\n mark: \n \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-component=\"DefaultAgreementText\" data-sentry-source-file=\"index.tsx\" />;\n};\nexport const PrivacyAgreement = memo(({\n isChecked,\n onChecked,\n agreementText = ,\n className\n}: {\n isChecked: boolean;\n onChecked: () => void;\n agreementText?: ReactNode;\n className?: string;\n}) => {\n const randomId = 'subscriptionAgreement' + Math.random().toString();\n return
    \n \n
    ;\n});\nPrivacyAgreement.displayName = 'PrivacyAgreement';","import { useMemo } from 'react';\nimport { TpCardPlanChildrenProps } from '@features/Paywall/types';\nimport { useFeature } from '@features/FeatureToggle';\nimport styles from './billing-period.module.scss';\ntype TpBillingPeriodProps = {\n plan: TpCardPlanChildrenProps['plan'];\n};\nexport const BillingPeriod = (props: TpBillingPeriodProps) => {\n const {\n plan\n } = props;\n //TODO: Delete after cleanup tests\n const isIntroOfferEnabled = useFeature('introOfferFeature');\n const billingPeriod = useMemo(() => isIntroOfferEnabled ? `${plan?.introOfferData?.billingPeriod} ${plan?.introOfferData?.billingPeriodUnit}` : `${plan.billingPeriod} ${plan.billingPeriodUnit}`, [plan.billingPeriod, plan.billingPeriodUnit, plan?.introOfferData?.billingPeriod, plan?.introOfferData?.billingPeriodUnit, isIntroOfferEnabled]);\n return {`per ${billingPeriod}`};\n};","import { useMemo } from 'react';\n\nimport { currencyReplacer } from '@features/Payments';\nimport { TpCardPlanChildrenProps } from '@features/Paywall/types';\nimport { useFeature } from '@features/FeatureToggle';\n\ntype UseCurrentPriceProps = {\n plan: TpCardPlanChildrenProps['plan'];\n};\n\nexport const useCurrentPrice = ({ plan }: UseCurrentPriceProps) => {\n //TODO: Delete after cleanup tests\n const isIntroOfferEnabled = useFeature('introOfferFeature');\n\n const fractionalPriceDiscount = useMemo(() => {\n if (isIntroOfferEnabled) {\n return plan?.introOfferData?.fractionalPriceDiscount;\n } else {\n return plan.fractionalPriceDiscount;\n }\n }, [\n plan?.introOfferData?.fractionalPriceDiscount,\n plan.fractionalPriceDiscount,\n isIntroOfferEnabled,\n ]);\n\n const initialPrice =\n //@ts-expect-error stripe fields\n plan.initialPrice !== undefined\n ? //@ts-expect-error stripe fields\n plan.initialPrice / plan.trialPeriodDays\n : null;\n\n const formattedPrice = useMemo(() => {\n if (initialPrice !== null) {\n return initialPrice.toFixed(2).toString().slice(2);\n } else if (fractionalPriceDiscount?.toString().split('.')[1] != null) {\n return Number.parseFloat(\n fractionalPriceDiscount\n .toString()\n .split('.')[1]\n .toString()\n .padEnd(2, '0'),\n ).toString();\n } else {\n return '00';\n }\n }, [initialPrice, fractionalPriceDiscount]);\n\n //@ts-expect-error stripe fields\n const displayPrice = plan.paddlePlanId\n ? plan.displayPrice\n : `per ${plan.displayPrice}`;\n\n const currency = currencyReplacer(plan.currency);\n\n const priceDigit =\n initialPrice !== null\n ? Number(formattedPrice[0])\n : Number(\n Number.parseFloat(\n fractionalPriceDiscount?.toString().split('.')[0] ?? '0',\n ),\n );\n\n const isLongCurrencies = priceDigit.toString().length > 2;\n\n return useMemo(\n () =>\n !plan\n ? {\n displayPrice: null,\n formattedPrice: '00',\n currency: '',\n priceDigit: 0,\n isLongCurrencies: false,\n }\n : {\n displayPrice,\n formattedPrice,\n currency,\n priceDigit,\n isLongCurrencies,\n },\n [\n plan,\n displayPrice,\n formattedPrice,\n currency,\n isLongCurrencies,\n priceDigit,\n ],\n );\n};\n","import classNames from 'classnames';\nimport { TpCardPlanChildrenProps } from '@features/Paywall/types';\nimport { useCurrentPrice } from '@features/Paywall/widgets/subscription-card/current-price/useCurrentPrice';\nimport styles from './current-price.module.scss';\ntype TpCurrentPriceProps = TpCardPlanChildrenProps & {\n className?: string;\n classNamePerTerm?: string;\n};\nexport const CurrentPrice = (props: TpCurrentPriceProps) => {\n const {\n plan,\n checked,\n className,\n classNamePerTerm\n } = props;\n const {\n displayPrice,\n formattedPrice,\n currency,\n isLongCurrencies,\n priceDigit\n } = useCurrentPrice({\n plan\n });\n if (!displayPrice) {\n return null;\n }\n return
    \n

    \n {currency}\n {priceDigit}\n
    \n {formattedPrice}\n {!isLongCurrencies &&

    \n {displayPrice.split(' ')[0]} {` `}\n \n {displayPrice.split(' ')[1]}\n \n

    }\n
    \n

    \n {isLongCurrencies &&

    \n {displayPrice}\n

    }\n
    ;\n};","import classNames from 'classnames';\nimport { useMemo } from 'react';\nimport styles from './discount-percentage.module.scss';\nexport const DiscountPercentage = (props: {\n discountPercentage: number;\n isActive?: boolean;\n variant?: 'default' | 'outline' | 'outlineDisabled' | 'withText';\n size?: 'small' | 'medium';\n}) => {\n const {\n discountPercentage,\n isActive,\n variant = 'default',\n size = 'medium'\n } = props;\n const variantClassNames = classNames({\n [styles.discountPercentageDefault]: variant === 'default',\n [styles.outline]: variant === 'outline',\n [styles.outlineDisabled]: variant === 'outlineDisabled',\n [styles.withText]: variant === 'withText',\n [styles.withTextDisabled]: variant === 'withText' && !isActive\n });\n const sizeClassNames = classNames({\n [styles.small]: size === 'small',\n [styles.medium]: size === 'medium'\n });\n const discountPercentageString = useMemo(() => `${variant === 'withText' ? 'Save' : '-'} ${discountPercentage}%`, [discountPercentage, variant]);\n return
    \n {discountPercentageString}\n
    ;\n};","import classNames from 'classnames';\nimport { useMemo } from 'react';\nimport { currencyReplacer } from '@features/Payments';\nimport { TpCardPlanChildrenProps } from '@features/Paywall/types';\nimport { useFeature } from '@features/FeatureToggle';\nimport styles from './full-price.module.scss';\ntype TpFullPriceProps = {\n withDiscount?: boolean;\n plan: TpCardPlanChildrenProps['plan'];\n};\nexport const FullPrice = (props: TpFullPriceProps) => {\n const {\n withDiscount,\n plan\n } = props;\n //TODO: Delete after cleanup tests\n const isIntroOfferEnabled = useFeature('introOfferFeature');\n const currencySymbol = currencyReplacer(plan?.currency);\n const resultPrice = useMemo(() => {\n if (withDiscount) {\n return isIntroOfferEnabled ? Number(plan?.introOfferData?.fullPriceDiscount).toFixed(2) : plan?.fullPriceDiscount;\n } else {\n return isIntroOfferEnabled ? plan?.introOfferData?.fullPrice : plan?.fullPrice;\n }\n }, [plan?.fullPrice, plan?.fullPriceDiscount, plan?.introOfferData?.fullPrice, plan?.introOfferData?.fullPriceDiscount, isIntroOfferEnabled, withDiscount]);\n return {`${currencySymbol}${resultPrice}`};\n};","import classNames from 'classnames';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { ComponentProps, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport Modal from 'src/components/common/modal/modal/modal';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\nimport { tikTokAdvancedMatching, tikTokEvent, useAnalytics } from '@features/Analytics';\nimport { twitterEvent } from '@features/Analytics/services/twitter-pixel';\nimport { PaymentModalStatus, generatePaddlePayLink } from '@features/Payments';\nimport { PAYMENT_MODAL_QUERY_PARAM } from '@features/Paywall';\nimport styles from './paddle-inline-checkout.module.scss';\nexport const PaddleInlineCheckout = observer(({\n country,\n productId,\n subscriptionPlan\n}: {\n country?: string;\n productId: string | number | undefined;\n subscriptionPlan?: SubscriptionPlan;\n} & ComponentProps) => {\n const {\n authStore: {\n setPaddlePaymentProcessed,\n isPaddleVariants,\n auth_token,\n campaign,\n user,\n firstName,\n lastName,\n dateOfBirth,\n gender\n },\n paymentsStore: {\n paymentMethod\n }\n } = useStores();\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent\n } = useAnalytics();\n const router = useRouter();\n const {\n query,\n pathname\n } = router;\n const {\n email,\n id\n } = user!;\n const paddleInlineRef = useRef(null);\n const onScrollToPayment = useCallback(() => {\n if (paddleInlineRef.current) {\n paddleInlineRef.current.scrollIntoView({\n behavior: 'smooth'\n });\n }\n }, []);\n const onHide = useCallback(() => {\n // noinspection JSIgnoredPromiseFromCall\n router.push({\n pathname,\n query: {\n ...query,\n [PAYMENT_MODAL_QUERY_PARAM]: PaymentModalStatus.HIDE\n }\n }, undefined, {\n shallow: true\n });\n }, [pathname, query, router]);\n const isPaymentModalActive = query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.SHOW && isPaddleVariants;\n const [paddlePayLink, setPaddlePayLink] = useState(undefined);\n const analyticsCombinedParameters = useMemo(() => ({\n value: subscriptionPlan?.fullPriceDiscount.toFixed(2),\n currency: subscriptionPlan?.currency\n }), [subscriptionPlan?.currency, subscriptionPlan?.fullPriceDiscount]);\n const onPaymentComplete = useCallback(() => {\n setPaddlePaymentProcessed(true);\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: 'paddle',\n paymentSystem: 'paddle'\n },\n options: {\n ...analyticsCombinedParameters,\n email: user!.email,\n subscription_id: subscriptionPlan?.paddlePlanId,\n first_name: firstName ?? undefined,\n last_name: lastName ?? undefined,\n date_of_birth: dateOfBirth ?? undefined,\n gender: gender ?? undefined,\n fn: firstName ?? undefined,\n ln: lastName ?? undefined,\n ge: dateOfBirth ?? undefined,\n db: gender ?? undefined\n }\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n customData: {\n variant: 'paddle',\n paymentSystem: 'paddle'\n },\n options: {\n email: user!.email\n }\n });\n twitterEvent('tw-oehe8-oehej', {\n email: user!.email,\n ...analyticsCombinedParameters\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: subscriptionPlan?.paddleIternalName ?? subscriptionPlan?.name ?? 'undefined',\n payment_type: paymentMethod ?? 'undefined',\n campaign_name_manual: campaign ?? 'undefined',\n email: user!.email,\n ...analyticsCombinedParameters\n }\n });\n tikTokAdvancedMatching(user!.email);\n tikTokEvent('CompletePayment', {\n content_id: subscriptionPlan?.id,\n quantity: 1,\n ...analyticsCombinedParameters\n });\n onHide!();\n }, [analyticsCombinedParameters, campaign, dateOfBirth, firstName, gender, lastName, onHide, paymentMethod, setPaddlePaymentProcessed, subscriptionPlan?.id, subscriptionPlan?.name, subscriptionPlan?.paddleIternalName, subscriptionPlan?.paddlePlanId, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, user]);\n useEffect(() => {\n if (isPaymentModalActive && email && productId && auth_token && user) {\n (async () => {\n try {\n const paddlePayLink = await generatePaddlePayLink({\n productId: +productId,\n customerEmail: email,\n token: auth_token,\n userId: id\n });\n setPaddlePayLink(paddlePayLink.response.url);\n } catch (error) {\n console.log(error);\n return;\n }\n })();\n }\n }, [email, productId, isPaymentModalActive, auth_token, user, id]);\n const sendAnalytics = useCallback(() => {\n onScrollToPayment();\n trackFacebookEvent({\n eventName: 'InitiateCheckout',\n options: {\n email\n }\n });\n twitterEvent('tw-oehe8-oehek', {\n email_address: email\n });\n trackPinterestEvent({\n eventName: 'AddToCart'\n });\n }, [onScrollToPayment, email, trackFacebookEvent, trackPinterestEvent]);\n useEffect(() => {\n if (isPaymentModalActive && paddlePayLink !== undefined) {\n window.Paddle.Checkout.open({\n override: paddlePayLink,\n email: email,\n country: country,\n method: 'inline',\n disableLogout: true,\n loadCallback: sendAnalytics,\n successCallback: onPaymentComplete,\n paymentMethod: 'paddle',\n frameTarget: 'paddle-checkout-container',\n // className of your checkout
    \n frameInitialHeight: 620,\n // `450` or above\n frameStyle: 'width:100%; min-width:312px; min-height:620px; background-color: transparent; border: none;'\n });\n }\n }, [country, email, onPaymentComplete, paddlePayLink, isPaymentModalActive, sendAnalytics]);\n return
    \n
    \n
    ;\n});\nPaddleInlineCheckout.displayName = 'PaddleInlineCheckout';","import classNames from 'classnames';\nimport { memo, useCallback, useMemo } from 'react';\nimport { TpPlanCardProps } from 'src/features/Paywall/types';\nimport { PaddleInlineCheckout } from '@features/Payments/components/paddle-inline-checkout';\nimport styles from './master.module.scss';\nexport const SubscriptionCardMaster = memo((props: TpPlanCardProps) => {\n const {\n plan,\n prefix,\n onSelectPlan,\n disabled,\n isInlinePaymentActive,\n fullWidthBottomContent,\n leftBottomContent,\n rightContent,\n contentClassname,\n planCardClassname,\n descriptionContent,\n isCardSelected = false,\n //added for a/b old plan cards cause remove hardcoded hideDescription overwrite affect a lot\n hidePlanTitle = true\n } = props;\n const namespace = `${prefix}_subscription-plan-card`;\n const inputId = `${namespace}_${plan?.id}`;\n const isSelected = isCardSelected;\n const onChange = useCallback(() => onSelectPlan && plan?.id != null &&\n //@ts-expect-error stripe fields\n onSelectPlan(plan.id, plan?.paddlePlanId),\n //@ts-expect-error stripe fields\n [onSelectPlan, plan?.id, plan?.paddlePlanId]);\n const renderPlanName = useMemo(() => plan?.hideDescription && hidePlanTitle ? null :
    \n
    \n {plan?.description}{' '}\n {descriptionContent && descriptionContent(isSelected)}\n
    \n
    , [descriptionContent, isSelected, plan?.description, plan?.hideDescription, hidePlanTitle]);\n return
  • \n \n\n \n\n {isCardSelected && isInlinePaymentActive && }\n
  • ;\n});\nSubscriptionCardMaster.displayName = 'SubscriptionCardMaster';","import classNames from 'classnames';\nimport { TpCardPlanChildrenProps } from '@features/Paywall/types';\nimport { useFeature } from '@features/FeatureToggle';\nimport styles from './price-unit-full.module.scss';\nconst formatPrice = (price: number) => {\n if (Number.isInteger(price)) {\n return price.toFixed(2);\n }\n return price;\n};\nexport const PriceUnitFull = (props: TpCardPlanChildrenProps) => {\n const {\n plan,\n reverse,\n checked,\n className\n } = props;\n //TODO: Delete after cleanup tests\n const isIntroOfferEnabled = useFeature('introOfferFeature');\n if (!plan) {\n return null;\n }\n const {\n //@ts-expect-error stripe fields\n initialPrice,\n fullPrice,\n //@ts-expect-error stripe fields\n trialPeriodDays,\n fractionalPrice,\n currency,\n introOfferData\n } = plan;\n let priceUnitFull: string;\n if (initialPrice != null) {\n priceUnitFull = `${currency} ${(fullPrice / trialPeriodDays).toFixed(2)}`;\n } else {\n priceUnitFull = isIntroOfferEnabled ? `${currency} ${formatPrice((introOfferData?.fractionalPrice as number))}` : `${currency} ${formatPrice(fractionalPrice)}`;\n }\n const priceUnitFullReversed = initialPrice != null ? `${(fullPrice / trialPeriodDays).toFixed(2)} ${currency}` : `${formatPrice(fractionalPrice)} ${currency}`;\n return \n {reverse ? priceUnitFullReversed : priceUnitFull}\n ;\n};","import classNames from 'classnames';\nimport { useMemo } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { FormattedMessage, TpMessageKeys } from '@features/intl';\nimport styles from './LearnMoreList.module.scss';\ntype TpLearnMoreListProps = {\n isCompactStyle?: boolean;\n learnMoreList: {\n icon: string;\n titleId?: TpMessageKeys;\n titleDefaultMessage?: string;\n text?: string;\n }[];\n isChecked?: boolean;\n};\nexport const LearnMoreList = (props: TpLearnMoreListProps) => {\n const {\n learnMoreList,\n isChecked,\n isCompactStyle = false\n } = props;\n const filteredLearnMoreList = useMemo(() => learnMoreList.filter((_, index) => isCompactStyle ? index !== 1 : true), [isCompactStyle, learnMoreList]);\n return
    \n {filteredLearnMoreList.map(({\n icon,\n titleId,\n titleDefaultMessage,\n text\n }) =>
    \n \"\"\n

    \n {titleId ? : text}\n

    \n
    )}\n
    ;\n};","export const validateCardholderName = (inputString: string) => {\n const regexPattern = /^(['.A-Za-z’-]+ ['.A-Za-z’-]+)$/;\n return regexPattern.test(inputString);\n};\n","import AmexLogo from '../../../../../../assets/icons/amex.svg';\nimport MastercardLogo from '../../../../../../assets/icons/mastercard.svg';\nimport PayPalLogo from '../../../../../../assets/icons/paypal.svg';\nimport UnionPayLogo from '../../../../../../assets/icons/unionpay.svg';\nimport VisaLogo from '../../../../../../assets/icons/visa.svg';\nimport styles from './debit-credit-block.module.scss';\nexport const DebitCreditBlock = ({\n minimalStyle\n}: {\n minimalStyle?: boolean;\n}) =>
    \n {!minimalStyle &&

    Debit / credit card

    }\n
    \n \n \n {!minimalStyle && }\n \n \n
    \n
    ;","import * as Sentry from '@sentry/react';\nimport { CardCvcElement, CardExpiryElement, CardNumberElement, useElements } from '@stripe/react-stripe-js';\nimport classNames from 'classnames';\nimport { useAtom } from 'jotai/index';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport { useAnalytics } from '@features/Analytics';\nimport { stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport { CARD_ELEMENT_OPTIONS, ELEMENT_OPTIONS } from '@features/Stripe/constants';\nimport { validateCardholderName } from '@features/Stripe/utils/validate-cardholder-name';\nimport { DebitCreditBlock } from '@features/Stripe/widgets/checkout-form/widgets/debit-credit-block';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './card-payment-block.module.scss';\ntype Props = {\n stripe: any;\n clientSecret: string;\n minimalStyle?: boolean;\n handleAddPaymentInfoEventsSend: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => void;\n handleProcessingStatus: (status: boolean) => void;\n handleSuccessPayment: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => Promise;\n userEmail: string;\n};\nexport const CardPaymentBlock = ({\n stripe,\n clientSecret,\n handleAddPaymentInfoEventsSend,\n handleSuccessPayment,\n handleProcessingStatus,\n userEmail,\n minimalStyle\n}: Props) => {\n const elements = useElements();\n const {\n trackGoogleEvent\n } = useAnalytics();\n const [message, setMessage] = useState('');\n const [isLoading, setIsLoading] = useState(true);\n const [name, setName] = useState('');\n const [userStartEnteringCardInfo, setUserStartEnteringCardInfo] = useState(false);\n const [_, setPaymentError] = useAtom(stripePaymentErrorAtom);\n const handleUserStartEnteringCardInfo = useCallback(() => setUserStartEnteringCardInfo(true), []);\n const handleNameChange = useCallback((event: React.ChangeEvent) => {\n const newValue = event.target.value.toUpperCase();\n setName(newValue);\n event.target.value.length > 0 && event.target.value.length < 2 && handleUserStartEnteringCardInfo();\n }, [handleUserStartEnteringCardInfo]);\n const handleSuccessPaymentCallback = useCallback(async () => {\n await handleSuccessPayment({\n paymentMethod: 'card'\n });\n }, [handleSuccessPayment]);\n const memorizedCardholderNameValidation = useMemo(() => {\n const isValidName = validateCardholderName(name);\n if (name.length === 0) {\n setMessage('');\n return false;\n }\n if (isValidName && name.length > 0) {\n setMessage('');\n return true;\n } else {\n setMessage('Please enter the full name and surname');\n return false;\n }\n }, [name]);\n const checkIsPrepaidCard = useCallback(async () => {\n if (!stripe || !elements) {\n return;\n }\n const card = elements.getElement(CardNumberElement);\n try {\n const {\n paymentMethod\n } = await stripe.createPaymentMethod({\n type: 'card',\n card: card,\n billing_details: {\n email: userEmail,\n name: minimalStyle ? undefined : name\n }\n });\n if (paymentMethod?.card.funding === 'prepaid') {\n setMessage('Prepaid cards are not supported. Please use a different payment method.');\n return 'prepaid';\n }\n return paymentMethod;\n } catch (error) {\n console.error('Error creating payment method:', error);\n throw error;\n }\n }, [elements, minimalStyle, name, stripe, userEmail]);\n useEffect(() => {\n if (userStartEnteringCardInfo) {\n handleAddPaymentInfoEventsSend({\n paymentMethod: 'card'\n });\n }\n }, [handleAddPaymentInfoEventsSend, userStartEnteringCardInfo]);\n useEffect(() => {\n if (elements) {\n const element = elements.getElement(CardNumberElement);\n element !== null && element.on('ready', () => {\n setIsLoading(false);\n });\n }\n }, [elements]);\n const handleSubmit = useCallback(async (event: any) => {\n event.preventDefault();\n setIsLoading(true);\n handleProcessingStatus(true);\n trackGoogleEvent({\n eventName: 'add_payment_info_chosen'\n });\n if (!stripe || !elements) {\n setIsLoading(false);\n handleProcessingStatus(false);\n return;\n }\n if ((await checkIsPrepaidCard()) === 'prepaid') {\n setIsLoading(false);\n handleProcessingStatus(false);\n return;\n }\n\n // Get a reference to a mounted CardElement. Elements knows how\n // to find your CardElement because there can only ever be one of\n // each type of element.\n const card = elements.getElement(CardNumberElement);\n const cardExpiry = elements.getElement(CardExpiryElement);\n const cardCvc = elements.getElement(CardCvcElement);\n if (card == null) {\n setIsLoading(false);\n handleProcessingStatus(false);\n return;\n }\n\n // Use card Element to tokenize payment details\n const {\n error,\n paymentIntent\n } = await stripe.confirmCardPayment(clientSecret, {\n payment_method: {\n card: card,\n billing_details: {\n email: userEmail,\n name: minimalStyle ? undefined : name\n }\n }\n });\n card?.blur();\n cardExpiry?.blur();\n cardCvc?.blur();\n if (error) {\n Sentry.captureException(error);\n trackGoogleEvent({\n eventName: 'payment_error',\n options: {\n errorCode: error?.code,\n errorDeclineCode: error?.decline_code,\n paymentMethod: 'card',\n paymentSystem: 'Stripe'\n }\n });\n setMessage((error.message as string));\n setIsLoading(false);\n setPaymentError(previous => ({\n ...previous,\n declineCode: error.decline_code ?? '',\n errorCode: error.code,\n paymentMethod: 'card',\n paymentSystem: 'Stripe'\n }));\n handleProcessingStatus(false);\n } else if (paymentIntent && paymentIntent.status === 'succeeded') {\n await handleSuccessPaymentCallback();\n } else {\n setMessage('Unexpected state');\n setIsLoading(false);\n handleProcessingStatus(false);\n }\n }, [checkIsPrepaidCard, clientSecret, elements, handleProcessingStatus, handleSuccessPaymentCallback, minimalStyle, name, setPaymentError, stripe, trackGoogleEvent, userEmail]);\n return
    \n \n {!minimalStyle &&

    \n \n

    }\n
    \n
    \n !event.empty && handleUserStartEnteringCardInfo()} id=\"cardNumber\" options={CARD_ELEMENT_OPTIONS} data-sentry-element=\"CardNumberElement\" data-sentry-source-file=\"index.tsx\" />\n
    \n {!minimalStyle &&
    \n \n
    }\n
    \n
    \n !event.empty && handleUserStartEnteringCardInfo()} data-sentry-element=\"CardExpiryElement\" data-sentry-source-file=\"index.tsx\" />\n
    \n
    \n !event.empty && handleUserStartEnteringCardInfo()} options={ELEMENT_OPTIONS} data-sentry-element=\"CardCvcElement\" data-sentry-source-file=\"index.tsx\" />\n
    \n
    \n
    \n {message && {message}}\n \n {minimalStyle ? 'Continue with card' : }\n \n
    ;\n};\nCardPaymentBlock.displayName = 'CardPaymentBlock';","import * as Sentry from '@sentry/react';\nimport { PaymentRequestButtonElement } from '@stripe/react-stripe-js';\nimport { useSetAtom } from 'jotai';\nimport { memo, useCallback } from 'react';\nimport { useAnalytics } from '@features/Analytics';\nimport { stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport { usePaymentRequest } from '@features/Stripe/hooks';\ntype Props = {\n planInfo: {\n planName: string;\n fullPriceDiscount: number;\n currency: string;\n priceId: string;\n };\n height?: number;\n borderRadius?: number;\n stripe: any;\n clientSecret: string;\n handleSuccessPayment: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => Promise;\n // handleStatusMessage: (message: string) => void;\n handleAddPaymentInfoEventsSend: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => void;\n};\nexport const PaymentRequestButton = memo(({\n stripe,\n clientSecret,\n planInfo,\n handleSuccessPayment,\n height = 48,\n borderRadius,\n // handleStatusMessage,\n handleAddPaymentInfoEventsSend\n}: Props) => {\n const setPaymentError = useSetAtom(stripePaymentErrorAtom);\n const {\n trackGoogleEvent\n } = useAnalytics();\n const {\n paymentRequest,\n paymentMethodResult\n } = usePaymentRequest({\n stripe,\n planInfo\n });\n const handleSuccessPaymentCallback = useCallback(async () => {\n await handleSuccessPayment({\n paymentMethod: paymentMethodResult ?? ''\n });\n }, [handleSuccessPayment, paymentMethodResult]);\n if (paymentRequest) {\n paymentRequest.on('paymentmethod', async (event: any) => {\n // Confirm the PaymentIntent without handling potential next actions (yet).\n const {\n paymentIntent,\n error: confirmError\n } = await stripe.confirmCardPayment(clientSecret, {\n payment_method: event.paymentMethod.id\n }, {\n handleActions: false\n });\n if (confirmError) {\n // Report to the browser that the payment failed, prompting it to\n // re-show the payment interface, or show an error message and close\n // the payment interface.\n Sentry.captureException(confirmError);\n trackGoogleEvent({\n eventName: 'payment_error',\n options: {\n errorCode: confirmError?.code,\n errorDeclineCode: confirmError?.decline_code,\n paymentMethod: 'ApplePay/GooglePay',\n paymentSystem: 'Stripe'\n }\n });\n setPaymentError(previous => ({\n ...previous,\n declineCode: confirmError.decline_code ?? '',\n errorCode: confirmError.code,\n paymentSystem: 'Stripe',\n paymentMethod: event.paymentMethod.id ?? 'ApplePay/GooglePay'\n }));\n event.complete('fail');\n } else {\n // Report to the browser that the confirmation was successful, prompting\n // it to close the browser payment method collection interface.\n event.complete('success');\n\n // Check if the PaymentIntent requires any actions and, if so, let Stripe.js\n // handle the flow. If using an API version older than \"2019-02-11\"\n // instead check for: `paymentIntent.status === \"requires_source_action\"`.\n if (paymentIntent.status === 'requires_action') {\n // Let Stripe.js handle the rest of the payment flow.\n const {\n error\n } = await stripe.confirmCardPayment(clientSecret);\n if (error) {\n // The payment failed -- ask your customer for a new payment method.\n // handleStatusMessage('Try again or use different payment method');\n Sentry.captureException(error);\n trackGoogleEvent({\n eventName: 'payment_error',\n options: {\n errorCode: error?.code,\n errorDeclineCode: error?.decline_code,\n paymentMethod: 'ApplePay/GooglePay',\n paymentSystem: 'Stripe'\n }\n });\n setPaymentError(previous => ({\n ...previous,\n declineCode: error.decline_code ?? '',\n errorCode: error.code,\n paymentSystem: 'Stripe',\n paymentMethod: event.paymentMethod.id ?? 'ApplePay/GooglePay'\n }));\n } else {\n // The payment has succeeded -- show a success message to your customer.\n await handleSuccessPaymentCallback();\n }\n } else {\n // The payment has succeeded -- show a success message to your customer.\n await handleSuccessPaymentCallback();\n }\n }\n });\n }\n return paymentRequest ?
    \n handleAddPaymentInfoEventsSend({\n paymentMethod: paymentMethodResult ?? 'ApplePay/GooglePay'\n })} options={{\n paymentRequest: paymentRequest,\n style: {\n paymentRequestButton: {\n height: `${height}px`\n }\n }\n }} />\n
    : null;\n});\nPaymentRequestButton.displayName = 'PaymentRequestButton';","import * as Sentry from '@sentry/react';\nimport braintree from 'braintree-web';\nimport classNames from 'classnames';\nimport { useAtomValue } from 'jotai';\nimport { useSetAtom } from 'jotai/index';\nimport { observer } from 'mobx-react-lite';\nimport type { FlowType } from 'paypal-checkout-components';\nimport { HTMLProps, ReactNode, useCallback, useEffect, useState } from 'react';\nimport PaypalLogo from 'src/assets/images/payment/paypal-logo.svg';\nimport LoadingIndicator from 'src/components/common/loading-indicator/loading-indicator';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { PaymentMethod } from 'src/models/payments-store/payments-store';\nimport { useAnalytics } from '@features/Analytics';\nimport { AnalyticsPaymentMethod, AnalyticsPaymentSystem, PaymentCompletionStatus, braintreeClientTokenAtom, createBraintreeSubscription, handleCheckoutOpenRequest, usePaymentCompletionStatus } from '@features/Payments';\nimport { paymentMethodWithPersistence, selectedPlanAtom } from '@features/Stripe/atoms';\nimport { useGetAppName } from 'src/utils/hooks';\nimport styles from './paypal-button-braintree.module.scss';\nconst PAYPAL_BUTTONS_CONTAINER_ID = 'paypal-buttons-container';\nexport const PaypalButtonBraintree = observer(({\n className,\n subscriptionPlan,\n buttonContent = ,\n isCustomButton = false,\n id = PAYPAL_BUTTONS_CONTAINER_ID,\n handleAddPaymentInfoEventsSend,\n onLoadEnd,\n onSuccess,\n cancelSubscriptionAtPeriodEnd,\n ...props\n}: {\n onLoadEnd: () => void;\n handleAddPaymentInfoEventsSend: ({\n paymentMethod,\n paymentSystem\n }: {\n paymentSystem: 'stripe' | 'braintree';\n paymentMethod: string;\n }) => void;\n cancelSubscriptionAtPeriodEnd?: boolean;\n onSuccess: ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem: 'stripe' | 'braintree';\n }) => Promise;\n subscriptionPlan: {\n merchantAccountId: string;\n braintreePlanId: string;\n fullPriceDiscount: number;\n id: string;\n };\n id?: string;\n isCustomButton?: boolean;\n buttonContent?: ReactNode;\n} & Omit, 'children'>) => {\n const {\n authStore,\n paymentsStore\n } = useStores();\n const {\n user,\n auth_token,\n variant\n } = authStore;\n const app = useGetAppName();\n const braintreeClientToken = useAtomValue(braintreeClientTokenAtom);\n const {\n introOfferData\n } = useAtomValue(selectedPlanAtom);\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent\n } = useAnalytics();\n const {\n setPaymentCompletionStatus\n } = usePaymentCompletionStatus();\n const setPaymentMethod = useSetAtom(paymentMethodWithPersistence);\n const [isLoading, setIsLoading] = useState(true);\n const [buttonRendered, setButtonRendered] = useState(false);\n const braintreeHandle = useCallback(async () => {\n setIsLoading(true);\n setButtonRendered(true);\n if (!user) {\n throw new Error('A user is required');\n }\n if (!braintreeClientToken) {\n throw new Error('Client token is required');\n }\n const client = await braintree.client.create({\n authorization: braintreeClientToken\n });\n const paypalCheckout = await braintree.paypalCheckout.create({\n client\n });\n await paypalCheckout.loadPayPalSDK({\n vault: true\n });\n const buttons = window.paypal.Buttons({\n style: {\n height: 48\n },\n // @ts-ignore (an issue with library typings)\n fundingSource: window.paypal.FUNDING.PAYPAL,\n createBillingAgreement: () => {\n paymentsStore.setPaymentMethod(PaymentMethod.PAYPAL);\n handleCheckoutOpenRequest({\n subscriptionPlan: {\n id: subscriptionPlan.id,\n fullPriceDiscount: subscriptionPlan.fullPriceDiscount\n },\n paymentMethod: AnalyticsPaymentMethod.PAYPAL,\n paymentSystem: AnalyticsPaymentSystem.BRAINTREE,\n email: user!.email,\n variant: variant\n });\n trackFacebookEvent({\n eventName: 'AddPaymentInfo',\n customData: {\n paymentMethod: 'payPal',\n paymentSystem: 'braintree'\n },\n options: {\n email: user?.email\n }\n });\n trackPinterestEvent({\n eventName: 'AddToCart'\n });\n return paypalCheckout.createPayment({\n flow: ('vault' as (typeof FlowType)['Vault'])\n });\n },\n onCancel: () => {\n setIsLoading(false);\n trackGoogleEvent({\n eventName: 'add_payment_info_skipped',\n options: {\n payment_system: 'braintree',\n payment_method: AnalyticsPaymentMethod.PAYPAL\n }\n });\n },\n onApprove: async data => {\n setIsLoading(true);\n try {\n const authorizationResponse = await paypalCheckout.tokenizePayment(data);\n await createBraintreeSubscription({\n customerId: user!.id.toString(),\n customerToken: auth_token!,\n merchantAccountId: subscriptionPlan.merchantAccountId,\n planId: subscriptionPlan.braintreePlanId!,\n paymentMethodNonce: authorizationResponse.nonce,\n isStripePAth: true,\n btIntroOfferAmount: introOfferData?.fullPriceDiscount,\n btIntroOfferCurrency: introOfferData?.currency,\n cancelAtPeriodEnd: cancelSubscriptionAtPeriodEnd,\n app\n });\n setPaymentMethod('paypal');\n await onSuccess({\n paymentMethod: 'paypal',\n paymentSystem: 'braintree'\n });\n return authorizationResponse;\n } finally {\n setIsLoading(false);\n }\n },\n onClick: () => {\n setIsLoading(true);\n handleAddPaymentInfoEventsSend({\n paymentSystem: 'braintree',\n paymentMethod: 'paypal'\n });\n },\n onError: error => {\n setIsLoading(false);\n const errorPhrases = [/Error: Detected popup close/, /Error: zoid destroyed all components/, /Error: Window is closed/];\n if (errorPhrases.some(regex => regex.test(error))) {\n console.log('detected popup close');\n return;\n }\n Sentry.captureException(error);\n trackGoogleEvent({\n eventName: 'payment_error',\n options: {\n errorCode: error,\n errorDeclineCode: '',\n paymentMethod: 'paypal',\n paymentSystem: 'Braintree'\n }\n });\n setPaymentCompletionStatus({\n value: PaymentCompletionStatus.FAILURE,\n selectedPlanId: subscriptionPlan.id\n });\n }\n });\n if (document.querySelector(`#${PAYPAL_BUTTONS_CONTAINER_ID}`) && !buttonRendered) {\n setButtonRendered(true);\n buttons.render(`#${PAYPAL_BUTTONS_CONTAINER_ID}`);\n }\n setIsLoading(false);\n onLoadEnd();\n }, [app, user, braintreeClientToken, buttonRendered, onLoadEnd, paymentsStore, subscriptionPlan.id, subscriptionPlan.fullPriceDiscount, subscriptionPlan.merchantAccountId, subscriptionPlan.braintreePlanId, variant, trackFacebookEvent, trackPinterestEvent, trackGoogleEvent, auth_token, introOfferData?.fullPriceDiscount, introOfferData?.currency, setPaymentMethod, onSuccess, handleAddPaymentInfoEventsSend, setPaymentCompletionStatus, cancelSubscriptionAtPeriodEnd]);\n useEffect(() => {\n if (!buttonRendered && braintreeClientToken !== '') {\n braintreeHandle().then(r => r);\n }\n }, [braintreeClientToken, braintreeHandle, buttonRendered]);\n return
    \n {isLoading ?
    \n \n
    : buttonContent}\n
    \n
    ;\n});","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgMastercardLogo = function SvgMastercardLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 44,\n height: 28,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF5F00\",\n d: \"M27.636 3.563H15.95V24.56h11.685z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EB001B\",\n d: \"M16.705 14.06a13.33 13.33 0 0 1 5.1-10.498 13.354 13.354 0 1 0 0 20.997 13.33 13.33 0 0 1-5.1-10.498\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F79E1B\",\n d: \"M43.4 14.06a13.353 13.353 0 0 1-21.605 10.5 13.355 13.355 0 0 0 0-20.998A13.353 13.353 0 0 1 43.4 14.061M42.147 22.338v-.43h.173v-.087h-.441v.087h.173v.43zm.857 0v-.518h-.135l-.156.356-.156-.356h-.135v.518h.096v-.39l.145.336h.1l.146-.338v.392z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgMastercardLogo);\nexport default Memo;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgUnionpayLogo = function SvgUnionpayLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 256,\n height: 160\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E21836\",\n d: \"M50.042 0h63.778c8.903 0 14.44 7.257 12.364 16.19L96.49 143.675c-2.095 8.902-11.01 16.165-19.918 16.165H12.799c-8.89 0-14.44-7.263-12.363-16.165L30.142 16.19C32.219 7.257 41.128 0 50.042 0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00447C\",\n d: \"M108.513 0h73.344c8.901 0 4.888 7.257 2.794 16.19l-29.69 127.485c-2.082 8.902-1.433 16.165-10.353 16.165H71.265c-8.92 0-14.44-7.263-12.345-16.165L88.607 16.19C90.715 7.257 99.606 0 108.513 0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007B84\",\n d: \"M178.948 0h63.778c8.916 0 14.453 7.257 12.36 16.19l-29.69 127.485c-2.095 8.902-11.015 16.165-19.93 16.165h-63.748c-8.92 0-14.453-7.263-12.363-16.165L159.048 16.19C161.125 7.257 170.028 0 178.948 0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FEFEFE\",\n d: \"M66.698 40.856c-6.558.067-8.495 0-9.114-.146-.238 1.13-4.664 21.546-4.676 21.563-.953 4.13-1.646 7.075-4.002 8.976-1.336 1.105-2.897 1.639-4.707 1.639-2.908 0-4.603-1.445-4.887-4.184l-.055-.94s.886-5.533.886-5.564c0 0 4.645-18.605 5.477-21.064.044-.14.056-.213.067-.28-9.041.08-10.644 0-10.754-.146-.061.2-.285 1.354-.285 1.354l-4.743 20.97-.407 1.778-.788 5.817c0 1.725.339 3.134 1.013 4.325 2.161 3.776 8.325 4.342 11.812 4.342 4.492 0 8.707-.955 11.555-2.698 4.943-2.92 6.237-7.486 7.39-11.544l.535-2.081S65.8 43.65 66.613 41.136c.03-.14.043-.213.085-.28m16.28 15.588c-1.153 0-3.26.28-5.154 1.208-.687.353-1.337.76-2.023 1.166l.619-2.234-.339-.376c-4.015.813-4.914.922-8.623 1.444l-.31.207c-.431 3.57-.814 6.255-2.41 13.274a832 832 0 0 1-1.872 7.78l.17.327c3.802-.2 4.955-.2 8.259-.146l.267-.29c.42-2.15.474-2.654 1.404-7.009.437-2.064 1.348-6.6 1.797-8.215.825-.383 1.64-.759 2.417-.759 1.852 0 1.626 1.615 1.555 2.259-.08 1.08-.754 4.609-1.446 7.639l-.462 1.955c-.321 1.445-.674 2.848-.996 4.28l.14.286c3.746-.2 4.889-.2 8.088-.146l.376-.29c.579-3.358.748-4.257 1.774-9.146l.516-2.246c1.003-4.397 1.507-6.626.748-8.442-.802-2.035-2.727-2.526-4.494-2.526Zm18.188 4.603c-1.992.383-3.262.637-4.524.802-1.251.2-2.472.383-4.396.65l-.153.138-.14.11c-.2 1.434-.34 2.673-.606 4.13-.225 1.506-.572 3.218-1.136 5.677-.437 1.882-.662 2.538-.911 3.2-.243.663-.51 1.307-1.001 3.158l.115.171.096.157c1.799-.085 2.976-.146 4.185-.157 1.208-.043 2.46 0 4.396.01l.17-.137.182-.153c.28-1.67.321-2.119.492-2.933.17-.874.462-2.083 1.179-5.314.339-1.517.716-3.03 1.068-4.578.365-1.542.747-3.06 1.111-4.578l-.054-.183zm.042-6.206c-1.81-1.068-4.985-.729-7.123.746-2.131 1.446-2.374 3.498-.57 4.58 1.778 1.038 4.966.729 7.085-.759 2.127-1.477 2.393-3.51.608-4.567m10.943 24.734c3.661 0 7.414-1.01 10.239-4.003 2.173-2.428 3.17-6.041 3.515-7.529 1.123-4.931.248-7.233-.85-8.635-1.67-2.138-4.621-2.824-7.682-2.824-1.84 0-6.224.182-9.649 3.34-2.46 2.277-3.596 5.368-4.281 8.33-.692 3.02-1.488 8.454 3.51 10.477 1.542.662 3.765.844 5.198.844m-.286-11.095c.844-3.734 1.841-6.868 4.384-6.868 1.993 0 2.138 2.332 1.252 6.078-.159.832-.886 3.924-1.87 5.24-.688.972-1.5 1.561-2.4 1.561-.267 0-1.857 0-1.882-2.361-.012-1.166.226-2.357.516-3.65m23.191 10.615.286-.291c.406-2.15.473-2.655 1.371-7.008.45-2.065 1.38-6.6 1.816-8.216.827-.384 1.628-.76 2.43-.76 1.839 0 1.615 1.615 1.542 2.259-.067 1.082-.742 4.609-1.446 7.639l-.437 1.955c-.334 1.446-.698 2.848-1.02 4.282l.14.286c3.76-.2 4.858-.2 8.076-.146l.389-.291c.564-3.36.717-4.258 1.774-9.146l.503-2.247c1.008-4.397 1.518-6.624.771-8.44-.825-2.035-2.762-2.526-4.505-2.526-1.155 0-3.273.278-5.156 1.208-.673.352-1.348.758-2.01 1.166l.577-2.234-.31-.378c-4.014.814-4.93.923-8.635 1.446l-.285.206c-.449 3.571-.814 6.254-2.41 13.275a884 884 0 0 1-1.871 7.779l.17.328c3.807-.2 4.943-.2 8.24-.146m27.618.145c.236-1.154 1.64-7.99 1.652-7.99 0 0 1.195-5.017 1.269-5.199 0 0 .376-.522.752-.729h.553c5.222 0 11.119 0 15.74-3.4 3.145-2.332 5.295-5.775 6.254-9.96.249-1.026.432-2.246.432-3.466 0-1.603-.321-3.189-1.251-4.428-2.357-3.297-7.05-3.358-12.468-3.383l-2.67.025c-6.935.086-9.716.061-10.859-.079-.096.505-.278 1.404-.278 1.404s-2.484 11.513-2.484 11.531l-6.225 25.632c6.055-.073 8.538-.073 9.583.042m4.603-20.452s2.64-11.49 2.628-11.446l.086-.59.037-.448 1.056.108s5.447.468 5.574.48c2.15.832 3.036 2.976 2.418 5.774-.565 2.558-2.223 4.708-4.355 5.746-1.755.88-3.905.953-6.12.953h-1.433zm16.444 9.905c-.698 2.975-1.5 8.41 3.473 10.347 1.586.674 3.007.875 4.45.802 1.526-.082 2.939-.847 4.248-1.948l-.355 1.359.226.29c3.577-.15 4.687-.15 8.562-.12l.352-.268c.565-3.327 1.099-6.557 2.57-12.922.716-3.048 1.431-6.067 2.166-9.103l-.115-.334c-4.001.741-5.07.9-8.92 1.445l-.292.238c-.039.31-.08.607-.117.904-.598-.967-1.466-1.793-2.804-2.307-1.712-.674-5.732.194-9.187 3.34-2.429 2.247-3.595 5.325-4.257 8.277m8.404.182c.857-3.668 1.84-6.77 4.39-6.77 1.612 0 2.461 1.487 2.288 4.024a129 129 0 0 1-.46 2.054c-.255 1.09-.531 2.17-.8 3.252-.274.74-.593 1.438-.942 1.903-.656.93-2.217 1.506-3.116 1.506-.255 0-1.828 0-1.882-2.32-.013-1.154.225-2.344.522-3.65Zm43.886-12.109-.31-.353c-3.959.802-4.676.93-8.313 1.421l-.268.267c-.012.044-.023.11-.042.171l-.012-.06c-2.708 6.248-2.629 4.9-4.833 9.818-.013-.224-.013-.363-.025-.601l-.552-10.663-.346-.353c-4.148.802-4.246.93-8.076 1.421l-.299.267c-.042.128-.042.268-.067.42l.025.055c.479 2.446.364 1.9.844 5.762.224 1.895.523 3.801.746 5.673.378 3.132.59 4.674 1.051 9.455-2.586 4.268-3.199 5.884-5.69 9.63l.018.037-1.754 2.774c-.2.292-.382.492-.637.578-.28.138-.644.163-1.149.163h-.972l-1.444 4.804 4.955.085c2.908-.012 4.736-1.372 5.72-3.2l3.116-5.339h-.05l.328-.376c2.096-4.511 18.036-31.856 18.036-31.856m-52.29 63.088h-2.102l7.78-25.73h2.58l.82-2.65.078 2.947c-.096 1.822 1.337 3.437 5.102 3.17h4.355l1.498-4.954h-1.638c-.942 0-1.38-.238-1.325-.748l-.079-2.999h-8.063v.016c-2.607.054-10.393.25-11.969.67-1.907.49-3.917 1.937-3.917 1.937l.79-2.654h-7.543l-1.572 5.265-7.883 26.123h-1.53l-1.5 4.919h15.023l-.503 1.64h7.402l.492-1.64h2.076zm-6.164-20.502c-1.208.334-3.455 1.348-3.455 1.348l1.999-6.576h5.992l-1.445 4.791s-1.852.11-3.09.437Zm.115 9.394s-1.882.237-3.121.516c-1.22.37-3.509 1.536-3.509 1.536l2.065-6.843h6.023zm-3.358 11.168h-6.011l1.743-5.775h5.992zm14.477-15.959h8.665l-1.245 4.033h-8.78l-1.318 4.408h7.683l-5.818 8.191c-.407.602-.772.815-1.178.984-.407.207-.942.45-1.56.45h-2.132l-1.464 4.828h5.574c2.898 0 4.61-1.318 5.873-3.048l3.99-5.46.856 5.544c.182 1.038.928 1.646 1.433 1.882.558.28 1.135.76 1.95.832.873.037 1.504.067 1.924.067h2.74l1.644-5.404h-1.08c-.62 0-1.689-.104-1.87-.298-.183-.237-.183-.6-.28-1.154l-.87-5.556h-3.558l1.561-1.858h8.763l1.348-4.408h-8.113l1.263-4.033h8.089l1.5-4.973h-24.114zm-73.185 17.082 2.022-6.728h8.313l1.518-5.004h-8.32l1.27-4.141h8.13l1.507-4.846h-20.343l-1.475 4.846h4.622l-1.233 4.14h-4.634l-1.536 5.09h4.62l-2.696 8.902c-.363 1.178.171 1.627.51 2.175.347.533.698.886 1.488 1.086.815.182 1.373.291 2.131.291h9.371l1.67-5.544-4.154.571c-.802 0-3.024-.096-2.781-.838m.953-32.208-2.106 3.807c-.45.831-.857 1.348-1.222 1.585-.322.2-.96.285-1.883.285h-1.099l-1.469 4.87h3.65c1.756 0 3.103-.643 3.747-.965.692-.37.874-.159 1.408-.675l1.233-1.068h11.398l1.513-5.07h-8.344l1.457-2.77zm16.827 32.306c-.194-.28-.054-.773.243-1.799l3.115-10.311h11.083c1.615-.023 2.78-.042 3.54-.096.814-.086 1.7-.377 2.665-.899.997-.547 1.507-1.124 1.937-1.786.48-.66 1.252-2.107 1.914-4.336l3.916-13.049-11.5.067s-3.542.522-5.101 1.1c-1.573.643-3.821 2.44-3.821 2.44l1.038-3.577h-7.104l-9.946 32.986c-.353 1.28-.59 2.21-.644 2.769-.018.601.759 1.197 1.263 1.646.595.449 1.475.376 2.319.449.888.067 2.15.109 3.893.109h5.46l1.675-5.659-4.887.462c-.523 0-.9-.28-1.058-.516m5.368-19.074h11.64l-.74 2.319c-.103.054-.352-.115-1.537.025h-10.08zm2.332-7.78h11.739l-.845 2.794s-5.532-.054-6.418.109c-3.9.675-6.177 2.758-6.177 2.758zm8.83 17.866c-.097.347-.25.558-.462.717-.237.152-.62.206-1.19.206h-1.658l.098-2.824h-6.9l-.28 13.809c-.01.996.086 1.573.815 2.035.73.576 2.976.65 6 .65h4.323l1.56-5.17-3.763.207-1.252.073c-.17-.073-.334-.14-.516-.321-.158-.157-.426-.061-.382-1.057l.03-3.54 3.946-.163c2.132 0 3.043-.694 3.82-1.354.741-.633.984-1.36 1.264-2.345l.662-3.134h-5.424l-.692 2.21Z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgUnionpayLogo);\nexport default Memo;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgVisaLogo = function SvgVisaLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 67.758,\n height: 22,\n viewBox: \"0 0 1000 324.684\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M651.185.5c-70.933 0-134.322 36.766-134.322 104.694 0 77.9 112.423 83.28 112.423 122.415 0 16.478-18.884 31.229-51.137 31.229-45.773 0-79.984-20.611-79.984-20.611l-14.638 68.547s39.41 17.41 91.734 17.41c77.552 0 138.576-38.572 138.576-107.66 0-82.316-112.89-87.537-112.89-123.86 0-12.91 15.501-27.053 47.662-27.053 36.286 0 65.892 14.99 65.892 14.99l14.326-66.204S696.614.5 651.185.5M2.218 5.497.5 15.49s29.842 5.461 56.719 16.356c34.606 12.492 37.072 19.765 42.9 42.353l63.51 244.832h85.138L379.927 5.497h-84.942L210.707 218.67l-34.39-180.696c-3.154-20.68-19.13-32.477-38.685-32.477zm411.865 0L347.449 319.03h80.999l66.4-313.534h-80.765zm451.759 0c-19.532 0-29.88 10.457-37.474 28.73L709.699 319.03h84.942l16.434-47.468h103.483l9.994 47.468H999.5L934.115 5.497zm11.047 84.707 25.178 117.653h-67.454z\",\n style: {\n fill: \"#1434cb\",\n fillOpacity: 1,\n stroke: \"none\"\n }\n }));\n};\nvar Memo = /*#__PURE__*/memo(SvgVisaLogo);\nexport default Memo;","import { Stripe } from '@stripe/stripe-js';\nimport classNames from 'classnames';\nimport { memo, ReactNode, useEffect, useMemo } from 'react';\nimport { CURRENCY_DOES_NOT_SUPPORT_PAYPAL } from '@features/Stripe/constants';\nimport { CardPaymentBlock } from '@features/Stripe/widgets/checkout-form/widgets/card-payment-block';\nimport { PaymentRequestButton } from '@features/Stripe/widgets/checkout-form/widgets/payment-request-button';\nimport { PaypalButtonBraintree } from '@features/Stripe/widgets/checkout-form/widgets/paypal-button-braintree';\nimport styles from './payment-option-tab.module.scss';\nimport { useFeatures } from '@features/FeatureToggle';\ninterface TpPaymentOptionProps {\n paymentMethodResult: string | null | undefined;\n paymentMethodName: 'PayPal' | 'Google Pay' | 'Apple Pay' | 'Credit card';\n paymentMethodLogo: ReactNode;\n paymentMethodContentList?: string[];\n paymentButtonText?: string;\n stripe: Stripe | null;\n clientSecret: string;\n userEmail: string;\n cancelSubscriptionAtPeriodEnd?: boolean;\n sendAddPaymentInfoEvents: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => void;\n handleProcessingStatus: (status: boolean) => void;\n onSuccess: ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => Promise;\n planInfo: {\n priceId: string;\n planName: string;\n fullPriceDiscount: number;\n billingPeriod: number;\n billingPeriodUnit: string;\n introOffer?: string;\n currency: string;\n braintreePlanId?: string;\n braintreeMerchantId?: string;\n };\n selected: boolean;\n onSelectPaymentMethod: (paymentMethod: 'PayPal' | 'Google Pay' | 'Apple Pay' | 'Credit card') => void;\n}\nexport const MappedPaymentMethodComponent = memo(({\n paymentMethodName,\n stripe,\n clientSecret,\n userEmail,\n sendAddPaymentInfoEvents,\n handleProcessingStatus,\n onSuccess,\n onLoadEnd,\n cancelSubscriptionAtPeriodEnd,\n planInfo\n}: Omit & {\n onLoadEnd?: () => void;\n}) => {\n const isBraintreePaypal = typeof planInfo.braintreePlanId === 'string' && planInfo.braintreePlanId.length > 0 && planInfo.braintreeMerchantId !== undefined;\n const {\n hidePayPalTest\n } = useFeatures();\n const isPayPalSupported = useMemo(() => !hidePayPalTest && !CURRENCY_DOES_NOT_SUPPORT_PAYPAL.includes(planInfo.currency) && !(planInfo.billingPeriodUnit === 'week' && planInfo.billingPeriod === 1), [planInfo.currency, planInfo.billingPeriodUnit, planInfo.billingPeriod, hidePayPalTest]);\n useEffect(() => {\n if (!isBraintreePaypal || !isPayPalSupported) {\n onLoadEnd && onLoadEnd();\n }\n }, [isBraintreePaypal, isPayPalSupported, onLoadEnd]);\n if (paymentMethodName === 'Credit card') {\n return ;\n }\n if (paymentMethodName === 'Google Pay' || paymentMethodName === 'Apple Pay') {\n return ;\n }\n if (paymentMethodName === 'PayPal' && isPayPalSupported) {\n return isBraintreePaypal ? onLoadEnd && onLoadEnd()} subscriptionPlan={{\n braintreePlanId: planInfo.braintreePlanId!,\n merchantAccountId: planInfo.braintreeMerchantId!,\n fullPriceDiscount: planInfo.fullPriceDiscount,\n id: (planInfo.priceId as string)\n }} /> : null;\n }\n return null;\n});\nMappedPaymentMethodComponent.displayName = 'MappedPaymentMethodComponent';\nexport const PaymentOptionTab = (props: TpPaymentOptionProps) => {\n const {\n paymentMethodContentList,\n paymentMethodResult,\n paymentMethodLogo,\n paymentMethodName,\n paymentButtonText,\n stripe,\n clientSecret,\n userEmail,\n sendAddPaymentInfoEvents,\n handleProcessingStatus,\n onSuccess,\n planInfo,\n selected,\n onSelectPaymentMethod\n } = props;\n if (paymentMethodName === 'Google Pay' && paymentMethodResult !== 'googlePay' || paymentMethodName === 'Apple Pay' && paymentMethodResult !== 'applePay') {\n return null;\n }\n return
    \n
    onSelectPaymentMethod(paymentMethodName)} className={classNames(styles.paymentMethodOption_title, selected && styles.paymentMethodOption_title_selected)}>\n {paymentMethodName}\n {paymentMethodLogo}\n
    \n\n
    \n
    \n {paymentMethodContentList &&
      \n {paymentMethodContentList.map(item =>
    • \n {item}\n
    • )}\n
    }\n\n
    \n \n
    \n
    \n
    \n
    ;\n};","import { Stripe } from '@stripe/stripe-js';\nimport classNames from 'classnames';\nimport { memo, ReactNode, useState } from 'react';\nimport { MappedPaymentMethodComponent } from '@features/Stripe/widgets/checkout-selector/widgets/payment-option-tab';\nimport styles from './compact-selector.module.scss';\ntype TpCompactSelectorProps = {\n paymentMethods: {\n paymentMethodName: 'PayPal' | 'Google Pay' | 'Apple Pay' | 'Credit card';\n paymentMethodLogo: ReactNode;\n paymentMethodLogoCompact: ReactNode;\n paymentMethodContentList: string[] | undefined;\n paymentButtonText: string | undefined;\n }[];\n stripe: Stripe | null;\n clientSecret: string;\n userEmail: string;\n cancelSubscriptionAtPeriodEnd?: boolean;\n sendAddPaymentInfoEvents: ({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => void;\n handleProcessingStatus: (status: boolean) => void;\n onSuccess: ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => Promise;\n planInfo: {\n priceId: string;\n planName: string;\n fullPriceDiscount: number;\n billingPeriod: number;\n billingPeriodUnit: string;\n introOffer?: string;\n currency: string;\n braintreePlanId?: string;\n braintreeMerchantId?: string;\n };\n};\nexport const CompactSelector = memo((props: TpCompactSelectorProps) => {\n const {\n paymentMethods,\n stripe,\n clientSecret,\n userEmail,\n sendAddPaymentInfoEvents,\n handleProcessingStatus,\n onSuccess,\n cancelSubscriptionAtPeriodEnd,\n planInfo\n } = props;\n const [isLoading, setIsLoading] = useState(true);\n const [selectedMethod, setSelectedMethod] = useState(paymentMethods[paymentMethods.length - 1]);\n return <>\n
    \n {paymentMethods.map(paymentMethod =>
    {\n setSelectedMethod(paymentMethod);\n }}>\n {paymentMethod.paymentMethodLogoCompact}\n
    )}\n
    \n\n
    \n
    \n Continue with {selectedMethod.paymentMethodLogoCompact}\n
    \n
    \n setIsLoading(false)} sendAddPaymentInfoEvents={sendAddPaymentInfoEvents} handleProcessingStatus={handleProcessingStatus} onSuccess={onSuccess} planInfo={planInfo} />\n
    \n
    \n ;\n});\nCompactSelector.displayName = 'CompactSelector';","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgGpayLogoWhiteTheme = function SvgGpayLogoWhiteTheme(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 63,\n height: 24,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M29.465 11.673v7.076h-2.246V1.274h5.953c1.51 0 2.796.503 3.849 1.509q1.613 1.508 1.614 3.684c0 1.485-.538 2.713-1.614 3.707-1.041.995-2.328 1.486-3.849 1.486h-3.707zm0-8.246V9.52h3.754c.89 0 1.638-.304 2.222-.9.597-.597.901-1.322.901-2.14 0-.807-.304-1.52-.9-2.117-.585-.62-1.322-.924-2.223-.924h-3.754zM44.506 6.398q2.49 0 3.93 1.333 1.438 1.333 1.438 3.65v7.368h-2.14v-1.661h-.094c-.924 1.368-2.163 2.046-3.707 2.046-1.322 0-2.421-.386-3.31-1.17s-1.334-1.753-1.334-2.923q0-1.86 1.404-2.947c.936-.737 2.187-1.1 3.743-1.1 1.333 0 2.432.246 3.286.737v-.515c0-.783-.304-1.438-.924-1.988a3.17 3.17 0 0 0-2.175-.819c-1.252 0-2.246.527-2.97 1.591l-1.977-1.24c1.087-1.579 2.701-2.362 4.83-2.362m-2.9 8.678c0 .585.245 1.076.748 1.462a2.75 2.75 0 0 0 1.742.585q1.422 0 2.527-1.053c.737-.702 1.11-1.52 1.11-2.468-.7-.55-1.672-.83-2.923-.83-.912 0-1.673.222-2.28.655-.62.456-.925 1.006-.925 1.649M62.085 6.784 54.599 24h-2.315l2.783-6.023-4.935-11.193h2.444l3.556 8.584h.046l3.462-8.584z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M20.533 10.246c0-.733-.066-1.433-.187-2.107h-9.413V12l5.42.001a4.64 4.64 0 0 1-2.01 3.109v2.504h3.226c1.884-1.744 2.964-4.322 2.964-7.367\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M14.343 15.109c-.898.606-2.055.96-3.408.96-2.614 0-4.831-1.761-5.626-4.136H1.981v2.583a10.02 10.02 0 0 0 8.954 5.518c2.707 0 4.98-.89 6.635-2.422z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FABB05\",\n d: \"M4.996 10.018c0-.667.111-1.312.313-1.917V5.518H1.981a10 10 0 0 0-1.066 4.5c0 1.618.385 3.146 1.066 4.499l3.328-2.582a6 6 0 0 1-.313-1.918\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E94235\",\n d: \"M10.935 3.965c1.477 0 2.8.509 3.845 1.503l2.86-2.857C15.901.993 13.637 0 10.934 0a10.02 10.02 0 0 0-8.954 5.518l3.328 2.583c.795-2.375 3.012-4.136 5.626-4.136\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgGpayLogoWhiteTheme);\nexport default Memo;","import { useStripe } from '@stripe/react-stripe-js';\nimport classNames from 'classnames';\nimport { useAtomValue, useSetAtom } from 'jotai/index';\nimport { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport AmexLogo from 'src/assets/icons/amex.svg';\nimport ApplePayLogo from 'src/assets/images/payment/apple-pay-logo.svg';\nimport MasterCard from 'src/assets/images/payment/mastercard-logo.svg';\nimport PayPalLogo from 'src/assets/images/payment/paypal-logo.svg';\nimport UnionPayLogo from 'src/assets/images/payment/unionpay-logo.svg';\nimport VisaLogo from 'src/assets/images/payment/visa-logo.svg';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { tikTokAdvancedMatching, tikTokEvent, twitterEvent, useAnalytics } from '@features/Analytics';\nimport { processingModalStatusAtom, selectedPlanAtom, stripeSubscriptionWithPersistence, userAtom } from '@features/Stripe/atoms';\nimport { BILLING_PERIOD_LTV_MAP, CURRENCY_DOES_NOT_SUPPORT_PAYPAL } from '@features/Stripe/constants';\nimport { useCreateSubscription, usePaymentRequest } from '@features/Stripe/hooks';\nimport { CompactSelector } from '@features/Stripe/widgets/checkout-selector/widgets/compact-selector';\nimport { PaymentOptionTab } from '@features/Stripe/widgets/checkout-selector/widgets/payment-option-tab';\nimport GooglePayLogo from '../../../../../public/images/gpay-logo-white-theme.svg';\nimport styles from './checkout-selector.module.scss';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { useFeatures } from '@features/FeatureToggle';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\ntype TpPaymentOptions = {\n paymentMethodName: 'PayPal' | 'Google Pay' | 'Apple Pay' | 'Credit card';\n paymentMethodLogo: ReactNode;\n paymentMethodLogoCompact: ReactNode;\n paymentMethodContentList: string[] | undefined;\n paymentButtonText: string | undefined;\n};\nconst PAYMENT_OPTIONS: Map = new Map([['Credit card', {\n paymentMethodName: 'Credit card',\n paymentMethodLogo:
    \n \n \n \n \n
    ,\n paymentMethodLogoCompact: \n \n ,\n paymentMethodContentList: undefined,\n paymentButtonText: 'Continue'\n}], ['PayPal', {\n paymentMethodName: 'PayPal',\n paymentMethodLogo: ,\n paymentMethodLogoCompact: ,\n paymentMethodContentList: ['Fast, convenient payment option', 'Keeps your financial info safe with end-to-end encryption', \"Backed by PayPal's industry-leading fraud protection\"],\n paymentButtonText: 'Confirm purchase'\n}], ['Apple Pay', {\n paymentMethodName: 'Apple Pay',\n paymentMethodLogo: ,\n paymentMethodLogoCompact: ,\n paymentMethodContentList: ['Fast, convenient payment option', 'Keeps your financial info safe with end-to-end encryption', \"Backed by PayPal's industry-leading fraud protection\"],\n paymentButtonText: undefined\n}], ['Google Pay', {\n paymentMethodName: 'Google Pay',\n paymentMethodLogo: ,\n paymentMethodLogoCompact: ,\n paymentMethodContentList: ['Fast, convenient payment option', 'Keeps your financial info safe with end-to-end encryption', \"Backed by PayPal's industry-leading fraud protection\"],\n paymentButtonText: undefined\n}]]);\nconst SkeletonMethods = () => <>\n \n \n \n ;\nconst SkeletonMethodsCompact = () => <>\n \n \n ;\nconst APPLE_PAY = 'Apple Pay';\nconst GOOGLE_PAY = 'Google Pay';\nconst PAYPAL = 'PayPal';\nconst isPaymentMethodFiltered = (methodName: string, selectedPaymentMethod: string, isCurrencySupportPayPal: boolean): boolean => {\n if (selectedPaymentMethod === 'applePay' && methodName === GOOGLE_PAY || selectedPaymentMethod === 'googlePay' && methodName === APPLE_PAY || selectedPaymentMethod === '' && (methodName === GOOGLE_PAY || methodName === APPLE_PAY)) {\n return true;\n }\n return (!isCurrencySupportPayPal || getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }) === 'challenge') && methodName === PAYPAL;\n};\nconst getFilteredPaymentOptions = (selectedPaymentMethod: string, isCurrencySupportPayPal: boolean, priorityMethod?: TpPaymentOptions['paymentMethodName']): TpPaymentOptions[] => {\n const filteredOptions: TpPaymentOptions[] = [];\n let priorityOption: TpPaymentOptions | undefined;\n for (const [methodName, option] of PAYMENT_OPTIONS) {\n if (isPaymentMethodFiltered(methodName, selectedPaymentMethod, isCurrencySupportPayPal)) {\n continue;\n }\n if (priorityMethod === methodName) {\n priorityOption = option;\n }\n filteredOptions.push(option);\n }\n if (priorityOption) {\n filteredOptions.sort((a, b) => a.paymentMethodName === priorityOption?.paymentMethodName ? -1 : b.paymentMethodName === priorityOption?.paymentMethodName ? 1 : 0);\n }\n return filteredOptions;\n};\nexport const CheckoutSelector = ({\n isCompactStyle = false,\n priorityMethod,\n onSuccesPayment,\n cancelSubscriptionAtPeriodEnd\n}: {\n isCompactStyle?: boolean;\n priorityMethod?: string;\n cancelSubscriptionAtPeriodEnd?: boolean;\n onSuccesPayment?: ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => Promise;\n}) => {\n const {\n email,\n token,\n userId,\n campaign\n } = useAtomValue(userAtom);\n const setCustomerId = useSetAtom(userAtom);\n const planInfo = useAtomValue(selectedPlanAtom);\n const stripe = useStripe();\n const {\n introOfferFeature: isIntroOfferEnabled,\n hidePayPalTest\n } = useFeatures();\n const currentPlanDetails = useMemo(() => isIntroOfferEnabled ? {\n fullPrice: planInfo.introOfferData?.fullPrice,\n fullPriceDiscount: planInfo.introOfferData?.fullPriceDiscount,\n introOfferId: planInfo.introOfferData?.introOfferId,\n introOfferDuration: Number(planInfo.introOfferData?.introOfferDuration),\n billingPeriod: planInfo.introOfferData?.billingPeriod,\n billingPeriodUnit: planInfo.introOfferData?.billingPeriodUnit\n } : {\n fullPrice: planInfo.fullPrice,\n fullPriceDiscount: planInfo.fullPriceDiscount,\n introOfferId: undefined,\n introOfferDuration: undefined,\n billingPeriod: planInfo.billingPeriod,\n billingPeriodUnit: planInfo.billingPeriodUnit\n }, [isIntroOfferEnabled, planInfo.introOfferData, planInfo.fullPrice, planInfo.fullPriceDiscount, planInfo.billingPeriod, planInfo.billingPeriodUnit]);\n const {\n paymentMethodResult\n } = usePaymentRequest({\n stripe,\n planInfo\n });\n const isCurrencySupportPayPal = useMemo(() => !hidePayPalTest && (planInfo.braintreePlanId?.length ?? 0) > 1 && (planInfo.braintreeMerchantId?.length ?? 0) > 1 && !CURRENCY_DOES_NOT_SUPPORT_PAYPAL.includes(planInfo.currency) && !(currentPlanDetails.billingPeriodUnit === 'week' && currentPlanDetails.billingPeriod === 1), [planInfo.currency, planInfo.braintreeMerchantId, planInfo.braintreePlanId, currentPlanDetails.billingPeriodUnit, currentPlanDetails.billingPeriod, hidePayPalTest]);\n const filteredPaymentOptions = useMemo(() => getFilteredPaymentOptions(paymentMethodResult ?? '', isCurrencySupportPayPal, (priorityMethod as TpPaymentOptions['paymentMethodName'])), [paymentMethodResult, isCurrencySupportPayPal, priorityMethod]);\n const [clientSecret, setClientSecret] = useState('');\n const [activePaymentMethod, setActivePaymentMethod] = useState(filteredPaymentOptions[0]?.paymentMethodName ?? '');\n const handlePaymentMethodSelect = useCallback((paymentMethodName: TpPaymentOptions['paymentMethodName']) => setActivePaymentMethod(paymentMethodName), []);\n const {\n isLoading: createSubscriptionIsLoading,\n data,\n error\n } = useCreateSubscription({\n priceId: (planInfo.priceId as string),\n currency: planInfo.currency,\n token,\n email,\n userId,\n introOfferId: currentPlanDetails.introOfferId,\n introOfferDuration: currentPlanDetails.introOfferDuration,\n cancelAtPeriodEnd: cancelSubscriptionAtPeriodEnd\n });\n const {\n productId\n } = useGetStripeProductId({\n variant: (getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }) as TpStripeVariants)\n });\n useEffect(() => {\n if (createSubscriptionIsLoading || error || !data) {\n setClientSecret('');\n return;\n }\n const {\n client_secret,\n customer_id\n } = data;\n setCustomerId(prev => ({\n ...prev,\n customerId: customer_id\n }));\n setClientSecret(client_secret);\n }, [data, createSubscriptionIsLoading, error, setCustomerId]);\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent,\n trackBingEvent\n } = useAnalytics();\n const setProcessingModalStatus = useSetAtom(processingModalStatusAtom);\n const handleProcessingStatus = useCallback((status: boolean) => {\n setProcessingModalStatus(status);\n }, [setProcessingModalStatus]);\n const setStripeSubscriptionActive = useSetAtom(stripeSubscriptionWithPersistence);\n const analyticsCombinedParameters = useMemo(() => ({\n value: Number(currentPlanDetails.fullPriceDiscount).toFixed(2),\n currency: planInfo.currency\n }), [planInfo.currency, currentPlanDetails.fullPriceDiscount]);\n const sendAnalyticsEvents = useCallback(({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => {\n const calculateLTV = BILLING_PERIOD_LTV_MAP[planInfo.billingPeriod] || undefined;\n trackBingEvent({\n eventName: 'subscribe',\n options: {\n currency: analyticsCombinedParameters.currency,\n revenue_value: +analyticsCombinedParameters.value\n }\n });\n sendBingSpreadedConversion(email);\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentMethod: paymentMethod,\n paymentSystem: paymentSystem ? paymentSystem : 'stripe'\n },\n options: {\n ...analyticsCombinedParameters,\n email: email,\n subscription_id: undefined,\n stripe_subscription_id: planInfo.priceId,\n predicted_ltv: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }) === 'variant18' ? calculateLTV : 80\n }\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentMethod: paymentMethod,\n paymentSystem: paymentSystem ? paymentSystem : 'stripe'\n },\n options: {\n email: email\n }\n });\n twitterEvent('tw-oehe8-oehej', {\n email: email,\n ...analyticsCombinedParameters\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: productId,\n price_id: planInfo.priceId,\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n payment_system: paymentSystem ? paymentSystem : 'stripe',\n payment_type: paymentMethod,\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n email: email,\n ...analyticsCombinedParameters\n }\n });\n tikTokAdvancedMatching(email);\n tikTokEvent('CompletePayment', {\n content_id: planInfo.planName,\n quantity: 1,\n ...analyticsCombinedParameters\n });\n }, [analyticsCombinedParameters, planInfo.billingPeriod, planInfo.planName, planInfo.priceId, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, email, productId, trackBingEvent]);\n const onSuccess = useCallback(async ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => {\n if (onSuccesPayment) {\n await onSuccesPayment({\n paymentMethod,\n paymentSystem\n });\n } else {\n sendAnalyticsEvents({\n paymentMethod,\n paymentSystem\n });\n setStripeSubscriptionActive('subscriptionActive');\n handleProcessingStatus(false);\n }\n }, [setStripeSubscriptionActive, handleProcessingStatus, sendAnalyticsEvents, onSuccesPayment]);\n const sendAddPaymentInfoEvents = useCallback(({\n paymentMethod\n }: {\n paymentMethod: string;\n }) => {\n trackFacebookEvent({\n eventName: 'AddPaymentInfo',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentMethod: paymentMethod,\n paymentSystem: 'stripe'\n },\n options: {\n email: email\n }\n });\n trackBingEvent({\n eventName: 'begin_checkout'\n });\n sendBingSpreadedConversion(email);\n twitterEvent('tw-oehe8-oehek', {\n email_address: email\n });\n trackPinterestEvent({\n eventName: 'AddToCart'\n });\n trackGoogleEvent({\n eventName: 'add_payment_info',\n options: {\n value: currentPlanDetails.fullPriceDiscount,\n payment_system: 'stripe',\n payment_method: paymentMethod\n }\n });\n tikTokAdvancedMatching(email);\n tikTokEvent('AddPaymentInfo', {\n content_id: planInfo.planName\n });\n }, [currentPlanDetails.fullPriceDiscount, planInfo.planName, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, trackBingEvent, email]);\n useEffect(() => {\n if (planInfo.priceId.length > 0 && clientSecret.length > 0) {\n trackGoogleEvent({\n eventName: 'checkout_methods_loaded'\n });\n }\n }, [clientSecret, planInfo.priceId.length, trackGoogleEvent]);\n if (planInfo.priceId.length === 0 || clientSecret === '' || email?.length < 0) {\n return isCompactStyle ? : ;\n }\n return
    \n {isCompactStyle ? : filteredPaymentOptions.map(paymentOption => )}\n
    ;\n};","import { useAtomValue } from 'jotai';\nimport { useAtom } from 'jotai/index';\nimport { useRouter } from 'next/router';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport CloseButton from 'src/components/common/close-button/close-button';\nimport Alert from 'src/components/common/modal/alert/alert';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { useAnalytics } from '@features/Analytics';\nimport { currencyReplacer } from '@features/Payments';\nimport { noMoneyPlanInfoAtom, stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport styles from './payment-declined-modal.module.scss';\nexport const PaymentDeclinedModal = ({\n onClose\n}: {\n onClose: () => void;\n}) => {\n const [{\n wasErrorModalWithOfferShown,\n declineCode,\n errorCode,\n paymentSystem,\n paymentMethod\n }, setPaymentError] = useAtom(stripePaymentErrorAtom);\n const {\n trackGoogleEvent\n } = useAnalytics();\n const {\n query\n } = useRouter();\n const noMoneyInfo = useAtomValue(noMoneyPlanInfoAtom);\n const showErrorModal = useMemo(() => !wasErrorModalWithOfferShown && (errorCode === 'insufficient_funds' || errorCode === 'card_declined' && (declineCode === 'do_not_honor' || declineCode === 'insufficient_funds' || declineCode === 'generic_decline')), [declineCode, errorCode, wasErrorModalWithOfferShown]);\n const handleModelClose = useCallback(() => {\n trackGoogleEvent({\n eventName: 'purchase_bank_declined_tapped'\n });\n onClose();\n setPaymentError(previous => ({\n ...previous,\n wasErrorModalWithOfferShown: true,\n errorCode: '',\n declineCode: '',\n paymentMethod: '',\n paymentSystem: ''\n }));\n }, [onClose, setPaymentError, trackGoogleEvent]);\n const handleModelDismiss = useCallback(() => {\n trackGoogleEvent({\n eventName: 'purchase_bank_declined_dismissed'\n });\n setPaymentError(previous => ({\n ...previous,\n wasErrorModalWithOfferShown: false,\n errorCode: '',\n declineCode: '',\n paymentMethod: '',\n paymentSystem: ''\n }));\n }, [setPaymentError, trackGoogleEvent]);\n useEffect(() => {\n if (showErrorModal) {\n trackGoogleEvent({\n eventName: 'purchase_bank_declined_opened',\n options: {\n payment_system: paymentSystem ?? 'undefined',\n payment_type: paymentMethod ?? 'undefined',\n product_id: query['plan'] ?? 'undefined'\n }\n });\n }\n }, [paymentMethod, paymentSystem, query, showErrorModal, trackGoogleEvent]);\n return } className={styles.modalContent} data-sentry-element=\"Alert\" data-sentry-component=\"PaymentDeclinedModal\" data-sentry-source-file=\"index.tsx\">\n \n

    \n Your bank could not process the payment this time\n

    \n

    \n But we're here to ensure your reflection stays fabulous!\n

    \n
    \n

    \n Meanwhile, here's a little treat!\n

    \n

    \n Enjoy one full month just for{' '}\n \n {currencyReplacer(noMoneyInfo.currency)}{' '}\n {noMoneyInfo.fullPriceDiscount}\n \n

    \n \n Let's Try Again - {currencyReplacer(noMoneyInfo.currency)}\n {noMoneyInfo.fullPriceDiscount} Only!\n \n
    \n
    ;\n};","import { ComponentProps } from 'react';\nimport Alert from 'src/components/common/modal/alert/alert';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './payment-processing-alert.module.scss';\nconst PaymentProcessingAlert = (props: ComponentProps) => } description={} footer={} {...props} data-sentry-element=\"Alert\" data-sentry-component=\"PaymentProcessingAlert\" data-sentry-source-file=\"payment-processing-alert.tsx\" />;\nexport default PaymentProcessingAlert;","import { useAtom } from 'jotai/index';\nimport { useRouter } from 'next/router';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport AlertWithCloseButton from 'src/components/common/modal/alert-with-close-button/alert-with-close-button';\nimport { routes } from 'src/constants/navigation';\nimport { useAnalytics } from '@features/Analytics';\nimport { stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport styles from './second-payment-failed-modal.module.scss';\nexport const SecondPaymentFailedModal = () => {\n const [{\n wasErrorModalWithOfferShown,\n errorCode,\n paymentSystem,\n paymentMethod\n }, setPaymentError] = useAtom(stripePaymentErrorAtom);\n const {\n trackGoogleEvent\n } = useAnalytics();\n const {\n query\n } = useRouter();\n const router = useRouter();\n const showModal = useMemo(() => wasErrorModalWithOfferShown && errorCode !== '', [errorCode, wasErrorModalWithOfferShown]);\n const handleModelClose = useCallback(() => {\n trackGoogleEvent({\n eventName: 'purchase_bank_rejected_tapped'\n });\n router.replace({\n pathname: routes.newPlanPaywall,\n query: {\n ...query,\n ['redirect_status']: undefined,\n ['payment_status']: undefined\n }\n }).then(r => r);\n setPaymentError(previous => ({\n ...previous,\n errorCode: ''\n }));\n }, [query, router, setPaymentError, trackGoogleEvent]);\n useEffect(() => {\n if (showModal) {\n trackGoogleEvent({\n eventName: 'purchase_bank_rejected_opened',\n options: {\n payment_system: paymentSystem ?? 'undefined',\n payment_type: paymentMethod ?? 'undefined',\n product_id: query['plan'] ?? 'undefined'\n }\n });\n }\n }, [paymentMethod, paymentSystem, query, showModal, trackGoogleEvent]);\n return } title={<>\n Oops! Bank rejected\n
    the transaction again\n } description=\"The money was not debited, please try another card or payment method\" closeButtonText=\"Try another payment method\" data-sentry-element=\"AlertWithCloseButton\" data-sentry-component=\"SecondPaymentFailedModal\" data-sentry-source-file=\"index.tsx\" />;\n};","import { Elements } from '@stripe/react-stripe-js';\nimport { Stripe } from '@stripe/stripe-js';\nimport classNames from 'classnames';\nimport { memo } from 'react';\nimport 'react-loading-skeleton/dist/skeleton.css';\nimport { CurrentPrice } from 'src/features/Paywall/widgets/subscription-card/current-price';\nimport { PriceUnitFull } from 'src/features/Paywall/widgets/subscription-card/price-unit-full';\nimport { SubscriptionCardMaster } from '@features/Paywall';\nimport { BillingPeriod } from '@features/Paywall/widgets/subscription-card/billing-period';\nimport { DiscountPercentage } from '@features/Paywall/widgets/subscription-card/discount-percentage';\nimport { FullPrice } from '@features/Paywall/widgets/subscription-card/full-price';\nimport { LearnMoreList } from '@features/Stripe/components/LearnMoreList';\nimport { TpStripePlanCardProps } from '@features/Stripe/types';\nimport { CheckoutSelector } from '@features/Stripe/widgets/checkout-selector';\nimport styles from './subscription-plan-card-with-payment-methods.module.scss';\nexport const SubscriptionPlanCardStripeWithPaymentMethods = memo((props: TpStripePlanCardProps & {\n stripePromise: Promise;\n}) => {\n const {\n plan,\n disabled = false,\n stripePromise,\n planCardClassname,\n learnMoreList\n } = props;\n return !disabled &&
    \n
    \n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && value && }{' '}\n {' '}\n \n
    \n
    } rightContent={(value: boolean) =>
    \n
    \n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && value &&
    \n \n\n
    \n {plan?.discountPercentage !== 0 && plan?.discountPercentage != null && }\n
    \n
    }\n \n
    \n
    } fullWidthBottomContent={(value: boolean) => value &&
    \n {(plan?.learnMoreList || learnMoreList) && <>\n {plan?.learnMoreList && }\n {learnMoreList && }\n \n \n \n }\n
    } />;\n});\nSubscriptionPlanCardStripeWithPaymentMethods.displayName = 'SubscriptionPlanCardStripeWithPaymentMethods';","import { Modal } from '@mentalgrowth/ui-kit-web';\nimport { UpsellLoader } from '@features/Upsell/components/upsell-loader';\nimport styles from './upsell-fallback-modal.module.scss';\nexport const UpsellFallbackModal = () => {\n return \n \n ;\n};","import { UpsellModalComponentKey } from '@features/Stripe/widgets/upsell-modal-renderer';\n\nexport const minimalInitialModalState: TpMinimalModalState = {\n currentModal: null,\n wasShown: {},\n};\n\nexport type TpMinimalModalState = {\n currentModal: UpsellModalComponentKey | null;\n wasShown: any;\n};\n\nexport const minimalActionTypes = {\n SHOW_MODAL: 'SHOW_MODAL',\n HIDE_MODAL: 'HIDE_MODAL',\n} as const;\n\nexport type TpMinimalActionType = keyof typeof minimalActionTypes;\nexport type TpMinimalModalAction = {\n type: TpMinimalActionType;\n payload: { modalId: UpsellModalComponentKey | null };\n};\n\nexport const stripeMinimalModalReducer = (\n state: TpMinimalModalState,\n action: TpMinimalModalAction,\n) => {\n switch (action.type) {\n case minimalActionTypes.SHOW_MODAL:\n return {\n ...state,\n currentModal: action.payload.modalId,\n wasShown:\n action.payload.modalId !== null\n ? { ...state.wasShown, [action.payload.modalId]: true }\n : state.wasShown,\n };\n\n case minimalActionTypes.HIDE_MODAL:\n return {\n ...state,\n currentModal: null,\n };\n\n default:\n return state;\n }\n};\n","// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z\nvar module = {};\n\n// source content\n/* globals Map */\n\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function';\n var canDrawBitmap = (function () {\n // this mostly supports ssr\n if (!global.OffscreenCanvas) {\n return false;\n }\n\n var canvas = new OffscreenCanvas(1, 1);\n var ctx = canvas.getContext('2d');\n ctx.fillRect(0, 0, 1, 1);\n var bitmap = canvas.transferToImageBitmap();\n\n try {\n ctx.createPattern(bitmap, 'no-repeat');\n } catch (e) {\n return false;\n }\n\n return true;\n })();\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var bitmapMapper = (function (skipTransform, map) {\n // see https://github.com/catdad/canvas-confetti/issues/209\n // creating canvases is actually pretty expensive, so we should create a\n // 1:1 map for bitmap:canvas, so that we can animate the confetti in\n // a performant manner, but also not store them forever so that we don't\n // have a memory leak\n return {\n transform: function(bitmap) {\n if (skipTransform) {\n return bitmap;\n }\n\n if (map.has(bitmap)) {\n return map.get(bitmap);\n }\n\n var canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bitmap, 0, 0);\n\n map.set(bitmap, canvas);\n\n return canvas;\n },\n clear: function () {\n map.clear();\n }\n };\n })(canDrawBitmap, new Map());\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar,\n flat: opts.flat\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.velocity *= fetti.decay;\n\n if (fetti.flat) {\n fetti.wobble = 0;\n fetti.wobbleX = fetti.x + (10 * fetti.scalar);\n fetti.wobbleY = fetti.y + (10 * fetti.scalar);\n\n fetti.tiltSin = 0;\n fetti.tiltCos = 0;\n fetti.random = 1;\n } else {\n fetti.wobble += fetti.wobbleSpeed;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n }\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n\n context.beginPath();\n\n if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) {\n context.fill(transformPath2D(\n fetti.shape.path,\n fetti.shape.matrix,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * 0.1,\n Math.abs(y2 - y1) * 0.1,\n Math.PI / 10 * fetti.wobble\n ));\n } else if (fetti.shape.type === 'bitmap') {\n var rotation = Math.PI / 10 * fetti.wobble;\n var scaleX = Math.abs(x2 - x1) * 0.1;\n var scaleY = Math.abs(y2 - y1) * 0.1;\n var width = fetti.shape.bitmap.width * fetti.scalar;\n var height = fetti.shape.bitmap.height * fetti.scalar;\n\n var matrix = new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n fetti.x,\n fetti.y\n ]);\n\n // apply the transform matrix from the confetti shape\n matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix));\n\n var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat');\n pattern.setTransform(matrix);\n\n context.globalAlpha = (1 - progress);\n context.fillStyle = pattern;\n context.fillRect(\n fetti.x - (width / 2),\n fetti.y - (height / 2),\n width,\n height\n );\n context.globalAlpha = 1;\n } else if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var hasResizeEventRegistered = false;\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var flat = !!prop(options, 'flat');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar,\n flat: flat\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n hasResizeEventRegistered = false;\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n if (document.body.contains(canvas)) {\n document.body.removeChild(canvas); \n }\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize && !hasResizeEventRegistered) {\n hasResizeEventRegistered = true;\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) {\n var path2d = new Path2D(pathString);\n\n var t1 = new Path2D();\n t1.addPath(path2d, new DOMMatrix(pathMatrix));\n\n var t2 = new Path2D();\n // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix\n t2.addPath(t1, new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n x,\n y\n ]));\n\n return t2;\n }\n\n function shapeFromPath(pathData) {\n if (!canUsePaths) {\n throw new Error('path confetti are not supported in this browser');\n }\n\n var path, matrix;\n\n if (typeof pathData === 'string') {\n path = pathData;\n } else {\n path = pathData.path;\n matrix = pathData.matrix;\n }\n\n var path2d = new Path2D(path);\n var tempCanvas = document.createElement('canvas');\n var tempCtx = tempCanvas.getContext('2d');\n\n if (!matrix) {\n // attempt to figure out the width of the path, up to 1000x1000\n var maxSize = 1000;\n var minX = maxSize;\n var minY = maxSize;\n var maxX = 0;\n var maxY = 0;\n var width, height;\n\n // do some line skipping... this is faster than checking\n // every pixel and will be mostly still correct\n for (var x = 0; x < maxSize; x += 2) {\n for (var y = 0; y < maxSize; y += 2) {\n if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n\n width = maxX - minX;\n height = maxY - minY;\n\n var maxDesiredSize = 10;\n var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height);\n\n matrix = [\n scale, 0, 0, scale,\n -Math.round((width/2) + minX) * scale,\n -Math.round((height/2) + minY) * scale\n ];\n }\n\n return {\n type: 'path',\n path: path,\n matrix: matrix\n };\n }\n\n function shapeFromText(textData) {\n var text,\n scalar = 1,\n color = '#000000',\n // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n fontFamily = '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif';\n\n if (typeof textData === 'string') {\n text = textData;\n } else {\n text = textData.text;\n scalar = 'scalar' in textData ? textData.scalar : scalar;\n fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily;\n color = 'color' in textData ? textData.color : color;\n }\n\n // all other confetti are 10 pixels,\n // so this pixel size is the de-facto 100% scale confetti\n var fontSize = 10 * scalar;\n var font = '' + fontSize + 'px ' + fontFamily;\n\n var canvas = new OffscreenCanvas(fontSize, fontSize);\n var ctx = canvas.getContext('2d');\n\n ctx.font = font;\n var size = ctx.measureText(text);\n var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft);\n var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent);\n\n var padding = 2;\n var x = size.actualBoundingBoxLeft + padding;\n var y = size.actualBoundingBoxAscent + padding;\n width += padding + padding;\n height += padding + padding;\n\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n ctx.font = font;\n ctx.fillStyle = color;\n\n ctx.fillText(text, x, y);\n\n var scale = 1 / scalar;\n\n return {\n type: 'bitmap',\n // TODO these probably need to be transfered for workers\n bitmap: canvas.transferToImageBitmap(),\n matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2]\n };\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n module.exports.shapeFromPath = shapeFromPath;\n module.exports.shapeFromText = shapeFromText;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","import confetti from 'canvas-confetti';\nimport { useAtomValue } from 'jotai';\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport Alert from 'src/components/common/modal/alert/alert';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { useAnalytics } from '@features/Analytics';\nimport { ContactFormModal } from '@features/Paywall/components/contact-form-modal';\nimport { stripeWasPaymentTriedAtom, userAtom } from '@features/Stripe/atoms';\nimport { FormattedMessage } from '@features/intl';\nimport CheckMark from '../../../../assets/images/payment/check-icon.svg';\nimport CopyIcon from '../../../../assets/images/payment/copy-icon.svg';\nimport InfoIcon from '../../../../assets/images/payment/info-icon.svg';\nimport PaymentSucceed from '../../../../assets/images/payment/payment-succeed.svg';\nimport styles from './modal.succeeded.module.scss';\nexport const StripeModalSucceeded = memo(() => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n const [showContactFormModal, setShowContactFormModal] = useState(false);\n const {\n accessCode\n } = useAtomValue(userAtom);\n const handleContactFormModalHide = useCallback(() => {\n setShowContactFormModal(false);\n }, []);\n const [clipboardState, setClipboardState] = useState({\n email: false,\n accessCode: false\n });\n const {\n email\n } = useAtomValue(userAtom);\n const {\n showCrossSailOffer,\n wasUpsellSailOfferShown\n } = useAtomValue(stripeWasPaymentTriedAtom);\n const handleCopyEmail = useCallback(async () => {\n navigator.clipboard.writeText(email).then(r => r);\n setClipboardState({\n email: true,\n accessCode: false\n });\n }, [email]);\n const handleCopyAccessCode = useCallback(async () => {\n navigator.clipboard.writeText(accessCode).then(r => r);\n setClipboardState({\n email: false,\n accessCode: true\n });\n }, [accessCode]);\n const downloadLink = useMemo(() => `https://faceyoga.onelink.me/8Suw/pckc2cay?deep_link_value=${email}&deep_link_sub1=${accessCode}`, [accessCode, email]);\n useEffect(() => {\n if (!showCrossSailOffer) {\n trackGoogleEvent({\n eventName: 'after_purchase_creds_open',\n options: {\n email: email\n }\n });\n }\n if (!showCrossSailOffer && wasUpsellSailOfferShown) {\n confetti({\n particleCount: 150,\n spread: 180,\n zIndex: 9999\n });\n }\n }, [email, showCrossSailOffer, trackGoogleEvent, wasUpsellSailOfferShown]);\n return } image={} description={} footer={
    \n

    \n \n \n \n }} />{' '}\n \n

    \n trackGoogleEvent({\n eventName: 'after_purchase_creds_download'\n })} rel=\"noreferrer\" href={downloadLink} className={styles.downloadButton}>\n \n \n

    \n \n \n {' '}\n {' '}\n {' '}\n {' '}\n setShowContactFormModal(true)}>\n \n \n

    \n
    }>\n
    \n

    \n \n  {email}\n {clipboardState.email ? : }\n

    \n
    \n

    \n \n  {accessCode}{' '}\n {clipboardState.accessCode ? : }\n

    \n
    \n
    \n {' '}\n \n \n \n
    \n \n
    ;\n});\nStripeModalSucceeded.displayName = 'StripeModalSucceeded';","import { useAtomValue } from 'jotai';\nimport dynamic from 'next/dynamic';\nimport { ComponentType, memo, useEffect } from 'react';\nimport { paymentMethodWithPersistence, premiumYearAllDataAtom, selectedPlanAtom, stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport { minimalActionTypes, minimalInitialModalState, stripeMinimalModalReducer } from '@features/Stripe/reducers/modal';\nimport { StripeModalSucceeded } from '@features/Stripe/widgets/modal-succeeded';\nimport { useReducerWithStorage } from 'src/utils/hooks';\nimport { UpsellFallbackModal } from '@features/Stripe/widgets/upsell-fallback-modal';\nimport { useFeatures } from '@features/FeatureToggle';\nconst LimitedUpsell = dynamic(() => import('@features/Upsell').then(mod => mod.LimitedUpsell));\nconst ModalUpsell = dynamic(() => import('@features/Upsell').then(mod => mod.ModalUpsell));\nconst PremiumInfoStaticAlert = dynamic(() => import('@features/Upsell').then(mod => mod.PremiumInfoStaticAlert));\nconst UpsellCommitmentHard = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellCommitmentHard));\nconst UpsellExtraDiscountPremium = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellExtraDiscountPremium));\nconst UpsellExtraYearlyDiscountPremium = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellExtraYearlyDiscountPremium));\nconst UpsellPremium = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellPremium), {\n loading: () => \n});\nconst UpsellScanner = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellScanner));\nconst UpsellYearlyPremium = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellYearlyPremium));\nconst UpsellAcademia = dynamic(() => import('@features/Upsell').then(mod => mod.UpsellAcademia));\ntype UpsellModalsProps = {\n LIMITED_UPSELL: UpsellSharedModalProps;\n MODAL_UPSELL: UpsellSharedModalProps;\n PREMIUM_INFO_STATIC_ALERT: UpsellSharedModalProps;\n UPSELL_SCANNER: UpsellSharedModalProps;\n UPSELL_COMMITMENT_HARD: UpsellSharedModalProps;\n UPSELL_EXTRA_DISCOUNT_PREMIUM: UpsellSharedModalProps;\n UPSELL_EXTRA_YEARLY_DISCOUNT_PREMIUM: UpsellSharedModalProps;\n UPSELL_PREMIUM: UpsellSharedModalProps;\n UPSELL_YEARLY_PREMIUM: UpsellSharedModalProps;\n UPSELL_ACADEMIA: UpsellSharedModalProps;\n SUCCEED: UpsellSharedModalProps;\n};\nexport type UpsellSharedModalProps = {\n onNext: (nextModalId: UpsellModalComponentKey) => void;\n onClose: () => void;\n};\nconst upsellModalComponents: { [K in keyof UpsellModalsProps]: ComponentType } = {\n LIMITED_UPSELL: LimitedUpsell,\n MODAL_UPSELL: ModalUpsell,\n PREMIUM_INFO_STATIC_ALERT: PremiumInfoStaticAlert,\n UPSELL_SCANNER: UpsellScanner,\n UPSELL_COMMITMENT_HARD: UpsellCommitmentHard,\n UPSELL_EXTRA_DISCOUNT_PREMIUM: UpsellExtraDiscountPremium,\n UPSELL_EXTRA_YEARLY_DISCOUNT_PREMIUM: UpsellExtraYearlyDiscountPremium,\n UPSELL_PREMIUM: UpsellPremium,\n UPSELL_YEARLY_PREMIUM: UpsellYearlyPremium,\n UPSELL_ACADEMIA: UpsellAcademia,\n SUCCEED: StripeModalSucceeded\n};\nexport type UpsellModalComponentKey = keyof typeof upsellModalComponents;\ntype TpModalRendererProps = {\n isUserPaid: boolean;\n isIntroOfferEnabled: boolean;\n isUserLoginedByWinback: boolean;\n waitUntilSecondPayment?: boolean;\n showFallback?: boolean;\n};\nconst determineInitialModal = ({\n isUserPaid,\n isIntroOfferEnabled,\n isUserLoginedByWinback,\n isPayedWithBraintree,\n wasShown,\n isNewUpsellsAvailable,\n isAcademiaAvailable,\n wasErrorModalWithOfferShown\n}: {\n isUserPaid: boolean;\n isIntroOfferEnabled: boolean;\n isUserLoginedByWinback: boolean;\n isPayedWithBraintree: boolean;\n wasShown: Record;\n isNewUpsellsAvailable: boolean;\n isAcademiaAvailable: boolean;\n wasErrorModalWithOfferShown: boolean;\n}): UpsellModalComponentKey | null => {\n if (isUserPaid && isUserLoginedByWinback || wasShown['SUCCEED'] || isUserPaid && wasErrorModalWithOfferShown) {\n return 'SUCCEED';\n }\n if (isUserPaid && isNewUpsellsAvailable && !isPayedWithBraintree && !isIntroOfferEnabled && !wasShown['UPSELL_PREMIUM']) {\n return 'UPSELL_PREMIUM';\n }\n if (isUserPaid && (isPayedWithBraintree || !isNewUpsellsAvailable) && !isIntroOfferEnabled && !wasShown['LIMITED_UPSELL']) {\n return 'LIMITED_UPSELL';\n }\n if (isUserPaid && isIntroOfferEnabled) {\n if (!isAcademiaAvailable && !wasShown['MODAL_UPSELL']) {\n return 'MODAL_UPSELL';\n }\n if (isAcademiaAvailable && !wasShown['UPSELL_ACADEMIA']) {\n return 'UPSELL_ACADEMIA';\n }\n }\n return null;\n};\nexport const ModalRenderer = memo(({\n isUserPaid,\n isIntroOfferEnabled,\n isUserLoginedByWinback,\n waitUntilSecondPayment,\n showFallback\n}: TpModalRendererProps) => {\n const [minimalModalState, minimalModalDispatch] = useReducerWithStorage(minimalInitialModalState, stripeMinimalModalReducer);\n const {\n currentModal\n } = minimalModalState;\n const paymentMethod = useAtomValue(paymentMethodWithPersistence);\n const {\n premiumDiscountPriceData,\n premiumPriceData\n } = useAtomValue(selectedPlanAtom);\n const {\n premiumYearDiscountData,\n premiumYearData\n } = useAtomValue(premiumYearAllDataAtom);\n const {\n wasErrorModalWithOfferShown\n } = useAtomValue(stripePaymentErrorAtom);\n const {\n academyUpsellFeature: isAcademiaAvailable\n } = useFeatures();\n const isAllNewUpsellsAvailable = !!premiumPriceData && premiumPriceData.fullPrice > 0 && !!premiumDiscountPriceData && premiumDiscountPriceData.fullPrice > 0 && premiumYearDiscountData.fullPrice > 0 && premiumYearData.fullPrice > 0;\n const isPayedWithBraintree = paymentMethod === 'paypal';\n useEffect(() => {\n const initialModal = determineInitialModal({\n isUserPaid,\n isIntroOfferEnabled,\n isUserLoginedByWinback,\n isPayedWithBraintree,\n wasShown: minimalModalState.wasShown || {},\n isNewUpsellsAvailable: isAllNewUpsellsAvailable,\n wasErrorModalWithOfferShown,\n isAcademiaAvailable\n });\n if (initialModal && !currentModal) {\n minimalModalDispatch({\n type: minimalActionTypes.SHOW_MODAL,\n payload: {\n modalId: initialModal\n }\n });\n }\n }, [isUserPaid, currentModal, isIntroOfferEnabled, isUserLoginedByWinback, isPayedWithBraintree, minimalModalState.wasShown, isAllNewUpsellsAvailable, minimalModalDispatch, wasErrorModalWithOfferShown, isAcademiaAvailable]);\n if (waitUntilSecondPayment) {\n return null;\n }\n if (showFallback && !currentModal) return ;\n if (!currentModal) return null;\n const ModalComponent = upsellModalComponents[currentModal];\n const modalProps = ({\n onNext: (nextModalId: UpsellModalComponentKey) => minimalModalDispatch({\n type: minimalActionTypes.SHOW_MODAL,\n payload: {\n modalId: nextModalId\n }\n }),\n onClose: () => minimalModalDispatch({\n payload: {\n modalId: null\n },\n type: minimalActionTypes.HIDE_MODAL\n })\n } as UpsellModalsProps[typeof currentModal]);\n return ;\n});","import PaymentLoader from 'src/assets/images/payment/payment-loader.svg';\nimport styles from './upsell-loader.module.scss';\nexport const UpsellLoader = () => ;","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","export { ResizeObserver } from '../ResizeObserver';\nexport { ResizeObserverEntry } from '../ResizeObserverEntry';\nexport { ResizeObserverSize } from '../ResizeObserverSize';\n","// src/hydration.ts\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const queries = client.getQueryCache().getAll().flatMap((query) => filterQuery(query) ? [dehydrateQuery(query)] : []);\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n meta: dehydratedMutation.meta\n },\n dehydratedMutation.state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta }) => {\n const query = queryCache.get(queryHash);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...dehydratedQueryState } = state;\n query.setState(dehydratedQueryState);\n }\n return;\n }\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n fetchStatus: \"idle\"\n }\n );\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { observer } from 'mobx-react-lite';\nimport { ReactNode, createContext, useEffect, useMemo } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nexport type ThemeContextType = {\n variant: string;\n};\nexport const ThemeContext = createContext({\n variant: 'variant16'\n});\nexport const ThemeProvider = observer(({\n children\n}: {\n children: ReactNode;\n}) => {\n const {\n authStore\n } = useStores();\n const {\n variant\n } = authStore;\n const value: ThemeContextType = useMemo(() => ({\n variant: variant ?? 'variant16'\n }), [variant]);\n useEffect(() => {\n document.body.dataset.theme = variant;\n }, [variant]);\n return {children};\n});","import { useContext } from 'react';\n\nimport { ThemeContext, ThemeContextType } from '@features/Theme/provider';\n\nexport const useTheme = (): ThemeContextType => useContext(ThemeContext);\n","export { ThemeProvider } from './provider';\nexport { useTheme } from './useTheme';\n","import React from 'react';\nimport Head from 'next/head';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nvar _excluded$z = [\"keyOverride\"],\n _excluded2$2 = [\"crossOrigin\"];\nvar defaults = {\n templateTitle: '',\n noindex: false,\n nofollow: false,\n norobots: false,\n defaultOpenGraphImageWidth: 0,\n defaultOpenGraphImageHeight: 0,\n defaultOpenGraphVideoWidth: 0,\n defaultOpenGraphVideoHeight: 0\n};\nvar buildOpenGraphMediaTags = function buildOpenGraphMediaTags(mediaType, media, _temp) {\n if (media === void 0) {\n media = [];\n }\n var _ref = _temp === void 0 ? {} : _temp,\n defaultWidth = _ref.defaultWidth,\n defaultHeight = _ref.defaultHeight;\n return media.reduce(function (tags, medium, index) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":0\" + index,\n property: \"og:\" + mediaType,\n content: medium.url\n }));\n if (medium.alt) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":alt0\" + index,\n property: \"og:\" + mediaType + \":alt\",\n content: medium.alt\n }));\n }\n if (medium.secureUrl) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":secure_url0\" + index,\n property: \"og:\" + mediaType + \":secure_url\",\n content: medium.secureUrl.toString()\n }));\n }\n if (medium.type) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":type0\" + index,\n property: \"og:\" + mediaType + \":type\",\n content: medium.type.toString()\n }));\n }\n if (medium.width) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":width0\" + index,\n property: \"og:\" + mediaType + \":width\",\n content: medium.width.toString()\n }));\n } else if (defaultWidth) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":width0\" + index,\n property: \"og:\" + mediaType + \":width\",\n content: defaultWidth.toString()\n }));\n }\n if (medium.height) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":height\" + index,\n property: \"og:\" + mediaType + \":height\",\n content: medium.height.toString()\n }));\n } else if (defaultHeight) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":height\" + index,\n property: \"og:\" + mediaType + \":height\",\n content: defaultHeight.toString()\n }));\n }\n return tags;\n }, []);\n};\nvar buildTags = function buildTags(config) {\n var _config$openGraph, _config$openGraph3, _config$additionalLin;\n var tagsToRender = [];\n if (config.titleTemplate) {\n defaults.templateTitle = config.titleTemplate;\n }\n var updatedTitle = '';\n if (config.title) {\n updatedTitle = config.title;\n if (defaults.templateTitle) {\n updatedTitle = defaults.templateTitle.replace(/%s/g, function () {\n return updatedTitle;\n });\n }\n } else if (config.defaultTitle) {\n updatedTitle = config.defaultTitle;\n }\n if (updatedTitle) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"title\", {\n key: \"title\"\n }, updatedTitle));\n }\n var noindex = config.noindex === undefined ? defaults.noindex || config.dangerouslySetAllPagesToNoIndex : config.noindex;\n var nofollow = config.nofollow === undefined ? defaults.nofollow || config.dangerouslySetAllPagesToNoFollow : config.nofollow;\n var norobots = config.norobots || defaults.norobots;\n var robotsParams = '';\n if (config.robotsProps) {\n var _config$robotsProps = config.robotsProps,\n nosnippet = _config$robotsProps.nosnippet,\n maxSnippet = _config$robotsProps.maxSnippet,\n maxImagePreview = _config$robotsProps.maxImagePreview,\n maxVideoPreview = _config$robotsProps.maxVideoPreview,\n noarchive = _config$robotsProps.noarchive,\n noimageindex = _config$robotsProps.noimageindex,\n notranslate = _config$robotsProps.notranslate,\n unavailableAfter = _config$robotsProps.unavailableAfter;\n robotsParams = \"\" + (nosnippet ? ',nosnippet' : '') + (maxSnippet ? \",max-snippet:\" + maxSnippet : '') + (maxImagePreview ? \",max-image-preview:\" + maxImagePreview : '') + (noarchive ? ',noarchive' : '') + (unavailableAfter ? \",unavailable_after:\" + unavailableAfter : '') + (noimageindex ? ',noimageindex' : '') + (maxVideoPreview ? \",max-video-preview:\" + maxVideoPreview : '') + (notranslate ? ',notranslate' : '');\n }\n if (config.norobots) {\n defaults.norobots = true;\n }\n if (noindex || nofollow) {\n if (config.dangerouslySetAllPagesToNoIndex) {\n defaults.noindex = true;\n }\n if (config.dangerouslySetAllPagesToNoFollow) {\n defaults.nofollow = true;\n }\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"robots\",\n name: \"robots\",\n content: (noindex ? 'noindex' : 'index') + \",\" + (nofollow ? 'nofollow' : 'follow') + robotsParams\n }));\n } else if (!norobots || robotsParams) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"robots\",\n name: \"robots\",\n content: \"index,follow\" + robotsParams\n }));\n }\n if (config.description) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"description\",\n name: \"description\",\n content: config.description\n }));\n }\n if (config.themeColor) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"theme-color\",\n name: \"theme-color\",\n content: config.themeColor\n }));\n }\n if (config.mobileAlternate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n key: \"mobileAlternate\",\n media: config.mobileAlternate.media,\n href: config.mobileAlternate.href\n }));\n }\n if (config.languageAlternates && config.languageAlternates.length > 0) {\n config.languageAlternates.forEach(function (languageAlternate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n key: \"languageAlternate-\" + languageAlternate.hrefLang,\n hrefLang: languageAlternate.hrefLang,\n href: languageAlternate.href\n }));\n });\n }\n if (config.twitter) {\n if (config.twitter.cardType) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:card\",\n name: \"twitter:card\",\n content: config.twitter.cardType\n }));\n }\n if (config.twitter.site) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:site\",\n name: \"twitter:site\",\n content: config.twitter.site\n }));\n }\n if (config.twitter.handle) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:creator\",\n name: \"twitter:creator\",\n content: config.twitter.handle\n }));\n }\n }\n if (config.facebook) {\n if (config.facebook.appId) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"fb:app_id\",\n property: \"fb:app_id\",\n content: config.facebook.appId\n }));\n }\n }\n if ((_config$openGraph = config.openGraph) != null && _config$openGraph.title || updatedTitle) {\n var _config$openGraph2;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:title\",\n property: \"og:title\",\n content: ((_config$openGraph2 = config.openGraph) == null ? void 0 : _config$openGraph2.title) || updatedTitle\n }));\n }\n if ((_config$openGraph3 = config.openGraph) != null && _config$openGraph3.description || config.description) {\n var _config$openGraph4;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:description\",\n property: \"og:description\",\n content: ((_config$openGraph4 = config.openGraph) == null ? void 0 : _config$openGraph4.description) || config.description\n }));\n }\n if (config.openGraph) {\n if (config.openGraph.url || config.canonical) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:url\",\n property: \"og:url\",\n content: config.openGraph.url || config.canonical\n }));\n }\n if (config.openGraph.type) {\n var type = config.openGraph.type.toLowerCase();\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:type\",\n property: \"og:type\",\n content: type\n }));\n if (type === 'profile' && config.openGraph.profile) {\n if (config.openGraph.profile.firstName) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:first_name\",\n property: \"profile:first_name\",\n content: config.openGraph.profile.firstName\n }));\n }\n if (config.openGraph.profile.lastName) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:last_name\",\n property: \"profile:last_name\",\n content: config.openGraph.profile.lastName\n }));\n }\n if (config.openGraph.profile.username) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:username\",\n property: \"profile:username\",\n content: config.openGraph.profile.username\n }));\n }\n if (config.openGraph.profile.gender) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:gender\",\n property: \"profile:gender\",\n content: config.openGraph.profile.gender\n }));\n }\n } else if (type === 'book' && config.openGraph.book) {\n if (config.openGraph.book.authors && config.openGraph.book.authors.length) {\n config.openGraph.book.authors.forEach(function (author, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:author:0\" + index,\n property: \"book:author\",\n content: author\n }));\n });\n }\n if (config.openGraph.book.isbn) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:isbn\",\n property: \"book:isbn\",\n content: config.openGraph.book.isbn\n }));\n }\n if (config.openGraph.book.releaseDate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:release_date\",\n property: \"book:release_date\",\n content: config.openGraph.book.releaseDate\n }));\n }\n if (config.openGraph.book.tags && config.openGraph.book.tags.length) {\n config.openGraph.book.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:tag:0\" + index,\n property: \"book:tag\",\n content: tag\n }));\n });\n }\n } else if (type === 'article' && config.openGraph.article) {\n if (config.openGraph.article.publishedTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:published_time\",\n property: \"article:published_time\",\n content: config.openGraph.article.publishedTime\n }));\n }\n if (config.openGraph.article.modifiedTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:modified_time\",\n property: \"article:modified_time\",\n content: config.openGraph.article.modifiedTime\n }));\n }\n if (config.openGraph.article.expirationTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:expiration_time\",\n property: \"article:expiration_time\",\n content: config.openGraph.article.expirationTime\n }));\n }\n if (config.openGraph.article.authors && config.openGraph.article.authors.length) {\n config.openGraph.article.authors.forEach(function (author, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:author:0\" + index,\n property: \"article:author\",\n content: author\n }));\n });\n }\n if (config.openGraph.article.section) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:section\",\n property: \"article:section\",\n content: config.openGraph.article.section\n }));\n }\n if (config.openGraph.article.tags && config.openGraph.article.tags.length) {\n config.openGraph.article.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:tag:0\" + index,\n property: \"article:tag\",\n content: tag\n }));\n });\n }\n } else if ((type === 'video.movie' || type === 'video.episode' || type === 'video.tv_show' || type === 'video.other') && config.openGraph.video) {\n if (config.openGraph.video.actors && config.openGraph.video.actors.length) {\n config.openGraph.video.actors.forEach(function (actor, index) {\n if (actor.profile) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:actor:0\" + index,\n property: \"video:actor\",\n content: actor.profile\n }));\n }\n if (actor.role) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:actor:role:0\" + index,\n property: \"video:actor:role\",\n content: actor.role\n }));\n }\n });\n }\n if (config.openGraph.video.directors && config.openGraph.video.directors.length) {\n config.openGraph.video.directors.forEach(function (director, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:director:0\" + index,\n property: \"video:director\",\n content: director\n }));\n });\n }\n if (config.openGraph.video.writers && config.openGraph.video.writers.length) {\n config.openGraph.video.writers.forEach(function (writer, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:writer:0\" + index,\n property: \"video:writer\",\n content: writer\n }));\n });\n }\n if (config.openGraph.video.duration) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:duration\",\n property: \"video:duration\",\n content: config.openGraph.video.duration.toString()\n }));\n }\n if (config.openGraph.video.releaseDate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:release_date\",\n property: \"video:release_date\",\n content: config.openGraph.video.releaseDate\n }));\n }\n if (config.openGraph.video.tags && config.openGraph.video.tags.length) {\n config.openGraph.video.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:tag:0\" + index,\n property: \"video:tag\",\n content: tag\n }));\n });\n }\n if (config.openGraph.video.series) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:series\",\n property: \"video:series\",\n content: config.openGraph.video.series\n }));\n }\n }\n }\n // images\n if (config.defaultOpenGraphImageWidth) {\n defaults.defaultOpenGraphImageWidth = config.defaultOpenGraphImageWidth;\n }\n if (config.defaultOpenGraphImageHeight) {\n defaults.defaultOpenGraphImageHeight = config.defaultOpenGraphImageHeight;\n }\n if (config.openGraph.images && config.openGraph.images.length) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('image', config.openGraph.images, {\n defaultWidth: defaults.defaultOpenGraphImageWidth,\n defaultHeight: defaults.defaultOpenGraphImageHeight\n }));\n }\n // videos\n if (config.defaultOpenGraphVideoWidth) {\n defaults.defaultOpenGraphVideoWidth = config.defaultOpenGraphVideoWidth;\n }\n if (config.defaultOpenGraphVideoHeight) {\n defaults.defaultOpenGraphVideoHeight = config.defaultOpenGraphVideoHeight;\n }\n if (config.openGraph.videos && config.openGraph.videos.length) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('video', config.openGraph.videos, {\n defaultWidth: defaults.defaultOpenGraphVideoWidth,\n defaultHeight: defaults.defaultOpenGraphVideoHeight\n }));\n }\n // audio\n if (config.openGraph.audio) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('audio', config.openGraph.audio));\n }\n if (config.openGraph.locale) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:locale\",\n property: \"og:locale\",\n content: config.openGraph.locale\n }));\n }\n if (config.openGraph.siteName || config.openGraph.site_name) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:site_name\",\n property: \"og:site_name\",\n content: config.openGraph.siteName || config.openGraph.site_name\n }));\n }\n }\n if (config.canonical) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"canonical\",\n href: config.canonical,\n key: \"canonical\"\n }));\n }\n if (config.additionalMetaTags && config.additionalMetaTags.length > 0) {\n config.additionalMetaTags.forEach(function (_ref2) {\n var _ref3, _ref4;\n var keyOverride = _ref2.keyOverride,\n tag = _objectWithoutPropertiesLoose(_ref2, _excluded$z);\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", _extends({\n key: \"meta:\" + ((_ref3 = (_ref4 = keyOverride != null ? keyOverride : tag.name) != null ? _ref4 : tag.property) != null ? _ref3 : tag.httpEquiv)\n }, tag)));\n });\n }\n if ((_config$additionalLin = config.additionalLinkTags) != null && _config$additionalLin.length) {\n config.additionalLinkTags.forEach(function (tag) {\n var _rest$keyOverride;\n var tagCrossOrigin = tag.crossOrigin,\n rest = _objectWithoutPropertiesLoose(tag, _excluded2$2);\n var crossOrigin = tagCrossOrigin === 'anonymous' || tagCrossOrigin === 'use-credentials' || tagCrossOrigin === '' ? tagCrossOrigin : undefined;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", _extends({\n key: \"link\" + ((_rest$keyOverride = rest.keyOverride) != null ? _rest$keyOverride : rest.href) + rest.rel\n }, rest, {\n crossOrigin: crossOrigin\n })));\n });\n }\n return tagsToRender;\n};\n\nvar WithHead = function WithHead(props) {\n return /*#__PURE__*/React.createElement(Head, null, buildTags(props));\n};\n\nvar DefaultSeo = function DefaultSeo(_ref) {\n var title = _ref.title,\n titleTemplate = _ref.titleTemplate,\n defaultTitle = _ref.defaultTitle,\n themeColor = _ref.themeColor,\n _ref$dangerouslySetAl = _ref.dangerouslySetAllPagesToNoIndex,\n dangerouslySetAllPagesToNoIndex = _ref$dangerouslySetAl === void 0 ? false : _ref$dangerouslySetAl,\n _ref$dangerouslySetAl2 = _ref.dangerouslySetAllPagesToNoFollow,\n dangerouslySetAllPagesToNoFollow = _ref$dangerouslySetAl2 === void 0 ? false : _ref$dangerouslySetAl2,\n description = _ref.description,\n canonical = _ref.canonical,\n facebook = _ref.facebook,\n openGraph = _ref.openGraph,\n additionalMetaTags = _ref.additionalMetaTags,\n twitter = _ref.twitter,\n defaultOpenGraphImageWidth = _ref.defaultOpenGraphImageWidth,\n defaultOpenGraphImageHeight = _ref.defaultOpenGraphImageHeight,\n defaultOpenGraphVideoWidth = _ref.defaultOpenGraphVideoWidth,\n defaultOpenGraphVideoHeight = _ref.defaultOpenGraphVideoHeight,\n mobileAlternate = _ref.mobileAlternate,\n languageAlternates = _ref.languageAlternates,\n additionalLinkTags = _ref.additionalLinkTags,\n robotsProps = _ref.robotsProps,\n norobots = _ref.norobots;\n return /*#__PURE__*/React.createElement(WithHead, {\n title: title,\n titleTemplate: titleTemplate,\n defaultTitle: defaultTitle,\n themeColor: themeColor,\n dangerouslySetAllPagesToNoIndex: dangerouslySetAllPagesToNoIndex,\n dangerouslySetAllPagesToNoFollow: dangerouslySetAllPagesToNoFollow,\n description: description,\n canonical: canonical,\n facebook: facebook,\n openGraph: openGraph,\n additionalMetaTags: additionalMetaTags,\n twitter: twitter,\n defaultOpenGraphImageWidth: defaultOpenGraphImageWidth,\n defaultOpenGraphImageHeight: defaultOpenGraphImageHeight,\n defaultOpenGraphVideoWidth: defaultOpenGraphVideoWidth,\n defaultOpenGraphVideoHeight: defaultOpenGraphVideoHeight,\n mobileAlternate: mobileAlternate,\n languageAlternates: languageAlternates,\n additionalLinkTags: additionalLinkTags,\n robotsProps: robotsProps,\n norobots: norobots\n });\n};\n\nvar NextSeo = function NextSeo(_ref) {\n var title = _ref.title,\n themeColor = _ref.themeColor,\n noindex = _ref.noindex,\n nofollow = _ref.nofollow,\n robotsProps = _ref.robotsProps,\n description = _ref.description,\n canonical = _ref.canonical,\n openGraph = _ref.openGraph,\n facebook = _ref.facebook,\n twitter = _ref.twitter,\n additionalMetaTags = _ref.additionalMetaTags,\n titleTemplate = _ref.titleTemplate,\n defaultTitle = _ref.defaultTitle,\n mobileAlternate = _ref.mobileAlternate,\n languageAlternates = _ref.languageAlternates,\n additionalLinkTags = _ref.additionalLinkTags;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WithHead, {\n title: title,\n themeColor: themeColor,\n noindex: noindex,\n nofollow: nofollow,\n robotsProps: robotsProps,\n description: description,\n canonical: canonical,\n facebook: facebook,\n openGraph: openGraph,\n additionalMetaTags: additionalMetaTags,\n twitter: twitter,\n titleTemplate: titleTemplate,\n defaultTitle: defaultTitle,\n mobileAlternate: mobileAlternate,\n languageAlternates: languageAlternates,\n additionalLinkTags: additionalLinkTags\n }));\n};\n\nvar toJson = function toJson(type, jsonld) {\n var data = jsonld;\n if (Array.isArray(data) && data.length === 1) {\n data = _extends({}, jsonld[0]);\n }\n var jsonLdObject = Array.isArray(data) ? data.map(function (item) {\n return formatObjectForSchema(type, item);\n }) : formatObjectForSchema(type, data);\n return {\n __html: JSON.stringify(jsonLdObject, safeJsonLdReplacer)\n };\n};\nvar formatObjectForSchema = function formatObjectForSchema(type, jsonld) {\n var _jsonld$id = jsonld.id,\n id = _jsonld$id === void 0 ? undefined : _jsonld$id;\n var updated = _extends({}, id ? {\n '@id': jsonld.id\n } : {}, jsonld);\n delete updated.id;\n return _extends({\n '@context': 'https://schema.org',\n '@type': type\n }, updated);\n};\nvar ESCAPE_ENTITIES = Object.freeze({\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n});\nvar ESCAPE_REGEX = new RegExp(\"[\" + Object.keys(ESCAPE_ENTITIES).join('') + \"]\", 'g');\nvar ESCAPE_REPLACER = function ESCAPE_REPLACER(t) {\n return ESCAPE_ENTITIES[t];\n};\n/**\n * A replacer for JSON.stringify to strip JSON-LD of illegal HTML entities\n * per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n */\nvar safeJsonLdReplacer = function () {\n // Replace per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n // Solution from https://stackoverflow.com/a/5499821/864313\n return function (_, value) {\n switch (typeof value) {\n case 'object':\n // Omit null values.\n if (value === null) {\n return undefined;\n }\n return value;\n // JSON.stringify will recursively call replacer.\n case 'number':\n case 'boolean':\n case 'bigint':\n return value;\n // These values are not risky.\n case 'string':\n return value.replace(ESCAPE_REGEX, ESCAPE_REPLACER);\n default:\n {\n // JSON.stringify will remove this element.\n return undefined;\n }\n }\n };\n}();\n\nvar _excluded$y = [\"type\", \"keyOverride\", \"scriptKey\", \"scriptId\", \"dataArray\", \"useAppDir\"];\nfunction JsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Thing' : _ref$type,\n keyOverride = _ref.keyOverride,\n scriptKey = _ref.scriptKey,\n _ref$scriptId = _ref.scriptId,\n scriptId = _ref$scriptId === void 0 ? undefined : _ref$scriptId,\n dataArray = _ref.dataArray,\n _ref$useAppDir = _ref.useAppDir,\n useAppDir = _ref$useAppDir === void 0 ? false : _ref$useAppDir,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$y);\n var JsonLdScript = function JsonLdScript() {\n return /*#__PURE__*/React.createElement(\"script\", {\n type: \"application/ld+json\",\n id: scriptId,\n \"data-testid\": scriptId,\n dangerouslySetInnerHTML: toJson(type, dataArray === undefined ? _extends({}, rest) : dataArray),\n key: \"jsonld-\" + scriptKey + (keyOverride ? \"-\" + keyOverride : '')\n });\n };\n if (useAppDir) {\n return /*#__PURE__*/React.createElement(JsonLdScript, null);\n }\n return /*#__PURE__*/React.createElement(Head, null, JsonLdScript());\n}\n\n/**\n * Generate author information\n * @param author\n * @returns\n */\nfunction generateAuthorInfo(author) {\n if (typeof author === 'string') {\n return {\n '@type': 'Person',\n name: author\n };\n } else if (!!author.name) {\n var _author$type;\n return {\n '@type': (_author$type = author == null ? void 0 : author.type) != null ? _author$type : 'Person',\n name: author.name,\n url: author == null ? void 0 : author.url\n };\n }\n return;\n}\nfunction setAuthor(author) {\n if (Array.isArray(author)) {\n return author.map(function (item) {\n return generateAuthorInfo(item);\n }).filter(function (item) {\n return !!item;\n });\n } else if (author) {\n return generateAuthorInfo(author);\n }\n return;\n}\n\nfunction setImage(image) {\n if (image) {\n return {\n '@type': 'ImageObject',\n url: image\n };\n }\n return undefined;\n}\n\nfunction setPublisher(publisherName, publisherLogo) {\n if (!publisherName) {\n return undefined;\n }\n return {\n '@type': 'Organization',\n name: publisherName,\n logo: setImage(publisherLogo)\n };\n}\n\nfunction setReviewRating(rating) {\n if (rating) {\n return _extends({}, rating, {\n '@type': 'Rating'\n });\n }\n return undefined;\n}\n\nvar _excluded$x = [\"reviewRating\", \"author\", \"publisher\"];\nfunction setReviews(reviews) {\n function mapReview(_ref) {\n var reviewRating = _ref.reviewRating,\n author = _ref.author,\n publisher = _ref.publisher,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$x);\n return _extends({}, rest, {\n '@type': 'Review'\n }, author && {\n author: setAuthor(author)\n }, reviewRating && {\n reviewRating: setReviewRating(reviewRating)\n }, publisher && {\n publisher: setPublisher(publisher.name)\n });\n }\n if (Array.isArray(reviews)) {\n return reviews.map(mapReview);\n } else if (reviews) {\n return mapReview(reviews);\n }\n return undefined;\n}\n\nfunction setNutrition(calories) {\n if (calories) {\n return {\n '@type': 'NutritionInformation',\n calories: calories + \" calories\"\n };\n }\n return undefined;\n}\n\nfunction setAggregateRating(aggregateRating) {\n if (aggregateRating) {\n return {\n '@type': 'AggregateRating',\n ratingCount: aggregateRating.ratingCount,\n reviewCount: aggregateRating.reviewCount,\n bestRating: aggregateRating.bestRating,\n ratingValue: aggregateRating.ratingValue,\n worstRating: aggregateRating.worstRating\n };\n }\n return undefined;\n}\n\nfunction setClip(clips) {\n function mapClip(clip) {\n return _extends({}, clip, {\n '@type': 'Clip'\n });\n }\n if (Array.isArray(clips)) {\n return clips.map(mapClip);\n } else if (clips) {\n return mapClip(clips);\n }\n return undefined;\n}\n\nfunction setInteractionStatistic(watchCount) {\n if (watchCount) {\n return {\n '@type': 'InteractionCounter',\n interactionType: 'https://schema.org/WatchAction',\n userInteractionCount: watchCount\n };\n }\n return undefined;\n}\n\nfunction setBroadcastEvent(publication) {\n function mapBroadcastEvent(publication) {\n return _extends({}, publication, {\n '@type': 'BroadcastEvent'\n });\n }\n if (publication) {\n if (Array.isArray(publication)) {\n return publication.map(mapBroadcastEvent);\n }\n return mapBroadcastEvent(publication);\n }\n return undefined;\n}\n\nvar _excluded$w = [\"thumbnailUrls\", \"hasPart\", \"watchCount\", \"publication\"];\nfunction setVideo(video, setContext) {\n if (setContext === void 0) {\n setContext = false;\n }\n function mapVideo(_ref, context) {\n var thumbnailUrls = _ref.thumbnailUrls,\n hasPart = _ref.hasPart,\n watchCount = _ref.watchCount,\n publication = _ref.publication,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$w);\n return _extends({}, rest, {\n '@type': 'VideoObject'\n }, context && {\n '@context': 'https://schema.org'\n }, {\n thumbnailUrl: thumbnailUrls,\n hasPart: setClip(hasPart),\n interactionStatistic: setInteractionStatistic(watchCount),\n publication: setBroadcastEvent(publication)\n });\n }\n if (video) {\n return mapVideo(video, setContext);\n }\n return undefined;\n}\n\nfunction setInstruction(instruction) {\n if (instruction) {\n return _extends({}, instruction, {\n '@type': 'HowToStep'\n });\n }\n return undefined;\n}\n\nvar _excluded$v = [\"type\", \"keyOverride\", \"ofType\", \"data\"],\n _excluded2$1 = [\"authorName\", \"images\", \"yields\", \"category\", \"calories\", \"aggregateRating\", \"video\", \"ingredients\", \"instructions\", \"cuisine\"];\nfunction CarouselJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Carousel' : _ref$type,\n keyOverride = _ref.keyOverride,\n ofType = _ref.ofType,\n data = _ref.data,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$v);\n function generateList(data, ofType) {\n switch (ofType) {\n case 'default':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n url: item.url\n };\n });\n case 'course':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: {\n '@context': 'https://schema.org',\n '@type': 'Course',\n url: item.url,\n name: item.courseName,\n description: item.description,\n provider: {\n '@type': 'Organization',\n name: item.providerName,\n sameAs: item.providerUrl\n }\n }\n };\n });\n case 'movie':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: {\n '@context': 'https://schema.org',\n '@type': 'Movie',\n name: item.name,\n url: item.url,\n image: item.image,\n dateCreated: item.dateCreated,\n director: item.director ? Array.isArray(item.director) ? item.director.map(function (director) {\n return {\n '@type': 'Person',\n name: director.name\n };\n }) : {\n '@type': 'Person',\n name: item.director.name\n } : undefined,\n review: setReviews(item.review)\n }\n };\n });\n case 'recipe':\n return data.map(function (_ref2, index) {\n var authorName = _ref2.authorName,\n images = _ref2.images,\n yields = _ref2.yields,\n category = _ref2.category,\n calories = _ref2.calories,\n aggregateRating = _ref2.aggregateRating,\n video = _ref2.video,\n ingredients = _ref2.ingredients,\n instructions = _ref2.instructions,\n cuisine = _ref2.cuisine,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: _extends({\n '@context': 'https://schema.org',\n '@type': 'Recipe'\n }, rest, {\n author: setAuthor(authorName),\n image: images,\n recipeYield: yields,\n recipeCategory: category,\n recipeCuisine: cuisine,\n nutrition: setNutrition(calories),\n aggregateRating: setAggregateRating(aggregateRating),\n video: setVideo(video),\n recipeIngredient: ingredients,\n recipeInstructions: instructions.map(setInstruction)\n })\n };\n });\n case 'custom':\n return data.map(function (item, index) {\n var _item$position;\n return {\n '@type': 'ListItem',\n position: (_item$position = item.position) != null ? _item$position : index + 1,\n item: {\n '@type': item.type,\n name: item.name\n }\n };\n });\n }\n }\n var jsonLdData = _extends({\n '@type': 'ItemList'\n }, rest, {\n itemListElement: generateList(data, ofType)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, jsonLdData, {\n scriptKey: \"Carousel\"\n }));\n}\n\nvar _excluded$u = [\"type\", \"keyOverride\", \"url\", \"title\", \"images\", \"section\", \"dateCreated\", \"datePublished\", \"dateModified\", \"authorName\", \"authorType\", \"publisherName\", \"publisherLogo\", \"body\", \"isAccessibleForFree\"];\nfunction NewsArticleJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'NewsArticle' : _ref$type,\n keyOverride = _ref.keyOverride,\n url = _ref.url,\n title = _ref.title,\n images = _ref.images,\n section = _ref.section,\n dateCreated = _ref.dateCreated,\n datePublished = _ref.datePublished,\n dateModified = _ref.dateModified,\n authorName = _ref.authorName,\n publisherName = _ref.publisherName,\n publisherLogo = _ref.publisherLogo,\n body = _ref.body,\n isAccessibleForFree = _ref.isAccessibleForFree,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$u);\n var data = _extends({}, rest, {\n mainEntityOfPage: {\n '@type': 'WebPage',\n '@id': url\n },\n headline: title,\n image: images,\n articleSection: section,\n dateCreated: dateCreated || datePublished,\n datePublished: datePublished,\n dateModified: dateModified || datePublished,\n author: setAuthor(authorName),\n publisher: setPublisher(publisherName, publisherLogo),\n articleBody: body,\n isAccessibleForFree: isAccessibleForFree\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"NewsArticle\"\n }));\n}\n\nvar _excluded$t = [\"type\", \"keyOverride\", \"baseSalary\", \"hiringOrganization\", \"applicantLocationRequirements\", \"experienceRequirements\", \"jobLocation\"];\nfunction JobPostingJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'JobPosting' : _ref$type,\n keyOverride = _ref.keyOverride,\n baseSalary = _ref.baseSalary,\n hiringOrganization = _ref.hiringOrganization,\n applicantLocationRequirements = _ref.applicantLocationRequirements,\n experienceRequirements = _ref.experienceRequirements,\n jobLocation = _ref.jobLocation,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$t);\n function setBaseSalary(baseSalary) {\n if (baseSalary) {\n return {\n '@type': 'MonetaryAmount',\n currency: baseSalary.currency,\n value: _extends({\n '@type': 'QuantitativeValue',\n unitText: baseSalary.unitText\n }, Array.isArray(baseSalary.value) ? {\n minValue: baseSalary.value[0],\n maxValue: baseSalary.value[1]\n } : {\n value: baseSalary.value\n })\n };\n }\n return undefined;\n }\n function setHiringOrganization(org) {\n if (org === 'confidential') {\n return 'confidential';\n }\n return {\n '@type': 'Organization',\n name: org.name,\n sameAs: org.sameAs,\n logo: org.logo\n };\n }\n function setJobLocation(location) {\n if (location) {\n return {\n '@type': 'Place',\n address: {\n '@type': 'PostalAddress',\n addressCountry: location.addressCountry,\n addressLocality: location.addressLocality,\n addressRegion: location.addressRegion,\n postalCode: location.postalCode,\n streetAddress: location.streetAddress\n }\n };\n }\n return undefined;\n }\n function setApplicantLocationRequirements(requirements) {\n if (requirements) {\n return {\n '@type': 'Country',\n name: requirements\n };\n }\n return undefined;\n }\n function setOccupationalExperienceRequirements(requirements) {\n if (requirements) {\n return {\n '@type': requirements['@type'] ? requirements['@type'] : 'OccupationalExperienceRequirements',\n monthsOfExperience: requirements.minimumMonthsOfExperience\n };\n }\n return undefined;\n }\n function setEducationalOccupationalCredential(requirements) {\n if (requirements) {\n return {\n '@type': requirements['@type'] ? requirements['@type'] : 'EducationalOccupationalCredential',\n credentialCategory: requirements.credentialCategory\n };\n }\n return undefined;\n }\n var data = _extends({}, rest, {\n baseSalary: setBaseSalary(baseSalary),\n hiringOrganization: setHiringOrganization(hiringOrganization),\n jobLocation: setJobLocation(jobLocation),\n applicantLocationRequirements: setApplicantLocationRequirements(applicantLocationRequirements),\n experienceRequirements: setOccupationalExperienceRequirements(experienceRequirements == null ? void 0 : experienceRequirements.occupational),\n educationRequirements: setEducationalOccupationalCredential(experienceRequirements == null ? void 0 : experienceRequirements.educational),\n experienceInPlaceOfEducation: experienceRequirements == null ? void 0 : experienceRequirements.experienceInPlaceOfEducation\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"JobPosting\"\n }));\n}\n\nfunction setAddress(address) {\n if (!address) return undefined;\n if (!Array.isArray(address)) return toPostalAddress(address);\n // If array of one address, replace with single address\n if (address.length === 1) return toPostalAddress(address[0]);\n // If array, return mapped array of PostalAddresses\n return address.map(toPostalAddress);\n}\nfunction toPostalAddress(address) {\n if (typeof address === 'string') return address;\n return _extends({\n '@type': 'PostalAddress'\n }, address);\n}\n\nfunction setGeo(geo) {\n if (geo) {\n return _extends({}, geo, {\n '@type': 'GeoCoordinates'\n });\n }\n return undefined;\n}\n\nfunction setAction(action) {\n if (action) {\n return {\n '@type': action.actionType,\n name: action.actionName,\n target: action.target\n };\n }\n return undefined;\n}\n\nfunction setGeoCircle(geoCircle) {\n if (geoCircle) {\n return {\n '@type': 'GeoCircle',\n geoMidpoint: {\n '@type': 'GeoCoordinates',\n latitude: geoCircle.geoMidpoint.latitude,\n longitude: geoCircle.geoMidpoint.longitude\n },\n geoRadius: geoCircle.geoRadius\n };\n }\n return undefined;\n}\n\nfunction setOffer(offer) {\n function setPriceSpecification(priceSpecification) {\n if (priceSpecification) {\n return {\n '@type': priceSpecification.type,\n priceCurrency: priceSpecification.priceCurrency,\n price: priceSpecification.price\n };\n }\n return undefined;\n }\n function setItemOffered(itemOffered) {\n if (itemOffered) {\n return _extends({}, itemOffered, {\n '@type': 'Service'\n });\n }\n return undefined;\n }\n if (offer) {\n return _extends({}, offer, {\n '@type': 'Offer',\n priceSpecification: setPriceSpecification(offer.priceSpecification),\n itemOffered: setItemOffered(offer.itemOffered)\n });\n }\n return undefined;\n}\n\nfunction setOpeningHours(openingHours) {\n if (openingHours) {\n return _extends({}, openingHours, {\n '@type': 'OpeningHoursSpecification'\n });\n }\n return undefined;\n}\n\nvar _excluded$s = [\"type\", \"keyOverride\", \"address\", \"geo\", \"rating\", \"review\", \"action\", \"areaServed\", \"makesOffer\", \"openingHours\", \"images\"];\nfunction LocalBusinessJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'LocalBusiness' : _ref$type,\n keyOverride = _ref.keyOverride,\n address = _ref.address,\n geo = _ref.geo,\n rating = _ref.rating,\n review = _ref.review,\n action = _ref.action,\n areaServed = _ref.areaServed,\n makesOffer = _ref.makesOffer,\n openingHours = _ref.openingHours,\n images = _ref.images,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$s);\n var data = _extends({}, rest, {\n image: images,\n address: setAddress(address),\n geo: setGeo(geo),\n aggregateRating: setAggregateRating(rating),\n review: setReviews(review),\n potentialAction: setAction(action),\n areaServed: areaServed && areaServed.map(setGeoCircle),\n makesOffer: makesOffer == null ? void 0 : makesOffer.map(setOffer),\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"LocalBusiness\"\n }));\n}\n\nvar _excluded$r = [\"type\", \"keyOverride\", \"mainEntity\"],\n _excluded2 = [\"upvoteCount\"];\nfunction QAPageJsonLd(_ref) {\n var _mainEntity$acceptedA;\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'QAPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n mainEntity = _ref.mainEntity,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$r);\n var data = _extends({}, rest, {\n mainEntity: _extends({}, mainEntity, {\n '@type': 'Question',\n author: setAuthor(mainEntity.author)\n }, mainEntity.acceptedAnswer && {\n acceptedAnswer: _extends({}, mainEntity.acceptedAnswer, {\n '@type': 'Answer',\n author: setAuthor((_mainEntity$acceptedA = mainEntity.acceptedAnswer) == null ? void 0 : _mainEntity$acceptedA.author)\n })\n }, mainEntity.suggestedAnswer && {\n suggestedAnswer: mainEntity.suggestedAnswer.map(function (_ref2) {\n var upvoteCount = _ref2.upvoteCount,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n return _extends({}, rest, {\n '@type': 'Answer',\n upvoteCount: upvoteCount || 0,\n author: setAuthor(rest.author)\n });\n })\n })\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"QAPage\"\n }));\n}\n\nfunction setItemListElements(items) {\n if (items && items.length) {\n return items.map(function (item) {\n return {\n '@type': 'ListItem',\n position: item.position,\n item: item.item,\n name: item.name\n };\n });\n }\n return undefined;\n}\n\nvar _excluded$q = [\"type\", \"keyOverride\", \"breadcrumb\"];\nfunction ProfilePageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'ProfilePage' : _ref$type,\n keyOverride = _ref.keyOverride,\n breadcrumb = _ref.breadcrumb,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$q);\n var data = _extends({}, rest, {\n breadcrumb: Array.isArray(breadcrumb) ? {\n '@type': 'BreadcrumbList',\n itemListElement: setItemListElements(breadcrumb)\n } : breadcrumb\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"ProfilePage\"\n }));\n}\n\nvar _excluded$p = [\"type\", \"keyOverride\", \"potentialActions\"];\nfunction SiteLinksSearchBoxJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'WebSite' : _ref$type,\n keyOverride = _ref.keyOverride,\n potentialActions = _ref.potentialActions,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$p);\n function setPotentialAction(action) {\n if (action) {\n var target = action.target,\n queryInput = action.queryInput;\n return {\n '@type': 'SearchAction',\n target: target + \"={\" + queryInput + \"}\",\n 'query-input': \"required name=\" + queryInput\n };\n }\n return undefined;\n }\n var data = _extends({}, rest, {\n potentialAction: potentialActions.map(setPotentialAction)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"jsonld-siteLinksSearchBox\"\n }));\n}\n\nvar _excluded$o = [\"type\", \"keyOverride\", \"authorName\", \"images\", \"yields\", \"category\", \"cuisine\", \"calories\", \"aggregateRating\", \"video\", \"ingredients\", \"instructions\"];\nfunction RecipeJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Recipe' : _ref$type,\n keyOverride = _ref.keyOverride,\n authorName = _ref.authorName,\n images = _ref.images,\n yields = _ref.yields,\n category = _ref.category,\n cuisine = _ref.cuisine,\n calories = _ref.calories,\n aggregateRating = _ref.aggregateRating,\n video = _ref.video,\n ingredients = _ref.ingredients,\n instructions = _ref.instructions,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$o);\n var data = _extends({}, rest, {\n author: setAuthor(authorName),\n image: images,\n recipeYield: yields,\n recipeCategory: category,\n recipeCuisine: cuisine,\n nutrition: setNutrition(calories),\n aggregateRating: setAggregateRating(aggregateRating),\n video: setVideo(video),\n recipeIngredient: ingredients,\n recipeInstructions: instructions ? instructions.map(setInstruction) : undefined\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"recipe\"\n }));\n}\n\nfunction setLocation(location) {\n if (!location) {\n return undefined;\n }\n if (typeof location === 'string') {\n return location;\n }\n if ('url' in location) {\n return setVirtualLocation(location);\n } else {\n return setPlace(location);\n }\n}\nfunction setVirtualLocation(location) {\n return _extends({}, location, {\n '@type': 'VirtualLocation'\n });\n}\nfunction setPlace(location) {\n return _extends({}, location, {\n address: setAddress(location.address),\n '@type': 'Place'\n });\n}\n\nvar _excluded$n = [\"type\"];\nfunction setPerformer(performer) {\n if (performer) {\n var type = performer.type,\n restPerformer = _objectWithoutPropertiesLoose(performer, _excluded$n);\n return _extends({}, restPerformer, {\n '@type': type || 'PerformingGroup'\n });\n }\n return undefined;\n}\n\nvar _excluded$m = [\"seller\"];\nfunction setOffers(offers) {\n function mapOffer(_ref) {\n var seller = _ref.seller,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$m);\n return _extends({}, rest, {\n '@type': 'Offer'\n }, seller && {\n seller: {\n '@type': 'Organization',\n name: seller.name\n }\n });\n }\n if (Array.isArray(offers)) {\n return offers.map(mapOffer);\n } else if (offers) {\n return mapOffer(offers);\n }\n return undefined;\n}\n\nfunction setAggregateOffer(aggregateOffer) {\n if (aggregateOffer) {\n return {\n '@type': 'AggregateOffer',\n priceCurrency: aggregateOffer.priceCurrency,\n highPrice: aggregateOffer.highPrice,\n lowPrice: aggregateOffer.lowPrice,\n offerCount: aggregateOffer.offerCount,\n offers: setOffers(aggregateOffer.offers)\n };\n }\n return undefined;\n}\n\nvar _excluded$l = [\"type\"];\nfunction setOrganizer(organizer) {\n if (organizer) {\n var type = organizer.type,\n restOrganizer = _objectWithoutPropertiesLoose(organizer, _excluded$l);\n return _extends({}, restOrganizer, {\n '@type': type || 'Person'\n });\n }\n return undefined;\n}\n\nvar _excluded$k = [\"type\", \"keyOverride\", \"location\", \"images\", \"offers\", \"aggregateOffer\", \"performers\", \"organizer\", \"eventStatus\", \"eventAttendanceMode\"];\nfunction EventJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Event' : _ref$type,\n keyOverride = _ref.keyOverride,\n location = _ref.location,\n images = _ref.images,\n offers = _ref.offers,\n aggregateOffer = _ref.aggregateOffer,\n performers = _ref.performers,\n organizer = _ref.organizer,\n eventStatus = _ref.eventStatus,\n eventAttendanceMode = _ref.eventAttendanceMode,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$k);\n var data = _extends({}, rest, {\n location: setLocation(location),\n image: images,\n offers: offers ? setOffers(offers) : setAggregateOffer(aggregateOffer),\n performer: Array.isArray(performers) ? performers.map(setPerformer) : setPerformer(performers),\n organizer: Array.isArray(organizer) ? organizer.map(setOrganizer) : setOrganizer(organizer),\n eventStatus: eventStatus ? \"https://schema.org/\" + eventStatus : undefined,\n eventAttendanceMode: eventAttendanceMode ? \"https://schema.org/\" + eventAttendanceMode : undefined\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Event\"\n }));\n}\n\nfunction setContactPoint(contactPoint) {\n if (contactPoint) {\n return _extends({}, contactPoint, {\n '@type': 'ContactPoint'\n });\n }\n return undefined;\n}\n\nvar _excluded$j = [\"type\", \"keyOverride\", \"contactPoint\"];\nfunction CorporateContactJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n contactPoint = _ref.contactPoint,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$j);\n var data = _extends({}, rest, {\n contactPoint: contactPoint.map(setContactPoint)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"CorporateContact\"\n }));\n}\n\nfunction setCreativeWork(creativeWork) {\n if (creativeWork) {\n return _extends({}, creativeWork, {\n '@type': 'CreativeWork'\n });\n }\n return undefined;\n}\n\nvar _excluded$i = [\"type\", \"keyOverride\", \"hasPart\"];\nfunction CollectionPageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'CollectionPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n hasPart = _ref.hasPart,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$i);\n var data = _extends({}, rest, {\n hasPart: hasPart.map(setCreativeWork)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"CollectionPage\"\n }));\n}\n\nfunction setManufacturer(manufacturer) {\n if (manufacturer && (manufacturer.manufacturerName || manufacturer.manufacturerLogo)) {\n return {\n '@type': 'Organization',\n name: manufacturer.manufacturerName,\n logo: setImage(manufacturer.manufacturerLogo)\n };\n }\n return undefined;\n}\n\nfunction setBrand(brand) {\n if (brand) {\n return {\n '@type': 'Brand',\n name: brand\n };\n }\n return undefined;\n}\n\nvar _excluded$h = [\"type\", \"keyOverride\", \"images\", \"brand\", \"reviews\", \"aggregateRating\", \"manufacturerLogo\", \"manufacturerName\", \"offers\", \"aggregateOffer\", \"productName\"];\nfunction ProductJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Product' : _ref$type,\n keyOverride = _ref.keyOverride,\n images = _ref.images,\n brand = _ref.brand,\n reviews = _ref.reviews,\n aggregateRating = _ref.aggregateRating,\n manufacturerLogo = _ref.manufacturerLogo,\n manufacturerName = _ref.manufacturerName,\n offers = _ref.offers,\n aggregateOffer = _ref.aggregateOffer,\n productName = _ref.productName,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$h);\n var data = _extends({}, rest, {\n image: images,\n brand: setBrand(brand),\n review: setReviews(reviews),\n aggregateRating: setAggregateRating(aggregateRating),\n manufacturer: setManufacturer({\n manufacturerLogo: manufacturerLogo,\n manufacturerName: manufacturerName\n }),\n offers: offers ? setOffers(offers) : setAggregateOffer(aggregateOffer),\n name: productName\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Product\"\n }));\n}\n\nvar _excluded$g = [\"type\", \"keyOverride\", \"priceCurrency\", \"price\", \"aggregateRating\", \"review\", \"keywords\"];\nfunction SoftwareAppJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'SoftwareApplication' : _ref$type,\n keyOverride = _ref.keyOverride,\n priceCurrency = _ref.priceCurrency,\n price = _ref.price,\n aggregateRating = _ref.aggregateRating,\n review = _ref.review,\n keywords = _ref.keywords,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$g);\n var data = _extends({}, rest, {\n offers: {\n '@type': 'Offer',\n price: price,\n priceCurrency: priceCurrency\n },\n aggregateRating: setAggregateRating(aggregateRating),\n review: setReviews(review),\n keywords: keywords\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"SoftwareApp\"\n }));\n}\n\nvar _excluded$f = [\"type\", \"keyOverride\"];\nfunction VideoJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Video' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$f);\n var data = setVideo(rest, true);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Video\"\n }));\n}\n\nfunction setProducer(producer) {\n if (producer) {\n return {\n '@type': 'Organization',\n sameAs: producer.url,\n name: producer.name\n };\n }\n return undefined;\n}\n\nfunction setProvider(provider) {\n if (provider) {\n return {\n '@type': provider.type || 'Organization',\n name: provider.name,\n sameAs: provider.url\n };\n }\n return undefined;\n}\n\nvar _excluded$e = [\"type\", \"keyOverride\", \"aggregateRating\", \"trailer\", \"reviews\", \"image\", \"authorName\", \"provider\", \"producerName\", \"producerUrl\", \"offers\", \"operatingSystemName\", \"platformName\", \"translatorName\", \"languageName\", \"genreName\", \"publisherName\"];\nfunction VideoGameJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'VideoGame' : _ref$type,\n keyOverride = _ref.keyOverride,\n aggregateRating = _ref.aggregateRating,\n trailer = _ref.trailer,\n reviews = _ref.reviews,\n image = _ref.image,\n authorName = _ref.authorName,\n provider = _ref.provider,\n producerName = _ref.producerName,\n producerUrl = _ref.producerUrl,\n offers = _ref.offers,\n operatingSystemName = _ref.operatingSystemName,\n platformName = _ref.platformName,\n translatorName = _ref.translatorName,\n languageName = _ref.languageName,\n genreName = _ref.genreName,\n publisherName = _ref.publisherName,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$e);\n var data = _extends({}, rest, {\n aggregateRating: setAggregateRating(aggregateRating),\n trailer: setVideo(trailer),\n review: setReviews(reviews),\n image: setImage(image),\n author: setAuthor(authorName),\n provider: setProvider(provider),\n producer: setProducer({\n name: producerName,\n url: producerUrl\n }),\n offers: setOffers(offers),\n operatingSystem: operatingSystemName,\n gamePlatform: platformName,\n translator: translatorName,\n inLanguage: languageName,\n genre: genreName,\n publisher: publisherName\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"VideoGame\"\n }));\n}\n\nfunction setContactPoints(contactPoint) {\n if (contactPoint && contactPoint.length) {\n return contactPoint.map(function (contactPoint) {\n return _extends({\n '@type': 'ContactPoint'\n }, contactPoint);\n });\n }\n return undefined;\n}\n\nvar _excluded$d = [\"type\", \"keyOverride\", \"address\", \"contactPoints\", \"contactPoint\"];\nfunction OrganizationJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n address = _ref.address,\n contactPoints = _ref.contactPoints,\n contactPoint = _ref.contactPoint,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);\n var data = _extends({}, rest, {\n address: setAddress(address),\n contactPoint: setContactPoints(contactPoint || contactPoints)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"organization\"\n }));\n}\n\nfunction setQuestions(questions) {\n if (questions && questions.length) {\n return questions.map(function (question) {\n return {\n '@type': 'Question',\n name: question.questionName,\n acceptedAnswer: {\n '@type': 'Answer',\n text: question.acceptedAnswerText\n }\n };\n });\n }\n return undefined;\n}\n\nvar _excluded$c = [\"type\", \"keyOverride\", \"mainEntity\"];\nfunction FAQPageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'FAQPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n mainEntity = _ref.mainEntity,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);\n var data = _extends({}, rest, {\n mainEntity: setQuestions(mainEntity)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"faq-page\"\n }));\n}\n\nvar _excluded$b = [\"type\", \"keyOverride\"];\nfunction LogoJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"Logo\"\n }));\n}\n\nvar _excluded$a = [\"type\", \"keyOverride\"];\nfunction DatasetJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Dataset' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"dataset\"\n }));\n}\n\nvar _excluded$9 = [\"type\", \"keyOverride\", \"courseName\", \"provider\"];\nfunction CourseJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Course' : _ref$type,\n keyOverride = _ref.keyOverride,\n courseName = _ref.courseName,\n provider = _ref.provider,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);\n var data = _extends({\n name: courseName\n }, rest, {\n provider: setProvider(provider)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"course\"\n }));\n}\n\nvar _excluded$8 = [\"type\", \"keyOverride\", \"itemListElements\"];\nfunction BreadCrumbJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'BreadcrumbList' : _ref$type,\n keyOverride = _ref.keyOverride,\n itemListElements = _ref.itemListElements,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);\n var data = _extends({}, rest, {\n itemListElement: setItemListElements(itemListElements)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"breadcrumb\"\n }));\n}\n\nvar _excluded$7 = [\"type\", \"id\", \"keyOverride\", \"aggregateRating\"];\nfunction BrandJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Brand' : _ref$type,\n id = _ref.id,\n keyOverride = _ref.keyOverride,\n aggregateRating = _ref.aggregateRating,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);\n var data = _extends({\n aggregateRating: setAggregateRating(aggregateRating),\n '@id': id\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"brand\"\n }));\n}\n\nvar _excluded$6 = [\"type\", \"keyOverride\", \"url\", \"title\", \"images\", \"datePublished\", \"dateModified\", \"authorName\", \"publisherName\", \"publisherLogo\", \"description\", \"isAccessibleForFree\"];\nfunction ArticleJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Article' : _ref$type,\n keyOverride = _ref.keyOverride,\n url = _ref.url,\n title = _ref.title,\n images = _ref.images,\n datePublished = _ref.datePublished,\n dateModified = _ref.dateModified,\n authorName = _ref.authorName,\n _ref$publisherName = _ref.publisherName,\n publisherName = _ref$publisherName === void 0 ? undefined : _ref$publisherName,\n _ref$publisherLogo = _ref.publisherLogo,\n publisherLogo = _ref$publisherLogo === void 0 ? undefined : _ref$publisherLogo,\n description = _ref.description,\n isAccessibleForFree = _ref.isAccessibleForFree,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);\n var data = _extends({\n datePublished: datePublished,\n description: description,\n mainEntityOfPage: {\n '@type': 'WebPage',\n '@id': url\n },\n headline: title,\n image: images,\n dateModified: dateModified || datePublished,\n author: setAuthor(authorName),\n publisher: setPublisher(publisherName, publisherLogo),\n isAccessibleForFree: isAccessibleForFree\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"article\"\n }));\n}\n\nfunction setReviewedBy(reviewedBy) {\n if (reviewedBy) {\n return _extends({\n '@type': (reviewedBy == null ? void 0 : reviewedBy.type) || 'Organization'\n }, reviewedBy);\n }\n return undefined;\n}\n\nvar _excluded$5 = [\"keyOverride\", \"reviewedBy\"];\nfunction WebPageJsonLd(_ref) {\n var keyOverride = _ref.keyOverride,\n reviewedBy = _ref.reviewedBy,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);\n var data = _extends({}, rest, {\n reviewedBy: setReviewedBy(reviewedBy)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n keyOverride: keyOverride\n }, data, {\n type: \"WebPage\",\n scriptKey: \"WebPage\"\n }));\n}\n\nvar _excluded$4 = [\"type\", \"keyOverride\"];\nfunction SocialProfileJsonLd(_ref) {\n var type = _ref.type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"social\"\n }));\n}\n\nfunction setCost(cost) {\n if (cost) {\n return _extends({}, cost, {\n '@type': 'MonetaryAmount'\n });\n }\n return undefined;\n}\n\nfunction setSupply(supply) {\n if (supply) {\n return supply.map(function (supplyItem) {\n return {\n '@type': 'HowToSupply',\n name: supplyItem\n };\n });\n }\n return undefined;\n}\n\nfunction setTool(tool) {\n if (tool) {\n return tool.map(function (toolItem) {\n return {\n '@type': 'HowToTool',\n name: toolItem\n };\n });\n }\n return undefined;\n}\n\nfunction setStep(step) {\n if (step) {\n return step.map(function (stepElement) {\n var itemListElement = stepElement.itemListElement,\n image = stepElement.image;\n var currentListElements = itemListElement == null ? void 0 : itemListElement.map(function (_ref) {\n var type = _ref.type,\n text = _ref.text;\n return {\n '@type': type,\n text: text\n };\n });\n return _extends({}, stepElement, {\n '@type': 'HowToStep',\n itemListElement: currentListElements,\n image: setImage(image)\n });\n });\n }\n return undefined;\n}\n\nvar _excluded$3 = [\"type\", \"keyOverride\", \"image\", \"estimatedCost\", \"supply\", \"tool\", \"step\"];\nfunction howToJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'HowTo' : _ref$type,\n keyOverride = _ref.keyOverride,\n image = _ref.image,\n estimatedCost = _ref.estimatedCost,\n supply = _ref.supply,\n tool = _ref.tool,\n step = _ref.step,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n var data = _extends({}, rest, {\n image: setImage(image),\n estimatedCost: setCost(estimatedCost),\n supply: setSupply(supply),\n tool: setTool(tool),\n step: setStep(step)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"howTo\"\n }));\n}\n\nvar _excluded$2 = [\"keyOverride\", \"images\"];\nfunction ImageJsonLd(_ref) {\n var keyOverride = _ref.keyOverride,\n images = _ref.images,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({}, rest, {\n type: \"ImageObject\",\n keyOverride: keyOverride,\n dataArray: images,\n scriptKey: \"image\"\n }));\n}\n\nfunction setAmenityFeature(amenityFeature) {\n if (!amenityFeature) return undefined;\n if (!Array.isArray(amenityFeature)) {\n return decorateAmenityFeature(amenityFeature);\n }\n if (amenityFeature.length === 1) {\n return decorateAmenityFeature(amenityFeature[0]);\n }\n return amenityFeature.map(decorateAmenityFeature);\n}\nfunction decorateAmenityFeature(amenity) {\n return _extends({\n '@type': 'LocationFeatureSpecification'\n }, amenity);\n}\n\nvar _excluded$1 = [\"address\", \"geo\", \"images\", \"keyOverride\", \"openingHours\", \"type\", \"amenityFeature\", \"rating\"];\nfunction CampgroundJsonLd(_ref) {\n var address = _ref.address,\n geo = _ref.geo,\n images = _ref.images,\n keyOverride = _ref.keyOverride,\n openingHours = _ref.openingHours,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Campground' : _ref$type,\n amenityFeature = _ref.amenityFeature,\n rating = _ref.rating,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n var data = _extends({\n image: images,\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours),\n address: setAddress(address),\n geo: setGeo(geo),\n amenityFeature: setAmenityFeature(amenityFeature),\n aggregateRating: setAggregateRating(rating)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"campground\"\n }));\n}\n\nvar _excluded = [\"address\", \"geo\", \"images\", \"keyOverride\", \"openingHours\", \"type\"];\nfunction ParkJsonLd(_ref) {\n var address = _ref.address,\n geo = _ref.geo,\n images = _ref.images,\n keyOverride = _ref.keyOverride,\n openingHours = _ref.openingHours,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Park' : _ref$type,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var data = _extends({\n image: images,\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours),\n address: setAddress(address),\n geo: setGeo(geo)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"park\"\n }));\n}\n\nexport { ArticleJsonLd, BrandJsonLd, BreadCrumbJsonLd as BreadcrumbJsonLd, CampgroundJsonLd, CarouselJsonLd, CollectionPageJsonLd, CorporateContactJsonLd, CourseJsonLd, DatasetJsonLd, DefaultSeo, EventJsonLd, FAQPageJsonLd, howToJsonLd as HowToJsonLd, ImageJsonLd, JobPostingJsonLd, LocalBusinessJsonLd, LogoJsonLd, NewsArticleJsonLd, NextSeo, OrganizationJsonLd, ParkJsonLd, ProductJsonLd, ProfilePageJsonLd, QAPageJsonLd, RecipeJsonLd, SiteLinksSearchBoxJsonLd, SocialProfileJsonLd, SoftwareAppJsonLd, VideoGameJsonLd, VideoJsonLd, WebPageJsonLd };\n","import { NextSeo } from 'next-seo';\nimport { IMAGE_SOURCE } from 'src/utils/constants';\nconst ogImages = [{\n url: `${IMAGE_SOURCE}og-1200x628.png`,\n width: 1200,\n height: 600,\n alt: 'Face yoga'\n}, {\n url: `${IMAGE_SOURCE}og-1024x1024.png`,\n width: 1024,\n height: 1024,\n alt: 'Face yoga'\n}, {\n url: `${IMAGE_SOURCE}og-200x200.png`,\n width: 200,\n height: 200,\n alt: 'Face yoga'\n}];\nexport const Seo = ({\n canonicalUrl\n}: {\n canonicalUrl: string;\n}) => ;","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { captureException } from '@sentry/browser';\nimport { isError } from '@sentry/utils';\nimport { version } from 'react';\n\n/**\n * See if React major version is 17+ by parsing version string.\n */\nfunction isAtLeastReact17(reactVersion) {\n const reactMajor = reactVersion.match(/^([^.]+)/);\n return reactMajor !== null && parseInt(reactMajor[0]) >= 17;\n}\n\n/**\n * Recurse through `error.cause` chain to set cause on an error.\n */\nfunction setCause(error, cause) {\n const seenErrors = new WeakSet();\n\n function recurse(error, cause) {\n // If we've already seen the error, there is a recursive loop somewhere in the error's\n // cause chain. Let's just bail out then to prevent a stack overflow.\n if (seenErrors.has(error)) {\n return;\n }\n if (error.cause) {\n seenErrors.add(error);\n return recurse(error.cause, cause);\n }\n error.cause = cause;\n }\n\n recurse(error, cause);\n}\n\n/**\n * Captures an error that was thrown by a React ErrorBoundary or React root.\n *\n * @param error The error to capture.\n * @param errorInfo The errorInfo provided by React.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureReactException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error,\n { componentStack },\n hint,\n) {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n // See: https://reactjs.org/blog/2020/08/10/react-v17-rc.html#native-component-stacks\n //\n // Although `componentDidCatch` is typed to accept an `Error` object, it can also be invoked\n // with non-error objects. This is why we need to check if the error is an error-like object.\n // See: https://github.com/getsentry/sentry-javascript/issues/6167\n if (isAtLeastReact17(version) && isError(error) && componentStack) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${error.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n setCause(error, errorBoundaryError);\n }\n\n return captureException(error, {\n ...hint,\n captureContext: {\n contexts: { react: { componentStack } },\n },\n });\n}\n\n/**\n * Creates an error handler that can be used with the `onCaughtError`, `onUncaughtError`,\n * and `onRecoverableError` options in `createRoot` and `hydrateRoot` React DOM methods.\n *\n * @param callback An optional callback that will be called after the error is captured.\n * Use this to add custom handling for errors.\n *\n * @example\n *\n * ```JavaScript\n * const root = createRoot(container, {\n * onCaughtError: Sentry.reactErrorHandler(),\n * onUncaughtError: Sentry.reactErrorHandler((error, errorInfo) => {\n * console.warn('Caught error', error, errorInfo.componentStack);\n * });\n * });\n * ```\n */\nfunction reactErrorHandler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error, errorInfo) => {\n const eventId = captureReactException(error, errorInfo);\n if (callback) {\n callback(error, errorInfo, eventId);\n }\n };\n}\n\nexport { captureReactException, isAtLeastReact17, reactErrorHandler, setCause };\n//# sourceMappingURL=error.js.map\n","import { getClient, showReportDialog, withScope } from '@sentry/browser';\nimport { logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { captureReactException } from './error.js';\n\nconst UNKNOWN_COMPONENT = 'unknown';\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\n/**\n * A ErrorBoundary component that logs errors to Sentry.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component {\n\n constructor(props) {\n super(props);ErrorBoundary.prototype.__init.call(this);\n this.state = INITIAL_STATE;\n this._openFallbackReportDialog = true;\n\n const client = getClient();\n if (client && props.showDialog) {\n this._openFallbackReportDialog = false;\n this._cleanupHook = client.on('afterSendEvent', event => {\n if (!event.type && this._lastEventId && event.event_id === this._lastEventId) {\n showReportDialog({ ...props.dialogOptions, eventId: this._lastEventId });\n }\n });\n }\n }\n\n componentDidCatch(error, errorInfo) {\n const { componentStack } = errorInfo;\n // TODO(v9): Remove this check and type `componentStack` to be React.ErrorInfo['componentStack'].\n const passedInComponentStack = componentStack == null ? undefined : componentStack;\n\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n withScope(scope => {\n if (beforeCapture) {\n beforeCapture(scope, error, passedInComponentStack);\n }\n\n const eventId = captureReactException(error, errorInfo, { mechanism: { handled: !!this.props.fallback } });\n\n if (onError) {\n onError(error, passedInComponentStack, eventId);\n }\n if (showDialog) {\n this._lastEventId = eventId;\n if (this._openFallbackReportDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n componentDidMount() {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n componentWillUnmount() {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n\n if (this._cleanupHook) {\n this._cleanupHook();\n this._cleanupHook = undefined;\n }\n }\n\n __init() {this.resetErrorBoundary = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };}\n\n render() {\n const { fallback, children } = this.props;\n const state = this.state;\n\n if (state.error) {\n let element = undefined;\n if (typeof fallback === 'function') {\n element = React.createElement(fallback, {\n error: state.error,\n componentStack: state.componentStack ,\n resetError: this.resetErrorBoundary,\n eventId: state.eventId ,\n });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n DEBUG_BUILD && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return (children )();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary(\n WrappedComponent,\n errorBoundaryOptions,\n) {\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped = (props) => (\n React.createElement(ErrorBoundary, { ...errorBoundaryOptions,}\n , React.createElement(WrappedComponent, { ...props,} )\n )\n );\n\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, UNKNOWN_COMPONENT, withErrorBoundary };\n//# sourceMappingURL=errorboundary.js.map\n","import * as Sentry from '@sentry/react';\nimport { ComponentProps, PropsWithChildren, useEffect } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { useAnalytics } from '@features/Analytics';\nimport { FormattedMessage } from '@features/intl';\nimport ContactUsLink from '../contact-us-link/contact-us-link';\nimport AlertWithCloseButton from '../modal/alert-with-close-button/alert-with-close-button';\nimport Alert from '../modal/alert/alert';\nconst ErrorAlert = ({\n AlertComponent = AlertWithCloseButton,\n show = true,\n error,\n ...props\n}: {\n AlertComponent?: typeof Alert;\n} & ComponentProps) => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n useEffect(() => {\n if (error) {\n console.warn('Error handled', error);\n Sentry.captureException(error);\n trackGoogleEvent({\n eventName: 'something_went_wrong_opened',\n options: {\n reason: error\n }\n });\n }\n }, [error, trackGoogleEvent]);\n return } image={\"\"} title={} description={<>\n \n
    \n Please reload the page or try again later. If the issue persists, feel\n free to .\n } {...props} data-sentry-element=\"AlertComponent\" data-sentry-component=\"ErrorAlert\" data-sentry-source-file=\"error-boundary.tsx\" />;\n};\nexport const ErrorBoundary = ({\n children\n}: PropsWithChildren<{}>) => {\n resetError();\n window.location.reload();\n}} />} showDialog data-sentry-element=\"unknown\" data-sentry-component=\"ErrorBoundary\" data-sentry-source-file=\"error-boundary.tsx\">\n {children}\n ;","// src/query.ts\nimport { noop, replaceData, timeUntilStale } from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.#setOptions(config.options);\n this.#observers = [];\n this.#cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = config.state || getDefaultState(this.options);\n this.state = this.#initialState;\n this.scheduleGc();\n }\n #initialState;\n #revertState;\n #cache;\n #promise;\n #retryer;\n #observers;\n #defaultOptions;\n #abortSignalConsumed;\n get meta() {\n return this.options.meta;\n }\n #setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false\n );\n }\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.#observers.some((observer) => observer.getCurrentResult().isStale);\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.#observers.includes(observer)) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n if (!this.#observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.#observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#promise) {\n this.#retryer?.continueRetry();\n return this.#promise;\n }\n }\n if (options) {\n this.#setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn);\n if (observer) {\n this.#setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n addSignalProperty(queryFnContext);\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\n new Error(`Missing queryFn: '${this.options.queryHash}'`)\n );\n }\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n this.options.queryFn,\n queryFnContext,\n this\n );\n }\n return this.options.queryFn(\n queryFnContext\n );\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n };\n this.#retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === \"undefined\") {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.#promise = this.#retryer.promise;\n return this.#promise;\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode) ? \"fetching\" : \"paused\",\n ...!state.dataUpdatedAt && {\n error: null,\n status: \"pending\"\n }\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = typeof data !== \"undefined\";\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query\n};\n//# sourceMappingURL=query.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = [];\n this.#mutationId = 0;\n }\n #mutations;\n #mutationId;\n #resuming;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.push(mutation);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n this.#mutations = this.#mutations.filter((x) => x !== mutation);\n this.notify({ type: \"removed\", mutation });\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return this.#mutations;\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.#mutations.find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.#mutations.filter(\n (mutation) => matchMutation(filters, mutation)\n );\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n this.#resuming = (this.#resuming ?? Promise.resolve()).then(() => {\n const pausedMutations = this.#mutations.filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => pausedMutations.reduce(\n (promise, mutation) => promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve()\n )\n );\n }).then(() => {\n this.#resuming = void 0;\n });\n return this.#resuming;\n }\n};\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const fetchFn = async () => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n const empty = { pages: [], pageParams: [] };\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = context.options.queryFn || (() => Promise.reject(\n new Error(`Missing queryFn: '${context.options.queryHash}'`)\n ));\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n let result;\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n result = await fetchPage(\n empty,\n oldPageParams[0] ?? options.initialPageParam\n );\n const remainingPages = pages ?? oldPages.length;\n for (let i = 1; i < remainingPages; i++) {\n const param = getNextPageParam(options, result);\n result = await fetchPage(result, param);\n }\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n );\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams\n );\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n return this.#queryCache.find({ queryKey })?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n return cachedData !== void 0 ? Promise.resolve(cachedData) : this.fetchQuery(options);\n }\n getQueriesData(filters) {\n return this.getQueryCache().findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const query = this.#queryCache.find({ queryKey });\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (typeof data === \"undefined\") {\n return void 0;\n }\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.getQueryCache().findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n return this.#queryCache.find({ queryKey })?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters = {}, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters = {}, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters = {}, options) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (typeof defaultedOptions.retry === \"undefined\") {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n resumePausedMutations() {\n return this.#mutationCache.resumePausedMutations();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...options?.queryKey && this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (typeof defaultedOptions.refetchOnReconnect === \"undefined\") {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (typeof defaultedOptions.throwOnError === \"undefined\") {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (typeof defaultedOptions.networkMode === \"undefined\" && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/index.ts\nimport * as Devtools from \"./ReactQueryDevtools.js\";\nimport * as DevtoolsPanel from \"./ReactQueryDevtoolsPanel.js\";\nvar ReactQueryDevtools2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : Devtools.ReactQueryDevtools;\nvar ReactQueryDevtoolsPanel2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : DevtoolsPanel.ReactQueryDevtoolsPanel;\nexport {\n ReactQueryDevtools2 as ReactQueryDevtools,\n ReactQueryDevtoolsPanel2 as ReactQueryDevtoolsPanel\n};\n//# sourceMappingURL=index.js.map","import * as Sentry from '@sentry/react';\nimport { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport { ReactNode, useState } from 'react';\nexport const QueryClientCustomProvider = ({\n children\n}: {\n children: ReactNode;\n}) => {\n const [queryClient] = useState(() => new QueryClient(({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retryDelay: (attemptIndex: number) => Math.min(1000 * 2 ** attemptIndex, 30_000)\n }\n },\n queryCache: new QueryCache({\n onError: (error: any) => {\n console.log(error);\n Sentry.captureException(error);\n }\n })\n } as any)));\n return \n {children}\n \n ;\n};","import { ResizeObserver } from \"@juggle/resize-observer\";\nimport { DehydratedState, HydrationBoundary } from \"@tanstack/react-query\";\nimport type { AppProps } from \"next/app\";\nimport dynamic from \"next/dynamic\";\nimport { Inter, Merriweather, Open_Sans } from \"next/font/google\";\nimport Head from \"next/head\";\nimport { useRouter } from \"next/router\";\nimport { ValidationError } from \"yup\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport \"../styles/index.scss\";\nimport \"../styles/themes-tokens.css\";\nimport \"@mentalgrowth/ui-kit-web/dist/cjs/styles.css\";\nimport \"src/components/common/page-progress/page-progress.scss\";\nimport { AnalyticsInject } from \"@features/Analytics\";\nimport { AnalyticsDebuggerProvider } from \"@features/Analytics/hooks/useAnalytics\";\nimport { FeatureFlagProvider } from \"@features/FeatureToggle\";\nimport { ThemeProvider } from \"@features/Theme\";\nimport { IntlProvider } from \"@features/intl\";\nimport { Seo } from \"src/components/common/Seo\";\nimport { ErrorBoundary } from \"src/components/common/error-boundary/error-boundary\";\nimport { RootStoreProvider } from \"src/components/common/root-store-provider/root-store-provider\";\nimport { QueryClientCustomProvider } from \"src/components/common/QueryClient\";\nconst PageProgress = dynamic(() => import(\"src/components/common/page-progress/page-progress\"));\nexport const inter = Inter({\n weight: [\"400\", '500', '600', \"700\", \"800\"],\n style: [\"normal\", 'italic'],\n subsets: [\"latin\"],\n display: \"swap\",\n variable: \"--font-inter\"\n});\nexport const merriweather = Merriweather({\n weight: [\"400\", \"700\"],\n style: [\"normal\", 'italic'],\n subsets: [\"latin\"],\n display: \"swap\",\n variable: \"--font-merriweather\"\n});\nexport const openSans = Open_Sans({\n weight: [\"400\", '500', '600', \"700\"],\n style: [\"normal\", 'italic'],\n subsets: [\"latin\"],\n display: \"swap\",\n variable: \"--font-open-sans\"\n});\n\n// Customize yup error formatting\nconst formatError = ValidationError.formatError;\nValidationError.formatError = function (message, parameters) {\n if (!parameters.label) {\n parameters.label = (parameters.path + \"\").replace(/([a-z])([A-Z])/g, (_, match1, match2) => `${match1} ${match2.toLowerCase()}`).replace(/^[a-z]/, match => match.toUpperCase());\n }\n return formatError.call(this, message, parameters);\n};\n\n// Polyfill ResizeObserver\nif (typeof window !== \"undefined\" && !window.ResizeObserver) {\n window.ResizeObserver = ResizeObserver;\n}\nconst pageDescription = \"Facial yoga & massage\";\nconst keywords = \"face yoga, face and neck exercises, yoga facial, facial fitness, sagging jowls, how to get rid of turkey neck, face yoga exercises, facial rejuvenation, face exercises, face massage, facial exercises for cheeks, face yoga app, non-surgical facelift, best face yoga app, neck tightening exercises, facial exercises to tighten skin, get rid of wrinkles, get rid of double chin, facial exercises for jowls, yoga for double chin, chiseled jawline, home remedies for aging skin, mimika face yoga, face exercises for sagging cheeks, dark circle treatment, facial exercises, neck sagging, best way to tighten skin on face, face lifting massage, how to remove wrinkles from face quickly, Anti-Aging skin tips, facial and massage, how to get rid of face fat, Mimika, face yoga for double chin, gua sha, face tightening exercise, remove wrinkles, facial yoga\";\nfunction MyApp({\n Component,\n pageProps\n}: AppProps & {\n pageProps: {\n dehydratedState: DehydratedState;\n };\n}) {\n const router = useRouter();\n const canonicalUrl = (typeof window !== \"undefined\" ? window.location.origin : \"\" + (router.asPath === \"/\" ? \"\" : router.asPath)).split(\"?\")[0];\n return <>\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ;\n}\nexport default MyApp;","import classNames from 'classnames';\nimport React, { memo } from 'react';\nimport styles from 'src/widgets/policy/components/links.module.scss';\nimport { useAnalytics } from '@features/Analytics';\nimport { FormattedMessage, TpMessageKeys } from '@features/intl';\nexport const PolicyLink = memo(({\n place,\n className,\n children\n}: {\n place: 'paywall' | 'checkout' | 'burger_menu' | 'email_modal' | 'upsale' | 'explit_checkout';\n className?: string;\n children?: React.ReactNode;\n}) => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n let formattedMessageId: TpMessageKeys;\n switch (place) {\n case 'paywall':\n {\n formattedMessageId = 'Onboarding.Paywall.Main.Contact.PrivacyPolicy.A';\n break;\n }\n case 'burger_menu':\n {\n formattedMessageId = 'Onboarding.Menu.Privacy';\n break;\n }\n case 'email_modal':\n {\n formattedMessageId = 'Onboarding.Email.Terms.PrivacyPolicy.A';\n break;\n }\n case 'upsale':\n {\n formattedMessageId = 'Onboarding.Book.PrivacyPolicy.A';\n break;\n }\n case 'checkout':\n {\n formattedMessageId = 'Onboarding.Checkout.PrivacyPolicy.A';\n break;\n }\n default:\n formattedMessageId = 'Onboarding.Menu.Privacy';\n break;\n }\n return trackGoogleEvent({\n eventName: 'link_open',\n options: {\n place: place,\n link_name: 'privacy policy'\n }\n })}>\n {children || }\n ;\n});\nPolicyLink.displayName = 'PolicyLink';","import classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { useAnalytics } from '@features/Analytics';\nimport { FormattedMessage, TpMessageKeys } from '@features/intl';\nimport styles from '../links.module.scss';\nexport const RefundLink = memo(({\n place,\n className,\n children\n}: {\n place: 'paywall' | 'checkout' | 'burger_menu' | 'email_modal' | 'upsale';\n className?: string;\n children?: React.ReactNode;\n}) => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n let formattedMessageId: TpMessageKeys;\n switch (place) {\n case 'paywall':\n {\n formattedMessageId = 'Onboarding.Paywall.Main.Contact.RefundPolicy.A';\n break;\n }\n case 'burger_menu':\n {\n formattedMessageId = 'Onboarding.Menu.Refund';\n break;\n }\n case 'upsale':\n {\n formattedMessageId = 'Onboarding.Book.RefundPolicy.A';\n break;\n }\n case 'checkout':\n {\n formattedMessageId = 'Onboarding.Checkout.RefundPolicy.A';\n break;\n }\n default:\n formattedMessageId = 'Onboarding.Menu.Refund';\n break;\n }\n return trackGoogleEvent({\n eventName: 'link_open',\n options: {\n place: place,\n link_name: 'refund policy'\n }\n })}>\n {children || }\n ;\n});\nRefundLink.displayName = 'RefundLink';","import classNames from 'classnames';\nimport React, { memo } from 'react';\nimport styles from 'src/widgets/policy/components/links.module.scss';\nimport { useAnalytics } from '@features/Analytics';\nimport { FormattedMessage, TpMessageKeys } from '@features/intl';\nexport const TermsLink = memo(({\n place,\n className,\n children\n}: {\n className?: string;\n place: 'paywall' | 'checkout' | 'burger_menu' | 'email_modal' | 'upsale' | 'explit_checkout';\n children?: React.ReactNode;\n}) => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n let formattedMessageId: TpMessageKeys;\n switch (place) {\n case 'burger_menu':\n {\n formattedMessageId = 'Onboarding.Menu.Tos';\n break;\n }\n case 'paywall':\n {\n formattedMessageId = 'Onboarding.Paywall.Main.Contact.Terms.A';\n break;\n }\n case 'upsale':\n {\n formattedMessageId = 'Onboarding.Book.Terms.A';\n break;\n }\n case 'checkout':\n {\n formattedMessageId = 'Onboarding.Checkout.Terms.A';\n break;\n }\n default:\n formattedMessageId = 'Onboarding.Menu.Tos';\n break;\n }\n return trackGoogleEvent({\n eventName: 'link_open',\n options: {\n place: place,\n link_name: 'terms'\n }\n })}>\n {children || }\n ;\n});\nTermsLink.displayName = 'TermsLink';","import classNames from 'classnames';\nimport { PolicyLink } from 'src/widgets/policy/components/PolicyLink';\nimport { RefundLink } from 'src/widgets/policy/components/RefundLink';\nimport { TermsLink } from 'src/widgets/policy/components/TermsLink';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './policy.module.scss';\nexport type TpPolicyProps = {\n className?: string;\n place: 'paywall' | 'checkout' | 'burger_menu' | 'email_modal';\n};\nexport const Policy = ({\n className,\n place\n}: TpPolicyProps) => \n ,\n terms: ,\n subscription: \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"policy.tsx\" />\n ;","export { Policy } from './policy';\nexport { PolicyLink } from './components/PolicyLink';\nexport { TermsLink } from './components/TermsLink';\nexport { RefundLink } from './components/RefundLink';","import * as Sentry from '@sentry/react';\n\nimport { ENDPOINT } from 'src/constants/api';\n\nexport class RequestError extends Error {\n name = 'RequestError';\n\n constructor(\n public statusCode: number,\n public statusText: string,\n public data: any,\n ) {\n super(`${statusCode} ${statusText} ${data}`);\n }\n}\n\nexport const request = async (\n endpoint: string,\n path: string,\n options: RequestInit,\n) => {\n const url = new URL(path, endpoint).href;\n\n const response = await fetch(url, {\n credentials: 'include',\n ...options,\n });\n if (!response.ok) {\n const data = await response.json();\n const error = new RequestError(response.status, response.statusText, data);\n Sentry.withScope((scope) => {\n scope.setExtras({\n url,\n method: options.method,\n headers: options.headers,\n body: options.body,\n status: error.statusCode,\n response: error.data,\n });\n Sentry.captureException(error);\n });\n\n throw error;\n }\n\n if (response.headers.get('Content-Type') === 'application/json') {\n return await response.json();\n }\n return undefined;\n};\n\nexport const get = async ({\n endpoint = ENDPOINT,\n path,\n params,\n token,\n abortSignal,\n}: {\n endpoint?: string;\n path: string;\n params?: Record;\n token?: string;\n abortSignal?: AbortSignal;\n}) => {\n const headers = new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...(token && { Authorization: `Token ${token}` }),\n });\n return await request(\n endpoint,\n !params ? path : `${path}?${new URLSearchParams(params)}`,\n {\n signal: abortSignal,\n headers,\n },\n );\n};\n\nexport const post = async ({\n endpoint = ENDPOINT,\n path,\n body,\n token,\n abortSignal,\n}: {\n endpoint?: string;\n path: string;\n body: Record;\n token?: string;\n abortSignal?: AbortSignal;\n}) => {\n const headers = new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...(token && { Authorization: `Token ${token}` }),\n });\n return await request(endpoint, path, {\n method: 'POST',\n body: JSON.stringify(body),\n headers,\n mode: 'cors',\n signal: abortSignal,\n });\n};\n","import { UserSnapshot } from '../models/user/user';\nimport { RequestError, get, post } from './api';\n\nconst responseToUser = (response: any): UserSnapshot => ({\n id: response['id'],\n email: response['email'],\n isSubscriptionActive: response['is_subscription_active'],\n isPasswordSet: response['is_web_password_set'],\n token: response['token'],\n accessCode: response['access_code'],\n});\n\nconst responseToUserVariant2 = (response: any): UserSnapshot => ({\n token: response['token'],\n id: response['server_id'],\n email: response['email'],\n isSubscriptionActive: response['is_subscription_active'],\n isPasswordSet: response['is_web_password_set'],\n accessCode: response['access_code'],\n});\n\nexport const fetchUser = async (\n token?: string,\n): Promise => {\n if (!token) return null;\n try {\n return responseToUser(await get({ path: 'user-profile', token }));\n } catch (error) {\n if (error instanceof RequestError && error.statusCode === 403) {\n return null;\n }\n throw error;\n }\n};\n\nexport const register = async ({\n email,\n age,\n variant,\n abortSignal,\n quizAnswers,\n}: {\n email: string;\n age: number;\n variant: string | undefined;\n abortSignal?: AbortSignal;\n quizAnswers: unknown;\n}): Promise =>\n responseToUser(\n await post({\n path: 'register-user',\n body: {\n email: email,\n age: age,\n variant: variant,\n data_version: process.env.PACKAGE_VERSION,\n user_data: quizAnswers,\n },\n abortSignal,\n }),\n );\n\nexport const setPasswordAndEmail = async ({\n email,\n password,\n abortSignal,\n}: {\n email: string;\n password: string;\n abortSignal?: AbortSignal;\n}): Promise =>\n await post({\n path: 'set-password-and-email',\n body: {\n email: email,\n password: password,\n },\n abortSignal,\n });\n\nexport const logOut = async () => {\n try {\n await post({\n path: 'logout',\n body: {},\n });\n } catch (error) {\n if (error instanceof RequestError && error.statusCode === 403) {\n return;\n }\n throw error;\n }\n};\n\nexport const getSafariAuthToken = async (): Promise => {\n const responseObject = await post({\n path: 'get-safari-auth-token',\n body: {},\n });\n return responseObject['temp_token'];\n};\n\nexport const loginBySafariAuthToken = async ({\n safariAuthToken,\n}: {\n safariAuthToken: string;\n}) =>\n responseToUserVariant2(\n await post({\n path: 'perform-login-by-safari-auth-token',\n body: {\n temp_token: safariAuthToken,\n },\n }),\n );\n\nexport const loginWithEmailToken = async ({\n emailToken,\n abortSignal,\n}: {\n emailToken: string;\n abortSignal?: AbortSignal;\n}): Promise =>\n responseToUserVariant2(\n await post({\n path: 'login-with-email-token',\n body: { email_token: emailToken },\n abortSignal,\n }),\n );\n","import * as Sentry from '@sentry/react';\nimport axios from 'axios';\n\nimport {\n ENDPOINT,\n ENDPOINT_MICROSERVICE,\n ENDPOINT_SIMPLE,\n} from 'src/constants/api';\nimport { isDevelopment } from 'src/utils';\n\nimport { ANALYTICS_ENDPOINT_V2 } from '@features/Analytics/constants';\n\nconst TIMEOUT = 30_000;\n\nconst createAxiosInstance = (baseURL: string) => {\n const instance = axios.create({\n baseURL,\n timeout: TIMEOUT,\n headers: { 'Content-type': 'application/json' },\n });\n\n instance.interceptors.response.use(\n (response) => response,\n (error) => {\n const status = error.response?.status;\n Sentry.withScope((scope) => {\n scope.setExtras({\n url: baseURL,\n method: error.config.method,\n headers: error.config.headers,\n body: error.config.data,\n status,\n response: error.response?.data,\n });\n Sentry.captureException(error);\n });\n\n if (error.response?.status === 401) {\n window.location.href = '/';\n } else {\n console.error('error', error.response.data, error.name);\n throw error;\n }\n },\n );\n\n return instance;\n};\n\nconst axiosSimple = createAxiosInstance(ENDPOINT_SIMPLE);\nconst axiosWeb = createAxiosInstance(ENDPOINT);\nconst axiosMicroservice = createAxiosInstance(ENDPOINT_MICROSERVICE);\nconst axiosAnalytics = createAxiosInstance(\n isDevelopment\n ? 'https://dev.analytics.mentalgrowth.app/api/v1/'\n : ANALYTICS_ENDPOINT_V2,\n);\nconst axiosUtils = createAxiosInstance(\n 'https://utils.mentalgrowth.app/api/v1/',\n);\nconst axiosProxyUtils = createAxiosInstance(\n 'https://proxy-utils.mentalgrowth.app/',\n);\n\nexport {\n axiosSimple,\n axiosWeb,\n axiosMicroservice,\n axiosAnalytics,\n axiosUtils,\n axiosProxyUtils,\n};\n","import { axiosSimple } from 'src/api/axios';\nimport { ENDPOINT_MICROSERVICE } from 'src/constants/api';\n\nimport { post } from './api';\n\nexport const sendFeedback = async ({\n email,\n message,\n userId,\n isSubscriber,\n fromLabel = 'Mimika Web',\n}: {\n email: string;\n fromLabel?: string;\n message: string;\n userId?: number;\n isSubscriber?: boolean;\n}): Promise =>\n await post({\n endpoint: ENDPOINT_MICROSERVICE,\n path: 'feedback',\n body: {\n from_label: fromLabel,\n user_email: email,\n user_id: userId,\n form_name: 'Mimika',\n message: message,\n is_subscriber: isSubscriber,\n },\n });\n\nexport const updateUserInfo = async ({\n userData,\n authToken,\n}: {\n userData: Record;\n authToken: string | undefined;\n}): Promise => {\n if (!authToken) return;\n\n try {\n const { data } = await axiosSimple.put(\n 'update_user_info/',\n {\n user_data: userData,\n },\n {\n headers: {\n 'Content-type': 'application/json',\n Authorization: `Token ${authToken}`,\n },\n },\n );\n\n return data;\n } catch (error) {\n console.log(error);\n }\n};\n","export const UPGRADE_FIRST_AB_TEST_NAME = 'Mimika|Upgrade (1st)';\nexport enum UpgradeFirstAbTestCaseName {\n DEFAULT = 'A default',\n NEW = 'Mimika|Upgrade (1st)',\n}\n\nexport const COOKIES_AB_TEST_NAME = 'Mimika| Cookie';\nexport enum CookiesAbTestCaseName {\n DEFAULT = 'A default',\n NEW = 'B Cookie',\n}\n\nexport const WELCOME_LOADER_TEST_NAME_V2 = 'DEV-863 a/b first screen loader v2';\nexport enum WelcomeLoaderTestV2CaseName {\n DEFAULT = 'A default',\n SHOW = 'B first screen loader',\n}\n\nexport const VIDEO_REVIEWS_TEST_NAME = 'video feedback';\nexport enum VideoReviewsTestCaseName {\n HIDE = 'A default',\n SHOW = 'B video feedback',\n}\n\nexport const PRESELECTED_SUBSCRIPTION_TEST_NAME =\n 'DEV-885 Different Preselected subscription v21';\nexport enum PreselectedSubscriptionTestCaseName {\n DEFAULT = 'A Default',\n NEW = 'B Different Preselected subscription',\n}\n\nexport const SCANNER_TEST_NAME = 'DEV-973 Scanner screens';\n\nexport const SIMPLE_PAYWALL_TEST_NAME = 'Simple paywall - dev 1170';\n\nexport const CHEEP_CHALLENGE_TEST_NAME = 'cheap intro offer';\nexport enum CheepChallengeTestCaseName {\n DEFAULT = 'A Default',\n ONBOARDING_BEGIN = 'B change first screen',\n ONBOARDING_MIDDLE = 'C middle offer',\n}\n\nexport const ACADEMIA_UPSELL_TEST_NAME = 'Academy Upsale';\nexport const BEFORE_AFTER_PAYWALL_TEST_NAME = 'Mimika| Lips paywall';\nexport const HIDE_PAYPAL_TEST_NAME = 'Without PayPal';\n","export const ENDPOINT = process.env.NEXT_PUBLIC_API_ENDPOINT as string;\nexport const ENDPOINT_SIMPLE = process.env\n .NEXT_PUBLIC_API_ENDPOINT_SIMPLE as string;\nexport const TEST_EVENT_CODE = process.env\n .NEXT_PUBLIC_TEST_EVENTS_CODE as string;\nexport const ENDPOINT_MICROSERVICE = process.env\n .NEXT_PUBLIC_API_MICROSERVICE_ENDPOINT as string;\n","import {\n MobileOperatingSystem,\n getMobileOperatingSystem,\n} from 'src/utils/get-mobile-operating-system';\n\nexport const IS_GOOGLE_PAY_AVAILABLE =\n getMobileOperatingSystem() === MobileOperatingSystem.ANDROID;\n\nexport const SHOW_GOOGLE_PAY_BUTTON = IS_GOOGLE_PAY_AVAILABLE;\n","export const routes = {\n home: '/',\n quiz: '/quiz',\n newPlanPaywall: '/new-plan-paywall',\n paymentSuccess: '/payment-success',\n};\n","import { ReactNode } from 'react';\n\nimport type { TpMessageKeys } from 'src/features/intl';\n\nexport enum QuizStepType {\n OTHER,\n TEXT_CARD,\n SINGLE_OPTION_SELECT,\n SINGLE_OPTION_WITH_IMAGE_SELECT,\n MULTIPLE_OPTIONS_SELECT,\n MULTIPLE_OPTIONS_WITH_IMAGE_SELECT,\n REVIEWS,\n ACHIEVE_RESULTS,\n}\n\nexport type QuizSection =\n | 'Goals'\n | 'Lifestyle'\n | 'Nutrition'\n | 'Your skin'\n | 'Personalisation'\n | 'Feelings'\n | 'Final Screens'\n | 'SingleSection'\n | 'Check up'\n | 'Level of stress'\n | 'Medical indications'\n | 'Wellbeing'\n | 'Facial care'\n | 'Final steps';\n\nexport enum QuizStep {\n CHALLENGE_PEOPLE_JOIN,\n CHALLENGE_BEAUTY_ROUTINE,\n CHALLENGE_SKIN_TYPE_ADOPTED,\n CHALLENGE_CHECKOUT,\n CHALLENGE_LOADING,\n WELCOME_LOADER,\n WELCOME_LOADER_SECOND,\n EASILY_SPEND,\n SATISFIED, // ?? in use ??\n WORRIES_MOST,\n FOCUS_ON,\n FOCUS_ON_TWO,\n AGE_CHANGES,\n WRINKLES,\n CHANGES_FACED,\n PRACTICE_CARE,\n SUIT_SCHEDULE_MORNING,\n SUIT_SCHEDULE_EVENING,\n BAD_HABITS,\n EAT_HABITS,\n SUGAR_HABITS,\n SODIUM_HABITS,\n VEGETABLES_HABITS,\n WATER_HABITS,\n SWELL_HABITS,\n SLEEP_HABITS,\n SKIN_TYPE,\n OILY_SHINE,\n AFTER_CLEAN_FACE,\n SKIN_ACNE,\n SKIN_TEXTURE,\n SKIN_COLOR,\n SKIN_PROBLEMS_WHITE_SIMPLE,\n SKIN_PROBLEMS_BLACK_SIMPLE,\n STRESS,\n DESIRED_RESULTS,\n SPEND_ON_CARE,\n CHOOSE_SUITABLE_PRODUCTS,\n SKIN_RECOMMEND,\n FIRST_CHANGES,\n AGE,\n FACE_SHAPE,\n JAWLINE,\n UNHAPPY,\n PLASTIC_SURGERY,\n DARK_CIRCLES,\n SKIN_SUMMARY,\n LIFESTYLE,\n WORK,\n AFRAID_LOSE_BEAUTY,\n AFRAID_LOSE_BEAUTY_BREAKS_TEST,\n APPEARANCE_REASON,\n APPEARANCE_REASON_BREAKS_TEST,\n TRENDS,\n HEAR_ABOUT_US,\n ACHIEVE_RESULTS,\n ENTER_EMAIL,\n MILLION_USERS,\n CHANGES_WORRIES_MOST,\n MODEL,\n RADIAL_PROGRESS,\n GOALS_TIMELINE,\n INNER_AGE,\n SUIT_SCHEDULE_EVENING_MAP,\n SUIT_SCHEDULE_MORNING_MAP,\n NUTRITION_OPENER,\n NUTRITION_SUMMARY,\n AGE_SIMPLE,\n WE_STUDIED_SIMPLE,\n PERSONALISED_PROGRAMS_SIMPLE,\n DEVELOPED_SYSTEM_SIMPLE,\n EASILY_SPEND_SIMPLE,\n EXCESSIVE_WEIGHT_SIMPLE,\n FACIAL_CARE_SIMPLE,\n DESIRED_RESULTS_SIMPLE,\n MEDICATIONS_SIMPLE,\n PREGNANT_SIMPLE,\n BAD_HABITS_SIMPLE,\n SKIN_CARE_SIMPLE,\n KIDS_SIMPLE,\n WORK_FROM_HOME_SIMPLE,\n IMPROVE_SLEEP_SIMPLE,\n HEADACHES_SIMPLE,\n BACK_ACHES_SIMPLE,\n SPECIFIC_AREAS_SIMPLE,\n SPECIFIC_ACTIVITIES_SIMPLE,\n TENSION_SIMPLE,\n SITUATIONS_SIMPLE,\n BEHAVIOUR_SIMPLE,\n WITH_MIMIKA_SIMPLE,\n BEST_VERSION_SIMPLE,\n MAIN_MOTIVATION_SIMPLE,\n MENTAL_WELLNESS_SIMPLE,\n WANT_TO_EXPLORE_SIMPLE,\n ACTION_PLAN_SIMPLE,\n RADIAL_PROGRESS_SIMPLE,\n RADIAL_PROGRESS_TWO_SIMPLE,\n LESS_COSTLY_SIMPLE,\n SAVE_MONEY_SIMPLE,\n GOALS_TIMELINE_SIMPLE,\n JUST_ROUTINE_SIMPLE,\n SLEEP_KEY_SIMPLE,\n BEAUTY_STARTS_SIMPLE,\n IMPROVE_QUALITY_SIMPLE,\n GREAT_JOB_SIMPLE,\n ECO_FRIENDLY_SIMPLE,\n AMAZING_STORIES_SIMPLE,\n ENTER_EMAIL_SIMPLE,\n BEST_SKIN_SIMPLE,\n GOAL_PLAN_SIMPLE,\n DISCOMFORT_SIMPLE,\n NAME,\n SKIN_CARE_GOALS_SIMPLE,\n SKIN_ALLERGIES_SIMPLE,\n ONE_WEEK,\n RID_OF,\n ELIMINATION,\n BOOST_RESULT,\n UNIQUE_TECHNOLOGIES,\n LONG_PREPAYWALL,\n AGE_CHANGES_STRESSLESS,\n TIREDNESS_STRESSLESS,\n CHANGES_WORRIES_MOST_STRESSLESS,\n EASILY_SPEND_STRESSLESS,\n SUIT_SCHEDULE_EVENING_STRESSLESS,\n SUIT_SCHEDULE_MORNING_STRESSLESS,\n BAD_HABITS_STRESSLESS,\n DARK_CIRCLES_STRESSLESS,\n SWELL_HABITS_STRESSLESS,\n ACNE_STRESSLESS,\n SKIN_TEXTURE_STRESSLESS,\n OILY_SHINE_STRESSLESS,\n TIP_ONE_STRESSLESS,\n TIP_TWO_STRESSLESS,\n BEST_DAY_STRESSLESS,\n PERSONALIZED_STRESSLESS,\n WITHOUT_MIMIKA_HEALTH,\n PERSONAL_PLAN_HEALTH,\n JUST_ROUTINE_HEALTH,\n PERSONALISED_PROGRAMS_HEALTH,\n WE_STUDIED_HEALTH,\n DESIRE_RESULTS_HEALTH,\n STRESS_HEALTH,\n NUTRITION_SUMMARY_HEALTH,\n WELCOME_LOADER_SECOND_HEALTH,\n AMAZING_STORIES_HEALTH,\n}\n\ninterface BaseQuizStep {\n type: QuizStepType;\n gaEventName?: string;\n section: QuizSection;\n step: QuizStep;\n nextButtonText?: string | ReactNode;\n title?: ReactNode;\n titleId?: TpMessageKeys;\n markId?: TpMessageKeys;\n markDefaultMessage?: string;\n defaultTitleMessage?: string;\n subtitle?: ReactNode;\n subtitleId?: TpMessageKeys;\n defaultSubtitleMessage?: string;\n TitleComponent?: ReactNode;\n SubTitleComponent?: ReactNode;\n imagesForPreload?: Array;\n}\n\nexport interface OtherQuizStep extends BaseQuizStep {\n type: QuizStepType.OTHER;\n options?: SingleOptionSelectQuizStepOption[];\n background?: ColoredBackgroundQuizStepBackground;\n image?: ReactNode | string;\n imageHeight?: number;\n tooltip?: ReactNode;\n}\n\nexport interface TextCardQuizStep extends BaseQuizStep {\n type: QuizStepType.TEXT_CARD;\n image?: ReactNode;\n background: ColoredBackgroundQuizStepBackground;\n}\n\nexport interface SelectQuizStepOption {\n value: T;\n label?: string | ReactNode;\n labelId?: TpMessageKeys;\n labelDefaultMessage?: string;\n}\n\nexport interface SingleOptionSelectQuizStepOption\n extends SelectQuizStepOption {\n image?: ReactNode;\n imageColor?: string;\n}\n\nexport type TpReviewsQuizStepReview = {\n image: ReactNode;\n title: {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n description: {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n};\nexport type TpReviewsQuizStep = BaseQuizStep & {\n type: QuizStepType.REVIEWS;\n};\n\nexport type TpAchieveResultsQuizStep = BaseQuizStep & {\n type: QuizStepType.ACHIEVE_RESULTS;\n};\n\nexport interface SingleOptionSelectQuizStep extends BaseQuizStep {\n type: QuizStepType.SINGLE_OPTION_SELECT;\n options: SingleOptionSelectQuizStepOption[];\n background?: ColoredBackgroundQuizStepBackground;\n image?: ReactNode;\n}\n\nexport interface SingleOptionImageSelectQuizStep extends BaseQuizStep {\n type: QuizStepType.SINGLE_OPTION_WITH_IMAGE_SELECT;\n options: SingleOptionSelectQuizStepOption[];\n}\n\nexport interface MultipleOptionsSelectQuizStepOption\n extends SelectQuizStepOption {\n image?: ReactNode;\n}\n\nexport interface MultipleOptionsSelectQuizStep extends BaseQuizStep {\n type: QuizStepType.MULTIPLE_OPTIONS_SELECT;\n options: MultipleOptionsSelectQuizStepOption[];\n skipButtonText?: string | ReactNode;\n skipOptionText?: MultipleOptionsSelectQuizStepOption;\n extraContent?: ReactNode;\n}\n\nexport interface MultipleOptionsImageSelectQuizStep extends BaseQuizStep {\n type: QuizStepType.MULTIPLE_OPTIONS_WITH_IMAGE_SELECT;\n options: MultipleOptionsSelectQuizStepOption[];\n skipButtonText?: string | ReactNode;\n skipOptionText?: MultipleOptionsSelectQuizStepOption;\n}\n\nexport enum ColoredBackgroundQuizStepBackground {\n WHITE,\n BROWN,\n BROWN_LIGHT,\n CREAM,\n BLUE,\n PASTEL_GREEN,\n GREEN,\n LIGHT_PINK,\n PINK,\n PINK_VARIANT,\n DEFAULT,\n YELLOW,\n GREY,\n LIGHT_GREY,\n SOFT_GREEN,\n LIGHT_BEIGE,\n LIGHT_BLUE,\n PASTEL,\n SECONDARY_GREEN,\n SECONDARY_PINK,\n SECONDARY_ORANGE,\n LINEAR_ORANGE,\n}\n\nexport type TpStep =\n | OtherQuizStep\n | TextCardQuizStep\n | SingleOptionSelectQuizStep\n | SingleOptionImageSelectQuizStep\n | MultipleOptionsSelectQuizStep\n | MultipleOptionsImageSelectQuizStep\n | TpReviewsQuizStep\n | TpAchieveResultsQuizStep;\n\nexport const isStepHeaderShown = (step: TpStep) => {\n switch (step.type) {\n case QuizStepType.OTHER:\n switch (step.step) {\n case QuizStep.ENTER_EMAIL:\n case QuizStep.WELCOME_LOADER:\n case QuizStep.WELCOME_LOADER_SECOND:\n case QuizStep.WELCOME_LOADER_SECOND_HEALTH:\n case QuizStep.ENTER_EMAIL_SIMPLE:\n case QuizStep.MILLION_USERS:\n case QuizStep.WE_STUDIED_SIMPLE:\n case QuizStep.WE_STUDIED_HEALTH:\n case QuizStep.PERSONALISED_PROGRAMS_SIMPLE:\n case QuizStep.PERSONALISED_PROGRAMS_HEALTH:\n case QuizStep.DEVELOPED_SYSTEM_SIMPLE:\n case QuizStep.LESS_COSTLY_SIMPLE:\n case QuizStep.SAVE_MONEY_SIMPLE:\n case QuizStep.MODEL:\n case QuizStep.RADIAL_PROGRESS:\n case QuizStep.RADIAL_PROGRESS_SIMPLE:\n case QuizStep.RADIAL_PROGRESS_TWO_SIMPLE:\n case QuizStep.GOALS_TIMELINE:\n case QuizStep.GOALS_TIMELINE_SIMPLE:\n case QuizStep.SUIT_SCHEDULE_EVENING_MAP:\n case QuizStep.SUIT_SCHEDULE_MORNING_MAP:\n case QuizStep.NUTRITION_OPENER:\n case QuizStep.NUTRITION_SUMMARY:\n case QuizStep.NUTRITION_SUMMARY_HEALTH:\n case QuizStep.NAME:\n case QuizStep.JUST_ROUTINE_SIMPLE:\n case QuizStep.JUST_ROUTINE_HEALTH:\n case QuizStep.CHOOSE_SUITABLE_PRODUCTS:\n case QuizStep.SLEEP_KEY_SIMPLE:\n case QuizStep.BEAUTY_STARTS_SIMPLE:\n case QuizStep.IMPROVE_QUALITY_SIMPLE:\n case QuizStep.GREAT_JOB_SIMPLE:\n case QuizStep.ECO_FRIENDLY_SIMPLE:\n case QuizStep.AMAZING_STORIES_SIMPLE:\n case QuizStep.AMAZING_STORIES_HEALTH:\n case QuizStep.BEST_SKIN_SIMPLE:\n case QuizStep.GOAL_PLAN_SIMPLE:\n case QuizStep.PERSONALIZED_STRESSLESS:\n case QuizStep.WITHOUT_MIMIKA_HEALTH:\n case QuizStep.PERSONAL_PLAN_HEALTH:\n case QuizStep.DESIRE_RESULTS_HEALTH:\n case QuizStep.CHALLENGE_PEOPLE_JOIN:\n case QuizStep.CHALLENGE_SKIN_TYPE_ADOPTED:\n case QuizStep.CHALLENGE_BEAUTY_ROUTINE:\n case QuizStep.CHALLENGE_CHECKOUT:\n case QuizStep.CHALLENGE_LOADING:\n return false;\n\n default:\n return true;\n }\n\n default:\n return true;\n }\n};\n\nexport const isStepProgressShown = (step: TpStep) => {\n switch (step.type) {\n case QuizStepType.OTHER:\n switch (step.step) {\n case QuizStep.WELCOME_LOADER:\n case QuizStep.WELCOME_LOADER_SECOND:\n case QuizStep.WELCOME_LOADER_SECOND_HEALTH:\n case QuizStep.SKIN_RECOMMEND:\n case QuizStep.CHOOSE_SUITABLE_PRODUCTS:\n case QuizStep.FIRST_CHANGES:\n case QuizStep.MILLION_USERS:\n case QuizStep.MODEL:\n case QuizStep.RADIAL_PROGRESS:\n case QuizStep.GOALS_TIMELINE:\n case QuizStep.GOALS_TIMELINE_SIMPLE:\n case QuizStep.SUIT_SCHEDULE_EVENING_MAP:\n case QuizStep.SUIT_SCHEDULE_MORNING_MAP:\n case QuizStep.NUTRITION_OPENER:\n case QuizStep.NUTRITION_SUMMARY:\n case QuizStep.NUTRITION_SUMMARY_HEALTH:\n case QuizStep.JUST_ROUTINE_SIMPLE:\n case QuizStep.JUST_ROUTINE_HEALTH:\n case QuizStep.SLEEP_KEY_SIMPLE:\n case QuizStep.BEAUTY_STARTS_SIMPLE:\n case QuizStep.IMPROVE_QUALITY_SIMPLE:\n case QuizStep.GREAT_JOB_SIMPLE:\n case QuizStep.ECO_FRIENDLY_SIMPLE:\n case QuizStep.AMAZING_STORIES_SIMPLE:\n case QuizStep.AMAZING_STORIES_HEALTH:\n case QuizStep.BEST_SKIN_SIMPLE:\n case QuizStep.GOAL_PLAN_SIMPLE:\n case QuizStep.NAME:\n case QuizStep.WE_STUDIED_SIMPLE:\n case QuizStep.WE_STUDIED_HEALTH:\n case QuizStep.PERSONALISED_PROGRAMS_SIMPLE:\n case QuizStep.PERSONALISED_PROGRAMS_HEALTH:\n case QuizStep.LESS_COSTLY_SIMPLE:\n case QuizStep.DEVELOPED_SYSTEM_SIMPLE:\n case QuizStep.SAVE_MONEY_SIMPLE:\n case QuizStep.ENTER_EMAIL_SIMPLE:\n case QuizStep.RADIAL_PROGRESS_SIMPLE:\n case QuizStep.ONE_WEEK:\n case QuizStep.RID_OF:\n case QuizStep.ELIMINATION:\n case QuizStep.BOOST_RESULT:\n case QuizStep.UNIQUE_TECHNOLOGIES:\n case QuizStep.LONG_PREPAYWALL:\n case QuizStep.TIP_ONE_STRESSLESS:\n case QuizStep.TIP_TWO_STRESSLESS:\n case QuizStep.BEST_DAY_STRESSLESS:\n case QuizStep.PERSONALIZED_STRESSLESS:\n case QuizStep.WITHOUT_MIMIKA_HEALTH:\n case QuizStep.PERSONAL_PLAN_HEALTH:\n case QuizStep.DESIRE_RESULTS_HEALTH:\n case QuizStep.CHALLENGE_PEOPLE_JOIN:\n case QuizStep.CHALLENGE_SKIN_TYPE_ADOPTED:\n case QuizStep.CHALLENGE_BEAUTY_ROUTINE:\n case QuizStep.CHALLENGE_CHECKOUT:\n case QuizStep.CHALLENGE_LOADING:\n return false;\n default:\n return true;\n }\n case QuizStepType.TEXT_CARD:\n case QuizStepType.ACHIEVE_RESULTS:\n return false;\n\n default:\n return true;\n }\n};\n\nexport enum QuizAgeOption {\n FROM_18_TO_24 = 0,\n FROM_25_TO_34 = 1,\n FROM_35_TO_44 = 2,\n FROM_45_TO_54 = 3,\n FROM_55_TO_64 = 4,\n FROM_65 = 5,\n}\n\nexport enum OptionVariant {\n DEFAULT,\n GREEN,\n}\n\nexport type OnboardingHeaderProps = {\n onPreviousPress: () => void;\n onSkipPress: undefined | (() => void);\n showProgressBar?: boolean;\n showBurgerMenu: boolean;\n country?: string;\n calculateProgress: ({ quizSection }: { quizSection: QuizSection }) => number;\n sectionName: string;\n showPreviousButton?: boolean;\n};\n","export type TpVariants =\n | 'variant15'\n | 'email'\n | 'tw1'\n | 'variantPT'\n | 'google1'\n | 'tiktok1';\n\nexport type TpStripeVariants =\n | 'MimikaUS'\n | 'PT16'\n | 'PT17'\n | 'TW16'\n | 'TW17'\n | 'bonus'\n | 'cancellation'\n | 'default'\n | 'email2'\n | 'email3'\n | 'emailtraf'\n | 'google16'\n | 'google17'\n | 'google21'\n | 'googleUS'\n | 'health'\n | 'stressless'\n | 'test'\n | 'tiktok16'\n | 'tiktok17'\n | 'variant16'\n | 'variant17'\n | 'variant18'\n | 'variant20'\n | 'variant21'\n | 'variant21-DEV885'\n | 'variant22'\n | 'variant80'\n | 'variantlong'\n | 'challenge'\n | 'tiktok21'\n | 'TW21'\n | 'PTUS'\n | 'TWUS'\n | 'TikTokUS'\n | 'PT21'\n | 'bing21'\n | 'bingUS'\n | 'variantsaas';\n\nexport type TpPaymentSystemRegion = 'WW' | 'US';\n\nexport type TpSource =\n | 'facebook'\n | 'twitter'\n | 'google'\n | 'tiktok'\n | 'bing'\n | 'pinterest';\nexport type TpPaymentSystem = 'braintree' | 'paddle' | 'stripe';\n\nexport type TpVariantObject = {\n variant_name: TpVariants | TpStripeVariants;\n payment_system: TpPaymentSystem;\n source: TpSource;\n payment_system_region: TpPaymentSystemRegion;\n};\n\nexport const GOOGLE_OR_PINTEREST_SET = new Set([\n 'google1',\n 'variantPT',\n 'PT16',\n 'google16',\n 'PT17',\n 'google17',\n]);\n\nexport const ALL_VARIANTS: Array = [\n {\n variant_name: 'variant15',\n payment_system: 'braintree',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'email',\n payment_system: 'braintree',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'tw1',\n payment_system: 'braintree',\n source: 'twitter',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variantPT',\n payment_system: 'braintree',\n source: 'pinterest',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'google1',\n payment_system: 'braintree',\n source: 'google',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'tiktok1',\n payment_system: 'braintree',\n source: 'tiktok',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'emailtraf',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant16',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'MimikaUS',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'US',\n },\n {\n variant_name: 'variant17',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant18',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant20',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant21',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant21-DEV885',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant22',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'TW16',\n payment_system: 'stripe',\n source: 'twitter',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'PT16',\n payment_system: 'stripe',\n source: 'pinterest',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'google16',\n payment_system: 'stripe',\n source: 'google',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'tiktok16',\n payment_system: 'stripe',\n source: 'tiktok',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'TW17',\n payment_system: 'stripe',\n source: 'twitter',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'PT17',\n payment_system: 'stripe',\n source: 'pinterest',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'google17',\n payment_system: 'stripe',\n source: 'google',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'tiktok17',\n payment_system: 'stripe',\n source: 'tiktok',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'default',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'email2',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'email3',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'test',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variantsaas',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variant80',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'variantlong',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'bonus',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'stressless',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'cancellation',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'health',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'google21',\n payment_system: 'stripe',\n source: 'google',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'googleUS',\n payment_system: 'stripe',\n source: 'google',\n payment_system_region: 'US',\n },\n {\n variant_name: 'challenge',\n payment_system: 'stripe',\n source: 'facebook',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'TW21',\n payment_system: 'stripe',\n source: 'twitter',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'tiktok21',\n payment_system: 'stripe',\n source: 'tiktok',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'PTUS',\n payment_system: 'stripe',\n source: 'pinterest',\n payment_system_region: 'US',\n },\n {\n variant_name: 'TWUS',\n payment_system: 'stripe',\n source: 'twitter',\n payment_system_region: 'US',\n },\n {\n variant_name: 'TikTokUS',\n payment_system: 'stripe',\n source: 'tiktok',\n payment_system_region: 'US',\n },\n {\n variant_name: 'PT21',\n payment_system: 'stripe',\n source: 'pinterest',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'bing21',\n payment_system: 'stripe',\n source: 'bing',\n payment_system_region: 'WW',\n },\n {\n variant_name: 'bingUS',\n payment_system: 'stripe',\n source: 'bing',\n payment_system_region: 'US',\n },\n];\n","export const createTestSegmentFromQueryParameters = () => {\n const url = typeof window !== undefined ? window.location.href : '';\n const urlParameters = new URLSearchParams(new URL(url).search);\n\n const segmentName = urlParameters.get('segment_name');\n const testName = urlParameters.get('test_name');\n const caseName = urlParameters.get('case_name');\n\n if (segmentName && testName && caseName) {\n return {\n segment_name: decodeURI(segmentName),\n tests: [\n {\n test_name: decodeURI(testName),\n case_name: decodeURI(caseName),\n },\n ],\n };\n }\n\n return null;\n};\n","import { get, post } from 'src/api/api';\nimport { isDevelopment } from 'src/utils';\nimport {\n MobileOperatingSystem,\n getMobileOperatingSystem,\n} from 'src/utils/get-mobile-operating-system';\n\nimport {\n ANALYTICS_ENDPOINT,\n ANALYTICS_ENDPOINT_V2,\n} from '@features/Analytics/constants';\nimport { createTestSegmentFromQueryParameters } from '@features/Analytics/utils';\n\nexport const sendAnalyticsId = async ({\n googlePseudoId,\n userPseudoIdApplePay,\n userPseudoIdWinback,\n mg,\n}: {\n googlePseudoId?: string;\n userPseudoIdApplePay?: string;\n userPseudoIdWinback?: string;\n mg: number;\n}) =>\n await post({\n endpoint: isDevelopment\n ? 'https://dev.analytics.mentalgrowth.app/api/v1'\n : ANALYTICS_ENDPOINT_V2,\n path: 'id_aggregator',\n body: {\n user_pseudo_id: googlePseudoId,\n origin: 'mimika',\n mg: mg,\n user_pseudo_id_apple_pay: userPseudoIdApplePay,\n user_pseudo_id_winback: userPseudoIdWinback,\n },\n });\n\nexport const getAbTest = async ({\n name,\n userId,\n abortSignal,\n}: {\n name: string;\n userId?: number | null;\n abortSignal?: AbortSignal;\n}) =>\n await post({\n endpoint: ANALYTICS_ENDPOINT,\n path: 'single_web_ab_test',\n body: {\n test_name: name,\n server_id: userId,\n env_type:\n process.env.NEXT_PUBLIC_ENV === 'development' ? 'test' : 'production',\n },\n abortSignal,\n });\n\nexport const getAbTests = async ({\n variant,\n utm_source,\n utm_campaign,\n region,\n user_id,\n abortSignal,\n}: {\n variant: string | undefined;\n utm_source: string | undefined;\n utm_campaign: string | undefined;\n region: string | undefined;\n user_id: string | undefined;\n abortSignal?: AbortSignal;\n}) => {\n const isAndroidDevice =\n getMobileOperatingSystem() === MobileOperatingSystem.ANDROID\n ? 'android'\n : '';\n const isIosDevise =\n getMobileOperatingSystem() === MobileOperatingSystem.IOS ? 'ios' : '';\n const basePath = 'ab_tests';\n const fullUrl = `${basePath}?app=mimika&build=${\n isDevelopment ? 'test' : 'prod'\n }&os=${\n isAndroidDevice || isIosDevise\n }&variant=${variant}&utm_source=${utm_source}&utm_campaign=${utm_campaign}®ion=${region}&user_id=${user_id}`;\n\n const pseudoData = createTestSegmentFromQueryParameters();\n\n return (\n pseudoData ??\n (await get({\n endpoint: ANALYTICS_ENDPOINT_V2,\n path: fullUrl,\n abortSignal,\n }))\n );\n};\n","export const FACEBOOK_PIXEL_ID = process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID;\nexport const FACEBOOK_PIXEL_ID_ADQUANTUM =\n process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID_ADQUANTUM;\nexport const FACEBOOK_PIXEL_ID_UNI =\n process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID_UNI;\nexport const FACEBOOK_PIXEL_ID_CPM_TEST =\n process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID_CPM_TEST;\nexport const FACEBOOK_PIXEL_ID_V17 =\n process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_V17_ID;\nexport const FACEBOOK_PIXEL_ID_V18 =\n process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_V18_ID;\nexport const BING_ID = process.env.NEXT_PUBLIC_BING_ID;\nexport const GA_ID = process.env.NEXT_PUBLIC_GA_ID;\nexport const GA_ID_V2 = process.env.NEXT_PUBLIC_GA_ID_V2;\nexport const GTM_ID = process.env.NEXT_PUBLIC_GTM_ID;\nexport const PINTEREST_ID = process.env.NEXT_PUBLIC_PINTEREST_ID;\nexport const PINTEREST_ACCOUNT_ID =\n process.env.NEXT_PUBLIC_PINTEREST_ACCOUNT_ID;\nexport const TWITTER_ID = process.env.NEXT_PUBLIC_TWITTER_PIXEL_ID;\nexport const TIK_TOK_PIXEL = process.env.NEXT_PUBLIC_TIK_TOK_PIXEL_ID;\nexport const CLARITY_ID = process.env.NEXT_PUBLIC_CLARITY_ID;\nexport const CLARITY_V2_ID = process.env.NEXT_PUBLIC_CLARITY_V2_ID;\n\nexport const ANALYTICS_ENDPOINT = process.env\n .NEXT_PUBLIC_API_ANALYTICS_ENDPOINT as string;\nexport const ANALYTICS_ENDPOINT_V2 = process.env\n .NEXT_PUBLIC_API_ANALYTICS_ENDPOINT_V2 as string;\n\nexport const PINTEREST_EVENT_NAME_TO_RIGHT_CONVENTION = {\n AddToCart: 'add_to_cart',\n Checkout: 'checkout',\n Custom: 'custom',\n Lead: 'lead',\n PageVisit: 'page_visit',\n Search: 'search',\n Signup: 'signup',\n ViewCategory: 'view_category',\n WatchVideo: 'watch_video',\n};\n\nexport const FACEBOOK_IDS = new Set([\n FACEBOOK_PIXEL_ID,\n FACEBOOK_PIXEL_ID_ADQUANTUM,\n FACEBOOK_PIXEL_ID_UNI,\n FACEBOOK_PIXEL_ID_CPM_TEST,\n FACEBOOK_PIXEL_ID_V17,\n FACEBOOK_PIXEL_ID_V18,\n]);\n","import { useRouter } from 'next/router';\nimport { useCallback } from 'react';\n\nimport {\n ALL_VARIANTS,\n TpSource,\n TpVariantObject,\n} from 'src/constants/variants';\nimport { groupBy } from 'src/utils';\n\nimport {\n BING_ID,\n CLARITY_ID,\n FACEBOOK_PIXEL_ID,\n GA_ID,\n GA_ID_V2,\n PINTEREST_ID,\n TIK_TOK_PIXEL,\n TWITTER_ID,\n} from '../constants';\n\nexport const useShouldInit = (variant?: string) => {\n const router = useRouter();\n const { isReady, query } = router;\n\n const isValidVariantSource = useCallback(\n (source: TpSource) =>\n groupBy(ALL_VARIANTS, 'source')[source].some(\n (item: TpVariantObject) => item.variant_name === variant,\n ),\n [variant],\n );\n\n const TIK_TOK_SOURCES = isValidVariantSource('tiktok');\n const TWITTER_SOURCES = isValidVariantSource('twitter');\n const PINTEREST_SOURCES = isValidVariantSource('pinterest');\n const GOOGLE_SOURCES = isValidVariantSource('google');\n const FACEBOOK_SOURCES = isValidVariantSource('facebook');\n const BING_SOURCES = isValidVariantSource('bing');\n\n const shouldPixelInit =\n FACEBOOK_PIXEL_ID &&\n isReady &&\n FACEBOOK_SOURCES &&\n query['reset'] === undefined;\n const shouldPTInit =\n PINTEREST_ID &&\n PINTEREST_SOURCES &&\n isReady &&\n query['reset'] === undefined;\n const shouldBingInit =\n BING_ID && BING_SOURCES && isReady && query['reset'] === undefined;\n const shouldTwitterInit =\n TWITTER_ID && TWITTER_SOURCES && isReady && query['reset'] === undefined;\n const shouldTikTokInit =\n TIK_TOK_PIXEL && TIK_TOK_SOURCES && isReady && query['reset'] === undefined;\n const shouldGoogleAnalyticsInit = GA_ID || GA_ID_V2;\n\n const isSpecificHostname =\n typeof window !== 'undefined' &&\n (window.location.hostname === 'quiz.mimika-app.com' ||\n window.location.hostname === 'quiz.mimika-uni.com');\n\n const shouldGoogleAnalyticsV2Init = isSpecificHostname;\n const shouldClarityInit = CLARITY_ID;\n const shouldClarityV2Init = isSpecificHostname;\n\n return {\n shouldPixelInit,\n shouldPTInit,\n shouldTwitterInit,\n shouldTikTokInit,\n shouldGoogleAnalyticsInit,\n shouldGoogleAnalyticsV2Init,\n shouldClarityInit,\n shouldClarityV2Init,\n shouldBingInit,\n };\n};\n","import classNames from 'classnames';\nimport { observer } from 'mobx-react-lite';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useAnalyticsDebugger } from '@features/Analytics/hooks/useAnalytics';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { ALL_VARIANTS } from 'src/constants/variants';\nimport { groupBy } from 'src/utils';\nimport { useFeatures } from '@features/FeatureToggle';\nimport { useRouter } from 'next/router';\nimport styles from './debug-ui.module.scss';\ntype TpSource = 'PT' | 'GA' | 'FB';\ntype Event = {\n name: string;\n date: string;\n params?: Record;\n};\nexport const DebugUi = observer(() => {\n const [activeTab, setActiveTab] = useState('GA');\n const [hasMounted, setHasMounted] = useState(false);\n const [showTranslated, setShowTranslated] = useState(false);\n const {\n authStore: {\n variant: variantFromStorage\n },\n analyticsStore: {\n abTests\n }\n } = useStores();\n const features = useFeatures();\n const {\n query\n } = useRouter();\n const {\n events,\n clearEvents,\n eventsNumberVisible,\n setEventsNumberVisible\n } = useAnalyticsDebugger();\n const [activeVariant, setActiveVariant] = useState(variantFromStorage);\n const toggleEventsNumber = useCallback(() => setEventsNumberVisible(!eventsNumberVisible), [eventsNumberVisible, setEventsNumberVisible]);\n const groupedEvents = useMemo(() => groupBy(events, 'source'), [events]);\n const filteredEvents = useMemo(() => groupedEvents[activeTab] || [], [activeTab, groupedEvents]);\n const handleTabChange = useCallback((tab: TpSource) => setActiveTab(tab), []);\n const handleVariantChange = useCallback((event: React.ChangeEvent) => {\n setActiveVariant(event.target.value);\n }, []);\n const sortedVariants = useMemo(() => [...ALL_VARIANTS].sort((a, b) => a.variant_name.localeCompare(b.variant_name)), []);\n const abTestDisplay = useMemo(() => abTests && abTests.length > 0 ?
    \n

    Active A/B Tests:

    \n {abTests.map((test, index) =>

    {`${test.test_name} : ${test.case_name}`}

    )}\n
    : null, [abTests]);\n const applyTranslationStyles = useCallback(() => {\n const translatedElems = document.querySelectorAll('[data-trans]');\n for (const elem of translatedElems) {\n (elem as HTMLElement).style.color = 'green';\n }\n }, []);\n useEffect(() => {\n if (query['reset'] === undefined && query['hard_reset'] === undefined) {\n setHasMounted(true);\n setActiveVariant(variantFromStorage);\n }\n }, [query, variantFromStorage]);\n useEffect(() => {\n if (showTranslated) {\n applyTranslationStyles();\n const observer = new MutationObserver(() => {\n applyTranslationStyles();\n });\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n return () => observer.disconnect();\n }\n return;\n }, [showTranslated, applyTranslationStyles]);\n const renderEvents = useMemo(() => filteredEvents.map(({\n name,\n date,\n params\n }: Event) =>
    \n {name}\n {params && \n {JSON.stringify(params, null, 2)}\n }\n \n {new Date(date).toISOString()}\n \n
    ), [filteredEvents]);\n return
    \n
    \n \n {eventsNumberVisible ? 'off' : 'on'}\n \n\n {eventsNumberVisible && <>\n {hasMounted && }\n window.location.replace(`quiz?hard_reset=1&variant=${activeVariant}`)}>\n Reset\n \n \n Clear\n \n {Object.keys(groupedEvents).map(key => handleTabChange((key as TpSource))}>\n {key}\n )}\n setShowTranslated(prev => !prev)}>\n {showTranslated ? 'Hide' : 'Show'} Translated\n \n }\n
    \n\n {eventsNumberVisible && <>\n
    \n

    Active features:

    \n
    {JSON.stringify(features, null, 2)}
    \n
    \n {hasMounted && abTestDisplay}\n
    \n

    Events:

    \n
    {renderEvents}
    \n
    \n }\n
    ;\n});","export { useShouldInit } from './useShouldInit';\nexport { useAnalytics } from './useAnalytics';\n","import { observer } from 'mobx-react-lite';\nimport Script from 'next/script';\nimport { useEffect } from 'react';\nimport useCookie from 'react-use-cookie';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { GA_ID, GA_ID_V2, GTM_ID } from '../../constants';\nexport const GoogleAnalyticsComponent = observer(({\n shouldSecondGaInit,\n externalId\n}: {\n shouldSecondGaInit: boolean;\n externalId: string;\n}) => {\n const {\n authStore: {\n setGooglePseudoID\n }\n } = useStores();\n const [googlePseudoId] = useCookie('_ga', '0');\n useEffect(() => {\n setGooglePseudoID(googlePseudoId.slice(6));\n }, [googlePseudoId, setGooglePseudoID]);\n return <>\n \n ;\n});\nexport const GoogleTagManager = () => ;","import Cookies from 'js-cookie';\nimport { useRouter } from 'next/router';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst COOKIE_KEY = 'extId';\nconst COOKIE_EXPIRY_DAYS = 365;\n\nexport const useExternalId = (): string | null => {\n const { query, isReady } = useRouter();\n const [externalId, setExternalId] = useState(null);\n\n const generateRandomId = useCallback((): string => {\n return Math.floor(Math.random() * 100_000_000).toString();\n }, []);\n\n useEffect(() => {\n // Не начинаем работу, пока `useRouter` не готов\n if (!isReady) return;\n\n // Проверяем значение в query параметрах\n const queryExternalId = Array.isArray(query.externalId)\n ? query.externalId[0]\n : query.externalId;\n\n if (queryExternalId) {\n // Если ID есть в query, сохраняем его в куки и state\n if (queryExternalId !== Cookies.get(COOKIE_KEY)) {\n Cookies.set(COOKIE_KEY, queryExternalId, {\n expires: COOKIE_EXPIRY_DAYS,\n });\n }\n setExternalId(queryExternalId);\n return;\n }\n\n // Если ID уже есть в cookies, используем его\n const cookieExternalId = Cookies.get(COOKIE_KEY);\n if (cookieExternalId) {\n setExternalId(cookieExternalId);\n return;\n }\n\n // Если ID нет ни в query, ни в cookies, генерируем новый\n const newId = generateRandomId();\n Cookies.set(COOKIE_KEY, newId, { expires: COOKIE_EXPIRY_DAYS });\n setExternalId(newId);\n }, [isReady, query, generateRandomId]);\n\n // Всегда возвращаем строку (или пустую строку в крайних случаях)\n return externalId;\n};\n","import { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport Script from 'next/script';\nimport { useEffect, useMemo } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { FACEBOOK_PIXEL_ID, FACEBOOK_PIXEL_ID_ADQUANTUM, FACEBOOK_PIXEL_ID_CPM_TEST, FACEBOOK_PIXEL_ID_UNI, FACEBOOK_PIXEL_ID_V17, FACEBOOK_PIXEL_ID_V18 } from '../../constants';\nconst FbPixel = observer(({\n externalId\n}: {\n externalId: string;\n}) => {\n const {\n authStore: {\n variant\n },\n analyticsStore: {\n setFbPixelId\n }\n } = useStores();\n const router = useRouter();\n const {\n isReady,\n query\n } = router;\n const fbPixelIds: Array | null = useMemo(() => {\n if (isReady && typeof window !== 'undefined' && window.location.hostname === 'quiz.mimika-uni.com' && query['reset'] === undefined) {\n return [FACEBOOK_PIXEL_ID_UNI];\n }\n if (isReady && variant === 'variant16' && query['reset'] === undefined) {\n return [FACEBOOK_PIXEL_ID, FACEBOOK_PIXEL_ID_CPM_TEST, FACEBOOK_PIXEL_ID_ADQUANTUM];\n }\n if (isReady && variant === 'variant17' && query['reset'] === undefined) {\n return [FACEBOOK_PIXEL_ID_V17];\n }\n if (isReady && variant === 'variant18' && query['reset'] === undefined) {\n return [FACEBOOK_PIXEL_ID_V18];\n }\n return isReady && query['reset'] === undefined ? [FACEBOOK_PIXEL_ID] : null;\n }, [isReady, query, variant]);\n useEffect(() => {\n if (fbPixelIds != null && !fbPixelIds.includes(undefined)) {\n setFbPixelId((fbPixelIds as string[]));\n }\n }, [fbPixelIds, setFbPixelId]);\n return fbPixelIds ? <>\n \n {fbPixelIds.map((id, index) => )}\n : null;\n});\nexport default FbPixel;","import Script from 'next/script';\nexport const BingPixel = () => ;","import { observer } from 'mobx-react-lite';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { isDevelopment } from 'src/utils';\nimport { Clarity, GoogleAnalyticsComponent, PinterestPixel, TikTokPixel, TwitterPixel } from '@features/Analytics';\nimport { DebugUi } from '@features/Analytics/components/DebugUi';\nimport { useShouldInit } from '@features/Analytics/hooks';\nimport { GoogleTagManager } from '@features/Analytics/components/GoogleAnalytics';\nimport { GTM_ID } from '@features/Analytics/constants';\nimport { useExternalId } from '@features/Analytics/hooks/useExernalId';\nimport FbPixel from '../FacebookPixel';\nimport { BingPixel } from '@features/Analytics/components/BingPixel';\nexport const AnalyticsInject = observer(() => {\n const {\n authStore: {\n variant\n }\n } = useStores();\n const {\n shouldPixelInit,\n shouldPTInit,\n shouldTwitterInit,\n shouldTikTokInit,\n shouldGoogleAnalyticsV2Init,\n shouldGoogleAnalyticsInit,\n shouldClarityInit,\n shouldClarityV2Init,\n shouldBingInit\n } = useShouldInit(variant);\n const externalId = useExternalId();\n return <>\n {shouldPixelInit && externalId && }\n {shouldGoogleAnalyticsV2Init && GTM_ID && }\n {shouldGoogleAnalyticsInit && externalId && }\n {shouldPTInit && }\n {shouldBingInit && }\n {shouldTwitterInit && }\n {shouldTikTokInit && }\n {(shouldClarityInit || shouldClarityV2Init) && }\n {isDevelopment && }\n ;\n});","import { observer } from 'mobx-react-lite';\nimport { useEffect } from 'react';\nimport { clarity } from 'react-microsoft-clarity';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { CLARITY_ID, CLARITY_V2_ID } from '../../constants';\nexport const Clarity = observer(({\n initSecondClarity\n}: {\n initSecondClarity: boolean;\n}) => {\n const {\n analyticsStore: {\n segment,\n abTests\n },\n authStore: {\n googlePseudoID\n }\n } = useStores();\n useEffect(() => {\n clarity.init(((initSecondClarity ? CLARITY_V2_ID : CLARITY_ID) as string));\n }, [initSecondClarity]);\n useEffect(() => {\n if (segment) {\n clarity.setTag('abTestSegment', segment);\n }\n const firstTest = abTests?.[0];\n if (firstTest) {\n const {\n test_name,\n case_name\n } = firstTest;\n if (test_name) clarity.setTag('abTestName', test_name);\n if (case_name) clarity.setTag('abTestCaseName', case_name);\n }\n }, [segment, abTests]);\n useEffect(() => {\n if (googlePseudoID) {\n clarity.identify('USER_ID', {\n googlePseudoID: googlePseudoID\n });\n }\n }, [googlePseudoID]);\n return null;\n});","import Script from 'next/script';\nimport { PINTEREST_ID } from '@features/Analytics/constants';\nexport const PinterestPixel = () => ;","import Script from 'next/script';\nimport { TIK_TOK_PIXEL } from '@features/Analytics/constants';\nexport const TikTokPixel = () => TIK_TOK_PIXEL != null ? : null;","import Script from 'next/script';\nexport const TwitterPixel = () => ;","import Cookies from 'js-cookie';\n\nimport { post } from 'src/api/api';\nimport { ENDPOINT_MICROSERVICE, TEST_EVENT_CODE } from 'src/constants/api';\n\nconst pixelVariants = {\n '313267054006349': 'mimika',\n '1386433265600406': 'mimika_variant17',\n '919317399289097': 'mimika_web_v18',\n};\n\ntype TpEventName =\n | 'AddToCart'\n | 'AddPaymentInfo'\n | 'ViewContent'\n | 'CompleteRegistration'\n | 'InitiateCheckout'\n | 'Subscribe'\n | 'Purchase';\n\ntype TpPostPath =\n | 'event_start_onboard'\n | 'event_completed_registration'\n | 'event_user_init_checkout'\n | 'event_add_to_cart'\n | 'event_add_payment_info'\n | 'event_purchase';\n\ntype TpPostOptions = {\n email?: string;\n subscription_id?: string | number;\n stripe_subscription_id?: string | number;\n first_name?: string;\n last_name?: string;\n date_of_birth?: string;\n gender?: string;\n currency?: string;\n};\n\ntype TpFacebookEvent = {\n eventName: TpEventName;\n postPath: TpPostPath;\n options?: { [key: string]: any };\n eventId?: string;\n postOptions?: TpPostOptions;\n variant?: string;\n sendS2Sevent?: boolean;\n};\n\nexport const fbAnalytics = (props: TpFacebookEvent) => {\n const {\n eventName,\n eventId: eventIdProperty,\n options = {},\n postPath,\n postOptions = {},\n sendS2Sevent = true,\n } = props;\n const externalId = Cookies.get('extId');\n const fbp = Cookies.get('_fbp');\n const fbc = Cookies.get('_fbc');\n const randomInt = Math.floor(Math.random() * 100_000_000);\n\n const eventId = eventIdProperty || `${eventName}.${randomInt}`;\n\n const sendAnalyticRequest = async () => {\n try {\n // @ts-ignore\n const pixelsArray = window?.fbq\n ?.getState()\n .pixels.map((pixel: any) => pixel.id);\n\n await Promise.all(\n pixelsArray.map(\n async (\n pixel: '313267054006349' | '1386433265600406' | '919317399289097',\n ) =>\n await post({\n endpoint: ENDPOINT_MICROSERVICE,\n path: postPath,\n body: {\n fbp,\n fbc,\n event_id: eventId,\n external_id: externalId,\n test_event_code: TEST_EVENT_CODE,\n origin: pixelVariants[pixel],\n ...postOptions,\n },\n }),\n ),\n );\n } catch (error) {\n console.error(error);\n }\n };\n\n // @ts-ignore\n window?.fbq?.('track', eventName, options, {\n eventID: eventId,\n extern_id: externalId,\n });\n\n (fbp || externalId) &&\n process.env.NEXT_PUBLIC_ENV === 'production' &&\n sendS2Sevent &&\n sendAnalyticRequest().then((r) => r);\n};\n","export const googlePageView = (url: string) => {\n // @ts-ignore\n window.gtag?.('config', GA_ID, {\n page_path: url,\n });\n};\n\nexport const googleAnalyticsEvent = ({\n eventName,\n properties,\n}: {\n eventName: string;\n properties?: { [key: string]: any };\n}) => window.gtag?.('event', eventName, properties);\n\nexport const googleSetUserProperties = ({\n properties,\n}: {\n properties: { [key: string]: string | number | boolean | null };\n}) => window.gtag?.('set', 'user_data', properties);\n","type EventName =\n | 'AddPaymentInfo'\n | 'AddToCart'\n | 'AddToWishlist'\n | 'ClickButton'\n | 'CompletePayment'\n | 'CompleteRegistration'\n | 'Contact'\n | 'Download'\n | 'InitiateCheckout'\n | 'PlaceAnOrder'\n | 'Search'\n | 'SubmitForm'\n | 'Subscribe'\n | 'ViewContent';\n\nexport const tikTokEvent = (\n name: EventName,\n options?: { [key: string]: any },\n) => {\n // @ts-ignore\n\n window.ttq?.track(name, options);\n};\n\nexport const tikTokAdvancedMatching = (email: string) => {\n // @ts-ignore\n\n window.ttq?.identify({\n email: email,\n });\n};\n","export { AnalyticsInject } from './components/AnalyticsInject';\nexport { Clarity } from './components/Clarity';\nexport { GoogleAnalyticsComponent } from './components/GoogleAnalytics';\nexport { PinterestPixel } from './components/PinterestPixel';\nexport { TikTokPixel } from './components/TikTokPixel';\nexport { TwitterPixel } from './components/TwitterPixel';\n\nexport { fbAnalytics } from './services/fb-analytics';\nexport { googleAnalyticsEvent, googleSetUserProperties } from './services/gtag';\nexport { tikTokAdvancedMatching, tikTokEvent } from './services/tik-tok-pixel';\nexport { twitterEvent } from './services/twitter-pixel';\n\nexport { useAnalytics } from './hooks';\n\nexport { FACEBOOK_PIXEL_ID } from './constants';\n\nexport { getAbTest, getAbTests } from './api/analytics';\n","export const sendBingSpreadedConversion = (email?: string) => {\n if (typeof window === 'undefined' || email === undefined) return;\n\n window.uetq = window.uetq || [];\n window.uetq.push('set', { pid: { em: email } });\n};\n","import Cookies from 'js-cookie';\n\nexport type TpTwitterEventId =\n | 'tw-oehe8-oehen' //registration\n | 'tw-oehe8-oehek' //checkout\n | 'tw-oehe8-oehej'; //purchase\n\nconst externalId = Cookies.get('extId');\nexport const twitterEvent = (\n eventId: TpTwitterEventId,\n options: { [key: string]: any },\n) => {\n // @ts-ignore\n window?.twq?.('event', eventId, { conversion_id: externalId, ...options });\n};\n","// Modified fork of https://github.com/sergiodxa/flagged lib\nimport { FEATURE_FLAGS } from '@features/FeatureToggle/FeatureFlagProvider';\nimport { ComponentType, ReactNode, createContext, useContext } from 'react';\ntype FeatureFlag = (typeof FEATURE_FLAGS)[number];\ntype FeatureGroup = Record | {\n [key: string]: boolean;\n};\nlet FeatureFlagsContext = createContext({});\nfunction transformFlags(features: FeatureGroup): FeatureGroup {\n if (!Array.isArray(features)) return features;\n return Object.fromEntries(features.map(feature => [feature, true]));\n}\nfunction mergeFeatures(a: FeatureGroup, b: FeatureGroup): FeatureGroup {\n return {\n ...a,\n ...b\n };\n}\nexport function FlagsProvider({\n features,\n children\n}: {\n features?: FeatureGroup;\n children: ReactNode;\n}) {\n let currentFeatures = useFeatures();\n return \n {children}\n ;\n}\nexport function useFeatures(): FeatureGroup {\n return useContext(FeatureFlagsContext);\n}\nexport function useFeature(name: FeatureFlag): boolean | FeatureGroup {\n let features = useFeatures();\n if (Array.isArray(features)) return features.includes(name);\n if (typeof features[name] === 'boolean') return features[name];\n let featureGroup: FeatureGroup | boolean = structuredClone(features);\n for (let featureName of name.split('/')) {\n if (typeof featureGroup === 'boolean') return featureGroup;\n if (featureGroup[(featureName as FeatureFlag)] === undefined) return false;\n featureGroup = featureGroup[(featureName as FeatureFlag)];\n }\n return featureGroup;\n}\nexport function Feature({\n name,\n children,\n render = children\n}: {\n name: string;\n children?: ReactNode | ((hasFeature: boolean | FeatureGroup) => JSX.Element);\n render?: ReactNode | ((hasFeature: boolean | FeatureGroup) => JSX.Element);\n}) {\n let hasFeature = useFeature((name as FeatureFlag));\n if (typeof render === 'function') return render(hasFeature);\n if (!hasFeature) return null;\n return <>{render};\n}\nexport function withFeature(featureName: string) {\n return (Component: ComponentType) => {\n function WithFeature(props: Props) {\n return \n \n ;\n }\n WithFeature.displayName = `WithFeature(${Component.displayName || Component.name})`;\n return WithFeature;\n };\n}","import { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { ReactNode, useMemo } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { FlagsProvider } from './FlaggedUtil';\nimport { ACADEMIA_UPSELL_TEST_NAME, BEFORE_AFTER_PAYWALL_TEST_NAME, CHEEP_CHALLENGE_TEST_NAME, CheepChallengeTestCaseName, HIDE_PAYPAL_TEST_NAME, SCANNER_TEST_NAME, SIMPLE_PAYWALL_TEST_NAME } from 'src/constants/analytics';\nimport { useAtomValue } from 'jotai';\nimport { paymentMethodWithPersistence, selectedPlanAtom } from '@features/Stripe/atoms';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { TpStripeVariants } from 'src/constants/variants';\nconst FEATURE_FLAG_AB_TESTS = new Map([['isScannerEnabled', {\n feature: 'scannerFeature',\n testName: SCANNER_TEST_NAME\n}], ['isSimplePaywallEnabled', {\n feature: 'simplePaywallFeature',\n testName: SIMPLE_PAYWALL_TEST_NAME\n}], ['isAcademyUpsellEnabled', {\n feature: 'academyUpsellFeature',\n testName: ACADEMIA_UPSELL_TEST_NAME\n}], ['isBeforeAfterPaywallTestEnabled', {\n feature: 'beforeAfterPaywallTest',\n testName: BEFORE_AFTER_PAYWALL_TEST_NAME\n}], ['isHidePayPalTestEnabled', {\n feature: 'hidePayPalTest',\n testName: HIDE_PAYPAL_TEST_NAME\n}]]);\nexport const FEATURE_FLAGS = ([...Array.from(FEATURE_FLAG_AB_TESTS.values()).map(flag => flag.feature), 'usFeature', 'introOfferFeature', 'simpleFeature', 'cheapOfferFeature'] as const);\ntype TpFeatureFlags = (typeof FEATURE_FLAGS)[number] & {\n [key: string]: boolean;\n};\nconst startsWithB = (inputString: string | undefined | null): boolean => /^B/.test(inputString || '');\nexport const FeatureFlagProvider = observer(({\n children\n}: {\n children: ReactNode;\n}) => {\n const {\n quizStore: {\n countryCode\n },\n analyticsStore: {\n getCaseNameByTestName,\n segment,\n saveAbTest\n },\n authStore: {\n variant\n }\n } = useStores();\n const selectedPlanInfo = useAtomValue(selectedPlanAtom);\n const {\n query\n } = useRouter();\n const featuresFromQuery = useMemo(() => {\n if (typeof window === 'undefined') return [];\n const featuresFromStorage = sessionStorage.getItem('features')?.split(',') || [];\n if (query.features && query['hard_reset'] == undefined) {\n const features = typeof query.features === 'string' ? query.features.split(',') : query.features;\n sessionStorage.setItem('features', features.toString());\n return features;\n }\n return featuresFromStorage;\n }, [query.features, query['hard_reset']]);\n const featuresAbTestingEnabled = useMemo(() => {\n const evaluatedFlags = new Map();\n if (query.hasOwnProperty('case_name')) {\n saveAbTest('default', [{\n test_name: (query['test_name'] as string),\n case_name: (query['case_name'] as string)\n }]);\n return evaluatedFlags;\n }\n if (!segment) {\n return Object.fromEntries(evaluatedFlags);\n }\n FEATURE_FLAG_AB_TESTS.forEach((value, _) => {\n evaluatedFlags.set(value.feature, startsWithB(getCaseNameByTestName(value.testName)));\n });\n return Object.fromEntries(evaluatedFlags);\n }, [getCaseNameByTestName, segment, query, saveAbTest]);\n const isCheapOfferEnabled = getCaseNameByTestName(CHEEP_CHALLENGE_TEST_NAME) === CheepChallengeTestCaseName.ONBOARDING_BEGIN || getCaseNameByTestName(CHEEP_CHALLENGE_TEST_NAME) === CheepChallengeTestCaseName.ONBOARDING_MIDDLE;\n const {\n isUsProductIdValid\n } = useGetStripeProductId({\n variant: (variant as TpStripeVariants) ?? ('default' as TpStripeVariants)\n });\n const isVariantUsEnabled = useMemo(() => countryCode === 'US' && isUsProductIdValid, [countryCode, isUsProductIdValid]);\n const isIntroOfferEnabled = useMemo(() => selectedPlanInfo.introOffer.length > 0 && Number(selectedPlanInfo.introOfferData.introOfferDuration) > 0,\n // () => INTRO_OFFER_VARIANTS_SET.has(variant ?? '') || isVariantUsEnabled,\n [selectedPlanInfo.introOffer, selectedPlanInfo.introOfferData.introOfferDuration]);\n const paymentMethod = useAtomValue(paymentMethodWithPersistence);\n const isPayedWithBraintreePayPal = paymentMethod === 'paypal';\n const isSimpleOnboarding = variant === 'variantlong';\n const features = useMemo((): TpFeatureFlags => ({\n ...featuresAbTestingEnabled,\n usFeature: isVariantUsEnabled,\n introOfferFeature: isIntroOfferEnabled,\n simpleFeature: isSimpleOnboarding,\n cheapOfferFeature: isCheapOfferEnabled,\n academyUpsellFeature: !isPayedWithBraintreePayPal && featuresAbTestingEnabled.academyUpsellFeature,\n ...Object.fromEntries(featuresFromQuery.map(feature => [feature, true]))\n }), [featuresAbTestingEnabled, isVariantUsEnabled, isIntroOfferEnabled, isSimpleOnboarding, featuresFromQuery, isCheapOfferEnabled, isPayedWithBraintreePayPal]);\n return {children};\n});","export { FeatureFlagProvider } from './FeatureFlagProvider';\nexport { useFeature, useFeatures } from './FlaggedUtil';\n","import { atom } from 'jotai';\n\nexport const braintreeClientTokenAtom = atom('');\n","import { get, post } from 'src/api/api';\nimport { ENDPOINT_MICROSERVICE } from 'src/constants/api';\nimport { SubscriptionPlanSnapshot } from 'src/models/subscription-plan/subscription-plan';\n\ntype TpPaddleLinkResponse = {\n response: { url: string };\n success: boolean;\n};\n\nexport const generatePaddlePayLink = async ({\n productId,\n customerEmail,\n token,\n userId,\n abortSignal,\n}: {\n productId: string | number;\n customerEmail: string;\n token: string;\n userId: string | number;\n abortSignal?: AbortSignal;\n}): Promise =>\n await post({\n endpoint: ENDPOINT_MICROSERVICE,\n path: 'paddle_generate_pay_link',\n body: {\n product_id: productId,\n customer_email: customerEmail,\n token: token,\n user_id: userId,\n vendor_id: Number(process.env.NEXT_PUBLIC_PADDLE_VENDOR_ID),\n },\n abortSignal,\n });\n\nexport const createChargebeeCustomer = ({ nonce }: { nonce: string }) =>\n post({\n endpoint: ENDPOINT_MICROSERVICE,\n path: 'chargebee/create_customer',\n body: {\n type: 'card',\n payment_type: 'card',\n gateway_account_id: 'gw_199Lb0Tn68WUU1Gk',\n reference_id: 'cus_I58PkwpAskxXlJ',\n tmp_token: nonce,\n },\n });\n\nconst responseToSubscriptionPlan = (\n response: any,\n): SubscriptionPlanSnapshot => ({\n id: response['id'],\n name: response['name'],\n currency: response['currency'] != null ? response['currency'] : 'USD',\n priceAfterIntroOffer:\n response['price_after_intro_offer'] != null\n ? response['price_after_intro_offer']\n : response['recurring_price'],\n billingPeriod: response['billing_period'],\n billingPeriodUnit: response['billing_period_unit'],\n trialPeriodDays:\n response['trial_period_days'] != null\n ? response['trial_period_days']\n : response['trial_days'],\n specialOffer: response['special_offer'],\n discountPercentage: response['discount_percentage'],\n displayPrice: response['display_price'],\n fractionalPrice: +response['fractional_price'],\n fractionalPriceDiscount: +response['fractional_price_discount'],\n fullPrice: +response['full_price'],\n fullPriceDiscount: +response['full_price_discount'],\n initialPrice:\n response['initial_price'] != null ? +response['initial_price'] : undefined,\n group: response['group'],\n description: response['description'],\n merchantAccountId: response['merchant_account_id'] ?? undefined,\n order: response['order'],\n paddlePlanId:\n response['paddle_plan_id'] != null\n ? +response['paddle_plan_id']\n : undefined,\n paddleIternalName:\n response['paddle_internal_name'] != null\n ? response['paddle_internal_name']\n : undefined,\n paypalPlanId: response['paypal_plan_id'] ?? undefined,\n stripePriceId: response['stripe_price_id'] ?? undefined,\n nuveiPlanId:\n response['nuvei_plan_id'] != null ? +response['nuvei_plan_id'] : undefined,\n braintreePlanId:\n response['braintree_plan_id'] != null\n ? response['braintree_plan_id']\n : undefined,\n hideDescription:\n response['hide_description'] != null\n ? response['hide_description']\n : undefined,\n gift: response['gift'] != null ? response['gift'] : undefined,\n preselected:\n response['preselected'] != null ? response['preselected'] : undefined,\n introOfferData: response['intro_offer_data'] ?? undefined,\n introOffer: response['intro_offer'] ?? undefined,\n});\n\nexport const fetchSubscriptionPlans = async ({\n abortSignal,\n group,\n paddle,\n countryCode,\n}: {\n abortSignal?: AbortSignal;\n group?: string;\n paddle?: boolean;\n countryCode?: string;\n}): Promise => {\n const responseObject = await get({\n endpoint: ENDPOINT_MICROSERVICE,\n path: paddle ? 'paddle_plans' : 'subscription_plans',\n abortSignal,\n params: { group: group ?? '', country_code: countryCode ?? '' },\n });\n return responseObject.map((planResponseObject: any) =>\n responseToSubscriptionPlan(planResponseObject),\n );\n};\n\nexport const createBraintreeSubscription = async ({\n customerId,\n customerToken,\n merchantAccountId,\n planId,\n paymentMethodNonce,\n paymentMethodVaulted = true,\n isStripePAth,\n abortSignal,\n btIntroOfferAmount,\n btIntroOfferCurrency,\n cancelAtPeriodEnd,\n app,\n}: {\n customerId: string;\n customerToken: string;\n merchantAccountId?: string;\n planId: string;\n paymentMethodNonce: string;\n paymentMethodVaulted?: boolean;\n abortSignal?: AbortSignal;\n isStripePAth?: boolean;\n btIntroOfferAmount?: string;\n btIntroOfferCurrency?: string;\n cancelAtPeriodEnd?: boolean;\n app?: string;\n}): Promise =>\n await post({\n endpoint: ENDPOINT_MICROSERVICE,\n path: isStripePAth\n ? 'braintree_create_subscription_from_stripe'\n : 'braintree_create_subscription',\n body: {\n app,\n user_id: customerId,\n token: customerToken,\n plan_id: planId,\n payment_method_nonce: paymentMethodNonce,\n payment_method_vaulted: paymentMethodVaulted,\n merchant_account_id: merchantAccountId,\n bt_introoffer_amount: btIntroOfferAmount,\n bt_introoffer_currency: btIntroOfferCurrency,\n cancel_at_period_end: cancelAtPeriodEnd,\n },\n abortSignal,\n });\n","import { axiosMicroservice } from 'src/api/axios';\n\nexport type TpGenerateBraintreeClientToken = {\n customerId: string | number;\n customerEmail: string;\n merchantAccountId: string | number;\n app?: string;\n};\n\nexport const generateBraintreeClientToken = async ({\n customerId,\n customerEmail,\n merchantAccountId,\n app = 'FaceYoga',\n}: TpGenerateBraintreeClientToken): Promise => {\n const { data } = await axiosMicroservice.post(\n 'braintree_generate_client_token',\n {\n app,\n user_id: customerId,\n email: customerEmail,\n merchant_account_id: merchantAccountId,\n },\n );\n return data;\n};\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useAtom } from 'jotai';\nimport { useCallback, useEffect } from 'react';\n\nimport {\n braintreeClientTokenAtom,\n generateBraintreeClientToken,\n} from '@features/Payments';\nimport { TpGenerateBraintreeClientToken } from '@features/Payments/api/generateBraintreeClientToken';\nimport { useGetAppName } from 'src/utils/hooks';\n\nexport const useGenerateBraintreeClientToken = ({\n userFields,\n merchantAccountId,\n}: {\n userFields: { email?: string; id?: number | string };\n merchantAccountId?: number | string | null;\n}): string | null => {\n const queryClient = useQueryClient();\n const app = useGetAppName();\n const [braintreeClientToken, setBraintreeClientToken] = useAtom(\n braintreeClientTokenAtom,\n );\n\n const mutationCallback = useCallback(\n (variables: TpGenerateBraintreeClientToken) =>\n generateBraintreeClientToken({\n ...variables,\n app,\n }),\n [app],\n );\n\n const { mutateAsync: mutation } = useMutation({\n mutationFn: mutationCallback,\n mutationKey: ['generate-braintree-client-token'],\n onSuccess: (data: string) => {\n setBraintreeClientToken(data);\n queryClient.invalidateQueries({\n queryKey: ['stripe-subscriptions'],\n });\n },\n });\n\n useEffect(() => {\n if (\n userFields.id &&\n userFields.email &&\n merchantAccountId &&\n braintreeClientToken === ''\n ) {\n mutation({\n customerEmail: userFields.email,\n customerId: userFields.id.toString(),\n merchantAccountId: merchantAccountId,\n }).then((response: string) => setBraintreeClientToken(response));\n }\n }, [\n braintreeClientToken,\n merchantAccountId,\n mutation,\n setBraintreeClientToken,\n userFields.email,\n userFields.id,\n ]);\n\n return braintreeClientToken;\n};\n","import { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\nimport styles from './intro-offer-disclaimer.module.scss';\nexport const IntroOfferDisclaimer = ({\n subscriptionPlan\n}: {\n subscriptionPlan: SubscriptionPlan;\n}) =>
    \n You agree that{' '}\n {`${subscriptionPlan.fullPriceDiscount} ${subscriptionPlan.currency}`} will\n be charged as an intro offer, and, then{' '}\n {`${subscriptionPlan.priceAfterIntroOffer} ${subscriptionPlan.currency}`}{' '}\n will be automatically billed every {subscriptionPlan.billingPeriod}{' '}\n {subscriptionPlan.billingPeriodUnit}. Cancel anytime.\n
    ;","import type { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\n\nimport {\n googleAnalyticsEvent,\n tikTokAdvancedMatching,\n tikTokEvent,\n} from '@features/Analytics';\nimport { twitterEvent } from '@features/Analytics/services/twitter-pixel';\n\nimport { PaymentSystem } from './use-payment-system';\n\nexport enum AnalyticsPaymentSystem {\n BRAINTREE = 'braintree',\n}\n\nexport enum AnalyticsPaymentMethod {\n CARD = 'credit_card',\n APPLE_PAY = 'apple_pay',\n GOOGLE_PAY = 'google_pay',\n PAYPAL = 'paypal',\n}\n\nexport type TpCheckoutPaymentRequest = {\n subscriptionPlan:\n | SubscriptionPlan\n | { fullPriceDiscount: number; id: string };\n paymentMethod: AnalyticsPaymentMethod;\n paymentSystem: PaymentSystem | AnalyticsPaymentSystem;\n email: string;\n variant: string | undefined;\n};\n\nexport const handleCheckoutOpenRequest = (props: TpCheckoutPaymentRequest) => {\n const { subscriptionPlan, paymentMethod, email, variant } = props;\n\n twitterEvent('tw-oehe8-oehek', { email_address: email });\n\n tikTokAdvancedMatching(email);\n tikTokEvent('AddPaymentInfo', { content_id: subscriptionPlan.id });\n\n googleAnalyticsEvent({\n eventName: 'add_payment_info',\n properties: {\n value: subscriptionPlan.fullPriceDiscount,\n payment_system: 'braintree',\n payment_method: paymentMethod,\n },\n });\n};\n\nexport const handleCheckoutOpenRequestWithPaymentSystem = (\n props: TpCheckoutPaymentRequest,\n) => {\n const { subscriptionPlan, paymentMethod, email, variant } = props;\n let analyticsPaymentSystem: AnalyticsPaymentSystem =\n AnalyticsPaymentSystem.BRAINTREE;\n\n handleCheckoutOpenRequest({\n subscriptionPlan,\n paymentMethod,\n paymentSystem: analyticsPaymentSystem,\n email,\n variant,\n });\n};\n","import { currencyReplacer as mentalCurrencyReplacer } from '@mentalgrowth/web_utils';\n\nexport const currencyReplacer = mentalCurrencyReplacer;\n","import { useRouter } from 'next/router';\nimport { useCallback } from 'react';\n\nimport { routes } from 'src/constants/navigation';\n\nimport { PaymentModalStatus } from '@features/Payments';\nimport { PAYMENT_MODAL_QUERY_PARAM } from '@features/Paywall';\n\nexport enum PaymentCompletionStatus {\n SUCCESS = 'success',\n FAILURE = 'failure',\n}\n\nconst PAYMENT_COMPLETION_STATUSES = Object.values(\n PaymentCompletionStatus,\n) as string[];\nexport const PAYMENT_STATUS_QUERY_PARAM = 'payment_status';\n\nexport const getPaymentCompleteUrl = (\n status?: PaymentCompletionStatus,\n useAlternativeRoute = false,\n) => {\n const url = new URL(location.href);\n url.searchParams.delete(PAYMENT_STATUS_QUERY_PARAM);\n if (useAlternativeRoute && status === PaymentCompletionStatus.SUCCESS) {\n url.pathname = routes.paymentSuccess;\n } else if (status != null) {\n url.searchParams.append(PAYMENT_STATUS_QUERY_PARAM, status);\n }\n return url.href;\n};\n\nexport const usePaymentCompletionStatus = () => {\n const router = useRouter();\n const { query } = router;\n\n const paymentCompletionStatusQueryValue = query[PAYMENT_STATUS_QUERY_PARAM];\n const paymentCompletionStatus =\n typeof paymentCompletionStatusQueryValue === 'string' &&\n PAYMENT_COMPLETION_STATUSES.includes(paymentCompletionStatusQueryValue)\n ? (paymentCompletionStatusQueryValue as PaymentCompletionStatus)\n : undefined;\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: router is not changing\n const setPaymentCompletionStatus = useCallback(\n ({\n value,\n selectedPlanId,\n }: {\n value: PaymentCompletionStatus | undefined;\n selectedPlanId: string | undefined;\n }) => {\n const { query, pathname } = router;\n const newQuery = value\n ? {\n ...query,\n ['plan']: selectedPlanId,\n [PAYMENT_STATUS_QUERY_PARAM]: value,\n [PAYMENT_MODAL_QUERY_PARAM]: PaymentModalStatus.HIDE,\n }\n : {\n ...query,\n ['plan']: selectedPlanId,\n [PAYMENT_STATUS_QUERY_PARAM]: undefined,\n };\n // noinspection JSIgnoredPromiseFromCall\n router.replace({ pathname, query: newQuery }, undefined, {\n shallow: true,\n });\n },\n [],\n );\n\n return { paymentCompletionStatus, setPaymentCompletionStatus };\n};\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgLock = function SvgLock(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.237 6.696h-.403l-.002-1.914C11.83 2.696 10.052.998 7.865 1S3.899 2.699 3.9 4.785L3.903 6.7H3.76C3.008 6.7 2.398 7.283 2.4 8v5.701C2.4 14.418 3.01 15 3.763 15l8.477-.005c.752 0 1.361-.581 1.36-1.299V7.994c0-.717-.612-1.298-1.363-1.298M5.365 6.7 5.36 4.785c0-1.318 1.122-2.39 2.504-2.391 1.38 0 2.504 1.072 2.504 2.388l.004 1.914z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgLock);\nexport default Memo;","import braintreeDropin, { Dropin } from 'braintree-web-drop-in';\nimport { observer } from 'mobx-react-lite';\nimport { ComponentProps, useCallback, useEffect, useRef, useState } from 'react';\nimport Modal from 'src/components/common/modal/modal/modal';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\nimport { useAnalytics } from '@features/Analytics';\nimport { AnalyticsPaymentMethod } from '@features/Payments';\nimport Lock from '../../../../assets/icons/lock.svg';\nimport styles from './braintree-modal.module.scss';\nexport const BRAINTREE_CONTAINER_ID = 'braintree-dropin-container';\nconst BraintreeModal = observer(({\n subscriptionPlan,\n clientToken,\n onCheckoutComplete,\n ...props\n}: {\n subscriptionPlan: SubscriptionPlan;\n clientToken?: string;\n onCheckoutComplete: (paymentMethodNonce: string) => void;\n} & Omit, 'children'>) => {\n const {\n trackGoogleEvent\n } = useAnalytics();\n const {\n show\n } = props;\n const dropin = useRef();\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: show is not changing\n useEffect(() => () => {\n dropin.current?.teardown();\n dropin.current = undefined;\n }, [show]);\n const [isLoading, setIsLoading] = useState(true);\n const [isFormValid, setIsFormValid] = useState(false);\n useEffect(() => {\n if (show) {\n if (clientToken != null && !dropin.current) {\n (async () => {\n setIsLoading(true);\n try {\n dropin.current = await braintreeDropin.create({\n authorization: clientToken,\n container: `#${BRAINTREE_CONTAINER_ID}`,\n threeDSecure: {\n amount: subscriptionPlan.immediatePrice.toFixed(2)\n }\n });\n dropin.current.on('paymentMethodRequestable', () => {\n setIsFormValid(true);\n });\n dropin.current.on('noPaymentMethodRequestable', () => {\n setIsFormValid(false);\n });\n if (dropin.current.isPaymentMethodRequestable()) {\n setIsFormValid(true);\n }\n } finally {\n setIsLoading(false);\n }\n })();\n } else {\n setIsLoading(false);\n }\n }\n }, [clientToken, show, subscriptionPlan.immediatePrice]);\n const {\n authStore\n } = useStores();\n const {\n user\n } = authStore;\n const handleSubmit = useCallback(async () => {\n setIsLoading(true);\n try {\n const {\n nonce\n } = await dropin.current!.requestPaymentMethod({\n threeDSecure: {\n amount: subscriptionPlan.immediatePrice.toFixed(2),\n email: user!.email\n }\n });\n onCheckoutComplete(nonce);\n trackGoogleEvent({\n eventName: 'add_payment_info_chosen',\n options: {\n payment_system: 'braintree',\n payment_method: AnalyticsPaymentMethod.CARD\n }\n });\n } catch (error) {\n setIsLoading(false);\n console.error(error);\n }\n }, [onCheckoutComplete, subscriptionPlan.immediatePrice, trackGoogleEvent, user]);\n const handleCloseModal = useCallback(() => {\n trackGoogleEvent({\n eventName: 'add_payment_info_skipped',\n options: {\n payment_system: 'braintree',\n payment_method: AnalyticsPaymentMethod.CARD\n }\n });\n }, [trackGoogleEvent]);\n return \n } startIconClassName={styles.submitButtonIcon} fullWidth disabled={!isFormValid} onClick={handleSubmit} loading={isLoading}>\n Proceed\n \n\n

    \n {!subscriptionPlan.hasTrial && <>\n Total price:\n \n {` ${Number(subscriptionPlan.fullPriceDiscount).toFixed(2)} ${subscriptionPlan.currency}`}{' '}\n \n }\n {!subscriptionPlan.hasTrial ? `charged for ${subscriptionPlan.billingPeriod} ${subscriptionPlan.billingPeriodUnit}${subscriptionPlan.billingPeriod === 1 ? '' : 's'}` : <>\n {' '}\n You agree that after{' '}\n {`${subscriptionPlan.trialPeriodDays} ${subscriptionPlan.trialPeriodDays > 1 ? 'days ' : 'day '}`}\n trial period you will be automatically billed{' '}\n {`${subscriptionPlan.priceAfterIntroOffer} ${subscriptionPlan.currency}`}{' '}\n every{' '}\n {`${subscriptionPlan.billingPeriod} ${subscriptionPlan.billingPeriodUnit}`}\n . Cancel anytime.\n }\n

    \n } {...props}>\n
    \n ;\n});\nexport default BraintreeModal;","import braintree, { ApplePayPaymentRequest } from 'braintree-web';\nimport { useAtomValue } from 'jotai';\nimport { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport type { SubscriptionPlan } from 'src/models/subscription-plan/subscription-plan';\nimport { useAnalytics } from '@features/Analytics';\nimport { createBraintreeSubscription } from '@features/Payments/api/payments-api';\nimport { braintreeClientTokenAtom } from '@features/Payments/atoms';\nimport BraintreeModal from '@features/Payments/components/braintree-modal/braintree-modal';\nimport { AnalyticsPaymentMethod, PaymentCompletionStatus, usePaymentCompletionStatus } from '@features/Payments';\nimport { useGetAppName } from 'src/utils/hooks';\nexport enum PaymentSystem {\n BRAINTREE,\n}\ntype TpApplePayExtended = ApplePayPaymentRequest & {\n total: {\n label: string;\n amount: string;\n };\n currencyCode: string;\n};\nconst BRAINTREE_APPLE_PAY_STORE_NAME = 'Youth';\nexport const usePaymentSystem = ({\n subscriptionPlan,\n paymentSystem,\n setIsLoading,\n onLoadEnd,\n braintreeOptions = {},\n shouldFetch = true\n}: {\n subscriptionPlan: SubscriptionPlan;\n paymentSystem?: PaymentSystem;\n setIsLoading: (value: boolean) => void;\n onLoadEnd?: () => void;\n braintreeOptions?: {\n useApplePay?: boolean;\n useGooglePay?: boolean;\n isApplePayFromPaywall?: boolean;\n };\n shouldFetch?: boolean;\n}): {\n contentNode?: ReactNode;\n openCheckout: () => Promise;\n openCheckoutWithoutGesture: () => Promise;\n} => {\n const {\n authStore\n } = useStores();\n const {\n trackGoogleEvent\n } = useAnalytics();\n const {\n user,\n auth_token\n } = authStore;\n const app = useGetAppName();\n const braintreeClientToken = useAtomValue(braintreeClientTokenAtom);\n const {\n setPaymentCompletionStatus\n } = usePaymentCompletionStatus();\n\n // #region Braintree specific\n\n // The braintree client for Apple Pay must be loaded in advance,\n // because Safari allows to initiate an Apple Pay session only\n // inside a gesture handler\n const braintreePaymentClient = useRef();\n const fetchBraintreePaymentClient = useCallback(async () => {\n setIsLoading(true);\n await (async () => {\n try {\n if (!braintreeClientToken) {\n return;\n }\n braintreePaymentClient.current = await braintree.client.create({\n authorization: braintreeClientToken\n });\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n onLoadEnd?.();\n }\n })();\n }, [braintreeClientToken, onLoadEnd, setIsLoading]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: braintreePaymentClient is not changing\n useEffect(() => {\n if (braintreePaymentClient.current === undefined) {\n fetchBraintreePaymentClient().then(r => r);\n }\n }, [braintreePaymentClient, fetchBraintreePaymentClient]);\n const [braintreeShowModal, setBraintreeShowModal] = useState(false);\n const braintreeHandleModalClose = () => {\n setBraintreeShowModal(false);\n };\n const handleBraintreeCheckoutComplete = useCallback(async (paymentMethodNonce: string, paymentMethodVaulted?: boolean) => {\n try {\n setPaymentCompletionStatus({\n value: PaymentCompletionStatus.SUCCESS,\n selectedPlanId: subscriptionPlan.id\n });\n await createBraintreeSubscription({\n customerId: user!.id.toString(),\n customerToken: auth_token!,\n merchantAccountId: subscriptionPlan.merchantAccountId,\n planId: subscriptionPlan.braintreePlanId!,\n paymentMethodNonce,\n paymentMethodVaulted,\n app\n });\n // This prevents flashing of the alert with a loading message,\n // because the subscription is expected to activate right away\n // in most cases\n await authStore.fetchUser();\n } catch (error) {\n setPaymentCompletionStatus({\n value: PaymentCompletionStatus.FAILURE,\n selectedPlanId: subscriptionPlan.id\n });\n console.error(error);\n } finally {\n setBraintreeShowModal(false);\n }\n }, [app, setPaymentCompletionStatus, subscriptionPlan.id, subscriptionPlan.merchantAccountId, subscriptionPlan.braintreePlanId, user, auth_token, authStore]);\n\n // endregion\n\n const openCheckout = useCallback(async () => {\n if (paymentSystem == null) {\n return;\n }\n if (!user) {\n throw new Error('A user is required');\n }\n setIsLoading(true);\n switch (paymentSystem) {\n case PaymentSystem.BRAINTREE:\n try {\n if (braintreeOptions.useApplePay) {\n const client = braintreePaymentClient.current!;\n const applePay = await braintree.applePay.create({\n client\n });\n const paymentRequest = applePay.createPaymentRequest(({\n total: {\n label: subscriptionPlan.name,\n amount: subscriptionPlan.immediatePrice.toFixed(2)\n },\n currencyCode: subscriptionPlan.currency\n } as TpApplePayExtended));\n const session = ApplePaySession.supportsVersion(14) ?\n // @ts-ignore (an issue with library typings)\n new ApplePaySession(14, paymentRequest) :\n // @ts-ignore (an issue with library typings)\n new ApplePaySession(3, paymentRequest);\n session.onvalidatemerchant = async event => {\n const merchantSession = await applePay.performValidation({\n validationURL: event.validationURL,\n displayName: BRAINTREE_APPLE_PAY_STORE_NAME\n });\n session.completeMerchantValidation(merchantSession);\n };\n session.onpaymentauthorized = async event => {\n let nonce: string;\n try {\n ({\n nonce\n } = await applePay.tokenize({\n token: event.payment.token\n }));\n } catch (error) {\n session.completePayment(ApplePaySession.STATUS_FAILURE);\n setPaymentCompletionStatus({\n value: PaymentCompletionStatus.FAILURE,\n selectedPlanId: subscriptionPlan.id\n });\n console.error(error);\n return;\n }\n try {\n await handleBraintreeCheckoutComplete(nonce, false);\n } finally {\n session.completePayment(ApplePaySession.STATUS_SUCCESS);\n }\n };\n session.begin();\n session.oncancel = () => {\n trackGoogleEvent({\n eventName: 'add_payment_info_skipped',\n options: {\n payment_system: 'braintree',\n payment_method: AnalyticsPaymentMethod.APPLE_PAY\n }\n });\n };\n } else if (braintreeOptions.useGooglePay) {\n const client = braintreePaymentClient.current!;\n const googlePay = await braintree.googlePayment.create({\n client: client,\n googlePayVersion: 2,\n googleMerchantId: 'BCR2DN4TRLM4XIDR'\n });\n const paymentDataRequest = await googlePay.createPaymentDataRequest({\n transactionInfo: {\n currencyCode: (subscriptionPlan.currency as string),\n totalPriceStatus: 'FINAL',\n totalPrice: subscriptionPlan.immediatePrice.toFixed(2)\n }\n });\n const paymentsClient = new google.payments.api.PaymentsClient({\n environment: (process.env.NEXT_PUBLIC_GOOGLE_PAY_ENV as 'PRODUCTION' | 'TEST')\n });\n const cardPaymentMethod = paymentDataRequest.allowedPaymentMethods[0];\n cardPaymentMethod.parameters.billingAddressRequired = false;\n try {\n // const isReadyToPay = await paymentsClient.isReadyToPay({\n // // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\n // apiVersion: 2,\n // apiVersionMinor: 0,\n // allowedPaymentMethods:\n // googlePay.createPaymentDataRequest().allowedPaymentMethods,\n // existingPaymentMethodRequired: true,\n // });\n // console.log(isReadyToPay.result);\n const paymentData = await paymentsClient.loadPaymentData(paymentDataRequest);\n googlePay.parseResponse(paymentData, (error, result) => {\n if (error) {\n console.error(error);\n }\n handleBraintreeCheckoutComplete(result.nonce, false);\n });\n } catch (error) {\n console.error(error);\n //there u can handle a user close googlePay window\n trackGoogleEvent({\n eventName: 'add_payment_info_skipped',\n options: {\n payment_system: 'braintree',\n payment_method: AnalyticsPaymentMethod.GOOGLE_PAY\n }\n });\n }\n } else {\n setBraintreeShowModal(true);\n }\n } finally {\n setIsLoading(false);\n }\n break;\n }\n }, [paymentSystem, user, setIsLoading, braintreeOptions.useApplePay, braintreeOptions.useGooglePay, subscriptionPlan.name, subscriptionPlan.immediatePrice, subscriptionPlan.currency, subscriptionPlan.id, setPaymentCompletionStatus, handleBraintreeCheckoutComplete, trackGoogleEvent]);\n const openCheckoutWithoutGesture = useCallback(async () => {\n switch (paymentSystem) {\n case PaymentSystem.BRAINTREE:\n if (braintreeOptions.useApplePay) {\n return;\n }\n break;\n }\n await openCheckout();\n }, [braintreeOptions.useApplePay, openCheckout, paymentSystem]);\n\n // Rendering necessary elements\n\n let contentNode = ;\n return {\n contentNode,\n openCheckout,\n openCheckoutWithoutGesture\n };\n};","export {\n AnalyticsPaymentMethod,\n AnalyticsPaymentSystem,\n handleCheckoutOpenRequest,\n handleCheckoutOpenRequestWithPaymentSystem,\n} from './payment-analytics';\nexport { currencyReplacer } from './currency-replacer';\nexport {\n PaymentCompletionStatus,\n PAYMENT_STATUS_QUERY_PARAM,\n usePaymentCompletionStatus,\n} from './payment-completion-status';\nexport { usePaymentSystem, PaymentSystem } from './use-payment-system';\n","export {\n createChargebeeCustomer,\n createBraintreeSubscription,\n fetchSubscriptionPlans,\n generatePaddlePayLink,\n} from './api/payments-api';\n\nexport { generateBraintreeClientToken } from './api/generateBraintreeClientToken';\n\nexport { braintreeClientTokenAtom } from './atoms';\n\nexport { useGenerateBraintreeClientToken } from './hooks/mutation/use-generate-braintree-client-token';\n\nexport { PaymentModalStatus } from './components/payment-modal';\n\nexport { IntroOfferDisclaimer } from './widgets/payment-status-alerts/payment-failed-alert/components/intro-offer-disclaimer';\n\nexport {\n AnalyticsPaymentMethod,\n AnalyticsPaymentSystem,\n currencyReplacer,\n handleCheckoutOpenRequest,\n handleCheckoutOpenRequestWithPaymentSystem,\n PaymentCompletionStatus,\n PaymentSystem,\n PAYMENT_STATUS_QUERY_PARAM,\n usePaymentCompletionStatus,\n usePaymentSystem,\n} from './utils';\n","export const EURO_COUNTRIES = [\n 'AT',\n 'BE',\n 'BG',\n 'HR',\n 'CY',\n 'CZ',\n 'DK',\n 'EE',\n 'FI',\n 'FR',\n 'DE',\n 'GR',\n 'EL',\n 'HU',\n 'IE',\n 'IT',\n 'LV',\n 'LT',\n 'LU',\n 'MT',\n 'NL',\n 'PL',\n 'PT',\n 'RO',\n 'SK',\n 'SI',\n 'ES',\n 'SE',\n 'IS',\n 'LI',\n 'NO',\n 'CH',\n 'AL',\n 'ME',\n 'MK',\n 'RS',\n 'AD',\n 'BA',\n 'MD',\n 'MC',\n 'SM',\n 'GB',\n 'UK',\n 'VA',\n];\n\nexport const PAYMENT_MODAL_QUERY_PARAM = 'show_payment';\n\nexport const SUBSCRIPTION_PLAN_VARIANTS = {\n variantPT: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_USD as string,\n variant15: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_USD as string,\n email: process.env.NEXT_PUBLIC_VARIANT_EMAIL_PLANS_GROUP_USD as string,\n ABTest: process.env.NEXT_PUBLIC_AB_TEST_PLANS_GROUP_USD as string,\n tw1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_USD as string,\n google1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_USD as string,\n tiktok1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_USD as string,\n};\n\nexport const SUBSCRIPTION_PLAN_VARIANTS_EURO = {\n variantPT: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_EUR as string,\n variant15: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_EUR as string,\n email: process.env.NEXT_PUBLIC_VARIANT_EMAIL_PLANS_GROUP_EUR as string,\n ABTest: process.env.NEXT_PUBLIC_AB_TEST_PLANS_GROUP_EUR as string,\n tw1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_EUR as string,\n google1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_EUR as string,\n tiktok1: process.env.NEXT_PUBLIC_VARIANT_15_PLANS_GROUP_EUR as string,\n};\n","import { Image } from 'src/components/common/Image';\nimport { FormattedMessage, TpMessageKeys } from 'src/features/intl';\nimport styles from './answers.module.scss';\nconst answers: {\n id: TpMessageKeys;\n defaultMessage: string;\n}[] = [{\n id: 'Onboarding.Paywall.Main.Bullet1',\n defaultMessage: 'Shiny and smooth skin'\n}, {\n id: 'Onboarding.Paywall.Main.Bullet2',\n defaultMessage: 'Improved blood circulation and lymph flow'\n}, {\n id: 'Onboarding.Paywall.Main.Bullet3',\n defaultMessage: 'Full Face relaxations'\n}, {\n id: 'Onboarding.Paywall.Main.Bullet4',\n defaultMessage: 'Reduced imperfections'\n}, {\n id: 'Onboarding.Paywall.Main.Bullet5',\n defaultMessage: 'Released toxins'\n}, {\n id: 'Onboarding.Paywall.Main.Bullet6',\n defaultMessage: 'A toned, slimmer face'\n}];\nexport const Answers = () =>
    \n

    \n \n

    \n

    \n \n

    \n

    \n \n \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />{' '}\n \n

    \n\n \"Woman\n
      \n {answers.map((answer, index) =>
    • \n
      {++index}
      \n

      \n \n

      \n
    • )}\n
    \n
    ;","import { Image } from 'src/components/common/Image';\nimport { FormattedMessage } from 'src/features/intl';\nimport styles from './community.module.scss';\nexport const Community = () =>
    \n

    \n \n

    \n\n \"map\"\n

    \n \n

    \n
    ;","import classNames from 'classnames';\nimport { MouseEvent, useCallback, useState } from 'react';\nimport { Image } from 'src/components/common/Image';\nimport { FormattedMessage } from 'src/features/intl';\nimport styles from './compare.module.scss';\nconst isInViewport = (left: number, right: number) => left >= 0 && right <= (window.innerWidth || document.documentElement.clientWidth);\nconst photos = [\"before-after\", \"before-after\", \"before-after\", \"before-after\", \"before-after\"];\nconst photosLength = photos.length;\nexport const Compare = () => {\n const [activeIndex, setActiveIndex] = useState(0);\n const onScroll = useCallback((event: MouseEvent) => {\n for (const li of event.currentTarget.children) {\n const {\n left,\n right\n } = li.getBoundingClientRect();\n if (isInViewport(left, right)) {\n setActiveIndex((li as HTMLLIElement).value);\n }\n }\n }, []);\n const onClick = useCallback((event: MouseEvent) => {\n event.currentTarget.scrollIntoView({\n inline: 'center',\n block: 'nearest',\n behavior: 'smooth'\n });\n setActiveIndex(event.currentTarget.value);\n }, []);\n return <>\n

    \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />\n

    \n

    \n \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />\n

    \n
      \n {photos.map((photo, index) =>
    • \n
      \n

      \n \n

      \n

      \n \n

      \n
      \n {photo}\n
    • )}\n
    \n
    \n {Array.from({\n length: photosLength\n }, (_, index) =>
    \n ;\n};","import { Accordion } from '@mentalgrowth/ui-kit-web';\nimport { type TpAccordionProps } from '@mentalgrowth/ui-kit-web';\nexport const UiKitAccordion = (props: TpAccordionProps) => ;\nUiKitAccordion.Item = Accordion.Item;\nUiKitAccordion.Toggle = Accordion.Toggle;\nUiKitAccordion.CollapsibleBody = Accordion.CollapsibleBody;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgChevronBottom = function SvgChevronBottom(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 10,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#302C28\",\n strokeLinecap: \"square\",\n strokeWidth: 2,\n d: \"M1.667 2.333 7 7.667l5.333-5.334\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgChevronBottom);\nexport default Memo;","import { UiKitAccordion } from 'src/components/common/ui-kit-accordion';\nimport { FormattedMessage, TpMessageKeys } from 'src/features/intl';\nimport ChevronBottom from '../../../../assets/icons/chevron-bottom.svg';\nimport styles from './faq.module.scss';\ntype TpQuestion = {\n title: {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n text: {\n id: TpMessageKeys;\n defaultMessage: string;\n };\n};\ntype TpQuestions = TpQuestion[];\nconst QUESTIONS: TpQuestions = [{\n title: {\n id: 'Onboarding.Paywall.Main.Question.Bullet1',\n defaultMessage: 'What is Face Yoga?'\n },\n text: {\n id: 'Onboarding.Paywall.Main.Question.Bullet1.Text',\n defaultMessage: 'Face yoga is a non-invasive practice with science-proved effectiveness. It includes gentle massage and facial exercises that will stimulate your muscles, skin, and lymphatic system.'\n }\n}, {\n title: {\n id: 'Onboarding.Paywall.Main.Question.Bullet2',\n defaultMessage: 'What happens after I order?'\n },\n text: {\n id: 'Onboarding.Paywall.Main.Question.Bullet2.Text',\n defaultMessage: \"You'll notice some immediate changes! During the first week, your face will be tighter and slimmer; but the sky's the limit! Be patient and appreciate your day-by-day transformation.\"\n }\n}, {\n title: {\n id: 'Onboarding.Paywall.Main.Question.Bullet3',\n defaultMessage: 'When will I receive my plan?'\n },\n text: {\n id: 'Onboarding.Paywall.Main.Question.Bullet3.Text',\n defaultMessage: 'All done! Your responses will help us create your personal face yoga program!'\n }\n}];\nexport const Faq = () => <>\n

    \n \n

    \n

    \n \n

    \n \n {QUESTIONS.map((question, index) => {\n const {\n title,\n text\n } = question;\n return \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n

    \n \n

    \n
    \n
    ;\n })}\n
    \n ;","import React, { useCallback, useRef, useState } from 'react';\nexport const useProgress = (videoRef: React.RefObject) => {\n const requestRef = useRef(null);\n const [progress, setProgress] = useState(0);\n const startProgressUpdate = useCallback(() => {\n const updateProgress = () => {\n const video = videoRef.current;\n if (!video) return;\n const currentProgress = video.currentTime / video.duration;\n setProgress(Math.min(currentProgress, 1)); // Limit progress to 1\n\n if (currentProgress >= 1) {\n cancelAnimationFrame(requestRef.current!);\n } else {\n requestRef.current = requestAnimationFrame(updateProgress);\n }\n };\n requestRef.current = requestAnimationFrame(updateProgress);\n }, [videoRef]);\n const stopProgressUpdate = useCallback(() => {\n if (requestRef.current) {\n cancelAnimationFrame(requestRef.current);\n requestRef.current = null;\n }\n }, []);\n return {\n progress,\n startProgressUpdate,\n stopProgressUpdate\n };\n};","import { atom } from 'jotai';\n\nexport const activeVideoAtom = atom(null);\n","import { useAtom } from 'jotai';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { activeVideoAtom } from '../atoms';\nexport const useVideoControl = (videoRef: React.RefObject, defaultMuted: boolean, id: string) => {\n const [activeVideoId, setActiveVideoId] = useAtom(activeVideoAtom);\n const [isPlaying, setIsPlaying] = useState(false);\n const [isMuted, setIsMuted] = useState(defaultMuted);\n const togglePlay = useCallback(() => {\n const video = videoRef.current;\n if (!video) return;\n if (isPlaying) {\n video.pause();\n } else {\n setActiveVideoId(id);\n video.play();\n }\n setIsPlaying(!isPlaying);\n }, [isPlaying, videoRef, id, setActiveVideoId]);\n const toggleMute = () => {\n const video = videoRef.current;\n if (!video) return;\n video.muted = !isMuted;\n setIsMuted(!isMuted);\n };\n useEffect(() => {\n const video = videoRef.current;\n // If current video no longer active\n if (activeVideoId !== id && video) {\n video.pause(); // Stop prev video\n video.currentTime = 0; // Reset prev video progress\n setIsPlaying(false); // Update state of prev video\n }\n }, [activeVideoId, id, videoRef]);\n return {\n isPlaying,\n isMuted,\n togglePlay,\n toggleMute,\n setIsPlaying\n };\n};","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgMuteIcon = function SvgMuteIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M10.005 15.195a.756.756 0 0 1-1.24.583l-4.138-3.429H2.423a.757.757 0 0 1-.756-.757V8.577c0-.418.338-.757.756-.757h2.204l4.138-3.429a.755.755 0 0 1 1.24.583z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1.44,\n d: \"m13.333 12.5 5-5m0 5-5-5\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgMuteIcon);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgPlayIcon = function SvgPlayIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 32,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M24.92 12.178c1.831 1.285 2.746 1.927 3.069 2.729a2.93 2.93 0 0 1 0 2.186c-.323.802-1.238 1.444-3.069 2.73l-12.469 8.749c-2.348 1.648-3.522 2.471-4.498 2.426a2.88 2.88 0 0 1-2.158-1.137C5.2 29.078 5.2 27.635 5.2 24.75V7.25c0-2.885 0-4.328.595-5.11a2.88 2.88 0 0 1 2.158-1.138c.976-.045 2.15.778 4.498 2.426z\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgPlayIcon);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgVolumeUpIcon = function SvgVolumeUpIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M10.005 15.195a.756.756 0 0 1-1.24.583l-4.138-3.429H2.423a.757.757 0 0 1-.756-.756V8.577c0-.418.338-.757.756-.757h2.204l4.138-3.429a.755.755 0 0 1 1.24.583zm2.909-1.182-.055.002a.76.76 0 0 1-.535-.222l-.101-.101a.756.756 0 0 1-.073-.986c.566-.765.866-1.67.866-2.62 0-1.023-.34-1.982-.983-2.774a.756.756 0 0 1 .052-1.012l.101-.1a.758.758 0 0 1 1.121.056 6 6 0 0 1 1.363 3.83 6 6 0 0 1-1.204 3.625.76.76 0 0 1-.552.302m3.129 2.339a.76.76 0 0 1-.547.268h-.032c-.2 0-.393-.079-.535-.221l-.1-.1a.757.757 0 0 1-.043-1.022 8.08 8.08 0 0 0 1.893-5.192c0-1.972-.72-3.871-2.027-5.347a.757.757 0 0 1 .03-1.036l.1-.099a.757.757 0 0 1 1.102.031 9.7 9.7 0 0 1 2.45 6.451 9.73 9.73 0 0 1-2.291 6.267\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgVolumeUpIcon);\nexport default Memo;","import { FC, useCallback, useEffect, useRef } from 'react';\nimport { useProgress } from 'src/components/common/circular-video-player/hooks/use-progress';\nimport { useVideoControl } from 'src/components/common/circular-video-player/hooks/use-video-control';\nimport styles from './circular-video-player.module.scss';\nimport VolumeMuteIcon from './icons/mute-icon.svg';\nimport PlayIcon from './icons/play-icon.svg';\nimport VolumeUpIcon from './icons/volume-up-icon.svg';\ntype TpCircularVideoPlayerProps = {\n id: string; // uniq ID of circlePlayer\n src: string; // Path to the video\n size?: number; // Diameter of circle in px\n strokeWidth?: number; // Width of progress-bar\n autoPlay?: boolean; // AutoPlay the video\n muted?: boolean; // Mute the video\n loop?: boolean; // Loop the video\n};\n\nexport const CircularVideoPlayer: FC = ({\n id,\n src,\n size = 150,\n strokeWidth = 5,\n autoPlay = false,\n muted = true,\n loop = false\n}) => {\n const videoRef = useRef(null);\n const {\n progress,\n startProgressUpdate,\n stopProgressUpdate\n } = useProgress(videoRef);\n const {\n isPlaying,\n isMuted,\n togglePlay,\n toggleMute,\n setIsPlaying\n } = useVideoControl(videoRef, muted, id);\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n // Ignore small video progress for Safari iOS (#t=0.0001 workaround)\n const progressOffset = progress < 0.000_02 ? circumference : circumference - progress * circumference;\n const handlePlay = useCallback(() => {\n togglePlay();\n if (!isPlaying) startProgressUpdate();else stopProgressUpdate();\n }, [isPlaying, startProgressUpdate, stopProgressUpdate, togglePlay]);\n useEffect(() => {\n const video = videoRef.current;\n const handleEnded = () => {\n setIsPlaying(false);\n stopProgressUpdate();\n };\n if (video) {\n video.addEventListener('ended', handleEnded);\n }\n return () => {\n if (video) {\n video.removeEventListener('ended', handleEnded);\n }\n };\n }, [setIsPlaying, stopProgressUpdate]);\n return
    \n \n \n \n \n\n
    ;\n};","import classNames from 'classnames';\nimport { MouseEvent, useCallback, useState } from 'react';\nimport styles from './simple-slider.module.scss';\nconst isInViewport = (left: number, right: number) => left >= 0 && right <= (window.innerWidth || document.documentElement.clientWidth);\ntype TpSimpleSliderProps = {\n slides: any[]; // Array of slides\n slideWidth: number; // Width of 1 slide\n slidesGap: number; // Gap between slides\n containerClassName: string; // Custom styles for container\n};\n\nexport const SimpleSlider = ({\n slides,\n slideWidth = 136,\n slidesGap = 16,\n containerClassName\n}: TpSimpleSliderProps) => {\n const [activeIndex, setActiveIndex] = useState(0);\n const onScroll = useCallback((event: MouseEvent) => {\n const parentRect = event.currentTarget.getBoundingClientRect();\n const firstRect = event.currentTarget.children[0].getBoundingClientRect();\n const lastRect = event.currentTarget.children[event.currentTarget.children.length - 1].getBoundingClientRect();\n const isLeftSlideEnd = parentRect.left <= firstRect.left;\n const isRightSlideEnd = parentRect.right >= lastRect.right - 3;\n for (const li of event.currentTarget.children) {\n const {\n left,\n right\n } = li.getBoundingClientRect();\n if (isLeftSlideEnd) {\n return setActiveIndex(0);\n }\n if (isRightSlideEnd) {\n return setActiveIndex(event.currentTarget.children.length - 1);\n }\n if (isInViewport(left, right)) {\n return setActiveIndex((li as HTMLLIElement).value);\n }\n }\n }, []);\n const onClick = useCallback((event: MouseEvent) => {\n event.currentTarget.scrollIntoView({\n inline: 'center',\n block: 'nearest',\n behavior: 'smooth'\n });\n setActiveIndex(event.currentTarget.value);\n }, []);\n return
    \n
      \n {slides.map((slide, index) =>
    • \n {slide}\n
    • )}\n
    \n
    \n {Array.from({\n length: slides.length\n }, (_, index) =>
    \n
    ;\n};","import { observer } from 'mobx-react-lite';\nimport { CircularVideoPlayer } from 'src/components/common/circular-video-player';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { SimpleSlider } from 'src/components/common/simple-slider';\nimport { VIDEO_REVIEWS_TEST_NAME, VideoReviewsTestCaseName } from 'src/constants/analytics';\nimport { VIDEO_SOURCE } from 'src/utils/constants';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './feel-younger.module.scss';\nconst VIDEO_REVIEWS = [{\n src: `${VIDEO_SOURCE}mimika_review1.mp4`\n}, {\n src: `${VIDEO_SOURCE}mimika_review2.mp4`\n}, {\n src: `${VIDEO_SOURCE}mimika_review3.mp4`\n}, {\n src: `${VIDEO_SOURCE}mimika_review4.mp4`\n}];\nexport const FeelYounger = observer(() => {\n const {\n analyticsStore: {\n getCaseNameByTestName\n }\n } = useStores();\n const isVideoReviewTest = getCaseNameByTestName(VIDEO_REVIEWS_TEST_NAME) === VideoReviewsTestCaseName.SHOW;\n return
    \n

    \n \n \n \n }} />\n

    \n\n {isVideoReviewTest && )} />}\n
    ;\n});","import { useAtomValue } from 'jotai';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { useRef } from 'react';\nimport { reviews } from 'src/components/common/reviews/reviews';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { Policy } from 'src/widgets/policy';\nimport { PaymentModalStatus } from '@features/Payments';\nimport { Answers } from '@features/Paywall/components/answers';\nimport { Community } from '@features/Paywall/components/community';\nimport { Compare } from '@features/Paywall/components/compare';\nimport { ContactBlock } from '@features/Paywall/components/contact-block';\nimport { Faq } from '@features/Paywall/components/faq';\nimport { FeelYounger } from '@features/Paywall/components/feel-younger';\nimport { Graph } from '@features/Paywall/components/graph';\nimport { Guarantees } from '@features/Paywall/components/guarantees';\nimport { PressSection } from '@features/Paywall/components/press-section';\nimport { Reviews } from '@features/Paywall/components/reviews';\nimport { StartBlockTransactionDeclined } from '@features/Paywall/components/start-block-transaktion-declined';\nimport { StartBlock } from '@features/Paywall/components/start-block/start-block';\nimport { PAYMENT_MODAL_QUERY_PARAM } from '@features/Paywall/constants';\nimport { PaywallForwarded } from '@features/Paywall/hocs/paywall-with-scroll';\nimport { PaymentPlansMasterWithRef } from '@features/Paywall/widgets/payment-plans-master';\nimport { stripePaymentErrorAtom } from '@features/Stripe/atoms';\nimport styles from './long-paywall.module.scss';\nconst REVIEWS_BLOCK_1 = [reviews.user8, reviews.user7, reviews.user9];\nexport const LongPaywall = observer(({\n onDiscountTimeFinished\n}: {\n onDiscountTimeFinished: () => void;\n}) => {\n const paymentSectionRef = useRef(null);\n const {\n wasErrorModalWithOfferShown\n } = useAtomValue(stripePaymentErrorAtom);\n const {\n authStore: {\n variant,\n isPaddleVariants\n }\n } = useStores();\n const router = useRouter();\n const {\n query\n } = router;\n const isInlinePaddleActive = query[PAYMENT_MODAL_QUERY_PARAM] === PaymentModalStatus.SHOW && isPaddleVariants;\n return \n {!wasErrorModalWithOfferShown && !isInlinePaddleActive && variant !== 'email2' && }\n {(wasErrorModalWithOfferShown || variant === 'email2') && }\n\n \n\n
    \n \n
    \n
    \n \n
    \n \n\n {!wasErrorModalWithOfferShown && <>\n
    \n \n
    \n
    \n \n
    \n }\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    ;\n});","export { LongPaywall } from './layouts/long-paywall';\nexport { SubscriptionCardMaster } from './widgets/subscription-card/master';\n\nexport { EURO_COUNTRIES, PAYMENT_MODAL_QUERY_PARAM } from './constants';\n","import { axiosMicroservice } from 'src/api/axios';\nimport type { TpStripeSubscriptionResponse } from 'src/features/Stripe/types';\n\nexport const getStripeSubscriptions = async ({\n productId,\n app = 'FaceYoga',\n}: {\n productId: string | undefined;\n app?: string;\n}): Promise => {\n const { data } = await axiosMicroservice.get(\n `stripe/get_plans?app=${app}&product_id=${productId}`,\n );\n return data;\n};\n","import { axiosMicroservice } from 'src/api/axios';\n\nimport { TpStripeGetProductId } from '@features/Stripe/types';\n\nexport const getStripeProductId = async ({\n variant,\n app = 'FaceYoga',\n}: TpStripeGetProductId): Promise<{\n product_id: string;\n us_product_id: string;\n}> => {\n const { data } = await axiosMicroservice.get(\n `stripe/products_map?app=${app}&variant=${variant}`,\n );\n return data;\n};\n","import { axiosMicroservice } from 'src/api/axios';\n\nexport const getUpgradeData = async ({\n fullPrice,\n upgradePrice,\n}: {\n fullPrice: number;\n upgradePrice: number;\n}): Promise<{\n surchargePerDay: number | null;\n surcharge: number;\n upgradePricePerMonth: number;\n}> => {\n const { data } = await axiosMicroservice.post('stripe/get_upgrade_data', {\n full_price: fullPrice,\n upgrade_price: upgradePrice,\n });\n return data;\n};\n","import { axiosMicroservice } from 'src/api/axios';\n\nconst paymentSystemUrlMap = {\n braintree: '',\n stripe: 'stripe/subscription',\n};\n\nexport type TpAddSubscription = {\n product: 'Academy' | 'FaceYoga' | 'FaceYogaUS';\n app?: 'Academy' | 'FaceYoga' | 'FaceYogaUS';\n priceId: string;\n customerId: string;\n currency: string;\n introOfferId: string;\n introOfferDuration: string;\n introOfferMustBePaid: boolean;\n cancelAtPeriodEnd: boolean;\n campaign: string;\n userId: string;\n token: string;\n email: string;\n paymentSystem?: 'braintree' | 'stripe';\n};\n\nexport const buySecondSubscription = async ({\n product,\n app = 'FaceYoga',\n priceId,\n customerId,\n currency,\n introOfferId,\n introOfferDuration,\n introOfferMustBePaid,\n cancelAtPeriodEnd,\n campaign,\n userId,\n token,\n email,\n paymentSystem = 'stripe',\n}: TpAddSubscription): Promise => {\n return await axiosMicroservice.post(`${paymentSystemUrlMap[paymentSystem]}`, {\n product,\n price_id: priceId,\n customer_id: customerId,\n currency: currency,\n intro_offer_id: introOfferId,\n intro_offer_duration: introOfferDuration,\n intro_offer_must_be_paid: introOfferMustBePaid,\n cancel_at_period_end: cancelAtPeriodEnd,\n campaign,\n user_id: userId,\n token,\n email,\n app,\n });\n};\n","import { axiosMicroservice } from 'src/api/axios';\nimport { TpStripeCreateSubscription } from 'src/features/Stripe/types';\n\nexport const createSubscription = async ({\n priceId,\n userId,\n currency,\n email,\n token,\n introOfferId,\n introOfferDuration,\n campaign,\n app = 'FaceYoga',\n cancelAtPeriodEnd,\n}: TpStripeCreateSubscription): Promise<{\n client_secret: string;\n customer_id: string;\n}> => {\n const { data } = await axiosMicroservice.post('stripe/create_subscription', {\n price_id: priceId,\n user_id: userId,\n currency: currency,\n email: email,\n token: token,\n intro_offer_id: introOfferId,\n intro_offer_duration: introOfferDuration,\n campaign: campaign,\n cancel_at_period_end: cancelAtPeriodEnd,\n app,\n });\n return data;\n};\n","import { axiosMicroservice } from 'src/api/axios';\nimport { TpStripeCreateInvoice } from 'src/features/Stripe/types';\n\nconst upsellUrlMap = {\n braintree: 'braintree_upsell',\n stripe: 'stripe/create_invoice',\n};\n\nexport const createInvoice = async ({\n customerId,\n amount,\n paymentSystem,\n currency,\n app = 'FaceYoga',\n}: TpStripeCreateInvoice): Promise<{ message: string }> => {\n const { data } = await axiosMicroservice.post(\n `${upsellUrlMap[paymentSystem]}`,\n {\n app,\n amount: amount,\n currency: currency,\n customer_id: paymentSystem === 'stripe' ? customerId : undefined,\n user_id: paymentSystem === 'braintree' ? customerId : undefined,\n },\n );\n return data;\n};\n","import { axiosMicroservice } from 'src/api/axios';\n\nconst modifyUrlMap = {\n braintree: 'braintree_upgrade',\n stripe: 'stripe/modify_subscription',\n};\n\nexport type TpModifySubscription = {\n newPlanId: string;\n userId: number;\n email: string;\n app?: string;\n paymentSystem?: 'braintree' | 'stripe';\n};\n\nexport const modifySubscription = async ({\n newPlanId,\n userId,\n email,\n app = 'FaceYoga',\n paymentSystem = 'stripe',\n}: TpModifySubscription): Promise => {\n return await axiosMicroservice.post(`${modifyUrlMap[paymentSystem]}`, {\n user_id: userId,\n new_plan_id: newPlanId,\n email: email,\n app,\n });\n};\n","export { getStripeSubscriptions } from './getStripeSubscriptions';\nexport { getStripeProductId } from './getStripeProductId';\nexport { getUpgradeData } from './getUpgradeData';\nexport { buySecondSubscription } from './buySecondSubscription';\nexport { createSubscription } from './createSubscription';\nexport { createInvoice } from './createInvoice';\nexport { modifySubscription } from './modifySubscription';\n","import {\n TpStripePremiumYearDiscountInfo,\n TpStripePremiumYearInfo,\n} from '@features/Stripe/types';\nimport { atom } from 'jotai';\nimport { atomWithReset, atomWithStorage, createJSONStorage } from 'jotai/utils';\n\nexport const userAtom = atomWithStorage('stripeUser', {\n ...createJSONStorage(() => sessionStorage),\n customerId: '',\n email: '',\n token: '',\n campaign: '',\n userId: 0,\n accessCode: '',\n});\n\ntype TpSelectedPlanAtom = {\n currency: string;\n planName: string;\n discountPercentage: number;\n fullPrice: number;\n fullPriceDiscount: number;\n billingPeriod: number;\n billingPeriodUnit: string;\n specialDiscountPercentage: number;\n priceId: string;\n introOffer: string;\n braintreePlanId: undefined | string;\n braintreeMerchantId: undefined | string;\n specialOffer: boolean;\n premiumDiscountPriceData?: {\n upgradeId: string;\n braintreePlanId: null | string;\n discountPercentage: number;\n fullPriceDiscount: number;\n fullPrice: number;\n currency: string;\n introOffer: string;\n introOfferData: {\n planId: string;\n billingPeriod: number;\n billingPeriodUnit: string;\n currency: string;\n introOfferId: string;\n introOfferDuration: string;\n fullPriceDiscount: number;\n fractionalPriceDiscount: number;\n fractionalPrice: number;\n fullPrice: number;\n displayPrice: string;\n discountPercentage: number;\n introOfferDescription: null | string;\n introOfferMustBePaid: null;\n braintreePlanId: string;\n };\n };\n premiumPriceData?: {\n upgradeId: string;\n braintreePlanId: null | string;\n discountPercentage: number;\n fullPriceDiscount: number;\n fullPrice: number;\n currency: string;\n introOffer: string;\n introOfferData: {\n planId: string;\n billingPeriod: number;\n billingPeriodUnit: string;\n currency: string;\n introOfferId: string;\n introOfferDuration: string;\n fullPriceDiscount: number;\n fractionalPriceDiscount: number;\n fractionalPrice: number;\n fullPrice: number;\n displayPrice: string;\n discountPercentage: number;\n introOfferDescription: null | string;\n introOfferMustBePaid: null;\n braintreePlanId: string;\n };\n };\n introOfferData: {\n fullPrice: string;\n fullPriceDiscount: string;\n currency: string;\n introOfferDescription: string;\n introOfferDuration: string;\n introOfferId: string;\n billingPeriod: number;\n billingPeriodUnit: string;\n };\n};\n\nexport const selectedPlanAtom = atomWithReset({\n currency: 'usd',\n planName: '',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n billingPeriod: 0,\n billingPeriodUnit: '',\n specialDiscountPercentage: 0,\n priceId: '',\n introOffer: '',\n braintreePlanId: undefined,\n braintreeMerchantId: undefined,\n specialOffer: false,\n introOfferData: {\n fullPrice: '0',\n fullPriceDiscount: '0',\n introOfferDescription: '',\n currency: 'usd',\n introOfferDuration: '',\n introOfferId: '',\n billingPeriod: 0,\n billingPeriodUnit: '',\n },\n});\n\nexport const upsellInfoAtom = atomWithStorage('stripeUpsellInfo', {\n ...createJSONStorage(() => sessionStorage),\n currency: 'USD',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n});\n\nexport const premiumYearAllDataAtom = atomWithStorage<{\n premiumYearData: TpStripePremiumYearInfo;\n premiumYearDiscountData: TpStripePremiumYearDiscountInfo;\n}>('stripePremiumYearData', {\n ...createJSONStorage(() => sessionStorage),\n premiumYearData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: '',\n },\n premiumYearDiscountData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: '',\n },\n});\n\nexport const noMoneyPlanInfoAtom = atomWithStorage<{\n currency: string;\n discountPercentage: number | null;\n fullPrice: number;\n fullPriceDiscount: number;\n priceFromDefaultOneMonth: number;\n}>('stripeNoMoneyInfo', {\n ...createJSONStorage(() => sessionStorage),\n currency: 'USD',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n priceFromDefaultOneMonth: 0,\n});\n\nexport const upgradeInfoAtom = atomWithStorage('stripeUpgradeInfo', {\n ...createJSONStorage(() => sessionStorage),\n currency: 'USD',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n upgradeId: '',\n braintreePlanId: '',\n});\n\nexport const introOfferInfoAtom = atomWithStorage('stripeIntroOfferInfo', {\n ...createJSONStorage(() => sessionStorage),\n currency: 'usd',\n fullPriceDiscount: 0,\n introOfferDuration: 0,\n introOfferId: '',\n planId: '',\n billingPeriodUnit: '',\n billingPeriod: 0,\n});\n\nexport const processingModalStatusAtom = atom(false);\n\nexport const stripeWasPaymentTriedAtom = atomWithStorage(\n 'stripeWasPaymentTried',\n {\n ...createJSONStorage(() => sessionStorage),\n showCrossSailOffer: false,\n wasUpsellSailOfferShown: false,\n },\n);\n\nexport const stripePaymentErrorAtom = atomWithStorage('stripePaymentError', {\n ...createJSONStorage(() => sessionStorage),\n wasErrorModalWithOfferShown: false,\n errorCode: '',\n declineCode: '',\n paymentSystem: '',\n paymentMethod: '',\n});\n\nexport const userPaymentsInfoAtom = atomWithStorage('stripePaymentError', {\n ...createJSONStorage(() => sessionStorage),\n wasCheapOfferBought: false,\n wasStandardPlanBought: false,\n paymentMethod: '',\n paymentSystem: '',\n wasSubscriptionModified: false,\n});\n\nexport const stripeSubscription = atom(\n typeof window !== 'undefined' && (sessionStorage.getItem('myKey') ?? ''),\n);\n\nexport const paymentMethod = atom(\n typeof window !== 'undefined' &&\n (sessionStorage.getItem('btPaymentMethod') ?? ''),\n);\n\nexport const stripeSubscriptionWithPersistence = atomWithStorage(\n 'myKey',\n stripeSubscription as unknown as string,\n);\n\nexport const paymentMethodWithPersistence = atom(\n (get) => get(paymentMethod),\n (get, set, newString: string) => {\n set(paymentMethod, newString);\n sessionStorage.setItem('btPaymentMethod', newString);\n },\n);\n","import { TpMessageKeys } from '@features/intl';\n\nexport const LEARN_MORE_VARIANT: {\n name: string;\n learnMoreList: {\n icon: string;\n titleId?: TpMessageKeys;\n titleDefaultMessage?: string;\n }[];\n}[] = [\n {\n name: '1 MONTH',\n learnMoreList: [\n {\n icon: 'learn-more-2.1.webp',\n titleId: 'Onboarding.Paywall.Main.Card.Bullet1',\n titleDefaultMessage: 'Instant access to your plan',\n },\n {\n icon: 'learn-more-2.0.png',\n titleId: 'Onboarding.Paywall.Main.Card.Bullet2',\n titleDefaultMessage: '27k+ 5-star reviews',\n },\n {\n icon: 'learn-more-2.2.webp',\n titleId: 'Onboarding.Paywall.Main.Card.Bullet3',\n titleDefaultMessage: '24/7 personal customer support',\n },\n {\n icon: 'learn-more-2.3.webp',\n titleId: 'Onboarding.Paywall.Main.Card.Bullet4',\n titleDefaultMessage: '30 day Money-Back guarantee',\n },\n ],\n },\n];\n\nexport const NO_MONEY_LEARN_MORE = [\n {\n icon: 'learn-more-2.1.webp',\n text: 'Personal goal-oriented program',\n },\n {\n icon: 'learn-more-2.0.png',\n text: '27k + 5-star reviews',\n },\n {\n icon: 'learn-more-2.2.webp',\n text: 'Progress tracking feature',\n },\n {\n icon: 'learn-more-2.3.webp',\n text: '30-day Money-Back guarantee',\n },\n];\n","export const ELEMENTS_APPEARANCE = {};\n\nconst getBaseStyles = () => ({\n style: {\n base: {\n fontSize: '16px',\n color: '#302c28',\n '::placeholder': {\n color: '#817B6F',\n },\n },\n invalid: {\n color: '#FF2E00',\n },\n },\n});\n\nexport const ELEMENT_OPTIONS = {\n ...getBaseStyles(),\n};\n\nexport const CARD_ELEMENT_OPTIONS = {\n placeholder: 'XXXX XXXX XXXX XXXX',\n ...getBaseStyles(),\n};\n\n//TODO: Replace with meta-data from stripe if it works\nexport const BILLING_PERIOD_LTV_MAP: Record = {\n 1: 91,\n 3: 90,\n 6: 83,\n};\n\nexport const CURRENCY_DOES_NOT_SUPPORT_PAYPAL = [\n 'AED',\n 'ARS',\n 'BGN',\n 'CLP',\n 'COP',\n 'INR',\n 'ISK',\n 'KRW',\n 'PEN',\n 'PYG',\n 'RSD',\n 'RON',\n 'SAR',\n 'TRY',\n 'TWD',\n 'UYU',\n 'VND',\n 'ZAR',\n];\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getStripeSubscriptions } from '@features/Stripe/api';\nimport { useGetAppName } from 'src/utils/hooks';\n\nexport const useGetStripeSubscriptions = ({\n productId,\n}: {\n productId: string | undefined;\n}) => {\n const app = useGetAppName();\n const { data } = useQuery({\n queryKey: ['stripe-subscriptions', productId, app],\n queryFn: () => getStripeSubscriptions({ productId, app }),\n enabled: !!productId && !!app,\n gcTime: 10 * 1000 * 60, // 10 minutes\n staleTime: 10 * 1000 * 60, // Consider data fresh for 10 minutes\n retry: 3,\n });\n\n return data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { createSubscription } from '@features/Stripe/api';\nimport { TpStripeCreateSubscription } from '@features/Stripe/types';\nimport { useGetAppName } from 'src/utils/hooks';\n\nexport const useCreateSubscription = ({\n priceId,\n userId,\n currency,\n email,\n token,\n introOfferId,\n introOfferDuration,\n cancelAtPeriodEnd,\n campaign,\n}: TpStripeCreateSubscription) => {\n const app = useGetAppName();\n return useQuery({\n queryKey: ['create-stripe-subscription', priceId],\n queryFn: () =>\n createSubscription({\n priceId,\n userId,\n currency,\n email,\n token,\n introOfferId,\n introOfferDuration,\n cancelAtPeriodEnd,\n campaign,\n app: app,\n }),\n enabled: !!priceId && !!userId && !!email,\n gcTime: 10 * 1000 * 60, // 10 minutes\n staleTime: 10 * 1000 * 60, // Consider data fresh for 10 minutes\n retry: 0, // No retries on failure\n });\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getUpgradeData } from '@features/Stripe/api';\n\nexport const useGetUpgradeData = ({\n fullPrice,\n upgradePrice,\n}: {\n fullPrice: number;\n upgradePrice: number;\n}) =>\n useQuery({\n queryKey: ['getUpgradeData', upgradePrice, fullPrice],\n queryFn: () => getUpgradeData({ fullPrice, upgradePrice }),\n staleTime: 5 * 60 * 1000,\n gcTime: 10 * 1000 * 60,\n });\n","import { PaymentRequest, Stripe } from '@stripe/stripe-js';\nimport { useCallback, useEffect, useState } from 'react';\nexport const usePaymentRequest = ({\n stripe,\n planInfo\n}: {\n stripe: Stripe | null;\n planInfo: {\n currency: string;\n fullPriceDiscount: number;\n planName: string;\n priceId: string;\n };\n}) => {\n const [paymentRequest, setPaymentRequest] = useState(null);\n const [paymentMethodResult, setPaymentMethodResult] = useState(null);\n const createPaymentRequest = useCallback(({\n ignore\n }: {\n ignore: boolean;\n }) => {\n if (!stripe || planInfo.priceId.length === 0) {\n // We can't create a PaymentRequest until Stripe.js loads.\n return;\n }\n const pr = stripe.paymentRequest({\n country: 'US',\n currency: planInfo.currency.toLowerCase(),\n total: {\n label: planInfo.planName,\n amount: Number.parseInt(planInfo.fullPriceDiscount.toString().replace('.', ''), 10)\n },\n disableWallets: ['link'],\n requestPayerName: false,\n requestPayerEmail: false\n });\n\n // Check the availability of the Payment Request API.\n pr.canMakePayment().then((result: any) => {\n if (result && !ignore) {\n setPaymentRequest(pr);\n setPaymentMethodResult(Object.keys(result).find(method => result[method]));\n }\n });\n }, [planInfo.currency, planInfo.fullPriceDiscount, planInfo.planName, planInfo.priceId.length, stripe]);\n useEffect(() => {\n if (!stripe) return; // We can't create a PaymentRequest until Stripe.js loads.\n\n const createRequest = () => {\n setPaymentMethodResult(null);\n setPaymentRequest(null);\n createPaymentRequest({\n ignore: false\n });\n };\n createRequest();\n return () => {\n createPaymentRequest({\n ignore: true\n });\n };\n }, [createPaymentRequest, stripe]);\n return {\n paymentRequest,\n paymentMethodResult\n };\n};","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"4.4.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function () {\n reject(new Error('Failed to load Stripe.js'));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise[\"catch\"](function (error) {\n stripePromise = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise$1;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise$1) {\n return stripePromise$1;\n }\n\n stripePromise$1 = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n return stripePromise$1;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","export * from '../dist/index.mjs';\n","import { useFeature } from '@features/FeatureToggle';\nimport { Stripe } from '@stripe/stripe-js';\nimport { loadStripe } from '@stripe/stripe-js';\nimport { useMemo } from 'react';\n\nconst STRIPE_API_KEY = process.env.NEXT_PUBLIC_STRIPE_API_KEY as string;\nconst STRIPE_API_KEY_US = process.env.NEXT_PUBLIC_STRIPE_API_KEY_US as string;\n\nconst initializeStripe = async (apiKey: string): Promise => {\n return await loadStripe(apiKey);\n};\n\nlet stripeInstance: Stripe | null = null;\n\nconst getStripe = async (apiKey: string): Promise => {\n if (!stripeInstance) {\n stripeInstance = await initializeStripe(apiKey);\n }\n return stripeInstance;\n};\n\nexport const useGetStripePromise = () => {\n const isVariantUsEnabled = useFeature('usFeature');\n\n return useMemo(\n () => getStripe(isVariantUsEnabled ? STRIPE_API_KEY_US : STRIPE_API_KEY),\n [isVariantUsEnabled],\n );\n};\n","export { useGetStripeSubscriptions } from './query/use-get-stripe-subscriptions';\n\nexport { useCreateSubscription } from './query/use-create-subscription';\nexport { useGetUpgradeData } from './query/use-get-upgrade-data';\n\nexport { usePaymentRequest } from './custom-hooks/use-payment-request';\n\nexport { useGetStripePromise } from './custom-hooks/use-get-stripe-promise';\n\nexport { useGetUnsubscribePlans } from './query/use-get-unsubscribe-plans';\n","import { useMutation } from '@tanstack/react-query';\n\nimport { modifySubscription } from '@features/Stripe/api';\nimport { TpModifySubscription } from '@features/Stripe/api/modifySubscription';\nimport { useGetAppName } from 'src/utils/hooks';\nimport { useAtom, useAtomValue } from 'jotai';\nimport {\n tikTokAdvancedMatching,\n tikTokEvent,\n twitterEvent,\n useAnalytics,\n} from '@features/Analytics';\nimport { useCallback, useMemo } from 'react';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { userAtom, userPaymentsInfoAtom } from '@features/Stripe/atoms';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\n\nexport const useModifySubscription = (planInfo?: {\n fullPriceDiscount?: number;\n priceId?: string;\n currency: string;\n paymentSystem: string;\n planName: string;\n}) => {\n const app = useGetAppName();\n const {\n trackGoogleEvent,\n trackFacebookEvent,\n trackPinterestEvent,\n trackBingEvent,\n } = useAnalytics();\n const [paymentInfoAtom, setPaymentInfoAtom] = useAtom(userPaymentsInfoAtom);\n const { email } = useAtomValue(userAtom);\n const { productId } = useGetStripeProductId({\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant',\n }) as TpStripeVariants,\n });\n\n const analyticsCombinedParameters = useMemo(\n () => ({\n value: planInfo?.fullPriceDiscount?.toFixed(2),\n currency: planInfo?.currency,\n }),\n [planInfo?.currency, planInfo?.fullPriceDiscount],\n );\n\n const sendPurchaseEventsForUpgradeFromChallenge = useCallback(() => {\n if (!planInfo) return;\n\n setPaymentInfoAtom((prev) => ({\n ...prev,\n wasSubscriptionModified: true,\n }));\n trackBingEvent({\n eventName: 'subscribe',\n options: {\n currency: analyticsCombinedParameters.currency,\n revenue_value: analyticsCombinedParameters.value,\n },\n });\n sendBingSpreadedConversion(email);\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant',\n }),\n paymentMethod: paymentInfoAtom.paymentMethod,\n paymentSystem: planInfo.paymentSystem\n ? planInfo.paymentSystem\n : 'stripe',\n },\n options: {\n ...analyticsCombinedParameters,\n email: email,\n subscription_id: undefined,\n stripe_subscription_id: planInfo.priceId,\n predicted_ltv: 80,\n },\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant',\n }),\n paymentMethod: paymentInfoAtom.paymentMethod,\n paymentSystem: planInfo.paymentSystem\n ? planInfo.paymentSystem\n : 'stripe',\n },\n options: {\n email: email,\n },\n });\n\n twitterEvent('tw-oehe8-oehej', {\n email: email,\n ...analyticsCombinedParameters,\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters,\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: productId,\n price_id: planInfo.priceId,\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant',\n }),\n payment_system: planInfo.paymentSystem\n ? planInfo.paymentSystem\n : 'stripe',\n payment_type: paymentInfoAtom.paymentMethod,\n campaign_name_manual:\n getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign',\n }) ?? 'undefined',\n email: email,\n ...analyticsCombinedParameters,\n },\n });\n\n tikTokAdvancedMatching(email);\n tikTokEvent('CompletePayment', {\n content_id: planInfo.planName,\n quantity: 1,\n ...analyticsCombinedParameters,\n });\n }, [\n planInfo,\n trackGoogleEvent,\n trackFacebookEvent,\n trackPinterestEvent,\n email,\n setPaymentInfoAtom,\n paymentInfoAtom,\n productId,\n analyticsCombinedParameters,\n trackBingEvent,\n ]);\n\n return useMutation({\n mutationFn: (variables: TpModifySubscription) =>\n modifySubscription({ ...variables, app }).then(\n () =>\n !paymentInfoAtom.wasSubscriptionModified &&\n paymentInfoAtom.wasCheapOfferBought &&\n sendPurchaseEventsForUpgradeFromChallenge(),\n ),\n mutationKey: ['modify-subscription'],\n });\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { getStripeProductId } from '@features/Stripe/api';\nimport { getDataFromSessionStorage } from 'src/utils';\n\ntype ProductData = {\n product_id: string;\n us_product_id: string;\n};\n\nexport const useGetStripeProductId = ({\n variant,\n}: { variant: TpStripeVariants }) => {\n const userCountry = getDataFromSessionStorage({\n store: 'quizStore',\n key: 'countryCode',\n });\n\n const { data } = useQuery({\n queryKey: ['stripe-product-id', variant, userCountry],\n queryFn: () => getStripeProductId({ variant }),\n enabled: !!variant,\n gcTime: 20 * 60 * 1000, // 20 minutes\n staleTime: 20 * 60 * 1000, // Consider data fresh for 20 minutes\n retry: 0, // No retries on failure\n select: (data: ProductData) => {\n const isUsProductIdValid = Boolean(data?.us_product_id.length > 1);\n return {\n productId:\n userCountry === 'US' && isUsProductIdValid\n ? data?.us_product_id\n : data?.product_id,\n isUsProductIdValid: isUsProductIdValid,\n };\n },\n });\n\n return data ?? { productId: undefined, isUsProductIdValid: false };\n};\n","import { axiosMicroservice } from 'src/api/axios';\nimport type { TpStripeSubscriptionResponse } from 'src/features/Stripe/types';\n\nexport const getStripeUnsubscription = async ({\n productId,\n countryCode,\n app,\n}: {\n productId: string | undefined;\n countryCode: string | undefined;\n app?: string;\n}): Promise => {\n const { data } = await axiosMicroservice.get(\n `stripe/cancellation_plans?app=${app}&product_id=${productId}&country_code=${countryCode}`,\n );\n return data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getStripeUnsubscription } from '@features/Stripe/api/getStripeUnsubscriptions';\nimport { useGetAppName } from 'src/utils/hooks';\n\nexport const useGetUnsubscribePlans = ({\n productId,\n countryCode,\n}: {\n productId: string | undefined;\n countryCode: string | undefined;\n}) => {\n const app = useGetAppName();\n const { data } = useQuery({\n queryKey: ['stripe-subscriptions', productId, app],\n queryFn: () => getStripeUnsubscription({ productId, countryCode, app }),\n enabled: !!productId && !!countryCode && !!app,\n });\n\n return data;\n};\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nvar SvgChevronDown = function SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33301 7.16683L9.99967 13.8335L16.6663 7.16683\",\n stroke: \"currentColor\",\n strokeWidth: 2.33,\n strokeLinecap: \"square\"\n })));\n};\nvar Memo = /*#__PURE__*/memo(SvgChevronDown);\nexport default Memo;","import { Typography } from '@mentalgrowth/ui-kit-web';\nimport classNames from 'classnames';\nimport { memo, useCallback } from 'react';\nimport 'react-loading-skeleton/dist/skeleton.css';\nimport { UiKitLoadingButton } from 'src/components/common/ui-kit-loading-button';\nimport { CurrentPrice } from 'src/features/Paywall/widgets/subscription-card/current-price';\nimport { PriceUnitFull } from 'src/features/Paywall/widgets/subscription-card/price-unit-full';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { SubscriptionCardMaster } from '@features/Paywall';\nimport { BillingPeriod } from '@features/Paywall/widgets/subscription-card/billing-period';\nimport { DiscountPercentage } from '@features/Paywall/widgets/subscription-card/discount-percentage';\nimport { FullPrice } from '@features/Paywall/widgets/subscription-card/full-price';\nimport { LearnMoreList } from '@features/Stripe/components/LearnMoreList';\nimport { TpStripePlanCardProps } from '@features/Stripe/types';\nimport { FormattedMessage } from '@features/intl';\nimport { paymentMethodWithPersistence, processingModalStatusAtom, userAtom, userPaymentsInfoAtom } from '@features/Stripe/atoms';\nimport { useModifySubscription } from '@features/Stripe/hooks/mutation/use-modify-subscription';\nimport { useAtom, useAtomValue, useSetAtom } from 'jotai';\nimport IconChevronDown from '../../../../../public/icons/chevron-down.svg';\nimport styles from './subscription-plan-card.module.scss';\nimport { useFeature } from '@features/FeatureToggle';\nimport { useAnalytics } from '@features/Analytics';\nexport const SubscriptionPlanCardStripe = memo((props: TpStripePlanCardProps) => {\n const {\n plan,\n disabled = false,\n getPlanDisabled,\n handlePlanSelect,\n planCardClassname,\n learnMoreList,\n submitButtonText\n } = props;\n const currentVariant = getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n });\n const {\n trackGoogleEvent\n } = useAnalytics();\n\n //Cheap offer section\n\n const [paymentInfoAtom, setPaymentInfoAtom] = useAtom(userPaymentsInfoAtom);\n const userInfoAtom = useAtomValue(userAtom);\n const {\n mutateAsync: modifySubscription\n } = useModifySubscription();\n const paymentMethod = useAtomValue(paymentMethodWithPersistence);\n const isPayedWithBraintreePayPal = paymentMethod === 'paypal';\n const setProcessingModalStatus = useSetAtom(processingModalStatusAtom);\n const isCheapOfferTest = useFeature('cheapOfferFeature');\n const handleUpgradeCheapOffer = useCallback(() => {\n setProcessingModalStatus(true);\n if (plan.braintreePlanId == null && isPayedWithBraintreePayPal) {\n throw new Error('miss id for braintree plan');\n }\n trackGoogleEvent({\n eventName: 'paywall_upgrade_from_cheep_offer',\n options: {\n planId: plan.id,\n planPrice: plan.fullPriceDiscount,\n planCurrency: plan.currency,\n paymentSystem: isPayedWithBraintreePayPal ? 'braintree' : 'stripe'\n }\n });\n modifySubscription({\n email: userInfoAtom.email,\n userId: userInfoAtom.userId,\n //@ts-expect-error catching miss bt id in upper if section\n newPlanId: isPayedWithBraintreePayPal ? plan.braintreePlanId : plan.id,\n paymentSystem: isPayedWithBraintreePayPal ? 'braintree' : 'stripe'\n }).then(() => {\n setPaymentInfoAtom(prev => ({\n ...prev,\n wasStandardPlanBought: true,\n wasCheapOfferBought: true\n }));\n setProcessingModalStatus(false);\n }).catch(() => setProcessingModalStatus(false));\n }, [userInfoAtom, plan, setPaymentInfoAtom, isPayedWithBraintreePayPal, modifySubscription, setProcessingModalStatus, trackGoogleEvent]);\n\n // section end\n\n return !disabled &&
    \n
    \n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && }{' '}\n {' '}\n \n
    \n\n
    \n {plan?.discountPercentage !== 0 && plan?.discountPercentage != null && }\n
    \n
    } rightContent={(value: boolean) =>
    \n
    \n {plan?.fractionalPrice !== plan?.fractionalPriceDiscount && }{' '}\n \n
    \n
    } fullWidthBottomContent={(value: boolean) =>
    \n
    \n \n \n \n \n
    \n {value && (plan?.learnMoreList || learnMoreList) && <>\n {plan?.learnMoreList && }\n {learnMoreList && }\n \n {submitButtonText || }\n \n }\n
    } />;\n});\nSubscriptionPlanCardStripe.displayName = 'SubscriptionPlanCardStripe';","import { useAtomValue } from 'jotai';\nimport { useMemo } from 'react';\nimport { PolicyLink, RefundLink, TermsLink } from 'src/widgets/policy';\nimport { currencyReplacer } from '@features/Payments';\nimport { selectedPlanAtom } from '@features/Stripe/atoms';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './AutoRenew.module.scss';\ntype TpAutoRenewProps = {\n placement?: 'paywall' | 'modal';\n};\nexport const AutoRenew = (props: TpAutoRenewProps) => {\n const {\n placement = 'paywall'\n } = props;\n const {\n fullPriceDiscount,\n introOfferData,\n planName,\n currency: selectedCurrency\n } = useAtomValue(selectedPlanAtom);\n const introOfferDataMemoized = useMemo(() => ({\n fullPriceDiscount: introOfferData?.fullPriceDiscount || '0',\n introOfferDescription: introOfferData?.introOfferDescription || ''\n }), [introOfferData?.fullPriceDiscount, introOfferData?.introOfferDescription]);\n const currency = currencyReplacer(selectedCurrency) || 'USD';\n const planNameHardCoded = useMemo(() => planName?.toLowerCase() === '1 week' || planName?.toLowerCase() === '7-days' ? '1 month' : planName?.toLowerCase(), [planName]);\n return
    \n
    \n

    This is auto-renewing subscription.

    \n {placement === 'paywall' ? <>\n

    \n Today you will be automatically charged {currency}\n {introOfferDataMemoized.fullPriceDiscount} after the payment\n confirmation. The subscription will be auto-renewed every{' '}\n {planNameHardCoded} after the introductory period{' '}\n {introOfferDataMemoized.introOfferDescription} at the full price\n of {currency}\n {fullPriceDiscount}. You can cancel the subscription at any time\n at no additional cost.\n

    \n

    \n ,\n terms: ,\n subscription: ,\n mark: \n \n \n }} />\n

    \n :

    \n Today you will be automatically charged {currency}\n {introOfferDataMemoized.fullPriceDiscount} after the payment\n confirmation. The subscription will be auto-renewed every{' '}\n {planNameHardCoded} after the introductory period{' '}\n {introOfferDataMemoized.introOfferDescription} at the full price of{' '}\n {currency}\n {fullPriceDiscount}. You can cancel the subscription at any time at\n no additional cost by contacting support@mentalgrowth.app\n

    }\n
    \n
    ;\n};","import { PolicyLink, RefundLink, TermsLink } from 'src/widgets/policy';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './checkout-policy.module.scss';\nexport const CheckoutPolicy = () =>

    \n ,\n terms: ,\n subscription: \n }} data-sentry-element=\"FormattedMessage\" data-sentry-source-file=\"index.tsx\" />\n
    \n
    {' '}\n \n

    ;","import { useStripe } from '@stripe/react-stripe-js';\nimport { useSetAtom } from 'jotai';\nimport { memo, useCallback, useEffect, useMemo } from 'react';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { tikTokAdvancedMatching, tikTokEvent, twitterEvent, useAnalytics } from '@features/Analytics';\nimport { processingModalStatusAtom, stripeSubscriptionWithPersistence } from '@features/Stripe/atoms';\nimport { AutoRenew } from '@features/Stripe/components/AutoRenew';\nimport { BILLING_PERIOD_LTV_MAP, CURRENCY_DOES_NOT_SUPPORT_PAYPAL } from '@features/Stripe/constants';\nimport { CardPaymentBlock } from '@features/Stripe/widgets/checkout-form/widgets/card-payment-block';\nimport { CheckoutPolicy } from '@features/Stripe/widgets/checkout-form/widgets/checkout-policy';\nimport { PaymentRequestButton } from '@features/Stripe/widgets/checkout-form/widgets/payment-request-button';\nimport { PaypalButtonBraintree } from '@features/Stripe/widgets/checkout-form/widgets/paypal-button-braintree';\nimport styles from './checkout-form.module.scss';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\nexport const CheckoutForm = memo(({\n clientSecret,\n userEmail,\n planInfo,\n handleLoading,\n showIntroOfferDescription\n}: {\n clientSecret: string;\n userEmail: string;\n showIntroOfferDescription?: boolean;\n planInfo: {\n priceId: string;\n planName: string;\n fullPriceDiscount: number;\n billingPeriod: number;\n billingPeriodUnit: string;\n introOffer?: string;\n currency: string;\n braintreePlanId?: string;\n braintreeMerchantId?: string;\n };\n handleLoading: (status: boolean) => void;\n}) => {\n const stripe = useStripe();\n const setProcessingModalStatus = useSetAtom(processingModalStatusAtom);\n const {\n productId\n } = useGetStripeProductId({\n variant: (getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }) as TpStripeVariants)\n });\n const isBraintreePaypal = typeof planInfo.braintreePlanId === 'string' && planInfo.braintreePlanId.length > 0 && planInfo.braintreeMerchantId !== undefined;\n const isPayPalSupported = useMemo(() => !CURRENCY_DOES_NOT_SUPPORT_PAYPAL.includes(planInfo.currency) && !(planInfo.billingPeriodUnit === 'week' && planInfo.billingPeriod === 1), [planInfo.currency, planInfo.billingPeriodUnit, planInfo.billingPeriod]);\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent,\n trackBingEvent\n } = useAnalytics();\n useEffect(() => {\n if (stripe && (!isBraintreePaypal || !isPayPalSupported)) {\n handleLoading(false);\n }\n }, [handleLoading, isBraintreePaypal, isPayPalSupported, stripe]);\n const setStripeSubscriptionActive = useSetAtom(stripeSubscriptionWithPersistence);\n const analyticsCombinedParameters = useMemo(() => ({\n value: planInfo.fullPriceDiscount.toFixed(2),\n currency: planInfo.currency\n }), [planInfo.currency, planInfo.fullPriceDiscount]);\n const sendAddPaymentInfoEvents = useCallback(({\n paymentMethod,\n paymentSystem = 'stripe'\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => {\n trackFacebookEvent({\n eventName: 'AddPaymentInfo',\n customData: {\n paymentSystem: paymentSystem,\n paymentMethod: paymentMethod\n },\n options: {\n email: userEmail\n }\n });\n twitterEvent('tw-oehe8-oehek', {\n email_address: userEmail\n });\n trackPinterestEvent({\n eventName: 'AddToCart'\n });\n trackGoogleEvent({\n eventName: 'add_payment_info',\n options: {\n value: planInfo.fullPriceDiscount,\n payment_system: paymentSystem,\n payment_method: paymentMethod\n }\n });\n tikTokAdvancedMatching(userEmail);\n tikTokEvent('AddPaymentInfo', {\n content_id: planInfo.planName\n });\n }, [planInfo.fullPriceDiscount, planInfo.planName, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, userEmail]);\n const handleProcessingStatus = useCallback((status: boolean) => {\n setProcessingModalStatus(status);\n }, [setProcessingModalStatus]);\n const onSuccess = useCallback(async ({\n paymentMethod,\n paymentSystem\n }: {\n paymentMethod: string;\n paymentSystem?: 'stripe' | 'braintree';\n }) => {\n setStripeSubscriptionActive('subscriptionActive');\n handleProcessingStatus(false);\n const calculateLTV = BILLING_PERIOD_LTV_MAP[planInfo.billingPeriod] || undefined;\n trackBingEvent({\n eventName: 'subscribe',\n options: {\n currency: analyticsCombinedParameters.currency,\n revenue_value: +analyticsCombinedParameters.value\n }\n });\n sendBingSpreadedConversion(userEmail);\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentSystem: paymentSystem ? paymentSystem : 'stripe',\n paymentType: paymentMethod\n },\n options: {\n ...analyticsCombinedParameters,\n email: userEmail,\n subscription_id: undefined,\n stripe_subscription_id: planInfo.priceId,\n predicted_ltv: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }) === 'variant18' ? calculateLTV : 80\n }\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n })\n },\n options: {\n email: userEmail\n }\n });\n twitterEvent('tw-oehe8-oehej', {\n email: userEmail,\n ...analyticsCombinedParameters\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: productId,\n price_id: planInfo.priceId,\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n payment_system: paymentSystem ? paymentSystem : 'stripe',\n payment_type: paymentMethod,\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n email: userEmail,\n ...analyticsCombinedParameters\n }\n });\n tikTokAdvancedMatching(userEmail);\n tikTokEvent('CompletePayment', {\n content_id: planInfo.planName,\n quantity: 1,\n ...analyticsCombinedParameters\n });\n }, [analyticsCombinedParameters, handleProcessingStatus, planInfo.billingPeriod, planInfo.planName, planInfo.priceId, setStripeSubscriptionActive, trackFacebookEvent, trackGoogleEvent, trackBingEvent, trackPinterestEvent, userEmail, productId]);\n return
    \n
    \n \n {isPayPalSupported && (isBraintreePaypal ? handleLoading(false)} subscriptionPlan={{\n braintreePlanId: planInfo.braintreePlanId!,\n merchantAccountId: planInfo.braintreeMerchantId!,\n fullPriceDiscount: planInfo.fullPriceDiscount,\n id: (planInfo.priceId as string)\n }} /> : null)}\n
    \n\n \n\n {showIntroOfferDescription && }\n\n \n ;\n});\nCheckoutForm.displayName = 'CheckoutForm';","import { memo, useMemo } from 'react';\nimport { currencyReplacer } from '@features/Payments';\nimport { FormattedMessage } from '@features/intl';\nimport styles from './check-details.module.scss';\nexport const CheckDetails = memo(({\n fullPriceDiscount,\n currency,\n billingPeriod,\n billingPeriodUnit,\n discountPercentage,\n fullPrice\n}: {\n fullPriceDiscount: string | number;\n fullPrice: string | number;\n discountPercentage: number;\n currency: string;\n billingPeriod: number;\n billingPeriodUnit: string;\n}) => {\n const currencySymbol = useMemo(() => currencyReplacer(currency), [currency]);\n const priceGap = useMemo(() => Number(Number(fullPrice) - Number(fullPriceDiscount)).toFixed(2), [fullPrice, fullPriceDiscount]);\n const hasDiscount = useMemo(() => discountPercentage > 0, [discountPercentage]);\n const billingMemoized = useMemo(() => {\n return `${billingPeriod} ${billingPeriodUnit}`;\n }, [billingPeriod, billingPeriodUnit]);\n return
    \n
    \n \n \n \n {`${currencySymbol}${fullPrice}`}\n\n {hasDiscount && <>\n \n {discountPercentage}%{' '}\n \n \n {`-${currencySymbol}${priceGap}`}\n }\n
    \n\n
    \n\n
    \n \n \n \n {`${currencySymbol} ${fullPriceDiscount}`}\n\n {hasDiscount && <>\n \n {' '}\n {billingMemoized}\n \n \n {' '}\n {currencySymbol}\n {priceGap} ({discountPercentage}%{' '}\n \n \n }\n
    \n
    ;\n});\nCheckDetails.displayName = 'CheckDetails';","import { Elements } from '@stripe/react-stripe-js';\nimport classNames from 'classnames';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport Alert from 'src/components/common/modal/alert/alert';\nimport { selectedPlanAtom, userAtom } from 'src/features/Stripe/atoms';\nimport { tikTokAdvancedMatching, tikTokEvent, useAnalytics } from '@features/Analytics';\nimport { ELEMENTS_APPEARANCE } from '@features/Stripe/constants';\nimport { useCreateSubscription, useGetStripePromise } from '@features/Stripe/hooks';\nimport { CheckoutForm } from '@features/Stripe/widgets/checkout-form';\nimport { CheckDetails } from '@features/Stripe/widgets/modal/components/check-details';\nimport { FormattedMessage } from '@features/intl';\nimport PaymentLoader from '../../../../assets/images/payment/payment-loader.svg';\nimport { useFeature } from '../../../FeatureToggle';\nimport styles from './stripe-modal.module.scss';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\nexport const StripeModal = memo((props: {\n show: boolean;\n onClose: () => void;\n}) => {\n const {\n show,\n onClose\n } = props;\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackBingEvent\n } = useAnalytics();\n const stripePromise = useGetStripePromise();\n const [isLoading, setIsLoading] = useState(true);\n const [clientSecret, setClientSecret] = useState('');\n const {\n billingPeriod,\n billingPeriodUnit,\n currency,\n fullPriceDiscount,\n discountPercentage,\n fullPrice,\n priceId,\n planName,\n braintreePlanId,\n braintreeMerchantId,\n introOfferData\n } = useAtomValue(selectedPlanAtom);\n const {\n email,\n token,\n userId,\n campaign\n } = useAtomValue(userAtom);\n const setCustomerId = useSetAtom(userAtom);\n const isIntroOfferEnabled = useFeature('introOfferFeature');\n const currentPlanDetails = useMemo(() => isIntroOfferEnabled ? {\n fullPrice: introOfferData?.fullPrice,\n fullPriceDiscount: introOfferData?.fullPriceDiscount,\n introOfferId: introOfferData?.introOfferId,\n introOfferDuration: Number(introOfferData?.introOfferDuration),\n billingPeriod: introOfferData?.billingPeriod,\n billingPeriodUnit: introOfferData?.billingPeriodUnit\n } : {\n fullPrice: fullPrice,\n fullPriceDiscount: fullPriceDiscount,\n introOfferId: undefined,\n introOfferDuration: undefined,\n billingPeriod: billingPeriod,\n billingPeriodUnit: billingPeriodUnit\n }, [isIntroOfferEnabled, introOfferData, fullPrice, fullPriceDiscount, billingPeriod, billingPeriodUnit]);\n const {\n isLoading: createSubscriptionIsLoading,\n data,\n error\n } = useCreateSubscription({\n priceId,\n currency,\n token,\n email,\n campaign,\n userId,\n introOfferId: currentPlanDetails.introOfferId,\n introOfferDuration: currentPlanDetails.introOfferDuration\n });\n const handleLoading = useCallback(() => {\n setIsLoading(false);\n }, []);\n const options = useMemo(() => ({\n clientSecret: clientSecret,\n appearance: ELEMENTS_APPEARANCE\n }), [clientSecret]);\n const closeHandle = useCallback(() => {\n onClose();\n setClientSecret('');\n setIsLoading(true);\n trackGoogleEvent({\n eventName: 'initiate_checkout_closed'\n });\n }, [onClose, trackGoogleEvent]);\n useEffect(() => {\n if (createSubscriptionIsLoading || error || !data) {\n setClientSecret('');\n return;\n }\n const {\n client_secret,\n customer_id\n } = data;\n setCustomerId(prev => ({\n ...prev,\n customerId: customer_id\n }));\n setClientSecret(client_secret);\n }, [data, createSubscriptionIsLoading, error, setCustomerId]);\n useEffect(() => {\n if (show) {\n trackFacebookEvent({\n eventName: 'InitiateCheckout',\n options: {\n email: email\n }\n });\n trackBingEvent({\n eventName: 'begin_checkout'\n });\n sendBingSpreadedConversion(email);\n trackGoogleEvent({\n eventName: 'initiate_checkout'\n });\n tikTokAdvancedMatching(email);\n tikTokEvent('InitiateCheckout');\n }\n }, [email, show, trackFacebookEvent, trackGoogleEvent, trackBingEvent]);\n useEffect(() => () => {\n setClientSecret('');\n setIsLoading(true);\n }, []);\n useEffect(() => {\n if (!isLoading) {\n trackGoogleEvent({\n eventName: 'checkout_methods_loaded'\n });\n }\n }, [isLoading, trackGoogleEvent]);\n return \n
    \n

    \n \n

    \n
    \n \n
    \n {clientSecret && stripePromise && \n \n }\n
    \n
    \n {isLoading &&
    \n \n \n
    }\n
    \n
    ;\n});\nStripeModal.displayName = 'StripeModal';","import { useState } from 'react';\nimport { ContactFormModal } from '../contact-form-modal';\nimport styles from './contact-block-email3.module.scss';\nexport const ContactBlockEmail3 = () => {\n const [isContactModalVisible, setIsContactModalVisible] = useState(false);\n return <>\n setIsContactModalVisible(false)} data-sentry-element=\"ContactFormModal\" data-sentry-source-file=\"index.tsx\" />\n\n

    \n Need help?{' '}\n setIsContactModalVisible(true)}>\n Contact us\n {' '}\n now\n

    \n ;\n};","import { useAtom, useAtomValue, useSetAtom } from 'jotai';\nimport { observer } from 'mobx-react-lite';\nimport { useRouter } from 'next/router';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { MoneyBack } from 'src/components/common/money-back/money-back';\nimport { useStores } from 'src/components/common/root-store-provider/root-store-provider';\nimport { routes } from 'src/constants/navigation';\nimport { TpStripeVariants } from 'src/constants/variants';\nimport { TpPaymentPlansStripeProps, TpStripeSubscription } from 'src/features/Stripe/types';\nimport { getDataFromSessionStorage } from 'src/utils';\nimport { useIsInViewport } from 'src/utils/hooks/use-is-in-viewport';\nimport { tikTokAdvancedMatching, tikTokEvent, twitterEvent, useAnalytics } from '@features/Analytics';\nimport { currencyReplacer, PaymentModalStatus, useGenerateBraintreeClientToken } from '@features/Payments';\nimport { PAYMENT_MODAL_QUERY_PARAM } from '@features/Paywall';\nimport Banner, { BannerType } from '@features/Paywall/components/banner/banner';\nimport { EmptySubscriptionPlanCardList } from '@features/Paywall/widgets/payment-plans/components/empty-subscription-plan-list';\nimport { GuaranteeBlock } from '@features/Paywall/widgets/payment-plans/components/guarantee-block';\nimport { PrivacyAgreement } from '@features/Paywall/widgets/payment-plans/components/privacy-agreement';\nimport { SubscriptionPlanCardStripe, useGetStripeSubscriptions } from '@features/Stripe';\nimport { introOfferInfoAtom, noMoneyPlanInfoAtom, premiumYearAllDataAtom, processingModalStatusAtom, selectedPlanAtom, stripePaymentErrorAtom, stripeSubscriptionWithPersistence, upgradeInfoAtom, upsellInfoAtom, userAtom, userPaymentsInfoAtom } from '@features/Stripe/atoms';\nimport { AutoRenew } from '@features/Stripe/components/AutoRenew';\nimport { LEARN_MORE_VARIANT, NO_MONEY_LEARN_MORE } from '@features/Stripe/components/LearnMoreList/additionalInfo';\nimport { BILLING_PERIOD_LTV_MAP } from '@features/Stripe/constants';\nimport { useGetStripePromise } from '@features/Stripe/hooks';\nimport { useGetStripeProductId } from '@features/Stripe/hooks/query/use-get-stripe-product-id';\nimport { StripeModal } from '@features/Stripe/widgets/modal';\nimport { PaymentDeclinedModal } from '@features/Stripe/widgets/payment-declined-modal';\nimport PaymentProcessingAlert from '@features/Stripe/widgets/payment-processing-alert/payment-processing-alert';\nimport { SecondPaymentFailedModal } from '@features/Stripe/widgets/second-payment-failed-modal';\nimport { SubscriptionPlanCardStripeWithPaymentMethods } from '@features/Stripe/widgets/subscription-plan-card-stripe-with-payment-methods';\nimport { FormattedMessage } from '@features/intl';\nimport { ContactBlockEmail3 } from '@features/Paywall/components/contact-block-email3';\nimport { Guarantees } from '@features/Paywall/components/guarantees';\nimport { Reviews } from '@features/Paywall/components/reviews';\nimport { ModalRenderer } from '@features/Stripe/widgets/upsell-modal-renderer';\nimport { reviews } from 'src/components/common/reviews/reviews';\nimport { UiKitButton } from 'src/components/common/ui-kit-button';\nimport { Policy } from 'src/widgets/policy';\nimport { useFeatures } from '../../../FeatureToggle';\nimport styles from './payment-plans-stripe.module.scss';\nimport { UpsellFallbackModal } from '@features/Stripe/widgets/upsell-fallback-modal';\nimport { sendBingSpreadedConversion } from '@features/Analytics/services/bing';\nconst filteredMap = new Map();\nconst REVIEWS_BLOCK_1 = [reviews.user8, reviews.user7, reviews.user9];\nexport const PaymentPlansStripe = observer((props: TpPaymentPlansStripeProps) => {\n const {\n userProperty,\n variant,\n replaceVariantWithHardCodeTestValue,\n titleSection\n } = props;\n const {\n user,\n accessCode\n } = userProperty;\n const stripePromise = useGetStripePromise();\n const [wasCheckoutShownOnMount, setWasCheckoutShownOnMount] = useState(false);\n const [wasNoMoneyPreselected, setWasNoMoneyPreselected] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [subscriptionAgreementChecked, setSubscriptionAgreementChecked] = useState(true);\n const {\n wasErrorModalWithOfferShown\n } = useAtomValue(stripePaymentErrorAtom);\n const isSubscriptionActive = useAtomValue(stripeSubscriptionWithPersistence);\n const [planAtom, setPlanAtom] = useAtom(selectedPlanAtom);\n const showProcessingModal = useAtomValue(processingModalStatusAtom);\n const paymentInfoAtom = useAtomValue(userPaymentsInfoAtom);\n const setUpsellInfoAtom = useSetAtom(upsellInfoAtom);\n const setPremiumYearAllDataAtom = useSetAtom(premiumYearAllDataAtom);\n const setNoMoneyPlanInfoAtom = useSetAtom(noMoneyPlanInfoAtom);\n const setUpgradeInfoAtom = useSetAtom(upgradeInfoAtom);\n const setIntroOfferInfoAtom = useSetAtom(introOfferInfoAtom);\n const setUserFields = useSetAtom(userAtom);\n const setPaymentError = useSetAtom(stripePaymentErrorAtom);\n const {\n authStore: {\n loginedByWinback,\n campaign\n },\n quizStore: {\n countryCode\n }\n } = useStores();\n const {\n trackFacebookEvent,\n trackGoogleEvent,\n trackPinterestEvent,\n trackBingEvent\n } = useAnalytics();\n const {\n introOfferFeature: isIntroOfferEnabled\n } = useFeatures();\n const isCheckoutInsidePlanCard = variant !== 'challenge';\n const scrollToTheCheckoutSelector = useCallback(() => {\n document.querySelector('#checkout-selector')?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }, []);\n const paymentSectionRef = useRef(null);\n const isPaymentSectionRefInViewport = useIsInViewport(paymentSectionRef);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: paymentSectionRef is not changing\n const scrollPaymentSectionIntoView = useCallback(() => {\n if (paymentSectionRef.current) {\n paymentSectionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }\n }, [paymentSectionRef]);\n const router = useRouter();\n const {\n query,\n pathname\n } = router;\n const isEmail3Variant = variant === 'email3';\n const {\n payment_intent_client_secret: clientSecretFromUrl,\n redirect_status: redirectStatus,\n stripe_plan_id: selectedPlanIdFromUrl,\n payment_status: paymentStatus\n } = query;\n const isRedirectStatusFailed = !!clientSecretFromUrl && redirectStatus === 'failed' || paymentStatus === 'failure';\n const isRedirectStatusSucceeded = !!clientSecretFromUrl && redirectStatus === 'succeeded';\n const {\n productId\n } = useGetStripeProductId({\n variant: (replaceVariantWithHardCodeTestValue as TpStripeVariants)\n });\n const data = useGetStripeSubscriptions({\n productId: productId\n });\n useEffect(() => {\n if (data) {\n trackGoogleEvent({\n eventName: 'paywall_plans_loaded',\n options: {\n plans: data?.plans\n }\n });\n }\n }, [data, trackGoogleEvent]);\n const allSubscriptions = useMemo(() => data?.plans && data?.plans?.length > 0 ? [...data.plans].sort((a, b) => a.order - b.order) : [], [data]);\n const filteredSubscriptions = useMemo(() => {\n if (!allSubscriptions) return [];\n for (const item of allSubscriptions) {\n if (!item.specialOffer && !item.noMoneyDiscount) {\n const combinedItem = {\n ...item,\n learnMoreList: LEARN_MORE_VARIANT[0].learnMoreList,\n hideDescription: true\n };\n if (filteredMap.has(combinedItem.id)) {\n // @ts-ignore\n Object.assign(filteredMap.get(combinedItem.id), combinedItem);\n } else {\n // @ts-ignore item types are inconsistent\n filteredMap.set(combinedItem.id, combinedItem);\n }\n }\n }\n return [...filteredMap.values()];\n }, [allSubscriptions]);\n const preselectedSubscriptionId = useMemo(() => filteredSubscriptions.find(item => item.preselected)?.id ?? filteredSubscriptions[0]?.id, [filteredSubscriptions]);\n const upgradeInfo = useMemo(() => {\n if (data == null || data.upgrade_plan == null || Object.keys(data.upgrade_plan).length === 0) {\n return {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n upgradeId: '',\n braintreePlanId: ''\n };\n }\n return data.upgrade_plan;\n }, [data]);\n const upsellInfo = useMemo(() => {\n if (data == null || data.upsell_data == null) {\n return {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0\n };\n }\n return data.upsell_data;\n }, [data]);\n const premiumYearAllDataInfo = useMemo(() => {\n if (data == null || data.premium_year_data == null || data.premium_year_discount_data == null) {\n return {\n premiumYearData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: ''\n },\n premiumYearDiscountData: {\n currency: 'usd',\n fullPriceDiscount: 0,\n fullPrice: 0,\n discountPercentage: 0,\n braintreePlanId: '',\n upgradeId: ''\n }\n };\n }\n return {\n premiumYearData: data.premium_year_data,\n premiumYearDiscountData: data.premium_year_discount_data\n };\n }, [data]);\n const noMoneyPlanInfo = useMemo(() => {\n const defaultPlanInfo = {\n currency: 'usd',\n discountPercentage: 0,\n fullPrice: 0,\n fullPriceDiscount: 0,\n priceFromDefaultOneMonth: 0\n };\n if (!data || !data.plans || data.plans.length === 0) {\n return defaultPlanInfo;\n }\n for (const item of data.plans) {\n if (item.noMoneyDiscount) {\n return item;\n }\n }\n return defaultPlanInfo;\n }, [data]);\n const oneMonthPlan = useMemo(() => allSubscriptions.find(item => item.billingPeriod === 1 && item.billingPeriodUnit === 'month' && !item.specialOffer && !item.noMoneyDiscount), [allSubscriptions]);\n const introOfferInfo = useMemo(() => {\n if (data == null || data.intro_offer_data == null) {\n return {\n currency: 'usd',\n fullPriceDiscount: 0,\n introOfferDuration: 0,\n introOfferId: '',\n planId: '',\n billingPeriodUnit: '',\n billingPeriod: 0,\n surcharge: 0\n };\n }\n return data.intro_offer_data;\n }, [data]);\n const analyticsCombinedParameters = useMemo(() => planAtom.priceId != '' ? {\n value: planAtom.fullPriceDiscount ? planAtom.fullPriceDiscount.toFixed(2) : planAtom.fullPrice.toFixed(2),\n currency: planAtom?.currency\n } : {}, [planAtom]);\n const setPaymentInfoAtoms = useCallback(() => {\n setUpgradeInfoAtom(previous => ({\n ...previous,\n ...upgradeInfo\n }));\n setUpsellInfoAtom(previous => ({\n ...previous,\n ...upsellInfo\n }));\n setPremiumYearAllDataAtom(previous => ({\n ...previous,\n ...premiumYearAllDataInfo\n }));\n setNoMoneyPlanInfoAtom(previous => ({\n ...previous,\n ...noMoneyPlanInfo,\n priceFromDefaultOneMonth: oneMonthPlan?.fullPriceDiscount ?? 19.99\n }));\n setIntroOfferInfoAtom(previous => ({\n ...previous,\n ...introOfferInfo\n }));\n }, [introOfferInfo, noMoneyPlanInfo, oneMonthPlan?.fullPriceDiscount, setIntroOfferInfoAtom, setNoMoneyPlanInfoAtom, setUpgradeInfoAtom, setUpsellInfoAtom, setPremiumYearAllDataAtom, upgradeInfo, upsellInfo, premiumYearAllDataInfo]);\n useEffect(() => {\n if (data != null) {\n setPaymentInfoAtoms();\n }\n }, [data, setPaymentInfoAtoms]);\n const openPaymentModalHandler = useCallback(() => {\n setShowModal(true);\n // noinspection JSIgnoredPromiseFromCall\n router.push({\n pathname,\n query: {\n ...query,\n [PAYMENT_MODAL_QUERY_PARAM]: PaymentModalStatus.SHOW,\n ['plan']: planAtom.priceId\n }\n }, undefined, {\n shallow: true\n });\n }, [pathname, planAtom.priceId, query, router]);\n const closePaymentModalHandler = useCallback(() => {\n router.replace({\n pathname: routes.newPlanPaywall,\n query: {\n ...query,\n ['redirect_status']: undefined,\n ['payment_status']: undefined\n }\n }).then(r => r);\n setShowModal(false);\n setTimeout(() => scrollPaymentSectionIntoView(), 500);\n }, [query, router, scrollPaymentSectionIntoView]);\n const handlePlanSelect = useCallback(() => {\n openPaymentModalHandler();\n if (isCheckoutInsidePlanCard) {\n scrollToTheCheckoutSelector();\n trackFacebookEvent({\n eventName: 'InitiateCheckout',\n options: {\n email: user?.email\n }\n });\n trackBingEvent({\n eventName: 'begin_checkout'\n });\n sendBingSpreadedConversion(user?.email);\n trackGoogleEvent({\n eventName: 'InitiateCheckout',\n options: {\n action: 'initiate_checkout',\n category: 'get_plan',\n label: 'InitiateCheckout',\n value: planAtom.fullPriceDiscount\n }\n });\n user?.email ? tikTokAdvancedMatching(user.email) : null;\n tikTokEvent('InitiateCheckout');\n }\n trackGoogleEvent({\n eventName: 'add_to_cart_chosen',\n options: {\n product_id: planAtom.priceId\n }\n });\n }, [isCheckoutInsidePlanCard, openPaymentModalHandler, planAtom.fullPriceDiscount, planAtom.priceId, scrollToTheCheckoutSelector, trackFacebookEvent, trackGoogleEvent, trackBingEvent, user.email]);\n const handleSetSelectedPlanId = useCallback((planId: string) => {\n //eslint-disable-next-line unicorn/prefer-array-find\n const selectedPlan = allSubscriptions.filter(plan => plan.id === planId)[0];\n setPlanAtom({\n currency: selectedPlan?.currency ?? 'usd',\n planName: selectedPlan?.name ?? '',\n discountPercentage: selectedPlan?.discountPercentage ?? 0,\n specialDiscountPercentage: selectedPlan?.specialDiscountPercentage ?? 0,\n fullPrice: selectedPlan?.fullPrice ?? 0,\n fullPriceDiscount: selectedPlan?.fullPriceDiscount ?? 0,\n billingPeriod: selectedPlan?.billingPeriod ?? 0,\n billingPeriodUnit: selectedPlan?.billingPeriodUnit ?? '',\n priceId: selectedPlan?.id ?? '',\n introOffer: selectedPlan?.introOffer ?? '',\n braintreeMerchantId: selectedPlan?.braintreeMerchantId ?? undefined,\n braintreePlanId: selectedPlan?.braintreePlanId ?? undefined,\n specialOffer: selectedPlan?.specialOffer ?? false,\n introOfferData: {\n ...selectedPlan?.introOfferData,\n fullPrice: Number(selectedPlan?.introOfferData?.fullPrice).toFixed(2) ?? '0',\n fullPriceDiscount: Number(selectedPlan?.introOfferData?.fullPriceDiscount).toFixed(2) ?? '0'\n },\n premiumPriceData: selectedPlan?.premiumPriceData,\n premiumDiscountPriceData: selectedPlan?.premiumDiscountPriceData\n });\n }, [allSubscriptions, setPlanAtom]);\n const selectPlanHandler = useCallback((id: string) => {\n trackGoogleEvent({\n eventName: 'initiate_checkout_another_plan'\n });\n !isPaymentSectionRefInViewport && scrollPaymentSectionIntoView();\n handleSetSelectedPlanId(id);\n }, [handleSetSelectedPlanId, isPaymentSectionRefInViewport, scrollPaymentSectionIntoView, trackGoogleEvent]);\n const userPaid = useMemo(() => isRedirectStatusSucceeded || isSubscriptionActive === 'subscriptionActive' || user.isSubscriptionActive, [isRedirectStatusSucceeded, isSubscriptionActive, user.isSubscriptionActive]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: subscriptionAgreementChecked is not changing\n const handleCheck = useCallback(() => {\n setSubscriptionAgreementChecked(!subscriptionAgreementChecked);\n }, [setSubscriptionAgreementChecked, subscriptionAgreementChecked]);\n useEffect(() => {\n trackFacebookEvent({\n eventName: 'AddToCart',\n options: {\n email: user?.email\n }\n });\n trackBingEvent({\n eventName: 'add_to_cart'\n });\n sendBingSpreadedConversion(user.email);\n trackGoogleEvent({\n eventName: 'add_to_cart_open',\n options: {\n variant: variant\n }\n });\n user?.email ? tikTokAdvancedMatching(user.email) : null;\n tikTokEvent('AddToCart');\n setUserFields(previous => ({\n ...previous,\n email: user.email ?? 'undefined',\n token: user.token ?? 'undefined',\n campaign: campaign ?? 'undefined',\n userId: user.id ?? 0,\n accessCode: accessCode ?? 'undefined'\n }));\n }, [campaign, setUserFields, accessCode, trackFacebookEvent, trackGoogleEvent, trackBingEvent, user, variant]);\n const noMoneyPlan = useMemo(() => allSubscriptions.find(item => item.noMoneyDiscount), [allSubscriptions]);\n useEffect(() => {\n if (selectedPlanIdFromUrl && !planAtom.priceId) {\n handleSetSelectedPlanId((selectedPlanIdFromUrl as string));\n }\n if (preselectedSubscriptionId && !selectedPlanIdFromUrl && !planAtom.priceId) {\n handleSetSelectedPlanId(preselectedSubscriptionId);\n }\n if (wasErrorModalWithOfferShown && noMoneyPlan && oneMonthPlan && !wasNoMoneyPreselected) {\n setWasNoMoneyPreselected(true);\n handleSetSelectedPlanId(noMoneyPlan.id);\n }\n }, [handleSetSelectedPlanId, noMoneyPlan, oneMonthPlan, planAtom.priceId, preselectedSubscriptionId, selectedPlanIdFromUrl, wasErrorModalWithOfferShown, wasNoMoneyPreselected]);\n useEffect(() => {\n if (isRedirectStatusSucceeded && planAtom.priceId != '') {\n const calculateLTV = BILLING_PERIOD_LTV_MAP[planAtom.billingPeriod] || undefined;\n trackFacebookEvent({\n eventName: 'Purchase',\n customData: {\n variant: getDataFromSessionStorage({\n store: 'authStore',\n key: 'variant'\n }),\n paymentMethod: 'paypal',\n paymentSystem: 'stripe'\n },\n options: {\n email: user.email,\n subscription_id: undefined,\n stripe_subscription_id: planAtom.priceId,\n predicted_ltv: variant === 'variant18' ? calculateLTV : 80,\n ...analyticsCombinedParameters\n }\n });\n trackFacebookEvent({\n eventName: 'Subscribe',\n options: {\n email: user.email\n }\n });\n twitterEvent('tw-oehe8-oehej', {\n email: user.email,\n ...analyticsCombinedParameters\n });\n trackPinterestEvent({\n eventName: 'Checkout',\n options: analyticsCombinedParameters\n });\n trackGoogleEvent({\n eventName: 'purchase_success',\n options: {\n product_id: planAtom?.planName,\n payment_type: 'paypal',\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n email: user.email,\n ...analyticsCombinedParameters\n }\n });\n tikTokAdvancedMatching(user.email);\n tikTokEvent('CompletePayment', {\n content_id: planAtom?.planName,\n quantity: 1,\n ...analyticsCombinedParameters\n });\n }\n if (isRedirectStatusFailed) {\n console.log('isRedirectStatusFailed');\n setPaymentError(previous => ({\n ...previous,\n errorCode: 'insufficient_funds',\n paymentSystem: 'PayPal'\n }));\n trackGoogleEvent({\n eventName: 'purchase_subscription_failed',\n options: {\n payment_type: 'paypal',\n campaign_name_manual: getDataFromSessionStorage({\n store: 'authStore',\n key: 'campaign'\n }) ?? 'undefined',\n product_id: planAtom?.planName ?? '',\n ...analyticsCombinedParameters\n }\n });\n }\n }, [analyticsCombinedParameters, isRedirectStatusFailed, isRedirectStatusSucceeded, planAtom, setPaymentError, trackFacebookEvent, trackGoogleEvent, trackPinterestEvent, user.email, variant]);\n useGenerateBraintreeClientToken({\n userFields: {\n email: user.email,\n id: user.id\n },\n merchantAccountId: planAtom?.braintreeMerchantId\n });\n useEffect(() => {\n if (variant === 'email2' && allSubscriptions.length > 0 && !wasCheckoutShownOnMount) {\n handleSetSelectedPlanId(allSubscriptions[0].id);\n !(isSubscriptionActive === 'subscriptionActive' || user.isSubscriptionActive) && openPaymentModalHandler();\n setWasCheckoutShownOnMount(true);\n }\n }, [allSubscriptions, handleSetSelectedPlanId, isSubscriptionActive, openPaymentModalHandler, user.isSubscriptionActive, variant, wasCheckoutShownOnMount]);\n const renderPlans = useMemo(() => {\n if (allSubscriptions.length === 0 || isCheckoutInsidePlanCard && stripePromise == null) {\n return ;\n }\n if (wasErrorModalWithOfferShown && noMoneyPlan) {\n if (isCheckoutInsidePlanCard) {\n return <>\n \n {oneMonthPlan && item.name === '1-MONTH')?.learnMoreList ?? LEARN_MORE_VARIANT[0].learnMoreList} countryCode={countryCode} isCardSelected={planAtom.priceId === oneMonthPlan.id} onSelectPlan={selectPlanHandler} handlePlanSelect={handlePlanSelect} getPlanDisabled={!subscriptionAgreementChecked || allSubscriptions.length === 0} />}\n ;\n }\n return <>\n \n {oneMonthPlan && item.name === '1-MONTH')?.learnMoreList ?? LEARN_MORE_VARIANT[0].learnMoreList} countryCode={countryCode} isCardSelected={planAtom.priceId === oneMonthPlan.id} onSelectPlan={selectPlanHandler} handlePlanSelect={handlePlanSelect} getPlanDisabled={!subscriptionAgreementChecked || allSubscriptions.length === 0} />}\n ;\n }\n if (variant === 'email2') {\n return ;\n }\n if (isCheckoutInsidePlanCard) {\n return <>\n {filteredSubscriptions.map(item => )}\n ;\n }\n return filteredSubscriptions.map(item => );\n }, [allSubscriptions, countryCode, filteredSubscriptions, handlePlanSelect, isCheckoutInsidePlanCard, noMoneyPlan, oneMonthPlan, planAtom.priceId, selectPlanHandler, stripePromise, subscriptionAgreementChecked, variant, wasErrorModalWithOfferShown]);\n const renderGetMyPlan = useMemo(() => {\n return \n \n ;\n }, [handlePlanSelect, subscriptionAgreementChecked]);\n const titleSectionRender = useMemo(() => {\n const defaultTitle = ;\n const title = wasErrorModalWithOfferShown || variant === 'email2' ? 'Save money and see amazing results' : defaultTitle;\n return titleSection ||

    {title}

    ;\n }, [titleSection, variant, wasErrorModalWithOfferShown]);\n return <>\n {titleSectionRender}\n\n {wasErrorModalWithOfferShown || variant === 'email2' ? null : }\n
    \n
      {renderPlans}
    \n {!isEmail3Variant && }\n
    \n\n {!isEmail3Variant && <>\n \n {isIntroOfferEnabled ? : }\n }\n\n {!isCheckoutInsidePlanCard && }\n {noMoneyPlanInfo.fullPrice > 0 && <>\n \n \n }\n \n\n {planAtom.priceId == '' && variant === 'challenge' && userPaid ? : }\n\n {variant === 'email3' && <>\n
    \n \n
    \n {renderGetMyPlan}\n
    \n \n
    \n {renderGetMyPlan}\n\n
    \n \n
    \n \n }\n ;\n});\nPaymentPlansStripe.displayName = 'PaymentPlansStripe';","export { SubscriptionPlanCardStripe } from './widgets/subscription-plan-card-stripe';\n\nexport { useGetStripeSubscriptions } from './hooks';\nexport { PaymentPlansStripe } from './widgets/payment-plans-stripe';\n","export const LANG_TO_LOCALE = {\n de: 'de_DE',\n en: 'en',\n es: 'es_LA',\n fr: 'fr_FR',\n pt: 'pt_PT',\n} as const;\n\nexport const DEFAULT_LOCALE = 'en';\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import LanguageDetector from 'i18next-browser-languagedetector';\n\nexport const languageDetector = new LanguageDetector(null, {\n order: [\n 'navigator',\n 'querystring',\n 'cookie',\n 'localStorage',\n 'sessionStorage',\n 'htmlTag',\n ],\n});\n","import { DEFAULT_LOCALE, LANG_TO_LOCALE } from './contants';\nimport type { TpLocale, TpMessages } from './types';\n\nexport const getTranslationsByLang = (locale: string): Promise =>\n import(`./locales/${locale}.json`);\n\nexport const getMessages = async (lang: TpLocale): Promise => {\n try {\n if (LANG_TO_LOCALE[lang]) {\n return await getTranslationsByLang(LANG_TO_LOCALE[lang]);\n }\n return await getTranslationsByLang(LANG_TO_LOCALE[DEFAULT_LOCALE]);\n } catch (error) {\n console.error(error);\n return await getTranslationsByLang(LANG_TO_LOCALE[DEFAULT_LOCALE]);\n }\n};\n","import { __assign } from \"tslib\";\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MessageFormatError, MissingTranslationError } from './error';\nimport { invariant } from './utils';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.github.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.github.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.github.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var fromDate = typeof from === 'string' ? new Date(from || 0) : from;\n var toDate = typeof to === 'string' ? new Date(to || 0) : to;\n try {\n return getFormatter(config, 'dateTimeRange', getDateTimeFormat, options).formatRange(fromDate, toDate);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(fromDate);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nimport { filterProps } from './utils';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return (part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value }));\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n // ES2023 NumberFormat\n 'trailingZeroDisplay',\n 'roundingPriority',\n 'roundingIncrement',\n 'roundingMode',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { ErrorCode, FormatError } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nimport { filterProps } from './utils';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { __assign } from \"tslib\";\nimport { formatDate, formatDateTimeRange, formatDateToParts, formatTime, formatTimeToParts, } from './dateTime';\nimport { formatDisplayName } from './displayName';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatList, formatListToParts } from './list';\nimport { formatMessage } from './message';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatPlural } from './plural';\nimport { formatRelativeTime } from './relativeTime';\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.github.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.github.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.github.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.github.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, } from '@formatjs/intl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, assignUniqueKeysToParts } from '../utils';\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, resolvedConfig, coreIntl.formatters), $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __extends } from \"tslib\";\nimport { createIntlCache } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, shallowEqual, } from '../utils';\nimport { createIntl } from './createIntl';\nimport { Provider } from './injectIntl';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import { useRouter } from 'next/router';\nimport { ReactNode, useEffect, useState } from 'react';\nimport { IntlProvider as Provider } from 'react-intl';\nimport { languageDetector } from '@features/intl/languageDetector';\nimport { DEFAULT_LOCALE } from './contants';\nimport { getMessages } from './service';\nimport type { TpLocale } from './types';\nexport const IntlProvider = (props: TpIntlProviderProps) => {\n const router = useRouter();\n const {\n query\n } = router;\n const {\n children\n } = props;\n const [messages, setMessages] = useState({});\n const currentLocale = query.variant === 'variantlong' ? DEFAULT_LOCALE : languageDetector.detect() || DEFAULT_LOCALE;\n const currentLocaleTwoSymbols = currentLocale.slice(0, 2);\n useEffect(() => {\n document.documentElement.lang = navigator.language;\n getMessages((currentLocaleTwoSymbols as TpLocale)).then(data => setMessages(data));\n }, [currentLocaleTwoSymbols]);\n return console.info('Translations is not full')} data-sentry-element=\"Provider\" data-sentry-component=\"IntlProvider\" data-sentry-source-file=\"provider.tsx\">\n {children}\n ;\n};\ntype TpIntlProviderProps = {\n children: ReactNode;\n};","import { useMemo } from 'react';\nimport { useIntl as useReactIntl } from 'react-intl';\nimport type { IntlFormatters } from 'react-intl';\nimport type { TpMessageKeys } from './types';\nexport type TpFormatMessageArgs = Parameters;\nexport function useIntl() {\n const {\n formatMessage,\n ...rest\n } = useReactIntl();\n const typedFormatMessage = useMemo(() => (descriptor: TpFormatMessageArgs[0] & {\n id?: TpMessageKeys;\n asString?: boolean;\n }, values?: TpFormatMessageArgs[1], options?: TpFormatMessageArgs[2]) => {\n // @ts-expect-error values is required\n const message = formatMessage(descriptor, values, options);\n return descriptor.asString ? message : {message};\n }, [formatMessage]);\n return {\n ...rest,\n formatMessage: typedFormatMessage\n };\n}","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { shallowEqual } from '../utils';\nimport useIntl from './useIntl';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { FormattedMessage as Message } from 'react-intl';\nimport { TpFormattedMessage } from '../../types';\nexport const FormattedMessage = (props: TpFormattedMessage) => {\n const {\n defaultMessage,\n id,\n ...otherProps\n } = props;\n return \n \n ;\n};","export { languageDetector } from './languageDetector';\n\nexport { getMessages } from './service';\n\nexport { IntlProvider } from './provider';\nexport { useIntl } from './useFormatMessage';\nexport { FormattedMessage } from './components/FormattedMessage';\nexport type {\n TpLocale,\n TpMessages,\n TpMessageKeys,\n TpFormattedMessage,\n} from './types';\n","import { Instance, SnapshotOut, types } from 'mobx-state-tree';\n\nexport enum BillingPeriodUnit {\n DAY = 'day',\n WEEK = 'week',\n MONTH = 'month',\n YEAR = 'year',\n}\n\nexport const SubscriptionPlanModel = types\n .model('SubscriptionPlan')\n .props({\n id: types.identifier,\n name: types.string,\n currency: types.string,\n priceAfterIntroOffer: types.string,\n billingPeriod: types.number,\n // @ts-ignore\n billingPeriodUnit: types.enumeration(\n Object.values(BillingPeriodUnit),\n ),\n trialPeriodDays: types.number,\n specialOffer: types.maybe(types.boolean),\n discountPercentage: types.number,\n merchantAccountId: types.maybe(types.string),\n order: types.number,\n displayPrice: types.string,\n fractionalPrice: types.number,\n fractionalPriceDiscount: types.number,\n initialPrice: types.maybe(types.number),\n introOffer: types.maybe(types.string),\n fullPrice: types.number,\n fullPriceDiscount: types.number,\n group: types.string,\n description: types.string,\n paddlePlanId: types.maybe(types.number),\n paypalPlanId: types.maybe(types.string),\n paddleIternalName: types.maybe(types.string),\n stripePriceId: types.maybe(types.string),\n nuveiPlanId: types.maybe(types.number),\n braintreePlanId: types.maybe(types.string),\n hideDescription: types.maybe(types.boolean),\n gift: types.maybe(types.boolean),\n preselected: types.maybe(types.boolean),\n introOfferData: types.maybe(\n types.frozen({\n billingPeriod: types.number,\n billingPeriodUnit: types.string,\n introOfferId: types.maybe(types.string),\n fullPrice: types.number,\n fullPriceDiscount: types.number,\n fractionalPrice: types.number,\n fractionalPriceDiscount: types.number,\n introOfferDescription: types.string,\n introOfferDuration: types.string,\n }),\n ),\n })\n .views((self) => ({\n get hasTrial() {\n return self.trialPeriodDays > 0;\n },\n }))\n .views((self) => ({\n get immediatePrice() {\n return !self.hasTrial ? self.fullPriceDiscount : 0;\n },\n }));\n\nexport type SubscriptionPlan = Instance;\n\ntype SubscriptionPlanSnapshotType = SnapshotOut;\n\nexport interface SubscriptionPlanSnapshot\n extends SubscriptionPlanSnapshotType {}\n","import { Instance, applySnapshot, cast, flow, types } from 'mobx-state-tree';\n\nimport { fetchSubscriptionPlans } from '@features/Payments';\n\nimport {\n SubscriptionPlan,\n SubscriptionPlanModel,\n SubscriptionPlanSnapshot,\n} from '../subscription-plan/subscription-plan';\n\nexport enum PaymentMethod {\n CARD = 'credit_card',\n APPLE_PAY = 'apple_pay',\n GOOGLE_PAY = 'google_pay',\n PAYPAL = 'paypal',\n}\n\nexport const PaymentsStoreModel = types\n .model('PaymentsStore')\n .props({\n paymentMethod: types.maybe(\n // @ts-ignore\n types.enumeration(Object.values(PaymentMethod)),\n ),\n allSubscriptionPlans: types.maybe(types.array(SubscriptionPlanModel)),\n wasPaymentClosed: types.maybe(types.boolean),\n isDiscount: types.maybe(types.boolean),\n isPurchaseEventsSend: types.optional(types.boolean, false),\n wasPaymentModalClosed: types.maybe(types.boolean),\n chosenPlanId: types.maybe(types.string),\n joinedPeople: types.optional(types.number, 144),\n })\n .actions((self) => ({\n setSubscriptionPlans: (plans: SubscriptionPlanSnapshot[]) => {\n if (!self.allSubscriptionPlans) {\n self.allSubscriptionPlans = cast(plans);\n } else {\n applySnapshot(self.allSubscriptionPlans, plans);\n }\n },\n }))\n .actions((self) => ({\n fetchSubscriptionPlans: flow(function* ({\n abortSignal,\n group,\n countryCode,\n paddle,\n }: {\n abortSignal?: AbortSignal;\n group?: string;\n countryCode?: string;\n paddle?: boolean;\n } = {}) {\n const plans = yield fetchSubscriptionPlans({\n abortSignal,\n group,\n countryCode,\n paddle,\n });\n self.setSubscriptionPlans(plans);\n }),\n }))\n .actions((self) => ({\n setWasPaymentModalClosed(wasClosed: boolean) {\n self.wasPaymentModalClosed = wasClosed;\n },\n setDiscount(discount: boolean) {\n self.isDiscount = discount;\n },\n setWasPaymentClosed: (wasClosed: boolean) => {\n self.wasPaymentClosed = wasClosed;\n },\n setPaymentMethod: (paymentMethod: PaymentMethod) => {\n self.paymentMethod = paymentMethod;\n },\n setPurchaseEventsSend(isSent: boolean) {\n self.isPurchaseEventsSend = isSent;\n },\n setChosenPlan(chosenPlanId: string | undefined) {\n self.chosenPlanId = chosenPlanId;\n },\n incrementJoinedPeople() {\n self.joinedPeople += 1;\n },\n }))\n .actions((self) => ({\n resetPayment: () => {\n self.wasPaymentClosed = undefined;\n self.isDiscount = undefined;\n self.isPurchaseEventsSend = false;\n self.paymentMethod = undefined;\n self.wasPaymentModalClosed = false;\n self.allSubscriptionPlans = undefined;\n self.chosenPlanId = undefined;\n self.joinedPeople = 144;\n },\n }))\n .views((self) => ({\n get subscriptionPlansDiscountPrice() {\n if (!self.allSubscriptionPlans) {\n return [];\n }\n\n const newPlans: Map = new Map();\n\n for (const plan of self.allSubscriptionPlans) {\n newPlans.set(plan.name, plan);\n\n if (plan.specialOffer) {\n const planFullPrice = self.allSubscriptionPlans.find(\n (item) => item.name === plan.name && !item.specialOffer,\n );\n\n const existingPlan = newPlans.get(plan.name)!;\n if (!existingPlan.specialOffer) {\n newPlans.delete(existingPlan.name);\n } else {\n newPlans.set(\n plan.name,\n SubscriptionPlanModel.create({\n ...plan,\n order: planFullPrice ? planFullPrice.order : plan.order,\n }),\n );\n }\n }\n }\n return [...newPlans.values()].sort((a, b) => a.order - b.order);\n },\n hasSpecialOfferPlan() {\n return self.allSubscriptionPlans?.some((plan) => plan.specialOffer);\n },\n }))\n .views((self) => ({\n get subscriptionPlans() {\n if (!self.isDiscount) {\n return self.allSubscriptionPlans?.filter((plan) => !plan.specialOffer);\n }\n return self.allSubscriptionPlans?.filter((plan) => plan.specialOffer);\n },\n getCurrentPlanWithDiscount(currentPlanName: string) {\n return self.allSubscriptionPlans!.find(\n (item) => item.name === currentPlanName && item.specialOffer,\n );\n },\n getDefaultDiscountPercent(currentPlanName: string) {\n return self.allSubscriptionPlans!.find(\n (item) => item.name === currentPlanName && !item.specialOffer,\n )?.discountPercentage;\n },\n }));\ntype PaymentsStoreType = Instance;\n\nexport interface PaymentsStore extends PaymentsStoreType {}\n","const CLOUDFRONT = '/';\n\ntype TpImagePath = 'images' | 'icons' | 'videos';\n\nconst getImageUrl = (path: TpImagePath = 'images') => `${CLOUDFRONT}${path}/`;\n\nexport const IMAGE_SOURCE = getImageUrl();\nexport const ICON_SOURCE = getImageUrl('icons');\nexport const VIDEO_SOURCE = getImageUrl('videos');\n","import { languageDetector } from '@features/intl';\nimport { DEFAULT_LOCALE } from '@features/intl/contants';\n\nconst LOCALES_DATA = [\n { locale: 'en', prefix: '' },\n { locale: 'es', prefix: '-esp' },\n { locale: 'fr', prefix: '-fr' },\n { locale: 'de', prefix: '-de' },\n { locale: 'pt', prefix: '-pt' },\n];\n\nexport const getLocaleImage = () => {\n const currentLocale = languageDetector.detect() || DEFAULT_LOCALE;\n const currentLocaleTwoSymbols = currentLocale.slice(0, 2);\n return (\n LOCALES_DATA.find((locale) => locale.locale === currentLocaleTwoSymbols)\n ?.prefix || ''\n );\n};\n","export enum MobileOperatingSystem {\n ANDROID,\n IOS,\n UNKNOWN,\n}\n\nlet mobileOperatingSystemMemoized: MobileOperatingSystem | undefined;\n\nexport function getMobileOperatingSystem() {\n if (mobileOperatingSystemMemoized != null) {\n return mobileOperatingSystemMemoized;\n }\n if (typeof navigator === 'undefined') {\n return MobileOperatingSystem.UNKNOWN;\n }\n\n const userAgent = navigator.userAgent;\n\n if (/android/i.test(userAgent)) {\n mobileOperatingSystemMemoized = MobileOperatingSystem.ANDROID;\n } else if (/iPod|iPhone|iPad/.test(userAgent)) {\n mobileOperatingSystemMemoized = MobileOperatingSystem.IOS;\n } else {\n mobileOperatingSystemMemoized = MobileOperatingSystem.UNKNOWN;\n }\n\n return mobileOperatingSystemMemoized;\n}\n\nexport enum IosDeviceType {\n IPOD,\n IPHONE,\n IPAD,\n UNKNOWN,\n}\n\nlet iosDeviceTypeMemoized: IosDeviceType | undefined;\n\nexport function getIosDeviceType() {\n if (iosDeviceTypeMemoized != null) {\n return iosDeviceTypeMemoized;\n }\n if (typeof navigator === 'undefined') {\n return IosDeviceType.UNKNOWN;\n }\n\n const userAgent = navigator.userAgent;\n\n if (/iPod/.test(userAgent)) {\n iosDeviceTypeMemoized = IosDeviceType.IPOD;\n } else if (/iPhone/.test(userAgent)) {\n iosDeviceTypeMemoized = IosDeviceType.IPHONE;\n } else if (/iPad/.test(userAgent)) {\n iosDeviceTypeMemoized = IosDeviceType.IPAD;\n } else {\n iosDeviceTypeMemoized = IosDeviceType.UNKNOWN;\n }\n\n return iosDeviceTypeMemoized;\n}\n\nexport function iphoneVersion() {\n const iphoneHeight = window.screen.height;\n const iphoneWidth = window.screen.width;\n\n if (iphoneWidth === 428 && iphoneHeight === 926) {\n //iPhone 14 Plus //iPhone 12 Pro Max\n return true;\n } else if (iphoneWidth === 430 && iphoneHeight === 932) {\n //iPhone 14 Pro Max\n return true;\n } else if (iphoneWidth === 393 && iphoneHeight === 852) {\n //iPhone 14 Pro\n return true;\n } else if (iphoneWidth === 390 && iphoneHeight === 844) {\n //iPhone 14 //iPhone 13 //iPhone 13 Pro //iPhone 12 //iPhone 12 Pro\n return true;\n } else if (iphoneWidth === 375 && iphoneHeight === 667) {\n //iPhone SE 3rd gen //iPhone 8 //iPhone SE 2nd gen\n return false;\n } else if (iphoneWidth === 375 && iphoneHeight === 812) {\n //iPhone 13 mini //iPhone 12 mini //iPhone 11 Pro //iPhone XS //iPhone X\n return true;\n } else if (iphoneWidth === 428 && iphoneHeight === 926) {\n //iPhone 13 Pro Max\n return true;\n } else if (iphoneWidth === 414 && iphoneHeight === 896) {\n //iPhone 11 Pro Max //iPhone 11 //iPhone XR //iPhone XS Max\n return true;\n }\n return false;\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\ntype TpTimerProps = {\n delay: number;\n startImmediately?: boolean;\n callback: (time: number) => void;\n};\n\ntype TpTimer = {\n timer: number;\n isPause: boolean;\n startTimer: (value?: number) => void;\n pauseTimer: () => void;\n resumeTimer: () => void;\n};\n\nexport const useTimer = (props: TpTimerProps): TpTimer => {\n const { delay, startImmediately = false, callback } = props;\n const [timer, setTimer] = useState(0);\n const initial = useRef(0);\n const timeoutRef = useRef>();\n const timeElapseRef = useRef(0);\n const callbackRef = useRef(callback);\n const [isPause, setIsPause] = useState(false);\n\n const startTimer = useCallback(\n (timer = initial.current) => {\n timeElapseRef.current = timer;\n let expected = Date.now() + delay;\n\n const tick = () => {\n const dt = Date.now() - expected;\n timeElapseRef.current += delay;\n setTimer(timeElapseRef.current);\n callbackRef.current(timeElapseRef.current);\n expected += delay;\n timeoutRef.current = setTimeout(tick, Math.max(0, delay - dt));\n };\n\n timeoutRef.current = setTimeout(tick, delay);\n },\n [delay],\n );\n\n const pauseTimer = useCallback(() => {\n setIsPause(true);\n // @ts-ignore\n clearTimeout(timeoutRef.current);\n }, []);\n\n const resumeTimer = useCallback(() => {\n startTimer(timeElapseRef.current);\n setIsPause(false);\n }, [startTimer]);\n\n useEffect(() => {\n if (startImmediately) startTimer();\n }, [startImmediately, startTimer]);\n\n useEffect(\n () => () => {\n // @ts-ignore\n clearTimeout(timeoutRef.current);\n },\n [],\n );\n\n return { timer, isPause, startTimer, pauseTimer, resumeTimer };\n};\n","import { useState } from 'react';\n\nimport { useTimer } from 'src/utils/hooks/use-timer';\n\nconst leadingZero = (numerous: number) =>\n numerous < 10 ? `0${numerous}` : `${numerous}`;\n\nconst getReturnValues = (countDown: number) => {\n const hours = leadingZero(\n Math.floor((countDown % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),\n );\n const minutes = leadingZero(\n Math.floor((countDown % (1000 * 60 * 60)) / (1000 * 60)),\n );\n const seconds = leadingZero(Math.floor((countDown % (1000 * 60)) / 1000));\n\n return [hours, minutes, seconds];\n};\n\ntype TpUseCountdown = {\n targetDate: number;\n onComplete: () => void;\n};\n\nexport const useCountdown = ({ targetDate, onComplete }: TpUseCountdown) => {\n const [countDown, setCountDown] = useState(targetDate - Date.now());\n\n useTimer({\n delay: 1000,\n startImmediately: true,\n callback: (time) => {\n const currentTime = countDown - time;\n if (currentTime <= 0) {\n onComplete();\n } else {\n setCountDown(currentTime);\n }\n },\n });\n\n return getReturnValues(countDown);\n};\n","import { Dispatch, Reducer, useReducer } from 'react';\nimport { useEffect } from 'react';\n\nexport const useReducerWithStorage = (\n initialState: TpState,\n reducer: Reducer,\n) => {\n const [modalState, dispatch] = useReducer(\n reducer,\n initialState,\n (): TpState => {\n const localData = localStorage.getItem('modalsState');\n return localData ? JSON.parse(localData) : initialState;\n },\n );\n\n useEffect(() => {\n localStorage.setItem('modalsState', JSON.stringify(modalState));\n }, [modalState]);\n\n return [modalState, dispatch] as [TpState, Dispatch];\n};\n","import { useFeature } from '@features/FeatureToggle';\n\nexport const useGetAppName = () => {\n const isVariantUsEnabled = useFeature('usFeature');\n\n return isVariantUsEnabled ? 'FaceYogaUS' : 'FaceYoga';\n};\n","export { useTimer } from './use-timer';\nexport { useCountdown } from './use-countdown';\nexport { useReducerWithStorage } from './use-reducer-with-storage';\nexport { useGetAppName } from './useGetAppName';\n","import { DependencyList, useCallback, useEffect, useRef } from 'react';\n\nexport const useAbortableEffect = (\n effect: (abortSignal: AbortSignal) => void | (() => void),\n deps?: DependencyList,\n): void => {\n // biome-ignore lint/correctness/useExhaustiveDependencies: effect depends on deps\n useEffect(() => {\n const abortController = new AbortController();\n const cleanup = effect(abortController.signal);\n return () => {\n abortController.abort();\n cleanup?.();\n };\n }, deps);\n};\n\nexport const useAbortableCallback = (\n callback: (abortSignal: AbortSignal, ...args: A) => R,\n deps: DependencyList,\n): ((...args: A) => R) => {\n const abortController = useRef();\n const abort = () => {\n abortController.current?.abort();\n abortController.current = undefined;\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: abort depends on deps\n useEffect(() => abort, deps);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: callback depends\n return useCallback((...args) => {\n abort();\n abortController.current = new AbortController();\n return callback(abortController.current.signal, ...args);\n }, deps);\n};\n","import React, { useEffect, useMemo, useState } from 'react';\n\nexport const useIsInViewport = (ref: React.RefObject | null) => {\n const [isIntersecting, setIsIntersecting] = useState(false);\n const observer = useMemo(\n () =>\n new IntersectionObserver(\n ([entry]) => setIsIntersecting(entry.isIntersecting),\n { threshold: 1 },\n ),\n [],\n );\n\n useEffect(() => {\n if (ref?.current) {\n observer.observe(ref.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [ref, observer]);\n\n return isIntersecting;\n};\n","import { useEffect, useRef } from 'react';\n\nexport const usePrevious = (value: any) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n","export const getRandomEmail = (length: number = 8) => {\n const chars =\n 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n const charLength = chars.length;\n let result = '';\n while (length--) {\n result += chars.charAt(Math.floor(Math.random() * charLength));\n }\n return `${result}@zxc.zxc`;\n};\n","export const isDevelopment = process.env.NEXT_PUBLIC_ENV === 'development';\n","export const retry = async ({\n conditionCheckFunction,\n actionFunction,\n maxRetries = 5,\n retryDelay,\n}: {\n conditionCheckFunction: () => Promise;\n actionFunction: () => Promise;\n maxRetries?: number;\n retryDelay: number;\n}) => {\n let retries = 0;\n\n while (retries < maxRetries) {\n if (await conditionCheckFunction()) {\n await actionFunction();\n return;\n }\n retries++;\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n }\n\n console.log('Max retries exceeded', actionFunction);\n};\n","export const noop = () => {};\n","export const groupBy = (_array: any[], sortBy: string) =>\n _array.length > 0 &&\n _array.reduce((previous, current) => {\n const type = current[sortBy];\n previous[type] = previous[type] ?? [];\n previous[type].push(current);\n return previous;\n }, {});\n","export const getDataFromSessionStorage = ({\n store,\n key,\n}: {\n store: any;\n key: string;\n}): string | null => {\n const storedDataString =\n typeof window !== 'undefined' && sessionStorage.getItem('root');\n\n try {\n const storedData = storedDataString ? JSON.parse(storedDataString) : null;\n return storedData?.[store]?.[key] ?? null;\n } catch (error) {\n console.error('Error parsing JSON:', error);\n return null;\n }\n};\n","import { useEffect, useRef, useState } from 'react';\n\ntype Props = {\n started: boolean;\n progressDurations: number[];\n steps: number[];\n onComplete?: () => void;\n};\n\nexport const useProgressSteps = ({\n started,\n progressDurations,\n steps,\n onComplete,\n}: Props) => {\n const [currentStep, setCurrentStep] = useState(0);\n const [progress, setProgress] = useState(0);\n const [previousProgress, setPreviousProgress] = useState(0);\n const [previousStep, setPreviousStep] = useState(0); // Добавляем предыдущий шаг\n const timeElapsed = useRef(0);\n\n useEffect(() => {\n if (started && currentStep < steps.length) {\n const startTime = Date.now();\n let running = true;\n const handleAnimationFrame = () => {\n if (!running) {\n return;\n }\n const stepDuration = progressDurations[currentStep];\n const t = Math.min(\n (timeElapsed.current + Date.now() - startTime) / stepDuration,\n 1,\n );\n const currentStepProgress = steps[currentStep] - previousStep; // Разница между текущим и предыдущим шагом\n setProgress(previousProgress + currentStepProgress * t);\n if (t === 1) {\n setCurrentStep((previousStep_) => previousStep_ + 1);\n timeElapsed.current = 0;\n setPreviousProgress(previousProgress + currentStepProgress); // Обновляем предыдущий прогресс\n setPreviousStep(steps[currentStep]); // Обновляем предыдущий шаг\n } else {\n requestAnimationFrame(handleAnimationFrame);\n }\n };\n requestAnimationFrame(handleAnimationFrame);\n return () => {\n running = false;\n timeElapsed.current += Date.now() - startTime;\n };\n } else if (currentStep >= steps.length) {\n onComplete?.();\n }\n return undefined;\n }, [\n started,\n currentStep,\n progressDurations,\n steps,\n onComplete,\n previousProgress,\n previousStep,\n ]);\n\n return { progress, currentStep };\n};\n","export { getRandomEmail } from './get-random-email';\nexport { isDevelopment } from './environment-checking';\nexport { retry } from './retry';\nexport { noop } from './noop';\nexport { groupBy } from './groupBy';\nexport { getDataFromSessionStorage } from './get-data-from-session-storage';\nexport { useProgressSteps } from './hooks/useProgressSteps';\n","(function(){var e={675:function(e,r){\"use strict\";r.byteLength=byteLength;r.toByteArray=toByteArray;r.fromByteArray=fromByteArray;var t=[];var f=[];var n=typeof Uint8Array!==\"undefined\"?Uint8Array:Array;var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(var o=0,u=i.length;o0){throw new Error(\"Invalid string. Length must be a multiple of 4\")}var t=e.indexOf(\"=\");if(t===-1)t=r;var f=t===r?0:4-t%4;return[t,f]}function byteLength(e){var r=getLens(e);var t=r[0];var f=r[1];return(t+f)*3/4-f}function _byteLength(e,r,t){return(r+t)*3/4-t}function toByteArray(e){var r;var t=getLens(e);var i=t[0];var o=t[1];var u=new n(_byteLength(e,i,o));var a=0;var s=o>0?i-4:i;var h;for(h=0;h>16&255;u[a++]=r>>8&255;u[a++]=r&255}if(o===2){r=f[e.charCodeAt(h)]<<2|f[e.charCodeAt(h+1)]>>4;u[a++]=r&255}if(o===1){r=f[e.charCodeAt(h)]<<10|f[e.charCodeAt(h+1)]<<4|f[e.charCodeAt(h+2)]>>2;u[a++]=r>>8&255;u[a++]=r&255}return u}function tripletToBase64(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[e&63]}function encodeChunk(e,r,t){var f;var n=[];for(var i=r;ia?a:u+o))}if(n===1){r=e[f-1];i.push(t[r>>2]+t[r<<4&63]+\"==\")}else if(n===2){r=(e[f-2]<<8)+e[f-1];i.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+\"=\")}return i.join(\"\")}},72:function(e,r,t){\"use strict\";\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */var f=t(675);var n=t(783);var i=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;r.Buffer=Buffer;r.SlowBuffer=SlowBuffer;r.INSPECT_MAX_BYTES=50;var o=2147483647;r.kMaxLength=o;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!==\"undefined\"&&typeof console.error===\"function\"){console.error(\"This browser lacks typed array (Uint8Array) support which is required by \"+\"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\")}function typedArraySupport(){try{var e=new Uint8Array(1);var r={foo:function(){return 42}};Object.setPrototypeOf(r,Uint8Array.prototype);Object.setPrototypeOf(e,r);return e.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(e){if(e>o){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}var r=new Uint8Array(e);Object.setPrototypeOf(r,Buffer.prototype);return r}function Buffer(e,r,t){if(typeof e===\"number\"){if(typeof r===\"string\"){throw new TypeError('The \"string\" argument must be of type string. Received type number')}return allocUnsafe(e)}return from(e,r,t)}Buffer.poolSize=8192;function from(e,r,t){if(typeof e===\"string\"){return fromString(e,r)}if(ArrayBuffer.isView(e)){return fromArrayLike(e)}if(e==null){throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}if(isInstance(e,ArrayBuffer)||e&&isInstance(e.buffer,ArrayBuffer)){return fromArrayBuffer(e,r,t)}if(typeof SharedArrayBuffer!==\"undefined\"&&(isInstance(e,SharedArrayBuffer)||e&&isInstance(e.buffer,SharedArrayBuffer))){return fromArrayBuffer(e,r,t)}if(typeof e===\"number\"){throw new TypeError('The \"value\" argument must not be of type number. Received type number')}var f=e.valueOf&&e.valueOf();if(f!=null&&f!==e){return Buffer.from(f,r,t)}var n=fromObject(e);if(n)return n;if(typeof Symbol!==\"undefined\"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]===\"function\"){return Buffer.from(e[Symbol.toPrimitive](\"string\"),r,t)}throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}Buffer.from=function(e,r,t){return from(e,r,t)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(e){if(typeof e!==\"number\"){throw new TypeError('\"size\" argument must be of type number')}else if(e<0){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}}function alloc(e,r,t){assertSize(e);if(e<=0){return createBuffer(e)}if(r!==undefined){return typeof t===\"string\"?createBuffer(e).fill(r,t):createBuffer(e).fill(r)}return createBuffer(e)}Buffer.alloc=function(e,r,t){return alloc(e,r,t)};function allocUnsafe(e){assertSize(e);return createBuffer(e<0?0:checked(e)|0)}Buffer.allocUnsafe=function(e){return allocUnsafe(e)};Buffer.allocUnsafeSlow=function(e){return allocUnsafe(e)};function fromString(e,r){if(typeof r!==\"string\"||r===\"\"){r=\"utf8\"}if(!Buffer.isEncoding(r)){throw new TypeError(\"Unknown encoding: \"+r)}var t=byteLength(e,r)|0;var f=createBuffer(t);var n=f.write(e,r);if(n!==t){f=f.slice(0,n)}return f}function fromArrayLike(e){var r=e.length<0?0:checked(e.length)|0;var t=createBuffer(r);for(var f=0;f=o){throw new RangeError(\"Attempt to allocate Buffer larger than maximum \"+\"size: 0x\"+o.toString(16)+\" bytes\")}return e|0}function SlowBuffer(e){if(+e!=e){e=0}return Buffer.alloc(+e)}Buffer.isBuffer=function isBuffer(e){return e!=null&&e._isBuffer===true&&e!==Buffer.prototype};Buffer.compare=function compare(e,r){if(isInstance(e,Uint8Array))e=Buffer.from(e,e.offset,e.byteLength);if(isInstance(r,Uint8Array))r=Buffer.from(r,r.offset,r.byteLength);if(!Buffer.isBuffer(e)||!Buffer.isBuffer(r)){throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array')}if(e===r)return 0;var t=e.length;var f=r.length;for(var n=0,i=Math.min(t,f);n2&&arguments[2]===true;if(!f&&t===0)return 0;var n=false;for(;;){switch(r){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return utf8ToBytes(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return t*2;case\"hex\":return t>>>1;case\"base64\":return base64ToBytes(e).length;default:if(n){return f?-1:utf8ToBytes(e).length}r=(\"\"+r).toLowerCase();n=true}}}Buffer.byteLength=byteLength;function slowToString(e,r,t){var f=false;if(r===undefined||r<0){r=0}if(r>this.length){return\"\"}if(t===undefined||t>this.length){t=this.length}if(t<=0){return\"\"}t>>>=0;r>>>=0;if(t<=r){return\"\"}if(!e)e=\"utf8\";while(true){switch(e){case\"hex\":return hexSlice(this,r,t);case\"utf8\":case\"utf-8\":return utf8Slice(this,r,t);case\"ascii\":return asciiSlice(this,r,t);case\"latin1\":case\"binary\":return latin1Slice(this,r,t);case\"base64\":return base64Slice(this,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,r,t);default:if(f)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase();f=true}}}Buffer.prototype._isBuffer=true;function swap(e,r,t){var f=e[r];e[r]=e[t];e[t]=f}Buffer.prototype.swap16=function swap16(){var e=this.length;if(e%2!==0){throw new RangeError(\"Buffer size must be a multiple of 16-bits\")}for(var r=0;rt)e+=\" ... \";return\"\"};if(i){Buffer.prototype[i]=Buffer.prototype.inspect}Buffer.prototype.compare=function compare(e,r,t,f,n){if(isInstance(e,Uint8Array)){e=Buffer.from(e,e.offset,e.byteLength)}if(!Buffer.isBuffer(e)){throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. '+\"Received type \"+typeof e)}if(r===undefined){r=0}if(t===undefined){t=e?e.length:0}if(f===undefined){f=0}if(n===undefined){n=this.length}if(r<0||t>e.length||f<0||n>this.length){throw new RangeError(\"out of range index\")}if(f>=n&&r>=t){return 0}if(f>=n){return-1}if(r>=t){return 1}r>>>=0;t>>>=0;f>>>=0;n>>>=0;if(this===e)return 0;var i=n-f;var o=t-r;var u=Math.min(i,o);var a=this.slice(f,n);var s=e.slice(r,t);for(var h=0;h2147483647){t=2147483647}else if(t<-2147483648){t=-2147483648}t=+t;if(numberIsNaN(t)){t=n?0:e.length-1}if(t<0)t=e.length+t;if(t>=e.length){if(n)return-1;else t=e.length-1}else if(t<0){if(n)t=0;else return-1}if(typeof r===\"string\"){r=Buffer.from(r,f)}if(Buffer.isBuffer(r)){if(r.length===0){return-1}return arrayIndexOf(e,r,t,f,n)}else if(typeof r===\"number\"){r=r&255;if(typeof Uint8Array.prototype.indexOf===\"function\"){if(n){return Uint8Array.prototype.indexOf.call(e,r,t)}else{return Uint8Array.prototype.lastIndexOf.call(e,r,t)}}return arrayIndexOf(e,[r],t,f,n)}throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(e,r,t,f,n){var i=1;var o=e.length;var u=r.length;if(f!==undefined){f=String(f).toLowerCase();if(f===\"ucs2\"||f===\"ucs-2\"||f===\"utf16le\"||f===\"utf-16le\"){if(e.length<2||r.length<2){return-1}i=2;o/=2;u/=2;t/=2}}function read(e,r){if(i===1){return e[r]}else{return e.readUInt16BE(r*i)}}var a;if(n){var s=-1;for(a=t;ao)t=o-u;for(a=t;a>=0;a--){var h=true;for(var c=0;cn){f=n}}var i=r.length;if(f>i/2){f=i/2}for(var o=0;o>>0;if(isFinite(t)){t=t>>>0;if(f===undefined)f=\"utf8\"}else{f=t;t=undefined}}else{throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\")}var n=this.length-r;if(t===undefined||t>n)t=n;if(e.length>0&&(t<0||r<0)||r>this.length){throw new RangeError(\"Attempt to write outside buffer bounds\")}if(!f)f=\"utf8\";var i=false;for(;;){switch(f){case\"hex\":return hexWrite(this,e,r,t);case\"utf8\":case\"utf-8\":return utf8Write(this,e,r,t);case\"ascii\":return asciiWrite(this,e,r,t);case\"latin1\":case\"binary\":return latin1Write(this,e,r,t);case\"base64\":return base64Write(this,e,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,e,r,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+f);f=(\"\"+f).toLowerCase();i=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(e,r,t){if(r===0&&t===e.length){return f.fromByteArray(e)}else{return f.fromByteArray(e.slice(r,t))}}function utf8Slice(e,r,t){t=Math.min(e.length,t);var f=[];var n=r;while(n239?4:i>223?3:i>191?2:1;if(n+u<=t){var a,s,h,c;switch(u){case 1:if(i<128){o=i}break;case 2:a=e[n+1];if((a&192)===128){c=(i&31)<<6|a&63;if(c>127){o=c}}break;case 3:a=e[n+1];s=e[n+2];if((a&192)===128&&(s&192)===128){c=(i&15)<<12|(a&63)<<6|s&63;if(c>2047&&(c<55296||c>57343)){o=c}}break;case 4:a=e[n+1];s=e[n+2];h=e[n+3];if((a&192)===128&&(s&192)===128&&(h&192)===128){c=(i&15)<<18|(a&63)<<12|(s&63)<<6|h&63;if(c>65535&&c<1114112){o=c}}}}if(o===null){o=65533;u=1}else if(o>65535){o-=65536;f.push(o>>>10&1023|55296);o=56320|o&1023}f.push(o);n+=u}return decodeCodePointsArray(f)}var u=4096;function decodeCodePointsArray(e){var r=e.length;if(r<=u){return String.fromCharCode.apply(String,e)}var t=\"\";var f=0;while(ff)t=f;var n=\"\";for(var i=r;it){e=t}if(r<0){r+=t;if(r<0)r=0}else if(r>t){r=t}if(rt)throw new RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUIntLE=function readUIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i>>0;r=r>>>0;if(!t){checkOffset(e,r,this.length)}var f=this[e+--r];var n=1;while(r>0&&(n*=256)){f+=this[e+--r]*n}return f};Buffer.prototype.readUInt8=function readUInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);return this[e]};Buffer.prototype.readUInt16LE=function readUInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]|this[e+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]<<8|this[e+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Buffer.prototype.readIntLE=function readIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i=n)f-=Math.pow(2,8*r);return f};Buffer.prototype.readIntBE=function readIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=r;var n=1;var i=this[e+--f];while(f>0&&(n*=256)){i+=this[e+--f]*n}n*=128;if(i>=n)i-=Math.pow(2,8*r);return i};Buffer.prototype.readInt8=function readInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt16BE=function readInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e+1]|this[e]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt32LE=function readInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Buffer.prototype.readFloatLE=function readFloatLE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,false,52,8)};function checkInt(e,r,t,f,n,i){if(!Buffer.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>n||re.length)throw new RangeError(\"Index out of range\")}Buffer.prototype.writeUIntLE=function writeUIntLE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=1;var o=0;this[r]=e&255;while(++o>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=t-1;var o=1;this[r+i]=e&255;while(--i>=0&&(o*=256)){this[r+i]=e/o&255}return r+t};Buffer.prototype.writeUInt8=function writeUInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,255,0);this[r]=e&255;return r+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r+3]=e>>>24;this[r+2]=e>>>16;this[r+1]=e>>>8;this[r]=e&255;return r+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};Buffer.prototype.writeIntLE=function writeIntLE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=0;var o=1;var u=0;this[r]=e&255;while(++i>0)-u&255}return r+t};Buffer.prototype.writeIntBE=function writeIntBE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=t-1;var o=1;var u=0;this[r+i]=e&255;while(--i>=0&&(o*=256)){if(e<0&&u===0&&this[r+i+1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeInt8=function writeInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,127,-128);if(e<0)e=255+e+1;this[r]=e&255;return r+1};Buffer.prototype.writeInt16LE=function writeInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeInt16BE=function writeInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeInt32LE=function writeInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);this[r]=e&255;this[r+1]=e>>>8;this[r+2]=e>>>16;this[r+3]=e>>>24;return r+4};Buffer.prototype.writeInt32BE=function writeInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};function checkIEEE754(e,r,t,f,n,i){if(t+f>e.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function writeFloat(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,4,34028234663852886e22,-34028234663852886e22)}n.write(e,r,t,f,23,4);return t+4}Buffer.prototype.writeFloatLE=function writeFloatLE(e,r,t){return writeFloat(this,e,r,true,t)};Buffer.prototype.writeFloatBE=function writeFloatBE(e,r,t){return writeFloat(this,e,r,false,t)};function writeDouble(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,8,17976931348623157e292,-17976931348623157e292)}n.write(e,r,t,f,52,8);return t+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,r,t){return writeDouble(this,e,r,true,t)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,r,t){return writeDouble(this,e,r,false,t)};Buffer.prototype.copy=function copy(e,r,t,f){if(!Buffer.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(!t)t=0;if(!f&&f!==0)f=this.length;if(r>=e.length)r=e.length;if(!r)r=0;if(f>0&&f=this.length)throw new RangeError(\"Index out of range\");if(f<0)throw new RangeError(\"sourceEnd out of bounds\");if(f>this.length)f=this.length;if(e.length-r=0;--i){e[i+r]=this[i+t]}}else{Uint8Array.prototype.set.call(e,this.subarray(t,f),r)}return n};Buffer.prototype.fill=function fill(e,r,t,f){if(typeof e===\"string\"){if(typeof r===\"string\"){f=r;r=0;t=this.length}else if(typeof t===\"string\"){f=t;t=this.length}if(f!==undefined&&typeof f!==\"string\"){throw new TypeError(\"encoding must be a string\")}if(typeof f===\"string\"&&!Buffer.isEncoding(f)){throw new TypeError(\"Unknown encoding: \"+f)}if(e.length===1){var n=e.charCodeAt(0);if(f===\"utf8\"&&n<128||f===\"latin1\"){e=n}}}else if(typeof e===\"number\"){e=e&255}else if(typeof e===\"boolean\"){e=Number(e)}if(r<0||this.length>>0;t=t===undefined?this.length:t>>>0;if(!e)e=0;var i;if(typeof e===\"number\"){for(i=r;i55295&&t<57344){if(!n){if(t>56319){if((r-=3)>-1)i.push(239,191,189);continue}else if(o+1===f){if((r-=3)>-1)i.push(239,191,189);continue}n=t;continue}if(t<56320){if((r-=3)>-1)i.push(239,191,189);n=t;continue}t=(n-55296<<10|t-56320)+65536}else if(n){if((r-=3)>-1)i.push(239,191,189)}n=null;if(t<128){if((r-=1)<0)break;i.push(t)}else if(t<2048){if((r-=2)<0)break;i.push(t>>6|192,t&63|128)}else if(t<65536){if((r-=3)<0)break;i.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((r-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else{throw new Error(\"Invalid code point\")}}return i}function asciiToBytes(e){var r=[];for(var t=0;t>8;n=t%256;i.push(n);i.push(f)}return i}function base64ToBytes(e){return f.toByteArray(base64clean(e))}function blitBuffer(e,r,t,f){for(var n=0;n=r.length||n>=e.length)break;r[n+t]=e[n]}return n}function isInstance(e,r){return e instanceof r||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===r.name}function numberIsNaN(e){return e!==e}var s=function(){var e=\"0123456789abcdef\";var r=new Array(256);for(var t=0;t<16;++t){var f=t*16;for(var n=0;n<16;++n){r[f+n]=e[t]+e[n]}}return r}()},783:function(e,r){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nr.read=function(e,r,t,f,n){var i,o;var u=n*8-f-1;var a=(1<>1;var h=-7;var c=t?n-1:0;var l=t?-1:1;var p=e[r+c];c+=l;i=p&(1<<-h)-1;p>>=-h;h+=u;for(;h>0;i=i*256+e[r+c],c+=l,h-=8){}o=i&(1<<-h)-1;i>>=-h;h+=f;for(;h>0;o=o*256+e[r+c],c+=l,h-=8){}if(i===0){i=1-s}else if(i===a){return o?NaN:(p?-1:1)*Infinity}else{o=o+Math.pow(2,f);i=i-s}return(p?-1:1)*o*Math.pow(2,i-f)};r.write=function(e,r,t,f,n,i){var o,u,a;var s=i*8-n-1;var h=(1<>1;var l=n===23?Math.pow(2,-24)-Math.pow(2,-77):0;var p=f?0:i-1;var y=f?1:-1;var g=r<0||r===0&&1/r<0?1:0;r=Math.abs(r);if(isNaN(r)||r===Infinity){u=isNaN(r)?1:0;o=h}else{o=Math.floor(Math.log(r)/Math.LN2);if(r*(a=Math.pow(2,-o))<1){o--;a*=2}if(o+c>=1){r+=l/a}else{r+=l*Math.pow(2,1-c)}if(r*a>=2){o++;a/=2}if(o+c>=h){u=0;o=h}else if(o+c>=1){u=(r*a-1)*Math.pow(2,n);o=o+c}else{u=r*Math.pow(2,c-1)*Math.pow(2,n);o=0}}for(;n>=8;e[t+p]=u&255,p+=y,u/=256,n-=8){}o=o<0;e[t+p]=o&255,p+=y,o/=256,s-=8){}e[t+p-y]|=g*128}}};var r={};function __nccwpck_require__(t){var f=r[t];if(f!==undefined){return f.exports}var n=r[t]={exports:{}};var i=true;try{e[t](n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(72);module.exports=t})();",null,"// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Inter', 'Inter Fallback'\"},\"className\":\"__className_bfd8e0\",\"variable\":\"__variable_bfd8e0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Merriweather', 'Merriweather Fallback'\"},\"className\":\"__className_577ed0\",\"variable\":\"__variable_577ed0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Open Sans', 'Open Sans Fallback'\"},\"className\":\"__className_972521\",\"variable\":\"__variable_972521\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Image_container__6nkJb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"circle-button_container__9_FVP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"circular-video-player_wrapper__UT0tY\",\"video\":\"circular-video-player_video__TssSG\",\"progressRing\":\"circular-video-player_progressRing__AZvIt\",\"progressBackground\":\"circular-video-player_progressBackground___WsjW\",\"progressBar\":\"circular-video-player_progressBar__bT0Zf\",\"playIcon\":\"circular-video-player_playIcon__hyMfw\",\"soundIcon\":\"circular-video-player_soundIcon__EBelg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"contact-us-link_container__q47qp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"loading-indicator_container__Uj1kd\",\"dot\":\"loading-indicator_dot__TBihH\",\"flashing\":\"loading-indicator_flashing__nUNDy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bottomButton\":\"alert-with-close-button_bottomButton__uXwSg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"imageContainer\":\"alert_imageContainer__g57dV\",\"title\":\"alert_title__9545Q\",\"description\":\"alert_description__qdCmM\",\"container\":\"alert_container__UQ2DM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bottomContainer\":\"form-modal_bottomContainer__QClZy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"modal_title__m_LN1\",\"description\":\"modal_description__58_Xv\",\"footerContainer\":\"modal_footerContainer__uZUO8\",\"mobileHeaderTitle\":\"modal_mobileHeaderTitle__zEOg4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"money-back_container__S9qPu\",\"guarantee\":\"money-back_guarantee__yMvft\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"review\":\"review-card_review__Rs_O_\",\"headerReview\":\"review-card_headerReview__ZA7YI\",\"starsList\":\"review-card_starsList__0Gi0r\",\"reviewCardAvatarContainer\":\"review-card_reviewCardAvatarContainer__ReY_t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slider\":\"simple-slider_slider__92VBv\",\"photosList\":\"simple-slider_photosList__IF_6a\",\"photoItem\":\"simple-slider_photoItem__x5Q9N\",\"photo\":\"simple-slider_photo__vwPXd\",\"pagination\":\"simple-slider_pagination__V6Q0C\",\"paginationButton\":\"simple-slider_paginationButton__t3Kz_\",\"paginationButtonActive\":\"simple-slider_paginationButtonActive__Lxm5A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"host\":\"debug-ui_host__qNM4g\",\"gradient\":\"debug-ui_gradient__3o2uT\",\"select\":\"debug-ui_select__1T76B\",\"expanded\":\"debug-ui_expanded__W5vYr\",\"row\":\"debug-ui_row__XygCQ\",\"eventsSection\":\"debug-ui_eventsSection__zblqy\",\"sectionTitle\":\"debug-ui_sectionTitle__Ce9jv\",\"item\":\"debug-ui_item__o9XC5\",\"featuresRow\":\"debug-ui_featuresRow__ITUSd\",\"eventItem\":\"debug-ui_eventItem__T0SY7\",\"eventName\":\"debug-ui_eventName__cp6Nn\",\"eventParams\":\"debug-ui_eventParams__FvovA\",\"eventDate\":\"debug-ui_eventDate__jvseh\",\"smallButton\":\"debug-ui_smallButton__bOwEf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"planDescription\":\"braintree-modal_planDescription__YiS0e\",\"submitButtonIcon\":\"braintree-modal_submitButtonIcon__7kc0x\",\"planPriceBlock\":\"braintree-modal_planPriceBlock__MzqWB\",\"planDiscountBlock\":\"braintree-modal_planDiscountBlock__jjE1v\",\"totalBlock\":\"braintree-modal_totalBlock__SYAgt\",\"currentPlanInfo\":\"braintree-modal_currentPlanInfo__elK8B\",\"currentPlanInfoLine\":\"braintree-modal_currentPlanInfoLine__lOUCi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"paddle-inline-checkout_container__7wglV\",\"open\":\"paddle-inline-checkout_open__dhNq2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"payment-button_container__fbLsV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"payment-modal_container__Fw89W\",\"planPriceBlock\":\"payment-modal_planPriceBlock__AZTYY\",\"planDiscountBlock\":\"payment-modal_planDiscountBlock__5xXSW\",\"totalBlock\":\"payment-modal_totalBlock__XgOX3\",\"currentPlanInfo\":\"payment-modal_currentPlanInfo__31Tpo\",\"currentPlanInfoLine\":\"payment-modal_currentPlanInfoLine__uybC8\",\"disclaimer\":\"payment-modal_disclaimer__dRPaG\",\"hideLoading\":\"payment-modal_hideLoading__EhxpO\",\"line\":\"payment-modal_line__1xco6\",\"headerCloseButton\":\"payment-modal_headerCloseButton__kMEy_\",\"paymentButtonsContainer\":\"payment-modal_paymentButtonsContainer__Cw6rn\",\"paymentButton\":\"payment-modal_paymentButton__0NeHN\",\"googlePayButton\":\"payment-modal_googlePayButton__xASd1\",\"paypalButton\":\"payment-modal_paypalButton__Usp7T\",\"debitCardButton\":\"payment-modal_debitCardButton__H_5oL\",\"logosContainer\":\"payment-modal_logosContainer__QgiWv\",\"paypalLogo\":\"payment-modal_paypalLogo__CD7rn\",\"visaLogo\":\"payment-modal_visaLogo__fwkff\",\"mastercardLogo\":\"payment-modal_mastercardLogo__eutow\",\"amexLogo\":\"payment-modal_amexLogo__wkKcH\",\"unionpayLogo\":\"payment-modal_unionpayLogo__Ydp26\",\"lockIcon\":\"payment-modal_lockIcon__D_c2P\",\"footer\":\"payment-modal_footer__Txtub\",\"loaderContainer\":\"payment-modal_loaderContainer__9kB12\",\"loader\":\"payment-modal_loader__2_QIm\",\"hidePayments\":\"payment-modal_hidePayments__NNEv0\",\"safariRedirectPrompt\":\"payment-modal_safariRedirectPrompt__jMlaM\",\"safariRedirectPromptGraphic\":\"payment-modal_safariRedirectPromptGraphic__9wK4h\",\"safariRedirectPromptDetails\":\"payment-modal_safariRedirectPromptDetails__CIKj1\",\"safariRedirectPromptBackHint\":\"payment-modal_safariRedirectPromptBackHint__oMBDD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"paypal-payment-button_container__SYl7x\",\"frame\":\"paypal-payment-button_frame__wZD_p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"disclaimer\":\"intro-offer-disclaimer_disclaimer__5Vg2l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"answers_container__YUZ_s\",\"subtext\":\"answers_subtext__uylDh\",\"image\":\"answers_image__JwrAZ\",\"listAnswers\":\"answers_listAnswers__gtiAc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"banner\":\"banner_banner___1vX5\",\"timer\":\"banner_timer__b9yJA\",\"linkButton\":\"banner_linkButton__W9NGn\",\"pulse-button\":\"banner_pulse-button__W8FIy\",\"timerEnd\":\"banner_timerEnd___dHBG\",\"discountSection\":\"banner_discountSection__cuS8p\",\"bannerLeft\":\"banner_bannerLeft__CHwKA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"community_wrapper__lQQZE\",\"imageMap\":\"community_imageMap__MEf1H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"compare_title__m7OCH\",\"description\":\"compare_description__RytDY\",\"slider\":\"compare_slider__k3rjf\",\"photosList\":\"compare_photosList__tPKql\",\"photoItem\":\"compare_photoItem__apm7S\",\"photo\":\"compare_photo__Cfp_8\",\"headerPhoto\":\"compare_headerPhoto__hcMnS\",\"pagination\":\"compare_pagination__kstdA\",\"paginationButton\":\"compare_paginationButton__lcYPI\",\"paginationButtonActive\":\"compare_paginationButtonActive__WadE7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"issues\":\"contact-block-email3_issues__cegZ9\",\"contact\":\"contact-block-email3_contact__qdoKy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"issues\":\"contact-block_issues__eQgoo\",\"buttonContact\":\"contact-block_buttonContact__Ve7FG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"emailFormGroup\":\"contact-form-modal_emailFormGroup__fNnXO\",\"messageFormControl\":\"contact-form-modal_messageFormControl__28cgw\",\"errorText\":\"contact-form-modal_errorText__Q7YRd\",\"modalContentClassName\":\"contact-form-modal_modalContentClassName__IY19H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleFaq\":\"faq_titleFaq__aERTh\",\"header\":\"faq_header__tUGxY\",\"accordion\":\"faq_accordion__1y281\",\"accordionTitle\":\"faq_accordionTitle__44cg3\",\"question\":\"faq_question__S7WGh\",\"icon\":\"faq_icon__1SXsS\",\"classNameOpened\":\"faq_classNameOpened__099Ll\",\"iconTransform\":\"faq_iconTransform__ZLDi_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"feelYoungerSection\":\"feel-younger_feelYoungerSection__9cdia\",\"videoReviewsContainer\":\"feel-younger_videoReviewsContainer__wStVe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"graph_container__Z26nv\",\"imageWrapper\":\"graph_imageWrapper__nSND9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"result\":\"guarantees_result__PcVu3\",\"image\":\"guarantees_image__tgW31\",\"title\":\"guarantees_title__y8xJf\",\"description\":\"guarantees_description__NDSmQ\",\"rightOffset\":\"guarantees_rightOffset__Gz0VP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"press-section_container__PpIDb\",\"section\":\"press-section_section__AbaUS\",\"text\":\"press-section_text__lqXIn\",\"title\":\"press-section_title__1aEZ4\",\"subsection\":\"press-section_subsection__NRX5q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"reviews_title__7LXKV\",\"list\":\"reviews_list__1SevG\",\"reviewItem\":\"reviews_reviewItem__gBlPZ\",\"titleReview\":\"reviews_titleReview__JRxMb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"planCard\":\"skeleton_planCard__DilBx\",\"priceUnitFull\":\"skeleton_priceUnitFull__FXTXC\",\"currentPrice\":\"skeleton_currentPrice__Pk_7C\",\"skeletonWrapper\":\"skeleton_skeletonWrapper__eWyfQ\",\"titleSkeleton\":\"skeleton_titleSkeleton__Tfa9r\",\"descriptionSkeleton\":\"skeleton_descriptionSkeleton__reU9h\",\"skeletonCard\":\"skeleton_skeletonCard__FdAw5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"start-block-transaktion-declined_container__HSaxp\",\"email2Container\":\"start-block-transaktion-declined_email2Container__qpRPH\",\"imageMask\":\"start-block-transaktion-declined_imageMask__Gj9lF\",\"priceBanner\":\"start-block-transaktion-declined_priceBanner__IBuSb\",\"bannerDescription\":\"start-block-transaktion-declined_bannerDescription__lwZ66\",\"bannerLabel\":\"start-block-transaktion-declined_bannerLabel__8CJJm\",\"timerContainer\":\"start-block-transaktion-declined_timerContainer__mmveX\",\"timerDescription\":\"start-block-transaktion-declined_timerDescription__TxCA4\",\"timer\":\"start-block-transaktion-declined_timer__JpwVl\",\"timerTime\":\"start-block-transaktion-declined_timerTime__F3fYu\",\"timerDivider\":\"start-block-transaktion-declined_timerDivider__OtB1j\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleBlock\":\"start-block_titleBlock__AkzPc\",\"description\":\"start-block_description__jQIe2\",\"imageWrapper\":\"start-block_imageWrapper__IK9eU\",\"video\":\"start-block_video__FSfF8\",\"startBlockSection\":\"start-block_startBlockSection__zi3ZD\",\"beforeAfterWrapper\":\"start-block_beforeAfterWrapper___86sq\",\"videoBeforeAfter\":\"start-block_videoBeforeAfter__rwnxH\",\"beforeAfterLabel\":\"start-block_beforeAfterLabel__991Yg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"paywall-with-scroll_container__16_bG\",\"headerSection\":\"paywall-with-scroll_headerSection__Mgibr\",\"footerSection\":\"paywall-with-scroll_footerSection__y_4nj\",\"initFooter\":\"paywall-with-scroll_initFooter__ubWkw\",\"hideHeader\":\"paywall-with-scroll_hideHeader__MNRlf\",\"hideFooter\":\"paywall-with-scroll_hideFooter__OQreP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"policyWrapper\":\"long-paywall_policyWrapper__rEGhW\",\"policy\":\"long-paywall_policy___ocNu\",\"paymentSelectorSection\":\"long-paywall_paymentSelectorSection__IJIvC\",\"paymentSelectorSection_title\":\"long-paywall_paymentSelectorSection_title__Ympd_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paymentSection\":\"PaymentPlansMaster_paymentSection__Q7m3u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"usersRow\":\"Users_usersRow__xVx58\",\"usersText\":\"Users_usersText__OAHTG\",\"usersTextSecondary\":\"Users_usersTextSecondary__6Wxiz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleSection\":\"payment-plans-stripe_titleSection__fh381\",\"extraDiscount\":\"payment-plans-stripe_extraDiscount__JVwMH\",\"declineDiscount\":\"payment-plans-stripe_declineDiscount__Wqgup\",\"buttonWrapper\":\"payment-plans-stripe_buttonWrapper__9PxZi\",\"paymentButton\":\"payment-plans-stripe_paymentButton__uxdC8\",\"pulse-button\":\"payment-plans-stripe_pulse-button__8HRCu\",\"buttonEmail3\":\"payment-plans-stripe_buttonEmail3__Ar4ep\",\"oldGetMyPlanButton\":\"payment-plans-stripe_oldGetMyPlanButton__9Xu58\",\"policyWrapper\":\"payment-plans-stripe_policyWrapper__3elaM\",\"policy\":\"payment-plans-stripe_policy__Wd4PW\",\"reviews\":\"payment-plans-stripe_reviews__JWib9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"info\":\"guarantee-block_info__n5u7p\",\"guaranteeTitle\":\"guarantee-block_guaranteeTitle__4EnjN\",\"transactionsEncrypted\":\"guarantee-block_transactionsEncrypted__r1JNv\",\"logos\":\"guarantee-block_logos__Cj8NI\",\"refundRate\":\"guarantee-block_refundRate__4zrt_\",\"refundDescription\":\"guarantee-block_refundDescription__BzAMp\",\"moneyHand\":\"guarantee-block_moneyHand__y9DVX\",\"lockIcon\":\"guarantee-block_lockIcon__fgQPO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"subscriptionAgreement\":\"privacy-agreement_subscriptionAgreement___ZoXF\",\"dangerAgreement\":\"privacy-agreement_dangerAgreement__BENx9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trialsDisclaimer\":\"trials-disclaimer_trialsDisclaimer__GEtVV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleSection\":\"payment-plans_titleSection__NceEq\",\"backToPlansButton\":\"payment-plans_backToPlansButton__6he6o\",\"listPlans\":\"payment-plans_listPlans__5_gZo\",\"buttonWrapper\":\"payment-plans_buttonWrapper__Hgsij\",\"paymentButton\":\"payment-plans_paymentButton__8ch0C\",\"pulse-button\":\"payment-plans_pulse-button__tjigT\",\"trialDisclaimerHasTrial\":\"payment-plans_trialDisclaimerHasTrial__wvD8n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"perPeriod\":\"billing-period_perPeriod__QH870\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"currentPrice\":\"current-price_currentPrice__LU_BI\",\"currentPriceIsLongCurrencies\":\"current-price_currentPriceIsLongCurrencies__yd_zV\",\"perTerm\":\"current-price_perTerm__W0ZOk\",\"perPeriod\":\"current-price_perPeriod__25kRR\",\"currentPriceChecked\":\"current-price_currentPriceChecked__vlSM3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"discountPercentage\":\"discount-percentage_discountPercentage__z99aY\",\"discountPercentageDefault\":\"discount-percentage_discountPercentageDefault__ZI_5L\",\"discountPercentageActive\":\"discount-percentage_discountPercentageActive__G8frN\",\"outline\":\"discount-percentage_outline__ntxVJ\",\"outlineDisabled\":\"discount-percentage_outlineDisabled__M9BEU\",\"medium\":\"discount-percentage_medium__iQiH1\",\"small\":\"discount-percentage_small__B0JqF\",\"withText\":\"discount-percentage_withText__Gw0hT\",\"withTextDisabled\":\"discount-percentage_withTextDisabled__NuA0q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lineThrough\":\"full-price_lineThrough__VWIHQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"master_wrapper__ErtUg\",\"wrapperDisabled\":\"master_wrapperDisabled__fwlOw\",\"wrapperInvisible\":\"master_wrapperInvisible__Y7rKL\",\"planCard\":\"master_planCard__MEsnx\",\"input\":\"master_input__Y3Cq9\",\"checked\":\"master_checked__sqYEd\",\"planCardDisabled\":\"master_planCardDisabled__mB34a\",\"titleWrapper\":\"master_titleWrapper__32Rrs\",\"titleWrapperChecked\":\"master_titleWrapperChecked__8D7sL\",\"titleCard\":\"master_titleCard__v2JAO\",\"leftBlock\":\"master_leftBlock__IuIJT\",\"presentContainer\":\"master_presentContainer___1Cai\",\"rightBlock\":\"master_rightBlock__y685q\",\"rightBlockTop\":\"master_rightBlockTop__breyK\",\"content\":\"master_content__Ccvt3\",\"price\":\"master_price__Hn398\",\"discountCurrency\":\"master_discountCurrency__u8rSH\",\"wrapperGreen\":\"master_wrapperGreen__JrdNl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"priceUnitFull\":\"price-unit-full_priceUnitFull__BqqBN\",\"priceUnitFullChecked\":\"price-unit-full_priceUnitFullChecked__pnLzw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"priceUnitFull\":\"subscription-plan-card_priceUnitFull__RYw10\",\"text\":\"subscription-plan-card_text__tUv1_\",\"textChecked\":\"subscription-plan-card_textChecked__nr5al\",\"discountChecked\":\"subscription-plan-card_discountChecked__uq9XA\",\"discountSpecialOfferChecked\":\"subscription-plan-card_discountSpecialOfferChecked__CJz7x\",\"wrapper\":\"subscription-plan-card_wrapper__ynWiv\",\"defaultDiscount\":\"subscription-plan-card_defaultDiscount__MUddm\",\"alignEnd\":\"subscription-plan-card_alignEnd__mAwYP\",\"rightBlockContainer\":\"subscription-plan-card_rightBlockContainer__cdJWx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"host\":\"AutoRenew_host__jFRxV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"learnMoreList\":\"LearnMoreList_learnMoreList__yKAH6\",\"learnMoreListCompact\":\"LearnMoreList_learnMoreListCompact__JLGqJ\",\"learnMoreItem\":\"LearnMoreList_learnMoreItem__oh7Qw\",\"learnMoreItemCompact\":\"LearnMoreList_learnMoreItemCompact__vA0kN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"checkout-form_form__ViN8w\",\"paymentButtonsContainer\":\"checkout-form_paymentButtonsContainer__TBrSA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cardBlockContainer\":\"card-payment-block_cardBlockContainer__ql5I1\",\"minimal\":\"card-payment-block_minimal__rf6af\",\"cardInfo\":\"card-payment-block_cardInfo__Fv12R\",\"cardContainer\":\"card-payment-block_cardContainer__iqi4c\",\"cardElement\":\"card-payment-block_cardElement__tMBKw\",\"nameElement\":\"card-payment-block_nameElement__IB4oy\",\"expiredAndCvc\":\"card-payment-block_expiredAndCvc__otH_6\",\"nameInput\":\"card-payment-block_nameInput__4DMAv\",\"expiredElement\":\"card-payment-block_expiredElement__ORK_O\",\"cvcElement\":\"card-payment-block_cvcElement__TsMM7\",\"message\":\"card-payment-block_message__98P8O\",\"proceed\":\"card-payment-block_proceed__IcIOF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"policy\":\"checkout-policy_policy__gQnQ6\",\"link\":\"checkout-policy_link__rXMug\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logosContainer\":\"debit-credit-block_logosContainer___ZrJf\",\"paypalLogo\":\"debit-credit-block_paypalLogo__ulGNu\",\"visaLogo\":\"debit-credit-block_visaLogo__qixXQ\",\"mastercardLogo\":\"debit-credit-block_mastercardLogo__xJRo_\",\"amexLogo\":\"debit-credit-block_amexLogo__mmR62\",\"unionpayLogo\":\"debit-credit-block_unionpayLogo__H_bIW\",\"lockIcon\":\"debit-credit-block_lockIcon__NXyba\",\"debitCreditBlock\":\"debit-credit-block_debitCreditBlock__sitht\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"paypal-button-braintree_container__ipKqH\",\"frame\":\"paypal-button-braintree_frame__mCgPY\",\"loaderContainer\":\"paypal-button-braintree_loaderContainer__wd1wy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectorContainer\":\"checkout-selector_selectorContainer__vkYnO\",\"selectorContainerCompact\":\"checkout-selector_selectorContainerCompact__tjRAt\",\"containerSkeleton\":\"checkout-selector_containerSkeleton__EAdWU\",\"skeletonItem\":\"checkout-selector_skeletonItem__uI6d1\",\"skeletonItemSubmitButton\":\"checkout-selector_skeletonItemSubmitButton__uepQD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectorTabs\":\"compact-selector_selectorTabs__9YEB5\",\"paymentOptionTab\":\"compact-selector_paymentOptionTab__B5Nte\",\"paymentOptionTabSelected\":\"compact-selector_paymentOptionTabSelected__kwDrz\",\"paymentOptionSubmitButton\":\"compact-selector_paymentOptionSubmitButton__NTxFD\",\"buttonWrapper\":\"compact-selector_buttonWrapper__sXhrG\",\"buttonCoverage\":\"compact-selector_buttonCoverage__gL8UQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paymentMethodOption_layout\":\"payment-option-tab_paymentMethodOption_layout__FCcKM\",\"paymentMethodOption_title\":\"payment-option-tab_paymentMethodOption_title__94IhM\",\"paymentMethodOption_title_selected\":\"payment-option-tab_paymentMethodOption_title_selected__38THA\",\"paymentMethod_contentList\":\"payment-option-tab_paymentMethod_contentList__23pCu\",\"paymentMethodOption_contentItem\":\"payment-option-tab_paymentMethodOption_contentItem___XyXn\",\"paymentMethod_content\":\"payment-option-tab_paymentMethod_content__BrId0\",\"paymentMethod_content_selected\":\"payment-option-tab_paymentMethod_content_selected__CKxw9\",\"paypalButton\":\"payment-option-tab_paypalButton__a4RSf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalContentClassName\":\"modal_succeeded_modalContentClassName__tHE06\",\"accessBlock\":\"modal_succeeded_accessBlock__m8ZxT\",\"disclaimer\":\"modal_succeeded_disclaimer__1USJ9\",\"footer\":\"modal_succeeded_footer__MPfH1\",\"downloadButton\":\"modal_succeeded_downloadButton__8MciD\",\"pulse-button\":\"modal_succeeded_pulse-button__YaEVb\",\"credentials\":\"modal_succeeded_credentials__3iMdo\",\"contactUs\":\"modal_succeeded_contactUs__8KYf6\",\"image\":\"modal_succeeded_image__IQQH4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"check\":\"check-details_check__8e9EE\",\"priceInfoBlock\":\"check-details_priceInfoBlock__J3g5Z\",\"totalBlock\":\"check-details_totalBlock__5qtOZ\",\"checkItemText\":\"check-details_checkItemText__XqWZZ\",\"checkItemValue\":\"check-details_checkItemValue__h387H\",\"currentPlanInfoLine\":\"check-details_currentPlanInfoLine__hzG1y\",\"checkTotalText\":\"check-details_checkTotalText__oxMov\",\"checkTotalValue\":\"check-details_checkTotalValue__FEgYG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hidePayments\":\"stripe-modal_hidePayments__XR3Q4\",\"title\":\"stripe-modal_title__eJ24i\",\"loader\":\"stripe-modal_loader__xB8sA\",\"modalTitle\":\"stripe-modal_modalTitle__IgXf1\",\"disclaimer\":\"stripe-modal_disclaimer__93OLm\",\"hideLoading\":\"stripe-modal_hideLoading__xoP2Q\",\"placeholder\":\"stripe-modal_placeholder___BEcn\",\"paymentButtonsContainer\":\"stripe-modal_paymentButtonsContainer__qgIPB\",\"paymentButton\":\"stripe-modal_paymentButton__sddlK\",\"googlePayButton\":\"stripe-modal_googlePayButton__ig_AG\",\"paypalButton\":\"stripe-modal_paypalButton__qvJEC\",\"debitCardButton\":\"stripe-modal_debitCardButton__fviNf\",\"logosContainer\":\"stripe-modal_logosContainer__Nlgza\",\"paypalLogo\":\"stripe-modal_paypalLogo__o2m_4\",\"visaLogo\":\"stripe-modal_visaLogo__vB4P6\",\"mastercardLogo\":\"stripe-modal_mastercardLogo__zaFfB\",\"amexLogo\":\"stripe-modal_amexLogo__YfVAB\",\"unionpayLogo\":\"stripe-modal_unionpayLogo__2M1jZ\",\"lockIcon\":\"stripe-modal_lockIcon__cX_ff\",\"footer\":\"stripe-modal_footer__Yx2ww\",\"loaderContainer\":\"stripe-modal_loaderContainer__ZgqYH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalContent\":\"payment-declined-modal_modalContent__bOmza\",\"closeButton\":\"payment-declined-modal_closeButton__Hn4G5\",\"title\":\"payment-declined-modal_title__Y7q3V\",\"subTitle\":\"payment-declined-modal_subTitle__4OvZM\",\"buttonContentContainer\":\"payment-declined-modal_buttonContentContainer__LlTED\",\"buttonContentTitle\":\"payment-declined-modal_buttonContentTitle__pD2Tl\",\"buttonContentSubTitle\":\"payment-declined-modal_buttonContentSubTitle__CWmHQ\",\"priceLabel\":\"payment-declined-modal_priceLabel__4_ng_\",\"button\":\"payment-declined-modal_button__iz8g8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleSection\":\"payment-plans-stripe_titleSection__Qc5Qy\",\"declineDiscount\":\"payment-plans-stripe_declineDiscount__VG26h\",\"buttonEmail3\":\"payment-plans-stripe_buttonEmail3__R7o_1\",\"oldGetMyPlanButton\":\"payment-plans-stripe_oldGetMyPlanButton__J30u5\",\"pulse-button\":\"payment-plans-stripe_pulse-button__4yUwv\",\"policyWrapper\":\"payment-plans-stripe_policyWrapper__rFRCA\",\"policy\":\"payment-plans-stripe_policy__os_es\",\"reviews\":\"payment-plans-stripe_reviews__JVCq8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalContentClassName\":\"payment-processing-alert_modalContentClassName__L3TpJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"description\":\"second-payment-failed-modal_description__DtNp7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleWrapper\":\"subscription-plan-card-with-payment-methods_titleWrapper__TR3V_\",\"planCard\":\"subscription-plan-card-with-payment-methods_planCard__g8ler\",\"titleCard\":\"subscription-plan-card-with-payment-methods_titleCard__D8T6n\",\"priceUnitFull\":\"subscription-plan-card-with-payment-methods_priceUnitFull__aL7kP\",\"text\":\"subscription-plan-card-with-payment-methods_text__M3H7L\",\"textChecked\":\"subscription-plan-card-with-payment-methods_textChecked__FFxLL\",\"ebookText\":\"subscription-plan-card-with-payment-methods_ebookText__y9T_C\",\"wrapper\":\"subscription-plan-card-with-payment-methods_wrapper___CU0Y\",\"defaultDiscount\":\"subscription-plan-card-with-payment-methods_defaultDiscount__8ot0F\",\"alignEnd\":\"subscription-plan-card-with-payment-methods_alignEnd__z2cuo\",\"rightBlockContainer\":\"subscription-plan-card-with-payment-methods_rightBlockContainer__J5rOp\",\"fullPriceAndDiscount\":\"subscription-plan-card-with-payment-methods_fullPriceAndDiscount__8suS4\",\"discountPercentage\":\"subscription-plan-card-with-payment-methods_discountPercentage__5Bz51\",\"bottomContent\":\"subscription-plan-card-with-payment-methods_bottomContent__4wUjn\",\"learnMoreHeader\":\"subscription-plan-card-with-payment-methods_learnMoreHeader__c7AMg\",\"collapseIcon\":\"subscription-plan-card-with-payment-methods_collapseIcon__fLaLf\",\"unCollapsed\":\"subscription-plan-card-with-payment-methods_unCollapsed__Ib2fK\",\"paymentButton\":\"subscription-plan-card-with-payment-methods_paymentButton__VGCio\",\"pulse-button\":\"subscription-plan-card-with-payment-methods_pulse-button__MfSuE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleWrapper\":\"subscription-plan-card_titleWrapper__opLfd\",\"planCard\":\"subscription-plan-card_planCard__8v_TJ\",\"titleCard\":\"subscription-plan-card_titleCard__TMKYi\",\"priceUnitFull\":\"subscription-plan-card_priceUnitFull__EsCR4\",\"text\":\"subscription-plan-card_text__4QvAz\",\"textChecked\":\"subscription-plan-card_textChecked__c3jwR\",\"ebookText\":\"subscription-plan-card_ebookText__q523W\",\"wrapper\":\"subscription-plan-card_wrapper__AMX55\",\"defaultDiscount\":\"subscription-plan-card_defaultDiscount__ZIylx\",\"alignEnd\":\"subscription-plan-card_alignEnd__EGbq5\",\"rightBlockContainer\":\"subscription-plan-card_rightBlockContainer__QGBPb\",\"discountPercentage\":\"subscription-plan-card_discountPercentage__LEl7c\",\"bottomContent\":\"subscription-plan-card_bottomContent__HVUC_\",\"learnMoreHeader\":\"subscription-plan-card_learnMoreHeader__wcyFo\",\"collapseIcon\":\"subscription-plan-card_collapseIcon__KDDZT\",\"unCollapsed\":\"subscription-plan-card_unCollapsed__0DiV0\",\"paymentButton\":\"subscription-plan-card_paymentButton__GomnN\",\"pulse-button\":\"subscription-plan-card_pulse-button__Hq4G5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fallbackModal\":\"upsell-fallback-modal_fallbackModal__pO2M_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"upsell-loader_loader__zew_4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"links_link__endQu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"policy_container__uWrx_\"};","module.exports = require('./dist/shared/lib/dynamic')\n","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('../dist/client/legacy/image')\n","module.exports = require('./dist/client/router')\n","module.exports = require('./dist/client/script')\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import { __assign } from \"tslib\";\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(\n // @ts-expect-error\n React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var clarityInit = require(\"./src/react-clarity\");\r\n\r\nfunction clarity() {\r\n var params = Array.prototype.slice.call(arguments);\r\n if (!window.clarity) {\r\n throw new Error(\"Clarity is not initialized\");\r\n }\r\n\r\n window.clarity.apply(undefined, params);\r\n}\r\n\r\nfunction init(id) {\r\n clarityInit(id);\r\n}\r\n\r\nfunction hasStarted() {\r\n return typeof window.clarity === \"function\";\r\n}\r\n\r\nfunction identify(userId, properties) {\r\n clarity(\"identify\", userId, properties);\r\n}\r\n\r\nfunction consent(value = true) {\r\n clarity(\"consent\", value);\r\n}\r\n\r\nfunction stop() {\r\n clarity(\"stop\");\r\n}\r\n\r\nfunction start() {\r\n clarity(\"start\");\r\n}\r\n\r\nfunction setTag(key, value) {\r\n clarity(\"set\", key, value);\r\n}\r\n\r\nfunction setEvent(name) {\r\n clarity(\"event\", name);\r\n}\r\n\r\nfunction upgrade(reason) {\r\n clarity(\"upgrade\", reason);\r\n}\r\n\r\nmodule.exports = {\r\n clarity: {\r\n init,\r\n hasStarted,\r\n identify,\r\n consent,\r\n stop,\r\n start,\r\n setTag,\r\n setEvent,\r\n upgrade,\r\n },\r\n};\r\n","module.exports = function (id) {\r\n (function (c, l, a, r, i, t, y) {\r\n c[a] =\r\n c[a] ||\r\n function () {\r\n (c[a].q = c[a].q || []).push(arguments);\r\n };\r\n t = l.createElement(r);\r\n t.async = 1;\r\n t.src = \"https://www.clarity.ms/tag/\" + i;\r\n y = l.getElementsByTagName(r)[0];\r\n y.parentNode.insertBefore(t, y);\r\n })(window, document, \"clarity\", \"script\", id);\r\n};\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\nexports.setCookie = exports.removeCookie = exports.getCookie = void 0;\nexports.stringifyOptions = stringifyOptions;\nvar _react = require(\"react\");\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar isBrowser = typeof window !== 'undefined';\nfunction stringifyOptions(options) {\n return Object.keys(options).reduce(function (acc, key) {\n if (key === 'days') {\n return acc;\n } else {\n if (options[key] === false) {\n return acc;\n } else if (options[key] === true) {\n return \"\".concat(acc, \"; \").concat(key);\n } else {\n return \"\".concat(acc, \"; \").concat(key, \"=\").concat(options[key]);\n }\n }\n }, '');\n}\nvar setCookie = function setCookie(name, value, options) {\n if (!isBrowser) return;\n var optionsWithDefaults = _objectSpread({\n days: 7,\n path: '/'\n }, options);\n var expires = new Date(Date.now() + optionsWithDefaults.days * 864e5).toUTCString();\n document.cookie = name + '=' + encodeURIComponent(value) + '; expires=' + expires + stringifyOptions(optionsWithDefaults);\n};\nexports.setCookie = setCookie;\nvar getCookie = function getCookie(name) {\n var initialValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return isBrowser && document.cookie.split('; ').reduce(function (r, v) {\n var parts = v.split('=');\n return parts[0] === name ? decodeURIComponent(parts[1]) : r;\n }, '') || initialValue;\n};\nexports.getCookie = getCookie;\nvar removeCookie = function removeCookie(name) {\n document.cookie = \"\".concat(name, \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\");\n};\nexports.removeCookie = removeCookie;\nfunction _default(key, initialValue) {\n var _useState = (0, _react.useState)(function () {\n return getCookie(key, initialValue);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n item = _useState2[0],\n setItem = _useState2[1];\n var removeItem = (0, _react.useCallback)(function () {\n setItem(undefined);\n removeCookie(key);\n }, [key]);\n var updateItem = (0, _react.useCallback)(function (value, options) {\n setItem(value);\n setCookie(key, value, options);\n }, [key]);\n return [item, updateItem, removeItem];\n}","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationErrorNoStack {\n constructor(errorOrErrors, value, field, type) {\n this.name = void 0;\n this.message = void 0;\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n }\n}\n_Symbol$hasInstance = Symbol.hasInstance;\n_Symbol$toStringTag2 = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n // Attempt to make the path more friendly for error message interpolation.\n const path = params.label || params.path || 'this';\n // Store the original path under `originalPath` so it isn't lost to custom\n // message functions; e.g., ones provided in `setLocale()` calls.\n params = Object.assign({}, params, {\n path,\n originalPath: params.path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n const errorNoStack = new ValidationErrorNoStack(errorOrErrors, value, field, type);\n if (disableStack) {\n return errorNoStack;\n }\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = [];\n this.inner = [];\n this[_Symbol$toStringTag2] = 'Error';\n this.name = errorNoStack.name;\n this.message = errorNoStack.message;\n this.type = errorNoStack.type;\n this.value = errorNoStack.value;\n this.path = errorNoStack.path;\n this.errors = errorNoStack.errors;\n this.inner = errorNoStack.inner;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n }\n static [_Symbol$hasInstance](inst) {\n return ValidationErrorNoStack[Symbol.hasInstance](inst) || super[Symbol.hasInstance](inst);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n datetime: '${path} must be a valid ISO date-time',\n datetime_precision: '${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits',\n datetime_offset: '${path} must be a valid ISO date-time with UTC \"Z\" timezone',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}',\n exact: '${path} object contains unknown properties: ${properties}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec,\n disableStackTrace: overrides.disableStackTrace || disableStackTrace\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, nextParams.disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${isIndex ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n const struct = parseDateStruct(date);\n if (!struct) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\nfunction parseDateStruct(date) {\n var _regexResult$7$length, _regexResult$;\n const regexResult = isoReg.exec(date);\n if (!regexResult) return null;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n return {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n precision: (_regexResult$7$length = (_regexResult$ = regexResult[7]) == null ? void 0 : _regexResult$.length) != null ? _regexResult$7$length : undefined,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n}\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet yearMonthDay = '^\\\\d{4}-\\\\d{2}-\\\\d{2}';\nlet hourMinuteSecond = '\\\\d{2}:\\\\d{2}:\\\\d{2}';\nlet zOrOffset = '(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)';\nlet rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\\\.\\\\d+)?${zOrOffset}$`);\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n datetime(options) {\n let message = '';\n let allowOffset;\n let precision;\n if (options) {\n if (typeof options === 'object') {\n ({\n message = '',\n allowOffset = false,\n precision = undefined\n } = options);\n } else {\n message = options;\n }\n }\n return this.matches(rIsoDateTime, {\n name: 'datetime',\n message: message || string.datetime,\n excludeEmptyString: true\n }).test({\n name: 'datetime_offset',\n message: message || string.datetime_offset,\n params: {\n allowOffset\n },\n skipAbsent: true,\n test: value => {\n if (!value || allowOffset) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return !!struct.z;\n }\n }).test({\n name: 'datetime_precision',\n message: message || string.datetime_precision,\n params: {\n precision\n },\n skipAbsent: true,\n test: value => {\n if (!value || precision == undefined) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return struct.precision === precision;\n }\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n\n /**\n * Similar to `noUnknown` but only validates that an object is the right shape without stripping the unknown keys\n */\n exact(message) {\n return this.test({\n name: 'exact',\n exclusive: true,\n message: message || object.exact,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return unknownKeys.length === 0 || this.createError({\n params: {\n properties: unknownKeys.join(', ')\n }\n });\n }\n });\n }\n stripUnknown() {\n return this.clone({\n noUnknown: true\n });\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nfunction catchValidationError(fn) {\n try {\n return fn();\n } catch (err) {\n if (ValidationError.isError(err)) return Promise.reject(err);\n throw err;\n }\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return catchValidationError(() => this._resolve(value, options).validate(value, options));\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return catchValidationError(() => this._resolve(value, options).validateAt(path, value, options));\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n try {\n return this._resolve(value, options).isValid(value, options);\n } catch (err) {\n if (ValidationError.isError(err)) {\n return Promise.resolve(false);\n }\n throw err;\n }\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, Lazy as LazySchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","var map = {\n\t\"./de_DE.json\": [\n\t\t26632,\n\t\t6632\n\t],\n\t\"./en.json\": [\n\t\t60106,\n\t\t106\n\t],\n\t\"./es_LA.json\": [\n\t\t60033,\n\t\t33\n\t],\n\t\"./fr_FR.json\": [\n\t\t74722,\n\t\t4722\n\t],\n\t\"./pt_PT.json\": [\n\t\t33574,\n\t\t3574\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 18212;\nmodule.exports = webpackAsyncContext;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import{jsx as e,jsxs as t,Fragment as n}from\"react/jsx-runtime\";import r from\"classnames\";import*as o from\"react\";import s,{useCallback as a,useMemo as i,Children as l,isValidElement as c,cloneElement as u,useState as d,useEffect as f,useRef as p}from\"react\";import*as m from\"react-dom\";import h,{createPortal as y}from\"react-dom\";var v={button:\"styles-module_button__Z26SF\",secondary:\"styles-module_secondary__6StQs\",outlined:\"styles-module_outlined__qDv4-\",pure:\"styles-module_pure__GyRAL\",disabled:\"styles-module_disabled__6CTTh\",sm:\"styles-module_sm__U8a-V\",fullWidth:\"styles-module_fullWidth__AD-lc\"};const b=t=>{const{fullWidth:n,className:o,as:s,color:a,disabled:i,variant:l,size:c=\"md\",...u}=t,d=r({[v.fullWidth]:n,[v.disabled]:i,[v.secondary]:\"secondary\"===a,[v.pure]:\"pure\"===a,[v.outlined]:\"outlined\"===l,[v.sm]:\"sm\"===c,[v.md]:\"md\"===c,[v.lg]:\"lg\"===c});return e(\"a\"===s?\"a\":\"button\",{...u,className:r(v.button,d,o)})};var g=\"styles-module_button__I7-y3\",_=\"styles-module_fullWidth__MKA1d\",x=\"styles-module_loading__SVuJI\",E=\"styles-module_disabled__kJU45\",w=\"styles-module_container__2V-UN\",N=\"styles-module_dot__IdjYn\",O=\"styles-module_startIcon__19RIp\";const C=Array.from({length:3},((t,n)=>e(\"span\",{className:N},n))),k=()=>e(\"span\",{className:w,role:\"status\",children:C}),S=o=>{const{fullWidth:s,disabled:i,className:l,children:c,loading:u,loadingIndicator:d,startIcon:f,startIconClassName:p,...m}=o,h=r({[E]:i,[_]:s,[x]:u}),y=a((()=>f?e(\"div\",{className:r(O,p),children:f}):null),[f,p]);return e(\"button\",{className:r(g,h,l),...m,children:u?d||e(k,{}):t(n,{children:[e(y,{}),\" \",c]})})};var I={host:\"styles-module_host__zOqW4\",label:\"styles-module_label__V0Qjw\",input:\"styles-module_input__Og6jp\",startIcon:\"styles-module_startIcon__8LaWa\",squareIcon:\"styles-module_squareIcon__oxaLX\",rectangleIcon:\"styles-module_rectangleIcon__NNX7r\",text:\"styles-module_text__GF69q\",square:\"styles-module_square__f2LGH\",rectangle:\"styles-module_rectangle__g2mB-\",noIcon:\"styles-module_noIcon__HQhH-\"};const j=n=>{const{defaultChecked:o,hostClassName:s,label:i,labelClassName:l,subLabel:c,subLabelClassName:u,textClassName:d,onChange:f,onClick:p,name:m,value:h,startIcon:y,startIconClassName:v,variant:b=\"rectangle\"}=n,g=a((()=>p&&p()),[p]),_=a((()=>y?e(\"div\",{className:r(I.startIcon,v,{[I.squareIcon]:\"square\"===b,[I.rectangleIcon]:\"rectangle\"===b}),children:y}):null),[y,v,b]),x=r(I.label,{[I.square]:\"square\"===b,[I.rectangle]:\"rectangle\"===b,[I.noIcon]:void 0===y},l);return t(\"div\",{className:r(I.host,s),tabIndex:0,role:\"button\",children:[e(\"input\",{type:\"radio\",value:h,name:m,checked:o===h,className:I.input,onChange:f,onClick:p&&g,id:`${m}_${h}`}),t(\"label\",{className:x,htmlFor:`${m}_${h}`,children:[e(_,{}),c?t(\"div\",{children:[e(\"span\",{className:r(I.text,d),children:i}),e(\"span\",{className:r(I.subText,u),children:c})]}):e(\"span\",{className:r(I.text,d),children:i})]})]})};var T=\"styles-module_host__Xu0Tz\",P=\"styles-module_rectangle__rKEYv\",R=\"styles-module_square__Runb7\";const A=t=>{const{children:n,className:o,name:s,onChange:a,onClick:d,variant:f=\"rectangle\",defaultValue:p}=t,m=i((()=>l.map(n,(e=>c(e)?u(e,{name:s,defaultChecked:p,onChange:a,onClick:d}):e))),[n,p,s,a,d]),h=r(T,o,{[R]:\"square\"===f,[P]:\"rectangle\"===f});return e(\"div\",{className:h,children:m})};var L={host:\"styles-module_host__oudJM\",label:\"styles-module_label__20AOH\",input:\"styles-module_input__U7ZOG\",checkbox:\"styles-module_checkbox__Sx7GE\",startIcon:\"styles-module_startIcon__4DRZk\",noIcon:\"styles-module_noIcon__YHDKI\",checkboxStart:\"styles-module_checkboxStart__knOo1\",checkboxEnd:\"styles-module_checkboxEnd__vCkq2\"};const D=n=>{const o=e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",children:e(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M16.8849 6.41454L8.53619 15.4055L3.11501 9.98433L5.00062 8.09871L8.46506 11.5631L14.9308 4.6L16.8849 6.41454Z\",fill:\"white\"})}),{hostClassName:s,label:a,labelClassName:i,onChange:l,name:c,value:u,id:d,checked:f,checkboxIcon:p=o,alignCheckbox:m=\"left\"}=n,h=r(L.checkbox,{[L.checkboxStart]:\"left\"===m,[L.checkboxEnd]:\"right\"===m});return t(\"label\",{htmlFor:d,className:r(L.host,s),children:[e(\"input\",{type:\"checkbox\",value:u,name:c,checked:f,className:L.input,onChange:e=>l(e.target.checked),id:d}),t(\"div\",{className:r(L.label,i),children:[e(\"div\",{className:h,children:f?p:null}),e(\"span\",{className:L.text,children:a})]})]})};var M=\"styles-module_host__px-g7\",B=\"styles-module_label__qblpy\",$=\"styles-module_input__Z2uT1\",W=\"styles-module_checkbox__Z8kTe\",V=\"styles-module_startIcon__h-ahb\",q=\"styles-module_squareIcon__unse9\",H=\"styles-module_rectangleIcon__Ongxf\",F=\"styles-module_text__WmvFx\",U=\"styles-module_square__7HIGu\",z=\"styles-module_rectangle__fwgfH\",G=\"styles-module_noIcon__DOAVz\",X=\"styles-module_checkboxStart__DNasm\",Z=\"styles-module_checkboxEnd__2QrK7\",Y=\"styles-module_checkboxSquare__oiVd0\";const J=n=>{const o=e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",children:e(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M16.8849 6.41454L8.53619 15.4055L3.11501 9.98433L5.00062 8.09871L8.46506 11.5631L14.9308 4.6L16.8849 6.41454Z\",fill:\"white\"})}),{hostClassName:s,label:i,labelClassName:l,onChange:c,name:u,value:d,startIcon:f,startIconClassName:p,variant:m=\"rectangle\",suffix:h,checked:y,checkboxIcon:v=o,alignCheckbox:b=\"left\"}=n,g=`multiple-options-select-step_option_${h}`,_=a((()=>f?e(\"div\",{className:r(V,p,{[q]:\"square\"===m,[H]:\"rectangle\"===m}),children:f}):null),[f,p,m]),x=r(B,{[U]:\"square\"===m,[z]:\"rectangle\"===m,[G]:void 0===f},l),E=r(W,{[X]:\"left\"===b,[Z]:\"right\"===b,[Y]:\"square\"===m});return t(\"label\",{htmlFor:g,className:r(M,s),children:[e(\"input\",{type:\"checkbox\",value:d,name:u,checked:y,className:$,onChange:e=>c(e.target.checked),id:g}),t(\"div\",{className:x,children:[e(\"div\",{className:E,children:y?v:null}),e(\"span\",{className:F,children:i}),e(_,{})]})]})};var Q=\"styles-module_host__QF3LV\",K=\"styles-module_rectangle__WmTCL\",ee=\"styles-module_square__I0vFh\";const te=t=>{const{children:n,className:o,variant:s=\"rectangle\"}=t,a=r(Q,o,{[ee]:\"square\"===s,[K]:\"rectangle\"===s});return e(\"div\",{className:a,children:n})};var ne={host:\"styles-module_host__LaJBP\",h1:\"styles-module_h1__Cb5YG\",h2:\"styles-module_h2__JpxFh\",\"body1-bold\":\"styles-module_body1-bold__E10cZ\",\"body2-bold\":\"styles-module_body2-bold__caHWR\",\"body3-bold\":\"styles-module_body3-bold__3uiE-\",\"body4-bold\":\"styles-module_body4-bold__WOibQ\",body1:\"styles-module_body1__NVLy-\",body2:\"styles-module_body2__BtZga\",body3:\"styles-module_body3__0Kqp9\",body4:\"styles-module_body4__C-K9s\"};const re=t=>{const{as:n=\"h1\",children:o,className:s,variant:a}=t;return e(n,{className:r(ne.host,[a&&ne[a],ne[n]],s),children:o})};var oe=\"styles-module_host__RnRDo\",se=\"styles-module_fullWidth__CiUCt\",ae=\"styles-module_isInvalid__-YKRO\",ie=\"styles-module_errorText__iXTGt\";const le=o=>{const{as:s,className:a,errorText:i,errorTextClassName:l,fullWidth:c,isInvalid:u,...d}=o,f=r(oe,a,{[se]:c,[ae]:u});return t(n,{children:[e(\"textarea\"===s?\"textarea\":\"input\",{...d,className:f}),e(\"span\",{className:r(ie,l),children:i})]})};var ce={host:\"styles-module_host__Menzr\",header:\"styles-module_header__1ckR5\",body:\"styles-module_body__IVSI-\",bodyContent:\"styles-module_bodyContent__47rDG\",bodyExpanded:\"styles-module_bodyExpanded__40Vf-\"};const ue=t=>{const{defaultActiveKey:n,children:o,className:s,alwaysOpen:i=!1}=t,[f,p]=d([n??0]),m=a((e=>p((t=>i?t.includes(e)?t.filter((t=>t!==e)):[...t,e]:[e]))),[i]),h=a(((e,t)=>c(e)?u(e,{...e.props,isOpen:f.includes(t),handleAccordionItemClick:m}):e),[f,m]);return e(\"div\",{className:r(ce.host,s),children:l.map(o,h)})};ue.Item=t=>{const{id:n,children:o,handleAccordionItemClick:a,isOpen:i,className:u,classNameOpened:d}=t;return e(\"div\",{className:r(ce.item,u,i&&d),children:l.map(o,(e=>c(e)?s.cloneElement(e,{...e.props,id:n,isOpen:i,handleAccordionItemClick:a}):e))})};ue.Toggle=t=>{const{id:n,children:r,handleAccordionItemClick:o}=t;return e(\"div\",{role:\"button\",tabIndex:0,className:\"accordion-toggle\",onClick:()=>o&&o(n),children:r})};ue.CollapsibleBody=t=>{const{children:n,className:o,isOpen:s}=t;return e(\"div\",{className:r(ce.body,{[ce.bodyExpanded]:s},o),children:e(\"div\",{className:ce.bodyContent,children:n})})};var de=function(e){return e.reduce((function(e,t){var n=t[0],r=t[1];return e[n]=r,e}),{})},fe=\"undefined\"!=typeof window&&window.document&&window.document.createElement?o.useLayoutEffect:o.useEffect,pe=\"top\",me=\"bottom\",he=\"right\",ye=\"left\",ve=\"auto\",be=[pe,me,he,ye],ge=\"start\",_e=\"end\",xe=\"viewport\",Ee=\"popper\",we=be.reduce((function(e,t){return e.concat([t+\"-\"+ge,t+\"-\"+_e])}),[]),Ne=[].concat(be,[ve]).reduce((function(e,t){return e.concat([t,t+\"-\"+ge,t+\"-\"+_e])}),[]),Oe=[\"beforeRead\",\"read\",\"afterRead\",\"beforeMain\",\"main\",\"afterMain\",\"beforeWrite\",\"write\",\"afterWrite\"];function Ce(e){return e?(e.nodeName||\"\").toLowerCase():null}function ke(e){if(null==e)return window;if(\"[object Window]\"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Se(e){return e instanceof ke(e).Element||e instanceof Element}function Ie(e){return e instanceof ke(e).HTMLElement||e instanceof HTMLElement}function je(e){return\"undefined\"!=typeof ShadowRoot&&(e instanceof ke(e).ShadowRoot||e instanceof ShadowRoot)}var Te={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];Ie(o)&&Ce(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?\"\":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{},s=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]=\"\",e}),{});Ie(r)&&Ce(r)&&(Object.assign(r.style,s),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:[\"computeStyles\"]};function Pe(e){return e.split(\"-\")[0]}var Re=Math.max,Ae=Math.min,Le=Math.round;function De(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+\"/\"+e.version})).join(\" \"):navigator.userAgent}function Me(){return!/^((?!chrome|android).)*safari/i.test(De())}function Be(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),o=1,s=1;t&&Ie(e)&&(o=e.offsetWidth>0&&Le(r.width)/e.offsetWidth||1,s=e.offsetHeight>0&&Le(r.height)/e.offsetHeight||1);var a=(Se(e)?ke(e):window).visualViewport,i=!Me()&&n,l=(r.left+(i&&a?a.offsetLeft:0))/o,c=(r.top+(i&&a?a.offsetTop:0))/s,u=r.width/o,d=r.height/s;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l,x:l,y:c}}function $e(e){var t=Be(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function We(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&je(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Ve(e){return ke(e).getComputedStyle(e)}function qe(e){return[\"table\",\"td\",\"th\"].indexOf(Ce(e))>=0}function He(e){return((Se(e)?e.ownerDocument:e.document)||window.document).documentElement}function Fe(e){return\"html\"===Ce(e)?e:e.assignedSlot||e.parentNode||(je(e)?e.host:null)||He(e)}function Ue(e){return Ie(e)&&\"fixed\"!==Ve(e).position?e.offsetParent:null}function ze(e){for(var t=ke(e),n=Ue(e);n&&qe(n)&&\"static\"===Ve(n).position;)n=Ue(n);return n&&(\"html\"===Ce(n)||\"body\"===Ce(n)&&\"static\"===Ve(n).position)?t:n||function(e){var t=/firefox/i.test(De());if(/Trident/i.test(De())&&Ie(e)&&\"fixed\"===Ve(e).position)return null;var n=Fe(e);for(je(n)&&(n=n.host);Ie(n)&&[\"html\",\"body\"].indexOf(Ce(n))<0;){var r=Ve(n);if(\"none\"!==r.transform||\"none\"!==r.perspective||\"paint\"===r.contain||-1!==[\"transform\",\"perspective\"].indexOf(r.willChange)||t&&\"filter\"===r.willChange||t&&r.filter&&\"none\"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function Ge(e){return[\"top\",\"bottom\"].indexOf(e)>=0?\"x\":\"y\"}function Xe(e,t,n){return Re(e,Ae(t,n))}function Ze(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ye(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Je={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,a=n.modifiersData.popperOffsets,i=Pe(n.placement),l=Ge(i),c=[ye,he].indexOf(i)>=0?\"height\":\"width\";if(s&&a){var u=function(e,t){return Ze(\"number\"!=typeof(e=\"function\"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ye(e,be))}(o.padding,n),d=$e(s),f=\"y\"===l?pe:ye,p=\"y\"===l?me:he,m=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],h=a[l]-n.rects.reference[l],y=ze(s),v=y?\"y\"===l?y.clientHeight||0:y.clientWidth||0:0,b=m/2-h/2,g=u[f],_=v-d[c]-u[p],x=v/2-d[c]/2+b,E=Xe(g,x,_),w=l;n.modifiersData[r]=((t={})[w]=E,t.centerOffset=E-x,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?\"[data-popper-arrow]\":n;null!=r&&(\"string\"!=typeof r||(r=t.elements.popper.querySelector(r)))&&We(t.elements.popper,r)&&(t.elements.arrow=r)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function Qe(e){return e.split(\"-\")[1]}var Ke={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function et(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,a=e.offsets,i=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=a.x,p=void 0===f?0:f,m=a.y,h=void 0===m?0:m,y=\"function\"==typeof u?u({x:p,y:h}):{x:p,y:h};p=y.x,h=y.y;var v=a.hasOwnProperty(\"x\"),b=a.hasOwnProperty(\"y\"),g=ye,_=pe,x=window;if(c){var E=ze(n),w=\"clientHeight\",N=\"clientWidth\";if(E===ke(n)&&\"static\"!==Ve(E=He(n)).position&&\"absolute\"===i&&(w=\"scrollHeight\",N=\"scrollWidth\"),o===pe||(o===ye||o===he)&&s===_e)_=me,h-=(d&&E===x&&x.visualViewport?x.visualViewport.height:E[w])-r.height,h*=l?1:-1;if(o===ye||(o===pe||o===me)&&s===_e)g=he,p-=(d&&E===x&&x.visualViewport?x.visualViewport.width:E[N])-r.width,p*=l?1:-1}var O,C=Object.assign({position:i},c&&Ke),k=!0===u?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Le(n*o)/o||0,y:Le(r*o)/o||0}}({x:p,y:h},ke(n)):{x:p,y:h};return p=k.x,h=k.y,l?Object.assign({},C,((O={})[_]=b?\"0\":\"\",O[g]=v?\"0\":\"\",O.transform=(x.devicePixelRatio||1)<=1?\"translate(\"+p+\"px, \"+h+\"px)\":\"translate3d(\"+p+\"px, \"+h+\"px, 0)\",O)):Object.assign({},C,((t={})[_]=b?h+\"px\":\"\",t[g]=v?p+\"px\":\"\",t.transform=\"\",t))}var tt={passive:!0};var nt={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function rt(e){return e.replace(/left|right|bottom|top/g,(function(e){return nt[e]}))}var ot={start:\"end\",end:\"start\"};function st(e){return e.replace(/start|end/g,(function(e){return ot[e]}))}function at(e){var t=ke(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function it(e){return Be(He(e)).left+at(e).scrollLeft}function lt(e){var t=Ve(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function ct(e){return[\"html\",\"body\",\"#document\"].indexOf(Ce(e))>=0?e.ownerDocument.body:Ie(e)&<(e)?e:ct(Fe(e))}function ut(e,t){var n;void 0===t&&(t=[]);var r=ct(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),s=ke(r),a=o?[s].concat(s.visualViewport||[],lt(r)?r:[]):r,i=t.concat(a);return o?i:i.concat(ut(Fe(a)))}function dt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ft(e,t,n){return t===xe?dt(function(e,t){var n=ke(e),r=He(e),o=n.visualViewport,s=r.clientWidth,a=r.clientHeight,i=0,l=0;if(o){s=o.width,a=o.height;var c=Me();(c||!c&&\"fixed\"===t)&&(i=o.offsetLeft,l=o.offsetTop)}return{width:s,height:a,x:i+it(e),y:l}}(e,n)):Se(t)?function(e,t){var n=Be(e,!1,\"fixed\"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):dt(function(e){var t,n=He(e),r=at(e),o=null==(t=e.ownerDocument)?void 0:t.body,s=Re(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Re(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+it(e),l=-r.scrollTop;return\"rtl\"===Ve(o||n).direction&&(i+=Re(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:a,x:i,y:l}}(He(e)))}function pt(e,t,n,r){var o=\"clippingParents\"===t?function(e){var t=ut(Fe(e)),n=[\"absolute\",\"fixed\"].indexOf(Ve(e).position)>=0&&Ie(e)?ze(e):e;return Se(n)?t.filter((function(e){return Se(e)&&We(e,n)&&\"body\"!==Ce(e)})):[]}(e):[].concat(t),s=[].concat(o,[n]),a=s[0],i=s.reduce((function(t,n){var o=ft(e,n,r);return t.top=Re(o.top,t.top),t.right=Ae(o.right,t.right),t.bottom=Ae(o.bottom,t.bottom),t.left=Re(o.left,t.left),t}),ft(e,a,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function mt(e){var t,n=e.reference,r=e.element,o=e.placement,s=o?Pe(o):null,a=o?Qe(o):null,i=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(s){case pe:t={x:i,y:n.y-r.height};break;case me:t={x:i,y:n.y+n.height};break;case he:t={x:n.x+n.width,y:l};break;case ye:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=s?Ge(s):null;if(null!=c){var u=\"y\"===c?\"height\":\"width\";switch(a){case ge:t[c]=t[c]-(n[u]/2-r[u]/2);break;case _e:t[c]=t[c]+(n[u]/2-r[u]/2)}}return t}function ht(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,s=n.strategy,a=void 0===s?e.strategy:s,i=n.boundary,l=void 0===i?\"clippingParents\":i,c=n.rootBoundary,u=void 0===c?xe:c,d=n.elementContext,f=void 0===d?Ee:d,p=n.altBoundary,m=void 0!==p&&p,h=n.padding,y=void 0===h?0:h,v=Ze(\"number\"!=typeof y?y:Ye(y,be)),b=f===Ee?\"reference\":Ee,g=e.rects.popper,_=e.elements[m?b:f],x=pt(Se(_)?_:_.contextElement||He(e.elements.popper),l,u,a),E=Be(e.elements.reference),w=mt({reference:E,element:g,strategy:\"absolute\",placement:o}),N=dt(Object.assign({},g,w)),O=f===Ee?N:E,C={top:x.top-O.top+v.top,bottom:O.bottom-x.bottom+v.bottom,left:x.left-O.left+v.left,right:O.right-x.right+v.right},k=e.modifiersData.offset;if(f===Ee&&k){var S=k[o];Object.keys(C).forEach((function(e){var t=[he,me].indexOf(e)>=0?1:-1,n=[pe,me].indexOf(e)>=0?\"y\":\"x\";C[e]+=S[n]*t}))}return C}function yt(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,i=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?Ne:l,u=Qe(r),d=u?i?we:we.filter((function(e){return Qe(e)===u})):be,f=d.filter((function(e){return c.indexOf(e)>=0}));0===f.length&&(f=d);var p=f.reduce((function(t,n){return t[n]=ht(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[Pe(n)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}var vt={name:\"flip\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=void 0===o||o,a=n.altAxis,i=void 0===a||a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=void 0===p||p,h=n.allowedAutoPlacements,y=t.options.placement,v=Pe(y),b=l||(v===y||!m?[rt(y)]:function(e){if(Pe(e)===ve)return[];var t=rt(e);return[st(e),t,st(t)]}(y)),g=[y].concat(b).reduce((function(e,n){return e.concat(Pe(n)===ve?yt(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:m,allowedAutoPlacements:h}):n)}),[]),_=t.rects.reference,x=t.rects.popper,E=new Map,w=!0,N=g[0],O=0;O=0,j=I?\"width\":\"height\",T=ht(t,{placement:C,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),P=I?S?he:ye:S?me:pe;_[j]>x[j]&&(P=rt(P));var R=rt(P),A=[];if(s&&A.push(T[k]<=0),i&&A.push(T[P]<=0,T[R]<=0),A.every((function(e){return e}))){N=C,w=!1;break}E.set(C,A)}if(w)for(var L=function(e){var t=g.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return N=t,\"break\"},D=m?3:1;D>0;D--){if(\"break\"===L(D))break}t.placement!==N&&(t.modifiersData[r]._skip=!0,t.placement=N,t.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function bt(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function gt(e){return[pe,he,me,ye].some((function(t){return e[t]>=0}))}var _t={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=void 0===o?[0,0]:o,a=Ne.reduce((function(e,n){return e[n]=function(e,t,n){var r=Pe(e),o=[ye,pe].indexOf(r)>=0?-1:1,s=\"function\"==typeof n?n(Object.assign({},t,{placement:e})):n,a=s[0],i=s[1];return a=a||0,i=(i||0)*o,[ye,he].indexOf(r)>=0?{x:i,y:a}:{x:a,y:i}}(n,t.rects,s),e}),{}),i=a[t.placement],l=i.x,c=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}};var xt={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,a=n.altAxis,i=void 0!==a&&a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=void 0===f||f,m=n.tetherOffset,h=void 0===m?0:m,y=ht(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=Pe(t.placement),b=Qe(t.placement),g=!b,_=Ge(v),x=\"x\"===_?\"y\":\"x\",E=t.modifiersData.popperOffsets,w=t.rects.reference,N=t.rects.popper,O=\"function\"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,C=\"number\"==typeof O?{mainAxis:O,altAxis:O}:Object.assign({mainAxis:0,altAxis:0},O),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,S={x:0,y:0};if(E){if(s){var I,j=\"y\"===_?pe:ye,T=\"y\"===_?me:he,P=\"y\"===_?\"height\":\"width\",R=E[_],A=R+y[j],L=R-y[T],D=p?-N[P]/2:0,M=b===ge?w[P]:N[P],B=b===ge?-N[P]:-w[P],$=t.elements.arrow,W=p&&$?$e($):{width:0,height:0},V=t.modifiersData[\"arrow#persistent\"]?t.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},q=V[j],H=V[T],F=Xe(0,w[P],W[P]),U=g?w[P]/2-D-F-q-C.mainAxis:M-F-q-C.mainAxis,z=g?-w[P]/2+D+F+H+C.mainAxis:B+F+H+C.mainAxis,G=t.elements.arrow&&ze(t.elements.arrow),X=G?\"y\"===_?G.clientTop||0:G.clientLeft||0:0,Z=null!=(I=null==k?void 0:k[_])?I:0,Y=R+z-Z,J=Xe(p?Ae(A,R+U-Z-X):A,R,p?Re(L,Y):L);E[_]=J,S[_]=J-R}if(i){var Q,K=\"x\"===_?pe:ye,ee=\"x\"===_?me:he,te=E[x],ne=\"y\"===x?\"height\":\"width\",re=te+y[K],oe=te-y[ee],se=-1!==[pe,ye].indexOf(v),ae=null!=(Q=null==k?void 0:k[x])?Q:0,ie=se?re:te-w[ne]-N[ne]-ae+C.altAxis,le=se?te+w[ne]+N[ne]-ae-C.altAxis:oe,ce=p&&se?function(e,t,n){var r=Xe(e,t,n);return r>n?n:r}(ie,te,le):Xe(p?ie:re,te,p?le:oe);E[x]=ce,S[x]=ce-te}t.modifiersData[r]=S}},requiresIfExists:[\"offset\"]};function Et(e,t,n){void 0===n&&(n=!1);var r,o,s=Ie(t),a=Ie(t)&&function(e){var t=e.getBoundingClientRect(),n=Le(t.width)/e.offsetWidth||1,r=Le(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),i=He(t),l=Be(e,a,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(s||!s&&!n)&&((\"body\"!==Ce(t)||lt(i))&&(c=(r=t)!==ke(r)&&Ie(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:at(r)),Ie(t)?((u=Be(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):i&&(u.x=it(i))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function wt(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var Nt={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function Ot(){for(var e=arguments.length,t=new Array(e),n=0;n{const{children:s,toggleComponent:i,popperConfig:l,placement:c,menuClassName:p}=n,[h,y]=d(!1),[v,b]=d(null),[g,_]=d(null),{styles:x,attributes:E}=function(e,t,n){void 0===n&&(n={});var r=o.useRef(null),s={onFirstUpdate:n.onFirstUpdate,placement:n.placement||\"bottom\",strategy:n.strategy||\"absolute\",modifiers:n.modifiers||Pt},a=o.useState({styles:{popper:{position:s.strategy,left:\"0\",top:\"0\"},arrow:{position:\"absolute\"}},attributes:{}}),i=a[0],l=a[1],c=o.useMemo((function(){return{name:\"updateState\",enabled:!0,phase:\"write\",fn:function(e){var t=e.state,n=Object.keys(t.elements);m.flushSync((function(){l({styles:de(n.map((function(e){return[e,t.styles[e]||{}]}))),attributes:de(n.map((function(e){return[e,t.attributes[e]]})))})}))},requires:[\"computeStyles\"]}}),[]),u=o.useMemo((function(){var e={onFirstUpdate:s.onFirstUpdate,placement:s.placement,strategy:s.strategy,modifiers:[].concat(s.modifiers,[c,{name:\"applyStyles\",enabled:!1}])};return Tt(r.current,e)?r.current||e:(r.current=e,e)}),[s.onFirstUpdate,s.placement,s.strategy,s.modifiers,c]),d=o.useRef();return fe((function(){d.current&&d.current.setOptions(u)}),[u]),fe((function(){if(null!=e&&null!=t){var r=(n.createPopper||It)(e,t,u);return d.current=r,function(){r.destroy(),d.current=null}}}),[e,t,n.createPopper]),{state:d.current?d.current.state:null,styles:i.styles,attributes:i.attributes,update:d.current?d.current.update:null,forceUpdate:d.current?d.current.forceUpdate:null}}(v,g,{placement:c||\"auto\",modifiers:l?.modifiers||[]}),w=a((()=>{y(!h)}),[h]),N=a((e=>{h&&!e.target.closest(`.${Rt}`)&&y(!1)}),[h]);return f((()=>(document.addEventListener(\"click\",N),()=>{document.removeEventListener(\"click\",N)})),[N]),t(\"div\",{className:Rt,children:[u(i,{onClick:w,ref:b}),h&&e(\"menu\",{className:r(At,p),ref:_,style:x.popper,...E.popper,children:s})]})};var Dt=\"styles-module_host__TWpTR\",Mt=\"styles-module_cutaway__z3onG\",Bt=\"styles-module_left__8eUNX\",$t=\"styles-module_center__zdsbq\",Wt=\"styles-module_right__jiCaN\";const Vt=t=>{const{as:n=\"h1\",align:o=\"center\",cutaway:s,className:a,children:i}=t,l=r(Dt,a,{[Bt]:\"left\"===o,[$t]:\"center\"===o,[Wt]:\"right\"===o,[Mt]:s});return e(n,{...t,className:l,children:i})};var qt={host:\"styles-module_host__PlXVu\",rating:\"styles-module_rating__WDRLh\"};const Ht=n=>{const{className:o,title:s,logoIcon:i,logoIconClassName:l,handleScrollToRating:c,rating:u,startIcon:d,startIconClassName:f}=n,p=a((()=>i?e(\"div\",{className:r(qt.logoIcon,l),children:i}):null),[i,l]),m=a((()=>d?e(\"div\",{className:r(qt.startIcon,f),children:d}):null),[d,f]),h=a((()=>{c&&c()}),[c]);return t(\"div\",{role:\"button\",onClick:h,className:r(qt.host,o),children:[e(p,{}),e(re,{variant:\"body3-bold\",children:s}),t(\"div\",{className:qt.rating,children:[e(m,{}),e(re,{variant:\"body2\",children:u})]})]})};var Ft={host:\"styles-module_host__t73x-\",sectionName:\"styles-module_sectionName__aPWQl\",button:\"styles-module_button__W7SB7\"};const Ut=o=>{const{sectionName:s,onPreviousPress:i,chevronLeftIcon:l,chevronLeftIconClassName:c,showPreviousButton:u,showProgressBar:d,additionalButtonHandle:f,additionalButtonIcon:p,infoHamburgerMenuElement:m,headerNavigationClassName:h}=o,y=a((()=>l?e(\"div\",{className:r(Ft.chevronLeftIcon,c),children:l}):null),[l,c]),v=a((()=>p?e(\"div\",{className:r(Ft.additionalButtonIcon,c),children:p}):null),[p,c]),b=a((()=>m?e(\"div\",{children:m}):null),[m]),g=a((()=>{f&&f()}),[f]);return t(\"div\",{className:r(Ft.host,h),children:[m?e(b,{}):t(n,{children:[u&&e(\"button\",{onClick:i,className:Ft.button,children:e(y,{})}),d&&e(re,{className:Ft.sectionName,variant:\"body2\",children:s})]}),p&&f&&e(\"button\",{onClick:g,className:Ft.button,\"data-testid\":\"skip-button\",children:e(v,{})})]})};var zt=\"styles-module_container__LaHev\",Gt=\"styles-module_progressBar__zFwZh\",Xt=\"styles-module_progressFill__kINOL\";const Zt=({progress:t,className:n})=>{const o=100*Math.min(Math.max(0,t),1);return e(\"div\",{className:zt,children:e(\"div\",{className:r(Gt,n),children:e(\"div\",{className:Xt,style:{width:`${o}%`}})})})};var Yt=\"styles-module_host__vHUVO\",Jt=\"styles-module_progressContainer__SeW3O\",Qt=\"styles-module_progressSection__DZR0b\";const Kt=n=>{const{title:o,logoIcon:s,logoIconClassName:a,handleScrollToRating:i,rating:l,showPreviousButton:c,infoHamburgerMenuElement:u,className:d,startIcon:f,sectionName:p=\"Introduction\",showProgressBar:m,onPreviousPress:h,additionalButtonHandle:y,additionalButtonIcon:v,chevronLeftIcon:b,chevronLeftIconClassName:g,sectionsArray:_,headerNavigationClassName:x}=n,E=m&&!u;return t(\"div\",{className:Yt,children:[e(\"div\",{className:r(d),children:e(Ht,{title:o,logoIcon:s,logoIconClassName:a,handleScrollToRating:i,startIcon:f,rating:l})}),e(\"div\",{children:e(Ut,{headerNavigationClassName:x,sectionName:p,onPreviousPress:h,chevronLeftIcon:b,chevronLeftIconClassName:g,showProgressBar:E,showPreviousButton:c,additionalButtonHandle:y,additionalButtonIcon:v,infoHamburgerMenuElement:u})}),E&&e(\"div\",{className:Jt,children:_?.map((t=>e(Zt,{progress:t.value,className:r(Qt)},t.sectionName)))})]})};var en=\"styles-module_host__CG4un\",tn=\"styles-module_highlight__t0j8R\",nn=\"styles-module_simple__PHCpz\",rn=\"styles-module_startIcon__nfX6x\",on=\"styles-module_title__E5sks\";const sn=n=>{const{className:o,content:s,contentClassName:i,startIcon:l,startIconClassName:c,startIconAsImage:u,title:d,titleClassName:f,variant:p=\"highlight\"}=n,m=a((()=>u?e(\"div\",{className:r(rn,c),children:u}):l?e(\"div\",{className:r(rn,c),children:l}):null),[l,u,c]),h=r(en,o,{[tn]:\"highlight\"===p,[nn]:\"simple\"===p});return t(\"div\",{className:h,children:[e(m,{}),t(\"div\",{children:[e(re,{as:\"h4\",variant:\"body3-bold\",className:r(on,f),children:d}),e(\"span\",{className:i,children:s})]})]})};function an(){return an=Object.assign?Object.assign.bind():function(e){for(var t=1;t>\",d={array:h(\"array\"),bigint:h(\"bigint\"),bool:h(\"boolean\"),func:h(\"function\"),number:h(\"number\"),object:h(\"object\"),string:h(\"string\"),symbol:h(\"symbol\"),any:m(a),arrayOf:function(e){return m((function(t,r,o,s,a){if(\"function\"!=typeof e)return new p(\"Property `\"+a+\"` of component `\"+o+\"` has invalid PropType notation inside arrayOf.\");var i=t[r];if(!Array.isArray(i))return new p(\"Invalid \"+s+\" `\"+a+\"` of type `\"+b(i)+\"` supplied to `\"+o+\"`, expected an array.\");for(var l=0;l1?\"Invalid arguments supplied to oneOf, expected an array, got \"+arguments.length+\" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).\":\"Invalid argument supplied to oneOf, expected an array.\"),a;return m((function(t,n,r,o,s){for(var a=t[n],i=0;i0?\", expected one of type [\"+l.join(\", \")+\"]\":\"\")+\".\")}))},shape:function(e){return m((function(t,r,o,s,a){var i=t[r],l=b(i);if(\"object\"!==l)return new p(\"Invalid \"+s+\" `\"+a+\"` of type `\"+l+\"` supplied to `\"+o+\"`, expected `object`.\");for(var c in e){var u=e[c];if(\"function\"!=typeof u)return y(o,s,a,c,g(u));var d=u(i,c,o,s,a+\".\"+c,n);if(d)return d}return null}))},exact:function(e){return m((function(o,s,a,i,l){var c=o[s],u=b(c);if(\"object\"!==u)return new p(\"Invalid \"+i+\" `\"+l+\"` of type `\"+u+\"` supplied to `\"+a+\"`, expected `object`.\");var d=t({},o[s],e);for(var f in d){var m=e[f];if(r(e,f)&&\"function\"!=typeof m)return y(a,i,l,f,g(m));if(!m)return new p(\"Invalid \"+i+\" `\"+l+\"` key `\"+f+\"` supplied to `\"+a+\"`.\\nBad object: \"+JSON.stringify(o[s],null,\" \")+\"\\nValid keys: \"+JSON.stringify(Object.keys(e),null,\" \"));var h=m(c,f,a,i,l+\".\"+f,n);if(h)return h}return null}))}};function f(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function p(e,t){this.message=e,this.data=t&&\"object\"==typeof t?t:{},this.stack=\"\"}function m(e){if(\"production\"!==process.env.NODE_ENV)var t={},r=0;function o(o,a,i,c,d,f,m){if(c=c||u,f=f||i,m!==n){if(l){var h=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");throw h.name=\"Invariant Violation\",h}if(\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof console){var y=c+\":\"+i;!t[y]&&r<3&&(s(\"You are manually calling a React.PropTypes validation function for the `\"+f+\"` prop on `\"+c+\"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.\"),t[y]=!0,r++)}}return null==a[i]?o?null===a[i]?new p(\"The \"+d+\" `\"+f+\"` is marked as required in `\"+c+\"`, but its value is `null`.\"):new p(\"The \"+d+\" `\"+f+\"` is marked as required in `\"+c+\"`, but its value is `undefined`.\"):null:e(a,i,c,d,f)}var a=o.bind(null,!1);return a.isRequired=o.bind(null,!0),a}function h(e){return m((function(t,n,r,o,s,a){var i=t[n];return b(i)!==e?new p(\"Invalid \"+o+\" `\"+s+\"` of type `\"+g(i)+\"` supplied to `\"+r+\"`, expected `\"+e+\"`.\",{expectedType:e}):null}))}function y(e,t,n,r,o){return new p((e||\"React class\")+\": \"+t+\" type `\"+n+\".\"+r+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+o+\"`.\")}function v(e){switch(typeof e){case\"number\":case\"string\":case\"undefined\":return!0;case\"boolean\":return!e;case\"object\":if(Array.isArray(e))return e.every(v);if(null===e||i(e))return!0;var t=function(e){var t=e&&(c&&e[c]||e[\"@@iterator\"]);if(\"function\"==typeof t)return t}(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!v(n.value))return!1}else for(;!(n=r.next()).done;){var o=n.value;if(o&&!v(o[1]))return!1}return!0;default:return!1}}function b(e){var t=typeof e;return Array.isArray(e)?\"array\":e instanceof RegExp?\"object\":function(e,t){return\"symbol\"===e||!!t&&(\"Symbol\"===t[\"@@toStringTag\"]||\"function\"==typeof Symbol&&t instanceof Symbol)}(t,e)?\"symbol\":t}function g(e){if(null==e)return\"\"+e;var t=b(e);if(\"object\"===t){if(e instanceof Date)return\"date\";if(e instanceof RegExp)return\"regexp\"}return t}function _(e){var t=g(e);switch(t){case\"array\":case\"object\":return\"an \"+t;case\"boolean\":case\"date\":case\"regexp\":return\"a \"+t;default:return t}}return p.prototype=Error.prototype,d.checkPropTypes=o,d.resetWarningCache=o.resetWarningCache,d.PropTypes=d,d},On}function Mn(){if(Sn)return kn;Sn=1;var e=Rn();function t(){}function n(){}return n.resetWarningCache=t,kn=function(){function r(t,n,r,o,s,a){if(a!==e){var i=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw i.name=\"Invariant Violation\",i}}function o(){return r}r.isRequired=r;var s={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return s.PropTypes=s,s}}function Bn(){if(In)return fn.exports;if(In=1,\"production\"!==process.env.NODE_ENV){var e=Tn();fn.exports=Dn()(e.isElement,true)}else fn.exports=Mn()();return fn.exports}var $n=jt(Bn());function Wn(e,t){return e.replace(new RegExp(\"(^|\\\\s)\"+t+\"(?:\\\\s|$)\",\"g\"),\"$1\").replace(/\\s+/g,\" \").replace(/^\\s*|\\s*$/g,\"\")}var Vn=!1,qn=\"production\"!==process.env.NODE_ENV?$n.oneOfType([$n.number,$n.shape({enter:$n.number,exit:$n.number,appear:$n.number}).isRequired]):null,Hn=\"production\"!==process.env.NODE_ENV?$n.oneOfType([$n.string,$n.shape({enter:$n.string,exit:$n.string,active:$n.string}),$n.shape({enter:$n.string,enterDone:$n.string,enterActive:$n.string,exit:$n.string,exitDone:$n.string,exitActive:$n.string})]):null,Fn=s.createContext(null),Un=function(e){return e.scrollTop},zn=\"unmounted\",Gn=\"exited\",Xn=\"entering\",Zn=\"entered\",Yn=\"exiting\",Jn=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,s=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?s?(o=Gn,r.appearStatus=Xn):o=Zn:o=t.unmountOnExit||t.mountOnEnter?zn:Gn,r.state={status:o},r.nextCallback=null,r}un(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===zn?{status:Gn}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Xn&&n!==Zn&&(t=Xn):n!==Xn&&n!==Zn||(t=Yn)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&\"number\"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===Xn){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:h.findDOMNode(this);n&&Un(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Gn&&this.setState({status:zn})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[h.findDOMNode(this),r],s=o[0],a=o[1],i=this.getTimeouts(),l=r?i.appear:i.enter;!e&&!n||Vn?this.safeSetState({status:Zn},(function(){t.props.onEntered(s)})):(this.props.onEnter(s,a),this.safeSetState({status:Xn},(function(){t.props.onEntering(s,a),t.onTransitionEnd(l,(function(){t.safeSetState({status:Zn},(function(){t.props.onEntered(s,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:h.findDOMNode(this);t&&!Vn?(this.props.onExit(r),this.safeSetState({status:Yn},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:Gn},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:Gn},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:h.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],s=o[0],a=o[1];this.props.addEndListener(s,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===zn)return null;var t=this.props,n=t.children;t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef;var r=ln(t,[\"children\",\"in\",\"mountOnEnter\",\"unmountOnExit\",\"appear\",\"enter\",\"exit\",\"timeout\",\"addEndListener\",\"onEnter\",\"onEntering\",\"onEntered\",\"onExit\",\"onExiting\",\"onExited\",\"nodeRef\"]);return s.createElement(Fn.Provider,{value:null},\"function\"==typeof n?n(e,r):s.cloneElement(s.Children.only(n),r))},t}(s.Component);function Qn(){}Jn.contextType=Fn,Jn.propTypes=\"production\"!==process.env.NODE_ENV?{nodeRef:$n.shape({current:\"undefined\"==typeof Element?$n.any:function(e,t,n,r,o,s){var a=e[t];return $n.instanceOf(a&&\"ownerDocument\"in a?a.ownerDocument.defaultView.Element:Element)(e,t,n,r,o,s)}}),children:$n.oneOfType([$n.func.isRequired,$n.element.isRequired]).isRequired,in:$n.bool,mountOnEnter:$n.bool,unmountOnExit:$n.bool,appear:$n.bool,enter:$n.bool,exit:$n.bool,timeout:function(e){var t=qn;e.addEndListener||(t=t.isRequired);for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;oe(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"20\",fill:\"none\",viewBox:\"0 0 20 20\",className:nr.closeIcon,children:e(\"g\",{children:e(\"path\",{fillRule:\"evenodd\",d:\"M11.886 10l5-5L15 3.114l-5 5-5-5L3.114 5l5 5-5 5L5 16.886l5-5 5 5L16.886 15l-5-5z\",clipRule:\"evenodd\"})})}),or=()=>e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"38\",height:\"4\",fill:\"none\",viewBox:\"0 0 38 4\",children:e(\"rect\",{width:\"38\",height:\"4\",fill:\"#E7E4DE\",rx:\"2\"})}),sr=o=>{const{onHide:s,closeButtonAlign:i,children:l,show:m=!1,canClose:h=!0,modalContentClassName:v,mobileFullHeight:b=!1,TriggerButton:g}=o,[_,x]=d(!1),[E,w]=d(m),N=p(null),O=a((()=>{w(!0),document.body.style.cssText=\"\\n position: fixed;\\n overflow-y: auto;\\n height: 100vh;\\n width: 100vw;\\n touch-action: none;\\n -webkit-overflow-scrolling: none;\\n overflow: hidden;\\n overscroll-behavior: none;\\n \"}),[]),C=a((()=>{s&&s(),w(!1),document.body.style.cssText=\"\"}),[s]),k=a((e=>{\"Escape\"===e.code&&E&&C()}),[E,C]),S=a((()=>c(g)?u(g,{onClick:O}):null),[g,O]);return f((()=>(x(!0),()=>x(!1))),[]),f((()=>(document.addEventListener(\"keydown\",k),()=>{document.removeEventListener(\"keydown\",k)})),[k]),f((()=>{m&&O()}),[O,m]),f((()=>{!m&&E&&C()}),[m,C,E]),t(\"div\",{className:nr.host,children:[e(S,{}),e(tr,{in:E,timeout:200,classNames:\"modal\",unmountOnExit:!0,children:e(n,{children:_&&y(t(\"div\",{className:nr.modalWrapper,children:[e(\"div\",{className:nr.backdrop,onClick:h?C:()=>{}}),t(\"div\",{className:r(nr.content,v,{[nr.mobileFullHeight]:b,[nr.withoutClose]:!h}),children:[h&&e(\"div\",{className:nr.dragButton,ref:N,children:e(or,{})}),h&&e(\"button\",{className:r(nr.closeButton,{[nr.closeButtonRight]:\"right\"===i}),onClick:C,children:e(rr,{})}),t(\"div\",{className:nr.scrollWrapper,children:[\" \",l]})]})]}),document.body)})})]})};var ar=\"styles-module_container__4MDt9\",ir=\"styles-module_contentContainer__sj3SJ\",lr=\"styles-module_noGutters__-Crv0\",cr=\"styles-module_endContentNormal__sXjQe\",ur=\"styles-module_endContentFixedBottom__Eyh0V\";const dr=({className:n,contentClassName:o,backgroundColor:s,disableGutters:a,children:i,endContentPosition:l=\"normal\",endContent:c,extraContent:u,as:d=\"div\"})=>t(d,{style:{backgroundColor:s||\"transparent\"},className:r(ar,a&&lr,n),children:[e(\"div\",{className:r(ir,o),children:i}),c&&e(\"div\",{className:r(\"fixedBottom\"===l?ur:cr),children:c}),u]});export{ue as Accordion,b as Button,D as Checkbox,te as CheckboxGroup,J as CheckboxOption,dr as Container,Lt as Dropdown,le as Input,S as LoadingButton,sr as Modal,Kt as OnboardingHeader,A as RadioGroup,j as RadioOption,Vt as Title,sn as Tooltip,re as Typography};\n//# sourceMappingURL=index.js.map\n","// src/assets-utils/preload-images.ts\nvar IMAGE_SOURCE = \"/images/\";\nvar preloadImages = (images, options = {}) => {\n if (!Array.isArray(images) || images.length === 0) {\n console.warn(\"No images provided for preloading.\");\n return;\n }\n if (typeof window === \"undefined\" || typeof window.Image === \"undefined\") {\n console.warn(\"Preloading images is not supported in this environment.\");\n return;\n }\n const { basePath = IMAGE_SOURCE, onLoad, onError, onComplete } = options;\n const loaded = [];\n const failed = [];\n for (const source of images) {\n const img = new Image;\n img.onload = () => {\n loaded.push(source);\n if (onLoad)\n onLoad(`${basePath}${source}`);\n };\n img.onerror = (error) => {\n failed.push(source);\n if (onError)\n onError(`${basePath}${source}`, error);\n };\n img.src = `${basePath}${source}`;\n }\n if (onComplete) {\n const checkCompletion = () => {\n if (loaded.length + failed.length === images.length) {\n onComplete({ loaded, failed });\n }\n };\n for (const item of images) {\n const img = new Image;\n img.onload = checkCompletion;\n img.onerror = checkCompletion;\n }\n }\n};\n// src/payment-utils/currency-replacer.ts\nvar defaultCurrencyMap = {\n USD: \"$\",\n SGD: \"$\",\n HKD: \"$\",\n BRL: \"R$\",\n MXN: \"M$\",\n AUD: \"A$\",\n CAD: \"C$\",\n NZD: \"NZ$\",\n EUR: \"\\u20AC\",\n GBP: \"\\xA3\",\n RUB: \"\\u20BD\",\n CNY: \"\\xA5\",\n JPY: \"\\xA5\",\n PLN: \"z\\u0142\",\n SEK: \"kr\",\n ZAR: \"R\",\n CZK: \"K\\u010D\",\n HUF: \"Ft\",\n DKK: \"kr\",\n INR: \"\\u20B9\",\n KRW: \"\\u20A9\",\n TWD: \"NT$\",\n NOK: \"kr\",\n ILS: \"\\u20AA\",\n THB: \"\\u0E3F\",\n UAH: \"\\u20B4\"\n};\nvar currencyReplacer = (currency, customCurrencyMap = {}, defaultSymbol = null) => {\n const currencyMap = { ...defaultCurrencyMap, ...customCurrencyMap };\n return currencyMap[currency] ?? defaultSymbol ?? currency;\n};\nexport {\n preloadImages,\n currencyReplacer\n};\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { isNativeFunction, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\nconst cachedImplementations = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nfunction getNativeImplementation(\n name,\n) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n\n let impl = WINDOW[name] ;\n\n // Fast path to avoid DOM I/O\n if (isNativeFunction(impl)) {\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n }\n\n const document = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name] ;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n // Could not create sandbox iframe, just use window.xxx\n DEBUG_BUILD && logger.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n }\n }\n\n // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n if (!impl) {\n return impl;\n }\n\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n}\n\n/** Clear a cached implementation. */\nfunction clearCachedImplementation(name) {\n cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction fetch(...rest) {\n return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nfunction setTimeout(...rest) {\n return getNativeImplementation('setTimeout')(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addClickKeypressInstrumentationHandler(handler) {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nfunction instrumentDOM() {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event) {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target )._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType, target) {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler,\n globalListener = false,\n) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event) {\n try {\n return event.target ;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\n\n// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW ).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { supportsHistory };\n//# sourceMappingURL=supportsHistory.js.map\n","import { addHandler, maybeInstrument, supportsHistory, triggerHandlers, fill } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addHistoryInstrumentationHandler(handler) {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nexport { addHistoryInstrumentationHandler };\n//# sourceMappingURL=history.js.map\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addXhrInstrumentationHandler(handler) {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nfunction instrumentXHR() {\n if (!(WINDOW ).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.open = new Proxy(xhrproto.open, {\n apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n const startTimestamp = timestampInSeconds() * 1000;\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n const url = parseUrl(xhrOpenArgArray[1]);\n\n if (!method || !url) {\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n }\n\n xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n xhrOpenThisArg.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (xhrOpenThisArg.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhrOpenThisArg.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData = {\n endTimestamp: timestampInSeconds() * 1000,\n startTimestamp,\n xhr: xhrOpenThisArg,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n onreadystatechangeHandler();\n return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n },\n });\n } else {\n xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n apply(\n originalSetRequestHeader,\n setRequestHeaderThisArg,\n setRequestHeaderArgArray,\n ) {\n const [header, value] = setRequestHeaderArgArray;\n\n const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n },\n });\n\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.send = new Proxy(xhrproto.send, {\n apply(originalSend, sendThisArg, sendArgArray) {\n const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(sendThisArg, sendArgArray);\n }\n\n if (sendArgArray[0] !== undefined) {\n sentryXhrData.body = sendArgArray[0];\n }\n\n const handlerData = {\n startTimestamp: timestampInSeconds() * 1000,\n xhr: sendThisArg,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(sendThisArg, sendArgArray);\n },\n });\n}\n\nfunction parseUrl(url) {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url ).toString();\n } catch (e2) {} // eslint-disable-line no-empty\n\n return undefined;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n if (typeof wrapper === 'function') {\n return wrapper;\n } else {\n // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n // that something messed with it. In that case we want to return the originally passed function.\n return fn;\n }\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n \"undefined is not an object (evaluating 'a.L')\", // Random error that happens but not actionable or noticeable to end-users.\n 'can\\'t redefine non-configurable property \"solana\"', // Probably a browser extension or custom browser (Brave) throwing this error\n \"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\", // Error thrown by GTM, seemingly not affecting end-users\n \"Can't find variable: _AutofillCallbackHandler\", // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n];\n\n/** Options for the InboundFilters integration */\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) ;\n\nconst inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n if (event.type) {\n // event is not an error\n return false;\n }\n\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception || !event.exception.values || event.exception.values.length === 0) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { inboundFiltersIntegration };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch (e) {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getFramesFromEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) ;\n\n/**\n * Deduplication filter.\n */\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = getFramesFromEvent(currentEvent);\n let previousFrames = getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameA = previousFrames[i];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n//# sourceMappingURL=dedupe.js.map\n","import { logger, consoleSandbox } from '@sentry/utils';\nimport { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n client.init();\n return client;\n}\n\n/**\n * Make the given client the current client.\n */\nfunction setCurrentClient(client) {\n getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n//# sourceMappingURL=sdk.js.map\n","import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { makeDsn, logger, uuid4, checkOrSetAlreadyCaught, isParameterizedString, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, dropUndefinedKeys, rejectedSyncPromise, SentryError, createClientReportEnvelope, dsnToString, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n this.eventFromException(exception, hintWithEventId).then(event =>\n this._captureEvent(event, hintWithEventId, scope),\n ),\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n this.emit('flush');\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n });\n }\n\n /** Get all installed event processors. */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /** @inheritdoc */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * @inheritDoc\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n const promise = this.sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, eventOrCount) {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n on(hook, callback) {\n const hooks = (this._hooks[hook] = this._hooks[hook] || []);\n\n // @ts-expect-error We assue the types are correct\n hooks.push(callback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n // @ts-expect-error We assue the types are correct\n const cbIndex = hooks.indexOf(callback);\n if (cbIndex > -1) {\n hooks.splice(cbIndex, 1);\n }\n };\n }\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * @inheritdoc\n */\n sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n return reason;\n });\n }\n\n DEBUG_BUILD && logger.error('Transport disabled');\n\n return resolvedSyncPromise({});\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope = getIsolationScope(),\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(currentScope ? currentScope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: dropUndefinedKeys({\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n }),\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && Math.random() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, currentScope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = currentScope && currentScope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && logger.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event)) {\n if (event.spans && beforeSendSpan) {\n const processedSpans = [];\n for (const span of event.spans) {\n const processedSpan = beforeSendSpan(span);\n if (processedSpan) {\n processedSpans.push(processedSpan);\n } else {\n client.recordDroppedEvent('before_send', 'span');\n }\n }\n event.spans = processedSpans;\n }\n\n if (beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { getClient } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, isParameterizedString, normalizeToSize, extractExceptionKeysForMessage } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: extractType(ex),\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n // If we can, we extract an exception from the object properties\n const errorFromProp = getErrorPropertyFromObject(exception);\n\n const extra = {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n };\n\n if (errorFromProp) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, errorFromProp)],\n },\n extra,\n };\n }\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n } ,\n ],\n },\n extra,\n } ;\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const skipLines = getSkipFirstStackStringLines(ex);\n const framesToPop = getPopFirstTopFrames(ex);\n\n try {\n return stackParser(stacktrace, skipLines, framesToPop);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex) {\n if (ex && reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n return 0;\n}\n\n// https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/Exception\n// @ts-expect-error - WebAssembly.Exception is a valid class\nfunction isWebAssemblyException(exception) {\n // Check for support\n // @ts-expect-error - WebAssembly.Exception is a valid class\n if (typeof WebAssembly !== 'undefined' && typeof WebAssembly.Exception !== 'undefined') {\n // @ts-expect-error - WebAssembly.Exception is a valid class\n return exception instanceof WebAssembly.Exception;\n } else {\n return false;\n }\n}\n\n/**\n * Extracts from errors what we use as the exception `type` in error events.\n *\n * Usually, this is the `name` property on Error objects but WASM errors need to be treated differently.\n */\nfunction extractType(ex) {\n const name = ex && ex.name;\n\n // The name for WebAssembly.Exception Errors needs to be extracted differently.\n // Context: https://github.com/getsentry/sentry-javascript/issues/13787\n if (!name && isWebAssemblyException(ex)) {\n // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n const hasTypeInMessage = ex.message && Array.isArray(ex.message) && ex.message.length == 2;\n return hasTypeInMessage ? ex.message[0] : 'WebAssembly.Exception';\n }\n\n return name;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n\n if (!message) {\n return 'No error message';\n }\n\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n\n // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n if (isWebAssemblyException(ex) && Array.isArray(ex.message) && ex.message.length == 2) {\n return ex.message[1];\n }\n\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\nfunction eventFromString(\n stackParser,\n message,\n syntheticException,\n attachStacktrace,\n) {\n const event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception,\n { isUnhandledRejection },\n) {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nexport { eventFromException, eventFromMessage, eventFromUnknownInput, exceptionFromError, extractMessage, extractType };\n//# sourceMappingURL=eventbuilder.js.map\n","import { dsnToString, createEnvelope } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nfunction createUserFeedbackEnvelope(\n feedback,\n {\n metadata,\n tunnel,\n dsn,\n }\n\n,\n) {\n const headers = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback) {\n const feedbackHeaders = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n\nexport { createUserFeedbackEnvelope };\n//# sourceMappingURL=userfeedback.js.map\n","import { BaseClient, applySdkMetadata } from '@sentry/core';\nimport { getSDKSource, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const opts = {\n // We default this to true, as it is the safer scenario\n parentSpanIsAlwaysRootSpan: true,\n ...options,\n };\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n super(opts);\n\n if (opts.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { CONSOLE_LEVELS, originalConsoleMethods } from '../logger.js';\nimport { fill } from '../object.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n","/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n","import { addClickKeypressInstrumentationHandler, addXhrInstrumentationHandler, addHistoryInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { defineIntegration, getClient, addBreadcrumb } from '@sentry/core';\nimport { addConsoleInstrumentationHandler, addFetchInstrumentationHandler, getEventDescription, logger, htmlTreeAsString, getComponentName, severityLevelFromString, safeJoin, getBreadcrumbLogLevelFromHttpStatusCode, parseUrl } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) ;\n\nconst breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client) {\n return function addSentryBreadcrumb(event) {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client,\n dom,\n) {\n return function _innerDomBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event ;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client) {\n return function _consoleBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client) {\n return function _xhrBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data = {\n method,\n url,\n status_code,\n };\n\n const hint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n const level = getBreadcrumbLogLevelFromHttpStatusCode(status_code);\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client) {\n return function _fetchBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data = handlerData.fetchData;\n const hint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response ;\n const data = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n const level = getBreadcrumbLogLevelFromHttpStatusCode(data.status_code);\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client) {\n return function _historyBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event) {\n return !!event && !!(event ).target;\n}\n\nexport { breadcrumbsIntegration };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'BrowserApiErrors';\n\nconst _browserApiErrorsIntegration = ((options = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) ;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nconst browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original,)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { browserApiErrorsIntegration };\n//# sourceMappingURL=browserapierrors.js.map\n","import { defineIntegration, getClient, captureEvent } from '@sentry/core';\nimport { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, isPrimitive, isString, getLocationHref, UNKNOWN_FUNCTION, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) ;\n\nconst globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client) {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event = _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client) {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e );\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error) {\n if (isPrimitive(error)) {\n return error;\n }\n\n // dig the object of the rejection out of known event types\n try {\n\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in (error )) {\n return (error ).reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n if ('detail' in (error ) && 'reason' in (error ).detail) {\n return (error ).detail.reason;\n }\n } catch (e2) {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: UNKNOWN_FUNCTION,\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions() {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n\nexport { globalHandlersIntegration };\n//# sourceMappingURL=globalhandlers.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nconst httpContextIntegration = defineIntegration(() => {\n return {\n name: 'HttpContext',\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n});\n\nexport { httpContextIntegration };\n//# sourceMappingURL=httpcontext.js.map\n","import { isInstanceOf } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n maxValueLimit = 250,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions, maxValueLength) {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n","import { defineIntegration } from '@sentry/core';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) ;\n\n/**\n * Aggregrate linked errors in an event.\n */\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n","import { createStackParser, UNKNOWN_FUNCTION } from '@sentry/utils';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func === '' ? UNKNOWN_FUNCTION : func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn = line => {\n // If the stack line has no function name, we need to parse it differently\n const noFnParts = chromeRegexNoFnName.exec(line) ;\n\n if (noFnParts) {\n const [, filename, line, col] = noFnParts;\n return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n }\n\n const parts = chromeRegex.exec(line) ;\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line) ;\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line) ;\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line) ;\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line) ;\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? (func.split('@')[0] ) : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0] || Promise.resolve(undefined);\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, SentryError, logger, serializeEnvelope, updateRateLimits } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', dataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise({});\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item, type) {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item )[1] : undefined;\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { getNativeImplementation, clearCachedImplementation } from '@sentry-internal/browser-utils';\nimport { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeImplementation('fetch'),\n) {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request) {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n if (!nativeFetch) {\n clearCachedImplementation('fetch');\n return rejectedSyncPromise('No fetch implementation available');\n }\n\n try {\n // TODO: This may need a `suppresTracing` call in the future when we switch the browser SDK to OTEL\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedImplementation('fetch');\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { inboundFiltersIntegration, functionToStringIntegration, dedupeIntegration, getIntegrationsToSetup, initAndBind, getCurrentScope, lastEventId, getReportDialogEndpoint, startSession, captureSession, getClient } from '@sentry/core';\nimport { consoleSandbox, supportsFetch, logger, stackParserFromStackParserOptions } from '@sentry/utils';\nimport { addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\nimport { BrowserClient } from './client.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './helpers.js';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs.js';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors.js';\nimport { globalHandlersIntegration } from './integrations/globalhandlers.js';\nimport { httpContextIntegration } from './integrations/httpcontext.js';\nimport { linkedErrorsIntegration } from './integrations/linkederrors.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\n\n/** Get the default integrations for the browser SDK. */\nfunction getDefaultIntegrations(_options) {\n /**\n * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n * `getDefaultIntegrations` but with an adjusted set of integrations.\n */\n return [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n ];\n}\n\nfunction applyDefaultOptions(optionsArg = {}) {\n const defaultOptions = {\n defaultIntegrations: getDefaultIntegrations(),\n release:\n typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n ? __SENTRY_RELEASE__\n : WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id // This supports the variable that sentry-webpack-plugin injects\n ? WINDOW.SENTRY_RELEASE.id\n : undefined,\n autoSessionTracking: true,\n sendClientReports: true,\n };\n\n // TODO: Instead of dropping just `defaultIntegrations`, we should simply\n // call `dropUndefinedKeys` on the entire `optionsArg`.\n // However, for this to work we need to adjust the `hasTracingEnabled()` logic\n // first as it differentiates between `undefined` and the key not being in the object.\n if (optionsArg.defaultIntegrations == null) {\n delete optionsArg.defaultIntegrations;\n }\n\n return { ...defaultOptions, ...optionsArg };\n}\n\nfunction shouldShowBrowserExtensionError() {\n const windowWithMaybeExtension =\n typeof WINDOW.window !== 'undefined' && (WINDOW );\n if (!windowWithMaybeExtension) {\n // No need to show the error if we're not in a browser window environment (e.g. service workers)\n return false;\n }\n\n const extensionKey = windowWithMaybeExtension.chrome ? 'chrome' : 'browser';\n const extensionObject = windowWithMaybeExtension[extensionKey];\n\n const runtimeId = extensionObject && extensionObject.runtime && extensionObject.runtime.id;\n const href = (WINDOW.location && WINDOW.location.href) || '';\n\n const extensionProtocols = ['chrome-extension:', 'moz-extension:', 'ms-browser-extension:', 'safari-web-extension:'];\n\n // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n const isDedicatedExtensionPage =\n !!runtimeId && WINDOW === WINDOW.top && extensionProtocols.some(protocol => href.startsWith(`${protocol}//`));\n\n // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n // see: https://github.com/getsentry/sentry-javascript/issues/12668\n const isNWjs = typeof windowWithMaybeExtension.nw !== 'undefined';\n\n return !!runtimeId && !isDedicatedExtensionPage && !isNWjs;\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(browserOptions = {}) {\n const options = applyDefaultOptions(browserOptions);\n\n if (shouldShowBrowserExtensionError()) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(\n '[Sentry] You cannot run Sentry this way in a browser extension, check: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n );\n });\n return;\n }\n\n if (DEBUG_BUILD) {\n if (!supportsFetch()) {\n logger.warn(\n 'No Fetch API detected. The Sentry SDK requires a Fetch API compatible environment to send events. Please add a Fetch API polyfill.',\n );\n }\n }\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || makeFetchTransport,\n };\n\n const client = initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n\n return client;\n}\n\n/**\n * All properties the report dialog supports\n */\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const scope = getCurrentScope();\n const client = scope.getClient();\n const dsn = client && client.getDsn();\n\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n const eventId = lastEventId();\n if (eventId) {\n options.eventId = eventId;\n }\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event) => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\nfunction captureUserFeedback(feedback) {\n const client = getClient();\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n client.captureUserFeedback(feedback);\n }\n}\n\nexport { captureUserFeedback, forceLoad, getDefaultIntegrations, init, onLoad, showReportDialog };\n//# sourceMappingURL=sdk.js.map\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","import { isThenable } from '@sentry/utils';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { dateTimestampInSeconds, consoleSandbox } from '@sentry/utils';\nimport { getClient, getIsolationScope } from './currentScopes.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { GLOBAL_OBJ, SDK_VERSION } from '@sentry/utils';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\nexport { getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { spanToJSON } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n }\n\n // For the moment we'll obtain the DSC from the first span in the array\n // This might need to be changed if we permit sending multiple spans from\n // different segments in one envelope\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n const headers = {\n sent_at: new Date().toISOString(),\n ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const beforeSendSpan = client && client.getOptions().beforeSendSpan;\n const convertToSpanJSON = beforeSendSpan\n ? (span) => beforeSendSpan(spanToJSON(span) )\n : (span) => spanToJSON(span);\n\n const items = [];\n for (const span of spans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n\n return createEnvelope(headers, items);\n}\n\nexport { createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { logger, uuid4, timestampInSeconds, isThenable, GLOBAL_OBJ } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getCurrentScope, getIsolationScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception,\n hint,\n) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return !!client && client.getOptions().enabled !== false && !!client.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","import { arrayify, logger } from '@sentry/utils';\nimport { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex > -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1) ;\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1 && typeof integration.setupOnce === 'function') {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) ;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) ;\n\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n const client = getClient();\n\n if (!client) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\n\nconst METRICS_SPAN_FIELD = '_sentryMetrics';\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nfunction getMetricSummaryJsonForSpan(span) {\n const storage = (span )[METRICS_SPAN_FIELD];\n\n if (!storage) {\n return undefined;\n }\n const output = {};\n\n for (const [, [exportKey, summary]] of storage) {\n const arr = output[exportKey] || (output[exportKey] = []);\n arr.push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on a span.\n */\nfunction updateMetricSummaryOnSpan(\n span,\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const existingStorage = (span )[METRICS_SPAN_FIELD];\n const storage =\n existingStorage ||\n ((span )[METRICS_SPAN_FIELD] = new Map());\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n}\n\nexport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan };\n//# sourceMappingURL=metric-summary.js.map\n","import { generatePropagationContext, isPlainObject, dateTimestampInSeconds, uuid4, logger } from '@sentry/utils';\nimport { updateSession } from './session.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n// NOTE: By exporting this here as const & type, instead of doing `export class`,\n// We can get the correct class when importing from `@sentry/core`, but the original type (from `@sentry/types`)\n// This is helpful for interop, e.g. when doing `import type { Scope } from '@sentry/node';` (which re-exports this)\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * The id of the profile that this span occured in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { dropUndefinedKeys, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, addNonEnumerableProperty } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client);\n\n const rootSpan = getRootSpan(span);\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return frozenDsc;\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceState = rootSpan.spanContext().traceState;\n const traceStateDsc = traceState && traceState.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return dscOnTraceState;\n }\n\n // Else, we generate it from the span\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data || {};\n const maybeSampleRate = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = jsonSpan.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasTracingEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasTracingEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n }\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n // eslint-disable-next-line deprecation/deprecation\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n//# sourceMappingURL=hasTracingEnabled.js.map\n","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\n/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate,\n )} of type ${JSON.stringify(typeof sampleRate)}.`,\n );\n return undefined;\n }\n\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","import { SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { dropUndefinedKeys, arrayify } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=applyScopeDataToEvent.js.map\n","import { uuid4, dateTimestampInSeconds, addExceptionMechanism, truncate, GLOBAL_OBJ, normalize } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.entries(debugIdMap).reduce(\n (acc, [debugIdStackTrace, debugIdValue]) => {\n let parsedStack;\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdValue;\n break;\n }\n }\n return acc;\n },\n {},\n );\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(\n scope,\n captureContext,\n) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint,\n) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { SDK_VERSION } from '@sentry/utils';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n","import { addNonEnumerableProperty } from '@sentry/utils';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds, addNonEnumerableProperty } from '@sentry/utils';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { parent_span_id } = spanToJSON(span);\n\n return dropUndefinedKeys({ parent_span_id, span_id, trace_id });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n try {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(span),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n return {\n span_id,\n trace_id,\n };\n } catch (e) {\n return {};\n }\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nfunction updateMetricSummaryOnActiveSpan(\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const span = getActiveSpan();\n if (span) {\n updateMetricSummaryOnSpan(span, metricType, sanitizedName, value, unit, tags, bucketKey);\n }\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateMetricSummaryOnActiveSpan };\n//# sourceMappingURL=spanUtils.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precendence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { consoleSandbox, logger } from './logger.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.encodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.encodePolyfill(input)\n : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.decodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.decodePolyfill(input)\n : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(decodeUTF8(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: 'span',\n };\n\n return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n profile_chunk: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { isError } from '../is.js';\nimport { fill, addNonEnumerableProperty } from '../object.js';\nimport { supportsNativeFetch } from '../supports.js';\nimport { timestampInSeconds } from '../time.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addFetchInstrumentationHandler(\n handler,\n skipNativeFetchCheck,\n) {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nfunction addFetchEndInstrumentationHandler(handler) {\n const type = 'fetch-body-resolved';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved, skipNativeFetchCheck = false) {\n if (skipNativeFetchCheck && !supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch) {\n return function (...args) {\n const { method, url } = parseFetchArgs(args);\n const handlerData = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: timestampInSeconds() * 1000,\n };\n\n // if there is no callback, fetch is instrumented directly\n if (!onFetchResolved) {\n triggerHandlers('fetch', {\n ...handlerData,\n });\n }\n\n // We capture the stack right here and not in the Promise error callback because Safari (and probably other\n // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n const virtualStackTrace = new Error().stack;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n async (response) => {\n if (onFetchResolved) {\n onFetchResolved(response);\n } else {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n }\n\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n error,\n });\n\n if (isError(error) && error.stack === undefined) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n error.stack = virtualStackTrace;\n addNonEnumerableProperty(error, 'framesToPop', 1);\n }\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nasync function resolveResponse(res, onFinishedResolving) {\n if (res && res.body) {\n const body = res.body;\n const responseReader = body.getReader();\n\n // Define a maximum duration after which we just cancel\n const maxFetchDurationTimeout = setTimeout(\n () => {\n body.cancel().then(null, () => {\n // noop\n });\n },\n 90 * 1000, // 90s\n );\n\n let readingActive = true;\n while (readingActive) {\n let chunkTimeout;\n try {\n // abort reading if read op takes more than 5s\n chunkTimeout = setTimeout(() => {\n body.cancel().then(null, () => {\n // noop on error\n });\n }, 5000);\n\n // This .read() call will reject/throw when we abort due to timeouts through `body.cancel()`\n const { done } = await responseReader.read();\n\n clearTimeout(chunkTimeout);\n\n if (done) {\n onFinishedResolving();\n readingActive = false;\n }\n } catch (error) {\n readingActive = false;\n } finally {\n clearTimeout(chunkTimeout);\n }\n }\n\n clearTimeout(maxFetchDurationTimeout);\n\n responseReader.releaseLock();\n body.cancel().then(null, () => {\n // noop on error\n });\n }\n}\n\nfunction streamHandler(response) {\n // clone response for awaiting stream\n let clonedResponseForResolving;\n try {\n clonedResponseForResolving = response.clone();\n } catch (e) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resolveResponse(clonedResponseForResolving, () => {\n triggerHandlers('fetch-body-resolved', {\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n });\n}\n\nfunction hasProp(obj, prop) {\n return !!obj && typeof obj === 'object' && !!(obj )[prop];\n}\n\nfunction getUrlFromResource(resource) {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nfunction parseFetchArgs(fetchArgs) {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs ;\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg ),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=fetch.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { logger } from '../logger.js';\nimport { getFunctionName } from '../stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** JSDoc */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n//# sourceMappingURL=logger.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.getOwnPropertyNames(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch (e) {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { uuid4 } from './misc.js';\n\n/**\n * Returns a new minimal propagation context\n */\nfunction generatePropagationContext() {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n\nexport { generatePropagationContext };\n//# sourceMappingURL=propagationContext.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = Date.now()) {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
    ,
    ,..\n * where each
    is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isVueViewModel, isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { logger } from './logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFunction(func) {\n return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFunction(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFunction(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport { isNativeFunction, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init2() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init3() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init4() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","import { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { uuid4 } from './misc.js';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nconst TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nfunction propagationContextFromHeaders(\n sentryTrace,\n baggage,\n) {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nfunction generateSentryTraceHeader(\n traceId = uuid4(),\n spanId = uuid4().substring(16),\n sampled,\n) {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, propagationContextFromHeaders };\n//# sourceMappingURL=tracing.js.map\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\nexport { getNumberOfUrlSegments, getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","const SDK_VERSION = '8.34.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './version.js';\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const versionedCarrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n return versionedCarrier[name] || (versionedCarrier[name] = creator());\n}\n\nexport { GLOBAL_OBJ, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n this.listeners.forEach((listener) => {\n listener();\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { canFetch, createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#defaultOptions = config.defaultOptions;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n #observers;\n #defaultOptions;\n #mutationCache;\n #retryer;\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.#retryer.promise;\n };\n const restored = this.state.status === \"pending\";\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables\n });\n }\n }\n const data = await executeMutation();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/notifyManager.ts\nimport { scheduleMicrotask } from \"./utils.js\";\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n const batch = (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n };\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n const batchCalls = (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n const setNotifyFunction = (fn) => {\n notifyFn = fn;\n };\n const setBatchNotifyFunction = (fn) => {\n batchNotifyFn = fn;\n };\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class {\n constructor(options) {\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== \"always\" && !onlineManager.isOnline();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n promiseResolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n promiseReject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause();\n if (canContinue) {\n continueResolve(value);\n }\n return canContinue;\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n if (shouldPause()) {\n return pause();\n }\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in window;\nfunction noop() {\n return void 0;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (typeof fetchStatus !== \"undefined\" && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nexport {\n addToEnd,\n addToStart,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n scheduleMicrotask,\n shallowEqualObjects,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ React.createElement(QueryClientContext.Provider, { value: client }, children);\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.#currentResult = void 0;\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n #client;\n #currentResult;\n #currentMutation;\n #mutateOptions;\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n this.#currentMutation?.setOptions(this.options);\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables,\n this.#currentResult.context\n );\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables,\n this.#currentResult.context\n );\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables,\n this.#currentResult.context\n );\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n this.#currentResult.variables,\n this.#currentResult.context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nfunction noop() {\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","// src/queryObserver.ts\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { canFetch } from \"./retryer.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.#currentQuery = void 0;\n this.#currentQueryInitialState = void 0;\n this.#currentResult = void 0;\n this.#trackedProps = /* @__PURE__ */ new Set();\n this.#client = client;\n this.options = options;\n this.#selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery;\n #currentQueryInitialState;\n #currentResult;\n #currentResultState;\n #currentResultOptions;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps;\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n if (typeof this.options.enabled !== \"undefined\" && typeof this.options.enabled !== \"boolean\") {\n throw new Error(\"Expected enabled to be a boolean\");\n }\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n this.#updateQuery();\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n if (isServer || this.#currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime\n );\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || this.options.enabled === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let { error, errorUpdatedAt, fetchStatus, status } = state;\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? \"fetching\" : \"paused\";\n if (!state.dataUpdatedAt) {\n status = \"pending\";\n }\n }\n if (options._optimisticResults === \"isRestoring\") {\n fetchStatus = \"idle\";\n }\n }\n if (options.select && typeof state.data !== \"undefined\") {\n if (prevResult && state.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = state.data;\n }\n if (typeof options.placeholderData !== \"undefined\" && typeof data === \"undefined\" && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && typeof placeholderData !== \"undefined\") {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (typeof placeholderData !== \"undefined\") {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const result = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch\n };\n return result;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ React.createElement(QueryErrorResetBoundaryContext.Provider, { value }, typeof children === \"function\" ? children(value) : children);\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => typeof query.state.data === \"undefined\";\nvar ensureStaleTime = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result, isRestoring) => defaultedOptions?.suspense && willFetch(result, isRestoring);\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureStaleTime,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { notifyManager } from \"@tanstack/query-core\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { ensureStaleTime, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: observer.getCurrentQuery()\n })) {\n throw result.error;\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nexport {\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.9\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use client';\nimport ReactExports, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCallback } from 'react';\nimport { getDefaultStore, createStore } from 'jotai/vanilla';\n\nconst StoreContext = createContext(\n void 0\n);\nconst useStore = (options) => {\n const store = useContext(StoreContext);\n return (options == null ? void 0 : options.store) || store || getDefaultStore();\n};\nconst Provider = ({\n children,\n store\n}) => {\n const storeRef = useRef(void 0);\n if (!store && !storeRef.current) {\n storeRef.current = createStore();\n }\n return createElement(\n StoreContext.Provider,\n {\n value: store || storeRef.current\n },\n children\n );\n};\n\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nconst attachPromiseMeta = (promise) => {\n promise.status = \"pending\";\n promise.then(\n (v) => {\n promise.status = \"fulfilled\";\n promise.value = v;\n },\n (e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n }\n );\n};\nconst use = ReactExports.use || ((promise) => {\n if (promise.status === \"pending\") {\n throw promise;\n } else if (promise.status === \"fulfilled\") {\n return promise.value;\n } else if (promise.status === \"rejected\") {\n throw promise.reason;\n } else {\n attachPromiseMeta(promise);\n throw promise;\n }\n});\nconst continuablePromiseMap = /* @__PURE__ */ new WeakMap();\nconst createContinuablePromise = (promise) => {\n let continuablePromise = continuablePromiseMap.get(promise);\n if (!continuablePromise) {\n continuablePromise = new Promise((resolve, reject) => {\n let curr = promise;\n const onFulfilled = (me) => (v) => {\n if (curr === me) {\n resolve(v);\n }\n };\n const onRejected = (me) => (e) => {\n if (curr === me) {\n reject(e);\n }\n };\n const registerCancelHandler = (p) => {\n if (\"onCancel\" in p && typeof p.onCancel === \"function\") {\n p.onCancel((nextValue) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && nextValue === p) {\n throw new Error(\"[Bug] p is not updated even after cancelation\");\n }\n if (isPromiseLike(nextValue)) {\n continuablePromiseMap.set(nextValue, continuablePromise);\n curr = nextValue;\n nextValue.then(onFulfilled(nextValue), onRejected(nextValue));\n registerCancelHandler(nextValue);\n } else {\n resolve(nextValue);\n }\n });\n }\n };\n promise.then(onFulfilled(promise), onRejected(promise));\n registerCancelHandler(promise);\n });\n continuablePromiseMap.set(promise, continuablePromise);\n }\n return continuablePromise;\n};\nfunction useAtomValue(atom, options) {\n const store = useStore(options);\n const [[valueFromReducer, storeFromReducer, atomFromReducer], rerender] = useReducer(\n (prev) => {\n const nextValue = store.get(atom);\n if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {\n return prev;\n }\n return [nextValue, store, atom];\n },\n void 0,\n () => [store.get(atom), store, atom]\n );\n let value = valueFromReducer;\n if (storeFromReducer !== store || atomFromReducer !== atom) {\n rerender();\n value = store.get(atom);\n }\n const delay = options == null ? void 0 : options.delay;\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n if (typeof delay === \"number\") {\n const value2 = store.get(atom);\n if (isPromiseLike(value2)) {\n attachPromiseMeta(createContinuablePromise(value2));\n }\n setTimeout(rerender, delay);\n return;\n }\n rerender();\n });\n rerender();\n return unsub;\n }, [store, atom, delay]);\n useDebugValue(value);\n if (isPromiseLike(value)) {\n const promise = createContinuablePromise(value);\n return use(promise);\n }\n return value;\n}\n\nfunction useSetAtom(atom, options) {\n const store = useStore(options);\n const setAtom = useCallback(\n (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !(\"write\" in atom)) {\n throw new Error(\"not writable atom\");\n }\n return store.set(atom, ...args);\n },\n [store, atom]\n );\n return setAtom;\n}\n\nfunction useAtom(atom, options) {\n return [\n useAtomValue(atom, options),\n // We do wrong type assertion here, which results in throwing an error.\n useSetAtom(atom, options)\n ];\n}\n\nexport { Provider, useAtom, useAtomValue, useSetAtom, useStore };\n","const isSelfAtom = (atom, a) => atom.unstable_is ? atom.unstable_is(a) : a === atom;\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst isActuallyWritableAtom = (atom) => !!atom.write;\nconst isAtomStateInitialized = (atomState) => \"v\" in atomState || \"e\" in atomState;\nconst returnAtomValue = (atomState) => {\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !(\"v\" in atomState)) {\n throw new Error(\"[Bug] atom state is not initialized\");\n }\n return atomState.v;\n};\nconst PROMISE_STATE = Symbol();\nconst getPromiseState = (promise) => promise[PROMISE_STATE];\nconst isPendingPromise = (value) => {\n var _a;\n return isPromiseLike(value) && !((_a = getPromiseState(value)) == null ? void 0 : _a[1]);\n};\nconst cancelPromise = (promise, nextValue) => {\n const promiseState = getPromiseState(promise);\n if (promiseState) {\n promiseState[1] = true;\n promiseState[0].forEach((fn) => fn(nextValue));\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n throw new Error(\"[Bug] cancelable promise not found\");\n }\n};\nconst patchPromiseForCancelability = (promise) => {\n if (getPromiseState(promise)) {\n return;\n }\n const promiseState = [/* @__PURE__ */ new Set(), false];\n promise[PROMISE_STATE] = promiseState;\n const settle = () => {\n promiseState[1] = true;\n };\n promise.then(settle, settle);\n promise.onCancel = (fn) => {\n promiseState[0].add(fn);\n };\n};\nconst isPromiseLike = (p) => typeof (p == null ? void 0 : p.then) === \"function\";\nconst addPendingPromiseToDependency = (atom, promise, dependencyAtomState) => {\n if (!dependencyAtomState.p.has(atom)) {\n dependencyAtomState.p.add(atom);\n promise.then(\n () => {\n dependencyAtomState.p.delete(atom);\n },\n () => {\n dependencyAtomState.p.delete(atom);\n }\n );\n }\n};\nconst setAtomStateValueOrPromise = (atom, valueOrPromise, ensureAtomState) => {\n const atomState = ensureAtomState(atom);\n const hasPrevValue = \"v\" in atomState;\n const prevValue = atomState.v;\n const pendingPromise = isPendingPromise(atomState.v) ? atomState.v : null;\n if (isPromiseLike(valueOrPromise)) {\n patchPromiseForCancelability(valueOrPromise);\n for (const a of atomState.d.keys()) {\n addPendingPromiseToDependency(atom, valueOrPromise, ensureAtomState(a));\n }\n }\n atomState.v = valueOrPromise;\n delete atomState.e;\n if (!hasPrevValue || !Object.is(prevValue, atomState.v)) {\n ++atomState.n;\n if (pendingPromise) {\n cancelPromise(pendingPromise, valueOrPromise);\n }\n }\n};\nconst getMountedOrPendingDependents = (atom, atomState, mountedMap) => {\n var _a;\n const dependents = /* @__PURE__ */ new Set();\n for (const a of ((_a = mountedMap.get(atom)) == null ? void 0 : _a.t) || []) {\n if (mountedMap.has(a)) {\n dependents.add(a);\n }\n }\n for (const atomWithPendingPromise of atomState.p) {\n dependents.add(atomWithPendingPromise);\n }\n return dependents;\n};\nconst createStoreHook = () => {\n const callbacks = /* @__PURE__ */ new Set();\n const notify = () => {\n callbacks.forEach((fn) => fn());\n };\n notify.add = (fn) => {\n callbacks.add(fn);\n return () => {\n callbacks.delete(fn);\n };\n };\n return notify;\n};\nconst createStoreHookForAtoms = () => {\n const all = {};\n const callbacks = /* @__PURE__ */ new WeakMap();\n const notify = (atom) => {\n var _a, _b;\n (_a = callbacks.get(all)) == null ? void 0 : _a.forEach((fn) => fn(atom));\n (_b = callbacks.get(atom)) == null ? void 0 : _b.forEach((fn) => fn());\n };\n notify.add = (atom, fn) => {\n const key = atom || all;\n const fns = (callbacks.has(key) ? callbacks : callbacks.set(key, /* @__PURE__ */ new Set())).get(key);\n fns.add(fn);\n return () => {\n fns == null ? void 0 : fns.delete(fn);\n if (!fns.size) {\n callbacks.delete(key);\n }\n };\n };\n return notify;\n};\nconst initializeStoreHooks = (storeHooks) => {\n storeHooks.c || (storeHooks.c = createStoreHookForAtoms());\n storeHooks.m || (storeHooks.m = createStoreHookForAtoms());\n storeHooks.u || (storeHooks.u = createStoreHookForAtoms());\n storeHooks.f || (storeHooks.f = createStoreHook());\n return storeHooks;\n};\nconst BUILDING_BLOCKS = Symbol();\nconst getBuildingBlocks = (store) => store[BUILDING_BLOCKS];\nconst buildStore = (atomStateMap = /* @__PURE__ */ new WeakMap(), mountedMap = /* @__PURE__ */ new WeakMap(), invalidatedAtoms = /* @__PURE__ */ new WeakMap(), changedAtoms = /* @__PURE__ */ new Set(), mountCallbacks = /* @__PURE__ */ new Set(), unmountCallbacks = /* @__PURE__ */ new Set(), storeHooks = {}, atomRead = (atom, ...params) => atom.read(...params), atomWrite = (atom, ...params) => atom.write(...params), atomOnInit = (atom, store) => {\n var _a;\n return (_a = atom.unstable_onInit) == null ? void 0 : _a.call(atom, store);\n}, atomOnMount = (atom, setAtom) => {\n var _a;\n return (_a = atom.onMount) == null ? void 0 : _a.call(atom, setAtom);\n}, ...buildingBlockFunctions) => {\n const ensureAtomState = buildingBlockFunctions[0] || ((atom) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !atom) {\n throw new Error(\"Atom is undefined or null\");\n }\n let atomState = atomStateMap.get(atom);\n if (!atomState) {\n atomState = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 };\n atomStateMap.set(atom, atomState);\n atomOnInit == null ? void 0 : atomOnInit(atom, store);\n }\n return atomState;\n });\n const flushCallbacks = buildingBlockFunctions[1] || (() => {\n let hasError;\n let error;\n const call = (fn) => {\n try {\n fn();\n } catch (e) {\n if (!hasError) {\n hasError = true;\n error = e;\n }\n }\n };\n do {\n if (storeHooks.f) {\n call(storeHooks.f);\n }\n const callbacks = /* @__PURE__ */ new Set();\n const add = callbacks.add.bind(callbacks);\n changedAtoms.forEach((atom) => {\n var _a;\n return (_a = mountedMap.get(atom)) == null ? void 0 : _a.l.forEach(add);\n });\n changedAtoms.clear();\n unmountCallbacks.forEach(add);\n unmountCallbacks.clear();\n mountCallbacks.forEach(add);\n mountCallbacks.clear();\n callbacks.forEach(call);\n if (changedAtoms.size) {\n recomputeInvalidatedAtoms();\n }\n } while (changedAtoms.size || unmountCallbacks.size || mountCallbacks.size);\n if (hasError) {\n throw error;\n }\n });\n const recomputeInvalidatedAtoms = buildingBlockFunctions[2] || (() => {\n const topSortedReversed = [];\n const visiting = /* @__PURE__ */ new WeakSet();\n const visited = /* @__PURE__ */ new WeakSet();\n const stack = Array.from(changedAtoms);\n while (stack.length) {\n const a = stack[stack.length - 1];\n const aState = ensureAtomState(a);\n if (visited.has(a)) {\n stack.pop();\n continue;\n }\n if (visiting.has(a)) {\n if (invalidatedAtoms.get(a) === aState.n) {\n topSortedReversed.push([a, aState]);\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && invalidatedAtoms.has(a)) {\n throw new Error(\"[Bug] invalidated atom exists\");\n }\n visited.add(a);\n stack.pop();\n continue;\n }\n visiting.add(a);\n for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {\n if (!visiting.has(d)) {\n stack.push(d);\n }\n }\n }\n for (let i = topSortedReversed.length - 1; i >= 0; --i) {\n const [a, aState] = topSortedReversed[i];\n let hasChangedDeps = false;\n for (const dep of aState.d.keys()) {\n if (dep !== a && changedAtoms.has(dep)) {\n hasChangedDeps = true;\n break;\n }\n }\n if (hasChangedDeps) {\n readAtomState(a);\n mountDependencies(a);\n }\n invalidatedAtoms.delete(a);\n }\n });\n const readAtomState = buildingBlockFunctions[3] || ((atom) => {\n var _a, _b;\n const atomState = ensureAtomState(atom);\n if (isAtomStateInitialized(atomState)) {\n if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {\n return atomState;\n }\n if (Array.from(atomState.d).every(\n ([a, n]) => (\n // Recursively, read the atom state of the dependency, and\n // check if the atom epoch number is unchanged\n readAtomState(a).n === n\n )\n )) {\n return atomState;\n }\n }\n atomState.d.clear();\n let isSync = true;\n const mountDependenciesIfAsync = () => {\n if (mountedMap.has(atom)) {\n mountDependencies(atom);\n recomputeInvalidatedAtoms();\n flushCallbacks();\n }\n };\n const getter = (a) => {\n var _a2;\n if (isSelfAtom(atom, a)) {\n const aState2 = ensureAtomState(a);\n if (!isAtomStateInitialized(aState2)) {\n if (hasInitialValue(a)) {\n setAtomStateValueOrPromise(a, a.init, ensureAtomState);\n } else {\n throw new Error(\"no atom init\");\n }\n }\n return returnAtomValue(aState2);\n }\n const aState = readAtomState(a);\n try {\n return returnAtomValue(aState);\n } finally {\n atomState.d.set(a, aState.n);\n if (isPendingPromise(atomState.v)) {\n addPendingPromiseToDependency(atom, atomState.v, aState);\n }\n (_a2 = mountedMap.get(a)) == null ? void 0 : _a2.t.add(atom);\n if (!isSync) {\n mountDependenciesIfAsync();\n }\n }\n };\n let controller;\n let setSelf;\n const options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !isActuallyWritableAtom(atom)) {\n console.warn(\"setSelf function cannot be used with read-only atom\");\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && isSync) {\n console.warn(\"setSelf function cannot be called in sync\");\n }\n if (!isSync) {\n try {\n return writeAtomState(atom, ...args);\n } finally {\n recomputeInvalidatedAtoms();\n flushCallbacks();\n }\n }\n };\n }\n return setSelf;\n }\n };\n const prevEpochNumber = atomState.n;\n try {\n const valueOrPromise = atomRead(atom, getter, options);\n setAtomStateValueOrPromise(atom, valueOrPromise, ensureAtomState);\n if (isPromiseLike(valueOrPromise)) {\n (_a = valueOrPromise.onCancel) == null ? void 0 : _a.call(valueOrPromise, () => controller == null ? void 0 : controller.abort());\n valueOrPromise.then(\n mountDependenciesIfAsync,\n mountDependenciesIfAsync\n );\n }\n return atomState;\n } catch (error) {\n delete atomState.v;\n atomState.e = error;\n ++atomState.n;\n return atomState;\n } finally {\n isSync = false;\n if (prevEpochNumber !== atomState.n && invalidatedAtoms.get(atom) === prevEpochNumber) {\n invalidatedAtoms.set(atom, atomState.n);\n changedAtoms.add(atom);\n (_b = storeHooks.c) == null ? void 0 : _b.call(storeHooks, atom);\n }\n }\n });\n const invalidateDependents = buildingBlockFunctions[4] || ((atom) => {\n const stack = [atom];\n while (stack.length) {\n const a = stack.pop();\n const aState = ensureAtomState(a);\n for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {\n const dState = ensureAtomState(d);\n invalidatedAtoms.set(d, dState.n);\n stack.push(d);\n }\n }\n });\n const writeAtomState = buildingBlockFunctions[5] || ((atom, ...args) => {\n let isSync = true;\n const getter = (a) => returnAtomValue(readAtomState(a));\n const setter = (a, ...args2) => {\n var _a;\n const aState = ensureAtomState(a);\n try {\n if (isSelfAtom(atom, a)) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const prevEpochNumber = aState.n;\n const v = args2[0];\n setAtomStateValueOrPromise(a, v, ensureAtomState);\n mountDependencies(a);\n if (prevEpochNumber !== aState.n) {\n changedAtoms.add(a);\n (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);\n invalidateDependents(a);\n }\n return void 0;\n } else {\n return writeAtomState(a, ...args2);\n }\n } finally {\n if (!isSync) {\n recomputeInvalidatedAtoms();\n flushCallbacks();\n }\n }\n };\n try {\n return atomWrite(atom, getter, setter, ...args);\n } finally {\n isSync = false;\n }\n });\n const mountDependencies = buildingBlockFunctions[6] || ((atom) => {\n var _a;\n const atomState = ensureAtomState(atom);\n const mounted = mountedMap.get(atom);\n if (mounted && !isPendingPromise(atomState.v)) {\n for (const [a, n] of atomState.d) {\n if (!mounted.d.has(a)) {\n const aState = ensureAtomState(a);\n const aMounted = mountAtom(a);\n aMounted.t.add(atom);\n mounted.d.add(a);\n if (n !== aState.n) {\n changedAtoms.add(a);\n (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);\n invalidateDependents(a);\n }\n }\n }\n for (const a of mounted.d || []) {\n if (!atomState.d.has(a)) {\n mounted.d.delete(a);\n const aMounted = unmountAtom(a);\n aMounted == null ? void 0 : aMounted.t.delete(atom);\n }\n }\n }\n });\n const mountAtom = buildingBlockFunctions[7] || ((atom) => {\n var _a;\n const atomState = ensureAtomState(atom);\n let mounted = mountedMap.get(atom);\n if (!mounted) {\n readAtomState(atom);\n for (const a of atomState.d.keys()) {\n const aMounted = mountAtom(a);\n aMounted.t.add(atom);\n }\n mounted = {\n l: /* @__PURE__ */ new Set(),\n d: new Set(atomState.d.keys()),\n t: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n (_a = storeHooks.m) == null ? void 0 : _a.call(storeHooks, atom);\n if (isActuallyWritableAtom(atom)) {\n const processOnMount = () => {\n let isSync = true;\n const setAtom = (...args) => {\n try {\n return writeAtomState(atom, ...args);\n } finally {\n if (!isSync) {\n recomputeInvalidatedAtoms();\n flushCallbacks();\n }\n }\n };\n try {\n const onUnmount = atomOnMount(atom, setAtom);\n if (onUnmount) {\n mounted.u = () => {\n isSync = true;\n try {\n onUnmount();\n } finally {\n isSync = false;\n }\n };\n }\n } finally {\n isSync = false;\n }\n };\n mountCallbacks.add(processOnMount);\n }\n }\n return mounted;\n });\n const unmountAtom = buildingBlockFunctions[8] || ((atom) => {\n var _a;\n const atomState = ensureAtomState(atom);\n let mounted = mountedMap.get(atom);\n if (mounted && !mounted.l.size && !Array.from(mounted.t).some((a) => {\n var _a2;\n return (_a2 = mountedMap.get(a)) == null ? void 0 : _a2.d.has(atom);\n })) {\n if (mounted.u) {\n unmountCallbacks.add(mounted.u);\n }\n mounted = void 0;\n mountedMap.delete(atom);\n (_a = storeHooks.u) == null ? void 0 : _a.call(storeHooks, atom);\n for (const a of atomState.d.keys()) {\n const aMounted = unmountAtom(a);\n aMounted == null ? void 0 : aMounted.t.delete(atom);\n }\n return void 0;\n }\n return mounted;\n });\n const buildingBlocks = [\n // store state\n atomStateMap,\n mountedMap,\n invalidatedAtoms,\n changedAtoms,\n mountCallbacks,\n unmountCallbacks,\n storeHooks,\n // atom intercepters\n atomRead,\n atomWrite,\n atomOnInit,\n atomOnMount,\n // building-block functions\n ensureAtomState,\n flushCallbacks,\n recomputeInvalidatedAtoms,\n readAtomState,\n invalidateDependents,\n writeAtomState,\n mountDependencies,\n mountAtom,\n unmountAtom\n ];\n const store = {\n get: (atom) => returnAtomValue(readAtomState(atom)),\n set: (atom, ...args) => {\n try {\n return writeAtomState(atom, ...args);\n } finally {\n recomputeInvalidatedAtoms();\n flushCallbacks();\n }\n },\n sub: (atom, listener) => {\n const mounted = mountAtom(atom);\n const listeners = mounted.l;\n listeners.add(listener);\n flushCallbacks();\n return () => {\n listeners.delete(listener);\n unmountAtom(atom);\n flushCallbacks();\n };\n }\n };\n Object.defineProperty(store, BUILDING_BLOCKS, { value: buildingBlocks });\n return store;\n};\nconst INTERNAL_buildStoreRev1 = buildStore;\nconst INTERNAL_getBuildingBlocksRev1 = getBuildingBlocks;\nconst INTERNAL_initializeStoreHooks = initializeStoreHooks;\nconst INTERNAL_isSelfAtom = isSelfAtom;\nconst INTERNAL_hasInitialValue = hasInitialValue;\nconst INTERNAL_isActuallyWritableAtom = isActuallyWritableAtom;\nconst INTERNAL_isAtomStateInitialized = isAtomStateInitialized;\nconst INTERNAL_returnAtomValue = returnAtomValue;\nconst INTERNAL_getPromiseState = getPromiseState;\nconst INTERNAL_isPendingPromise = isPendingPromise;\nconst INTERNAL_cancelPromise = cancelPromise;\nconst INTERNAL_patchPromiseForCancelability = patchPromiseForCancelability;\nconst INTERNAL_isPromiseLike = isPromiseLike;\nconst INTERNAL_addPendingPromiseToDependency = addPendingPromiseToDependency;\nconst INTERNAL_setAtomStateValueOrPromise = setAtomStateValueOrPromise;\nconst INTERNAL_getMountedOrPendingDependents = getMountedOrPendingDependents;\n\nexport { INTERNAL_addPendingPromiseToDependency, INTERNAL_buildStoreRev1, INTERNAL_cancelPromise, INTERNAL_getBuildingBlocksRev1, INTERNAL_getMountedOrPendingDependents, INTERNAL_getPromiseState, INTERNAL_hasInitialValue, INTERNAL_initializeStoreHooks, INTERNAL_isActuallyWritableAtom, INTERNAL_isAtomStateInitialized, INTERNAL_isPendingPromise, INTERNAL_isPromiseLike, INTERNAL_isSelfAtom, INTERNAL_patchPromiseForCancelability, INTERNAL_returnAtomValue, INTERNAL_setAtomStateValueOrPromise };\n","import { INTERNAL_buildStoreRev1, INTERNAL_initializeStoreHooks } from 'jotai/vanilla/internals';\n\nlet keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString() {\n return (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && this.debugLabel ? key + \":\" + this.debugLabel : key;\n }\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = defaultRead;\n config.write = defaultWrite;\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\nfunction defaultRead(get) {\n return get(this);\n}\nfunction defaultWrite(get, set, arg) {\n return set(\n this,\n typeof arg === \"function\" ? arg(get(this)) : arg\n );\n}\n\nconst createDevStoreRev4 = () => {\n let inRestoreAtom = 0;\n const storeHooks = INTERNAL_initializeStoreHooks({});\n const atomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedAtoms = /* @__PURE__ */ new WeakMap();\n const store = INTERNAL_buildStoreRev1(\n atomStateMap,\n mountedAtoms,\n void 0,\n void 0,\n void 0,\n void 0,\n storeHooks,\n void 0,\n (atom, get, set, ...args) => {\n if (inRestoreAtom) {\n return set(atom, ...args);\n }\n return atom.write(get, set, ...args);\n }\n );\n const debugMountedAtoms = /* @__PURE__ */ new Set();\n storeHooks.m.add(void 0, (atom) => {\n debugMountedAtoms.add(atom);\n const atomState = atomStateMap.get(atom);\n atomState.m = mountedAtoms.get(atom);\n });\n storeHooks.u.add(void 0, (atom) => {\n debugMountedAtoms.delete(atom);\n const atomState = atomStateMap.get(atom);\n delete atomState.m;\n });\n const devStore = {\n // store dev methods (these are tentative and subject to change without notice)\n dev4_get_internal_weak_map: () => atomStateMap,\n dev4_get_mounted_atoms: () => debugMountedAtoms,\n dev4_restore_atoms: (values) => {\n const restoreAtom = {\n read: () => null,\n write: (_get, set) => {\n ++inRestoreAtom;\n try {\n for (const [atom, value] of values) {\n if (\"init\" in atom) {\n set(atom, value);\n }\n }\n } finally {\n --inRestoreAtom;\n }\n }\n };\n store.set(restoreAtom);\n }\n };\n return Object.assign(store, devStore);\n};\nconst createStore = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n return createDevStoreRev4();\n }\n const store = INTERNAL_buildStoreRev1();\n return store;\n};\nlet defaultStore;\nconst getDefaultStore = () => {\n if (!defaultStore) {\n defaultStore = createStore();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n globalThis.__JOTAI_DEFAULT_STORE__ || (globalThis.__JOTAI_DEFAULT_STORE__ = defaultStore);\n if (globalThis.__JOTAI_DEFAULT_STORE__ !== defaultStore) {\n console.warn(\n \"Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044\"\n );\n }\n }\n }\n return defaultStore;\n};\n\nexport { atom, createStore, getDefaultStore };\n","import { atom } from 'jotai/vanilla';\n\nconst RESET = Symbol(\n (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" ? \"RESET\" : \"\"\n);\n\nfunction atomWithReset(initialValue) {\n const anAtom = atom(\n initialValue,\n (get, set, update) => {\n const nextValue = typeof update === \"function\" ? update(get(anAtom)) : update;\n set(anAtom, nextValue === RESET ? initialValue : nextValue);\n }\n );\n return anAtom;\n}\n\nfunction atomWithReducer(initialValue, reducer) {\n return atom(initialValue, function(get, set, action) {\n set(this, reducer(get(this), action));\n });\n}\n\nfunction atomFamily(initializeAtom, areEqual) {\n let shouldRemove = null;\n const atoms = /* @__PURE__ */ new Map();\n const listeners = /* @__PURE__ */ new Set();\n const createAtom = (param) => {\n let item;\n if (areEqual === void 0) {\n item = atoms.get(param);\n } else {\n for (const [key, value] of atoms) {\n if (areEqual(key, param)) {\n item = value;\n break;\n }\n }\n }\n if (item !== void 0) {\n if (shouldRemove == null ? void 0 : shouldRemove(item[1], param)) {\n createAtom.remove(param);\n } else {\n return item[0];\n }\n }\n const newAtom = initializeAtom(param);\n atoms.set(param, [newAtom, Date.now()]);\n notifyListeners(\"CREATE\", param, newAtom);\n return newAtom;\n };\n function notifyListeners(type, param, atom) {\n for (const listener of listeners) {\n listener({ type, param, atom });\n }\n }\n createAtom.unstable_listen = (callback) => {\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n };\n };\n createAtom.getParams = () => atoms.keys();\n createAtom.remove = (param) => {\n if (areEqual === void 0) {\n if (!atoms.has(param)) return;\n const [atom] = atoms.get(param);\n atoms.delete(param);\n notifyListeners(\"REMOVE\", param, atom);\n } else {\n for (const [key, [atom]] of atoms) {\n if (areEqual(key, param)) {\n atoms.delete(key);\n notifyListeners(\"REMOVE\", key, atom);\n break;\n }\n }\n }\n };\n createAtom.setShouldRemove = (fn) => {\n shouldRemove = fn;\n if (!shouldRemove) return;\n for (const [key, [atom, createdAt]] of atoms) {\n if (shouldRemove(createdAt, key)) {\n atoms.delete(key);\n notifyListeners(\"REMOVE\", key, atom);\n }\n }\n };\n return createAtom;\n}\n\nconst getCached$2 = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1$3 = /* @__PURE__ */ new WeakMap();\nconst memo3 = (create, dep1, dep2, dep3) => {\n const cache2 = getCached$2(() => /* @__PURE__ */ new WeakMap(), cache1$3, dep1);\n const cache3 = getCached$2(() => /* @__PURE__ */ new WeakMap(), cache2, dep2);\n return getCached$2(create, cache3, dep3);\n};\nfunction selectAtom(anAtom, selector, equalityFn = Object.is) {\n return memo3(\n () => {\n const EMPTY = Symbol();\n const selectValue = ([value, prevSlice]) => {\n if (prevSlice === EMPTY) {\n return selector(value);\n }\n const slice = selector(value, prevSlice);\n return equalityFn(prevSlice, slice) ? prevSlice : slice;\n };\n const derivedAtom = atom((get) => {\n const prev = get(derivedAtom);\n const value = get(anAtom);\n return selectValue([value, prev]);\n });\n derivedAtom.init = EMPTY;\n return derivedAtom;\n },\n anAtom,\n selector,\n equalityFn\n );\n}\n\nconst frozenAtoms = /* @__PURE__ */ new WeakSet();\nconst deepFreeze = (obj) => {\n if (typeof obj !== \"object\" || obj === null) return;\n Object.freeze(obj);\n const propNames = Object.getOwnPropertyNames(obj);\n for (const name of propNames) {\n const value = obj[name];\n deepFreeze(value);\n }\n return obj;\n};\nfunction freezeAtom(anAtom) {\n if (frozenAtoms.has(anAtom)) {\n return anAtom;\n }\n frozenAtoms.add(anAtom);\n const origRead = anAtom.read;\n anAtom.read = function(get, options) {\n return deepFreeze(origRead.call(this, get, options));\n };\n if (\"write\" in anAtom) {\n const origWrite = anAtom.write;\n anAtom.write = function(get, set, ...args) {\n return origWrite.call(\n this,\n get,\n (...setArgs) => {\n if (setArgs[0] === anAtom) {\n setArgs[1] = deepFreeze(setArgs[1]);\n }\n return set(...setArgs);\n },\n ...args\n );\n };\n }\n return anAtom;\n}\nfunction freezeAtomCreator(createAtom) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] freezeAtomCreator is deprecated, define it on users end\"\n );\n }\n return (...args) => freezeAtom(createAtom(...args));\n}\n\nconst getCached$1 = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1$2 = /* @__PURE__ */ new WeakMap();\nconst memo2$1 = (create, dep1, dep2) => {\n const cache2 = getCached$1(() => /* @__PURE__ */ new WeakMap(), cache1$2, dep1);\n return getCached$1(create, cache2, dep2);\n};\nconst cacheKeyForEmptyKeyExtractor = {};\nconst isWritable = (atom2) => !!atom2.write;\nconst isFunction = (x) => typeof x === \"function\";\nfunction splitAtom(arrAtom, keyExtractor) {\n return memo2$1(\n () => {\n const mappingCache = /* @__PURE__ */ new WeakMap();\n const getMapping = (arr, prev) => {\n let mapping = mappingCache.get(arr);\n if (mapping) {\n return mapping;\n }\n const prevMapping = prev && mappingCache.get(prev);\n const atomList = [];\n const keyList = [];\n arr.forEach((item, index) => {\n const key = keyExtractor ? keyExtractor(item) : index;\n keyList[index] = key;\n const cachedAtom = prevMapping && prevMapping.atomList[prevMapping.keyList.indexOf(key)];\n if (cachedAtom) {\n atomList[index] = cachedAtom;\n return;\n }\n const read = (get) => {\n const prev2 = get(mappingAtom);\n const currArr = get(arrAtom);\n const mapping2 = getMapping(currArr, prev2 == null ? void 0 : prev2.arr);\n const index2 = mapping2.keyList.indexOf(key);\n if (index2 < 0 || index2 >= currArr.length) {\n const prevItem = arr[getMapping(arr).keyList.indexOf(key)];\n if (prevItem) {\n return prevItem;\n }\n throw new Error(\"splitAtom: index out of bounds for read\");\n }\n return currArr[index2];\n };\n const write = (get, set, update) => {\n const prev2 = get(mappingAtom);\n const arr2 = get(arrAtom);\n const mapping2 = getMapping(arr2, prev2 == null ? void 0 : prev2.arr);\n const index2 = mapping2.keyList.indexOf(key);\n if (index2 < 0 || index2 >= arr2.length) {\n throw new Error(\"splitAtom: index out of bounds for write\");\n }\n const nextItem = isFunction(update) ? update(arr2[index2]) : update;\n if (!Object.is(arr2[index2], nextItem)) {\n set(arrAtom, [\n ...arr2.slice(0, index2),\n nextItem,\n ...arr2.slice(index2 + 1)\n ]);\n }\n };\n atomList[index] = isWritable(arrAtom) ? atom(read, write) : atom(read);\n });\n if (prevMapping && prevMapping.keyList.length === keyList.length && prevMapping.keyList.every((x, i) => x === keyList[i])) {\n mapping = prevMapping;\n } else {\n mapping = { arr, atomList, keyList };\n }\n mappingCache.set(arr, mapping);\n return mapping;\n };\n const mappingAtom = atom((get) => {\n const prev = get(mappingAtom);\n const arr = get(arrAtom);\n const mapping = getMapping(arr, prev == null ? void 0 : prev.arr);\n return mapping;\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mappingAtom.debugPrivate = true;\n }\n mappingAtom.init = void 0;\n const splittedAtom = isWritable(arrAtom) ? atom(\n (get) => get(mappingAtom).atomList,\n (get, set, action) => {\n switch (action.type) {\n case \"remove\": {\n const index = get(splittedAtom).indexOf(action.atom);\n if (index >= 0) {\n const arr = get(arrAtom);\n set(arrAtom, [\n ...arr.slice(0, index),\n ...arr.slice(index + 1)\n ]);\n }\n break;\n }\n case \"insert\": {\n const index = action.before ? get(splittedAtom).indexOf(action.before) : get(splittedAtom).length;\n if (index >= 0) {\n const arr = get(arrAtom);\n set(arrAtom, [\n ...arr.slice(0, index),\n action.value,\n ...arr.slice(index)\n ]);\n }\n break;\n }\n case \"move\": {\n const index1 = get(splittedAtom).indexOf(action.atom);\n const index2 = action.before ? get(splittedAtom).indexOf(action.before) : get(splittedAtom).length;\n if (index1 >= 0 && index2 >= 0) {\n const arr = get(arrAtom);\n if (index1 < index2) {\n set(arrAtom, [\n ...arr.slice(0, index1),\n ...arr.slice(index1 + 1, index2),\n arr[index1],\n ...arr.slice(index2)\n ]);\n } else {\n set(arrAtom, [\n ...arr.slice(0, index2),\n arr[index1],\n ...arr.slice(index2, index1),\n ...arr.slice(index1 + 1)\n ]);\n }\n }\n break;\n }\n }\n }\n ) : atom((get) => get(mappingAtom).atomList);\n return splittedAtom;\n },\n arrAtom,\n keyExtractor || cacheKeyForEmptyKeyExtractor\n );\n}\n\nfunction atomWithDefault(getDefault) {\n const EMPTY = Symbol();\n const overwrittenAtom = atom(EMPTY);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n overwrittenAtom.debugPrivate = true;\n }\n const anAtom = atom(\n (get, options) => {\n const overwritten = get(overwrittenAtom);\n if (overwritten !== EMPTY) {\n return overwritten;\n }\n return getDefault(get, options);\n },\n (get, set, update) => {\n if (update === RESET) {\n set(overwrittenAtom, EMPTY);\n } else if (typeof update === \"function\") {\n const prevValue = get(anAtom);\n set(overwrittenAtom, update(prevValue));\n } else {\n set(overwrittenAtom, update);\n }\n }\n );\n return anAtom;\n}\n\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nfunction withStorageValidator(validator) {\n return (unknownStorage) => {\n const storage = {\n ...unknownStorage,\n getItem: (key, initialValue) => {\n const validate = (value2) => {\n if (!validator(value2)) {\n return initialValue;\n }\n return value2;\n };\n const value = unknownStorage.getItem(key, initialValue);\n if (isPromiseLike(value)) {\n return value.then(validate);\n }\n return validate(value);\n }\n };\n return storage;\n };\n}\nfunction createJSONStorage(getStringStorage = () => {\n try {\n return window.localStorage;\n } catch (e) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n if (typeof window !== \"undefined\") {\n console.warn(e);\n }\n }\n return void 0;\n }\n}, options) {\n var _a;\n let lastStr;\n let lastValue;\n const storage = {\n getItem: (key, initialValue) => {\n var _a2, _b;\n const parse = (str2) => {\n str2 = str2 || \"\";\n if (lastStr !== str2) {\n try {\n lastValue = JSON.parse(str2, options == null ? void 0 : options.reviver);\n } catch (e) {\n return initialValue;\n }\n lastStr = str2;\n }\n return lastValue;\n };\n const str = (_b = (_a2 = getStringStorage()) == null ? void 0 : _a2.getItem(key)) != null ? _b : null;\n if (isPromiseLike(str)) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (key, newValue) => {\n var _a2;\n return (_a2 = getStringStorage()) == null ? void 0 : _a2.setItem(\n key,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n );\n },\n removeItem: (key) => {\n var _a2;\n return (_a2 = getStringStorage()) == null ? void 0 : _a2.removeItem(key);\n }\n };\n const createHandleSubscribe = (subscriber2) => (key, callback, initialValue) => subscriber2(key, (v) => {\n let newValue;\n try {\n newValue = JSON.parse(v || \"\");\n } catch (e) {\n newValue = initialValue;\n }\n callback(newValue);\n });\n let subscriber;\n try {\n subscriber = (_a = getStringStorage()) == null ? void 0 : _a.subscribe;\n } catch (e) {\n }\n if (!subscriber && typeof window !== \"undefined\" && typeof window.addEventListener === \"function\" && window.Storage) {\n subscriber = (key, callback) => {\n if (!(getStringStorage() instanceof window.Storage)) {\n return () => {\n };\n }\n const storageEventCallback = (e) => {\n if (e.storageArea === getStringStorage() && e.key === key) {\n callback(e.newValue);\n }\n };\n window.addEventListener(\"storage\", storageEventCallback);\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n };\n }\n if (subscriber) {\n storage.subscribe = createHandleSubscribe(subscriber);\n }\n return storage;\n}\nconst defaultStorage = createJSONStorage();\nfunction atomWithStorage(key, initialValue, storage = defaultStorage, options) {\n const getOnInit = options == null ? void 0 : options.getOnInit;\n const baseAtom = atom(\n getOnInit ? storage.getItem(key, initialValue) : initialValue\n );\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n baseAtom.debugPrivate = true;\n }\n baseAtom.onMount = (setAtom) => {\n setAtom(storage.getItem(key, initialValue));\n let unsub;\n if (storage.subscribe) {\n unsub = storage.subscribe(key, setAtom, initialValue);\n }\n return unsub;\n };\n const anAtom = atom(\n (get) => get(baseAtom),\n (get, set, update) => {\n const nextValue = typeof update === \"function\" ? update(get(baseAtom)) : update;\n if (nextValue === RESET) {\n set(baseAtom, initialValue);\n return storage.removeItem(key);\n }\n if (nextValue instanceof Promise) {\n return nextValue.then((resolvedValue) => {\n set(baseAtom, resolvedValue);\n return storage.setItem(key, resolvedValue);\n });\n }\n set(baseAtom, nextValue);\n return storage.setItem(key, nextValue);\n }\n );\n return anAtom;\n}\n\nfunction atomWithObservable(getObservable, options) {\n const returnResultData = (result) => {\n if (\"e\" in result) {\n throw result.e;\n }\n return result.d;\n };\n const observableResultAtom = atom((get) => {\n var _a;\n let observable = getObservable(get);\n const itself = (_a = observable[Symbol.observable]) == null ? void 0 : _a.call(observable);\n if (itself) {\n observable = itself;\n }\n let resolve;\n const makePending = () => new Promise((r) => {\n resolve = r;\n });\n const initialResult = options && \"initialValue\" in options ? {\n d: typeof options.initialValue === \"function\" ? options.initialValue() : options.initialValue\n } : makePending();\n let setResult;\n let lastResult;\n const listener = (result) => {\n lastResult = result;\n resolve == null ? void 0 : resolve(result);\n setResult == null ? void 0 : setResult(result);\n };\n let subscription;\n let timer;\n const isNotMounted = () => !setResult;\n const start = () => {\n if (subscription) {\n clearTimeout(timer);\n subscription.unsubscribe();\n }\n subscription = observable.subscribe({\n next: (d) => listener({ d }),\n error: (e) => listener({ e }),\n complete: () => {\n }\n });\n if (isNotMounted() && (options == null ? void 0 : options.unstable_timeout)) {\n timer = setTimeout(() => {\n if (subscription) {\n subscription.unsubscribe();\n subscription = void 0;\n }\n }, options.unstable_timeout);\n }\n };\n start();\n const resultAtom = atom(lastResult || initialResult);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n resultAtom.debugPrivate = true;\n }\n resultAtom.onMount = (update) => {\n setResult = update;\n if (lastResult) {\n update(lastResult);\n }\n if (subscription) {\n clearTimeout(timer);\n } else {\n start();\n }\n return () => {\n setResult = void 0;\n if (subscription) {\n subscription.unsubscribe();\n subscription = void 0;\n }\n };\n };\n return [resultAtom, observable, makePending, start, isNotMounted];\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n observableResultAtom.debugPrivate = true;\n }\n const observableAtom = atom(\n (get) => {\n const [resultAtom] = get(observableResultAtom);\n const result = get(resultAtom);\n if (result instanceof Promise) {\n return result.then(returnResultData);\n }\n return returnResultData(result);\n },\n (get, set, data) => {\n const [resultAtom, observable, makePending, start, isNotMounted] = get(observableResultAtom);\n if (\"next\" in observable) {\n if (isNotMounted()) {\n set(resultAtom, makePending());\n start();\n }\n observable.next(data);\n } else {\n throw new Error(\"observable is not subject\");\n }\n }\n );\n return observableAtom;\n}\n\nconst cache1$1 = /* @__PURE__ */ new WeakMap();\nconst memo1 = (create, dep1) => (cache1$1.has(dep1) ? cache1$1 : cache1$1.set(dep1, create())).get(dep1);\nconst isPromise$1 = (x) => x instanceof Promise;\nconst LOADING = { state: \"loading\" };\nfunction loadable(anAtom) {\n return memo1(() => {\n const loadableCache = /* @__PURE__ */ new WeakMap();\n const refreshAtom = atom(0);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n const derivedAtom = atom(\n (get, { setSelf }) => {\n get(refreshAtom);\n let value;\n try {\n value = get(anAtom);\n } catch (error) {\n return { state: \"hasError\", error };\n }\n if (!isPromise$1(value)) {\n return { state: \"hasData\", data: value };\n }\n const promise = value;\n const cached1 = loadableCache.get(promise);\n if (cached1) {\n return cached1;\n }\n promise.then(\n (data) => {\n loadableCache.set(promise, { state: \"hasData\", data });\n setSelf();\n },\n (error) => {\n loadableCache.set(promise, { state: \"hasError\", error });\n setSelf();\n }\n );\n const cached2 = loadableCache.get(promise);\n if (cached2) {\n return cached2;\n }\n loadableCache.set(promise, LOADING);\n return LOADING;\n },\n (_get, set) => {\n set(refreshAtom, (c) => c + 1);\n }\n );\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n derivedAtom.debugPrivate = true;\n }\n return atom((get) => get(derivedAtom));\n }, anAtom);\n}\n\nconst getCached = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1 = /* @__PURE__ */ new WeakMap();\nconst memo2 = (create, dep1, dep2) => {\n const cache2 = getCached(() => /* @__PURE__ */ new WeakMap(), cache1, dep1);\n return getCached(create, cache2, dep2);\n};\nconst isPromise = (x) => x instanceof Promise;\nconst defaultFallback = () => void 0;\nfunction unwrap(anAtom, fallback = defaultFallback) {\n return memo2(\n () => {\n const promiseErrorCache = /* @__PURE__ */ new WeakMap();\n const promiseResultCache = /* @__PURE__ */ new WeakMap();\n const refreshAtom = atom(0);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n const promiseAndValueAtom = atom(\n (get, { setSelf }) => {\n get(refreshAtom);\n const prev = get(promiseAndValueAtom);\n const promise = get(anAtom);\n if (!isPromise(promise)) {\n return { v: promise };\n }\n if (promise !== (prev == null ? void 0 : prev.p)) {\n promise.then(\n (v) => {\n promiseResultCache.set(promise, v);\n setSelf();\n },\n (e) => {\n promiseErrorCache.set(promise, e);\n setSelf();\n }\n );\n }\n if (promiseErrorCache.has(promise)) {\n throw promiseErrorCache.get(promise);\n }\n if (promiseResultCache.has(promise)) {\n return {\n p: promise,\n v: promiseResultCache.get(promise)\n };\n }\n if (prev && \"v\" in prev) {\n return { p: promise, f: fallback(prev.v), v: prev.v };\n }\n return { p: promise, f: fallback() };\n },\n (_get, set) => {\n set(refreshAtom, (c) => c + 1);\n }\n );\n promiseAndValueAtom.init = void 0;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n promiseAndValueAtom.debugPrivate = true;\n }\n return atom(\n (get) => {\n const state = get(promiseAndValueAtom);\n if (\"f\" in state) {\n return state.f;\n }\n return state.v;\n },\n (_get, set, ...args) => set(anAtom, ...args)\n );\n },\n anAtom,\n fallback\n );\n}\n\nfunction atomWithRefresh(read, write) {\n const refreshAtom = atom(0);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n return atom(\n (get, options) => {\n get(refreshAtom);\n return read(get, options);\n },\n (get, set, ...args) => {\n if (args.length === 0) {\n set(refreshAtom, (c) => c + 1);\n } else if (write) {\n return write(get, set, ...args);\n }\n }\n );\n}\n\nfunction atomWithLazy(makeInitial) {\n const a = atom(void 0);\n delete a.init;\n Object.defineProperty(a, \"init\", {\n get() {\n return makeInitial();\n }\n });\n return a;\n}\n\nexport { RESET, atomFamily, atomWithDefault, atomWithLazy, atomWithObservable, atomWithReducer, atomWithRefresh, atomWithReset, atomWithStorage, createJSONStorage, freezeAtom, freezeAtomCreator, loadable, selectAtom, splitAtom, withStorageValidator as unstable_withStorageValidator, unwrap };\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","'use client';\nimport React from 'react';\n\n/**\n * @internal\n */\nconst SkeletonThemeContext = React.createContext({});\n\n/* eslint-disable react/no-array-index-key */\nconst defaultEnableAnimation = true;\n// For performance & cleanliness, don't add any inline styles unless we have to\nfunction styleOptionsToCssProperties({ baseColor, highlightColor, width, height, borderRadius, circle, direction, duration, enableAnimation = defaultEnableAnimation, customHighlightBackground, }) {\n const style = {};\n if (direction === 'rtl')\n style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number')\n style['--animation-duration'] = `${duration}s`;\n if (!enableAnimation)\n style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number')\n style.width = width;\n if (typeof height === 'string' || typeof height === 'number')\n style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number')\n style.borderRadius = borderRadius;\n if (circle)\n style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined')\n style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined')\n style['--highlight-color'] = highlightColor;\n if (typeof customHighlightBackground === 'string')\n style['--custom-highlight-background'] = customHighlightBackground;\n return style;\n}\nfunction Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, containerClassName, containerTestId, circle = false, style: styleProp, ...originalPropsStyleOptions }) {\n var _a, _b, _c;\n const contextStyleOptions = React.useContext(SkeletonThemeContext);\n const propsStyleOptions = { ...originalPropsStyleOptions };\n // DO NOT overwrite style options from the context if `propsStyleOptions`\n // has properties explicity set to undefined\n for (const [key, value] of Object.entries(originalPropsStyleOptions)) {\n if (typeof value === 'undefined') {\n delete propsStyleOptions[key];\n }\n }\n // Props take priority over context\n const styleOptions = {\n ...contextStyleOptions,\n ...propsStyleOptions,\n circle,\n };\n // `styleProp` has the least priority out of everything\n const style = {\n ...styleProp,\n ...styleOptionsToCssProperties(styleOptions),\n };\n let className = 'react-loading-skeleton';\n if (customClassName)\n className += ` ${customClassName}`;\n const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n const elements = [];\n const countCeil = Math.ceil(count);\n for (let i = 0; i < countCeil; i++) {\n let thisStyle = style;\n if (countCeil > count && i === countCeil - 1) {\n // count is not an integer and we've reached the last iteration of\n // the loop, so add a \"fractional\" skeleton.\n //\n // For example, if count is 3.5, we've already added 3 full\n // skeletons, so now we add one more skeleton that is 0.5 times the\n // original width.\n const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS\n const fractionalPart = count % 1;\n const fractionalWidth = typeof width === 'number'\n ? width * fractionalPart\n : `calc(${width} * ${fractionalPart})`;\n thisStyle = { ...thisStyle, width: fractionalWidth };\n }\n const skeletonSpan = (React.createElement(\"span\", { className: className, style: thisStyle, key: i }, \"\\u200C\"));\n if (inline) {\n elements.push(skeletonSpan);\n }\n else {\n // Without the
    , the skeleton lines will all run together if\n // `width` is specified\n elements.push(React.createElement(React.Fragment, { key: i },\n skeletonSpan,\n React.createElement(\"br\", null)));\n }\n }\n return (React.createElement(\"span\", { className: containerClassName, \"data-testid\": containerTestId, \"aria-live\": \"polite\", \"aria-busy\": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation }, Wrapper\n ? elements.map((el, i) => React.createElement(Wrapper, { key: i }, el))\n : elements));\n}\n\nfunction SkeletonTheme({ children, ...styleOptions }) {\n return (React.createElement(SkeletonThemeContext.Provider, { value: styleOptions }, children));\n}\n\nexport { SkeletonTheme, Skeleton as default };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n"],"names":["freeGlobal","global","Object","freeSelf","self","root","Function","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","isOwn","call","value","tag","unmasked","e","result","baseGetTag","undefinedTag","nullTag","objectToString","overArg","transform","arg","func","getPrototype","getPrototypeOf","isObjectLike","funcToString","funcProto","objectCtorString","isPlainObject","objectTag","proto","Ctor","constructor","eq","other","assocIndexOf","key","length","array","splice","Array","ListCache","entries","index","clear","entry","set","listCacheClear","__data__","size","listCacheDelete","data","lastIndex","pop","get","listCacheGet","has","listCacheHas","listCacheSet","push","isObject","type","isFunction","funcTag","genTag","asyncTag","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","toSource","reIsHostCtor","reIsNative","RegExp","replace","getNative","baseIsNative","object","getValue","pattern","isMasked","test","Map","nativeCreate","Hash","hashClear","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","isKeyable","getMapData","map","MapCache","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","arrayEach","iteratee","defineProperty","baseAssignValue","objValue","copyObject","props","customizer","isNew","newValue","source","assignValue","baseTimes","n","baseIsArguments","argsTag","propertyIsEnumerable","isArguments","arguments","isArray","freeExports","exports","nodeType","freeModule","module","Buffer","nativeIsBuffer","isBuffer","stubFalse","reIsUint","isIndex","isLength","MAX_SAFE_INTEGER","typedArrayTags","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","arrayTag","boolTag","dataViewTag","dateTag","float32Tag","errorTag","mapTag","numberTag","regexpTag","stringTag","weakMapTag","baseUnary","freeProcess","moduleExports","types","require","binding","nodeIsTypedArray","nodeUtil","isTypedArray","baseIsTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","isPrototype","nativeKeys","baseKeys","isArrayLike","nativeKeysIn","baseKeysIn","isProto","keysIn","allocUnsafe","buffer","isDeep","cloneBuffer","slice","copy","copyArray","arrayFilter","predicate","resIndex","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","values","arrayPush","offset","getSymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","Promise","Set","WeakMap","promiseTag","setTag","dataViewCtorString","mapCtorString","promiseCtorString","weakMapCtorString","getTag","ArrayBuffer","ctorString","setCtorString","initCloneArray","input","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","reFlags","cloneRegExp","regexp","symbolProto","symbolValueOf","valueOf","cloneTypedArray","typedArray","initCloneByTag","arrayBufferTag","symbolTag","cloneSymbol","objectCreate","create","baseCreate","nodeIsMap","isMap","isSet","nodeIsSet","baseIsSet","cloneableTags","baseClone","bitmask","stack","CLONE_FLAT_FLAG","isFlat","CLONE_SYMBOLS_FLAG","isFull","isFunc","initCloneObject","copySymbolsIn","copySymbols","baseAssignIn","baseAssign","stacked","forEach","subValue","add","cloneDeep","CLONE_DEEP_FLAG","clone","arrayMap","isSymbol","memoize","resolver","TypeError","memoized","args","apply","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","MAX_MEMOIZE_SIZE","string","charCodeAt","match","number","quote","subString","INFINITY","toKey","symbolToString","baseToString","toPath","globalThis","Sentry","dsn","integrations","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","debug","release","process","environment","ignoreErrors","Image","normalizeSrc","src","supportsFloat","ReactDOM","preload","configEnv","loadedImageURLs","emptyDataURL","loaders","defaultLoader","config","width","quality","q","qualities","reduce","prev","cur","Math","abs","DEFAULT_Q","dangerouslyAllowSVG","split","endsWith","normalizePathTrailingSlash","path","encodeURIComponent","url","URL","params","searchParams","getAll","join","href","cloudinaryLoader","paramsString","akamaiLoader","customLoader","isStaticRequire","default","generateImgAttrs","unoptimized","layout","sizes","loader","srcSet","widths","kind","getWidths","deviceSizes","allSizes","viewportWidthRe","percentSizes","parseInt","smallestRatio","min","filter","s","find","p","w","last","i","getInt","x","defaultImageLoader","loaderProps","loaderKey","load","Error","VALID_LOADERS","handleLoading","img","placeholder","onLoadingCompleteRef","setBlurComplete","decode","resolve","catch","then","parentNode","current","naturalWidth","naturalHeight","ImageElement","imgAttributes","heightInt","widthInt","qualityInt","className","imgStyle","blurStyle","isLazy","loading","srcString","setIntersection","onLoad","onError","isVisible","noscriptSizes","rest","decoding","data-nimg","style","ref","useCallback","complete","event","currentTarget","noscript","sizerSvgUrl","priority","lazyRoot","lazyBoundary","height","objectFit","objectPosition","onLoadingComplete","blurDataURL","all","configContext","useContext","ImageConfigContext","useMemo","c","imageConfigDefault","imageSizes","sort","a","b","customImageLoader","obj","_","opts","staticSrc","isStaticImport","isStaticImageData","staticImageData","JSON","stringify","startsWith","blurComplete","useState","isIntersected","resetIntersected","useIntersection","rootRef","rootMargin","disabled","wrapperStyle","boxSizing","display","overflow","background","opacity","border","margin","padding","sizerStyle","hasSizer","assign","position","layoutStyle","top","left","bottom","right","minWidth","maxWidth","minHeight","maxHeight","backgroundSize","backgroundPosition","backgroundImage","quotient","paddingTop","isNaN","linkProps","imageSrcSet","crossOrigin","referrerPolicy","useLayoutEffect","React","useRef","previousImageSrc","useEffect","imgElementArgs","span","alt","aria-hidden","Head","link","rel","as","hasIntersectionObserver","IntersectionObserver","observers","idList","isDisabled","visible","setVisible","elementRef","setElement","element","tagName","observe","callback","options","id","observer","elements","createObserver","instance","existing","target","isIntersecting","intersectionRatio","unobserve","delete","disconnect","findIndex","idleCallback","requestIdleCallback","cancelIdleCallback","dynamic","noSSR","convertModule","mod","LoadableInitializer","loadableOptions","webpack","modules","dynamicOptions","loadableFn","Loadable","error","isLoading","pastDelay","loaderFn","loadableGenerated","ssr","LoadableContext","createContext","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","promise","state","loaded","err","LoadableSubscription","_res","retry","_clearTimeouts","_loadFn","_opts","_state","timedOut","res","delay","_delay","setTimeout","_update","timeout","_timeout","partial","_callbacks","clearTimeout","getCurrentValue","subscribe","loadFn","subscription","init","sub","bind","moduleIds","moduleId","ids","includes","LoadableComponent","useLoadableModule","context","moduleName","useSyncExternalStore","useImperativeHandle","createElement","displayName","forwardRef","flushInitializers","initializers","promises","preloadAll","resolveInitializers","reject","preloadReady","resolvePreload","window","__NEXT_PRELOADREADY","React__default","_interopDefaultLegacy","isProd","env","isString","o","StyleSheet","param","_name","name","_optimizeForSpeed","optimizeForSpeed","invariant$1","_deletedRulePlaceholder","_serverSheet","_tags","_injected","_rulesCount","node","document","querySelector","_nonce","getAttribute","_proto","setOptimizeForSpeed","bool","flush","inject","isOptimizeForSpeed","_this","makeStyleTag","getSheet","console","warn","cssRules","insertRule","rule","cssText","deleteRule","getSheetForTag","sheet","styleSheets","ownerNode","insertionPoint","replaceRule","trim","textContent","removeChild","rules","concat","cssString","relativeToTag","setAttribute","appendChild","createTextNode","head","getElementsByTagName","insertBefore","_defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","condition","message","stringHash","hash","_$hash","str","computeId","baseId","propsToString","computeSelector","css","idcss","selectoPlaceholderRegexp","StyleSheetRegistry","_styleSheet","styleSheet","_sheet","_fromServer","_indices","_instancesCounts","children","selectFromServer","acc","getIdAndRules","styleId","indices","remove","invariant","tagFromServer","update","nextProps","fromServer","Boolean","styles","mapRulesToStyle","nonce","dangerouslySetInnerHTML","__html","querySelectorAll","StyleSheetContext","useInsertionEffect","defaultRegistry","JSXStyle","registry","useStyleRegistry","info","tagInfo","IMAGE_SOURCE","otherProps","classNames","data-sentry-component","data-sentry-source-file","ImageTag","data-sentry-element","ICON_SOURCE","SimpleImage","CircleButton","UiKitButton","color","CloseButton","Times","subject","ContactUsLink","LoadingIndicator","closeButtonText","AlertWithCloseButton","footer","buttonVariant","onHide","handleClose","Alert","variant","onClick","backdropClassName","titleClassName","descriptionClassName","canClose","image","title","description","show","modalContentClassName","iosDeviceType","getIosDeviceType","isIosHandheld","IosDeviceType","IPOD","IPHONE","ModalContainer","meta","content","div","h2","UiKitModal","memo","Modal","dialogClassName","showCloseButton","handleCloseModal","closeButtonAlign","MoneyBack","showApplePayBadge","justifyContent","ApplePayBadge","h3","FormattedMessage","defaultMessage","mark","PageLoading","injectStyles","flex","alignItems","backgroundColor","LoaderLogo","animation","reviews","user7","rating","date","review","avatar","user8","user9","AbTestModel","model","test_name","maybeNull","case_name","segment","maybe","abTests","fbPixelId","isFetching","optional","boolean","actions","saveAbTest","segmentName","tests","cast","setFbPixelId","_fbPixelId","setFetchingStatus","status","getAbTests","flow","utm_source","utm_campaign","region","user_id","abortSignal","responseObject","googleAnalyticsEvent","eventName","properties","segment_name","group","views","getCaseNameByTestName","testName","reset","applySnapshot","UserModel","token","email","isSubscriptionActive","isPasswordSet","accessCode","setEmail","setPasswordSet","AuthStoreModel","user","union","null","auth_token","access_code","fbp","fbc","campaign","googlePseudoID","loginedByWinback","firstName","lastName","dateOfBirth","gender","paddlePaymentProcessed","registeredFromBonus","setUser","setAuthToken","setRegisteredFromBonus","setAccessCode","code","setFbp","setFbc","setVariant","setCampaign","setGooglePseudoID","setLoginedByWinback","setPaddlePaymentProcessed","fetchUser","auth","register","age","quizStore","getRoot","quizAnswers","setPasswordAndEmail","password","logOut","loginBySafariAuthToken","safariAuthToken","loginByEmailToken","emailToken","isPaddleVariants","isStripeVariant","groupBy","ALL_VARIANTS","some","item","variant_name","isBraintreeVariant","isTwitterSource","QuizStoreModel","country","countryCode","easilySpend","satisfied","worriesMost","focusOn","frozen","focusOnTwo","ageChanges","tirednessStressless","darkCirclesStressless","stressHealth","acneStressless","wrinkles","changesFaced","practiceCare","badHabits","eatHabits","sugarHabits","sodiumHabits","vegetablesHabits","waterHabits","swellingHabits","sleepHabits","oilyShine","afterCleanFace","skinAcne","skinTexture","stress","skinColor","skinProblems","faceShape","jawline","unhappy","plasticSurgery","darkCircles","lifestyle","work","afraidOfLosingBeauty","appearanceReason","trends","hearAboutUs","skincareGoals","allergies","discomfort","changesWorriesMost","bonusChoose","innerAge","lastScreen","ageSimple","easilySpendSimple","excessiveWeight","facialCareSimple","desiredResults","medication","pregnant","skinCare","kids","fromHome","improveSleep","headaches","backAches","tension","behaviour","actionPlan","badHabitsSimple","specificAreas","specificActivities","situation","withMimika","bestVersion","mainMotivation","wantExplore","mentalWellness","spendOnCare","getSingleOptionSelectStepValue","step","QuizStep","EASILY_SPEND","EASILY_SPEND_STRESSLESS","SATISFIED","WORRIES_MOST","DARK_CIRCLES","SKIN_COLOR","STRESS","JAWLINE","UNHAPPY","PLASTIC_SURGERY","AGE_CHANGES","AGE_CHANGES_STRESSLESS","TIREDNESS_STRESSLESS","DARK_CIRCLES_STRESSLESS","STRESS_HEALTH","ACNE_STRESSLESS","PRACTICE_CARE","EAT_HABITS","SUGAR_HABITS","SODIUM_HABITS","VEGETABLES_HABITS","WATER_HABITS","SWELL_HABITS","SLEEP_HABITS","OILY_SHINE","OILY_SHINE_STRESSLESS","AFTER_CLEAN_FACE","SKIN_ACNE","SKIN_TEXTURE","SKIN_TEXTURE_STRESSLESS","AGE","FACE_SHAPE","LIFESTYLE","WORK","AFRAID_LOSE_BEAUTY","AFRAID_LOSE_BEAUTY_BREAKS_TEST","APPEARANCE_REASON","APPEARANCE_REASON_BREAKS_TEST","INNER_AGE","AGE_SIMPLE","EASILY_SPEND_SIMPLE","EXCESSIVE_WEIGHT_SIMPLE","FACIAL_CARE_SIMPLE","DESIRED_RESULTS_SIMPLE","DESIRED_RESULTS","MEDICATIONS_SIMPLE","PREGNANT_SIMPLE","SKIN_CARE_SIMPLE","KIDS_SIMPLE","WORK_FROM_HOME_SIMPLE","IMPROVE_SLEEP_SIMPLE","HEADACHES_SIMPLE","BACK_ACHES_SIMPLE","TENSION_SIMPLE","BEHAVIOUR_SIMPLE","ACTION_PLAN_SIMPLE","SWELL_HABITS_STRESSLESS","SPEND_ON_CARE","easilySpendStepCompleted","satisfiedStepCompleted","worriesMostStepCompleted","focusOnStepCompleted","focusOnTwoStepCompleted","ageChangesStepCompleted","tirednessStresslessStepCompleted","darkCirclesStresslessStepCompleted","stressHealthStepCompleted","acneStresslessStepCompleted","wrinklesStepCompleted","changesFacedStepCompleted","practiceCareStepCompleted","badHabitsStepCompleted","eatHabitsStepCompleted","sugarHabitsStepCompleted","sodiumHabitsStepCompleted","vegetablesHabitsStepCompleted","waterHabitsStepCompleted","swellingHabitsStepCompleted","sleepHabitsStepCompleted","oilyShineStepCompleted","afterCleanFaceStepCompleted","skinAcneStepCompleted","skinTextureStepCompleted","stressStepCompleted","skinColorStepCompleted","skinProblemsStepCompleted","ageStepCompleted","faceShapeStepCompleted","jawlineStepCompleted","unhappyStepCompleted","plasticSurgeryStepCompleted","darkCirclesStepCompleted","lifestyleStepCompleted","workStepCompleted","afraidOfLosingBeautyStepCompleted","appearanceReasonStepCompleted","trendsStepCompleted","hearAboutUsStepCompleted","skincareGoalsStepCompleted","allergiesStepCompleted","discomfortStepCompleted","changesWorriesMostStepCompleted","bonusChooseStepCompleted","innerAgeStepCompleted","nameCompleted","ageSimpleStepCompleted","easilySpendSimpleStepCompleted","excessiveWeightStepCompleted","facialCareSimpletStepCompleted","desiredResultsStepCompleted","medicationStepCompleted","pregnantStepCompleted","skinCareStepCompleted","kidsStepCompleted","fromHomeStepCompleted","improveSleepStepCompleted","headachesStepCompleted","backAchesStepCompleted","tensionStepCompleted","behaviourStepCompleted","actionPlanStepCompleted","badHabitsSimpleStepCompleted","specificAreasStepCompleted","specificActivitiesStepCompleted","situationStepCompleted","withMimikaStepCompleted","bestVersionStepCompleted","mainMotivationStepCompleted","wantExploreStepCompleted","mentalWellnessStepCompleted","spendOnCareStepCompleted","getMeaningAge","getSkinColor","getSkinType","dry","label","combo","oil","normal","accum","setCountry","setCountryCode","setEasilySpend","setSatisfied","setWorriesMost","setFocusOn","setFocusOnTwo","setAgeChanges","setTirednessStressless","setDarkCirclesStressless","setStressHealth","setAcneStressless","setWrinkles","setChangesFaced","setPracticeCare","setBadHabits","setEatHabits","setSugarHabits","setSodiumHabits","setVegetablesHabits","setWaterHabits","setSwellHabits","setSleepHabits","setOilyShine","setAfterCleanFace","setSkinAcne","setSkinTexture","setSkinColor","setSkinProblems","setStress","setAge","setFaceShape","setJawline","setUnhappy","setPlasticSurgery","setDarkCircles","setLifestyle","setWork","setAfraidOfLosingBeauty","setAppearanceReason","setTrends","setHearAboutUs","setAllergies","setSkincareGoals","setDiscomfort","setChangesWorriesMost","setBonusChoose","setInnerAge","setLastScreen","setName","setAgeSimple","setEasilySpendSimple","setExcessiveWeight","setFacialCareSimple","setDesiredResults","setMedication","setPregnant","setSkinCare","setFromHome","setImproveSleep","setHeadaches","setBackAches","setKids","setTension","setBehaviour","setActionPlan","setBadHabitsSimple","setSpecificAreas","setSpecificActivities","setSituation","setWithMimika","setBestVersion","setMainMotivation","setWantExplore","setMentalWellness","setSpendOnCare","fillInAllSteps","RootStoreModel","analyticsStore","AnalyticsStoreModel","authStore","paymentsStore","PaymentsStoreModel","RootStoreContext","RootStoreProvider","rootStore","sessionStorage","getItem","ROOT_STATE_STORAGE_KEY","onSnapshot","snapshot","setItem","Provider","Button","CheckBoxIcon","svg","xmlns","viewBox","fill","d","stroke","strokeWidth","UiKitCheckbox","Checkbox","checkboxIcon","UiKitInput","Input","UiKitLoadingButton","IconComponent","LoadingButton","jsCookies","mounted","setMounted","useStores","router","useRouter","route","query","isReady","googlePseudoIdCurrent","routes","quiz","Component","prefetch","r","useAbortableEffect","postFacebookEventV2","externalId","eventId","customData","Cookies","pixelVariants","currentPixelIds","getDataFromSessionStorage","store","requests","pixelId","origin","axiosMicroservice","post","event_name","event_id","external_id","test_event_code","TEST_EVENT_CODE","custom_data","mutateAsync","postEventV2","useMutation","mutationFn","mutationKey","conditionCheckFunction","fbq","fetchClientEventWithRetry","isCustomEvent","log","actionFunction","eventID","extern_id","retryDelay","isDevelopment","clientEvent","postPinterestEvent","axiosAnalytics","ad_account_id","PINTEREST_ACCOUNT_ID","PINTEREST_EVENT_NAME_TO_RIGHT_CONVENTION","action_source","event_time","floor","Date","now","hashed_maids","GA_ID","user_data","em","client_user_agent","navigator","userAgent","postEvent","pintrk","random","gtag","useBingEvent","uetq","events","logEvent","clearEvents","eventsNumberVisible","setEventsNumberVisible","noop","useAnalyticsDebugger","AnalyticsDebuggerContext","useAnalytics","shouldPixelInit","shouldGoogleAnalyticsInit","shouldPTInit","shouldBingInit","useShouldInit","pinterestEvent","usePinterestEvent","useGoogleEvent","bingEvent","facebookEvent","useFacebookEvent","trackFacebookEvent","parameters","trackPinterestEvent","trackBingEvent","trackGoogleEvent","modifiedValue","mentalId","googleEvent","setEvents","SAFARI_AUTH_TOKEN_QUERY_PARAM","useSafariAuthToken","safariAuthTokenQueryValue","IS_APPLE_PAY_AVAILABLE","ApplePaySession","supportsVersion","canMakePayments","IS_IN_WEB_VIEW","vendor","IS_IN_WEB_VIEW_AND_IOS_LOWER_16","first","second","third","version","SHOW_APPLE_PAY_BUTTON","useApplePayPaymentButton","showSafariRedirectPrompt","applePayPaymentButtonPage","page","performLogin","pathname","newQuery","shallow","openCheckoutOnMount","setOpenCheckoutOnMount","openApplePayCheckoutOnMount","subscriptionPlan","ApplePayPaymentButton","onLoadEnd","buttonContent","ApplePayLogo","paymentSystem","PaymentSystem","BRAINTREE","previousPlan","usePrevious","shouldFetch","setIsLoading","contentNode","openCheckout","openCheckoutWithoutGesture","usePaymentSystem","braintreeOptions","useApplePay","checkoutOnMountOpened","handleClick","handleCheckoutOpenRequestWithPaymentSystem","paymentMethod","AnalyticsPaymentMethod","APPLE_PAY","setPaymentMethod","PaymentMethod","PaymentButton","pointerEvents","CardPaymentButton","CreditCard","CARD","data-testid","GooglePayPaymentButton","GooglePayLogo","useGooglePay","GOOGLE_PAY","PAYPAL_BUTTONS_CONTAINER_ID","PAYPAL_BUTTONS_SECOND_CONTAINER_ID","PaypalLogo","app","useGetAppName","braintreeClientToken","useAtomValue","braintreeClientTokenAtom","introOfferData","selectedPlanAtom","setPaymentCompletionStatus","usePaymentCompletionStatus","braintreeHandle","client","braintree","authorization","paypalCheckout","loadPayPalSDK","vault","buttons","paypal","Buttons","fundingSource","FUNDING","PAYPAL","createBillingAgreement","handleCheckoutOpenRequest","AnalyticsPaymentSystem","createPayment","onCancel","payment_system","payment_method","onApprove","authorizationResponse","tokenizePayment","createBraintreeSubscription","customerId","customerToken","merchantAccountId","planId","braintreePlanId","paymentMethodNonce","btIntroOfferAmount","fullPriceDiscount","btIntroOfferCurrency","currency","PaymentCompletionStatus","SUCCESS","selectedPlanId","FAILURE","render","PaymentModalStatus","PaymentModal","allSubscriptionPlans","setWasPaymentModalClosed","isPaymentModalActive","PAYMENT_MODAL_QUERY_PARAM","isPaypalLoading","setPaypalLoading","isApplePayLoading","setApplePayLoading","onPaypalLoadEnd","onApplePayLoadEnd","action","category","tikTokAdvancedMatching","tikTokEvent","isPlanHasPriceIntroOffer","priceAfterIntroOffer","hidden","figure","PayPalLogo","VisaLogo","MastercardLogo","AmexLogo","UnionpayLogo","LockIcon","billingPeriod","billingPeriodUnit","hasTrial","del","fullPrice","discountPercentage","round","Number","toFixed","fractionalPriceDiscount","hr","trialPeriodDays","SHOW_GOOGLE_PAY_BUTTON","PaypalPaymentButton","PaymentLoader","BrowserMenuArrow","figcaption","br","BannerType","leadingZero","numerous","Banner","onFinish","onboardingVariant","wasErrorModalWithOfferShown","stripePaymentErrorAtom","seconds","setSeconds","minutes","setMinutes","TIME_DURATION_MINUTES","timerEnd","setTimerEnd","firstTimerEnd","setFirstTimerEnd","interval","setInterval","previous","clearInterval","TIME_DURATION_SECONDS","ClockIcon","button","ContactBlock","isContactModalVisible","setIsContactModalVisible","ContactFormModal","placeLabel","FormModal","isValid","onSubmit","isSubmitting","submitButtonText","submitButtonVariant","contentClassName","form","fullWidth","formSchema","yup","shape","required","matches","formInitialValues","isSubmittedAlertShown","setIsSubmittedAlertShown","intl","useIntl","handleChange","handleBlur","handleSubmit","resetForm","touched","errors","useFormik","initialValues","validationSchema","useAbortableCallback","place","commonApi","userId","isSubscriber","fromLabel","formatPlaceholder","placeholderId","placeholderDefaultMessage","formatMessage","asString","hideModals","autoComplete","onChange","onBlur","isInvalid","errorText","errorTextClassName","STATES_DATA","textId","defaultTextMessage","markId","defaultMarkMessage","Graph","isEmail3","getLocaleImage","strong","defaultDescription","RefundLink","Guarantees","PressSection","ReviewCard","h4","ul","from","li","Star","h5","Reviews","StartBlockTransactionDeclined","noMoneyPlanInfo","noMoneyPlanInfoAtom","selectedPlanInfo","targetTime","priceFromDefaultOneMonth","currencyReplacer","useCountdown","targetDate","onComplete","section","StartBlock","beforeAfterPaywallTest","useFeatures","currentContent","video","autoPlay","playsInline","muted","loop","VIDEO_SOURCE","PaywallForwarded","onDiscountTimeFinished","isHideHeader","setHideHeader","isHideFooter","setHideFooter","initFooter","setFooter","simplePaywallFeature","isSimplePaywallEnabled","isInlinePaddleActive","SHOW","onScrollToPayment","paymentSectionRef","scrollIntoView","behavior","onScroll","getBoundingClientRect","renderBanner","HIDE","addEventListener","removeEventListener","SubscriptionPlanCard","plan","SubscriptionCardMaster","planCardClassname","contentClassname","leftBottomContent","fractionalPrice","FullPrice","withDiscount","BillingPeriod","DiscountPercentage","isActive","rightContent","PriceUnitFull","checked","CurrentPrice","TrialsDisclaimer","PaymentPlans","isGuaranteeBlock","isInlinePaddlePaymentActive","showPolicyAgreement","subscriptionPlanGroup","titleSection","isInlinePaymentActive","subscriptionPlans","getDefaultDiscountPercent","setSelectedPlanId","subscriptionAgreementChecked","setSubscriptionAgreementChecked","showModalOnPlanChange","setShowModalOnPlanChange","isPaymentSectionRefInViewport","useIsInViewport","scrollPaymentSectionIntoView","block","handleCheck","openPaymentModalHandler","handlePlanChange","fetchSubscriptionPlans","paddle","specialOffer","preselected","sendBingSpreadedConversion","useGenerateBraintreeClientToken","userFields","onSelectPlan","handlePlanSelect","product_id","paddleIternalName","renderSubscriptionPlans","EmptySubscriptionPlanCardList","PlanCardComponent","prefix","NAMESPACE","defaultDiscountPercent","isCardSelected","renderTitleSection","RED","ChevronLeft","PrivacyAgreement","isChecked","onChecked","IntroOfferDisclaimer","GuaranteeBlock","Users","aside","filteredMap","PaymentPlansSimple","userProperty","replaceVariantWithHardCodeTestValue","stripePromise","useGetStripePromise","wasCheckoutShownOnMount","setWasCheckoutShownOnMount","wasNoMoneyPreselected","setWasNoMoneyPreselected","stripeSubscriptionWithPersistence","planAtom","setPlanAtom","useAtom","showProcessingModal","processingModalStatusAtom","setUpsellInfoAtom","useSetAtom","upsellInfoAtom","setPremiumYearAllDataAtom","premiumYearAllDataAtom","setNoMoneyPlanInfoAtom","setUpgradeInfoAtom","upgradeInfoAtom","setIntroOfferInfoAtom","introOfferInfoAtom","setUserFields","userAtom","setPaymentError","introOfferFeature","isIntroOfferEnabled","isCheckoutInsidePlanCard","payment_intent_client_secret","clientSecretFromUrl","redirect_status","redirectStatus","stripe_plan_id","selectedPlanIdFromUrl","payment_status","paymentStatus","isRedirectStatusFailed","isRedirectStatusSucceeded","productId","useGetStripeProductId","useGetStripeSubscriptions","plans","allSubscriptions","order","filteredSubscriptions","noMoneyDiscount","combinedItem","learnMoreList","LEARN_MORE_VARIANT","hideDescription","preselectedSubscriptionId","upgradeInfo","upgrade_plan","upgradeId","upsellInfo","upsell_data","premiumYearAllDataInfo","premium_year_data","premium_year_discount_data","premiumYearData","premiumYearDiscountData","defaultPlanInfo","oneMonthPlan","introOfferInfo","intro_offer_data","introOfferDuration","introOfferId","surcharge","analyticsCombinedParameters","priceId","setPaymentInfoAtoms","closePaymentModalHandler","newPlanPaywall","scrollToPaymentMethod","handleSetSelectedPlanId","selectedPlan","planName","specialDiscountPercentage","introOffer","braintreeMerchantId","premiumPriceData","premiumDiscountPriceData","selectPlanHandler","userPaid","noMoneyPlan","calculateLTV","BILLING_PERIOD_LTV_MAP","revenue_value","subscription_id","stripe_subscription_id","predicted_ltv","twitterEvent","price_id","payment_type","campaign_name_manual","content_id","quantity","errorCode","renderPlans","SubscriptionPlanCardStripeWithPaymentMethods","NO_MONEY_LEARN_MORE","getPlanDisabled","SubscriptionPlanCardStripe","titleSectionRender","defaultTitle","PaymentDeclinedModal","onClose","SecondPaymentFailedModal","PaymentProcessingAlert","ModalRenderer","isUserPaid","isUserLoginedByWinback","euroCountriesSet","EURO_COUNTRIES","PaymentPlansMasterWithRef","PaymentPlansMaster","useFeature","isUpgradeFirstABTest","UPGRADE_FIRST_AB_TEST_NAME","UpgradeFirstAbTestCaseName","NEW","isPreselectedSubscriptionABTest","PRESELECTED_SUBSCRIPTION_TEST_NAME","PreselectedSubscriptionTestCaseName","planGroup","subscriptionPlanVariants","SUBSCRIPTION_PLAN_VARIANTS_EURO","SUBSCRIPTION_PLAN_VARIANTS","mapHardcodedVariantForProductId","renderComponent","PaymentPlansStripe","CardSkeleton","Skeleton","count","Logos","MasterCardLogo","UnionPayLogo","showRefundRate","MoneyHand","DefaultAgreementText","privacy","PolicyLink","terms","TermsLink","agreementText","randomId","labelClassName","useCurrentPrice","initialPrice","formattedPrice","parseFloat","padEnd","displayPrice","paddlePlanId","priceDigit","isLongCurrencies","classNamePerTerm","variantClassNames","sizeClassNames","discountPercentageString","currencySymbol","resultPrice","PaddleInlineCheckout","paddleInlineRef","paddlePayLink","setPaddlePayLink","onPaymentComplete","first_name","last_name","date_of_birth","fn","ln","ge","db","generatePaddlePayLink","customerEmail","response","sendAnalytics","email_address","Paddle","Checkout","open","override","method","disableLogout","loadCallback","successCallback","frameTarget","frameInitialHeight","frameStyle","fullWidthBottomContent","descriptionContent","hidePlanTitle","namespace","inputId","renderPlanName","isSelected","htmlFor","formatPrice","isInteger","price","priceUnitFull","reverse","priceUnitFullReversed","LearnMoreList","isCompactStyle","filteredLearnMoreList","icon","titleId","titleDefaultMessage","text","validateCardholderName","inputString","DebitCreditBlock","minimalStyle","CardPaymentBlock","stripe","clientSecret","handleAddPaymentInfoEventsSend","handleSuccessPayment","handleProcessingStatus","userEmail","useElements","setMessage","userStartEnteringCardInfo","setUserStartEnteringCardInfo","handleUserStartEnteringCardInfo","handleNameChange","toUpperCase","handleSuccessPaymentCallback","memorizedCardholderNameValidation","isValidName","checkIsPrepaidCard","card","getElement","CardNumberElement","createPaymentMethod","billing_details","funding","on","preventDefault","cardExpiry","CardExpiryElement","cardCvc","CardCvcElement","paymentIntent","confirmCardPayment","blur","errorDeclineCode","decline_code","declineCode","empty","CARD_ELEMENT_OPTIONS","ELEMENT_OPTIONS","PaymentRequestButton","planInfo","borderRadius","paymentRequest","paymentMethodResult","usePaymentRequest","confirmError","handleActions","PaymentRequestButtonElement","paymentRequestButton","PaypalButtonBraintree","isCustomButton","onSuccess","cancelSubscriptionAtPeriodEnd","paymentMethodWithPersistence","buttonRendered","setButtonRendered","isStripePAth","cancelAtPeriodEnd","errorPhrases","regex","MappedPaymentMethodComponent","paymentMethodName","sendAddPaymentInfoEvents","isBraintreePaypal","hidePayPalTest","isPayPalSupported","CURRENCY_DOES_NOT_SUPPORT_PAYPAL","PaymentOptionTab","paymentMethodContentList","paymentMethodLogo","paymentButtonText","selected","onSelectPaymentMethod","CompactSelector","paymentMethods","selectedMethod","setSelectedMethod","paymentMethodLogoCompact","PAYMENT_OPTIONS","gridGap","MasterCard","fillRule","clipRule","SkeletonMethods","SkeletonMethodsCompact","containerClassName","isPaymentMethodFiltered","methodName","selectedPaymentMethod","isCurrencySupportPayPal","getFilteredPaymentOptions","priorityMethod","priorityOption","filteredOptions","option","CheckoutSelector","filteredPaymentOptions","onSuccesPayment","setCustomerId","useStripe","currentPlanDetails","setClientSecret","activePaymentMethod","setActivePaymentMethod","handlePaymentMethodSelect","createSubscriptionIsLoading","useCreateSubscription","client_secret","customer_id","setProcessingModalStatus","setStripeSubscriptionActive","sendAnalyticsEvents","paymentOption","noMoneyInfo","showErrorModal","handleModelClose","handleModelDismiss","showModal","Elements","UpsellFallbackModal","UpsellLoader","minimalInitialModalState","currentModal","wasShown","SHOW_MODAL","HIDE_MODAL","minimalActionTypes","payload","modalId","StripeModalSucceeded","showContactFormModal","setShowContactFormModal","handleContactFormModalHide","clipboardState","setClipboardState","showCrossSailOffer","wasUpsellSailOfferShown","stripeWasPaymentTriedAtom","handleCopyEmail","clipboard","writeText","handleCopyAccessCode","downloadLink","confetti","particleCount","spread","zIndex","PaymentSucceed","CheckMark","stle","CopyIcon","InfoIcon","LimitedUpsell","ModalUpsell","PremiumInfoStaticAlert","UpsellCommitmentHard","UpsellExtraDiscountPremium","UpsellExtraYearlyDiscountPremium","UpsellPremium","upsellModalComponents","LIMITED_UPSELL","MODAL_UPSELL","PREMIUM_INFO_STATIC_ALERT","UPSELL_SCANNER","UpsellScanner","UPSELL_COMMITMENT_HARD","UPSELL_EXTRA_DISCOUNT_PREMIUM","UPSELL_EXTRA_YEARLY_DISCOUNT_PREMIUM","UPSELL_PREMIUM","UPSELL_YEARLY_PREMIUM","UpsellYearlyPremium","UPSELL_ACADEMIA","UpsellAcademia","SUCCEED","determineInitialModal","isPayedWithBraintree","isNewUpsellsAvailable","isAcademiaAvailable","waitUntilSecondPayment","showFallback","minimalModalState","minimalModalDispatch","useReducerWithStorage","stripeMinimalModalReducer","academyUpsellFeature","isAllNewUpsellsAvailable","initialModal","ModalComponent","onNext","nextModalId","ThemeContext","body","dataset","theme","ogImages","Seo","canonicalUrl","NextSeo","twitter","handle","site","cardType","openGraph","images","ErrorAlert","AlertComponent","reason","ErrorBoundary","fallback","resetError","location","reload","showDialog","QueryClientCustomProvider","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","attemptIndex","queryCache","QueryCache","QueryClientProvider","ReactQueryDevtools","initialIsOpen","buttonPosition","formatError","ValidationError","match1","match2","toLowerCase","ResizeObserver","MyApp","pageProps","inter","fontFamily","merriweather","openSans","pageDescription","keywords","IntlProvider","HydrationBoundary","dehydratedState","FeatureFlagProvider","AnalyticsDebuggerProvider","ThemeProvider","PageProgress","AnalyticsInject","formattedMessageId","link_name","Policy","RequestError","statusText","statusCode","request","endpoint","fetch","credentials","ok","json","scope","setExtras","headers","ENDPOINT","Headers","Accept","Authorization","URLSearchParams","signal","mode","responseToUser","responseToUserVariant2","data_version","temp_token","email_token","createAxiosInstance","axios","baseURL","TIMEOUT","interceptors","use","axiosSimple","ENDPOINT_SIMPLE","ENDPOINT_MICROSERVICE","ANALYTICS_ENDPOINT_V2","axiosProxyUtils","sendFeedback","from_label","user_email","form_name","is_subscriber","userData","authToken","put","COOKIES_AB_TEST_NAME","CookiesAbTestCaseName","WELCOME_LOADER_TEST_NAME_V2","WelcomeLoaderTestV2CaseName","VIDEO_REVIEWS_TEST_NAME","VideoReviewsTestCaseName","SCANNER_TEST_NAME","CheepChallengeTestCaseName","ACADEMIA_UPSELL_TEST_NAME","NEXT_PUBLIC_TEST_EVENTS_CODE","getMobileOperatingSystem","MobileOperatingSystem","ANDROID","IS_GOOGLE_PAY_AVAILABLE","home","paymentSuccess","QuizStepType","ColoredBackgroundQuizStepBackground","isStepHeaderShown","QuizAgeOption","OptionVariant","payment_system_region","createTestSegmentFromQueryParameters","urlParameters","search","caseName","decodeURI","googlePseudoId","userPseudoIdApplePay","userPseudoIdWinback","mg","user_pseudo_id","user_pseudo_id_apple_pay","user_pseudo_id_winback","isAndroidDevice","isIosDevise","IOS","fullUrl","basePath","pseudoData","FACEBOOK_PIXEL_ID","FACEBOOK_PIXEL_ID_ADQUANTUM","BING_ID","TIK_TOK_PIXEL","AddToCart","Custom","Lead","PageVisit","Search","Signup","ViewCategory","WatchVideo","isValidVariantSource","TIK_TOK_SOURCES","TWITTER_SOURCES","PINTEREST_SOURCES","FACEBOOK_SOURCES","BING_SOURCES","PINTEREST_ID","shouldTwitterInit","TWITTER_ID","shouldTikTokInit","GA_ID_V2","isSpecificHostname","hostname","shouldGoogleAnalyticsV2Init","shouldClarityInit","CLARITY_ID","shouldClarityV2Init","DebugUi","activeTab","setActiveTab","hasMounted","setHasMounted","showTranslated","setShowTranslated","variantFromStorage","features","activeVariant","setActiveVariant","toggleEventsNumber","groupedEvents","filteredEvents","handleTabChange","tab","handleVariantChange","sortedVariants","localeCompare","abTestDisplay","applyTranslationStyles","elem","translatedElems","MutationObserver","childList","subtree","renderEvents","toISOString","select","pre","GoogleAnalyticsComponent","shouldSecondGaInit","useCookie","Script","async","GTM_ID","COOKIE_KEY","useExternalId","setExternalId","generateRandomId","queryExternalId","expires","COOKIE_EXPIRY_DAYS","cookieExternalId","newId","FbPixel","fbPixelIds","FACEBOOK_PIXEL_ID_UNI","FACEBOOK_PIXEL_ID_CPM_TEST","FACEBOOK_PIXEL_ID_V17","FACEBOOK_PIXEL_ID_V18","BingPixel","GoogleTagManager","PinterestPixel","TwitterPixel","TikTokPixel","Clarity","initSecondClarity","clarity","CLARITY_V2_ID","firstTest","identify","ttq","track","pid","twq","conversion_id","FeatureFlagsContext","transformFlags","fromEntries","feature","FlagsProvider","currentFeatures","featureGroup","structuredClone","featureName","FEATURE_FLAG_AB_TESTS","SIMPLE_PAYWALL_TEST_NAME","BEFORE_AFTER_PAYWALL_TEST_NAME","HIDE_PAYPAL_TEST_NAME","flag","startsWithB","featuresFromQuery","featuresFromStorage","featuresAbTestingEnabled","evaluatedFlags","isCheapOfferEnabled","CHEEP_CHALLENGE_TEST_NAME","ONBOARDING_BEGIN","ONBOARDING_MIDDLE","isUsProductIdValid","isVariantUsEnabled","isPayedWithBraintreePayPal","isSimpleOnboarding","usFeature","simpleFeature","cheapOfferFeature","atom","customer_email","vendor_id","paypalPlanId","stripePriceId","nuveiPlanId","gift","country_code","responseToSubscriptionPlan","planResponseObject","paymentMethodVaulted","plan_id","payment_method_nonce","payment_method_vaulted","merchant_account_id","bt_introoffer_amount","bt_introoffer_currency","cancel_at_period_end","generateBraintreeClientToken","useQueryClient","setBraintreeClientToken","mutationCallback","variables","mutation","invalidateQueries","queryKey","analyticsPaymentSystem","mentalCurrencyReplacer","PAYMENT_COMPLETION_STATUSES","PAYMENT_STATUS_QUERY_PARAM","paymentCompletionStatusQueryValue","paymentCompletionStatus","BRAINTREE_CONTAINER_ID","clientToken","onCheckoutComplete","dropin","teardown","isFormValid","setIsFormValid","braintreeDropin","container","threeDSecure","amount","immediatePrice","isPaymentMethodRequestable","requestPaymentMethod","startIcon","Lock","startIconClassName","braintreePaymentClient","fetchBraintreePaymentClient","braintreeShowModal","setBraintreeShowModal","handleBraintreeCheckoutComplete","applePay","createPaymentRequest","total","currencyCode","session","onvalidatemerchant","merchantSession","performValidation","validationURL","BRAINTREE_APPLE_PAY_STORE_NAME","completeMerchantValidation","onpaymentauthorized","tokenize","payment","completePayment","STATUS_FAILURE","STATUS_SUCCESS","begin","oncancel","googlePay","googlePayVersion","googleMerchantId","paymentDataRequest","createPaymentDataRequest","transactionInfo","totalPriceStatus","totalPrice","paymentsClient","google","payments","api","PaymentsClient","cardPaymentMethod","allowedPaymentMethods","billingAddressRequired","paymentData","loadPaymentData","parseResponse","BraintreeModal","braintreeHandleModalClose","variantPT","variant15","ABTest","NEXT_PUBLIC_AB_TEST_PLANS_GROUP_USD","tw1","google1","tiktok1","NEXT_PUBLIC_AB_TEST_PLANS_GROUP_EUR","answers","Answers","answer","Community","isInViewport","innerWidth","documentElement","clientWidth","photos","photosLength","Compare","activeIndex","setActiveIndex","inline","photo","UiKitAccordion","Accordion","Item","Toggle","CollapsibleBody","QUESTIONS","Faq","alwaysOpen","defaultActiveKey","question","classNameOpened","ChevronBottom","useProgress","requestRef","progress","setProgress","startProgressUpdate","updateProgress","videoRef","currentProgress","currentTime","duration","cancelAnimationFrame","requestAnimationFrame","stopProgressUpdate","defaultMuted","activeVideoId","setActiveVideoId","activeVideoAtom","isPlaying","setIsPlaying","isMuted","setIsMuted","togglePlay","pause","play","toggleMute","CircularVideoPlayer","useVideoControl","radius","circumference","PI","progressOffset","handlePlay","handleEnded","circle","cx","cy","strokeDasharray","strokeDashoffset","strokeLinecap","controls","PlayIcon","VolumeMuteIcon","VolumeUpIcon","SimpleSlider","slides","slideWidth","slidesGap","parentRect","firstRect","lastRect","isLeftSlideEnd","isRightSlideEnd","slide","VIDEO_REVIEWS","FeelYounger","isVideoReviewTest","REVIEWS_BLOCK_1","LongPaywall","getStripeSubscriptions","upgradePrice","full_price","upgrade_price","buySecondSubscription","product","introOfferMustBePaid","paymentSystemUrlMap","intro_offer_id","intro_offer_duration","intro_offer_must_be_paid","createInvoice","upsellUrlMap","modifySubscription","newPlanId","modifyUrlMap","new_plan_id","atomWithStorage","createJSONStorage","atomWithReset","introOfferDescription","wasCheapOfferBought","wasStandardPlanBought","wasSubscriptionModified","stripeSubscription","newString","ELEMENTS_APPEARANCE","base","fontSize","invalid","getBaseStyles","useQuery","queryFn","enabled","gcTime","staleTime","createSubscription","getUpgradeData","setPaymentRequest","setPaymentMethodResult","ignore","pr","disableWallets","requestPayerName","requestPayerEmail","canMakePayment","initializeStripe","apiKey","loadStripe","stripeInstance","getStripe","STRIPE_API_KEY_US","STRIPE_API_KEY","useModifySubscription","paymentInfoAtom","setPaymentInfoAtom","userPaymentsInfoAtom","sendPurchaseEventsForUpgradeFromChallenge","userCountry","getStripeProductId","us_product_id","getStripeUnsubscription","useGetUnsubscribePlans","currentVariant","userInfoAtom","isCheapOfferTest","handleUpgradeCheapOffer","planPrice","planCurrency","Typography","IconChevronDown","AutoRenew","placement","selectedCurrency","introOfferDataMemoized","planNameHardCoded","CheckoutPolicy","CheckoutForm","showIntroOfferDescription","paymentType","CheckDetails","priceGap","hasDiscount","billingMemoized","StripeModal","appearance","closeHandle","h1","ContactBlockEmail3","setShowModal","scrollToTheCheckoutSelector","isEmail3Variant","renderGetMyPlan","LANG_TO_LOCALE","de","en","es","fr","pt","languageDetector","LanguageDetector","getTranslationsByLang","locale","lang","DEFAULT_LOCALE","messages","setMessages","currentLocaleTwoSymbols","currentLocale","detect","language","getMessages","defaultLocale","useReactIntl","typedFormatMessage","data-trans","Message","BillingPeriodUnit","SubscriptionPlanModel","identifier","enumeration","wasPaymentClosed","isDiscount","isPurchaseEventsSend","wasPaymentModalClosed","chosenPlanId","joinedPeople","setSubscriptionPlans","wasClosed","setDiscount","discount","setWasPaymentClosed","setPurchaseEventsSend","isSent","setChosenPlan","incrementJoinedPeople","resetPayment","subscriptionPlansDiscountPrice","newPlans","planFullPrice","existingPlan","hasSpecialOfferPlan","currentPlanName","getImageUrl","CLOUDFRONT","LOCALES_DATA","mobileOperatingSystemMemoized","iosDeviceTypeMemoized","useTimer","startImmediately","timer","setTimer","initial","timeoutRef","timeElapseRef","callbackRef","isPause","setIsPause","startTimer","expected","tick","dt","max","pauseTimer","resumeTimer","getReturnValues","countDown","setCountDown","time","initialState","reducer","modalState","dispatch","useReducer","localData","localStorage","parse","effect","deps","abortController","AbortController","cleanup","abort","setIsIntersecting","threshold","getRandomEmail","chars","charLength","charAt","maxRetries","retries","_array","sortBy","storedDataString","storedData","useProgressSteps","started","progressDurations","steps","currentStep","setCurrentStep","previousProgress","setPreviousProgress","previousStep","setPreviousStep","timeElapsed","startTime","running","handleAnimationFrame","stepDuration","t","currentStepProgress","previousStep_"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,235,236,332,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,365,367,368,369,371,372,373,374,375,376,464,465,483,486,487,488,489,490,491,492,493,494,495,498,522,523,524,525,526,527,531,532,533,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793]}